/*
Theme Name: FT Theme
Theme URI: https://fundedtruth.com/
Author: FundedTruth
Author URI: https://fundedtruth.com/
Description: FundedTruth's own news theme: dark editorial layout with an orange navigation bar, breaking-news ticker, card grids and sidebar. Built-in design system (colors, fonts, radius, widths, light/dark mode), announcement bar, footer disclosure, styling for the FundedTruth Suite, Leverage Explorer, YITH Compare, WooCommerce and Ultimate Member, and appearance/menu tools for the FundedTruth online Claude connector with full change history and one-click restore.
Version: 2.1.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ft-theme
Tags: news, blog, dark, two-columns, right-sidebar, left-sidebar, custom-colors, custom-header, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, wide-blocks, block-styles
*/

/* ==========================================================================
   1. Tokens
   Inline CSS from the Customizer / connector overrides the brand values.
   Class prefix is "ftt-" because page content already uses "ft-" classes.
   ========================================================================== */
:root {
    /* Gold & Black (default) */
    --ft-primary: #C9A54C;
    --ft-accent: #D4B26A;
    --ft-secondary: #E8CF8E;
    --ft-on-accent: #0A0A0A;
    --ft-bg-dark: #0A0A0A;
    --ft-surface-dark: #141414;
    --ft-bg-light: #F7F7F5;
    --ft-surface-light: #FFFFFF;
    --ft-topbar: #000000;
    --ft-header-bg: #070707;
    --ft-nav-text: #F5F5F5;
    --ft-footer-bg: #050505;
    --ft-pagination-active: #C9A54C;
    --ft-cat-1: #C9A54C;
    --ft-cat-2: #A7A9AC;
    --ft-cat-3: #E8CF8E;
    --ft-font-heading: 'Space Grotesk', system-ui, sans-serif;
    --ft-font-body: 'Inter', system-ui, sans-serif;
    --ft-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --ft-font-size: 16px;
    --ft-line-height: 1.7;
    --ft-heading-weight: 600;
    --ft-title-size: 46px;
    --ft-container: 1440px;
    --ft-radius: 10px;
    --ft-gap: 20px;
    --ft-firm-width: 1100px;
    --ft-ticker-speed: 45s;
    --ft-nav-height: 58px;
}

/* Dark (default) */
body.ftt-dark,
html[data-ftt-mode="dark"] body.ftt {
    --ft-bg: var(--ft-bg-dark);
    --ft-surface: var(--ft-surface-dark);
    --ft-surface-2: color-mix(in srgb, var(--ft-surface-dark) 88%, #ffffff);
    --ft-text: #E9E9E9;
    --ft-text-muted: #9A9A9A;
    --ft-heading: #FFFFFF;
    --ft-border: rgba(255, 255, 255, 0.08);
    --ft-input-bg: #0F0F0F;
    color-scheme: dark;
}

/* Light */
body.ftt-light,
html[data-ftt-mode="light"] body.ftt {
    --ft-bg: var(--ft-bg-light);
    --ft-surface: var(--ft-surface-light);
    --ft-surface-2: #F3F3F1;
    --ft-text: #222222;
    --ft-text-muted: #6B6B6B;
    --ft-heading: #0A0A0A;
    --ft-border: rgba(0, 0, 0, 0.09);
    --ft-input-bg: #FFFFFF;
    color-scheme: light;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    margin: 0;
    background-color: var(--ft-bg);
    color: var(--ft-text);
    font-family: var(--ft-font-body);
    font-size: var(--ft-font-size);
    line-height: var(--ft-line-height);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.custom-background { background-color: var(--ft-bg); }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ft-font-heading);
    font-weight: var(--ft-heading-weight);
    color: var(--ft-heading);
    line-height: 1.25;
    margin: 0 0 0.6em;
}
h1 { font-size: 2.25rem; } h2 { font-size: 1.75rem; } h3 { font-size: 1.4rem; }
h4 { font-size: 1.2rem; } h5 { font-size: 1.05rem; } h6 { font-size: 0.95rem; }

p { margin: 0 0 1.2em; }
a { color: var(--ft-heading); text-decoration: none; transition: color .15s ease, background-color .15s ease, opacity .15s ease; }
a:hover { color: var(--ft-secondary); }
img, video, iframe { max-width: 100%; height: auto; }
.ftt-thumb img, .ftt-single__image img, .ftt-single__hero img, .custom-logo { display: block; }
figure { margin: 0 0 1.5em; }
hr { border: 0; border-top: 1px solid var(--ft-border); margin: 2em 0; }
code, kbd, pre, samp { font-family: var(--ft-font-mono); font-size: 0.9em; }
pre { background: var(--ft-input-bg); padding: 1em; overflow: auto; border-radius: var(--ft-radius); border: 1px solid var(--ft-border); }
blockquote { margin: 1.5em 0; padding: 0.5em 0 0.5em 1.25em; border-left: 4px solid var(--ft-primary); font-size: 1.1em; }
table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; }
th, td { padding: 10px 12px; border: 1px solid var(--ft-border); text-align: left; }
th { background: var(--ft-surface-2); color: var(--ft-heading); }

input, select, textarea, button { font: inherit; vertical-align: middle; }
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"],
input[type="number"], input[type="tel"], input[type="date"], select, textarea {
    width: 100%;
    max-width: 100%;
    padding: 9px 12px;
    background: var(--ft-input-bg);
    color: var(--ft-text);
    border: 1px solid var(--ft-border);
    border-radius: calc(var(--ft-radius) / 2);
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--ft-primary); outline-offset: 0; }
textarea { min-height: 120px; }

button, input[type="button"], input[type="reset"], input[type="submit"], .ftt-button, .wp-block-button__link {
    display: inline-block;
    padding: 8px 16px;
    background: var(--ft-primary);
    color: var(--ft-on-accent);
    border: 0;
    border-radius: calc(var(--ft-radius) / 2);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    line-height: 1.5;
}
button:hover, input[type="submit"]:hover, .ftt-button:hover { background: var(--ft-accent); color: var(--ft-on-accent); }
body.ftt-buttons-normalcase button, body.ftt-buttons-normalcase input[type="submit"], body.ftt-buttons-normalcase .ftt-button { text-transform: none; }

.screen-reader-text {
    border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
    height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
    clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000;
    top: 8px; left: 8px; padding: 10px 16px; background: #fff; color: #000; font-weight: 700;
}
:focus-visible { outline: 2px solid var(--ft-secondary); outline-offset: 2px; }

.ftt-icon { display: inline-block; flex: none; vertical-align: middle; }

/* ==========================================================================
   3. Layout
   ========================================================================== */
.ftt-container {
    width: 100%;
    max-width: var(--ft-container);
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}
.ftt-site-content { padding-bottom: calc(var(--ft-gap) * 2); }

.ftt-layout { display: grid; gap: var(--ft-gap); grid-template-columns: minmax(0, 1fr); align-items: start; }
.ftt-layout--right { grid-template-columns: minmax(0, 1fr) 320px; }
.ftt-layout--left { grid-template-columns: 320px minmax(0, 1fr); }
.ftt-layout--left .ftt-primary { order: 2; }
.ftt-layout--left .ftt-sidebar { order: 1; }

.ftt-panel {
    background: var(--ft-surface);
    padding: 20px;
    margin-bottom: var(--ft-gap);
    border-radius: var(--ft-radius);
}
body.ftt-card-border .ftt-panel,
body.ftt-card-border .ftt-widget,
body.ftt-card-border .ftt-ticker,
body.ftt-card-border .ftt-breadcrumbs { border: 1px solid var(--ft-border); }

.ftt-grid { display: grid; gap: var(--ft-gap); }
.ftt-grid--1 { grid-template-columns: 1fr; }
.ftt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ftt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ftt-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ftt-list { display: grid; gap: var(--ft-gap); }

.ftt-section-title {
    position: relative;
    font-size: 18px;
    margin: 0 0 var(--ft-gap);
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ft-border);
    letter-spacing: 0.01em;
}
body:not(.ftt-menu-normalcase) .ftt-section-title,
body:not(.ftt-menu-normalcase) .widget-title { text-transform: uppercase; }
.ftt-section-title span { position: relative; display: inline-block; }
.ftt-section-title span::after {
    content: ""; position: absolute; left: 0; bottom: -12px;
    width: 100%; min-width: 40px; height: 3px; background: var(--ft-secondary);
}
h1.ftt-section-title { font-size: 24px; }

/* ==========================================================================
   4. Announcement bar
   ========================================================================== */
.ftt-announce {
    position: relative;
    background: var(--ft-announce-bg, var(--ft-accent));
    color: var(--ft-announce-color, #fff);
    font-size: 14px;
    line-height: 1.4;
}
.ftt-announce[hidden] { display: none; }
.ftt-announce__inner {
    display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
    gap: 12px; padding: 9px 48px; text-align: center;
}
.ftt-announce a, .ftt-announce a:hover { color: inherit; }
.ftt-announce__link {
    display: inline-block; padding: 3px 12px; border: 1px solid currentColor; border-radius: 999px;
    font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap;
}
.ftt-announce__link:hover { background: rgba(255, 255, 255, 0.15); }
.ftt-announce__close {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
    background: transparent; color: inherit; padding: 6px; line-height: 0; opacity: 0.8;
}
.ftt-announce__close:hover { background: rgba(0, 0, 0, 0.15); opacity: 1; }

/* ==========================================================================
   5. Header
   ========================================================================== */
.ftt-topbar { background: var(--ft-topbar); color: #fff; font-size: 13px; }
.ftt-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; }
.ftt-topbar__date { font-weight: 700; }

.ftt-social__list { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.ftt-social__list a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; background: rgba(255, 255, 255, 0.08); color: #fff;
    border-radius: calc(var(--ft-radius) / 2);
}
.ftt-social__list a:hover { background: var(--ft-primary); color: var(--ft-on-accent); }
.ftt-social__list .ftt-icon { width: 15px; height: 15px; }

.ftt-masthead {
    background-color: var(--ft-header-bg);
    background-size: cover;
    background-position: center;
    position: relative;
}
.ftt-masthead.has-overlay::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.55); }
.ftt-masthead__inner {
    position: relative;
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
    gap: 20px; padding-top: 40px; padding-bottom: 40px;
}
.ftt-header--center .ftt-masthead__inner { flex-direction: column; text-align: center; }

.ftt-branding .custom-logo-link { display: inline-block; }
.ftt-branding .custom-logo { max-height: 120px; width: auto; }
.ftt-site-title {
    font-family: var(--ft-font-heading);
    font-weight: var(--ft-heading-weight);
    font-size: var(--ft-title-size);
    line-height: 1.1;
    margin: 0;
    letter-spacing: 0.01em;
}
body.ftt-title-upper .ftt-site-title { text-transform: uppercase; }
.ftt-site-title a { color: #fff; }
.ftt-site-title a:hover { color: #fff; opacity: 0.9; }
.ftt-site-description { margin: 4px 0 0; color: rgba(255, 255, 255, 0.85); font-size: 14px; text-transform: uppercase; letter-spacing: 0.02em; }
.ftt-header-banner { max-width: 100%; }
.ftt-header-banner img { max-height: 120px; width: auto; }
.ftt-header-banner .widget { margin: 0; background: none; padding: 0; }

/* Navigation bar */
.ftt-navbar { background: var(--ft-nav-bg, var(--ft-primary)); color: var(--ft-nav-text); position: relative; z-index: 50; }
body.ftt-sticky-nav .ftt-navbar { position: sticky; top: 0; }
body.admin-bar.ftt-sticky-nav .ftt-navbar { top: 32px; }
@media (max-width: 782px) { body.admin-bar.ftt-sticky-nav .ftt-navbar { top: 0; } }
.ftt-navbar.is-stuck { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35); }

.ftt-navbar__inner { display: flex; align-items: stretch; min-height: var(--ft-nav-height); gap: 4px; }
.ftt-navbar .ftt-branding { display: flex; align-items: center; margin-right: 12px; }
.ftt-navbar .ftt-site-title { font-size: 26px; }
.ftt-navbar .ftt-branding .custom-logo { max-height: 40px; }

.ftt-nav-icon {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; padding: 0 10px; background: transparent; color: var(--ft-nav-text);
    border-radius: 0; line-height: 0;
}
.ftt-nav-icon:hover { background: rgba(0, 0, 0, 0.15); color: var(--ft-nav-text); }
.ftt-nav-icon .ftt-icon { width: 22px; height: 22px; }
.ftt-menu-toggle { display: none; }

.ftt-primary-nav { flex: 1 1 auto; display: flex; align-items: stretch; min-width: 0; }
.ftt-menu { display: flex; flex-wrap: wrap; align-items: stretch; list-style: none; margin: 0; padding: 0; }
.ftt-menu li { position: relative; }
.ftt-menu > li { display: flex; align-items: center; }
.ftt-menu > li > a {
    display: flex; align-items: center; height: 100%;
    padding: 0 14px;
    color: var(--ft-nav-text);
    font-family: var(--ft-font-heading);
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.02em;
    position: relative;
    white-space: nowrap;
}
body:not(.ftt-menu-normalcase) .ftt-menu a { text-transform: uppercase; }
.ftt-menu > li > a::after {
    content: ""; position: absolute; left: 14px; right: 14px; bottom: 10px; height: 2px;
    background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.ftt-menu > li > a:hover::after,
.ftt-menu > li.current-menu-item > a::after,
.ftt-menu > li.current-menu-ancestor > a::after,
.ftt-menu > li.current_page_item > a::after { transform: scaleX(1); }
.ftt-menu > li > a:hover { color: var(--ft-nav-text); }

.ftt-menu-badge {
    position: absolute; top: 2px; right: 6px;
    background: var(--ft-accent); color: var(--ft-on-accent);
    font-family: var(--ft-font-body); font-size: 9px; font-weight: 700; line-height: 1;
    padding: 3px 5px; border-radius: 2px; letter-spacing: 0.02em;
}
.ftt-menu-badge::after {
    content: ""; position: absolute; left: 6px; bottom: -4px;
    border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid var(--ft-accent);
}
.ftt-menu .sub-menu .ftt-menu-badge { position: static; margin-left: 8px; vertical-align: middle; }
.ftt-menu .sub-menu .ftt-menu-badge::after { display: none; }

.ftt-submenu-toggle {
    background: transparent; color: var(--ft-nav-text); padding: 0 6px 0 0; margin-left: -10px; line-height: 0; border-radius: 0;
}
.ftt-submenu-toggle:hover { background: transparent; color: var(--ft-nav-text); }
.ftt-submenu-toggle .ftt-icon { width: 14px; height: 14px; transition: transform .2s ease; }

.ftt-menu .sub-menu, .ftt-menu .children {
    list-style: none; margin: 0; padding: 6px 0;
    position: absolute; top: 100%; left: 0; min-width: 230px;
    background: var(--ft-surface);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    border-top: 3px solid var(--ft-secondary);
    opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s;
    z-index: 60;
}
.ftt-menu .sub-menu .sub-menu, .ftt-menu .children .children { top: -9px; left: 100%; }
.ftt-menu li:hover > .sub-menu, .ftt-menu li:focus-within > .sub-menu, .ftt-menu li.is-open > .sub-menu,
.ftt-menu li:hover > .children, .ftt-menu li:focus-within > .children {
    opacity: 1; visibility: visible; transform: none;
}
.ftt-menu .sub-menu a, .ftt-menu .children a {
    display: block; padding: 8px 18px; color: var(--ft-text);
    font-family: var(--ft-font-heading); font-size: 14px; font-weight: 500;
}
.ftt-menu .sub-menu a:hover, .ftt-menu .children a:hover { background: var(--ft-surface-2); color: var(--ft-secondary); }
.ftt-menu .sub-menu .ftt-submenu-toggle { position: absolute; right: 6px; top: 8px; color: var(--ft-text); margin: 0; }

.ftt-navbar__tools { display: flex; align-items: stretch; margin-left: auto; }
.ftt-nav-cta {
    display: inline-flex; align-items: center; padding: 0 22px;
    background: var(--ft-accent); color: var(--ft-on-accent);
    font-family: var(--ft-font-heading); font-weight: 600; font-size: 15px; letter-spacing: 0.02em;
    border-radius: calc(var(--ft-radius) / 2);
    margin: 0 0 0 6px;
}
body:not(.ftt-menu-normalcase) .ftt-nav-cta { text-transform: uppercase; }
.ftt-nav-cta:hover { color: var(--ft-on-accent); filter: brightness(1.1); }
body.ftt-has-radius .ftt-nav-cta { margin: 8px 0 8px 8px; }

.ftt-mode-toggle__moon { display: none; }
body.ftt-light .ftt-mode-toggle__sun, html[data-ftt-mode="light"] .ftt-mode-toggle__sun { display: none; }
body.ftt-light .ftt-mode-toggle__moon, html[data-ftt-mode="light"] .ftt-mode-toggle__moon { display: inline-block; }
html[data-ftt-mode="dark"] .ftt-mode-toggle__sun { display: inline-block; }
html[data-ftt-mode="dark"] .ftt-mode-toggle__moon { display: none; }

.ftt-search-panel { background: var(--ft-surface); padding: 16px 0; border-bottom: 1px solid var(--ft-border); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); }
.ftt-search-panel[hidden] { display: none; }

.ftt-searchform { display: flex; gap: 0; max-width: 720px; }
.ftt-searchform .search-field { border-radius: calc(var(--ft-radius) / 2) 0 0 calc(var(--ft-radius) / 2); font-size: 16px; }
.ftt-searchform__btn { border-radius: 0 calc(var(--ft-radius) / 2) calc(var(--ft-radius) / 2) 0; line-height: 0; padding: 0 16px; }

/* Off-canvas panel */
.ftt-offcanvas { position: fixed; inset: 0; z-index: 9999; }
.ftt-offcanvas[hidden] { display: none; }
.ftt-offcanvas__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.6); }
.ftt-offcanvas__panel {
    position: absolute; top: 0; left: 0; bottom: 0; width: min(380px, 88vw);
    background: var(--ft-surface); overflow-y: auto; padding: 56px 20px 20px;
    animation: ftt-slide-in .2s ease-out;
}
.ftt-offcanvas__close { position: absolute; top: 8px; right: 8px; color: var(--ft-text); min-height: 44px; }
@keyframes ftt-slide-in { from { transform: translateX(-100%); } to { transform: none; } }

/* ==========================================================================
   6. Ticker
   ========================================================================== */
.ftt-ticker {
    display: flex; align-items: stretch; margin-top: var(--ft-gap);
    background: var(--ft-surface); height: 52px; overflow: hidden; border-radius: var(--ft-radius);
}
.ftt-ticker__label {
    flex: none; display: flex; align-items: center; gap: 12px; padding: 0 18px;
    background: var(--ft-accent); color: var(--ft-on-accent);
    font-family: var(--ft-font-heading); font-weight: 600; font-size: 15px; white-space: nowrap;
}
body:not(.ftt-menu-normalcase) .ftt-ticker__label { text-transform: uppercase; }
.ftt-ticker__icon { display: grid; grid-template-columns: 8px 8px; gap: 3px; }
.ftt-ticker__icon i { width: 8px; height: 8px; background: rgba(255, 255, 255, 0.55); }
.ftt-ticker__viewport {
    flex: 1; display: flex; overflow: hidden; min-width: 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
            mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
}
.ftt-ticker__track {
    flex: none; display: flex; align-items: center; gap: 32px; list-style: none; margin: 0; padding: 0 16px;
    animation: ftt-marquee var(--ft-ticker-speed) linear infinite;
}
.ftt-ticker__viewport:hover .ftt-ticker__track, .ftt-ticker__viewport:focus-within .ftt-ticker__track { animation-play-state: paused; }
.ftt-ticker__track a {
    display: flex; align-items: center; gap: 10px; white-space: nowrap;
    font-family: var(--ft-font-heading); font-weight: 500; font-size: 16px; color: var(--ft-heading);
}
.ftt-ticker__track a:hover { color: var(--ft-secondary); }
.ftt-ticker__track img { width: 40px; height: 32px; object-fit: cover; border-radius: calc(var(--ft-radius) / 3); }
@keyframes ftt-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) {
    .ftt-ticker__track { animation: none; }
    .ftt-ticker__track[aria-hidden="true"] { display: none; }
    .ftt-ticker__viewport { overflow-x: auto; }
}

.ftt-before-content { margin-top: var(--ft-gap); }

/* Breadcrumbs */
.ftt-breadcrumbs {
    margin-top: var(--ft-gap); padding: 10px 16px; background: var(--ft-surface);
    font-size: 13px; color: var(--ft-text-muted); border-radius: var(--ft-radius);
    white-space: nowrap; overflow-x: auto;
}
.ftt-breadcrumbs a { color: var(--ft-text); }
.ftt-breadcrumbs a:hover { color: var(--ft-secondary); }
.ftt-breadcrumbs__sep { margin: 0 8px; opacity: 0.5; }

.ftt-site-content > .ftt-layout,
.ftt-site-content > .ftt-main > .ftt-container:first-child,
.ftt-main.ftt-front { margin-top: var(--ft-gap); }

/* ==========================================================================
   7. Cards
   ========================================================================== */
.ftt-card { position: relative; display: flex; flex-direction: column; min-width: 0; }
.ftt-card__media { position: relative; }
.ftt-thumb {
    display: block; position: relative; overflow: hidden;
    aspect-ratio: 16 / 10; background: var(--ft-surface-2); border-radius: var(--ft-radius);
}
.ftt-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ftt-card:hover .ftt-thumb img { transform: scale(1.04); }
.ftt-thumb-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--ft-text-muted); }
.ftt-thumb-placeholder .ftt-icon { width: 36px; height: 36px; opacity: 0.5; }

.ftt-format {
    position: absolute; top: 12px; left: 12px; z-index: 2;
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 50%; background: var(--ft-secondary); color: var(--ft-on-accent);
}
.ftt-format .ftt-icon { width: 14px; height: 14px; }

.ftt-card__body { padding-top: 12px; }
.ftt-card__title { font-size: 18px; margin: 6px 0 6px; line-height: 1.3; }
.ftt-card__title a { color: var(--ft-heading); }
.ftt-card__title a:hover { color: var(--ft-secondary); }
.ftt-card__excerpt { color: var(--ft-text-muted); font-size: 15px; margin-top: 6px; }
.ftt-card__excerpt p { margin: 0; }

.ftt-cats { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ftt-cat {
    display: inline-block; padding: 2px 7px; font-size: 12px; font-weight: 600; line-height: 1.5;
    color: var(--ft-on-accent); background: var(--ft-cat-1); border-radius: calc(var(--ft-radius) / 3);
}
.ftt-cat:hover { color: var(--ft-on-accent); filter: brightness(1.12); }
.ftt-cat--2 { background: var(--ft-cat-2); }
.ftt-cat--3 { background: var(--ft-cat-3); }

.ftt-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--ft-text-muted); }
.ftt-meta > span { display: inline-flex; align-items: center; gap: 5px; }
.ftt-meta .ftt-icon { width: 14px; height: 14px; }
.ftt-meta a { color: inherit; font-weight: 600; }
.ftt-meta a:hover { color: var(--ft-secondary); }

/* Overlay + hero: text over the image */
.ftt-card--overlay .ftt-card__media, .ftt-card--hero .ftt-card__media { position: relative; }
.ftt-card--overlay .ftt-card__body, .ftt-card--hero .ftt-card__body {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 16px;
    background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.85) 60%);
    border-radius: 0 0 var(--ft-radius) var(--ft-radius);
    pointer-events: none;
}
.ftt-card--overlay .ftt-card__body a, .ftt-card--hero .ftt-card__body a { pointer-events: auto; }
.ftt-card--overlay .ftt-card__title a, .ftt-card--hero .ftt-card__title a,
.ftt-card--overlay .ftt-meta, .ftt-card--hero .ftt-meta { color: #fff; }
.ftt-card--overlay .ftt-card__title { font-size: 17px; }
.ftt-card--hero .ftt-thumb { aspect-ratio: 3 / 2; }
.ftt-card--hero .ftt-card__body { padding: 24px; }
.ftt-card--hero .ftt-card__title { font-size: clamp(22px, 2.6vw, 36px); }

/* List: image left */
.ftt-card--list { flex-direction: row; gap: var(--ft-gap); align-items: flex-start; padding-bottom: var(--ft-gap); border-bottom: 1px solid var(--ft-border); }
.ftt-list .ftt-card--list:last-child { border-bottom: 0; padding-bottom: 0; }
.ftt-card--list .ftt-card__media { flex: 0 0 38%; }
.ftt-card--list .ftt-card__body { padding-top: 0; }
.ftt-card--list .ftt-card__title { font-size: 21px; }

.sticky .ftt-card__title a::before { content: "★ "; color: var(--ft-secondary); }

/* Front page news sections */
.ftt-home__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ft-gap); }
.ftt-home__top .ftt-panel { margin-bottom: 0; }
.ftt-home__featured { margin-top: var(--ft-gap); }
.ftt-home .ftt-grid--2 .ftt-thumb { aspect-ratio: 16 / 10.4; }
.ftt-home-widgets { margin-top: var(--ft-gap); }

/* ==========================================================================
   8. Pagination
   ========================================================================== */
.ftt-pagination { margin-top: calc(var(--ft-gap) * 1.5); }
.ftt-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.ftt-pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px;
    border: 1px solid var(--ft-border); color: var(--ft-text); font-weight: 600; border-radius: calc(var(--ft-radius) / 2);
}
.ftt-pagination .page-numbers:hover { border-color: var(--ft-primary); color: var(--ft-primary); }
.ftt-pagination .page-numbers.current { background: var(--ft-pagination-active); color: var(--ft-on-accent); border-color: var(--ft-pagination-active); }
body.ftt-light .ftt-pagination .page-numbers.current { background: var(--ft-primary); border-color: var(--ft-primary); }

/* ==========================================================================
   9. Single, pages, content
   ========================================================================== */
.ftt-single__title, .ftt-page__title { font-size: clamp(28px, 3.4vw, 42px); margin: 10px 0 12px; }
.ftt-single__header { margin-bottom: var(--ft-gap); }
.ftt-single__image { margin: 0 0 var(--ft-gap); }
.ftt-single__image img { width: 100%; border-radius: var(--ft-radius); }
.ftt-single__image figcaption { font-size: 13px; color: var(--ft-text-muted); padding-top: 8px; }
.ftt-single__hero { position: relative; margin: -20px -20px var(--ft-gap); }
.ftt-single__hero img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--ft-radius) var(--ft-radius) 0 0; }
.ftt-single__hero-text { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.9)); }
.ftt-single__hero-text .ftt-single__title, .ftt-single__hero-text .ftt-meta, .ftt-single__hero-text .ftt-meta a { color: #fff; }

.ftt-content { overflow-wrap: break-word; }
.ftt-content > *:last-child { margin-bottom: 0; }
.ftt-content h2, .ftt-content h3, .ftt-content h4 { margin-top: 1.4em; }
.ftt-content ul, .ftt-content ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.ftt-content li > ul, .ftt-content li > ol { margin-bottom: 0; padding-top: 5px; }
.ftt-content > p:not(.has-link-color) a,
.ftt-content > ul:not(.has-link-color) a,
.ftt-content > ol:not(.has-link-color) a,
.ftt-content > .wp-block-heading:not(.has-link-color) a { color: var(--ft-link, var(--ft-primary)); text-decoration: underline; text-underline-offset: 2px; }
.ftt-content > p:not(.has-link-color) a:hover,
.ftt-content > ul:not(.has-link-color) a:hover,
.ftt-content > ol:not(.has-link-color) a:hover { color: var(--ft-secondary); }
.ftt-content .alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
.ftt-content .alignright { float: right; margin: 0.3em 0 1em 1.5em; }
.ftt-content .aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption-text, .wp-element-caption { font-size: 13px; color: var(--ft-text-muted); text-align: center; margin-top: 6px; }

/* Wide/full blocks inside the page panel */
.ftt-page .alignwide { margin-left: -20px; margin-right: -20px; max-width: none; }
.ftt-front__page .alignfull, .ftt-fullwidth .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }

.ftt-share { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 var(--ft-gap); }
.ftt-share__label { font-family: var(--ft-font-heading); font-weight: 600; margin-right: 6px; text-transform: uppercase; font-size: 14px; }
.ftt-share__btn {
    display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0;
    background: var(--ft-surface-2); color: var(--ft-text); border-radius: calc(var(--ft-radius) / 2); line-height: 0;
}
.ftt-share__btn:hover { background: var(--ft-primary); color: var(--ft-on-accent); }
.ftt-share__copy.is-copied { background: #16a34a; color: #fff; }

.ftt-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--ft-gap); }
.ftt-tags a, .tagcloud a, .wp-block-tag-cloud a {
    display: inline-block; padding: 3px 10px; font-size: 13px !important; color: var(--ft-text);
    border: 1px solid var(--ft-border); border-radius: calc(var(--ft-radius) / 2);
}
.ftt-tags a:hover, .tagcloud a:hover { border-color: var(--ft-primary); color: var(--ft-primary); }

.ftt-author-box { display: flex; gap: 16px; align-items: flex-start; margin-top: var(--ft-gap); padding: 16px; background: var(--ft-surface-2); border-radius: var(--ft-radius); }
.ftt-author-box img { border-radius: 50%; flex: none; }
.ftt-author-box__name { font-size: 18px; margin: 0 0 4px; }
.ftt-author-box p { margin: 0; color: var(--ft-text-muted); font-size: 15px; }

.ftt-postnav { margin-top: var(--ft-gap); border-top: 1px solid var(--ft-border); padding-top: var(--ft-gap); }
.ftt-postnav .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ft-gap); }
.ftt-postnav .nav-next { text-align: right; grid-column: 2; }
.ftt-postnav a { display: block; }
.ftt-postnav__label { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ft-text-muted); }
.ftt-postnav__title { font-family: var(--ft-font-heading); font-weight: 600; font-size: 17px; color: var(--ft-heading); }

.ftt-related { margin-bottom: var(--ft-gap); }
.ftt-related { background: var(--ft-surface); padding: 20px; border-radius: var(--ft-radius); }

.ftt-archive-header { margin-bottom: var(--ft-gap); }
.ftt-archive-description { color: var(--ft-text-muted); margin-top: -6px; }
.ftt-404 { text-align: center; padding: 60px 20px; }
.ftt-404__code { font-family: var(--ft-font-heading); font-size: 110px; line-height: 1; font-weight: 700; color: var(--ft-primary); margin: 0; }
.ftt-404 .ftt-searchform { margin: 20px auto; }

/* Comments */
.ftt-comment-list, .ftt-comment-list .children { list-style: none; margin: 0; padding: 0; }
.ftt-comment-list .children { padding-left: 28px; }
.ftt-comment-list .comment-body { padding: 16px 0; border-bottom: 1px solid var(--ft-border); }
.ftt-comment-list .comment-author { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.ftt-comment-list .comment-author img { border-radius: 50%; }
.ftt-comment-list .comment-metadata { font-size: 12px; margin: 4px 0 8px; }
.ftt-comment-list .comment-metadata a { color: var(--ft-text-muted); }
.ftt-comment-list .reply a { font-size: 13px; font-weight: 700; text-transform: uppercase; color: var(--ft-primary); }
.comment-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.comment-form p { margin-bottom: 14px; }

/* ==========================================================================
   10. Sidebar & widgets
   ========================================================================== */
body.ftt-sticky-sidebar .ftt-sidebar__inner { position: sticky; top: calc(var(--ft-nav-height) + var(--ft-gap)); }
body.admin-bar.ftt-sticky-sidebar .ftt-sidebar__inner { top: calc(var(--ft-nav-height) + var(--ft-gap) + 32px); }

.ftt-widget { background: var(--ft-surface); padding: 20px; margin-bottom: var(--ft-gap); border-radius: var(--ft-radius); }
.ftt-widget:last-child { margin-bottom: 0; }
.widget-title { position: relative; font-size: 18px; margin: 0 0 18px; padding-bottom: 10px; border-bottom: 1px solid var(--ft-border); }
.widget-title span { position: relative; display: inline-block; }
.widget-title span::after { content: ""; position: absolute; left: 0; bottom: -12px; width: 100%; min-width: 40px; height: 3px; background: var(--ft-secondary); }
.ftt-widget ul { list-style: none; margin: 0; padding: 0; }
.ftt-widget li { padding: 7px 0; border-bottom: 1px solid var(--ft-border); }
.ftt-widget li:last-child { border-bottom: 0; }
.ftt-widget li a { color: var(--ft-text); }
.ftt-widget li a:hover { color: var(--ft-secondary); }
.ftt-widget .wp-block-heading, .ftt-widget .wp-block-search__label { font-family: var(--ft-font-heading); font-size: 18px; color: var(--ft-heading); }
.ftt-offcanvas .ftt-widget { padding: 0; background: none; margin-bottom: 28px; }

.ftt-wlist { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.ftt-wlist__item { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0 !important; }
.ftt-wlist__item .ftt-thumb { flex: 0 0 96px; aspect-ratio: 4 / 3; }
.ftt-wlist__num {
    flex: 0 0 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
    background: var(--ft-accent); color: var(--ft-on-accent); font-family: var(--ft-font-heading); font-weight: 700; font-size: 16px;
    border-radius: calc(var(--ft-radius) / 2);
}
.ftt-wlist__body { min-width: 0; }
.ftt-wlist__title { display: block; font-family: var(--ft-font-heading); font-weight: 500; font-size: 16px; line-height: 1.35; color: var(--ft-heading) !important; }
.ftt-wlist__title:hover { color: var(--ft-secondary) !important; }
.ftt-wlist__date { display: block; font-size: 12px; color: var(--ft-text-muted); margin-top: 4px; }

/* ==========================================================================
   11. Footer
   ========================================================================== */
.ftt-disclosure { background: var(--ft-disclosure-bg, var(--ft-footer-bg)); color: rgba(255, 255, 255, 0.72); font-size: 13px; line-height: 1.6; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.ftt-disclosure .ftt-container { padding-top: 18px; padding-bottom: 18px; }
.ftt-disclosure a { color: #fff; text-decoration: underline; }
.ftt-disclosure p:last-child { margin-bottom: 0; }

.ftt-footer { background: var(--ft-footer-bg); color: rgba(255, 255, 255, 0.8); }
.ftt-footer a { color: #fff; }
.ftt-footer a:hover { color: var(--ft-secondary); }
.ftt-footer__widgets { padding: 48px 0 28px; }
.ftt-footer__grid { display: grid; gap: 32px; }
.ftt-footer__grid--2 { grid-template-columns: repeat(2, 1fr); }
.ftt-footer__grid--3 { grid-template-columns: repeat(3, 1fr); }
.ftt-footer__grid--4 { grid-template-columns: repeat(4, 1fr); }
.ftt-footer .ftt-widget { background: none; padding: 0; }
.ftt-footer .widget-title { color: #fff; border-color: rgba(255, 255, 255, 0.12); }
.ftt-footer .ftt-widget li { border-color: rgba(255, 255, 255, 0.08); }
.ftt-footer .ftt-widget li a, .ftt-footer .ftt-wlist__title { color: rgba(255, 255, 255, 0.85) !important; }
.ftt-footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.08); padding: 24px 0; }
.ftt-footer__bottom-inner { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.ftt-footer .ftt-site-title { font-size: 28px; }
.ftt-footer .ftt-site-description { color: rgba(255, 255, 255, 0.6); }
.ftt-footer__menu ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; list-style: none; margin: 0; padding: 0; }
.ftt-footer__menu a { font-family: var(--ft-font-heading); font-size: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; }
.ftt-footer__copyright { font-size: 13px; color: rgba(255, 255, 255, 0.6); }

.ftt-to-top {
    position: fixed; right: 18px; bottom: 18px; z-index: 40;
    display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
    background: var(--ft-primary); color: var(--ft-on-accent); border-radius: calc(var(--ft-radius) / 2 + 2px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}
.ftt-to-top[hidden] { display: none; }
.ftt-to-top:hover { color: var(--ft-on-accent); background: var(--ft-accent); }

/* ==========================================================================
   12. Plugin & block basics
   ========================================================================== */
/* FundedTruth Suite firm pages follow the theme width token */
.pfs-main-wrapper { max-width: var(--ft-firm-width); }
body.single-prop_firm #primary.content-area { width: 100%; }

.wp-block-search__inside-wrapper { gap: 0; }
.wp-block-search__button { margin-left: 0; }
.wp-block-separator { border-color: var(--ft-border); }
.wp-block-table td, .wp-block-table th { border-color: var(--ft-border); }
.wp-block-pullquote { border-color: var(--ft-primary); }

.ftt-canvas { background: var(--ft-bg); }

/* GTranslate dropdown kept readable on dark */
.gt_float_switcher .gt_options a { background-color: #ffffff !important; color: #444 !important; }

/* ==========================================================================
   13. Responsive
   ========================================================================== */
@media (max-width: 1200px) {
    .ftt-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ftt-menu > li > a { padding: 0 10px; font-size: 14px; }
}

@media (max-width: 992px) {
    .ftt-layout--right, .ftt-layout--left { grid-template-columns: minmax(0, 1fr); }
    .ftt-layout--left .ftt-primary, .ftt-layout--left .ftt-sidebar { order: initial; }
    body.ftt-sticky-sidebar .ftt-sidebar__inner { position: static; }
    .ftt-home__top { grid-template-columns: 1fr; }
    .ftt-grid--3, .ftt-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ftt-footer__grid--3, .ftt-footer__grid--4 { grid-template-columns: repeat(2, 1fr); }

    /* Mobile navigation */
    .ftt-menu-toggle { display: inline-flex; }
    .ftt-primary-nav {
        position: absolute; top: 100%; left: 0; right: 0;
        display: none; background: var(--ft-surface); max-height: calc(100vh - var(--ft-nav-height)); overflow-y: auto;
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
    }
    .ftt-navbar.menu-open .ftt-primary-nav { display: block; }
    .ftt-menu { flex-direction: column; flex-wrap: nowrap; padding: 8px 0; }
    .ftt-menu > li { display: block; border-bottom: 1px solid var(--ft-border); }
    .ftt-menu > li > a { display: block; padding: 12px 20px; color: var(--ft-text); height: auto; }
    .ftt-menu > li > a::after { display: none; }
    .ftt-menu-badge { position: static; margin-left: 8px; vertical-align: middle; }
    .ftt-menu-badge::after { display: none; }
    .ftt-submenu-toggle { position: absolute; right: 8px; top: 6px; margin: 0; padding: 8px 12px; color: var(--ft-text); }
    .ftt-submenu-toggle:hover { color: var(--ft-text); }
    .ftt-menu li.is-open > .ftt-submenu-toggle .ftt-icon { transform: rotate(180deg); }
    .ftt-menu .sub-menu, .ftt-menu .children {
        position: static; display: none; opacity: 1; visibility: visible; transform: none;
        box-shadow: none; border-top: 0; background: var(--ft-surface-2); padding: 0 0 0 12px; min-width: 0;
    }
    .ftt-menu li:hover > .sub-menu, .ftt-menu li:focus-within > .sub-menu { display: none; }
    .ftt-menu li.is-open > .sub-menu, .ftt-menu li.is-open > .children { display: block; }
    .ftt-menu .sub-menu .ftt-submenu-toggle { top: 2px; }
    .ftt-nav-cta { padding: 0 14px; font-size: 14px; }
}

@media (max-width: 768px) {
    :root { --ft-gap: 14px; }
    .ftt-container { padding-left: 14px; padding-right: 14px; }
    .ftt-masthead__inner { padding-top: 24px; padding-bottom: 24px; justify-content: center; text-align: center; }
    .ftt-site-title { font-size: min(var(--ft-title-size), 2.75rem); }
    .ftt-header-banner { width: 100%; display: flex; justify-content: center; }
    .ftt-topbar__inner { justify-content: center; flex-wrap: wrap; padding-top: 6px; padding-bottom: 6px; }
    .ftt-ticker__label .ftt-ticker__text, .ftt-ticker__label { font-size: 13px; padding: 0 12px; }
    .ftt-ticker__icon { display: none; }
    .ftt-card--list { flex-direction: column; }
    .ftt-card--list .ftt-card__media { flex: none; width: 100%; }
    .ftt-panel, .ftt-widget, .ftt-related { padding: 14px; }
    .ftt-single__hero { margin: -14px -14px var(--ft-gap); }
    .ftt-single__hero-text { position: static; background: var(--ft-surface-2); padding: 16px; }
    .ftt-single__hero-text .ftt-single__title, .ftt-single__hero-text .ftt-meta, .ftt-single__hero-text .ftt-meta a { color: var(--ft-heading); }
    .ftt-postnav .nav-links { grid-template-columns: 1fr; }
    .ftt-postnav .nav-next { grid-column: auto; text-align: left; }
    .ftt-nav-cta { display: none; }
}

@media (max-width: 560px) {
    .ftt-grid--2, .ftt-grid--3, .ftt-grid--4, .ftt-footer__grid--2, .ftt-footer__grid--3, .ftt-footer__grid--4 { grid-template-columns: minmax(0, 1fr); }
    .ftt-home .ftt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ftt-home .ftt-card--overlay .ftt-card__title { font-size: 14px; }
    .ftt-home .ftt-card--overlay .ftt-meta { display: none; }
    .ftt-home .ftt-card--overlay .ftt-card__body { padding: 10px; }
}

/* ==========================================================================
   14. Shine — metallic finish, hairlines and sheen (body.ftt-shine)
   Everything here is derived from the brand tokens, so it follows any
   palette; switching "Shine effects" off removes it all.
   ========================================================================== */
body.ftt-shine {
    --ft-metal: linear-gradient(135deg,
        color-mix(in srgb, var(--ft-accent) 55%, #ffffff) 0%,
        var(--ft-accent) 28%,
        color-mix(in srgb, var(--ft-accent) 72%, #000000) 52%,
        var(--ft-accent) 74%,
        color-mix(in srgb, var(--ft-accent) 60%, #ffffff) 100%);
    --ft-hairline: linear-gradient(90deg, transparent, color-mix(in srgb, var(--ft-accent) 70%, transparent) 20%, var(--ft-secondary) 50%, color-mix(in srgb, var(--ft-accent) 70%, transparent) 80%, transparent);
    --ft-edge: color-mix(in srgb, var(--ft-accent) 16%, transparent);
    --ft-glow: 0 0 0 1px color-mix(in srgb, var(--ft-accent) 35%, transparent), 0 14px 34px rgba(0, 0, 0, 0.55), 0 0 28px color-mix(in srgb, var(--ft-accent) 12%, transparent);
}

body.ftt-shine ::selection { background: var(--ft-accent); color: var(--ft-on-accent); }

/* Metallic fills */
body.ftt-shine .ftt-nav-cta,
body.ftt-shine .ftt-ticker__label,
body.ftt-shine .ftt-menu-badge,
body.ftt-shine .ftt-cat,
body.ftt-shine .ftt-wlist__num,
body.ftt-shine .ftt-to-top,
body.ftt-shine .ftt-format,
body.ftt-shine button:not(.ftt-nav-icon):not(.ftt-submenu-toggle):not(.ftt-announce__close):not(.ftt-share__btn),
body.ftt-shine input[type="submit"],
body.ftt-shine .ftt-button,
body.ftt-shine .ftt-pagination .page-numbers.current {
    background: var(--ft-metal);
    background-size: 200% 100%;
    color: var(--ft-on-accent);
    border-color: transparent;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
}
body.ftt-shine .ftt-cat--2 { background: linear-gradient(135deg, #E4E5E7, #A7A9AC 45%, #7D8086 70%, #D2D3D6); color: #0A0A0A; }
body.ftt-shine .ftt-cat--3 { background: linear-gradient(135deg, color-mix(in srgb, var(--ft-cat-3) 60%, #fff), var(--ft-cat-3) 50%, color-mix(in srgb, var(--ft-cat-3) 75%, #000)); color: var(--ft-on-accent); }
body.ftt-shine .ftt-menu-badge::after { border-top-color: var(--ft-accent); }
body.ftt-shine button:hover, body.ftt-shine input[type="submit"]:hover, body.ftt-shine .ftt-button:hover { background-position: 100% 0; color: var(--ft-on-accent); }

/* Sheen sweep on the CTA, ticker label and buttons */
body.ftt-shine .ftt-nav-cta,
body.ftt-shine .ftt-ticker__label,
body.ftt-shine .ftt-button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
body.ftt-shine .ftt-nav-cta::after,
body.ftt-shine .ftt-ticker__label::after,
body.ftt-shine .ftt-button::after {
    content: "";
    position: absolute;
    top: -50%;
    left: -60%;
    width: 40%;
    height: 200%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.55), transparent);
    transform: skewX(-20deg) translateX(-150%);
    animation: ftt-sheen 7s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}
body.ftt-shine .ftt-ticker__label::after { animation-delay: 2.5s; }
body.ftt-shine .ftt-nav-cta:hover::after,
body.ftt-shine .ftt-button:hover::after { animation: ftt-sheen-fast .8s ease-out; }
@keyframes ftt-sheen { 0%, 70% { transform: skewX(-20deg) translateX(-150%); } 100% { transform: skewX(-20deg) translateX(520%); } }
@keyframes ftt-sheen-fast { from { transform: skewX(-20deg) translateX(-150%); } to { transform: skewX(-20deg) translateX(520%); } }
body.ftt-shine .ftt-nav-cta:hover { color: var(--ft-on-accent); filter: brightness(1.08); }
body.ftt-shine .ftt-ticker__icon i { background: color-mix(in srgb, var(--ft-on-accent) 55%, transparent); }

/* Gold hairlines */
body.ftt-shine .ftt-topbar { border-bottom: 1px solid var(--ft-edge); }
body.ftt-shine .ftt-topbar__date { color: var(--ft-secondary); letter-spacing: 0.08em; text-transform: uppercase; font-size: 12px; }
body.ftt-shine .ftt-navbar { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03) inset; }
body.ftt-shine .ftt-navbar::after,
body.ftt-shine .ftt-footer::before,
body.ftt-shine .ftt-masthead::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--ft-hairline);
    pointer-events: none;
}
body.ftt-shine .ftt-navbar::after { bottom: 0; }
body.ftt-shine .ftt-masthead::after { bottom: 0; opacity: 0.35; }
body.ftt-shine .ftt-footer { position: relative; }
body.ftt-shine .ftt-footer::before { top: 0; }

/* Menu: thin gold underline instead of a white bar */
body.ftt-shine .ftt-menu > li > a { font-weight: 500; letter-spacing: 0.06em; font-size: 14px; }
body.ftt-shine .ftt-menu > li > a::after { height: 1px; bottom: 14px; background: var(--ft-hairline); }
body.ftt-shine .ftt-menu > li > a:hover,
body.ftt-shine .ftt-menu > li.current-menu-item > a,
body.ftt-shine .ftt-menu > li.current_page_item > a { color: var(--ft-secondary); }
body.ftt-shine .ftt-menu .sub-menu { border-top: 1px solid var(--ft-accent); background: color-mix(in srgb, var(--ft-surface) 92%, transparent); backdrop-filter: blur(12px); }
body.ftt-shine .ftt-menu .sub-menu a:hover { color: var(--ft-secondary); background: color-mix(in srgb, var(--ft-accent) 8%, transparent); }

/* Site title: polished silver with a gold glint */
body.ftt-shine.ftt-title-shine .ftt-site-title a {
    background: linear-gradient(100deg, #FFFFFF 0%, #D9D9D9 38%, var(--ft-secondary) 50%, #D9D9D9 62%, #FFFFFF 100%);
    background-size: 250% 100%;
    background-position: 100% 0;
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
    transition: background-position 1.2s ease;
}
body.ftt-shine.ftt-title-shine .ftt-site-title a:hover { background-position: 0 0; opacity: 1; }
body.ftt-shine .ftt-site-description { color: var(--ft-secondary); letter-spacing: 0.22em; font-size: 12px; }
body.ftt-shine .ftt-masthead { background-image: radial-gradient(ellipse 60% 120% at 85% 0%, color-mix(in srgb, var(--ft-accent) 10%, transparent), transparent 70%); }
body.ftt-shine .ftt-masthead.has-image { background-image: none; }

/* Panels, widgets, ticker: glassy surface with a gold edge */
body.ftt-shine .ftt-panel,
body.ftt-shine .ftt-widget:not(.ftt-footer .ftt-widget):not(.ftt-offcanvas .ftt-widget),
body.ftt-shine .ftt-related,
body.ftt-shine .ftt-ticker,
body.ftt-shine .ftt-breadcrumbs {
    background: linear-gradient(180deg, color-mix(in srgb, var(--ft-surface) 92%, #ffffff) 0%, var(--ft-surface) 120px);
    border: 1px solid var(--ft-edge);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 10px 30px rgba(0, 0, 0, 0.35);
}
body.ftt-shine.ftt-light .ftt-panel,
body.ftt-shine.ftt-light .ftt-widget,
body.ftt-shine.ftt-light .ftt-related,
body.ftt-shine.ftt-light .ftt-ticker,
body.ftt-shine.ftt-light .ftt-breadcrumbs { background: var(--ft-surface); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); }

/* Section titles: gold gradient rule */
body.ftt-shine .ftt-section-title,
body.ftt-shine .widget-title { border-bottom-color: var(--ft-border); font-weight: 600; letter-spacing: 0.06em; font-size: 16px; }
body.ftt-shine .ftt-section-title span::after,
body.ftt-shine .widget-title span::after { height: 2px; background: var(--ft-metal); }

/* Cards: lift + gold edge on hover */
body.ftt-shine .ftt-thumb { box-shadow: 0 0 0 1px var(--ft-edge); }
body.ftt-shine .ftt-card { transition: transform .25s ease; }
body.ftt-shine .ftt-card:hover { transform: translateY(-3px); }
body.ftt-shine .ftt-card:hover .ftt-thumb { box-shadow: var(--ft-glow); }
body.ftt-shine .ftt-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.14) 50%, transparent 65%);
    transform: translateX(-100%);
    transition: transform .8s ease;
    pointer-events: none;
}
body.ftt-shine .ftt-card:hover .ftt-thumb::after { transform: translateX(100%); }
body.ftt-shine .ftt-card--list { border-bottom-color: var(--ft-border); }
body.ftt-shine .ftt-card__title a:hover,
body.ftt-shine .ftt-wlist__title:hover { color: var(--ft-secondary) !important; }

/* Numbers read like a terminal */
body.ftt-shine .ftt-meta,
body.ftt-shine .ftt-topbar__date,
body.ftt-shine .ftt-wlist__date,
body.ftt-shine .ftt-wlist__num,
body.ftt-shine .ftt-pagination .page-numbers,
body.ftt-shine .entry-content table td { font-variant-numeric: tabular-nums; }
body.ftt-shine .ftt-meta .ftt-icon { color: var(--ft-accent); }
body.ftt-shine .ftt-404__code { background: var(--ft-metal); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* Social + share chips */
body.ftt-shine .ftt-social__list a { background: transparent; border: 1px solid var(--ft-edge); color: var(--ft-text-muted); }
body.ftt-shine .ftt-social__list a:hover { background: var(--ft-metal); color: var(--ft-on-accent); border-color: transparent; }
body.ftt-shine .ftt-share__btn:hover { background: var(--ft-metal); color: var(--ft-on-accent); }

/* Inputs */
body.ftt-shine input:focus, body.ftt-shine select:focus, body.ftt-shine textarea:focus { outline: 1px solid var(--ft-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--ft-accent) 15%, transparent); }

/* Content: gold links and quote rule */
body.ftt-shine .ftt-content blockquote { border-left: 2px solid var(--ft-accent); background: color-mix(in srgb, var(--ft-accent) 5%, transparent); border-radius: 0 var(--ft-radius) var(--ft-radius) 0; }

/* Footer */
body.ftt-shine .ftt-footer__menu a:hover,
body.ftt-shine .ftt-footer a:hover { color: var(--ft-secondary); }
body.ftt-shine .ftt-disclosure { border-bottom-color: var(--ft-edge); }

/* Scrollbar */
body.ftt-shine { scrollbar-color: color-mix(in srgb, var(--ft-accent) 55%, #333) var(--ft-bg); }
body.ftt-shine::-webkit-scrollbar { width: 10px; }
body.ftt-shine::-webkit-scrollbar-track { background: var(--ft-bg); }
body.ftt-shine::-webkit-scrollbar-thumb { background: linear-gradient(var(--ft-accent), color-mix(in srgb, var(--ft-accent) 60%, #000)); border-radius: 10px; border: 2px solid var(--ft-bg); }

@media (prefers-reduced-motion: reduce) {
    body.ftt-shine *::after { animation: none !important; transition: none !important; }
    body.ftt-shine .ftt-card:hover { transform: none; }
}
@media (max-width: 992px) {
    body.ftt-shine .ftt-menu > li > a::after { display: none; }
}

@media print {
    .ftt-topbar, .ftt-navbar, .ftt-ticker, .ftt-sidebar, .ftt-footer, .ftt-announce, .ftt-share, .ftt-related, .ftt-to-top { display: none !important; }
    body { background: #fff; color: #000; }
}
