/* Editorial testimonial composition, isolated to the home section. */
.fx-testimonials { --story-accent:#e35336; --story-paper:#f4efe6; --story-muted:#b6b1ad; --story-line:#ffffff1c; color:var(--story-paper); scroll-margin-top:100px; }
.fx-testimonials [hidden] { display:none!important; }
.fx-testimonials__heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:32px; }
.fx-testimonials .stories-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 18px; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--cor-texto-luz); }
.fx-testimonials .stories-eyebrow::before { content:""; width:28px; height:2px; background:currentColor; }
.fx-testimonials h2 { margin:0; color:var(--story-paper); font-size:clamp(38px,4.5vw,64px); line-height:1.04; font-weight:740; letter-spacing:-.045em; }
.fx-testimonials h2 span { color:var(--story-accent); }
.fx-testimonials .stories-navigation { display:flex; align-items:center; gap:10px; padding-bottom:3px; }
.fx-testimonials .stories-position { margin-right:15px; color:var(--story-muted); font-size:13px; font-variant-numeric:tabular-nums; letter-spacing:.08em; white-space:nowrap; }
.fx-testimonials .stories-navigation button { display:grid; place-items:center; width:48px; height:48px; border:1px solid #ffffff35; border-radius:50%; background:transparent; color:var(--story-paper); font:24px/1 Arial,sans-serif; cursor:pointer; transition:background .2s,border-color .2s; }
.fx-testimonials .stories-navigation button:hover { background:var(--story-accent); border-color:var(--story-accent); color:#100d0b; }
.fx-testimonials .stories-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:20px; }
.fx-testimonials .story { position:relative; display:flex; flex-direction:column; min-width:0; margin:0; padding:26px 30px; background:#161517; border:1px solid var(--story-line); border-radius:14px; transition:border-color .2s; }
.fx-testimonials .story:hover { border-color:#e3533670; }
.fx-testimonials.is-stories-ready .story.is-featured { grid-column:1; grid-row:1 / span 2; padding:36px 38px; border-color:#e3533670; background:#1b1717; }
.fx-testimonials.is-stories-ready .story.is-featured::after { content:""; position:absolute; top:32px; left:-1px; height:64px; width:3px; border-radius:3px; background:var(--story-accent); }
.fx-testimonials .story-top { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.fx-testimonials .story-quote-mark { color:var(--story-accent); font:76px/.75 Georgia,serif; height:40px; }
.fx-testimonials .story-number { color:#a79a94; font-size:11px; line-height:1.4; letter-spacing:.1em; font-variant-numeric:tabular-nums; }
.fx-testimonials .story-quote { border:0; padding:0; margin:14px 0 25px; color:var(--story-paper); font-size:clamp(16px,1.2vw,18px); line-height:1.6; letter-spacing:-.025em; font-weight:500; }
.fx-testimonials.is-stories-ready .story.is-featured .story-quote { margin:auto 0; padding:24px 0 32px; font-size:clamp(18px,1.55vw,22px); font-weight:500; line-height:1.55; letter-spacing:-.015em; }
.fx-testimonials .story-quote[data-story-excerpt] { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
.fx-testimonials.is-stories-ready .story.is-featured .story-quote[data-story-excerpt] { -webkit-line-clamp:6; }
.fx-testimonials .story-footer { display:flex; flex-direction:column; align-items:flex-start; gap:18px; margin-top:auto; border-top:1px solid var(--story-line); padding-top:20px; }
.fx-testimonials .story-author { display:flex; align-items:center; gap:12px; }
.fx-testimonials .story-author-rule { width:18px; height:1px; background:var(--story-accent); flex:none; }
.fx-testimonials .story-author p { margin:0; color:var(--story-paper); font-size:15px; font-weight:650; line-height:1.4; }
.fx-testimonials .story-author div>span { display:block; margin-top:4px; color:var(--story-muted); font-size:12px; line-height:1.4; }
.fx-testimonials .story-read { display:inline-flex; justify-content:space-between; align-items:center; gap:20px; min-height:44px; padding:0; border:0; border-radius:0; background:transparent; color:var(--story-muted); font:inherit; font-size:12px; cursor:pointer; }
.fx-testimonials .story-read span { font-size:20px; color:var(--story-accent); transition:transform .2s; }
.fx-testimonials .story-read:hover { color:var(--story-paper); }
.fx-testimonials .story-read:hover span { transform:translate(2px,-2px); }
.fx-testimonials .stories-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:22px; color:var(--story-muted); font-size:12px; }
.fx-testimonials .stories-bottom p { margin:0; }
/* "Experiencias de quem vive o treino." em caixa alta, negrito e terracota (Lucas, 24/09).
   Maiusculas pelo CSS, e nao no texto: o leitor de tela le a frase, e nao letra por letra. */
.fx-testimonials .stories-bottom p { color:var(--story-accent); font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.fx-testimonials .stories-bottom a { color:var(--story-accent); text-underline-offset:5px; }
.fx-testimonials :is(button,a):focus-visible { outline:2px solid #ff963f; outline-offset:5px; }
.fx-testimonials .story-dialog { position:fixed; inset:0; width:min(660px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 48px); box-sizing:border-box; margin:auto; padding:32px; border:1px solid #e3533670; border-radius:16px; background:#191617; color:var(--story-paper); overflow:auto; overscroll-behavior:contain; }
.fx-testimonials .story-dialog::backdrop { background:#080808c9; backdrop-filter:blur(5px); }
.fx-testimonials .story-dialog-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.fx-testimonials .story-dialog-top .stories-eyebrow { margin:0; font-size:10px; }
.fx-testimonials .story-dialog-close { display:grid; place-items:center; width:44px; height:44px; flex:none; padding:0; border:1px solid #ffffff40; border-radius:50%; background:transparent; color:var(--story-paper); font:26px/1 Arial,sans-serif; cursor:pointer; }
.fx-testimonials .story-dialog h3 { margin:0 0 24px; color:var(--story-paper); font-size:clamp(25px,3vw,34px); line-height:1.15; letter-spacing:-.03em; }
.fx-testimonials .story-dialog blockquote { padding:24px 0 0; margin:0; border:0; border-top:1px solid var(--story-line); color:var(--story-paper); font-size:18px; line-height:1.75; white-space:pre-line; }
body.has-story-dialog { overflow:hidden; }
@media(min-width:1000px) { .fx-testimonials .story:not(.is-featured) .story-footer { flex-direction:row; justify-content:space-between; align-items:center; gap:12px; } .fx-testimonials .story:not(.is-featured) .story-read { max-width:165px; text-align:left; } }
@media(max-width:760px) {
 .fx-testimonials__heading { align-items:flex-start; flex-direction:column; gap:24px; }
 .fx-testimonials .stories-navigation { align-self:flex-end; }
 .fx-testimonials .stories-grid { grid-template-columns:1fr; gap:14px; }
 .fx-testimonials .story,.fx-testimonials.is-stories-ready .story.is-featured { grid-column:auto; grid-row:auto; padding:24px; }
 .fx-testimonials.is-stories-ready .story.is-featured .story-quote { padding:20px 0 28px; font-size:18px; }
 .fx-testimonials .story-quote { font-size:16px; }
 .fx-testimonials .story-dialog { padding:24px; }
 .fx-testimonials .story-dialog blockquote { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .fx-testimonials * { transition:none!important; scroll-behavior:auto; } }
@media(forced-colors:active) { .fx-testimonials .story,.fx-testimonials .story-dialog { border-color:CanvasText; } }

/* Complete testimonials remain readable in every slot. */
.fx-testimonials .story-quote[data-story-full] { white-space:pre-line; overflow-wrap:anywhere; }
