/* ==========================================================================
   GlobalForexBonus theme — core design system
   Ported 1:1 from the approved homepage design concept.
   ========================================================================== */
  :root{
    --ink:#0C1015;
    --surface:#12171F;
    --surface-2:#181F29;
    --border:#232C38;
    --border-strong:#324357;
    --text:#ECEFF3;
    --text-dim:#ECEFF3;
    --text-faint:#57626F;
    --green:#F5B82E;
    --green-dim:#9A6F12;
    --amber:#F5B82E;
    --amber-dim:#9A6F12;
    --red:#E2564F;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    background:var(--ink);
    color:var(--text);
    font-family:'Rubik',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .mono{font-family:'Rubik',sans-serif;}
  .display{font-family:'Sora',sans-serif;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* ===== Header ===== */
  header{
    border-bottom:1px solid var(--border);
    position:sticky;
    top:0;
    z-index:100;
    background:var(--ink);
    box-shadow:0 4px 18px -4px rgba(15,23,42,0.10);
  }
  .header-row{
    display:flex; align-items:center; justify-content:space-between;
    max-width:1180px; margin:0 auto; padding:18px 32px;
  }
  .logo{display:flex; align-items:center; gap:10px;}
  .custom-logo{ max-height:30px; width:auto; display:block; }
  /* Light/dark logo swap — only relevant when both variants are set
     (see gfb_render_logo() in inc/template-tags.php). If only one logo
     exists it has no .logo-dark/.logo-light class and always shows. */
  .logo-light{ display:none; }
  html[data-theme="light"] .logo-light{ display:block; }
  html[data-theme="light"] .logo-dark{ display:none; }
  .logo-mark{
    width:30px; height:30px; border-radius:6px;
    background:var(--green); color:#1B1403;
    display:flex; align-items:center; justify-content:center;
    font-family:'Sora',sans-serif; font-weight:700; font-size:15px;
  }
  .logo-text{font-family:'Sora',sans-serif; font-weight:700; font-size:17px; letter-spacing:-0.01em;}
  .logo-text span{color:var(--green);}
  .primary-nav{display:flex; align-items:center; gap:22px;}
  .header-actions{display:flex; align-items:center; gap:14px;}

  /* ===== Primary nav — top-level items + dropdown submenus ===== */
  .primary-nav .menu-item{position:relative; display:flex; align-items:center; gap:3px;}
  .menu-link{font-family:'Sora',sans-serif; font-size:13.5px; color:var(--text-dim); font-weight:500; padding:10px 0; display:inline-block;}
  .menu-link:hover, .menu-link.active{color:var(--text);}
  .submenu-toggle{
    display:flex; align-items:center; justify-content:center;
    width:18px; height:18px; padding:0; border:0; background:transparent;
    color:var(--text-faint); cursor:pointer;
  }
  .primary-nav .menu-item:hover .menu-link,
  .primary-nav .menu-item:hover .submenu-toggle,
  .primary-nav .menu-item.submenu-open .menu-link,
  .primary-nav .menu-item.submenu-open .submenu-toggle{ color:var(--text); }
  .submenu-toggle svg{ transition:transform .15s ease; }
  .menu-item.submenu-open > .submenu-toggle svg{ transform:rotate(180deg); }

  .sub-menu{
    list-style:none;
    position:absolute; top:100%; left:-14px; margin-top:8px;
    min-width:220px; padding:8px; z-index:70;
    background:var(--surface); border:1px solid var(--border); border-radius:10px;
    box-shadow:0 16px 36px rgba(0,0,0,.35);
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:opacity .15s ease, transform .15s ease, visibility .15s;
  }
  .primary-nav .menu-item:hover > .sub-menu,
  .primary-nav .menu-item.submenu-open > .sub-menu{
    opacity:1; visibility:visible; transform:translateY(0);
  }
  .sub-menu li{ list-style:none; }
  .submenu-link{
    display:block; padding:9px 12px; border-radius:6px;
    font-family:'Sora',sans-serif; font-size:13px; color:var(--text-dim); white-space:nowrap;
  }
  .submenu-link:hover, .submenu-link.active{ background:var(--surface-2); color:var(--text); }
  .search-pill{
    display:flex; align-items:center; gap:8px;
    border:1px solid var(--border); border-radius:20px;
    padding:7px 14px; color:var(--text-faint); font-size:12.5px;
  }
  .btn-cta{
    background:var(--green); color:#1B1403;
    font-weight:600; font-size:13px;
    padding:9px 18px; border-radius:6px;
    font-family:'Sora',sans-serif;
  }

  /* ===== Ticker tape ===== */
  .ticker{
    background:var(--surface); border-bottom:1px solid var(--border);
    overflow:hidden; white-space:nowrap; position:relative;
  }
  .ticker::before, .ticker::after{
    content:''; position:absolute; top:0; bottom:0; width:60px; z-index:2;
  }
  .ticker::before{left:0; background:linear-gradient(90deg, var(--surface), transparent);}
  .ticker::after{right:0; background:linear-gradient(270deg, var(--surface), transparent);}
  .ticker-track{
    display:inline-flex; gap:0; animation:scroll 42s linear infinite;
  }
  @keyframes scroll{
    from{transform:translateX(0);} to{transform:translateX(-50%);}
  }
  .ticker-item{
    display:inline-flex; align-items:center; gap:8px;
    padding:9px 22px; font-size:12px; border-right:1px solid var(--border);
  }
  .tick-up{color:var(--green);}
  .ticker-broker{color:var(--text); font-weight:600;}
  .ticker-amt{color:var(--text-dim);}

  /* ===== Hero ===== */
  .hero{
    padding:64px 32px 56px;
    border-bottom:1px solid var(--border);
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;
  }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Rubik',sans-serif; font-size:11.5px; letter-spacing:0.06em;
    color:var(--green); text-transform:uppercase; margin-bottom:20px;
  }
  .eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px rgba(245,184,46,0.15);}
  .hero h1{
    font-family:'Sora',sans-serif; font-weight:700;
    font-size:46px; line-height:1.08; letter-spacing:-0.015em;
    margin-bottom:20px;
  }
  .hero h1 em{font-style:normal; color:var(--green);}
  .hero p{font-size:16px; color:var(--text-dim); line-height:1.65; max-width:480px; margin-bottom:28px;}
  .hero-actions{display:flex; gap:12px; margin-bottom:36px;}
  .btn-primary{
    background:var(--green); color:#1B1403; font-weight:600; font-size:14px;
    padding:13px 24px; border-radius:7px; font-family:'Sora',sans-serif;
  }
  .btn-ghost{
    border:1px solid var(--border-strong); color:var(--text); font-weight:500; font-size:14px;
    padding:13px 24px; border-radius:7px;
  }
  .hero-stats{display:flex; gap:32px;}
  .stat-num{font-family:'Rubik',sans-serif; font-size:22px; font-weight:600; color:var(--text);}
  .stat-label{font-size:11.5px; color:var(--text-faint); margin-top:2px;}

  /* hero visual: stacked voucher preview */
  .hero-visual{position:relative; height:340px;}
  .voucher-preview{
    position:absolute; width:300px;
    background:var(--surface); border:1px solid var(--border);
    border-radius:14px; overflow:hidden;
  }
  .voucher-preview.v1{top:0; right:40px; z-index:3; box-shadow:0 24px 48px -12px rgba(0,0,0,0.55);}
  .voucher-preview.v2{top:36px; right:0; z-index:2; opacity:0.55; transform:scale(0.94);}
  .voucher-preview.v3{top:72px; right:-30px; z-index:1; opacity:0.28; transform:scale(0.88);}

  /* ===== Section heading ===== */
  .section{padding:52px 32px; max-width:1180px; margin:0 auto;}
  .section-head{
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:28px;
  }
  .section-head h1, .section-head h2{
    display:flex; align-items:center; gap:10px;
    font-family:'Sora',sans-serif; font-weight:700; font-size:22px; letter-spacing:-0.01em;
  }
  .section-head h1 svg{ color:var(--green); flex-shrink:0; }
  .section-head h2 svg{ color:var(--green); flex-shrink:0; }
  .section-num{font-family:'Rubik',sans-serif; font-size:12px; color:var(--text-faint); margin-right:10px;}
  .section-link{font-size:13px; color:var(--green); font-weight:500;}

  /* ===== Featured brokers strip ===== */
  .broker-strip{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
  .broker-chip{
    border:1px solid var(--border); border-radius:10px; padding:16px;
    background:var(--surface);
  }
  .broker-chip-top{display:flex; align-items:center; gap:10px; margin-bottom:12px;}
  .broker-avatar{
    width:34px; height:34px; border-radius:8px; background:var(--surface-2);
    border:1px solid var(--border-strong);
    display:flex; align-items:center; justify-content:center;
    font-family:'Sora',sans-serif; font-weight:700; font-size:13px; color:var(--amber);
  }
  .broker-name{font-weight:600; font-size:13.5px;}
  .broker-tags{list-style:none; margin-bottom:14px;}
  .broker-tags li{
    font-size:11.5px; color:var(--text-dim); padding-left:12px; position:relative; margin-bottom:5px;
  }
  .broker-tags li::before{content:'—'; position:absolute; left:0; color:var(--text-faint);}
  .broker-visit{
    display:block; text-align:center; font-size:12px; font-weight:600;
    border:1px solid var(--border-strong); border-radius:6px; padding:8px;
    color:var(--text);
  }
  .broker-visit:hover{border-color:var(--green); color:var(--green);}

  /* ===== Tabs ===== */
  .tabs{display:flex; align-items:center; gap:6px; margin-bottom:26px; flex-wrap:wrap;}
  .tab{
    font-family:'Rubik',sans-serif; font-size:12px; padding:8px 16px;
    border-radius:20px; border:1px solid var(--border); color:var(--text-dim);
    display:inline-flex; align-items:center; gap:6px;
  }
  .tab svg{ flex-shrink:0; opacity:.85; }
  .tab.active svg{ opacity:1; }
  .tab.active{background:var(--green); color:#1B1403; border-color:var(--green); font-weight:600;}

  /* ===== Voucher card grid (signature element) ===== */
  .voucher-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .voucher{
    background:var(--surface); border:1px solid var(--border); border-radius:14px;
    position:relative; overflow:hidden;
  }
  .voucher-head{
    display:flex; align-items:center; justify-content:between; gap:10px;
    padding:16px 18px 14px;
  }
  .voucher-head-inner{display:flex; align-items:center; gap:10px; flex:1;}
  .voucher-badge{
    margin-left:auto; font-family:'Rubik',sans-serif; font-size:9.5px;
    text-transform:uppercase; letter-spacing:0.04em;
    background:rgba(245,184,46,0.12); color:var(--green);
    padding:3px 8px; border-radius:4px; white-space:nowrap;
  }
  .voucher-tear{
    position:relative; height:0; border-top:1.5px dashed var(--border-strong);
    margin:0 18px;
  }
  .voucher-tear::before, .voucher-tear::after{
    content:''; position:absolute; top:-7px; width:14px; height:14px;
    background:var(--ink); border-radius:50%; border:1px solid var(--border);
  }
  .voucher-tear::before{left:-25px;}
  .voucher-tear::after{right:-25px;}
  .voucher-body{padding:18px;}
  .voucher-amt{
    font-family:'Rubik',sans-serif; font-weight:600; font-size:32px;
    color:var(--text); line-height:1; margin-bottom:4px;
  }
  .voucher-amt sup{font-size:15px; color:var(--text-dim); font-weight:500;}
  .voucher-desc{font-size:12px; color:var(--text-dim); margin-bottom:16px;}
  .voucher-barcode{
    display:flex; gap:1.5px; height:22px; margin-bottom:14px; align-items:flex-end;
  }
  .voucher-barcode span{flex:1; background:var(--border-strong); display:block;}
  .voucher-cta{
    display:block; text-align:center; font-size:12.5px; font-weight:600;
    background:var(--surface-2); border:1px solid var(--border-strong);
    border-radius:7px; padding:10px; color:var(--text);
  }
  .voucher-cta:hover{border-color:var(--green); color:var(--green);}
  .voucher-date{
    font-family:'Rubik',sans-serif; font-size:10px; color:var(--text-faint);
    padding:10px 18px; border-top:1px solid var(--border);
  }

  /* ===== Prop firms ===== */
  .prop-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .prop-card{
    background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:20px;
    min-width:0; /* let this grid item shrink to its track instead of growing to fit
                    unbreakable content (e.g. a long regulations string) */
  }
  .prop-top{display:flex; align-items:center; gap:10px; margin-bottom:16px; min-width:0;}
  .prop-logo .broker-logo{ width:36px; height:36px; border-radius:8px; }
  .prop-logo .broker-logo.has-image{ padding:4px; }
  .prop-logo .broker-logo:not(.has-image) img{ border-radius:8px; }
  .prop-logo .broker-logo-letters{ width:36px; height:36px; font-size:13px; border-radius:8px; }
  .prop-avatar{
    width:36px; height:36px; border-radius:50%; background:var(--surface-2);
    border:1px solid var(--border-strong); display:flex; align-items:center; justify-content:center;
    font-family:'Sora',sans-serif; font-weight:700; font-size:13px; color:var(--green);
  }
  .prop-name{font-weight:600; font-size:14px;}
  .prop-list{list-style:none; margin-bottom:18px;}
  .prop-list li{font-size:12px; color:var(--text-dim); margin-bottom:6px; padding-left:14px; position:relative;}
  .prop-list li::before{content:'✓'; position:absolute; left:0; color:var(--green); font-size:11px;}
  .prop-facts{list-style:none; margin-bottom:18px;}
  .prop-facts li{display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:12px; padding:7px 0; border-bottom:1px solid var(--border); min-width:0;}
  .prop-facts li:last-child{border-bottom:none;}
  .prop-facts .prop-fact-label{color:var(--text-dim); flex-shrink:0;}
  .prop-facts .prop-fact-value{
    color:var(--text); font-weight:600; text-align:right; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis; max-width:60%;
    min-width:0; /* without this, flex items with white-space:nowrap refuse to
                    shrink below their full text width, so max-width/ellipsis
                    above never actually engage and the text overflows the card */
  }
  .prop-actions{display:flex; gap:8px;}
  .prop-actions a{flex:1; text-align:center; font-size:11.5px; font-weight:600; padding:9px; border-radius:6px;}
  .prop-actions .visit{background:var(--green); color:#1B1403;}
  .prop-actions .review{border:1px solid var(--border-strong); color:var(--text-dim);}

  /* ===== Sponsored badge — "Sponsored" tag on archive cards, a smaller
     icon-only version on compact homepage cards/rows. Pushed to the far
     right of the top row with margin-left:auto (rather than absolutely
     positioned) so it never overlaps the name/rating text. ===== */
  .sponsored-tag{
    margin-left:auto; flex-shrink:0; align-self:flex-start;
    display:inline-flex; align-items:center; gap:4px;
    font-family:'Rubik',sans-serif; font-size:10.5px; font-weight:600;
    color:var(--amber); background:rgba(245,184,46,0.14);
    border:1px solid rgba(245,184,46,0.3);
    padding:4px 9px; border-radius:20px; text-transform:uppercase; letter-spacing:.03em;
    white-space:nowrap;
  }
  .sponsored-tag svg{ flex-shrink:0; }
  .sponsored-badge-icon,
  .prop-top > .sponsored-icon{
    margin-left:auto; flex-shrink:0; align-self:flex-start;
    display:inline-flex; align-items:center; justify-content:center;
    width:24px; height:24px; border-radius:50%;
    color:var(--amber); background:rgba(245,184,46,0.14);
    border:1px solid rgba(245,184,46,0.3);
  }

  /* ===== Broker review archive grid ===== */
  .broker-review-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
  .broker-review-card .prop-top{ align-items:flex-start; }
  .broker-review-card .prop-name{ min-width:0; }
  .broker-card-rating{ display:flex; align-items:center; gap:6px; margin-top:2px; }
  .broker-card-rating .rating-score{ font-size:15px; }
  .broker-card-rating .rating-stars{ font-size:11.5px; margin:0; }
  .broker-card-tagline{ font-size:12px; color:var(--text-dim); line-height:1.55; margin-bottom:14px; }

  /* ===== Prop firm review archive grid — same single-column treatment
     as the broker archive, sharing .prop-card/.prop-facts so it gets the
     same min-width:0 overflow fix for free. ===== */
  .propfirm-review-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
  .propfirm-review-grid .prop-top{ align-items:flex-start; }
  .propfirm-review-grid .prop-name{ min-width:0; }

  /* ===== Contests split ===== */
  .contest-split{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start;}
  .contest-split-single{display:grid; grid-template-columns:1fr; align-items:start;}

  /* Contests this week — tabbed panels. Content area (All / Live / Demo
     tab panels) always takes 66.66%, the banner ad column always takes
     33.33%, regardless of which tab is active. */
  .contest-tabs-row{ display:grid; grid-template-columns:1fr; align-items:start; }
  .contest-tabs-row.has-ad{ grid-template-columns:66.66% 33.33%; gap:24px; }
  .contest-tabs-content{ min-width:0; }

  .contest-view-links{ display:flex; align-items:center; gap:16px; margin-left:auto; }
  .tab-view-link{ display:inline-flex; align-items:center; white-space:nowrap; }

  .bonus-types-split{display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; align-items:start;}
  .bonus-types-split .contest-col{background:none; border:none; padding:0;}
  .contest-col{background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:22px;}
  .contest-ad-col{ background:transparent; border:none; padding:0; display:flex; align-items:flex-start; justify-content:center; }
  .contest-col-head{display:flex; align-items:center; gap:8px; margin-bottom:16px;}
  .contest-dot{width:7px; height:7px; border-radius:50%;}
  .contest-dot.live{background:var(--red);}
  .contest-dot.demo{background:var(--amber);}
  .contest-dot.crypto{background:var(--green);}
  .contest-dot.cashback, .contest-dot.referral, .contest-dot.loyalty{background:var(--green);}
  .contest-col h3{font-family:'Sora',sans-serif; font-size:15px; font-weight:700;}
  .contest-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 0; border-bottom:1px solid var(--border);
  }
  .contest-row:last-child{border-bottom:none;}
  .contest-row-name{font-size:13px; font-weight:500;}
  .contest-row-prize{font-family:'Rubik',sans-serif; font-size:12px; color:var(--green);}

  /* ===== Reference guide ===== */
  .ref-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:12px; overflow:hidden;}
  .ref-item{background:var(--surface); padding:20px;}
  .ref-item h4{font-family:'Sora',sans-serif; font-size:13.5px; font-weight:700; margin-bottom:8px; color:var(--amber);}
  .ref-item p{font-size:12px; color:var(--text-dim); line-height:1.6;}

  /* ===== Footer ===== */
  footer{padding:48px 32px 28px;}
  .footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:36px;}
  .footer-brand p{font-size:13px; color:var(--text-dim); margin-top:12px; line-height:1.6; max-width:240px;}
  .footer-contact{ margin-top:16px; display:flex; flex-direction:column; gap:10px; }
  .footer-contact-row{
    display:flex; align-items:flex-start; gap:8px; font-size:12.5px; color:var(--text-dim);
    text-decoration:none; max-width:240px; line-height:1.5;
  }
  .footer-contact-row svg{ flex-shrink:0; margin-top:1px; color:var(--text-faint); }
  a.footer-contact-row:hover{ color:var(--green); }
  a.footer-contact-row:hover svg{ color:var(--green); }
  .footer-social{ display:flex; gap:8px; margin-top:18px; }
  .footer-social-icon{
    display:flex; align-items:center; justify-content:center;
    width:32px; height:32px; border-radius:8px; border:1px solid var(--border);
    color:var(--text-dim);
  }
  .footer-social-icon:hover{ color:var(--green); border-color:var(--green); }
  .footer-col h5{font-size:12px; text-transform:uppercase; letter-spacing:0.04em; color:var(--text-faint); margin-bottom:14px;}
  .footer-col a{display:block; font-size:13px; color:var(--text-dim); margin-bottom:10px;}
  .footer-col a:hover{color:var(--text);}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding-top:24px; border-top:1px solid var(--border);
    font-size:11.5px; color:var(--text-faint);
  }
  .risk-strip{
    background:var(--surface); border:1px solid var(--border); border-radius:8px;
    padding:12px 16px; font-size:11.5px; color:var(--text-faint); margin-bottom:50px;
  }

  /* ===== Hero grid (featured picks: 1 large + 2 medium + 2 list rows) ===== */
  .hero-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:24px; }
  .hero-main{
    position:relative; display:block; overflow:hidden; border-radius:20px;
    min-height:420px; background:var(--surface-2); border: 1px solid var(--border);
  }
  .hero-main img{ position:absolute; inset:0; width:100%; height:100%; object-fit:fill; z-index:0; }
  .hero-main.no-image{ background:linear-gradient(135deg,var(--surface-2),var(--border)); }
  .hero-badge{
    position:absolute; top:16px; right:16px; z-index:2;
    font-family:'Rubik',sans-serif; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em;
    padding:6px 10px; border-radius:20px; color:var(--text);
    background:rgba(12,16,21,.6); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.08);
  }
  .hero-main-overlay{
    position:absolute; left:0; right:0; bottom:0; z-index:1;
    padding:64px 22px 20px;
    background:linear-gradient(180deg, rgba(12,16,21,0) 0%, rgba(12,16,21,.78) 40%, rgba(12,16,21,.95) 100%);
  }
  .hero-main-title{
    font-family:'Sora',sans-serif; font-size:21px; font-weight:700; line-height:1.32; margin-bottom:8px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .hero-main-excerpt{
    font-size:13px; color:var(--text-dim); line-height:1.6; margin-bottom:14px; max-width:94%;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .hero-main-meta{ display:flex; align-items:center; gap:8px; }
  .hero-arrow{
    position:absolute; right:16px; bottom:16px; z-index:2;
    width:38px; height:38px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--surface); border:1px solid var(--border-strong); color:var(--green);
    font-size:15px; transition:background-color .15s ease, color .15s ease, transform .15s ease;
  }
  .hero-main:hover .hero-arrow{ background:var(--green); color:var(--ink); transform:translateX(2px); }

  .hero-side{ display:flex; flex-direction:column; gap:24px; }
  .hero-side-top{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .hero-mid-img{
    position:relative; overflow:hidden; border-radius:16px; aspect-ratio:4/3; background:var(--surface-2);
    display:flex; align-items:center; justify-content:center;
  }
  .hero-mid-img img{ width:100%; height:100%; object-fit:fill; display:block; }
  .hero-mid-img.no-image{ background:linear-gradient(135deg,var(--surface-2),var(--border)); }
  .hero-mid-img .hero-mid-fallback{ font-family:'Sora',sans-serif; font-weight:700; font-size:24px; color:var(--text-faint); }
  .hero-mid-img .hero-badge{ top:auto; left:12px; bottom:12px; }
  .hero-arrow-sm{ width:32px; height:32px; right:12px; bottom:12px; font-size:13px; }
  .hero-mid-title{
    font-size:14px; font-weight:600; color:var(--text); line-height:1.4; margin-top:10px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .hero-mid:hover .hero-mid-title{ color:var(--green); }
  .hero-mid-meta{ display:none; }

  /* Bottom row of the hero side column — same .hero-mid card style as
     .hero-side-top above it on desktop (image-on-top, badge + arrow). */
  .hero-side-list{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }

  @media (max-width:860px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-main{ min-height:320px; }

    /* Medium cards become post-row-style horizontal cards on mobile:
       small square thumb + title/tag/date, matching the rest of the
       post listings instead of the tall image-on-top desktop layout. */
    .hero-side-top,
    .hero-side-list{
      display:flex; flex-direction:column; gap:14px;
    }
    .hero-mid{
      display:flex; align-items:center; gap:14px; padding:12px;
      background:var(--surface); border:1px solid var(--border); border-radius:16px;
      transition:border-color .15s ease, background-color .15s ease;
    }
    .hero-mid:hover{ border-color:var(--border-strong); background:var(--surface-2); }
    .hero-mid-img{
      flex-shrink:0; width:76px; height:76px; aspect-ratio:auto; border-radius:12px;
    }
    .hero-mid-img .hero-badge, .hero-mid-img .hero-arrow-sm{ display:none; }
    .hero-mid-body{ flex:1; min-width:0; }
    .hero-mid-title{ margin-top:0; margin-bottom:8px; }
    .hero-mid-meta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  }

  /* ===== Post listing (rounded thumbnail card style) ===== */
  .post-list-grid{
    display:grid; grid-template-columns:1fr 1fr; column-gap:24px; row-gap:14px;
  }
  .post-list-grid > div, .post-list-grid-3 > div{
    display:flex; flex-direction:column; gap:14px;
  }
  .post-list-single{
    display:flex; flex-direction:column; gap:14px; min-width:0;
  }
  .post-row{
    display:flex; align-items:center; gap:14px; min-width:0;
    padding:12px; background:var(--surface); border:1px solid var(--border);
    border-radius:16px;
    transition:border-color .15s ease, background-color .15s ease, transform .15s ease;
  }
  .post-row:hover{
    border-color:var(--border-strong); background:var(--surface-2); transform:translateY(-1px);
  }
  .post-row-thumb{
    flex-shrink:0; width:76px; height:76px; border-radius:12px; overflow:hidden;
    background:var(--surface-2); display:flex; align-items:center; justify-content:center;
  }
  .post-row-thumb img{ display:block; width:100%; height:100%; object-fit:fill; }
  .post-row-thumb span{
    font-family:'Sora',sans-serif; font-weight:700; font-size:24px; color:var(--text-faint);
  }
  .post-row-main{flex:1; min-width:0;}
  .post-title{
    font-size:14.5px; font-weight:600; color:var(--text);
    line-height:1.4; margin-bottom:8px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; overflow-wrap:break-word; word-break:break-word;
  }
  .post-row:hover .post-title{color:var(--green);}
  .post-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .post-tag{
    font-family:'Rubik',sans-serif; font-size:9.5px; text-transform:uppercase;
    letter-spacing:0.04em; padding:2px 6px; border-radius:4px;
  }
  .post-tag.nodep{background:rgba(245,184,46,0.12); color:var(--green);}
  .post-tag.dep{background:rgba(245,184,46,0.12); color:var(--amber);}
  .post-tag.contest{background:rgba(226,86,79,0.12); color:var(--red);}
  .post-date{font-family:'Rubik',sans-serif; font-size:11px; color:var(--text-faint);}
  .post-tag.tag-blue,
  .post-tag.cashback{background:rgba(96,165,250,0.12); color:#60A5FA;}

  /* ===== 3-column promo layout: No deposit / Featured brokers / Deposit ===== */
  .promo-layout-3col{display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 32px; align-items:start; min-width:0; overflow-x:hidden;}
  .promo-col{min-width:0;}
  .sidebar-head{
    display:flex; align-items:center; gap:10px;
    font-family:'Sora',sans-serif; font-weight:700; font-size:19px; line-height:1.25;
    letter-spacing:-0.01em; text-transform:none; color:var(--text) !important;
    margin-bottom:26px;
  }
  .sidebar-head svg{ color:var(--green); flex-shrink:0; }
  .broker-mini{
    display:flex; align-items:center; gap:12px; padding:16px 0; border-bottom:1px solid var(--border);
  }
  .broker-mini:last-child{border-bottom:none;}
  .broker-mini-logo{
    width:44px; height:44px; border-radius:10px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    font-family:'Sora',sans-serif; font-weight:700; font-size:16px;
  }
  .broker-mini-logo img{ display:block; width:100%; height:100%; object-fit:contain; }
  .broker-mini-feats{flex:1; min-width:0;}
  .broker-mini-feats div{
    font-size:11.5px; color:var(--text-dim); line-height:1.55;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .broker-mini-btn{
    flex-shrink:0; background:var(--green); color:#1B1403; font-weight:600; font-size:11px;
    padding:8px 15px; border-radius:999px; text-align:center; white-space:nowrap;
    font-family:'Sora',sans-serif;
  }
  .broker-mini-btn:hover{background:#E3A512;}

  .post-list-grid-3{
    display:grid; grid-template-columns:repeat(3,1fr); column-gap:24px; row-gap:14px;
  }

  /* ===== Category tab panels ===== */

/* ==========================================================================
   Light mode (opt-in; <html data-theme="light"> set when the visitor picks light, dark = default / attribute absent, persisted in localStorage)
   ========================================================================== */
html[data-theme="light"]{
  --ink:#FFFFFF;
  --surface:#FFFFFF;
  --surface-2:#F0F2F5;
  --border:#E3E7EC;
  --border-strong:#C9D0D9;
  --text:#161B22;
  --text-dim:#5B6572;
  --text-faint:#8A93A0;
}
html[data-theme="light"] .voucher-tear::before,
html[data-theme="light"] .voucher-tear::after{ background:var(--ink); }

/* ==========================================================================
   Theme toggle button
   ========================================================================== */
.theme-toggle{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:8px; border:1px solid var(--border);
  background:transparent; color:var(--text-dim); cursor:pointer;
}
.theme-toggle:hover{ color:var(--text); border-color:var(--border-strong); }

/* ==========================================================================
   Mobile menu toggle + off-canvas flyout
   ========================================================================== */
.mobile-menu-toggle{
  display:none; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:8px; border:1px solid var(--border);
  background:transparent; color:var(--text-dim); cursor:pointer;
}
.mobile-menu-toggle:hover{ color:var(--text); border-color:var(--border-strong); }

.mobile-nav-overlay{
  position:fixed; inset:0; background:rgba(4,6,10,.6);
  opacity:0; visibility:hidden; transition:opacity .2s ease, visibility .2s ease;
  z-index:300;
}
.mobile-nav-overlay.is-open{ opacity:1; visibility:visible; }

.mobile-nav{
  position:fixed; top:0; right:0; bottom:0; width:min(340px, 86vw);
  background:var(--surface); border-left:1px solid var(--border);
  display:flex; flex-direction:column; overflow-y:auto;
  transform:translateX(100%); transition:transform .25s ease;
  z-index:301;
}
.mobile-nav.is-open{ transform:translateX(0); }
body.mobile-nav-open{ overflow:hidden; }

.mobile-nav-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px; border-bottom:1px solid var(--border); flex:0 0 auto;
}
.mobile-nav-head .logo{ display:flex; align-items:center; }
.mobile-nav-close{
  width:32px; height:32px; border-radius:8px; border:1px solid var(--border);
  background:transparent; color:var(--text-dim); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.mobile-nav-close:hover{ color:var(--text); border-color:var(--border-strong); }

.mobile-nav-search{ display:flex; margin:16px 18px; flex:0 0 auto; }

.mobile-nav-menu{ padding:4px 12px; flex:1 1 auto; }
.mobile-nav-menu .menu-item{
  position:static; display:flex; flex-wrap:wrap; align-items:center;
  border-bottom:1px solid var(--border);
}
.mobile-nav-menu .menu-item:last-child{ border-bottom:none; }
.mobile-nav-menu .menu-link{
  flex:1 1 auto; padding:14px 6px; font-size:14.5px; color:var(--text);
}
.mobile-nav-menu .submenu-toggle{
  width:38px; height:38px; color:var(--text-dim);
}
.mobile-nav-menu .menu-item.submenu-open > .submenu-toggle{ color:var(--text); }
.mobile-nav-menu .sub-menu{
  position:static; width:100%; margin:0 0 10px; padding:0 0 0 12px;
  background:transparent; border:0; box-shadow:none;
  opacity:1; visibility:visible; transform:none;
  display:none;
}
.mobile-nav-menu .menu-item.submenu-open > .sub-menu{ display:block; }
.mobile-nav-menu .submenu-link{ padding:10px 12px; font-size:13.5px; color:var(--text-dim); }
.mobile-nav-menu .submenu-link:hover, .mobile-nav-menu .submenu-link.active{ color:var(--text); background:var(--surface-2); }

.mobile-nav-actions{ padding:16px 18px; border-top:1px solid var(--border); flex:0 0 auto; }
.mobile-nav-actions .btn-cta{ display:block; text-align:center; }

/* ==========================================================================
   Focus visibility (accessibility, does not affect visual design at rest)
   ========================================================================== */
a:focus-visible, button:focus-visible, .tab:focus-visible{
  outline:2px solid var(--green); outline-offset:2px;
}

/* ==========================================================================
   WordPress core compatibility (alignment classes, screen-reader text)
   ========================================================================== */
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap; border:0; padding:0; margin:-1px;
}
img{ max-width:100%; height:auto; display:block; }
.alignleft{ float:left; margin:0 20px 20px 0; }
.alignright{ float:right; margin:0 0 20px 20px; }
.aligncenter{ display:block; margin:0 auto 20px; }

/* ==========================================================================
   Single post / category archive — 66.66% content / 33.33% sidebar
   ========================================================================== */
.single-layout, .archive-layout{
  display:grid; grid-template-columns:2fr 1fr; gap:0 28px; align-items:start;
}
.single-main, .archive-main{ min-width:0; }
.single-sidebar, .archive-sidebar{ border-left:0; padding-left:0; }
/* Hero "Visit broker" button is hidden on desktop — the sticky sidebar
   CTA card already covers that there. It only reappears once the layout
   stacks below 860px and the sidebar (with its own CTA) drops far below
   the fold, so mobile visitors still get an immediate CTA in the hero. */
.hero-cta-mobile{ display:none; }
@media (max-width: 860px){
  .single-layout, .archive-layout{ grid-template-columns:1fr; }
  .single-sidebar, .archive-sidebar{ border-left:none; padding-left:0; border-top:0; padding-top:0; margin-top:24px; position:static; }
  .hero-cta-mobile{ display:inline-block; }
}

/* ===== Big image-left feature cards (category archive main column) ===== */
.post-feature-list{ display:flex; flex-direction:column; gap:20px; }
.post-feature-row{
  position:relative; display:flex; gap:20px; padding:18px;
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  transition:border-color .15s ease, background-color .15s ease;
}
.post-feature-row:hover{ border-color:var(--border-strong); background:var(--surface-2); }
.post-feature-row:hover .hero-arrow{ background:var(--green); color:var(--ink); transform:translateX(2px); }
.post-feature-thumb{
  flex-shrink:0; width:180px; height:150px; border-radius:12px; overflow:hidden;
  background:var(--surface-2); display:flex; align-items:center; justify-content:center;
}
.post-feature-thumb img{ width:100%; height:100%; object-fit:fill; display:block; }
.post-feature-thumb.no-image{ background:linear-gradient(135deg,var(--surface-2),var(--border)); }
.post-feature-thumb span{ font-family:'Sora',sans-serif; font-weight:700; font-size:32px; color:var(--text-faint); }
.post-feature-body{ flex:1; min-width:0; padding-right:52px; }
.post-feature-body .post-meta{ margin-bottom:10px; }
.post-feature-title{
  font-family:'Sora',sans-serif; font-size:17px; font-weight:700; color:var(--text); line-height:1.3; margin-bottom:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.post-feature-excerpt{
  font-size:13px; color:var(--text-dim); line-height:1.6;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.post-feature-arrow{ right:18px; bottom:18px; }
@media (max-width:640px){
  .post-feature-row{ flex-direction:column; }
  .post-feature-thumb{ width:100%; height:180px; }
  .post-feature-body{ padding-right:0; padding-bottom:44px; }
}

/* ==========================================================================
   RankMath breadcrumbs (single post) — themed to match the design tokens.
   RankMath outputs its own markup/links; we just style it, no structure
   assumptions beyond ".fxd-breadcrumbs" being the wrapper we control.
   ========================================================================== */
.fxd-breadcrumbs{
  font-family:'Rubik',sans-serif; font-size:11.5px; letter-spacing:0.01em;
  color:var(--text-faint); margin-bottom:20px;
}
.fxd-breadcrumbs p{ margin:0; }
.fxd-breadcrumbs a{ color:var(--text-dim); }
.fxd-breadcrumbs a:hover{ color:var(--green); }
.fxd-breadcrumbs .separator{ margin:0 6px; color:var(--text-faint); }
.fxd-breadcrumbs .last{ color:var(--text-dim); }

/* Empty-state (no posts yet in a category) */
.fxd-empty{
  font-size:13px; color:var(--text-faint); padding:24px 0;
}

/* Pagination */
.fxd-pagination{ display:flex; gap:8px; justify-content:center; padding:32px 0 0; }
.fxd-pagination a, .fxd-pagination span{
  font-family:'Rubik',sans-serif; font-size:12px; padding:8px 14px;
  border:1px solid var(--border); border-radius:6px; color:var(--text-dim);
}
.fxd-pagination .current{ background:var(--green); color:#1B1403; border-color:var(--green); font-weight:600; }
.fxd-pagination a:hover{ border-color:var(--green); color:var(--green); }

/* Skip link */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999999;
  background:var(--green); color:#1B1403; padding:12px 20px; font-weight:600;
}
.skip-link:focus{ left:16px; top:16px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1080px){
  .voucher-grid, .prop-grid{ grid-template-columns:repeat(2,1fr); }
  .broker-strip{ grid-template-columns:repeat(3,1fr); }
  .promo-layout-3col{ grid-template-columns:1fr; }
  .promo-col:not(:first-child){ border-left:none; padding-left:0; border-top:1px solid var(--border); padding-top:24px; margin-top:8px; }
}
@media (max-width: 860px){
  .primary-nav{ display:none; }
  .mobile-menu-toggle{ display:flex; }
  /* Mobile header order: logo — CTA — dark/light toggle — hamburger */
  /* Header CTA hidden on mobile — it stays available inside the mobile menu */
  .header-actions .btn-cta{ display:none; }
  .header-actions .search-toggle{ order:2; }
  .header-actions .theme-toggle{ order:3; }
  .header-actions .mobile-menu-toggle{ order:4; }
  .post-list-grid, .post-list-grid-3, .contest-split, .bonus-types-split{ grid-template-columns:1fr; column-gap:0; }
  .contest-tabs-row.has-ad{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; gap:28px; }
  .ref-grid{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .wrap, .section, .header-row{ padding-left:18px; padding-right:18px; }
  .voucher-grid, .prop-grid, .broker-strip{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:8px; }
}

/* ==========================================================================
   Post content typography — headings, links, lists, tables inside
   .entry-content. Browser defaults are otherwise unstyled/off-brand.
   ========================================================================== */
.entry-content{ font-size:15px; line-height:1.75; color:var(--text-dim); }
.entry-content h2,
.entry-content h3,
.entry-content h4{
  font-family:'Sora',sans-serif; font-weight:700; color:var(--text);
  letter-spacing:-0.01em; line-height:1.25;
  margin:1.6em 0 0.7em;
}
.entry-content h2{ font-size:22px; }
.entry-content h3{ font-size:17px; }
.entry-content h4{ font-size:15px; }
.entry-content > *:first-child{ margin-top:0; }
.entry-content p{ margin:0 0 1.1em; }
.entry-content a{ color:var(--green); text-decoration:underline; text-underline-offset:2px; }
.entry-content a:hover{ color:var(--text); }
.entry-content strong{ color:var(--text); font-weight:600; }
.entry-content img{ border-radius:12px; border:1px solid var(--border); margin:0.4em 0 1.4em; }
.entry-content blockquote{
  margin:0 0 1.4em; padding:14px 18px; border-left:2px solid var(--green);
  background:var(--surface); border-radius:0 8px 8px 0; color:var(--text-dim); font-size:14px;
}
.entry-content table{ width:100%; border-collapse:collapse; margin:0 0 1.4em; font-size:13.5px; }
.entry-content table th, .entry-content table td{
  border:1px solid var(--border); padding:8px 12px; text-align:left;
}
.entry-content table th{ background:var(--surface); font-family:'Sora',sans-serif; color:var(--text); }
.entry-content ul:not([class]), .entry-content ol:not([class]){ padding-left:1.3em; margin:0 0 1.1em; }
.entry-content ul:not([class]) li, .entry-content ol:not([class]) li{ margin-bottom:0.4em; }

/* ==========================================================================
   Bonus post content components — "How to claim" numbered steps,
   "Promotion details & terms" checklist, FAQ cards.
   ========================================================================== */

/* How to claim — numbered steps */
ol.fxd-claim-list{
  list-style:none; counter-reset:fxd-claim; padding:0; margin:0 0 1.5em;
}
ol.fxd-claim-list li{
  counter-increment:fxd-claim;
  display:flex; align-items:flex-start; gap:14px;
  padding:12px 14px; margin-bottom:8px;
  background:var(--surface); border:1px solid var(--border); border-left:2px solid var(--green);
  border-radius:8px; font-size:13.5px; line-height:1.6; color:var(--text-dim);
}
ol.fxd-claim-list li::before{
  content:counter(fxd-claim);
  flex-shrink:0; display:inline-flex; align-items:center; justify-content:center;
  width:25px; height:25px; margin-top:1px;
  background:var(--green); color:#1B1403;
  font-family:'Rubik',sans-serif; font-weight:600; font-size:12px;
  border-radius:50%;
}

/* Promotion details & terms — checklist */
ul.fxd-terms-list{ list-style:none; padding:0; margin:0 0 1.5em; }
ul.fxd-terms-list li{
  display:flex; align-items:flex-start; gap:10px;
  padding:10px 16px; margin-bottom:6px;
  background:var(--surface); border:1px solid var(--border); border-radius:6px;
  font-size:13.5px; line-height:1.55; color:var(--text-dim);
}
ul.fxd-terms-list li::before{
  content:"\2714"; flex-shrink:0; color:var(--green); font-weight:700; font-size:13px; margin-top:2px;
}

/* FAQ cards */
.fxd-faq-card{
  border:1px solid var(--border); border-left:2px solid var(--green); border-radius:6px;
  padding:14px 18px; margin-bottom:10px; background:var(--surface);
}
.fxd-faq-card h3{
  margin:0 0 6px; font-family:'Sora',sans-serif; font-size:14px; font-weight:700; color:var(--green);
}
.fxd-faq-card p{ margin:0; font-size:13px; color:var(--text-dim); line-height:1.6; }

/* ==========================================================================
   Broker Review single template — hero, facts table, bio, pros/cons, verdict
   ========================================================================== */

/* Sub-section heading, sized for the 66% single-post content column
   (the homepage's .section-head h2 at 22px is too large in this context). */
.sec-head{ margin:36px 0 16px; }
.sec-head:first-of-type{ margin-top:0; }
.sec-head h2{ font-family:'Sora',sans-serif; font-weight:700; font-size:18px; letter-spacing:-0.01em; }

/* Hero */
.broker-hero{
  display:flex; justify-content:space-between; align-items:flex-start; gap:24px;
  padding-bottom:24px; border-bottom:1px solid var(--border); margin-bottom:28px; flex-wrap:wrap;
}
.broker-hero-left{ display:flex; gap:16px; }
.broker-logo{
  flex-shrink:0; width:56px; height:56px; border-radius:12px; overflow:hidden;
  box-sizing:border-box;
}
.broker-logo.has-image{
  background:#fff; border:1px solid var(--border); padding:8px;
  display:flex; align-items:center; justify-content:center;
}
.broker-logo.has-image img{ display:block; width:100%; height:100%; object-fit:contain; }
.broker-logo:not(.has-image) img{ display:block; width:100%; height:100%; object-fit:cover; border-radius:12px; }
.broker-logo-letters{
  display:flex; align-items:center; justify-content:center; border-radius:12px;
  font-family:'Sora',sans-serif; font-weight:700; font-size:20px;
}

/* Hero logo — larger than the base 56px default */
.broker-logo-hero{ width:90px; height:90px; }
.broker-logo-hero.has-image{ padding:14px; }
.broker-logo-hero .broker-logo-letters{ font-size:32px; }
.broker-hero-tags{ display:flex; gap:8px; margin-bottom:10px; }
.pill{
  font-family:'Rubik',sans-serif; font-size:11px; padding:4px 10px;
  border-radius:20px; border:1px solid var(--border-strong); color:var(--text-dim);
}
.pill.regulated{ background:rgba(245,184,46,.12); border-color:var(--green); color:var(--green); }
.broker-hero-title{ font-size:24px; letter-spacing:-.01em; margin-bottom:6px; }
.broker-hero-tagline{ color:var(--text-dim); font-size:13.5px; max-width:440px; margin-bottom:20px; }
.broker-hero-rating{
  flex-shrink:0; text-align:center; background:var(--surface); border:1px solid var(--border);
  border-radius:12px; padding:14px 22px;
}
.rating-score{ font-family:'Sora',sans-serif; font-weight:700; font-size:26px; color:var(--green); }
.rating-stars{ color:#E2A83A; font-size:13px; margin:3px 0; letter-spacing:1px; }
.rating-label{ font-family:'Rubik',sans-serif; font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.05em; }

/* ===== Social share row (single.php / single-broker_review.php /
   single-prop_firm_review.php — same "Last updated" spot in all three) ===== */
.share-buttons{
  display:flex; align-items:center; flex-wrap:wrap; gap:12px;
  margin-top:24px; padding-top:20px; border-top:1px solid var(--border);
}
.share-label{ font-family:'Sora',sans-serif; font-weight:600; font-size:13px; color:var(--text-dim); }
.share-icons{ display:flex; align-items:center; gap:8px; }
.share-icon{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  width:34px; height:34px; padding:0; border-radius:50%;
  background:var(--surface); border:1px solid var(--border-strong); color:var(--text-dim);
  cursor:pointer; transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
.share-icon svg{ flex-shrink:0; }
.share-icon:hover{ border-color:var(--green); color:var(--green); background:rgba(245,184,46,.08); }
.share-icon.share-copy{ width:auto; padding:0 12px; border-radius:20px; font-family:'Rubik',sans-serif; font-size:12px; font-weight:600; }
.share-icon.share-copy.is-copied{ border-color:var(--green); color:var(--green); background:rgba(245,184,46,.08); }

/* Broker facts table */
.facts-table{ border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.fact-row{
  display:grid; grid-template-columns:180px 1fr; gap:16px;
  padding:13px 16px; background:var(--surface); border-bottom:1px solid var(--border);
}
.fact-row:last-child{ border-bottom:none; }
.fact-row:nth-child(even){ background:var(--surface-2); }
.fact-label{ display:flex; align-items:center; gap:8px; font-weight:600; font-size:13px; color:var(--text); }
.fact-label .fi{ color:var(--green); flex-shrink:0; }
.fact-value{ font-size:13px; color:var(--text-dim); line-height:1.6; }

/* Bio */
.broker-bio p{ color:var(--text-dim); font-size:15px; line-height:1.75; }

/* Pros / cons */
.pros-cons{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:36px 0; }
.pc-col{ background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:16px 18px; }
.pc-col h3{ font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-family:'Rubik',sans-serif; margin:0 0 10px; }
.pc-col.pros h3{ color:var(--green); }
.pc-col.cons h3{ color:#E2534A; }
.pc-col ul{ list-style:none; margin:0; padding:0; }
.pc-col li{ display:flex; gap:8px; font-size:13px; color:var(--text-dim); margin-bottom:8px; line-height:1.5; }
.pc-col.pros li:before{ content:"✓"; color:var(--green); flex-shrink:0; }
.pc-col.cons li:before{ content:"✕"; color:#E2534A; flex-shrink:0; }

/* Verdict */
.verdict{ background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:22px 24px; margin-bottom:20px; }
.verdict h2{ font-family:'Sora',sans-serif; font-size:17px; margin-bottom:10px; }
.verdict p{ color:var(--text-dim); font-size:15px; line-height:1.75; margin-bottom:22px; }
.verdict-bars{ display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; margin-bottom:22px; }
.vbar-row{ display:flex; align-items:center; gap:10px; }
.vbar-label{ font-size:12px; color:var(--text-dim); width:90px; flex-shrink:0; }
.vbar-track{ flex:1; height:6px; background:var(--surface-2); border-radius:4px; overflow:hidden; }
.vbar-fill{ height:100%; background:var(--green); border-radius:4px; }
.vbar-score{ font-family:'Rubik',sans-serif; font-size:11px; color:var(--text); width:26px; text-align:right; }

/* "Full review" divider before the_content() */
.content-divider{ display:flex; align-items:center; gap:12px; margin:36px 0 24px; }
.content-divider .line{ flex:1; height:1px; background:var(--border); }
.content-divider span{
  font-family:'Rubik',sans-serif; font-size:11px; color:var(--text-faint);
  text-transform:uppercase; letter-spacing:.06em;
}

/* Sidebar CTA card (broker logo, name, rating, "Visit broker") */
.broker-cta-card{
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:20px; text-align:center; margin-bottom:24px;
}
.cta-card-logo{ display:flex; justify-content:center; margin-bottom:12px; }
.cta-card-logo .broker-logo{ width:48px; height:48px; }
.cta-card-logo .broker-logo.has-image{ padding:6px; }
.cta-card-logo .broker-logo-letters{ width:48px; height:48px; font-size:16px; }

/* Small logo thumbnail in "Recent broker reviews" sidebar rows */
.post-row-logo{ flex-shrink:0; }
.post-row-logo .broker-logo{ width:44px; height:44px; border-radius:10px; }
.post-row-logo .broker-logo.has-image{ padding:5px; }
.post-row-logo .broker-logo:not(.has-image) img{ border-radius:10px; }
.post-row-logo .broker-logo-letters{ width:44px; height:44px; font-size:15px; border-radius:10px; }
.cta-card-name{
  font-family:'Sora',sans-serif; font-weight:700; font-size:15px;
  color:var(--text); margin-bottom:8px;
}
.cta-card-rating{ display:flex; align-items:center; justify-content:center; gap:6px; margin-bottom:16px; }
.cta-card-rating .rating-score{ font-size:16px; }
.cta-card-rating .rating-stars{ font-size:12px; margin:0; }
.cta-card-btn{ display:block; width:100%; text-align:center; }

/* Sticky sidebar — sticks while scrolling past the (taller) article
   column, releases naturally once the article ends (align-items:start
   on .single-layout keeps the sidebar at its own content height rather
   than stretching to match the article, which is required for sticky
   to have room to move). */
.single-sidebar, .archive-sidebar{ position:sticky; top:90px; }

@media (max-width: 700px){
  .fact-row{ grid-template-columns:1fr; gap:4px; }
  .pros-cons{ grid-template-columns:1fr; }
  .verdict-bars{ grid-template-columns:1fr; }

  /* Broker hero — the root issue on phone widths was .broker-hero-left
     staying a row (logo beside text) at every viewport size, which
     squeezed the title/pills into a narrow column next to the 90px logo.
     Stack logo above content instead, and let everything go full width. */
  .broker-hero{ flex-direction:column; align-items:stretch; gap:20px; }
  .broker-hero-left{ flex-direction:column; gap:14px; }
  .broker-logo-hero{ width:72px; height:72px; }
  .broker-logo-hero.has-image{ padding:11px; }
  .broker-logo-hero .broker-logo-letters{ font-size:26px; }
  .broker-hero-tags{ flex-wrap:wrap; }
  .broker-hero-tagline{ max-width:none; }
}

/* ==========================================================================
   Ad slots (Customizer-driven: top banner + Contests-section rectangle)
   ========================================================================== */
.ad-slot-wrap{ max-width:1180px; margin:0 auto; padding:24px 32px 0; }
.ad-slot-banner-row{ display:flex; flex-wrap:wrap; gap:20px; justify-content:center; }
.ad-slot-banner-row .ad-slot{ flex:1 1 0; min-width:280px; }
.sidebar-ad-slot{ margin-top:28px; padding-top:24px; border-top:1px solid var(--border); }
.ad-slot{ position:relative; margin:0 auto; }
.bonus-board-list-heading{
  display:flex; align-items:center; gap:10px;
  font-family:'Sora',sans-serif; font-weight:700; font-size:22px; letter-spacing:-0.01em;
  margin-bottom:28px;
}
.bonus-board-list-heading svg{ color:var(--green); flex-shrink:0; }
.ad-slot-placeholder{
  display:flex; align-items:center; justify-content:center; text-align:center;
  border:1px dashed var(--border-strong); border-radius:10px;
  color:var(--text-faint); font-size:12px; padding:16px;
}
@media (max-width: 560px){
  .ad-slot-wrap{ padding-left:18px; padding-right:18px; }
}
@media (max-width: 860px){
  .ad-slot-hide-mobile{ display:none; }
}
.ad-slot-banner-row-header > .ad-slot,
.ad-slot-banner-row-header > .ad-slot-hide-mobile{ flex:1 1 0; min-width:280px; }
.ad-slot-banner-row-header > .ad-slot-hide-mobile .ad-slot{ max-width:none; }

/* ==========================================================================
   "Browse by category" section — heading, tabs, and post list centered
   ========================================================================== */
.section-browse .section-head{ justify-content:center; }
.section-browse .tabs{ justify-content:center; flex-wrap:wrap; }


/* ==========================================================================
   "Forex bonus board" — ad / crypto post list / ad, 3 equal columns
   ========================================================================== */
.bonus-board-3col{ display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:0 32px; }
.bonus-board-3col.has-left-ad.has-right-ad{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
.bonus-board-3col.has-left-ad:not(.has-right-ad),
.bonus-board-3col.has-right-ad:not(.has-left-ad){ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.bonus-board-ad{ display:flex; justify-content:center; min-width:0; }
.bonus-board-ad .ad-slot,
.contest-ad-col .ad-slot{ margin:0; max-width:none !important; width:100%; }
.bonus-board-3col .bonus-board-ad:first-child{ justify-content:flex-start; }
.bonus-board-3col .bonus-board-ad:last-child{ justify-content:flex-end; }
.bonus-board-list{ min-width:0; }

@media (max-width: 860px){
  .bonus-board-3col.has-left-ad.has-right-ad,
  .bonus-board-3col.has-left-ad:not(.has-right-ad),
  .bonus-board-3col.has-right-ad:not(.has-left-ad){ grid-template-columns:1fr; }
  /* Mobile: the banner sits ABOVE the Crypto Bonus list (left ad, or the
     right ad when it is the only one). With both, the right ad stays below. */
  .bonus-board-list{ order:0; }
  .bonus-board-3col.has-left-ad > .bonus-board-ad:first-child{ order:-1; margin-bottom:24px; }
  .bonus-board-3col.has-right-ad:not(.has-left-ad) > .bonus-board-ad{ order:-1; margin-bottom:24px; }
  .bonus-board-3col.has-left-ad.has-right-ad > .bonus-board-ad:last-child{ margin-top:24px; }
}

/* ==========================================================================
   "Recent brokers added" homepage grid — 3 columns
   ========================================================================== */
.broker-recent-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 24px; }
.broker-recent-col{ display:flex; flex-direction:column; gap:14px; }
.broker-row{
  display:flex; align-items:center; gap:12px;
  padding:12px; background:var(--surface); border:1px solid var(--border); border-radius:16px;
  text-decoration:none; color:inherit;
  transition:border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.broker-row:hover{ border-color:var(--border-strong); background:var(--surface-2); transform:translateY(-1px); }
.broker-row-logo{ flex-shrink:0; width:40px; height:40px; border-radius:10px; overflow:hidden; }
.broker-row-logo.has-image{
  background:#fff; border:1px solid var(--border); padding:5px; box-sizing:border-box;
  display:flex; align-items:center; justify-content:center;
}
.broker-row-logo.has-image img{ width:100%; height:100%; object-fit:contain; }
.broker-row-logo .broker-logo-letters{ font-size:14px; }
.broker-row-main{ flex:1; min-width:0; }
.broker-row-name{
  display:flex; align-items:center; gap:5px;
  font-family:'Sora',sans-serif; font-weight:600; font-size:14.5px; color:var(--text);
  margin-bottom:5px;
}
.broker-row-name-text{
  min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sponsored-icon{ flex-shrink:0; display:inline-flex; color:var(--amber); }
.sponsored-icon svg{ display:block; }
.broker-row-meta{ display:flex; align-items:center; gap:8px; }
.broker-row-rating{
  font-family:'Rubik',sans-serif; font-size:11px; padding:2px 8px;
  border-radius:20px; background:rgba(245,184,46,.12); color:var(--green); font-weight:600;
}
.broker-row-date{ font-family:'Rubik',sans-serif; font-size:11.5px; color:var(--text-faint); }
.broker-row-arrow{ color:var(--text-faint); font-size:14px; flex-shrink:0; }
.broker-row:hover .broker-row-arrow{ color:var(--green); }
.broker-row:hover .broker-row-name{ color:var(--green); }

@media (max-width: 860px){
  .broker-recent-grid{ grid-template-columns:1fr; gap:0; }
}

/* ==========================================================================
   Comments — styles WordPress's standard comment_form()/wp_list_comments()
   markup (the theme has no custom comments.php) so it matches the rest of
   the design instead of falling back to unstyled browser defaults. Applies
   wherever comments_template() is called (single.php, single-broker_review.php).
   ========================================================================== */
#comments, .comments-area{
  margin-top:8px; padding-top:32px; border-top:1px solid var(--border);
}
.comments-title, .comment-reply-title{
  font-family:'Sora',sans-serif; font-weight:700; font-size:19px; color:var(--text);
  margin:0 0 20px;
}
.comment-reply-title small{ font-size:12px; font-weight:400; margin-left:8px; }
.comment-reply-title small a{ color:var(--green); text-decoration:none; }

/* Comment list */
.comment-list{ list-style:none; margin:0 0 32px; padding:0; }
.comment-list .children{ list-style:none; margin:0; padding:0 0 0 32px; }
.comment-list > li{ margin-bottom:20px; }
.comment-body{
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  padding:16px 18px;
}
.comment-author{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.comment-author .avatar{ border-radius:50%; width:32px; height:32px; }
.comment-author .fn{
  font-family:'Sora',sans-serif; font-weight:600; font-size:13.5px; color:var(--text); font-style:normal;
}
.comment-metadata{ margin-bottom:10px; }
.comment-metadata a{
  font-family:'Rubik',sans-serif; font-size:11.5px; color:var(--text-faint); text-decoration:none;
}
.comment-content p{ color:var(--text-dim); font-size:14px; line-height:1.7; margin:0 0 10px; }
.comment-content p:last-child{ margin-bottom:0; }
.comment-awaiting-moderation{
  display:inline-block; font-size:12px; color:var(--amber); font-style:italic; margin-top:6px;
}
.reply{ margin-top:10px; }
.comment-reply-link{
  font-family:'Rubik',sans-serif; font-size:11.5px; color:var(--green);
  text-decoration:none; border:1px solid var(--border-strong); border-radius:20px; padding:4px 12px;
}
.comment-reply-link:hover{ border-color:var(--green); }
.no-comments{ color:var(--text-faint); font-size:14px; margin-bottom:32px; }

/* Comment form */
.comment-respond{
  background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:24px 26px;
}
.comment-notes, .logged-in-as{ color:var(--text-dim); font-size:13px; margin:0 0 18px; }
.logged-in-as a{ color:var(--green); text-decoration:none; }
.required-field-message{ color:var(--text-faint); }
.comment-form-comment,
.comment-form-author, .comment-form-email, .comment-form-url, .comment-form-cookies-consent{
  margin-bottom:16px;
}
.comment-form label{
  display:block; font-family:'Sora',sans-serif; font-weight:600; font-size:13px; color:var(--text);
  margin-bottom:6px;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea{
  width:100%; background:var(--surface-2); border:1px solid var(--border-strong); border-radius:8px;
  padding:11px 14px; color:var(--text); font-family:'Rubik',sans-serif; font-size:14px;
  box-sizing:border-box;
}
.comment-form textarea{ min-height:130px; resize:vertical; }
.comment-form input:focus, .comment-form textarea:focus{
  outline:none; border-color:var(--green);
}
.comment-form-cookies-consent{ display:flex; align-items:center; gap:8px; }
.comment-form-cookies-consent label{ margin:0; font-weight:400; color:var(--text-dim); }
.form-submit{ margin:4px 0 0; }
.comment-form input#submit, .form-submit input[type="submit"]{
  background:var(--green); color:#1B1403; border:none; border-radius:7px;
  padding:12px 26px; font-family:'Sora',sans-serif; font-weight:600; font-size:14px; cursor:pointer;
}
.comment-form input#submit:hover{ opacity:.92; }

@media (max-width: 560px){
  .comment-respond{ padding:20px; }
  .comment-list .children{ padding-left:16px; }
}

/* ==========================================================================
   Back to top button — fixed bottom-right, hidden until scrolled,
   shown/hidden via .is-visible (toggled in assets/js/main.js).
   ========================================================================== */
.back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:44px; height:44px; border-radius:50%; border:none;
  background:var(--green); color:#1B1403;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 8px 20px -4px rgba(0,0,0,.4);
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ opacity:.9; }
@media (max-width: 560px){
  .back-to-top{ right:16px; bottom:16px; width:40px; height:40px; }
}

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-hero{
  padding-bottom:8px;
}
.contact-hero p{
  color:var(--text-dim); font-size:15px; max-width:560px; margin-top:10px; line-height:1.6;
}

/* Success / error banner after form submit (redirected back with ?gfb_contact=) */
.gfb-alert{
  display:flex; align-items:flex-start; gap:10px;
  border-radius:10px; padding:14px 16px; font-size:13.5px; line-height:1.55; margin-bottom:22px;
}
.gfb-alert svg{ flex-shrink:0; margin-top:1px; }
.gfb-alert.success{ background:rgba(245,184,46,0.1); border:1px solid rgba(245,184,46,0.35); color:var(--green); }
.gfb-alert.error{ background:rgba(226,86,79,0.1); border:1px solid rgba(226,86,79,0.35); color:var(--red); }

/* Form card */
.gfb-contact-form{
  background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:28px;
}
.gfb-field{ margin-bottom:18px; }
.gfb-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.gfb-field label{
  display:block; font-family:'Sora',sans-serif; font-weight:600; font-size:13px; color:var(--text);
  margin-bottom:7px;
}
.gfb-field .req{ color:var(--red); }
.gfb-field input[type="text"],
.gfb-field input[type="email"],
.gfb-field select,
.gfb-field textarea{
  width:100%; background:var(--surface-2); border:1px solid var(--border-strong); border-radius:8px;
  padding:12px 14px; color:var(--text); font-family:'Rubik',sans-serif; font-size:14px;
  box-sizing:border-box; appearance:none;
}
.gfb-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2357626F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:38px; cursor:pointer;
}
.gfb-field textarea{ min-height:150px; resize:vertical; }
.gfb-field input:focus, .gfb-field select:focus, .gfb-field textarea:focus{
  outline:none; border-color:var(--green);
}
.gfb-field-hint{ font-size:12px; color:var(--text-faint); margin-top:6px; }
.gfb-honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.gfb-submit-row{ display:flex; align-items:center; gap:14px; margin-top:4px; }
.gfb-submit-btn{
  background:var(--green); color:#1B1403; border:none; border-radius:7px;
  padding:13px 28px; font-family:'Sora',sans-serif; font-weight:600; font-size:14px; cursor:pointer;
}
.gfb-submit-btn:hover{ opacity:.92; }
.gfb-submit-note{ font-size:12px; color:var(--text-faint); }

/* Sidebar info cards */
.contact-info-card{
  background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:22px;
  margin-bottom:16px;
}
.contact-info-card h3{
  font-family:'Sora',sans-serif; font-weight:700; font-size:13px; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--text-faint); margin-bottom:16px;
}
.contact-info-row{
  display:flex; align-items:flex-start; gap:12px; text-decoration:none; color:var(--text);
}
.contact-info-row + .contact-info-row{ margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.contact-info-icon{
  flex-shrink:0; width:36px; height:36px; border-radius:9px; background:var(--surface-2);
  display:flex; align-items:center; justify-content:center; color:var(--green);
}
.contact-info-row:hover .contact-info-icon{ background:rgba(245,184,46,0.12); }
.contact-info-label{ font-size:11.5px; color:var(--text-faint); margin-bottom:2px; }
.contact-info-value{ font-size:14px; font-weight:500; color:var(--text); line-height:1.4; }
.contact-info-row:hover .contact-info-value{ color:var(--green); }

/* Mini FAQ accordion (contact sidebar) */
.contact-faq-item{ border-bottom:1px solid var(--border); }
.contact-faq-item:last-child{ border-bottom:none; }
.contact-faq-item summary{
  cursor:pointer; list-style:none; padding:14px 0; font-family:'Sora',sans-serif; font-weight:600;
  font-size:13.5px; color:var(--text); display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.contact-faq-item summary::-webkit-details-marker{ display:none; }
.contact-faq-item summary::after{
  content:'+'; color:var(--text-faint); font-size:16px; font-weight:400; flex-shrink:0;
}
.contact-faq-item[open] summary::after{ content:'−'; }
.contact-faq-item[open] summary{ color:var(--green); }
.contact-faq-item p{ font-size:13px; color:var(--text-dim); line-height:1.6; padding:0 0 16px; margin:0; }

@media (max-width: 560px){
  .gfb-contact-form{ padding:20px; }
  .gfb-field-row{ grid-template-columns:1fr; gap:0; }
  .contact-info-card{ padding:18px; }
}

/* ==========================================================================
   Single promotion post — intro, key facts box, featured image
   ========================================================================== */
.promo-head{ display:block; margin-bottom:18px; }
.promo-title{ font-size:28px; font-weight:700; letter-spacing:-0.01em; line-height:1.15; margin:0; }
.promo-intro{ font-size:16px; line-height:1.7; color:var(--text); margin:0 0 22px; }
.promo-facts{
  background:var(--surface); border:1px solid var(--border);
  border-radius:14px; overflow:hidden; margin:0 0 24px;
}
.promo-facts-head{
  padding:18px 20px; border-bottom:1px solid var(--border);
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
}
.promo-facts-amt{ font-size:30px; font-weight:700; letter-spacing:-0.02em; color:var(--green); line-height:1; }
.promo-facts-amt sup{ font-size:14px; color:var(--text-dim); font-weight:500; margin-left:4px; }
.promo-facts-desc{ font-size:13px; color:var(--text-dim); }
.promo-facts-list{ margin:0; padding:0; }
.promo-fact{
  display:grid; grid-template-columns:minmax(120px,38%) 1fr; gap:12px;
  padding:11px 20px; border-bottom:1px solid var(--border); font-size:14px;
}
.promo-fact:last-child{ border-bottom:0; }
.promo-fact dt{ color:var(--text-dim); margin:0; }
.promo-fact dd{ color:var(--text); font-weight:500; margin:0; overflow-wrap:anywhere; }
.promo-cta{
  display:block; text-align:center; padding:14px 20px; font-weight:600; font-size:15px;
  background:var(--green); color:#1B1403; text-decoration:none;
  border-top:1px solid var(--border);
}
.promo-facts-head + .promo-cta,
.promo-cta:first-child{ border-top:0; }
.promo-cta:hover{ filter:brightness(1.06); }
.promo-figure{ margin:0 0 28px; border-radius:14px; overflow:hidden; border:1px solid var(--border); }
.promo-figure img{ display:block; width:100%; height:auto; margin:0; border:0; border-radius:0; }
@media (max-width:640px){
  .promo-title{ font-size:23px; }
  .promo-fact{ grid-template-columns:1fr; gap:2px; padding:10px 16px; }
  .promo-facts-head{ padding:16px; }
}

/* The card now lives inside .entry-content, so beat its generic link styles. */
.entry-content .promo-facts{ margin:1.6em 0; }
.entry-content a.promo-cta,
.entry-content a.promo-cta:hover{ color:#1B1403; text-decoration:none; }
.entry-content .promo-facts dl,
.entry-content .promo-facts dt,
.entry-content .promo-facts dd{ margin:0; padding:0; }
.entry-content .promo-facts dd{ padding:0; }

/* ==========================================================================
   Header shadow (dark), footer inside a shadowed box
   ========================================================================== */
html:not([data-theme="light"]) header{ box-shadow:0 4px 18px -4px rgba(0,0,0,0.45); }
footer{ padding:24px 32px 40px; }
.footer-box{
  max-width:1180px; margin:0 auto; padding:36px;
  background:var(--surface); border:1px solid var(--border); border-radius:18px;
  box-shadow:0 2px 10px -4px rgba(15,23,42,0.06);
}
html:not([data-theme="light"]) .footer-box{ box-shadow:0 2px 10px -4px rgba(0,0,0,0.25); }
.footer-box .risk-strip{ background:var(--surface-2); margin-bottom:36px; }
@media (max-width:640px){
  footer{ padding:16px 14px 28px; }
  .footer-box{ padding:22px 18px; border-radius:14px; }
}

/* Post title block must never inherit the sticky site-header styles. */
.promo-head{ position:static; box-shadow:none; border:0; background:none; }

/* Contact details + social icons now live inside a .footer-col — keep their own layout. */
.footer-col .footer-contact{ margin-top:6px; }
.footer-col a.footer-contact-row{ display:flex; font-size:12.5px; margin-bottom:0; }
.footer-col a.footer-contact-row:hover{ color:var(--green); }
.footer-col .footer-social{ margin-top:16px; }
.footer-col a.footer-social-icon{ display:flex; margin-bottom:0; font-size:inherit; }
.footer-col a.footer-social-icon:hover{ color:var(--green); border-color:var(--green); }

/* Bottom-row footer links (About • Contact • Advertise • Privacy • Terms • Cookie) */
.footer-legal{ display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; row-gap:6px; }
.footer-legal a{ color:var(--text-faint); font-size:11.5px; }
.footer-legal a:hover{ color:var(--green); }
.footer-legal a + a::before{ content:"•"; display:inline-block; margin:0 8px; color:var(--text-faint); }
@media (max-width:640px){ .footer-legal{ justify-content:flex-start; } }

/* Text that sits on the dark image overlays must stay light in every theme mode
   (in light mode the default text color is dark and disappears on the shadow). */
.hero-main .hero-main-title{ color:#FFFFFF; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.hero-main .hero-main-excerpt{ color:rgba(255,255,255,.86); }
.hero-main .hero-main-meta .post-date{ color:rgba(255,255,255,.75); }
.hero-badge{ color:#FFFFFF; }

/* Category badge on the small hero cards: sized to its text (was stretching
   full width because the base rule's right:16px was still applied), white text. */
.hero-badge{ color:#FFFFFF; background:rgba(12,16,21,.72); }
.hero-mid-img .hero-badge{
  right:auto; width:auto; max-width:calc(100% - 68px);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* Small hero cards on desktop get the same bordered card look as .post-row
   (mobile already has it in the max-width:860px block above). */
@media (min-width:861px){
  .hero-mid{
    display:block; padding:12px; background:var(--surface);
    border:1px solid var(--border); border-radius:16px;
    transition:border-color .15s ease, background-color .15s ease;
  }
  .hero-mid:hover{ border-color:var(--border-strong); background:var(--surface-2); }
  .hero-mid-img{ border-radius:12px; }
}


/* ==========================================================================
   Homepage hero — 70% latest promotions (2-col list, 8 posts) / 30% featured brokers
   ========================================================================== */
.hero-split{
  display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  gap:32px; align-items:stretch;               /* both columns share one height */
}
.hero-split-main, .hero-split-side{ min-width:0; display:flex; flex-direction:column; }

/* Left: one box holding the 2-col post list + the top banner ads */
.hero-box{
  flex:1; display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:6px 20px 20px;
}
.hero-posts{
  display:grid; grid-template-columns:1fr 1fr; column-gap:32px; row-gap:0;
}
/* Posts sit inside the one box: no per-post card, just a bottom divider */
.hero-posts-col{ display:flex; flex-direction:column; min-width:0; }
.hero-posts .post-row{
  background:transparent; border:0; border-bottom:1px solid var(--border);
  border-radius:0; padding:16px 0; transform:none;
}
.hero-posts .post-row:hover{ background:transparent; transform:none; }
.hero-posts-col > .post-row:last-child{ border-bottom:0; }
/* Rest column: rows share the height so both columns end level */
.hero-posts-rest > .post-row{ flex:1; }

/* Big featured card — lead post of "Latest Forex Bonus" */
.post-big{
  display:flex; flex-direction:column; gap:14px; min-width:0;
  padding:16px 0 18px; border-bottom:1px solid var(--border);
}
.post-big-thumb{
  position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden;
  background:var(--surface-2); display:flex; align-items:center; justify-content:center;
}
.post-big-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.post-big:hover .post-big-thumb img{ transform:scale(1.03); }
.post-big-thumb.no-image{ background:linear-gradient(135deg,var(--surface-2),var(--border)); }
.post-big-thumb span{ font-family:'Sora',sans-serif; font-weight:700; font-size:44px; color:var(--text-faint); }
.post-big-body .post-meta{ margin-bottom:8px; }
.post-big-title{
  font-family:'Sora',sans-serif; font-size:19px; font-weight:700; color:var(--text);
  line-height:1.3; margin-bottom:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.post-big:hover .post-big-title{ color:var(--green); }
.post-big-excerpt{
  font-size:13px; color:var(--text-dim); line-height:1.6; margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.hero-posts > .fxd-empty{ grid-column:1 / -1; }
.hero-box-ad{ margin-top:auto; padding-top:18px; }
.hero-box-ad .ad-slot{ max-width:none !important; width:100%; margin:0; }
/* Right banner, kept below the hero at the full content width */
.ad-slot-wrap-full .ad-slot{ max-width:none !important; width:100%; }



/* Right: one box, brokers share the full height equally */
.hero-brokers{
  flex:1; display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:6px 20px;
}
.hero-brokers .broker-mini{
  flex:1; padding:10px 0; background:transparent; border:0;
  border-bottom:1px solid var(--border); border-radius:0; gap:14px;
}
.hero-brokers .broker-mini:last-child{ border-bottom:0; }
.hero-brokers .broker-mini-logo{
  width:52px; height:52px; padding:7px; border-radius:12px;
  background:var(--surface); box-shadow:0 4px 14px rgba(15,23,42,.14), 0 1px 3px rgba(15,23,42,.08);
}
.hero-brokers .broker-mini-logo .broker-logo-letters{ width:100%; height:100%; border-radius:8px; }
.hero-brokers .broker-mini-feats div{
  display:flex; align-items:center; gap:7px; font-size:12.5px; line-height:1.65;
}
.hero-brokers .broker-mini-feats div span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.broker-mini-feats .bm-ico{ flex-shrink:0; color:var(--green); }

/* Visit now + Review link stacked */
.broker-mini-actions{ flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:5px; }
.broker-mini-review{
  font-family:'Sora',sans-serif; font-size:11.5px; font-weight:600; color:var(--text-dim);
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--border-strong);
}
.broker-mini-review:hover{ color:var(--green); text-decoration-color:var(--green); }
.hero-brokers .broker-mini-btn{ padding:6px 14px; font-size:11px; }

/* Trending promotions: No deposit / Deposit / Featured prop firms, 3 equal columns.
   The firms box reuses .hero-brokers and stretches to the posts' height. */
.promo-layout-eq{ align-items:stretch; overflow:visible; }
.promo-col-firms{ display:flex; flex-direction:column; }
.promo-col-firms .hero-brokers{ flex:1; }

@media (max-width: 980px){
  .hero-split{ grid-template-columns:1fr; gap:28px; }
}
@media (max-width: 640px){
  .hero-box{ padding:4px 16px 16px; }
  .hero-posts{ grid-template-columns:1fr; }
  /* Mobile: show only the 5 most recent posts */
  .hero-posts-lead > .post-row:last-child{ border-bottom:1px solid var(--border); }
  .hero-posts-rest > .post-row:nth-child(n+4){ display:none; }
  .hero-posts-rest > .post-row{ flex:none; }
}


/* ==========================================================================
   Homepage headings — slightly smaller, tight gap to the content below
   ========================================================================== */
body.home .section-head h1,
body.home .section-head h2,
body.home .bonus-board-list-heading,
body.home .sidebar-head{ font-size:18px; }
body.home .section-head,
body.home .bonus-board-list-heading,
body.home .sidebar-head{ margin-bottom:14px; }
body.home .section-head svg,
body.home .bonus-board-list-heading svg,
body.home .sidebar-head svg{ width:18px; height:18px; }

/* ==========================================================================
   Homepage — remove the extra vertical gaps between sections and ad rows
   ========================================================================== */
body.home .section{ padding-top:24px; padding-bottom:24px; }
body.home .ad-slot-wrap{ padding-top:14px; padding-bottom:0; }
body.home .hero-split{ margin-top:0; }
@media (max-width: 560px){
  body.home .section{ padding-top:18px; padding-bottom:18px; }
}

/* ==========================================================================
   Post lists — one card per list, posts divided by a bottom border
   (replaces the old "separate card per post" look; matches the hero list)
   ========================================================================== */
.post-list-single,
.post-list-grid,
.post-list-grid-3{
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:6px 20px; row-gap:0;
}
.post-list-single{ gap:0; }
.post-list-grid,
.post-list-grid-3{ column-gap:32px; }
.post-list-grid > div,
.post-list-grid-3 > div{ gap:0; }

.post-list-single > .post-row,
.post-list-grid > div > .post-row,
.post-list-grid-3 > div > .post-row{
  background:transparent; border:0; border-bottom:1px solid var(--border);
  border-radius:0; padding:16px 0; transform:none;
}
.post-list-single > .post-row:hover,
.post-list-grid > div > .post-row:hover,
.post-list-grid-3 > div > .post-row:hover{ background:transparent; transform:none; }

.post-list-single > .post-row:last-child,
.post-list-grid > div > .post-row:last-child,
.post-list-grid-3 > div > .post-row:last-child{ border-bottom:0; }

/* Empty-state text sits inside the card with normal padding */
.post-list-single > .fxd-empty,
.post-list-grid > .fxd-empty,
.post-list-grid-3 > .fxd-empty{ padding:14px 0; }

/* When a multi-column list collapses to one column, keep the divider between the stacked halves */
@media (max-width: 860px){
  .post-list-grid > div:not(:last-child) > .post-row:last-child,
  .post-list-grid-3 > div:not(:last-child) > .post-row:last-child{ border-bottom:1px solid var(--border); }
}
@media (max-width: 560px){
  .post-list-single, .post-list-grid, .post-list-grid-3{ padding:4px 16px; }
}

/* Single post — divider line under the title block, above the intro */
.promo-head{ border-bottom:1px solid var(--border); padding-bottom:20px; margin-bottom:22px; }


/* ==========================================================================
   Single post — sidebar heading matches the homepage headings;
   no divider borders above the share row or the sidebar ad
   ========================================================================== */
body.single-post .sidebar-head{ font-size:18px; margin-bottom:14px; }
body.single-post .sidebar-head svg{ width:18px; height:18px; }
body.single-post .share-buttons{ border-top:0; padding-top:0; }
body.single-post .sidebar-ad-slot{ border-top:0; padding-top:0; }
/* Single post — sidebar banner spans the full sidebar width */
body.single-post .sidebar-ad-slot .ad-slot{ max-width:none !important; width:100%; margin:0; }
body.single-post .sidebar-ad-slot .ad-slot img{ width:100%; }

/* ==========================================================================
   Header search icon + popup search form
   ========================================================================== */
.header-actions{ gap:10px; }
.search-modal{
  position:fixed; inset:0; z-index:1000; display:flex; align-items:flex-start; justify-content:center; padding:12vh 18px 0;
  visibility:hidden; pointer-events:none;
  transition:visibility 0s linear .16s;
}
.search-modal.is-open{ visibility:visible; pointer-events:auto; transition-delay:0s; }
.search-modal-backdrop{
  position:absolute; inset:0; background:rgba(8,12,20,0.55); backdrop-filter:blur(3px);
  opacity:0; transition:opacity .16s ease;
}
.search-modal.is-open .search-modal-backdrop{ opacity:1; }
.search-modal-box{
  position:relative; width:100%; max-width:600px; background:var(--surface);
  border:1px solid var(--border); border-radius:16px; padding:22px 20px 20px;
  box-shadow:0 12px 40px -12px rgba(0,0,0,0.35);
  opacity:0; transform:translateY(-14px) scale(.97);
  transition:opacity .16s ease, transform .18s cubic-bezier(.2,.8,.2,1);
}
.search-modal.is-open .search-modal-box{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .search-modal, .search-modal-backdrop, .search-modal-box{ transition:none; }
}
.search-modal-close{
  position:absolute; top:-14px; right:-6px; width:32px; height:32px; border-radius:50%;
  border:1px solid var(--border); background:var(--surface); color:var(--text-dim); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.search-modal-close:hover{ color:var(--text); border-color:var(--border-strong); }
.search-modal-form{
  display:flex; align-items:center; gap:12px;
  border:1px solid var(--border-strong); border-radius:12px; padding:6px 6px 6px 14px; color:var(--text-faint);
}
.search-modal-form:focus-within{ border-color:var(--green); }
.search-modal-form input[type="search"]{
  flex:1; min-width:0; background:transparent; border:0; outline:0; color:var(--text);
  font-size:15px; padding:10px 0; font-family:inherit;
}
.search-modal-form .btn-cta{ border:0; cursor:pointer; padding:10px 20px; }
body.search-open{ overflow:hidden; }

/* Broker review — CTA after the full review body */
.review-end-cta{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin-top:32px; padding:18px 20px; background:var(--surface); border:1px solid var(--border); border-radius:14px;
}
.review-end-cta-info{ display:flex; align-items:center; gap:14px; min-width:0; }
.review-end-cta-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.review-end-cta-text strong{ font-family:'Sora',sans-serif; font-size:16px; font-weight:700; color:var(--text); }
.review-end-cta-text span{ font-size:13px; color:var(--text-dim); }
.review-end-cta-btn{ display:inline-block; white-space:nowrap; text-align:center; padding:12px 26px; }
@media (max-width:640px){ .review-end-cta-btn{ width:100%; } }

/* ==========================================================================
   Broker review hero — card layout, clearer hierarchy, rating + CTA column
   ========================================================================== */
.broker-hero{
  position:relative; align-items:center; gap:28px; flex-wrap:nowrap;
  padding:28px; margin-bottom:32px;
  background:radial-gradient(circle at 100% 0, rgba(245,184,46,.09), transparent 55%), var(--surface);
  border:1px solid var(--border); border-radius:18px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.broker-hero-left{ gap:22px; align-items:center; min-width:0; flex:1 1 auto; }
.broker-logo-hero{ width:96px; height:96px; border-radius:16px; box-shadow:0 1px 2px rgba(15,23,42,.06); }
.broker-hero-tags{ flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.broker-hero .pill{ font-size:11.5px; padding:4px 12px; font-weight:500; }
.broker-hero-title{ font-size:30px; line-height:1.15; letter-spacing:-.02em; margin-bottom:8px; }
.broker-hero-tagline{ font-size:15px; line-height:1.55; max-width:520px; margin-bottom:0; }
.broker-hero-side{
  flex:0 0 190px; display:flex; flex-direction:column; gap:12px;
  padding-left:28px; border-left:1px solid var(--border);
}
.broker-hero-rating{ background:transparent; border:0; border-radius:0; padding:0; text-align:center; }
.broker-hero-rating .rating-score{ font-size:38px; line-height:1; }
.broker-hero-rating .rating-score small{ font-size:14px; font-weight:500; color:var(--text-faint); margin-left:2px; }
.broker-hero-rating .rating-stars{ font-size:15px; margin:8px 0 6px; }
.hero-cta-desktop{ display:block; text-align:center; padding:12px 18px; }
.hero-cta-desktop:hover{ filter:brightness(1.06); }
@media (max-width:860px){
  .broker-hero{ flex-direction:column; align-items:stretch; gap:20px; padding:22px 20px; }
  .broker-hero-left{ flex-direction:column; align-items:flex-start; gap:16px; }
  .broker-logo-hero{ width:76px; height:76px; }
  .broker-hero-title{ font-size:25px; }
  .broker-hero-tagline{ max-width:none; margin-bottom:6px; }
  .broker-hero-side{ flex:none; flex-direction:row; align-items:center; justify-content:space-between; padding:16px 0 0; border-left:0; border-top:1px solid var(--border); }
  .broker-hero-rating{ text-align:left; }
  .broker-hero-rating .rating-score{ font-size:30px; }
  .hero-cta-desktop{ display:none; }
}

/* Broker review — no divider above the sidebar ad; banner spans the full sidebar width */
body.single-broker_review .sidebar-ad-slot{ border-top:0; padding-top:0; }
body.single-broker_review .sidebar-ad-slot .ad-slot{ max-width:none !important; width:100%; margin:0; }
body.single-broker_review .sidebar-ad-slot .ad-slot img{ width:100%; }

/* ==========================================================================
   Broker review — 3 columns: table of contents | article | slimmer sidebar
   ========================================================================== */
.single-layout.has-toc{ grid-template-columns:190px minmax(0,1fr) 270px; gap:0 26px; }
.single-toc{ position:sticky; top:90px; align-self:start; max-height:calc(100vh - 110px); overflow:auto; }
.single-toc[hidden]{ display:none; }
.single-layout.has-toc > .single-toc{ grid-column:1; grid-row:1; }
.single-layout.has-toc > .single-main{ grid-column:2; grid-row:1; }
.single-layout.has-toc > .single-sidebar{ grid-column:3; grid-row:1; }
.toc-title{
  font-family:'Sora',sans-serif; font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--text-faint); margin-bottom:12px; padding-left:14px;
}
.toc-list{ display:flex; flex-direction:column; border-left:1px solid var(--border); }
.toc-list a{
  display:block; padding:7px 0 7px 14px; margin-left:-1px; border-left:2px solid transparent;
  font-size:13px; line-height:1.4; color:var(--text-dim); transition:color .15s ease, border-color .15s ease;
}
.toc-list a:hover{ color:var(--text); }
.toc-list a.is-active{ color:var(--green); border-left-color:var(--green); font-weight:600; }
.single-main h2[id]{ scroll-margin-top:100px; }
html{ scroll-behavior:smooth; }
@media (max-width:1100px){
  .single-layout.has-toc{ grid-template-columns:minmax(0,1fr) 270px; }
  .single-toc{ display:none; }
  .single-layout.has-toc > .single-main{ grid-column:1; }
  .single-layout.has-toc > .single-sidebar{ grid-column:2; }
}
@media (max-width:860px){
  .single-layout.has-toc{ grid-template-columns:1fr; }
  .single-layout.has-toc > .single-main,
  .single-layout.has-toc > .single-sidebar{ grid-column:1; grid-row:auto; }
}

/* Prop firm review — same sidebar treatment as broker review */
body.single-prop_firm_review .sidebar-ad-slot{ border-top:0; padding-top:0; }
body.single-prop_firm_review .sidebar-ad-slot .ad-slot{ max-width:none !important; width:100%; margin:0; }
body.single-prop_firm_review .sidebar-ad-slot .ad-slot img{ width:100%; }

/* Footer — risk notice sits above the copyright row; dark mode border fix */
.risk-notice{
  display:flex; align-items:flex-start; gap:14px; margin-bottom:28px; padding:16px 20px;
  background:var(--surface-2); border:1px solid color-mix(in srgb, var(--green) 30%, transparent); border-radius:12px;
}
.risk-notice svg{ flex-shrink:0; margin-top:3px; color:var(--green); }
.risk-notice p{ margin:0; font-size:12.5px; line-height:1.7; color:var(--text-dim); }
.risk-notice strong{ color:var(--green); font-weight:600; }
.footer-box .footer-top{ margin-bottom:32px; }
html:not([data-theme="light"]) .footer-box{ border:1px solid var(--border); outline:0; box-shadow:none; }


/* ==========================================================================
   Sponsored top bar (above the sticky header)
   ========================================================================== */
.sponsor-bar[hidden]{ display:none; }
.sponsor-bar{
  position:relative;
  background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface) 60%, var(--ink) 100%);
  border-bottom:1px solid var(--border-strong);
}
.sponsor-bar::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 140% at 50% 0%, rgba(245,184,46,0.10), transparent 70%);
}
.sponsor-bar-inner{
  position:relative;
  max-width:1180px; margin:0 auto; padding:4px 32px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px;
}
.sponsor-ad-badge{
  justify-self:start;
  font-family:'Rubik',sans-serif; font-size:10px; font-weight:600; letter-spacing:.08em;
  color:var(--green); background:rgba(245,184,46,0.10);
  border:1px solid var(--green-dim); border-radius:999px; padding:3px 10px; line-height:1;
}
.sponsor-pill{
  display:inline-flex; align-items:center; gap:9px; min-width:0; max-width:100%;
  padding:2px 5px 2px 14px; border-radius:999px;
  background:rgba(245,184,46,0.06); border:1px solid var(--border-strong);
  transition:border-color .2s, background .2s, box-shadow .2s;
}
.sponsor-pill:hover{
  border-color:var(--green); background:rgba(245,184,46,0.12);
  box-shadow:0 0 0 3px rgba(245,184,46,0.10);
}
.sponsor-label{ font-size:12.5px; font-weight:500; color:var(--green); white-space:nowrap; }
.sponsor-name{
  font-family:'Sora',sans-serif; font-size:13px; font-weight:600; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sponsor-logo{ display:inline-flex; flex:none; }
.sponsor-logo img,
.sponsor-logo .broker-logo-letters{
  width:20px; height:20px; border-radius:6px; object-fit:cover; display:block;
  font-size:8px; font-weight:700; display:flex; align-items:center; justify-content:center;
}
.sponsor-close{
  justify-self:end; width:22px; height:22px; border-radius:50%; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; color:var(--text-faint); border:1px solid var(--border-strong);
  transition:color .2s, border-color .2s;
}
.sponsor-close:hover{ color:var(--text); border-color:var(--green); }
@media (max-width:760px){
  .sponsor-bar-inner{ padding:4px 18px; gap:8px; }
  .sponsor-label{ display:none; }
  .sponsor-pill{ padding-left:12px; }
}


/* ==========================================================================
   Floating sponsor side card + back-to-top
   ========================================================================== */
.sponsor-card{
  position:fixed; right:20px; bottom:20px; z-index:90;
  display:flex; align-items:center;
  padding:8px 34px 8px 10px; max-width:calc(100vw - 24px);
  background:var(--surface); border:1px solid var(--border-strong); border-radius:14px;
  box-shadow:0 12px 30px -10px rgba(0,0,0,0.55), 0 0 0 1px rgba(245,184,46,0.06);
  opacity:0; visibility:hidden; transform:translateX(28px) scale(.97);
  transition:opacity .35s ease, transform .4s cubic-bezier(.2,.8,.2,1), visibility 0s linear .4s, bottom .3s ease;
}
.sponsor-card.is-in{
  opacity:1; visibility:visible; transform:none;
  transition:opacity .35s ease, transform .4s cubic-bezier(.2,.8,.2,1), visibility 0s, bottom .3s ease;
}
body.btt-on .sponsor-card{ bottom:70px; }
.sponsor-card-link{ display:flex; align-items:center; gap:10px; min-width:0; }
.sponsor-card-text{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.sponsor-card-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.sponsor-card .sponsor-ad-badge{ font-size:9px; padding:2px 7px; }
.sponsor-card .sponsor-label{ font-size:11px; }
.sponsor-card .sponsor-name{ font-size:14px; }
.sponsor-card .sponsor-logo img,
.sponsor-card .sponsor-logo .broker-logo-letters{ width:32px; height:32px; border-radius:8px; font-size:11px; }
.sponsor-card-link:hover .sponsor-name{ color:var(--green); }
.sponsor-card-close{
  position:absolute; top:6px; right:6px; width:20px; height:20px; border-radius:50%; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; color:var(--text-faint); border:0;
  transition:color .2s, background .2s;
}
.sponsor-card-close:hover{ color:var(--text); background:var(--surface-2); }

.back-to-top{
  position:fixed; right:20px; bottom:20px; z-index:90;
  width:38px; height:38px; border-radius:50%; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--surface); color:var(--green); border:1px solid var(--border-strong);
  box-shadow:0 8px 20px -8px rgba(0,0,0,0.5);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .3s ease, transform .3s ease, visibility 0s linear .3s, background .2s, color .2s, border-color .2s;
}
.back-to-top.is-in{ opacity:1; visibility:visible; transform:none; transition:opacity .3s ease, transform .3s ease, visibility 0s, background .2s, color .2s, border-color .2s; }
.back-to-top:hover{ background:var(--green); color:#1B1403; border-color:var(--green); }
@media (max-width:760px){
  .sponsor-card{ right:12px; bottom:12px; }
  body.btt-on .sponsor-card{ bottom:60px; }
  .back-to-top{ right:12px; bottom:12px; width:36px; height:36px; }
}
@media (prefers-reduced-motion:reduce){
  .sponsor-card, .sponsor-card.is-in, .back-to-top, .back-to-top.is-in{ transition:opacity .01s, visibility 0s; transform:none; }
}


/* ==========================================================================
   Footer redesign — centred brand + icons, divider, 4 menu columns, compact risk warning
   ========================================================================== */
.footer-box .footer-brand{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.footer-box .footer-brand p{ max-width:520px; margin:12px auto 0; }
.footer-box .footer-social{ justify-content:center; flex-wrap:wrap; margin-top:20px; }
.footer-box .footer-social-icon{ width:38px; height:38px; border-radius:50%; }
.footer-divider{ width:100%; height:0; border:0; border-top:1px solid var(--border); margin:28px 0; }
.footer-box .footer-top{ grid-template-columns:repeat(4,1fr); gap:32px; margin-bottom:28px; text-align:left; }
.footer-box .risk-notice{ align-items:center; gap:10px; margin-bottom:20px; padding:10px 14px; border-radius:10px; }
.footer-box .risk-notice svg{ margin-top:0; }
.footer-box .risk-notice p{ font-size:11.5px; line-height:1.55; }
@media (max-width:860px){ .footer-box .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .footer-box .footer-top{ grid-template-columns:1fr 1fr; gap:24px 16px; } }

/* ==========================================================================
   Footer — compact pass
   ========================================================================== */
footer{ padding:16px 32px 24px; }
.footer-box{ padding:22px 28px 14px; border-radius:16px; }
.footer-box .footer-brand .logo img, .footer-box .footer-brand .logo svg{ max-height:34px; width:auto; }
.footer-box .footer-brand p{ font-size:12.5px; line-height:1.5; max-width:none; margin:8px auto 0; color:var(--text-dim); }
.footer-box .footer-social{ margin-top:12px; gap:8px; }
.footer-box .footer-social-icon{ width:32px; height:32px; }
.footer-box .footer-social-icon svg{ width:15px; height:15px; }
.footer-divider{ margin:16px 0; }
.footer-box .footer-top{ gap:20px; margin-bottom:14px; }
.footer-box .footer-col h5{ font-size:11px; margin-bottom:8px; }
.footer-box .footer-col a{ font-size:12.5px; margin-bottom:5px; }
.footer-box .risk-notice{
  background:none; border:0; border-top:1px solid var(--border); border-radius:0;
  padding:12px 0 0; margin-bottom:10px; gap:8px; justify-content:center; align-items:flex-start;
}
.footer-box .risk-notice p{ font-size:11px; line-height:1.5; color:var(--text-faint); text-align:left; }
.footer-box .risk-notice svg{ width:13px; height:13px; margin-top:2px; }
.footer-box .footer-bottom{ border-top:0; padding-top:0; justify-content:center; gap:12px; font-size:11px; }
@media (max-width:640px){
  footer{ padding:12px 12px 20px; }
  .footer-box{ padding:18px 16px 12px; }
}

/* Footer — brand + description left, contact/social icons right */
.footer-box .footer-brand{ flex-direction:row; align-items:center; justify-content:space-between; text-align:left; gap:24px; }
.footer-box .footer-brand-text{ min-width:0; }
.footer-box .footer-brand .logo{ justify-content:flex-start; }
.footer-box .footer-brand p{ margin:8px 0 0; max-width:460px; }
.footer-box .footer-social{ margin-top:0; justify-content:flex-end; flex-shrink:0; }
@media (max-width:640px){
  .footer-box .footer-brand{ flex-direction:column; align-items:flex-start; gap:14px; }
  .footer-box .footer-social{ justify-content:flex-start; }
}

/* Footer — five columns */
.footer-box .footer-top{ grid-template-columns:repeat(5,1fr); }
@media (max-width:860px){ .footer-box .footer-top{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:480px){ .footer-box .footer-top{ grid-template-columns:1fr 1fr; } }

/* Footer bottom bar — copyright left, legal menu right (as originally) */
.footer-box .footer-bottom{ justify-content:space-between; gap:12px; }
@media (max-width:640px){ .footer-box .footer-bottom{ flex-direction:column; align-items:flex-start; gap:8px; } }

/* Footer — site description on one full line (desktop) */
@media (min-width:861px){
  .footer-box .footer-brand-text{ flex:1 1 auto; }
  .footer-box .footer-brand p{ max-width:none; white-space:nowrap; }
}

/* Footer — risk warning removed; add a divider above the bottom bar */
.footer-box .footer-bottom{ border-top:1px solid var(--border); padding-top:12px; }

/* Footer — disclaimer: left-aligned, its own band between the columns and the bottom bar */
.footer-box .risk-notice{
  justify-content:flex-start; text-align:left;
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:12px 0; margin:0 0 12px;
}
.footer-box .risk-notice p{ text-align:left; }
.footer-box .footer-bottom{ border-top:0; padding-top:0; }

/* Footer — column headings: green, spaced caps with a trailing rule */
.footer-box .footer-col h5{
  display:flex; align-items:center; gap:14px;
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.2em;
  color:var(--green); margin-bottom:14px;
}
.footer-box .footer-col h5::after{ content:""; flex:1; height:1px; background:color-mix(in srgb, var(--green) 25%, transparent); }
.footer-box .footer-bottom{ border-top:1px solid var(--border); padding-top:14px; justify-content:flex-start; }

/* Footer — full-width background, no box border */
footer{ background:var(--surface); padding:28px 32px 16px; margin-top:40px; }
footer .footer-box,
html:not([data-theme="light"]) footer .footer-box{
  background:transparent; border:0; outline:0; box-shadow:none; border-radius:0; padding:0;
}
@media (max-width:640px){ footer{ padding:22px 16px 14px; } }

/* Footer — email shown as a pill with the full address */
.footer-box a.footer-social-pill{ width:auto; padding:0 14px; border-radius:999px; gap:8px; font-size:12.5px; color:var(--text-dim); }
.footer-box a.footer-social-pill:hover{ color:var(--green); border-color:var(--green); }

/* Footer — inner content aligned to the site content area (same as .wrap) */
footer{ padding-left:0; padding-right:0; }
footer .footer-box,
html:not([data-theme="light"]) footer .footer-box{ max-width:1180px; margin:0 auto; padding:0 32px; }
@media (max-width:560px){
  footer .footer-box, html:not([data-theme="light"]) footer .footer-box{ padding:0 18px; }
}

/* Primary-colour hover states (gold) */
.btn-cta:hover, .btn-primary:hover, .prop-actions .visit:hover, .tab.active:hover{ filter:brightness(1.08); }
/* Light mode: gold text on white needs a deeper shade to stay readable */
html[data-theme="light"]{ --green:#C58A0B; --green-dim:#8F6406; }


/* ==========================================================================
   Homepage "Featured brokers" — 4 premium cards
   (logo + name/rating + button/review on top, 3-cell data strip below)
   ========================================================================== */
.hero-split-side .hero-brokers{ background:transparent; border:0; padding:0; gap:10px; }
.hero-split-side .hero-brokers .broker-mini{
  flex:1; display:flex; flex-direction:column; justify-content:center; align-items:stretch; gap:0;
  padding:12px 14px; background:var(--surface); border:1px solid var(--border); border-radius:14px;
  transition:border-color .15s ease;
}
.hero-split-side .hero-brokers .broker-mini:last-child{ border-bottom:1px solid var(--border); }
.hero-split-side .hero-brokers .broker-mini:hover{ border-color:rgba(245,184,46,.55); }
.bmc-top{ display:flex; align-items:center; gap:12px; }
.hero-split-side .hero-brokers .broker-mini-logo{
  width:48px; height:48px; padding:6px; border-radius:12px; flex-shrink:0;
  background:#fff; box-shadow:none; border:1px solid rgba(255,255,255,.06);
}
.hero-split-side .hero-brokers .broker-mini-logo img{ object-fit:contain; }
.bmc-id{ flex:1; min-width:0; }
.bmc-name{
  font-family:'Sora',sans-serif; font-size:14.5px; font-weight:600; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.bmc-rate{ display:flex; align-items:center; gap:5px; margin-top:2px; font-size:11.5px; color:var(--text-dim); }
.bmc-rate svg{ color:var(--green); }
.hero-split-side .hero-brokers .broker-mini-actions{ flex-direction:row; align-items:center; gap:10px; }
.hero-split-side .hero-brokers .broker-mini-btn{ padding:6px 14px; font-size:11.5px; }
.bmc-data{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:11px;
  background:rgba(255,255,255,.035); border-radius:10px;
}
.bmc-cell{ padding:8px 10px; min-width:0; }
.bmc-cell + .bmc-cell{ border-left:1px solid rgba(255,255,255,.08); }
.bmc-lab{ display:flex; align-items:center; gap:5px; margin-bottom:3px; font-size:10.5px; color:var(--text-faint); }
.bmc-lab svg{ color:var(--green); flex-shrink:0; }
.bmc-val{
  font-size:12px; font-weight:600; color:var(--text); line-height:1.3; overflow-wrap:anywhere;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
@media (max-width:560px){
  .hero-split-side .hero-brokers .broker-mini{ padding:11px 12px; }
  .hero-split-side .hero-brokers .broker-mini-logo{ width:44px; height:44px; }
  .bmc-top{ gap:10px; }
  .bmc-name{ font-size:14px; }
  /* Button on top, Review link under it — both pinned to the right */
  .hero-split-side .hero-brokers .broker-mini-actions{ flex-direction:column; align-items:center; gap:4px; }
  .hero-split-side .hero-brokers .broker-mini-btn{ padding:5px 12px; font-size:11px; }
  .hero-split-side .hero-brokers .broker-mini-review{ font-size:11px; }
  /* Slightly smaller data pills */
  .bmc-cell{ padding:7px 8px; }
  .bmc-lab{ font-size:9.5px; gap:4px; margin-bottom:2px; }
  .bmc-lab svg{ width:11px; height:11px; }
  .bmc-val{ font-size:11px; }
}



/* ==========================================================================
   Homepage "Featured prop firms" — full width, 4 tall premium cards
   ========================================================================== */
.firm-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.firm-grid > .fxd-empty{ grid-column:1 / -1; }
.firm-card{
  display:flex; flex-direction:column; gap:12px; min-width:0; padding:14px;
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  transition:border-color .15s ease, transform .15s ease;
}
.firm-card:hover{ border-color:rgba(245,184,46,.55); transform:translateY(-2px); }
.firm-top{ display:flex; align-items:center; gap:10px; min-width:0; }
.firm-logo{
  width:44px; height:44px; padding:5px; border-radius:12px; flex-shrink:0; overflow:hidden;
  background:#fff; display:flex; align-items:center; justify-content:center;
}
.firm-logo img{ width:100%; height:100%; object-fit:contain; display:block; }
.firm-logo .broker-logo-letters{ width:100%; height:100%; border-radius:8px; }
.firm-id{ flex:1; min-width:0; }
.firm-name{
  font-family:'Sora',sans-serif; font-size:14px; font-weight:600; color:var(--text); line-height:1.25;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.firm-rate{ display:flex; align-items:center; gap:4px; margin-top:2px; font-size:11.5px; color:var(--text-dim); }
.firm-rate svg{ color:var(--green); }
.firm-split{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 12px; border-radius:12px;
  background:rgba(245,184,46,.08); border:1px solid rgba(245,184,46,.22);
}
.firm-split-lab{ font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.firm-pill{
  min-width:0; padding:4px 12px; border-radius:999px; text-align:center; line-height:1.2;
  background:var(--green); color:#1B1403;
  font-family:'Sora',sans-serif; font-size:12px; font-weight:700; overflow-wrap:anywhere;
}
.firm-rows{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; flex:1; }
.firm-rows li{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 0; border-bottom:1px solid var(--border); font-size:12px; min-width:0;
}
.firm-rows li:last-child{ border-bottom:0; }
.firm-row-lab{ display:flex; align-items:center; gap:6px; color:var(--text-faint); font-size:11.5px; flex-shrink:0; }
.firm-row-lab svg{ color:var(--green); }
.firm-row-val{ min-width:0; text-align:right; font-weight:600; color:var(--text); line-height:1.3; overflow-wrap:anywhere; }
.firm-foot{ display:flex; flex-direction:column; gap:10px; }
.firm-fee{ flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:2px; line-height:1.2; text-align:right; }
.firm-fee-lab{ font-size:10px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.firm-fee-line{ font-size:11px; color:var(--text-faint); white-space:nowrap; }
.firm-fee-line strong{ font-family:'Sora',sans-serif; font-size:15px; font-weight:700; color:var(--text); }
.firm-btns{ display:flex; gap:8px; }
.firm-visit, .firm-review{
  flex:1; text-align:center; padding:8px 10px; border-radius:999px;
  font-family:'Sora',sans-serif; font-size:12px; font-weight:600; white-space:nowrap;
}
.firm-visit{ background:var(--green); color:#1B1403; }
.firm-visit:hover{ background:#E3A512; }
.firm-review{ border:1px solid var(--border-strong); color:var(--text-dim); }
.firm-review:hover{ border-color:var(--green); color:var(--green); }
@media (max-width:1100px){ .firm-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:540px){
  .firm-grid{ grid-template-columns:1fr; }
}


/* ==========================================================================
   Homepage "Best bonus" column — 4 premium cards (thumb + title, value strip)
   ========================================================================== */
.promo-col-best{ display:flex; flex-direction:column; }
.best-list{ flex:1; display:flex; flex-direction:column; gap:10px; min-width:0; }
.best-list > .fxd-empty{ padding:14px 0; }
.best-row{
  flex:1; display:flex; flex-direction:column; justify-content:center; gap:11px; min-width:0;
  padding:12px 14px; background:var(--surface); border:1px solid var(--border); border-radius:14px;
  transition:border-color .15s ease;
}
.best-row:hover{ border-color:rgba(245,184,46,.55); }
.best-top{ display:flex; align-items:center; gap:12px; min-width:0; }
.best-thumb{
  position:relative; width:58px; height:58px; flex-shrink:0; border-radius:12px;
  background:var(--surface-2); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 0 1px rgba(255,255,255,.06);
}
.best-thumb img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:12px; }
.best-thumb > span:not(.best-rank){ font-family:'Sora',sans-serif; font-weight:700; font-size:22px; color:var(--text-faint); }
.best-rank{
  position:absolute; top:-6px; left:-6px; width:20px; height:20px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Sora',sans-serif; font-size:10.5px; font-weight:700; line-height:1;
  background:var(--surface); color:var(--green); border:1px solid rgba(245,184,46,.55);
}
.best-row.is-first .best-rank{ background:var(--green); color:#1B1403; border-color:var(--green); }
.best-body{ flex:1; min-width:0; }
.best-broker{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.best-title{
  font-size:13.5px; font-weight:600; color:var(--text); line-height:1.35; margin-bottom:6px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:break-word;
  transition:color .15s ease;
}
.best-row:hover .best-title{ color:var(--green); }
.best-meta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.best-pill{
  padding:2px 8px; border-radius:999px; font-family:'Sora',sans-serif; font-size:10.5px; font-weight:700;
  background:rgba(245,184,46,.14); border:1px solid rgba(245,184,46,.3); color:var(--green); white-space:nowrap;
}
.best-strip{
  display:flex; align-items:stretch; min-width:0; border-radius:10px; background:rgba(255,255,255,.035);
}
.best-big{
  display:flex; flex-direction:column; justify-content:center; gap:1px; padding:7px 14px; flex-shrink:0;
  border-radius:10px 0 0 10px; background:rgba(245,184,46,.10); border-right:1px solid rgba(245,184,46,.22);
}
.best-big-lab{ font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); white-space:nowrap; }
.best-big-val{ font-family:'Sora',sans-serif; font-size:18px; font-weight:700; line-height:1.15; color:var(--green); white-space:nowrap; }
.best-stat{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:2px; padding:7px 10px; }
.best-stat + .best-stat{ border-left:1px solid rgba(255,255,255,.08); }
.best-stat-lab{ font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.best-stat-val{
  font-size:12px; font-weight:600; color:var(--text); line-height:1.25; overflow-wrap:anywhere;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.best-arrow{
  flex-shrink:0; align-self:center; margin:0 10px 0 auto; width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--text-dim);
  border:1px solid var(--border-strong);
  transition:background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.best-top > .best-arrow{ margin:0; }
.best-row:hover .best-arrow{ background:var(--green); color:#1B1403; border-color:var(--green); transform:translateX(2px); }
@media (max-width:560px){
  .best-row{ padding:11px 12px; }
  .best-big{ padding:6px 10px; }
  .best-big-val{ font-size:16px; }
  .best-stat{ padding:6px 8px; }
  .best-stat-val{ font-size:11px; }
}

/* ==========================================================================
   Wide broker rows — homepage, under "Recent brokers added"
   ========================================================================== */
.broker-wide-list{ display:flex; flex-direction:column; gap:14px; margin-top:24px; }
.broker-wide{
  display:grid;
  grid-template-columns:96px minmax(150px,1.3fr) repeat(4,minmax(0,1fr)) 150px;
  align-items:center; gap:20px;
  padding:16px 20px; background:var(--surface); border:1px solid var(--border); border-radius:16px;
  transition:border-color .15s ease, background-color .15s ease;
}
.broker-wide:hover{ border-color:var(--border-strong); background:var(--surface-2); }
.broker-wide.is-sponsored{ border-color:rgba(245,184,46,.35); }
.bw-logo{
  width:96px; height:60px; border-radius:12px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.bw-logo.has-image{ background:#fff; border:1px solid var(--border); padding:6px; box-sizing:border-box; }
.bw-logo img{ display:block; width:100%; height:100%; object-fit:contain; }
.bw-logo .broker-logo-letters{ width:100%; height:100%; font-size:20px; border-radius:12px; }
.bw-id{ min-width:0; }
.bw-name-row{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:6px; }
.bw-name{ font-family:'Sora',sans-serif; font-weight:700; font-size:17px; color:var(--text); }
.bw-name:hover{ color:var(--green); }
.bw-badge{
  font-family:'Rubik',sans-serif; font-size:11.5px; font-weight:600; line-height:1;
  padding:5px 10px; border-radius:20px; background:rgba(245,184,46,.14); color:var(--green);
  border:1px solid rgba(245,184,46,.25); white-space:nowrap;
}
.bw-rating{ display:flex; align-items:center; gap:8px; }
.bw-stars{ color:#E2A83A; font-size:13px; letter-spacing:1px; }
.bw-score{ font-family:'Rubik',sans-serif; font-weight:600; font-size:14px; color:var(--text-dim); }
.bw-stat{ min-width:0; }
.bw-lab{ font-family:'Rubik',sans-serif; font-size:12.5px; color:var(--text-faint); margin-bottom:6px; }
.bw-val{ font-family:'Sora',sans-serif; font-weight:600; font-size:15px; color:var(--text); overflow-wrap:anywhere; }
.bw-actions{ display:flex; flex-direction:column; gap:8px; }
.bw-actions a{
  display:block; text-align:center; font-family:'Sora',sans-serif; font-size:13px; font-weight:600;
  padding:10px 12px; border-radius:10px; transition:background-color .15s ease, border-color .15s ease, color .15s ease;
}
.bw-visit{ background:var(--green); color:#1B1403; }
.bw-visit:hover{ background:#E3A512; }
.bw-review{ border:1px solid var(--border-strong); color:var(--text-dim); }
.bw-review:hover{ border-color:var(--green); color:var(--green); }

@media (max-width: 1060px){
  .broker-wide{ grid-template-columns:96px minmax(0,1fr) repeat(2,minmax(0,1fr)); gap:16px 20px; }
  .broker-wide .bw-actions{ grid-column:1 / -1; flex-direction:row; }
  .broker-wide .bw-actions a{ flex:1; }
}
@media (max-width: 640px){
  .broker-wide{ grid-template-columns:repeat(2,minmax(0,1fr)); padding:14px; gap:14px 16px; }
  .bw-logo{ width:80px; height:52px; }
}

/* ==========================================================================
   News & Insights — lead post + 4-column cards + "View more"
   ========================================================================== */
.news-panel{ display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.news-lead{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:0;
  background:var(--surface); border:1px solid var(--border); border-radius:18px; overflow:hidden;
  transition:border-color .15s ease, background-color .15s ease;
}
.news-lead:hover{ border-color:var(--border-strong); background:var(--surface-2); }
.news-lead-thumb{
  position:relative; min-height:300px; background:var(--surface-2); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.news-lead-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.news-lead:hover .news-lead-thumb img{ transform:scale(1.03); }
.news-lead-thumb.no-image,
.news-card-thumb.no-image{ background:linear-gradient(135deg,var(--surface-2),var(--border)); }
.news-lead-thumb span,
.news-card-thumb span{ font-family:'Sora',sans-serif; font-weight:700; font-size:48px; color:var(--text-faint); }
.news-lead-body{ display:flex; flex-direction:column; justify-content:center; gap:14px; padding:32px 36px; min-width:0; }
.news-lead-title{
  font-family:'Sora',sans-serif; font-weight:700; font-size:26px; line-height:1.3; color:var(--text);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.news-lead:hover .news-lead-title{ color:var(--green); }
.news-lead-excerpt{
  font-size:14.5px; line-height:1.65; color:var(--text-dim); margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.news-lead-more{ font-family:'Sora',sans-serif; font-weight:600; font-size:13.5px; color:var(--green); }

.news-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.news-card{
  display:flex; flex-direction:column; min-width:0; overflow:hidden;
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  transition:border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.news-card:hover{ border-color:var(--border-strong); background:var(--surface-2); transform:translateY(-2px); }
.news-card-thumb{
  position:relative; aspect-ratio:16/10; background:var(--surface-2); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.news-card-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.news-card:hover .news-card-thumb img{ transform:scale(1.04); }
.news-card-body{ display:flex; flex-direction:column; gap:10px; padding:16px 16px 18px; }
.news-card-title{
  font-family:'Sora',sans-serif; font-weight:600; font-size:15px; line-height:1.4; color:var(--text);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.news-card:hover .news-card-title{ color:var(--green); }

.news-more-wrap{ display:flex; justify-content:center; margin-top:4px; }
.news-more-btn{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Sora',sans-serif; font-weight:600; font-size:14px;
  padding:12px 32px; border-radius:999px; background:var(--green); color:#1B1403;
  transition:background-color .15s ease, transform .15s ease;
}
.news-more-btn:hover{ background:#E3A512; transform:translateY(-1px); }

@media (max-width: 1060px){
  .news-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 800px){
  .news-lead{ grid-template-columns:1fr; }
  .news-lead-thumb{ min-height:0; aspect-ratio:16/9; }
  .news-lead-body{ padding:20px; }
  .news-lead-title{ font-size:21px; }
}
@media (max-width: 520px){
  .news-grid{ grid-template-columns:1fr; }
}

/* ==========================================================================
   Market News — horizontal scrolling news strip
   ========================================================================== */
.mn-section{ padding-top:8px; padding-bottom:8px; }
.mn-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.mn-heading{
  display:flex; align-items:center; gap:10px;
  font-family:'Sora',sans-serif; font-weight:700; font-size:18px; color:var(--text);
}
.mn-heading svg{ color:var(--green); flex-shrink:0; }
.mn-controls{ display:flex; align-items:center; gap:8px; }
.mn-btn, .mn-all{
  display:inline-flex; align-items:center; justify-content:center;
  height:34px; border-radius:10px; border:1px solid var(--border-strong);
  background:var(--surface); color:var(--text-dim); cursor:pointer;
  transition:border-color .15s ease, color .15s ease, opacity .15s ease;
}
.mn-btn{ width:34px; padding:0; }
.mn-all{ padding:0 14px; font-family:'Sora',sans-serif; font-weight:600; font-size:12.5px; }
.mn-btn:hover, .mn-all:hover{ border-color:var(--green); color:var(--green); }
.mn-btn:disabled{ opacity:.35; cursor:default; border-color:var(--border-strong); color:var(--text-dim); }
.mn-track{
  display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.mn-track::-webkit-scrollbar{ display:none; }
.mn-card{
  flex:0 0 calc((100% - 48px) / 3.5); min-width:0; scroll-snap-align:start;
  display:flex; flex-direction:column; gap:8px; padding:16px 18px;
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  transition:border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.mn-card:hover{ border-color:var(--border-strong); background:var(--surface-2); transform:translateY(-2px); }
.mn-meta{
  font-family:'Rubik',sans-serif; font-weight:600; font-size:11.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--green);
}
.mn-title{
  font-family:'Sora',sans-serif; font-weight:500; font-size:14.5px; line-height:1.45; color:var(--text);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.mn-card:hover .mn-title{ color:var(--green); }
@media (max-width: 1060px){
  .mn-card{ flex-basis:calc((100% - 16px) / 2); }
}
@media (max-width: 640px){
  .mn-section{ padding-left:16px; padding-right:16px; }
  .mn-card{ flex-basis:100%; }
  .mn-all{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .mn-track{ scroll-behavior:auto; }
}

/* ==========================================================================
   Footer — roomier section spacing + premium risk warning
   ========================================================================== */
.footer-box .footer-divider{ margin:40px 0 48px; }
.footer-box .footer-top{ margin-bottom:56px; }
.footer-box .footer-risk{
  display:flex; align-items:flex-start; gap:16px;
  margin:0 0 36px; padding:18px 22px;
  background:linear-gradient(135deg, rgba(245,184,46,.07), rgba(245,184,46,.02) 55%), var(--surface-2);
  border:1px solid var(--border); border-left:3px solid var(--green); border-radius:14px;
}
.footer-box .footer-risk-icon{
  flex-shrink:0; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(245,184,46,.12); color:var(--green); border:1px solid rgba(245,184,46,.28);
}
.footer-box .footer-risk p{ margin:0; font-size:12.5px; line-height:1.75; color:var(--text-dim); align-self:center; }
.footer-box .footer-risk strong{
  color:var(--green); font-family:'Sora',sans-serif; font-weight:600; letter-spacing:.02em; margin-right:2px;
}
.footer-box .footer-bottom{ padding-top:28px; }
@media (max-width: 640px){
  .footer-box .footer-divider{ margin:28px 0 32px; }
  .footer-box .footer-top{ margin-bottom:40px; }
  .footer-box .footer-risk{ flex-direction:column; gap:12px; padding:16px; }
  .footer-box .footer-risk p{ align-self:flex-start; }
}

/* Single post: Best bonus below sidebar banner */
.sidebar-best{ margin-top:28px; }
.sidebar-best .best-list{ flex:none; }

/* Single post: related posts — 5 columns, news-card design */
.related-posts{ margin-top:56px; }
.related-grid{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.related-grid .news-card-body{ padding:14px 14px 16px; gap:8px; }
.related-grid .news-card-title{ font-size:14px; }
@media (max-width:1060px){ .related-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .related-grid{ grid-template-columns:1fr; } }

/* Contact: premium Get in touch card (compact, flat) */
.contact-premium{
  padding:18px; background:var(--surface);
  border:1px solid var(--border); border-radius:16px;
}
.contact-premium h3{
  font-size:17px; text-transform:none; letter-spacing:-0.01em; color:var(--text); margin-bottom:12px;
}
.contact-premium .contact-info-row{
  align-items:center; gap:12px; padding:10px 12px; border-radius:12px; margin:0 0 8px;
  border:1px solid var(--border); background:var(--surface-2);
  transition:border-color .15s, background .15s;
}
.contact-premium .contact-info-row:last-child{ margin-bottom:0; }
.contact-premium .contact-info-row + .contact-info-row{ margin-top:0; padding-top:10px; border-top:1px solid var(--border); }
.contact-premium a.contact-info-row:hover{ border-color:rgba(245,184,46,0.4); }
.contact-premium .contact-info-icon{
  width:34px; height:34px; border-radius:10px; color:#1a1305; background:linear-gradient(135deg,#f5b82e,#ffd36b);
}
.contact-premium a.contact-info-row:hover .contact-info-icon{ background:linear-gradient(135deg,#f5b82e,#ffd36b); }
.contact-premium .contact-info-label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; margin-bottom:1px; }
.contact-premium .contact-info-value{ font-size:14px; font-weight:700; word-break:break-word; }
.contact-premium .contact-info-row:hover .contact-info-value{ color:var(--text); }
.contact-info-arrow{ margin-left:auto; flex-shrink:0; color:var(--text-faint); display:flex; transition:color .15s; }
.contact-premium a.contact-info-row:hover .contact-info-arrow{ color:#f5b82e; }
