/* =============================================================================
   ChartsView 2026 - Joomla pages: articles, blogs, forms, broker reviews.
   Plain typography lives in @layer cv-content (above Bootstrap, below the old page-specific
   styles in cv-legacy); the components further down are unlayered and win.
   ============================================================================= */
@layer cv-content{
  .cv-jpage{padding:26px 0 8px}
  .cv-jcomp{font-size:16.5px;line-height:1.65;color:var(--cv-ink)}
  .cv-jcomp h1{font-family:var(--cv-font-cond);font-weight:600;font-size:clamp(30px,3.2vw,42px);line-height:1.08;letter-spacing:-.012em;margin:0 0 12px;color:var(--cv-ink)}
  .cv-jcomp h2{font-family:var(--cv-font-cond);font-weight:600;font-size:clamp(23px,2.1vw,28px);line-height:1.15;letter-spacing:-.005em;margin:1.6em 0 .5em;color:var(--cv-ink)}
  .cv-jcomp h3{font-family:var(--cv-font-cond);font-weight:600;font-size:21px;line-height:1.2;margin:1.4em 0 .45em;color:var(--cv-ink)}
  .cv-jcomp h4{font-family:var(--cv-font-cond);font-weight:600;font-size:18px;line-height:1.25;margin:1.2em 0 .4em;color:var(--cv-ink)}
  .cv-jcomp p{margin:0 0 1em}
  .cv-jcomp a:not(.btn){color:var(--cv-link)}
  .cv-jcomp a:not(.btn):hover{color:var(--cv-link-hover)}
  .cv-jcomp ul,.cv-jcomp ol{padding-left:1.35em;margin:0 0 1.1em}
  .cv-jcomp li{margin:.3em 0}
  .cv-jcomp img{max-width:100%;height:auto;border-radius:var(--cv-r-m)}
  .cv-jcomp figure{margin:0 0 1.2em}
  .cv-jcomp figcaption{font-size:13.5px;color:var(--cv-ink-3);margin-top:6px}
  .cv-jcomp blockquote{margin:1.4em 0;padding:2px 0 2px 18px;border-left:3px solid var(--cv-marker);color:var(--cv-ink-2)}
  .cv-jcomp hr{border:0;border-top:1px solid var(--cv-line);margin:2rem 0}
  .cv-jcomp table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:15px;margin:0 0 1.4em}
  .cv-jcomp th{font-weight:600;color:var(--cv-ink-3);text-align:left;font-size:13.5px;padding:9px 12px;border-bottom:1px solid var(--cv-line-strong);background:var(--cv-sheet-2)}
  .cv-jcomp td{padding:10px 12px;border-bottom:1px solid var(--cv-grid);vertical-align:top}
  .cv-jcomp code{background:var(--cv-sheet-2);border:1px solid var(--cv-line);border-radius:4px;padding:1px 5px}
  .com-content-article__body>:is(p,ul,ol,h2,h3,h4,blockquote,dl){max-width:74ch}
  .cv-jcomp .page-header{margin:0;padding:0;border:0}
}

/* ---------- Breadcrumbs ---------- */
.cv-jpage .mod-breadcrumbs__wrapper{margin:0 0 12px}
.cv-jpage .mod-breadcrumbs{--bs-breadcrumb-divider:"/";background:none;padding:0!important;margin:0;font-size:13.5px;color:var(--cv-ink-3)}
.cv-jpage .mod-breadcrumbs__here{display:none}
.cv-jpage .breadcrumb-item+.breadcrumb-item::before{color:var(--cv-line-strong)}
.cv-jpage .breadcrumb-item a{color:var(--cv-ink-2);text-decoration:none}
.cv-jpage .breadcrumb-item a:hover{color:var(--cv-link);text-decoration:underline}
.cv-jpage .breadcrumb-item.active{color:var(--cv-ink-3)}

/* ---------- Article details line ---------- */
.cv-jcomp dl.article-info{display:flex;flex-wrap:wrap;gap:2px 16px;margin:0 0 18px;font-size:13.5px;line-height:1.5;color:var(--cv-ink-3)}
.cv-jcomp dl.article-info dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.cv-jcomp dl.article-info dd{margin:0}
.cv-jcomp dl.article-info [class^="icon-"]{display:none}

/* ---------- Category lists (blog, briefings, learn to trade) ---------- */
.com-content-category-blog>h1,.com-content-category-blog .page-header>h1{margin-bottom:6px}
.com-content-category-blog__items{margin:0}
.com-content-category-blog .blog-item{display:block;padding:22px 0;border-bottom:1px solid var(--cv-line)}
.com-content-category-blog .blog-item:has(>.item-image){display:grid;grid-template-columns:260px minmax(0,1fr);gap:26px;align-items:start}
.com-content-category-blog .item-image{margin:0}
.com-content-category-blog .item-image img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--cv-line);border-radius:var(--cv-r-m)}
.com-content-category-blog .item-content h2{font-size:clamp(21px,1.8vw,24px);margin:0 0 6px}
.com-content-category-blog .item-content h2 a{color:var(--cv-ink);text-decoration:none}
.com-content-category-blog .item-content h2 a:hover{color:var(--cv-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.com-content-category-blog .item-content dl.article-info{margin:0 0 8px}
.com-content-category-blog .item-content p{color:var(--cv-ink-2);max-width:74ch;margin:0 0 .6em}
.com-content-category-blog .item-content img{display:none}
.com-content-category-blog .cv-excerpt{color:var(--cv-ink-2);max-width:68ch;margin:2px 0 12px;line-height:1.6}
.com-content-category-blog .item-content p.readmore{margin:0}
.com-content-category-blog .readmore{margin:4px 0 0}
.com-content-category-blog .readmore .btn{display:inline;padding:0;min-height:0;border:0;background:none;color:var(--cv-link);font:600 14.5px/1.4 var(--cv-font);text-align:left;white-space:normal}
.com-content-category-blog .readmore .btn:hover{color:var(--cv-link-hover);text-decoration:underline}
.com-content-category-blog .readmore [class^="icon-"]{display:none}
.com-content-blog__links{margin:28px 0 0}
.com-content-blog__links ol,.com-content-blog__links ul{list-style:none;padding:0;margin:0}
.com-content-blog__links li{padding:9px 0;border-bottom:1px solid var(--cv-grid)}
.com-content-blog__links a{color:var(--cv-ink);text-decoration:none;font-weight:500}
.com-content-blog__links a:hover{color:var(--cv-link);text-decoration:underline}
.com-content-category-blog__navigation{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.com-content-category-blog__counter{font-size:13.5px;color:var(--cv-ink-3);float:none!important;padding:0!important}
.cv-jcomp .pagination{margin:0;gap:4px;flex-wrap:wrap}
.cv-jcomp .page-link{border-radius:6px!important;min-width:36px;text-align:center}
@media (max-width:700px){
  .com-content-category-blog .blog-item:has(>.item-image){grid-template-columns:minmax(0,1fr);gap:14px}
}

/* ---------- Forms: log in, register, reset, contact ---------- */
.cv-jcomp .control-group{margin:0 0 14px}
.cv-jcomp .control-label{float:none;width:auto;padding:0;text-align:left;margin:0 0 6px}
.cv-jcomp .control-label label{font-weight:500;font-size:14.5px;color:var(--cv-ink)}
.cv-jcomp .controls{margin:0}
.cv-jcomp .star{color:var(--cv-down)}
.cv-jcomp .form-control,.cv-jcomp .form-select{min-height:44px;font-size:15.5px}
.cv-jcomp textarea.form-control{min-height:140px}
.cv-jcomp fieldset{border:0;padding:0;margin:0;min-width:0}
.cv-jcomp legend{font:600 21px/1.2 var(--cv-font-cond);margin:0 0 14px;color:var(--cv-ink);float:none;width:auto;padding:0}
.cv-jcomp .well{background:none;border:0;padding:0;box-shadow:none}
.cv-jcomp .form-check{display:flex;align-items:center;gap:8px;padding-left:0}
.cv-jcomp .form-check-input{margin:0;float:none}
.com-users-login,.com-users-registration,.com-users-reset,.com-users-remind,.com-users-profile{max-width:460px;margin:12px auto 0;background:var(--cv-sheet);border:1px solid var(--cv-line);border-radius:var(--cv-r-l);padding:30px 30px 22px}
.com-users-registration,.com-users-profile{max-width:620px}
.com-users-login .cv-auth-title,.com-users-login h1{font-size:30px;margin:0 0 4px}
.com-users-login .cv-auth-sub{color:var(--cv-ink-2);margin:0 0 22px}
.com-users-login .password-group .input-group .btn{min-height:44px;border-color:var(--cv-line-strong)}
.com-users-login .com-users-login__remember{margin:0 0 16px}
.com-users-login__submit .btn,.com-users-login form button[type=submit],.com-users-registration form button[type=submit],.com-users-reset form button[type=submit],.com-users-remind form button[type=submit]{width:100%;min-height:46px;font-size:15.5px}
.com-users-login .list-group{--bs-list-group-bg:transparent;--bs-list-group-border-color:transparent;--bs-list-group-color:var(--cv-link);margin:16px 0 0;border-top:1px solid var(--cv-line);padding-top:10px;border-radius:0}
.com-users-login .list-group-item{padding:5px 0;font-size:14.5px;background:none;border:0}
.com-users-login .list-group-item a,.com-users-login .list-group-item{color:var(--cv-link)}
.com-contact{max-width:760px}
.com-contact>h1{margin-bottom:6px}
.com-contact .page-header,.com-contact__container,.com-contact>h3{display:none}
.com-contact__form{background:var(--cv-sheet);border:1px solid var(--cv-line);border-radius:var(--cv-r-l);padding:26px 28px 20px;margin-top:18px}
.com-contact .field-spacer{font-size:13.5px;color:var(--cv-ink-3)}
.com-contact .field-spacer .red{color:var(--cv-down)}

/* input + button pairs (password show/hide) */
.cv-jcomp .input-group>.form-control,.cv-jcomp .input-group>.form-select{flex:1 1 auto;width:1%;min-width:0}

/* ---------- Broker reviews ---------- */
.cv-jcomp .tag-yes{color:var(--cv-up);font-weight:600}
.cv-jcomp .tag-no{color:var(--cv-ink-3)}
.cv-jcomp .tag-partial{color:var(--cv-warn);font-weight:500}
.cv-jcomp td.broker-name{font-weight:600;color:var(--cv-ink);white-space:nowrap}
.cv-jcomp td.rating{font-weight:600;white-space:nowrap}
.cv-jcomp .btn-review{font-weight:600;font-size:14px;white-space:nowrap}
.cv-jcomp .btn-cta{background:var(--cv-blue);border:1px solid var(--cv-blue);color:var(--cv-on-blue);font-weight:600;border-radius:6px;white-space:nowrap}
.cv-jcomp .btn-cta:hover{background:var(--cv-blue-hover);border-color:var(--cv-blue-hover);color:var(--cv-on-blue)}
.cv-jcomp table:has(td.broker-name){font-size:14.5px}
.cv-jcomp :has(>table td.broker-name){overflow-x:auto;position:relative;border:1px solid var(--cv-line);border-radius:var(--cv-r-m);background:var(--cv-sheet)}
.cv-jcomp :has(>table td.broker-name)>table{margin:0}
.reviews-section{margin-top:36px}
.review-card{background:var(--cv-sheet);border:1px solid var(--cv-line);border-radius:var(--cv-r-l);padding:24px 26px;margin:0 0 20px;scroll-margin-top:calc(var(--cv-top-h) + 20px)}
.review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--cv-line)}
.review-header-left{display:flex;align-items:center;gap:14px;min-width:0}
.broker-logo{flex:none;width:56px;height:56px;display:grid;place-items:center;border-radius:12px;background:var(--cv-sheet-2);border:1px solid var(--cv-line);font:600 15px/1 var(--cv-font-cond);color:var(--cv-ink)}
.review-title h3{margin:0 0 3px;font-size:24px}
.broker-type{display:block;font-size:13.5px;color:var(--cv-ink-3)}
.review-rating-badge{flex:none;text-align:center;min-width:76px;padding:8px 10px;border-radius:var(--cv-r-m);background:var(--cv-marker-soft)}
.review-rating-badge .score{font:600 28px/1 var(--cv-font-cond);color:var(--cv-ink)}
.review-rating-badge .out-of{font-size:12px;color:var(--cv-ink-2);margin-top:3px}
.review-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px}
.review-body h4{margin:0 0 8px;font-size:17px}
.pros-list,.cons-list{list-style:none;padding:0;margin:0 0 12px}
.pros-list li,.cons-list li{position:relative;padding-left:22px;margin:0 0 7px;font-size:15px;line-height:1.5}
.pros-list li::before,.cons-list li::before{content:"";position:absolute;left:2px;top:.45em;width:11px;height:11px;border-radius:50%}
.pros-list li::before{background:var(--cv-up);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}
.cons-list li::before{background:var(--cv-down);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:0}
.review-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:10px 0 0}
.detail-box{background:var(--cv-sheet-2);border:1px solid var(--cv-line);border-radius:var(--cv-r-m);padding:14px 16px}
.detail-box h4{margin:0 0 8px;font-size:16px}
.fee-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--cv-grid);font-size:14.5px}
.fee-row:last-child{border-bottom:0}
.fee-label{color:var(--cv-ink-2)}
.fee-value{font-weight:600;color:var(--cv-ink);text-align:right;font-variant-numeric:tabular-nums}
.review-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--cv-line)}
.best-for{font-size:14.5px;color:var(--cv-ink-2)}
.best-for strong{color:var(--cv-ink)}
@media (max-width:760px){
  .review-card{padding:18px}
  .review-body,.review-details{grid-template-columns:minmax(0,1fr)}
  .broker-logo{width:46px;height:46px}
}

/* ---------- TradingView credit line ---------- */
.tradingview-widget-copyright,.tradingview-widget-copyright *{color:var(--cv-ink-3)!important;font-size:12.5px!important}
.tradingview-widget-copyright a:hover *{color:var(--cv-link)!important}

/* research pages: newsletter sign-up button */
.newsletter-btn{background:var(--cv-blue);border-color:var(--cv-blue);color:var(--cv-on-blue)}
.newsletter-btn:hover{background:var(--cv-blue-hover);border-color:var(--cv-blue-hover);color:var(--cv-on-blue)}

/* phone widths: grid items may shrink */
.cv-briefing-layout>*,.seg-grid>*,.rp-layout>*,.rp-article,.cv-research-root{min-width:0}
.broker-ctas{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.seg-legend-wrap{min-width:0;max-width:100%;overflow-x:auto}
.broker-ctas{min-width:0;max-width:100%}
.rp-foot{flex-wrap:wrap}
@media (max-width:700px){
  /* wide tables in articles scroll sideways inside the text column */
  .cv-jcomp table:not(.cv-tbl){display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media (max-width:560px){
  /* research pages set the broker buttons' columns inline; one per row on phones */
  .broker-ctas{grid-template-columns:minmax(0,1fr)!important}
}
.qbar-grid>*,.qbar-col{min-width:0}
.qbar-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.spark,.spark-foot,.spark-years{min-width:0;max-width:100%}
.spark-years{overflow:hidden}
.spark-year{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap}

/* research pages: segment charts keep five distinct series colours (theme-aware) */
:root,.cv-research-root,.rp-root{--chart-1:var(--cv-cat-1);--chart-2:var(--cv-cat-2);--chart-3:var(--cv-cat-3);--chart-4:var(--cv-cat-4);--chart-5:var(--cv-cat-5);--chart-other:var(--cv-cat-other)}
.pipe-stage-L5{color:var(--cv-on-blue)}
.tv-logo-icon{color:#fff}
.spark-row>*,.spark-head{min-width:0}
.spark-head{flex-wrap:wrap}
.spark-last{white-space:normal;overflow-wrap:anywhere}
@media (max-width:700px){
  /* research segment legend: the wrapper scrolls, the table stays a table */
  .seg-legend-wrap{display:block;overflow-x:auto}
  .cv-jcomp .seg-legend-wrap>table.seg-legend{display:table;overflow:visible;max-width:none}
}
/* long words and links never widen the page */
.cv-jcomp :is(p,li,dd,h1,h2,h3,h4,blockquote,figcaption){overflow-wrap:break-word}
.news-item-text{overflow-wrap:anywhere}
/* research pages: grid and flex children may shrink to the phone width */
.rp-article [class*="-grid"]>*,.rp-foot>*,.rp-article [class*="-row"]>*{min-width:0}
@media (max-width:700px){ .bizmodel-grid{grid-template-columns:minmax(0,1fr)} }
@media (max-width:700px){ .rp-foot{flex-direction:column} .rp-foot>*{max-width:100%;width:auto;flex:0 0 auto} }
/* Round 3 (6 Oct): research reports - summary tiles skip empty ones and set long text smaller; the five-year cards
   show the first and last year (five labels did not fit and were cut); segment shares wrap instead of squeezing the
   description column */
.kpi-highlights{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.kpi-tile.is-empty{display:none}
.kpi-tile-value.is-long{font-family:var(--cv-font);font-size:16px;line-height:1.45;font-weight:500;font-variant-numeric:normal}
.spark-year{flex:0 0 auto;overflow:visible}
.spark-year:not(:first-child):not(:last-child){display:none}
.spark-last.is-long{font-family:var(--cv-font);font-size:14px;line-height:1.35;font-weight:500}
@media (min-width:821px){ .seg-grid{grid-template-columns:220px minmax(0,1fr)} }
.seg-cell-pct{white-space:normal;min-width:7.5em}
/* Round 3: a long web address pasted as plain text (old lesson) pushed phone pages sideways */
.cv-jcomp .com-content-article__body,.cv-jcomp .item-content{overflow-wrap:break-word;min-width:0}
