.ct-section {
width:100%;
background-size:cover;
background-repeat:repeat;
}
.ct-section>.ct-section-inner-wrap {
display:flex;
flex-direction:column;
align-items:flex-start;
}
.ct-div-block {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.ct-new-columns {
display:flex;
width:100%;
flex-direction:row;
align-items:stretch;
justify-content:center;
flex-wrap:wrap;
}
.ct-link-text {
display:inline-block;
}
.ct-link {
display:flex;
flex-wrap:wrap;
text-align:center;
text-decoration:none;
flex-direction:column;
align-items:center;
justify-content:center;
}
.ct-link-button {
display:inline-block;
text-align:center;
text-decoration:none;
}
.ct-link-button {
background-color: #1e73be;
border: 1px solid #1e73be;
color: #ffffff;
padding: 10px 16px;
}
.ct-image {
max-width:100%;
}
.ct-fancy-icon>svg {
width:55px;height:55px;}
.ct-inner-content {
width:100%;
}
.ct-slide {
display:flex;
flex-wrap:wrap;
text-align:center;
flex-direction:column;
align-items:center;
justify-content:center;
}
.ct-nestable-shortcode {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-comments {
width:100%;
text-align:left;
}
.oxy-comment-form {
width:100%;
}
.oxy-login-form {
width:100%;
}
.oxy-search-form {
width:100%;
}
.oxy-tabs-contents {
display:flex;
width:100%;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-tab {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-tab-content {
display:flex;
width:100%;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-testimonial {
width:100%;
}
.oxy-icon-box {
width:100%;
}
.oxy-pricing-box {
width:100%;
}
.oxy-posts-grid {
width:100%;
}
.oxy-gallery {
width:100%;
}
.ct-slider {
width:100%;
}
.oxy-tabs {
display:flex;
flex-wrap:nowrap;
flex-direction:row;
align-items:stretch;
}
.ct-modal {
flex-direction:column;
align-items:flex-start;
}
.ct-span {
display:inline-block;
text-decoration:inherit;
}
.ct-widget {
width:100%;
}
.oxy-dynamic-list {
width:100%;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
			.ct-div-block,
			.oxy-post-content,
			.ct-text-block,
			.ct-headline,
			.oxy-rich-text,
			.ct-link-text { max-width: 100%; }
			img { flex-shrink: 0; }
			body * { min-height: 1px; }
		}            .oxy-testimonial {
                flex-direction: row;
                align-items: center;
            }
                        .oxy-testimonial .oxy-testimonial-photo-wrap {
                order: 1;
            }
            
                        .oxy-testimonial .oxy-testimonial-photo {
                width: 125px;                height: 125px;                margin-right: 20px;
            }
            
                        .oxy-testimonial .oxy-testimonial-photo-wrap, 
            .oxy-testimonial .oxy-testimonial-author-wrap, 
            .oxy-testimonial .oxy-testimonial-content-wrap {
                align-items: flex-start;                text-align: left;            }
            
                                                            .oxy-testimonial .oxy-testimonial-text {
                margin-bottom:8px;font-size: 21px;
line-height: 1.4;
-webkit-font-smoothing: subpixel-antialiased;
            }
            
                                    .oxy-testimonial .oxy-testimonial-author {
                font-size: 18px;
-webkit-font-smoothing: subpixel-antialiased;
            }
                            

                                                .oxy-testimonial .oxy-testimonial-author-info {
                font-size: 12px;
-webkit-font-smoothing: subpixel-antialiased;
            }
            
             
            
                        .oxy-icon-box {
                text-align: left;                flex-direction: column;            }
            
                        .oxy-icon-box .oxy-icon-box-icon {
                margin-bottom: 12px;
                align-self: flex-start;            }
            
                                                                        .oxy-icon-box .oxy-icon-box-heading {
                font-size: 21px;
margin-bottom: 12px;            }
            
                                                                                    .oxy-icon-box .oxy-icon-box-text {
                font-size: 16px;
margin-bottom: 12px;align-self: flex-start;            }
            
                        .oxy-icon-box .oxy-icon-box-link {
                margin-top: 20px;                            }
            
            
            /* GLOBALS */

                                                            .oxy-pricing-box .oxy-pricing-box-section {
                padding-top: 20px;
padding-left: 20px;
padding-right: 20px;
padding-bottom: 20px;
text-align: center;            }
                        
                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-price {
                justify-content: center;            }
            
            /* IMAGE */
                                                                                    .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-graphic {
                justify-content: center;            }
            
            /* TITLE */
                                                            
                                    .oxy-pricing-box .oxy-pricing-box-title-title {
                font-size: 48px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-title-subtitle {
                font-size: 24px;
            }
            

            /* PRICE */
                                                .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-price {
                                                flex-direction: row;                                            }
            
                                    .oxy-pricing-box .oxy-pricing-box-currency {
                font-size: 28px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-amount-main {
                font-size: 80px;
line-height: 0.7;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-amount-decimal {
                font-size: 13px;
            }
                        
                                    .oxy-pricing-box .oxy-pricing-box-term {
                font-size: 16px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-sale-price {
                font-size: 12px;
color: rgba(0,0,0,0.5);
                margin-bottom: 20px;            }
            
            /* CONTENT */

                                                                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-content {
                font-size: 16px;
color: rgba(0,0,0,0.5);
            }
            
            /* CTA */

                                                                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-cta {
                justify-content: center;            }
            
        
                                .oxy-progress-bar .oxy-progress-bar-background {
            background-color: #000000;            background-image: linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.12) 75%,transparent 75%,transparent);            animation: none 0s paused;        }
                
                .oxy-progress-bar .oxy-progress-bar-progress-wrap {
            width: 85%;        }
        
                                                        .oxy-progress-bar .oxy-progress-bar-progress {
            background-color: #66aaff;padding: 40px;animation: none 0s paused, none 0s paused;            background-image: linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.12) 75%,transparent 75%,transparent);        
        }
                
                        .oxy-progress-bar .oxy-progress-bar-overlay-text {
            font-size: 30px;
font-weight: 900;
-webkit-font-smoothing: subpixel-antialiased;
        }
        
                        .oxy-progress-bar .oxy-progress-bar-overlay-percent {
            font-size: 12px;
        }
        
        .ct-slider .unslider-nav ol li {border-color: #ffffff; }.ct-slider .unslider-nav ol li.unslider-active {background-color: #ffffff; }.ct-slider .ct-slide {
				padding: 0px;			}
		
                        .oxy-superbox .oxy-superbox-secondary, 
            .oxy-superbox .oxy-superbox-primary {
                transition-duration: 0.5s;            }
            
            
            
            
            
        
        
        
        
            .oxy-shape-divider {
                width: 0px;
                height: 0px;
                
            }
            
            .oxy_shape_divider svg {
                width: 100%;
            }
            .oxy-pro-menu .oxy-pro-menu-container:not(.oxy-pro-menu-open-container):not(.oxy-pro-menu-off-canvas-container) .sub-menu{
box-shadow:px px px px ;}

.oxy-pro-menu .oxy-pro-menu-show-dropdown .oxy-pro-menu-list .menu-item-has-children > a svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-show-dropdown .oxy-pro-menu-list .menu-item-has-children > a div{
margin-left:0px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon svg{
width:30px;
height:30px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon{
padding-top:15px;
padding-right:15px;
padding-bottom:15px;
padding-left:15px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon, .oxy-pro-menu .oxy-pro-menu-mobile-open-icon svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon{
top:20px;
left:20px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon svg{
width:24px;
height:24px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon, .oxy-pro-menu .oxy-pro-menu-mobile-close-icon svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container{
background-color:#ffffff;
}

.oxy-pro-menu .oxy-pro-menu-off-canvas-container, .oxy-pro-menu .oxy-pro-menu-open-container{
background-image:url();
}

.oxy-pro-menu .oxy-pro-menu-off-canvas-container .oxy-pro-menu-list .menu-item-has-children > a svg, .oxy-pro-menu .oxy-pro-menu-open-container .oxy-pro-menu-list .menu-item-has-children > a svg{
font-size:24px;
}

.oxy-pro-menu .oxy-pro-menu-dropdown-links-toggle.oxy-pro-menu-open-container .menu-item-has-children ul, .oxy-pro-menu .oxy-pro-menu-dropdown-links-toggle.oxy-pro-menu-off-canvas-container .menu-item-has-children ul{
background-color:rgba(0,0,0,0.2);
border-top-style:solid;
}

.oxy-pro-menu .oxy-pro-menu-container:not(.oxy-pro-menu-open-container):not(.oxy-pro-menu-off-canvas-container) .oxy-pro-menu-list{
                    flex-direction: row;
               }
.oxy-pro-menu .oxy-pro-menu-container .menu-item a{
                    text-align: left;
                    justify-content: flex-start;
                }
.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container .menu-item, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container .menu-item{
                    align-items: flex-start;
                }

            .oxy-pro-menu .oxy-pro-menu-off-canvas-container{
                    top: 0;
                    bottom: 0;
                    right: auto;
                    left: 0;
               }
.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container .oxy-pro-menu-list .menu-item a, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container .oxy-pro-menu-list .menu-item a{
                    text-align: left;
                    justify-content: flex-start;
                }

            .oxy-site-navigation {
--oxynav-brand-color:#4831B0;
--oxynav-neutral-color:#FFFFFF;
--oxynav-activehover-color:#EFEDF4;
--oxynav-background-color:#4831B0;
--oxynav-border-radius:0px;
--oxynav-other-spacing:8px;
--oxynav-transition-duration:0.3s;
--oxynav-transition-timing-function:cubic-bezier(.84,.05,.31,.93);
}

.oxy-site-navigation .oxy-site-navigation__mobile-close-wrapper{
text-align:left;
}

.oxy-site-navigation > ul{ left: 0; }
.oxy-site-navigation {
                        --oxynav-animation-name: none; 
                    }

                .oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1){ 
                    background-color: var(--oxynav-brand-color);
                    transition: var(--oxynav-transition-duration);
                    margin-left: var(--oxynav-other-spacing);
                    border: none;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2){ 
                    background: transparent;
                    border: 1px solid currentColor;
                    transition: var(--oxynav-transition-duration);
                    margin-left: var(--oxynav-other-spacing);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2):not(:hover) > img{
                    filter: invert(0) !important;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover{
                    background-color: var(--oxynav-activehover-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1) > a{
                    color: var(--oxynav-neutral-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2) > a{
                    color: var(--oxynav-brand-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover > a{
                    color: var(--oxynav-brand-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1) > a::after{
                    color: var(--oxynav-neutral-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2) > a::after{
                    color: var(--oxynav-brand-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover > a::after{
                    color: var(--oxynav-brand-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > ul{
                    display: none;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > button, .oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > ul{
                    display: none;
                }

                .ct-section-inner-wrap, .oxy-header-container{
  max-width: 1120px;
}
body {font-family: 'Open Sans';}body {line-height: 1.6;font-size: 16px;font-weight: 400;color: #404040;}.oxy-nav-menu-hamburger-line {background-color: #404040;}h1, h2, h3, h4, h5, h6 {font-family: 'Source Sans 3';font-size: 36px;font-weight: 700;}h2, h3, h4, h5, h6{font-size: 30px;}h3, h4, h5, h6{font-size: 24px;}h4, h5, h6{font-size: 20px;}h5, h6{font-size: 18px;}h6{font-size: 16px;}a {color: #0074db;text-decoration: none;}a:hover {text-decoration: none;}.ct-link-text {text-decoration: ;}.ct-link {text-decoration: ;}.ct-link-button {border-radius: 3px;}.ct-section-inner-wrap {
padding-top: 75px;
padding-right: 20px;
padding-bottom: 75px;
padding-left: 20px;
}.ct-new-columns > .ct-div-block {
padding-top: 20px;
padding-right: 20px;
padding-bottom: 20px;
padding-left: 20px;
}.oxy-header-container {
padding-right: 20px;
padding-left: 20px;
}@media (max-width: 992px) {
				.ct-columns-inner-wrap {
					display: block !important;
				}
				.ct-columns-inner-wrap:after {
					display: table;
					clear: both;
					content: "";
				}
				.ct-column {
					width: 100% !important;
					margin: 0 !important;
				}
				.ct-columns-inner-wrap {
					margin: 0 !important;
				}
			}
.acc:styles{
}
.acc-body:styles{
}
.article:styles{
}
.article-img:styles{
}
.ba:styles{
}
.ba-antes:styles{
}
.ba-col:styles{
}
.ba-depois:styles{
}
.ba-foot:styles{
}
.ba-item:styles{
}
.ba-list:styles{
}
.ba-mark:styles{
}
.bignum:styles{
}
.bignums:styles{
}
.btn-link:styles{
}
.card:styles{
}
.case:styles{
}
.case-img:styles{
}
.category:styles{
}
.conn-line:styles{
}
.connections:styles{
}
.ctafinal:styles{
}
.faq:styles{
}
.fds-badge:styles{
}
.fds-badge--esmeralda:styles{
}
.fds-badge--nucleo:styles{
}
.fds-badge--violeta:styles{
}
.fds-body-l:styles{
}
.fds-body-m:styles{
}
.fds-body-s:styles{
}
.fds-btn:styles{
}
.fds-btn--danger:styles{
}
.fds-btn--ghost:styles{
}
.fds-btn--gradient:styles{
}
.fds-btn--lg:styles{
}
.fds-btn--primary:styles{
}
.fds-btn--secondary:styles{
}
.fds-btn--sm:styles{
}
.fds-btn--success:styles{
}
.fds-caption:styles{
}
.fds-card:styles{
}
.fds-card--elevated:styles{
}
.fds-card--glass:styles{
}
.fds-card--gradient:styles{
}
.fds-card--interactive:styles{
}
.fds-container:styles{
}
.fds-display-l:styles{
}
.fds-display-m:styles{
}
.fds-display-xl:styles{
}
.fds-divider:styles{
}
.fds-flex-1:styles{
}
.fds-gap-1:styles{
}
.fds-gap-2:styles{
}
.fds-gap-3:styles{
}
.fds-gap-4:styles{
}
.fds-gap-5:styles{
}
.fds-gap-6:styles{
}
.fds-gap-8:styles{
}
.fds-grid:styles{
}
.fds-h1:styles{
}
.fds-h2:styles{
}
.fds-h3:styles{
}
.fds-h4:styles{
}
.fds-h5:styles{
}
.fds-h6:styles{
}
.fds-help:styles{
}
.fds-input:styles{
}
.fds-items-center:styles{
}
.fds-items-end:styles{
}
.fds-items-start:styles{
}
.fds-justify-between:styles{
}
.fds-justify-center:styles{
}
.fds-justify-end:styles{
}
.fds-label:styles{
}
.fds-lead:styles{
}
.fds-mono:styles{
}
.fds-nav-link:styles{
}
.fds-nav-link--active:styles{
}
.fds-navbar:styles{
}
.fds-navbar__links:styles{
}
.fds-overline:styles{
}
.fds-row:styles{
}
.fds-stack:styles{
}
.fds-text-center:styles{
}
.fds-text-gradient:styles{
}
.fds-text-right:styles{
}
.fds-wrap:styles{
}
.field:styles{
}
.field--area:styles{
}
.floating-card:styles{
}
.foot-min:styles{
}
.form:styles{
}
.g-2:styles{
}
.g-3:styles{
}
.g-4:styles{
}
.g-5:styles{
}
.head-row:styles{
}
.hero:styles{
}
.hero-authority:styles{
}
.hero-shot:styles{
}
.hero-title:styles{
}
.hl-line:styles{
}
.ic:styles{
}
.inst:styles{
}
.is-active:styles{
}
.is-dim:styles{
}
.is-related:styles{
}
.logo-chip:styles{
}
.logo-chip--named:styles{
}
.logo-strip:styles{
}
.node:styles{
}
.node--hab:styles{
}
.npill:styles{
}
.orbital:styles{
}
.orbital-head:styles{
}
.orbital-reforco:styles{
}
.oring:styles{
}
.oring--in:styles{
}
.oring--out:styles{
}
.ph:styles{
}
.pillars:styles{
}
.sec-head:styles{
}
.section:styles{
}
.section--alt:styles{
}
.section--dark:styles{
}
.show:styles{
}
.skip:styles{
}
.spark:styles{
}
.stage:styles{
}
.wrap:styles{
}
.navbar-logo:styles{
}
.footer-logo:styles{
}
.acc-q:styles{
}
.fc-badge:styles{
}
.fc-close:styles{
}
.fc-cta:styles{
}
.fc-desc:styles{
}
.fc-title:styles{
}
.fds-mb-4:styles{
}
.fds-mb-6:styles{
}
.fds-mb-8:styles{
}
.fds-mt-4:styles{
}
.fds-mt-6:styles{
}
.fds-mt-8:styles{
}
.is-open:styles{
}
.npos-1:styles{
}
.npos-2:styles{
}
.npos-3:styles{
}
.npos-4:styles{
}
.npos-5:styles{
}
.npos-6:styles{
}
.anchor:styles{
}
.bn-l:styles{
}
.bn-v:styles{
}
.inst-badge:styles{
}
.inst-badge-ic:styles{
}
.inst-content:styles{
}
.inst-media:styles{
}
.inst-media-wrap:styles{
}
.kicker:styles{
}
.media-icon:styles{
}
.est:styles{
}
.fc-action-btn:styles{
}
.fc-actions:styles{
}
.fc-content:styles{
}
.fc-footer:styles{
}
.fc-header:styles{
}
.fc-rel-title:styles{
}
.fc-relations:styles{
}
.fc-tag-btn:styles{
}
.fc-tags:styles{
}
.has-selection:styles{
}
.spark-halo:styles{
}
.spark-mark:styles{
}
.stage-container:styles{
}
.css:styles{
}
.fds-accordion:styles{
}
.fds-accordion__body:styles{
}
.fds-accordion__head:styles{
}
.fds-accordion__item:styles{
}
.fds-alert:styles{
}
.fds-alert--danger:styles{
}
.fds-alert--info:styles{
}
.fds-alert--success:styles{
}
.fds-alert--warning:styles{
}
.fds-alert__body:styles{
}
.fds-alert__icon:styles{
}
.fds-alert__text:styles{
}
.fds-alert__title:styles{
}
.fds-avatar:styles{
}
.fds-avatar--lg:styles{
}
.fds-avatar--sm:styles{
}
.fds-avatar--xl:styles{
}
.fds-avatar-group:styles{
}
.fds-avatar__status:styles{
}
.fds-avatar__status--away:styles{
}
.fds-avatar__status--busy:styles{
}
.fds-avatar__status--offline:styles{
}
.fds-avatar__status--online:styles{
}
.fds-badge--danger:styles{
}
.fds-badge--warning:styles{
}
.fds-badge__dot:styles{
}
.fds-brand-eyebrow:styles{
}
.fds-branded-surface:styles{
}
.fds-branded-surface--dark:styles{
}
.fds-btn--icon:styles{
}
.fds-card__body:styles{
}
.fds-card__eyebrow:styles{
}
.fds-card__title:styles{
}
.fds-carousel:styles{
}
.fds-carousel-cards:styles{
}
.fds-carousel-cards__card:styles{
}
.fds-carousel-cards__card-body:styles{
}
.fds-carousel-cards__card-cover:styles{
}
.fds-carousel-cards__card-cover--esmeralda:styles{
}
.fds-carousel-cards__card-cover--nucleo:styles{
}
.fds-carousel-cards__card-cover--tri:styles{
}
.fds-carousel-cards__card-cover--violeta:styles{
}
.fds-carousel-cards__card-cover-pattern:styles{
}
.fds-carousel-cards__card-cover-spark:styles{
}
.fds-carousel-cards__card-cover-tag:styles{
}
.fds-carousel-cards__card-desc:styles{
}
.fds-carousel-cards__card-foot:styles{
}
.fds-carousel-cards__card-title:styles{
}
.fds-carousel-cards__nav:styles{
}
.fds-carousel-cards__nav-btn:styles{
}
.fds-carousel-cards__nav-spacer:styles{
}
.fds-carousel-cards__progress:styles{
}
.fds-carousel-cards__progress-bar:styles{
}
.fds-carousel-cards__viewport:styles{
}
.fds-carousel__bullet:styles{
}
.fds-carousel__bullets:styles{
}
.fds-carousel__next:styles{
}
.fds-carousel__prev:styles{
}
.fds-carousel__slide:styles{
}
.fds-carousel__track:styles{
}
.fds-carousel__viewport:styles{
}
.fds-check:styles{
}
.fds-check__box:styles{
}
.fds-code:styles{
}
.fds-codeblock:styles{
}
.fds-codeblock__copy:styles{
}
.fds-codeblock__panel:styles{
}
.fds-codeblock__preview:styles{
}
.fds-codeblock__preview--stack:styles{
}
.fds-codeblock__tab:styles{
}
.fds-codeblock__tabs:styles{
}
.fds-color-chip:styles{
}
.fds-color-chip__copy-hint:styles{
}
.fds-color-chip__hex:styles{
}
.fds-color-chip__meta:styles{
}
.fds-color-chip__name:styles{
}
.fds-color-chip__swatch:styles{
}
.fds-cta:styles{
}
.fds-cta__inner:styles{
}
.fds-divider--gradient:styles{
}
.fds-divider--vertical:styles{
}
.fds-divider-label:styles{
}
.fds-dots:styles{
}
.fds-dropdown:styles{
}
.fds-dropdown__divider:styles{
}
.fds-dropdown__item:styles{
}
.fds-dropdown__menu:styles{
}
.fds-dropdown__trigger:styles{
}
.fds-feature-card:styles{
}
.fds-feature-card--esmeralda:styles{
}
.fds-feature-card--violeta:styles{
}
.fds-feature-card--warning:styles{
}
.fds-feature-card__cta:styles{
}
.fds-feature-card__desc:styles{
}
.fds-feature-card__icon:styles{
}
.fds-feature-card__title:styles{
}
.fds-field:styles{
}
.fds-field__error:styles{
}
.fds-field__hint:styles{
}
.fds-field__label:styles{
}
.fds-floating-shape:styles{
}
.fds-floating-shape--fast:styles{
}
.fds-floating-shape--slow:styles{
}
.fds-footer:styles{
}
.fds-footer__bottom:styles{
}
.fds-footer__brand:styles{
}
.fds-footer__col:styles{
}
.fds-footer__inner:styles{
}
.fds-glow-nucleo:styles{
}
.fds-glow-violeta:styles{
}
.fds-gradient-text--tri:styles{
}
.fds-help--error:styles{
}
.fds-hero:styles{
}
.fds-hero-banner-3d:styles{
}
.fds-hero-banner-3d--compact:styles{
}
.fds-hero-banner-3d--light:styles{
}
.fds-hero-banner-3d--tall:styles{
}
.fds-hero-banner-3d__content:styles{
}
.fds-hero3d:styles{
}
.fds-hero3d-stage:styles{
}
.fds-hero3d-stage__canvas-wrap:styles{
}
.fds-hero3d-stage__glow:styles{
}
.fds-hero3d__bg:styles{
}
.fds-hero3d__content:styles{
}
.fds-hero3d__layer:styles{
}
.fds-hero__inner:styles{
}
.fds-hero__pattern:styles{
}
.fds-icon:styles{
}
.fds-icon--danger:styles{
}
.fds-icon--esmeralda:styles{
}
.fds-icon--lg:styles{
}
.fds-icon--md:styles{
}
.fds-icon--muted:styles{
}
.fds-icon--nucleo:styles{
}
.fds-icon--sm:styles{
}
.fds-icon--violeta:styles{
}
.fds-icon--xl:styles{
}
.fds-icon--xs:styles{
}
.fds-inline:styles{
}
.fds-input--error:styles{
}
.fds-kbd:styles{
}
.fds-link:styles{
}
.fds-link--external:styles{
}
.fds-link--inline:styles{
}
.fds-link--muted:styles{
}
.fds-logo-strip:styles{
}
.fds-logo-strip__sep:styles{
}
.fds-navbar__actions:styles{
}
.fds-navbar__brand:styles{
}
.fds-navbar__link:styles{
}
.fds-navbar__nav:styles{
}
.fds-notification:styles{
}
.fds-notification__body:styles{
}
.fds-notification__icon:styles{
}
.fds-notification__text:styles{
}
.fds-notification__time:styles{
}
.fds-notification__title:styles{
}
.fds-ol:styles{
}
.fds-p:styles{
}
.fds-pattern-bg:styles{
}
.fds-pattern-bg--esmeralda:styles{
}
.fds-pattern-bg--marinho:styles{
}
.fds-pattern-bg--nucleo:styles{
}
.fds-pattern-bg--violeta:styles{
}
.fds-pomelo:styles{
}
.fds-pomelo__arrow:styles{
}
.fds-pomelo__item:styles{
}
.fds-pomelo__lbl:styles{
}
.fds-pomelo__list:styles{
}
.fds-pomelo__num:styles{
}
.fds-pomelo__panel:styles{
}
.fds-pomelo__panel-eyebrow:styles{
}
.fds-pomelo__panel-illustration:styles{
}
.fds-pomelo__stage:styles{
}
.fds-price-card:styles{
}
.fds-price-card--featured:styles{
}
.fds-price-card__feature:styles{
}
.fds-price-card__featured-tag:styles{
}
.fds-price-card__features:styles{
}
.fds-price-card__name:styles{
}
.fds-price-card__price:styles{
}
.fds-price-card__price-period:styles{
}
.fds-progress:styles{
}
.fds-progress--gradient:styles{
}
.fds-progress__bar:styles{
}
.fds-radio:styles{
}
.fds-radio__dot:styles{
}
.fds-search:styles{
}
.fds-search__icon:styles{
}
.fds-search__kbd:styles{
}
.fds-select:styles{
}
.fds-spark-corner:styles{
}
.fds-spark-corner--bl:styles{
}
.fds-spark-corner--br:styles{
}
.fds-spark-corner--lg:styles{
}
.fds-spark-corner--tl:styles{
}
.fds-spark-corner--tr:styles{
}
.fds-spark-corner--xl:styles{
}
.fds-spark-divider:styles{
}
.fds-spark-divider__icon:styles{
}
.fds-spark-mark:styles{
}
.fds-sparkline:styles{
}
.fds-spinner:styles{
}
.fds-spinner--branco:styles{
}
.fds-spinner--esmeralda:styles{
}
.fds-spinner--lg:styles{
}
.fds-spinner--sm:styles{
}
.fds-spinner--violeta:styles{
}
.fds-spinner--xl:styles{
}
.fds-stat-card:styles{
}
.fds-stat-card__delta:styles{
}
.fds-stat-card__delta--down:styles{
}
.fds-stat-card__delta--up:styles{
}
.fds-stat-card__label:styles{
}
.fds-stat-card__value:styles{
}
.fds-swatch:styles{
}
.fds-swatch__color:styles{
}
.fds-swatch__hex:styles{
}
.fds-swatch__meta:styles{
}
.fds-swatch__name:styles{
}
.fds-switch:styles{
}
.fds-switch--sm:styles{
}
.fds-switch__track:styles{
}
.fds-tabs:styles{
}
.fds-tabs__list:styles{
}
.fds-tabs__panel:styles{
}
.fds-tabs__panels:styles{
}
.fds-tabs__tab:styles{
}
.fds-tag:styles{
}
.fds-tag__remove:styles{
}
.fds-testimonial:styles{
}
.fds-testimonial__author:styles{
}
.fds-testimonial__name:styles{
}
.fds-testimonial__quote:styles{
}
.fds-testimonial__role:styles{
}
.fds-text-danger:styles{
}
.fds-text-info:styles{
}
.fds-text-success:styles{
}
.fds-text-warn:styles{
}
.fds-theme-toggle:styles{
}
.fds-theme-toggle__btn:styles{
}
.fds-toast:styles{
}
.fds-toast--error:styles{
}
.fds-toast--info:styles{
}
.fds-toast--success:styles{
}
.fds-toast--warning:styles{
}
.fds-toast-region:styles{
}
.fds-toast__body:styles{
}
.fds-toast__close:styles{
}
.fds-toast__icon:styles{
}
.fds-toast__msg:styles{
}
.fds-toast__title:styles{
}
.fds-tooltip:styles{
}
.fds-tooltip__bubble:styles{
}
.fds-ul:styles{
}
.fds-visually-hidden:styles{
}
.is-copied:styles{
}
.is-entry-done:styles{
}
.is-leaving:styles{
}
.is-visible:styles{
}
.on-color:styles{
}
.on-dark:styles{
}
.on-light:styles{
}
.on-photo:styles{
}
.org:styles{
}
.spark-anim:styles{
}
.spark-burst:styles{
}
.spark-constellation:styles{
}
.spark-draw:styles{
}
.spark-draw--white:styles{
}
.spark-float:styles{
}
.spark-hover:styles{
}
.spark-morph:styles{
}
.spark-neon:styles{
}
.spark-orbit:styles{
}
.spark-orbit__logo:styles{
}
.spark-orbit__ring:styles{
}
.spark-orbit__ring-2:styles{
}
.spark-orbit__ring-3:styles{
}
.spark-pulse:styles{
}
.spark-pulse--esmeralda:styles{
}
.spark-pulse--violeta:styles{
}
.spark-rotate:styles{
}
.spark-rotate--glow:styles{
}
.spark-trail:styles{
}
.svg:styles{
}
.tk-com:styles{
}
.tk-fn:styles{
}
.tk-key:styles{
}
.tk-num:styles{
}
.tk-str:styles{
}
.w3:styles{
}
.article-card:styles{
}
.case-card:styles{
}
.faq-wrap:styles{
}
.form-panel:styles{
}
.lead-form:styles{
}
.lead-form__submit:styles{
}
.cc-play:styles{
}
.ctafinal-text:styles{
}
.symptoms:styles{
}
.footer-links:styles{
}
.site-header:styles{
}
.cc-tag:styles{
}
.btn-spark:styles{
}
.footer-logo-lg:styles{
}
.footer-social:styles{
}
.footer-socials:styles{
}
.footer-spark-divider:styles{
}
.navbar-entrar:styles{
}
.rv-symp-host:styles{
}
.hero-fx {
}
.hero-section {
}
.hfx-auth {
}
.hfx-bridge {
}
.hfx-cta {
}
.hfx-ctx-card {
}
.hfx-eyebrow {
}
.hfx-if {
}
.hfx-if-actions {
}
.hfx-if-bar {
}
.hfx-if-body {
}
.hfx-if-chan {
}
.hfx-if-chat {
}
.hfx-if-ctx {
}
.hfx-if-logo {
}
.hfx-if-me {
}
.hfx-if-nav {
}
.hfx-if-side {
}
.hfx-if-who {
}
.hfx-inner {
}
.hfx-lede {
}
.hfx-msg {
}
.hfx-rise {
}
.in {
}
.is-on {
}
.lbl {
}
.lbl--gap {
}
.on {
}
.out {
}
.rv-symp {
}
.rv-symp--v2 {
}
.rv-symp__card {
}
.rv-symp__cards {
}
.rv-symp__final {
}
.rv-symp__grid {
}
.rv-symp__left {
}
.rv-symp__pin {
}
.rv-symp__vp {
}
.sep {
}
.t1 {
}
.t3 {
}
.t4 {
}
.t5 {
}
.blog-eposts {
}
.ft2-host {
}
.tf2-host:styles{
}
.blog-author-hero {
}
.blog-author-hero__bio {
}
.blog-author-hero__ph {
}
.blog-author-hero__role {
}
.blog-authors__grid {
}
.blog-body {
}
.blog-cat-head {
}
.blog-cat-head__count {
}
.blog-cat-head__desc {
}
.blog-cat-head__title {
}
.blog-empty {
}
.blog-filters {
}
.blog-filters__chips {
}
.blog-filters__label {
}
.blog-grid {
}
.blog-grid--2 {
}
.blog-hero {
}
.blog-hero__by {
}
.blog-hero__cover {
}
.blog-hero__grid {
}
.blog-hero__lead {
}
.blog-hero__title {
}
.blog-post__cover {
}
.blog-post__end {
}
.blog-post__head {
}
.blog-post__lead {
}
.blog-post__title {
}
.blog-reading {
}
.blog-sec {
}
.blog-sec--alt {
}
.blog-sec--tight {
}
.blog-title {
}
.fds-author-box {
}
.fds-author-box__avatar {
}
.fds-author-box__bio {
}
.fds-author-box__name {
}
.fds-author-card {
}
.fds-author-card__avatar {
}
.fds-author-card__name {
}
.fds-author-card__role {
}
.fds-breadcrumb {
}
.fds-breadcrumb__current {
}
.fds-breadcrumb__sep {
}
.fds-chip {
}
.fds-newsletter {
}
.fds-newsletter--dark {
}
.fds-newsletter__form {
}
.fds-newsletter__lead {
}
.fds-newsletter__title {
}
.fds-pagination {
}
.fds-post-card {
}
.fds-post-card__author {
}
.fds-post-card__avatar {
}
.fds-post-card__body {
}
.fds-post-card__cat {
}
.fds-post-card__cover {
}
.fds-post-card__date {
}
.fds-post-card__desc {
}
.fds-post-card__foot {
}
.fds-post-card__title {
}
.fds-post-card__who {
}
.fds-searchbar {
}
.fds-share {
}
.fds-share__links {
}
.fds-share__title {
}
.fds-stat-row {
}
.fds-stat__label {
}
.fds-stat__num {
}
.fds-toc {
}
.fds-toc__list {
}
.fds-toc__title {
}
.blog-shell {
}
.fx3-drop {
}
.fx3-pill {
}
.pgh-light {
}
.blog-aside {
}
.page-numbers {
}
.blog-center {
}
.cases-filtros {
}
.cases-grid {
}
.fds-case-card {
}
.fds-case-card__desc {
}
.fds-case-card__foot {
}
.fds-case-card__lbl {
}
.fds-case-card__link {
}
.fds-case-card__logo {
}
.fds-case-card__metric {
}
.fds-case-card__metrics {
}
.fds-case-card__mod {
}
.fds-case-card__mods {
}
.fds-case-card__num {
}
.fds-case-card__title {
}
.fds-case-card__top {
}
.case-corpo {
}
.case-hero {
}
.case-hero__id {
}
.case-hero__img {
}
.case-hero__lead {
}
.case-hero__logo {
}
.case-hero__title {
}
.case-quote {
}
.case-quote__autor {
}
.case-quote__cargo {
}
.case-quote__mark {
}
.case-quote__txt {
}
.case-solucoes {
}
.case-solucoes__item {
}
.case-solucoes__lista {
}
.case-solucoes__t {
}
.case-stripe {
}
.case-stripe__item {
}
.case-stripe__lbl {
}
.case-stripe__num {
}
.so-artigo {
}
.so-case {
}
.blog-especialistas {
}
.rec-busca {
}
.rec-doc {
}
.rec-doc__cat {
}
.rec-doc__d {
}
.rec-doc__data {
}
.rec-doc__dl {
}
.rec-doc__ic {
}
.rec-doc__meta {
}
.rec-doc__t {
}
.rec-doc__tag {
}
.rec-doc__tags {
}
.rec-filtro {
}
.rec-filtros {
}
.rec-filtros__t {
}
.rec-layout {
}
.rec-lista {
}
.mat-card {
}
.mat-card__capa {
}
.mat-card__d {
}
.mat-card__foot {
}
.mat-card__t {
}
.mat-card__tipo {
}
.mat-destaque {
}
.mat-destaque__capa {
}
.mat-destaque__d {
}
.mat-destaque__t {
}
.mat-destaque__txt {
}
.mat-filtros {
}
.mat-grid {
}
.web-badge {
}
.web-capa {
}
.web-card {
}
.web-card__body {
}
.web-card__d {
}
.web-card__link {
}
.web-card__media {
}
.web-card__t {
}
.web-cat {
}
.web-dur {
}
.web-feat {
}
.web-feat__body {
}
.web-feat__d {
}
.web-feat__t {
}
.web-filtros {
}
.web-grid {
}
.web-play {
}
.web-when {
}
.amp-card {
}
.amp-card__tier {
}
.amp-tag {
}
.pg-sec {
}
.pgh-eyebrow {
}
.pgp-card {
}
.pp-mod {
}
.ppanel {
}
.ptag {
}
.selo {
}
.sgc-card {
}
.tf2-pill {
}
.pgi-stats {
}
.chip {
}
.ctas {
}
.fui- {
}
.lead {
}
.link {
}
.nm {
}
.st {
}
.sub {
}
.pg-cta {
}
.lgl-doc {
}
.lgl-hero {
}
.lgl-hero__d {
}
.lgl-hero__t {
}
.lgl-hero__up {
}
.lgl-layout {
}
.lgl-sec {
}
.lgl-toc__in {
}
.lgl-toc__nav {
}
.lgl-toc__t {
}
.ft2-col {
}
.ft2-social {
}
.fx3-brand {
}
.fx3-cta {
}
.fx3-pre__links {
}
.fx3-pre__wa {
}
.fx3-x {
}
.rv-rail__dot {
}
.seg-more {
}
.tf2-card__st {
}
.tf2-ctl__btn {
}
.ft2-bot {
}
.lg {
}
.pchc-mock {
}
.pg-kicker {
}
.pgc-board {
}
.pgv-mock {
}
.lgl-cta {
}
/* SITE */
/* ============================================================
   FORTICS DESIGN SYSTEM — folha global do Oxygen (Fortics-DS)
   Brandbook 2026 v1.0 · self-hosted · fonte de verdade visual
   ============================================================ */

/* -------- Fontes self-hosted -------- */
@font-face{font-family:'Sora';font-style:normal;font-weight:300;font-display:swap;src:url('/wp-content/uploads/2026/07/sora-300.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:400;font-display:swap;src:url('/wp-content/uploads/2026/07/sora-400.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url('/wp-content/uploads/2026/07/sora-600.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url('/wp-content/uploads/2026/07/sora-700.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:800;font-display:swap;src:url('/wp-content/uploads/2026/07/sora-800.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/wp-content/uploads/2026/07/jbmono-400.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url('/wp-content/uploads/2026/07/jbmono-600.woff2') format('woff2');}

/* -------- Tokens -------- */
:root{
  /* Marca */
  --fds-color-nucleo:#0066FF; --fds-color-marinho:#0B1121; --fds-color-violeta:#8B5CF6;
  --fds-color-esmeralda:#20D78A; --fds-color-branco:#FFFFFF;
  --fds-color-nucleo-90:#1A75FF; --fds-color-nucleo-80:#3385FF; --fds-color-nucleo-20:#CCE0FF; --fds-color-nucleo-10:#E5EFFF;
  --fds-color-marinho-90:#1C2235; --fds-color-marinho-80:#2C3449; --fds-color-marinho-70:#3D465D;
  --fds-color-marinho-50:#5E6678; --fds-color-marinho-30:#9DA3B0; --fds-color-marinho-10:#E1E3E8;
  /* Semânticas */
  --fds-color-success:#20D78A; --fds-color-info:#0066FF; --fds-color-warning:#F5B100; --fds-color-danger:#FF4D4F;
  /* Superfícies (light) */
  --fds-surface-0:#FFFFFF; --fds-surface-1:#F7F8FA; --fds-surface-2:#EEF1F6; --fds-surface-3:#E1E5EE;
  --fds-surface-elevated:rgba(11,17,33,0.04); --fds-surface-glass:rgba(255,255,255,0.65); --fds-surface-inverse:#0B1121;
  /* Texto (light) */
  --fds-text-primary:#0B1121; --fds-text-secondary:#2C3449; --fds-text-tertiary:#5E6678;
  --fds-text-inverse:#FFFFFF; --fds-text-link:#0066FF;
  /* Bordas (light) */
  --fds-border-subtle:rgba(11,17,33,0.08); --fds-border-default:rgba(11,17,33,0.14);
  --fds-border-strong:rgba(11,17,33,0.24); --fds-border-focus:#0066FF;
  /* Tipografia */
  --fds-font-main:'Sora',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --fds-font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --fds-weight-thin:100; --fds-weight-extralight:200; --fds-weight-light:300; --fds-weight-regular:400;
  --fds-weight-semibold:600; --fds-weight-bold:700; --fds-weight-extrabold:800;
  --fds-text-display-xl:clamp(3.5rem,6vw,5.5rem); --fds-text-display-l:clamp(2.75rem,5vw,4.25rem);
  --fds-text-display-m:clamp(2.25rem,4vw,3.25rem); --fds-text-h1:clamp(2.5rem,4.5vw,3.5rem);
  --fds-text-h2:clamp(2rem,3.5vw,2.75rem); --fds-text-h3:clamp(1.625rem,2.5vw,2.125rem);
  --fds-text-h4:clamp(1.375rem,2vw,1.625rem); --fds-text-h5:1.25rem; --fds-text-h6:1.125rem;
  --fds-text-body-xl:1.25rem; --fds-text-body-l:1.125rem; --fds-text-body-m:1rem; --fds-text-body-s:0.875rem;
  --fds-text-caption:0.75rem; --fds-text-overline:0.6875rem;
  --fds-leading-tight:1.1; --fds-leading-snug:1.25; --fds-leading-normal:1.5; --fds-leading-relaxed:1.7;
  --fds-tracking-tighter:-0.04em; --fds-tracking-tight:-0.02em; --fds-tracking-normal:0; --fds-tracking-wide:0.02em; --fds-tracking-wider:0.08em;
  /* Espaço */
  --fds-space-0:0; --fds-space-1:0.25rem; --fds-space-2:0.5rem; --fds-space-3:0.75rem; --fds-space-4:1rem;
  --fds-space-5:1.5rem; --fds-space-6:2rem; --fds-space-7:2.5rem; --fds-space-8:3rem; --fds-space-9:4rem;
  --fds-space-10:5rem; --fds-space-11:6rem; --fds-space-12:8rem;
  /* Radius */
  --fds-radius-xs:4px; --fds-radius-sm:8px; --fds-radius-md:12px; --fds-radius-lg:16px;
  --fds-radius-xl:24px; --fds-radius-2xl:32px; --fds-radius-full:9999px;
  /* Sombras */
  --fds-shadow-xs:0 1px 2px rgba(11,17,33,0.06); --fds-shadow-sm:0 2px 8px rgba(11,17,33,0.08);
  --fds-shadow-md:0 8px 24px rgba(11,17,33,0.10); --fds-shadow-lg:0 16px 48px rgba(11,17,33,0.12);
  --fds-shadow-xl:0 24px 72px rgba(11,17,33,0.16);
  --fds-shadow-glow-nucleo:0 0 32px rgba(0,102,255,0.30); --fds-shadow-glow-esmeralda:0 0 32px rgba(32,215,138,0.30);
  --fds-shadow-glow-violeta:0 0 32px rgba(139,92,246,0.30);
  /* Motion */
  --fds-duration-instant:100ms; --fds-duration-fast:200ms; --fds-duration-base:320ms; --fds-duration-slow:480ms; --fds-duration-slower:720ms;
  --fds-ease-out:cubic-bezier(0.16,1,0.3,1); --fds-ease-in-out:cubic-bezier(0.65,0,0.35,1); --fds-ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  /* Gradientes */
  --fds-gradient-nucleo-marinho:linear-gradient(135deg,#0066FF 0%,#0B1121 100%);
  --fds-gradient-nucleo-esmeralda:linear-gradient(135deg,#0066FF 0%,#20D78A 100%);
  --fds-gradient-nucleo-violeta:linear-gradient(135deg,#0066FF 0%,#8B5CF6 100%);
  --fds-gradient-hero:linear-gradient(135deg,#0066FF 0%,#8B5CF6 50%,#20D78A 100%);
  /* Layout */
  --fds-container-max:1180px;
  --fds-z-base:1; --fds-z-dropdown:100; --fds-z-sticky:200; --fds-z-modal:1000; --fds-z-toast:2000;
}
[data-theme="dark"]{
  --fds-surface-0:#0B1121; --fds-surface-1:#121A2E; --fds-surface-2:#1A2238; --fds-surface-3:#232D45;
  --fds-surface-glass:rgba(255,255,255,0.06);
  --fds-text-primary:#FFFFFF; --fds-text-secondary:#C8D1E5; --fds-text-tertiary:#9098AE; --fds-text-inverse:#0B1121; --fds-text-link:#6FA8FF;
  --fds-border-subtle:rgba(255,255,255,0.08); --fds-border-default:rgba(255,255,255,0.14); --fds-border-strong:rgba(255,255,255,0.24); --fds-border-focus:#6FA8FF;
}

/* -------- Base -------- */
body{font-family:var(--fds-font-main);color:var(--fds-text-primary);background:var(--fds-surface-0);line-height:var(--fds-leading-normal);-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* -------- Reset dos containers opinativos do Oxygen --------
   O Oxygen força .ct-div-block{display:flex;flex-direction:column} e um inner-wrap
   com largura própria. Neutralizamos para o Design System controlar o layout por
   classe (row/grid/block explícitos). Deve vir ANTES das classes de layout. */
.ct-section>.ct-section-inner-wrap{display:block;width:100%;max-width:none;margin:0;padding:0;}
.ct-div-block{display:block;flex-direction:row;}
.ct-link,.ct-link-text{display:inline-block;}
.ct-headline,.ct-text-block{display:block;}
/* Fonte da marca em TODOS os elementos de texto (o Oxygen força Source Sans 3 nos h1-h6 e Open Sans no body) */
.ct-headline,.ct-text-block,.ct-link,.ct-link-text,.ct-code-block,.ct-fancy-heading,
h1,h2,h3,h4,h5,h6,p,a,span,li,button,input,textarea,select{font-family:var(--fds-font-main);}
.fds-display-xl,.fds-display-l,.fds-display-m,.fds-h1,.fds-h2,.fds-h3,.fds-h4,.fds-h5,.fds-h6{font-family:var(--fds-font-main);}
.fds-mono,.acc-q .fds-mono{font-family:var(--fds-font-mono);}

/* -------- Tipografia -------- */
.fds-display-xl{font-size:var(--fds-text-display-xl);font-weight:800;line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tight);}
.fds-display-l{font-size:var(--fds-text-display-l);font-weight:800;line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tight);}
.fds-display-m{font-size:var(--fds-text-display-m);font-weight:700;line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight);}
.fds-h1{font-size:var(--fds-text-h1);font-weight:700;line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tight);}
.fds-h2{font-size:var(--fds-text-h2);font-weight:700;line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight);}
.fds-h3{font-size:var(--fds-text-h3);font-weight:700;line-height:var(--fds-leading-snug);}
.fds-h4{font-size:var(--fds-text-h4);font-weight:600;line-height:var(--fds-leading-snug);}
.fds-h5{font-size:var(--fds-text-h5);font-weight:600;}
.fds-h6{font-size:var(--fds-text-h6);font-weight:600;}
.fds-lead{font-size:var(--fds-text-body-l);font-weight:300;line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary);}
.fds-body-l{font-size:var(--fds-text-body-l);} .fds-body-m{font-size:var(--fds-text-body-m);} .fds-body-s{font-size:var(--fds-text-body-s);}
.fds-caption{font-size:var(--fds-text-caption);color:var(--fds-text-tertiary);}
.fds-overline{font-size:var(--fds-text-overline);font-weight:600;text-transform:uppercase;letter-spacing:var(--fds-tracking-wider);color:var(--fds-color-nucleo);}
.fds-mono{font-family:var(--fds-font-mono);}
.fds-text-gradient{background:var(--fds-gradient-nucleo-violeta);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* -------- Botões -------- */
.fds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fds-space-2);height:44px;padding:0 var(--fds-space-6);
  font-family:var(--fds-font-main);font-size:var(--fds-text-body-m);font-weight:600;border-radius:var(--fds-radius-full);
  border:1px solid transparent;cursor:pointer;transition:transform var(--fds-duration-fast) var(--fds-ease-out),background var(--fds-duration-fast) var(--fds-ease-out),box-shadow var(--fds-duration-fast) var(--fds-ease-out);white-space:nowrap;}
.fds-btn:hover{transform:translateY(-2px);}
.fds-btn--sm{height:36px;padding:0 var(--fds-space-4);font-size:var(--fds-text-body-s);}
.fds-btn--lg{height:56px;padding:0 var(--fds-space-7);font-size:var(--fds-text-body-l);}
.fds-btn--primary{background:var(--fds-color-nucleo);color:#fff;}
.fds-btn--primary:hover{background:var(--fds-color-nucleo-90);box-shadow:var(--fds-shadow-glow-nucleo);}
.fds-btn--secondary{background:var(--fds-surface-2);color:var(--fds-text-primary);border-color:var(--fds-border-default);}
.fds-btn--secondary:hover{background:var(--fds-surface-3);}
.fds-btn--ghost{background:transparent;color:var(--fds-text-primary);border-color:var(--fds-border-default);}
.fds-btn--ghost:hover{border-color:var(--fds-color-marinho);}
.fds-btn--gradient{background:var(--fds-gradient-nucleo-violeta);color:#fff;}
.fds-btn--success{background:var(--fds-color-success);color:#fff;}
.fds-btn--danger{background:var(--fds-color-danger);color:#fff;}
.btn-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fds-text-body-s);color:var(--fds-color-nucleo-80);}
.btn-link::after{content:'\2192';transition:transform var(--fds-duration-fast) var(--fds-ease-out);}
.btn-link:hover::after{transform:translateX(4px);}

/* -------- Cards -------- */
.fds-card{background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);border-radius:var(--fds-radius-lg);padding:var(--fds-space-6);}
.fds-card--elevated{box-shadow:var(--fds-shadow-md);border-color:transparent;}
.fds-card--glass{background:var(--fds-surface-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:var(--fds-border-default);}
.fds-card--gradient{background:var(--fds-gradient-nucleo-violeta);color:#fff;border-color:transparent;}
.fds-card--interactive{transition:transform var(--fds-duration-base) var(--fds-ease-out),box-shadow var(--fds-duration-base) var(--fds-ease-out);}
.fds-card--interactive:hover{transform:translateY(-4px);box-shadow:var(--fds-shadow-lg);}

/* -------- Badges -------- */
.fds-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--fds-space-3);font-size:var(--fds-text-caption);font-weight:600;border-radius:var(--fds-radius-full);background:var(--fds-surface-2);color:var(--fds-text-secondary);}
.fds-badge--nucleo{background:var(--fds-color-nucleo-10);color:var(--fds-color-nucleo);}
.fds-badge--esmeralda{background:rgba(32,215,138,.14);color:#0e7a4e;}
.fds-badge--violeta{background:rgba(139,92,246,.14);color:#6d3fd6;}

/* Inputs, labels, help, divider, badges, botões, tipografia, cards base: definidos
   pelo DS OFICIAL (components.css/atoms.css) carregado depois desta camada — não duplicar aqui. */

/* -------- Divider -------- */
.fds-divider{border:0;border-top:1px solid var(--fds-border-subtle);margin:var(--fds-space-6) 0;}

/* -------- Layout / utilitários -------- */
.fds-container,.wrap{width:100%;max-width:var(--fds-container-max);margin-inline:auto;padding-inline:var(--fds-space-5);}
.fds-stack{display:flex;flex-direction:column;}
.fds-row{display:flex;align-items:center;}
.fds-grid{display:grid;}
.fds-flex-1{flex:1;}
.fds-wrap{flex-wrap:wrap;}
.fds-items-center{align-items:center;} .fds-items-start{align-items:flex-start;} .fds-items-end{align-items:flex-end;}
.fds-justify-between{justify-content:space-between;} .fds-justify-center{justify-content:center;} .fds-justify-end{justify-content:flex-end;}
.fds-gap-1{gap:var(--fds-space-1);} .fds-gap-2{gap:var(--fds-space-2);} .fds-gap-3{gap:var(--fds-space-3);} .fds-gap-4{gap:var(--fds-space-4);}
.fds-gap-5{gap:var(--fds-space-5);} .fds-gap-6{gap:var(--fds-space-6);} .fds-gap-8{gap:var(--fds-space-8);}
.fds-text-center{text-align:center;} .fds-text-right{text-align:right;}
.fds-mt-4{margin-top:var(--fds-space-4);} .fds-mt-6{margin-top:var(--fds-space-6);} .fds-mt-8{margin-top:var(--fds-space-8);}
.fds-mb-4{margin-bottom:var(--fds-space-4);} .fds-mb-6{margin-bottom:var(--fds-space-6);} .fds-mb-8{margin-bottom:var(--fds-space-8);}

/* -------- Grids do wireframe -------- */
.g-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--fds-space-5);}
.g-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fds-space-5);}
.g-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fds-space-5);}
.g-5{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--fds-space-4);}

/* -------- Seções -------- */
.section{padding:var(--fds-space-11) 0;}
.section--alt{background:var(--fds-surface-1);}
.section--dark{background:var(--fds-color-marinho);color:#fff;}
.section--dark .fds-lead{color:rgba(255,255,255,.72);}
.section--dark .fds-h2,.section--dark .fds-h3,.section--dark .fds-h4{color:#fff;}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--fds-space-6);margin-bottom:var(--fds-space-8);}
.head-row .fds-lead{max-width:640px;}
.sec-head{max-width:720px;margin:0 auto var(--fds-space-8);text-align:center;}

/* -------- Navbar: PILL flutuante glassmorphism + megamenu (code block .fx-*, position:fixed) --------
   A pill se auto-posiciona (fixed); a section .site-header vira só um wrapper vazio sem barra/fundo. */
.site-header{position:static;background:none;border:0;padding:0;min-height:0;}
.footer-logo{height:28px;width:auto;}

/* -------- Hero -------- */
.hero{padding:var(--fds-space-11) 0 var(--fds-space-9);text-align:center;}
.hero .wrap{display:flex;flex-direction:column;align-items:center;gap:var(--fds-space-5);}
.hero-title{max-width:16ch;}
.hero .fds-lead{max-width:60ch;}
.hero-authority{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--fds-space-6);margin-top:var(--fds-space-4);color:var(--fds-text-tertiary);font-size:var(--fds-text-body-s);}
.hero-authority b{color:var(--fds-text-primary);font-weight:700;}
.hero-shot{width:100%;max-width:960px;aspect-ratio:21/9;margin-top:var(--fds-space-6);border-radius:var(--fds-radius-xl);background:var(--fds-surface-2);border:1px solid var(--fds-border-subtle);box-shadow:var(--fds-shadow-lg);overflow:hidden;}

/* -------- Feature Card oficial (molecules.css): centralização de ícone SVG --------
   O ícone é um ct_code_block (exceção legítima); sem a regra abaixo o <svg> inline
   fica desalinhado verticalmente (baseline de texto) dentro do círculo. */
.fds-feature-card__icon .ct-code-block,.ic .ct-code-block,.media-icon .ct-code-block{display:flex;align-items:center;justify-content:center;line-height:0;}
.fds-feature-card__icon svg{display:block;width:28px;height:28px;}
.fds-feature-card__cta{cursor:pointer;}
.fds-feature-card__cta .ct-code-block{display:inline-flex;align-items:center;line-height:0;}
.fds-feature-card__cta svg{display:block;width:14px;height:14px;}
.ic svg,.media-icon svg{display:block;width:24px;height:24px;}
.npill .ic svg{width:18px;height:18px;}

/* -------- Antes/Depois -------- */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:var(--fds-space-5);}
.ba-col{border-radius:var(--fds-radius-xl);padding:var(--fds-space-7);}
.ba-antes{background:var(--fds-surface-inverse);border:1px solid rgba(255,255,255,.08);}
.ba-depois{background:var(--fds-color-nucleo);}
.ba-list{list-style:none;display:flex;flex-direction:column;gap:var(--fds-space-3);margin-top:var(--fds-space-4);}
.ba-item{display:flex;align-items:flex-start;gap:var(--fds-space-3);color:rgba(255,255,255,.85);font-size:var(--fds-text-body-s);}
.ba-mark{flex:none;width:22px;height:22px;border-radius:var(--fds-radius-full);display:flex;align-items:center;justify-content:center;font-size:12px;}
.ba-antes .ba-mark{background:rgba(255,255,255,.10);color:#ff8f8f;}
.ba-depois .ba-mark{background:rgba(255,255,255,.20);color:#fff;}
.ba-foot{margin-top:var(--fds-space-5);color:rgba(255,255,255,.55);font-size:var(--fds-text-body-s);}

/* -------- Pilares -------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fds-space-5);}

/* -------- Instituição / big numbers -------- */
.inst{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;}
.inst-content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--fds-space-5);}
.kicker{display:inline-block;font-size:var(--fds-text-caption);font-weight:600;color:var(--fds-color-nucleo);background:var(--fds-color-nucleo-10);padding:4px 12px;border-radius:var(--fds-radius-full);}
/* grid dos .fds-stat-card oficiais (big numbers da institucional) */
.bignums{display:grid;grid-template-columns:1fr 1fr;gap:var(--fds-space-4);width:100%;}
.inst-media-wrap{position:relative;}
.inst-media{aspect-ratio:4/3;background:var(--fds-surface-2);border:1px solid var(--fds-border-subtle);border-radius:var(--fds-radius-lg);box-shadow:var(--fds-shadow-md);}
.inst-badge{position:absolute;left:24px;right:24px;bottom:-18px;background:var(--fds-color-marinho);color:#fff;border-radius:var(--fds-radius-md);padding:var(--fds-space-4);display:flex;gap:var(--fds-space-3);align-items:flex-start;box-shadow:var(--fds-shadow-lg);}
.inst-badge .ct-text-block{font-size:var(--fds-text-caption);color:rgba(255,255,255,.82);line-height:var(--fds-leading-normal);}
.inst-badge-ic{flex:none;width:30px;height:30px;border-radius:var(--fds-radius-sm);background:var(--fds-gradient-nucleo-violeta);display:flex;align-items:center;justify-content:center;color:#fff;}
.inst-badge-ic svg{width:16px;height:16px;}

/* -------- Placeholder de mídia (institucional: vídeo) -------- */
.inst-media{position:relative;width:100%;display:flex;align-items:center;justify-content:center;}
.media-icon{width:56px;height:56px;border-radius:var(--fds-radius-full);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);color:var(--fds-color-nucleo);box-shadow:var(--fds-shadow-md);}
.media-icon svg{width:26px;height:26px;}

/* -------- Âncoras (offset da navbar sticky) -------- */
.anchor{display:block;height:0;scroll-margin-top:88px;}

/* -------- Sintomas: títulos compactos + ícone em VERMELHO (sintomas são negativos) -------- */
.symptoms .fds-feature-card__title{font-size:var(--fds-text-h5);}
.symptoms .fds-feature-card{gap:var(--fds-space-3);}
.symptoms .fds-feature-card__icon{background:rgba(255,77,79,.12);color:var(--fds-color-danger);}

/* -------- Sintomas v2: PINNED + scrub cross-fade (fundo claro) --------
   Coluna esquerda fixa + cards rolando; ao fim, cross-fade p/ enunciado grande (JS no code block).
   overflow:visible nos wrappers do Oxygen p/ não quebrar o position:sticky. */
.rv-symp-host,.rv-symp-host>.ct-section-inner-wrap,.rv-symp-host .ct-code-block{overflow:visible;padding:0;}
.rv-symp{position:relative;color:var(--fds-text-primary);height:260vh;
  background:radial-gradient(100% 80% at 82% 6%, rgba(0,102,255,.07), transparent 56%), var(--fds-surface-1);}
.rv-symp__pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;}
.rv-symp__grid{width:100%;max-width:var(--fds-container-max);margin:0 auto;padding:0 var(--fds-space-5);
  display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:center;will-change:opacity;}
.rv-symp__left h2{font-size:clamp(2rem,3.9vw,3.2rem);font-weight:800;line-height:1.07;letter-spacing:-.02em;max-width:15ch;color:var(--fds-text-primary);}
.rv-symp__left p{color:var(--fds-text-secondary);font-size:1.14rem;line-height:1.6;margin-top:18px;max-width:42ch;}
.rv-symp__vp{position:relative;height:62vh;overflow:hidden;
  -webkit-mask:linear-gradient(180deg,transparent,#000 13%,#000 87%,transparent);mask:linear-gradient(180deg,transparent,#000 13%,#000 87%,transparent);}
.rv-symp__cards{position:absolute;left:0;right:0;top:0;display:flex;flex-direction:column;gap:20px;padding:8px 6px;will-change:transform;}
.rv-symp__card{display:flex;align-items:center;gap:20px;padding:22px 26px;border-radius:18px;background:#fff;
  border:1px solid var(--fds-border-subtle);box-shadow:0 18px 40px -24px rgba(11,17,33,.28);}
.rv-symp__ic{flex:none;width:56px;height:56px;border-radius:15px;display:grid;place-items:center;
  background:rgba(255,77,79,.10);color:var(--fds-color-danger,#ff4d4f);border:1px solid rgba(255,77,79,.18);}
.rv-symp__ic svg{width:26px;height:26px;display:block;}
.rv-symp__card h3{font-size:1.2rem;font-weight:700;line-height:1.2;color:var(--fds-text-primary);}
.rv-symp__card p{color:var(--fds-text-tertiary);font-size:.98rem;margin-top:3px;}
.rv-symp__final{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:60px var(--fds-space-5);opacity:0;visibility:hidden;pointer-events:none;}
.rv-symp__final h3{font-size:clamp(2.1rem,5.4vw,4.2rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;max-width:17ch;
  background:linear-gradient(120deg,var(--fds-color-nucleo),#8B5CF6);-webkit-background-clip:text;background-clip:text;color:transparent;}
@media(max-width:900px){
  .rv-symp{height:auto;}
  .rv-symp__pin{position:static;height:auto;display:block;}
  .rv-symp__grid{grid-template-columns:1fr;gap:20px;opacity:1!important;transform:none!important;padding-top:64px;}
  .rv-symp__vp{height:auto;overflow:visible;-webkit-mask:none;mask:none;}
  .rv-symp__cards{position:static;transform:none!important;gap:14px;}
  .rv-symp__final{position:static;opacity:1!important;visibility:visible!important;transform:none!important;padding:70px 20px 90px;}
}

/* -------- Cards da mesma linha com altura igual (grid stretch garantido) -------- */
.g-2,.g-3,.g-4,.g-5,.pillars,.bignums{align-items:stretch;}
.g-2>*,.g-3>*,.g-4>*,.g-5>*,.pillars>*,.bignums>*{height:100%;}
.fds-carousel-cards__card{height:100%;}

/* -------- Pílula (tag) no topo do card do carrossel: glass escuro + texto branco (fiel ao print do DS) -------- */
.cc-tag{display:inline-flex;align-items:center;gap:var(--fds-space-2);padding:4px 12px;border-radius:var(--fds-radius-full);
  font-size:var(--fds-text-caption);font-weight:var(--fds-weight-semibold);letter-spacing:var(--fds-tracking-wide);
  background:rgba(11,17,33,.42);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}

/* -------- Botão "Conhecer X" do card orbital: remover borda default do <button> -------- */
.fc-cta{border:0;}

/* -------- Carrossel de cards (cases/blog): play no cover + ajuste em seção escura -------- */
.cc-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;}
.cc-play svg{width:26px;height:26px;color:var(--fds-color-nucleo);background:rgba(255,255,255,.94);border-radius:var(--fds-radius-full);padding:12px;box-sizing:content-box;box-shadow:var(--fds-shadow-md);}
.section--dark .fds-carousel-cards__card{background:var(--fds-color-marinho-90);border-color:rgba(255,255,255,.08);}
.section--dark .fds-carousel-cards__card-title{color:#fff;}
.section--dark .fds-carousel-cards__card-desc{color:rgba(255,255,255,.72);}
.section--dark .fds-carousel-cards__card-foot{color:rgba(255,255,255,.5);}
.section--dark .fds-carousel-cards__nav-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:#fff;}
.section--dark .fds-carousel-cards__progress{background:rgba(255,255,255,.12);}

/* -------- Logo strip em seção escura -------- */
.section--dark .fds-logo-strip span{color:rgba(255,255,255,.72);}
.section--dark .fds-logo-strip span:hover{color:#fff;}
/* Logotipos reais dos parceiros (wordmarks): branco monocromático + sparks, igual ao strip de clientes */
.fds-logo-strip--imgs{gap:var(--fds-space-8);}
.fds-logo-strip--imgs .ls-logo{height:24px;width:auto;max-width:210px;object-fit:contain;display:block;opacity:1;transition:transform var(--fds-duration-base) var(--fds-ease-out);}
.fds-logo-strip--imgs img[alt="Meta"]{height:23px;}
.fds-logo-strip--imgs img[alt="Google"]{height:36px;}
.fds-logo-strip--imgs img[alt="Microsoft"]{height:29px;}
.fds-logo-strip--imgs img[alt="ElevenLabs"]{height:21px;}
.fds-logo-strip--imgs .ls-logo:hover{transform:translateY(-2px);}
@media(max-width:560px){
  .fds-logo-strip--imgs .ls-logo{height:20px;max-width:170px;}
  .fds-logo-strip--imgs{gap:var(--fds-space-6);}
  .fds-logo-strip--imgs img[alt="Meta"]{height:19px;}
  .fds-logo-strip--imgs img[alt="Google"]{height:29px;}
  .fds-logo-strip--imgs img[alt="Microsoft"]{height:23px;}
  .fds-logo-strip--imgs img[alt="ElevenLabs"]{height:17px;}
}

/* -------- FAQ: .fds-accordion oficial (organisms.css), <details name> nativo -------- */
.faq-wrap{max-width:780px;margin:0 auto;width:100%;}

/* -------- CTA final + form: inputs reais .fds-field/.fds-input (oficiais) -------- */
.ctafinal{position:relative;overflow:hidden;background:var(--fds-color-marinho);border-radius:var(--fds-radius-2xl);padding:var(--fds-space-9);display:grid;grid-template-columns:1fr 1fr;gap:var(--fds-space-8);align-items:center;color:#fff;}
.ctafinal h2{color:#fff;} .ctafinal p{color:rgba(255,255,255,.72);}
.ctafinal .ctafinal-text,.ctafinal .form-panel{position:relative;z-index:1;}
/* spark-corner no escuro precisa ser branco (o SVG oficial é azul/escuro) */
.section--dark .fds-spark-corner,.ctafinal .fds-spark-corner{filter:brightness(0) invert(1);}
/* O painel do form é claro (.fds-card--elevated), mas está dentro do .ctafinal (color:#fff).
   Forço texto escuro no painel p/ os labels/hints ficarem legíveis (Form Field do DS). */
.form-panel{width:100%;color:var(--fds-text-primary);}
.form-panel .fds-field__label{color:var(--fds-text-primary);}
.form-panel .fds-field__hint{color:var(--fds-text-tertiary);}
/* Form Field oficial do DS: gap entre campos + botão full-width */
.lead-form{display:flex;flex-direction:column;gap:var(--fds-space-5);}
.lead-form__submit{width:100%;margin-top:var(--fds-space-2);}

/* -------- Footer BRANDED DARK (.fds-footer + .fds-branded-surface--dark, fiel ao print do DS) -------- */
.fds-footer__col .ct-headline{font-size:var(--fds-text-caption);font-weight:var(--fds-weight-semibold);letter-spacing:var(--fds-tracking-wider);text-transform:uppercase;color:var(--fds-text-tertiary);margin:0 0 var(--fds-space-4);line-height:var(--fds-leading-snug);}
.footer-links{display:flex;flex-direction:column;gap:var(--fds-space-3);align-items:flex-start;}
.footer-links a{color:var(--fds-text-secondary);font-size:var(--fds-text-body-s);transition:color var(--fds-duration-fast);}
.footer-logo-lg{height:40px;width:auto;margin-bottom:var(--fds-space-4);}
.footer-socials{display:flex;gap:var(--fds-space-4);margin-top:var(--fds-space-5);}
.footer-social{display:inline-flex;color:rgba(255,255,255,.55);transition:color var(--fds-duration-fast);}
.footer-social svg{width:20px;height:20px;}
.footer-spark-divider{display:flex;justify-content:center;margin:var(--fds-space-6) 0 var(--fds-space-5);color:rgba(255,255,255,.32);position:relative;z-index:1;}
.footer-spark-divider .fds-spark-mark{width:30px;height:30px;} /* spark da MARCA (mask spark-principal.svg, currentColor) */
/* overrides p/ superfície escura (o branded fornece bg + brancos; ajusto os alvos específicos) */
.fds-branded-surface--dark .fds-footer__col .ct-headline{color:rgba(255,255,255,.5);}
.fds-branded-surface--dark .footer-links a{color:rgba(255,255,255,.72);}
.fds-branded-surface--dark .footer-links a:hover{color:#fff;}
.fds-branded-surface--dark .fds-footer__brand p{color:rgba(255,255,255,.7);position:relative;z-index:1;}
.fds-branded-surface--dark .fds-footer__inner,.fds-branded-surface--dark .fds-footer__bottom{position:relative;z-index:1;}
.fds-branded-surface--dark .footer-social:hover{color:var(--fds-color-nucleo);}
.fds-branded-surface--dark .fds-footer__bottom{color:rgba(255,255,255,.5);border-top-color:rgba(255,255,255,.12);}

/* -------- Spark no CTA da navbar (DS: "Logo + Spark + glow no CTA") -------- */
.btn-spark{display:inline-flex;align-items:center;}
.btn-spark svg{width:16px;height:16px;display:block;}
.btn-spark .fds-spark-mark{width:16px;height:16px;} /* spark da MARCA no CTA (mask spark-principal, currentColor=branco) */
.navbar-entrar{color:var(--fds-text-secondary);}

/* -------- Ecossistema orbital (widget interativo, fiel ao wireframe) -------- */
.orbital{position:relative;background:radial-gradient(circle at 50% 40%,rgba(0,102,255,.14),transparent 60%),var(--fds-color-marinho);
  --o-panel:#162038;--o-primary:#0066FF;--o-primary-soft:#dbe6fe;--o-primary-ink:#0052cc;--o-surface:#fff;--o-bg-alt:#f4f6fa;
  --o-border:#e4e8f0;--o-text:#0f1729;--o-text-soft:#5b6577;--o-text-muted:#8a93a4;--o-navy:#0B1121;}
.orbital-head{max-width:760px;margin:0 auto var(--fds-space-9);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--fds-space-5);}
.orbital-head .fds-overline{margin-bottom:var(--fds-space-2);}
.stage-container{display:flex;justify-content:center;margin-bottom:30px;}
.stage{position:relative;width:600px;height:600px;max-width:100%;aspect-ratio:1;}
.stage.has-selection .spark{opacity:.25;transform:translate(-50%,-50%) scale(.94);}
.stage.has-selection .node:not(.is-active):not(.is-related){opacity:.22;filter:grayscale(.4);}
.stage.has-selection .conn-line:not(.hl-line){opacity:.05;}
.oring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px dashed rgba(255,255,255,.13);border-radius:50%;pointer-events:none;}
.oring--out{width:84%;height:84%;animation:oring-spin 160s linear infinite;}
.oring--in{width:44%;height:44%;animation:oring-spin-rev 120s linear infinite;}
@keyframes oring-spin{to{transform:translate(-50%,-50%) rotate(360deg);}}
@keyframes oring-spin-rev{to{transform:translate(-50%,-50%) rotate(-360deg);}}
.connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;}
.conn-line{stroke:rgba(255,255,255,.18);stroke-width:1.5;stroke-dasharray:4 4;fill:none;transition:stroke .3s,opacity .3s,stroke-width .3s;}
.conn-line.hl-line{stroke:var(--o-primary);stroke-width:2.5;stroke-dasharray:6 6;opacity:.9;animation:stroke-march .8s linear infinite reverse;}
@keyframes stroke-march{to{stroke-dashoffset:-12;}}
.spark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;pointer-events:none;transition:opacity .5s var(--fds-ease-out),transform .5s var(--fds-ease-out);}
.spark-halo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:132px;height:132px;border-radius:50%;border:1px solid rgba(255,255,255,.12);z-index:9;pointer-events:none;}
.spark-mark{position:relative;width:96px;height:96px;display:grid;place-items:center;background:var(--o-panel);border-radius:50%;border:1px solid rgba(255,255,255,.14);box-shadow:0 0 42px rgba(0,102,255,.35);}
.spark-mark::after{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(255,255,255,.12);animation:ping-glow 2.6s cubic-bezier(0,0,.2,1) infinite;}
@keyframes ping-glow{0%{transform:scale(.85);opacity:.7;}100%{transform:scale(2.4);opacity:0;}}
.spark-mark svg{width:52px;height:52px;position:relative;z-index:1;transform-origin:50% 50%;animation:spark-pulse 2.6s ease-in-out infinite;}
@keyframes spark-pulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 3px rgba(0,102,255,.45));}50%{transform:scale(1.06);filter:drop-shadow(0 0 30px rgba(0,102,255,.65));}}
.node{position:absolute;top:0;left:0;will-change:transform;z-index:5;transition:opacity .5s var(--fds-ease-out),filter .5s var(--fds-ease-out);}
.npill{position:relative;display:flex;align-items:center;gap:9px;background:var(--o-panel);border:1px solid rgba(255,255,255,.16);border-radius:var(--fds-radius-full);padding:7px 30px 7px 7px;white-space:nowrap;transition:transform .35s var(--fds-ease-out),border-color .35s,box-shadow .35s;box-shadow:0 6px 18px rgba(0,0,0,.4);cursor:pointer;}
.npill:hover{border-color:rgba(255,255,255,.42);transform:scale(1.04);}
.npill::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,255,255,.32);display:grid;place-items:center;font-size:13px;line-height:1;color:rgba(255,255,255,.72);transition:color .25s,border-color .25s;}
.npill:hover::after{border-color:#9dc1ff;color:#9dc1ff;}
.node.is-active .npill::after{content:"×";color:var(--o-navy);border-color:rgba(15,23,41,.3);}
.node--hab .npill{border-style:dashed;background:rgba(22,32,56,.7);}
.npill .ic{flex:none;width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;color:#cfe0ff;}
.node--hab .npill .ic{width:30px;height:30px;}
.npill .ic svg{width:18px;height:18px;}
.npill .nm{font-weight:600;font-size:.85rem;text-align:left;line-height:1.15;color:#fff;}
.node.is-active{z-index:50;}
.node.is-active .npill{background:#fff;border-color:#fff;transform:scale(1.12);box-shadow:0 12px 30px rgba(0,0,0,.5);}
.node.is-active .npill .nm{color:var(--o-navy);}
.node.is-active .npill .ic{background:var(--o-primary-soft);border-color:transparent;color:var(--o-primary-ink);}
.node.is-related{z-index:15;}
.node.is-related .npill{border-color:var(--o-primary);box-shadow:0 0 0 1px var(--o-primary);}
.node.is-related .npill .ic{color:#9dc1ff;background:rgba(0,102,255,.18);border-color:rgba(0,102,255,.3);}
.floating-card{position:absolute;left:50%;top:var(--fc-top,22%);transform:translateX(-50%) translateY(16px);width:360px;max-width:88vw;background:var(--o-surface);color:var(--o-text);border:1px solid var(--o-border);border-radius:var(--fds-radius-md);box-shadow:var(--fds-shadow-xl);z-index:100;opacity:0;pointer-events:none;overflow:hidden;transition:opacity .35s var(--fds-ease-out),transform .35s var(--fds-ease-out);}
.floating-card.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.fc-header{padding:22px 128px 12px 22px;position:relative;}
.fc-badge{max-width:100%;}
.fc-actions{position:absolute;top:18px;right:18px;display:flex;gap:6px;z-index:2;}
.fc-action-btn{width:30px;height:30px;border-radius:50%;background:var(--o-bg-alt);color:var(--o-text-soft);border:1px solid var(--o-border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;}
.fc-action-btn:hover{background:#e9edf4;color:var(--o-text);}
.fc-badge{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:var(--fds-radius-full);background:#eef0f4;color:var(--o-text-soft);margin-bottom:10px;}
.fc-badge.est{background:var(--o-primary-soft);color:var(--o-primary-ink);}
.fc-title{font-size:1.22rem;font-weight:700;margin-bottom:6px;color:var(--o-text);}
.fc-content{padding:0 22px 18px;font-size:.92rem;color:var(--o-text-soft);line-height:1.6;}
.fc-relations{border-top:1px solid var(--o-border);background:var(--o-bg-alt);padding:14px 22px 18px;}
.fc-rel-title{display:flex;align-items:center;gap:6px;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--o-text-muted);margin-bottom:10px;font-weight:700;}
.fc-tags{display:flex;flex-wrap:wrap;gap:8px;}
.fc-tag-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--o-border);border-radius:8px;padding:6px 10px;font-size:.8rem;font-weight:500;color:var(--o-text);cursor:pointer;transition:border-color .2s,color .2s;}
.fc-tag-btn:hover{border-color:var(--o-primary);color:var(--o-primary-ink);}
.fc-footer{padding:18px 22px;border-top:1px solid var(--o-border);}
.fc-cta{display:flex;align-items:center;justify-content:center;width:100%;background:var(--o-primary);color:#fff;font-weight:600;font-size:.9rem;padding:12px;border-radius:var(--fds-radius-full);cursor:pointer;}
.orbital-reforco{max-width:640px;margin:var(--fds-space-9) auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--fds-space-6);}
@media (max-width:768px){.stage{width:100%;height:auto;aspect-ratio:auto;}}

/* -------- Responsivo (UX/UI: mobile-first, CTAs full-width ao empilhar, sem overflow) -------- */
@media (max-width:960px){
  .g-5,.g-4{grid-template-columns:repeat(2,1fr);}
  .pillars{grid-template-columns:repeat(2,1fr);}
  .inst,.ba,.ctafinal{grid-template-columns:1fr;}
  .fds-navbar__nav,.navbar-entrar{display:none;}
  .head-row{flex-direction:column;align-items:flex-start;gap:var(--fds-space-4);}
  .head-row .fds-btn{width:100%;justify-content:center;}
  .fds-footer__inner{grid-template-columns:1fr 1fr;}
  .inst{gap:var(--fds-space-7);}
}
@media (max-width:768px){
  .section{padding:var(--fds-space-9) 0;}
  .bignums{grid-template-columns:1fr 1fr;}
  .ba{gap:var(--fds-space-4);}
  .ctafinal{padding:var(--fds-space-7);}
}
@media (max-width:560px){
  .g-5,.g-4,.g-3,.g-2,.pillars,.bignums{grid-template-columns:1fr;}
  .section{padding:var(--fds-space-8) 0;}
  .wrap{padding-inline:var(--fds-space-5);}
  .fds-footer__inner{grid-template-columns:1fr;gap:var(--fds-space-6);}
  .fds-footer{padding:var(--fds-space-7) var(--fds-space-5) var(--fds-space-6);}
  .fds-footer__bottom{flex-direction:column;align-items:flex-start;}
  .ctafinal{padding:var(--fds-space-6);}
  .fds-mt-8 .fds-btn,.pillars ~ .fds-text-center .fds-btn{width:100%;justify-content:center;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
}

/* DS */
/* ============================================================
   FORTICS DESIGN SYSTEM — TOKENS
   Brandbook 2026 · fonte única de verdade do sistema visual
   Suporta tema light e dark via [data-theme="light|dark"]
   ============================================================ */

:root {
  /* -------------------------------------------------------- */
  /* CORES DE MARCA (idênticas em ambos os temas)             */
  /* -------------------------------------------------------- */
  --fds-color-nucleo:        #0066FF;
  --fds-color-marinho:       #0B1121;
  --fds-color-violeta:       #8B5CF6;
  --fds-color-esmeralda:     #20D78A;
  --fds-color-branco:        #FFFFFF;

  /* Escalas do Núcleo */
  --fds-color-nucleo-90:     #1A75FF;
  --fds-color-nucleo-80:     #3385FF;
  --fds-color-nucleo-20:     #CCE0FF;
  --fds-color-nucleo-10:     #E5EFFF;

  /* Escalas do Marinho */
  --fds-color-marinho-90:    #1C2235;
  --fds-color-marinho-80:    #2C3449;
  --fds-color-marinho-70:    #3D465D;
  --fds-color-marinho-50:    #5E6678;
  --fds-color-marinho-30:    #9DA3B0;
  --fds-color-marinho-10:    #E1E3E8;

  /* Semânticas */
  --fds-color-success:       var(--fds-color-esmeralda);
  --fds-color-info:          var(--fds-color-nucleo);
  --fds-color-warning:       #F5B100;
  --fds-color-danger:        #FF4D4F;

  /* -------------------------------------------------------- */
  /* GRADIENTES                                               */
  /* -------------------------------------------------------- */
  --fds-gradient-nucleo-marinho:   linear-gradient(135deg, #0066FF 0%, #0B1121 100%);
  --fds-gradient-nucleo-esmeralda: linear-gradient(135deg, #0066FF 0%, #20D78A 100%);
  --fds-gradient-nucleo-violeta:   linear-gradient(135deg, #0066FF 0%, #8B5CF6 100%);
  --fds-gradient-nucleo-branco:    linear-gradient(135deg, #0066FF 0%, #FFFFFF 100%);
  --fds-gradient-marinho-nucleo:   linear-gradient(180deg, #0B1121 0%, #0066FF 100%);
  --fds-gradient-hero:             linear-gradient(135deg, #0066FF 0%, #8B5CF6 50%, #20D78A 100%);

  /* -------------------------------------------------------- */
  /* TIPOGRAFIA — Sora (única fonte da marca)                 */
  /* -------------------------------------------------------- */
  --fds-font-family:    'Sora', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --fds-font-mono:      'JetBrains Mono', 'Fira Code', ui-monospace, SFMono-Regular, monospace;

  --fds-weight-thin:        100;
  --fds-weight-extralight:  200;
  --fds-weight-light:       300;
  --fds-weight-regular:     400;
  --fds-weight-semibold:    600;
  --fds-weight-bold:        700;
  --fds-weight-extrabold:   800;

  /* Escala H1-H6 + display + corpo (responsiva via clamp) */
  --fds-text-display-xl: clamp(3.5rem,  6vw,   5.5rem);   /* 56-88px */
  --fds-text-display-l:  clamp(2.75rem, 5vw,   4.25rem);  /* 44-68px */
  --fds-text-display-m:  clamp(2.25rem, 4vw,   3.25rem);  /* 36-52px */
  --fds-text-h1:         clamp(2.5rem,  4.5vw, 3.5rem);   /* 40-56px */
  --fds-text-h2:         clamp(2rem,    3.5vw, 2.75rem);  /* 32-44px */
  --fds-text-h3:         clamp(1.625rem,2.5vw, 2.125rem); /* 26-34px */
  --fds-text-h4:         clamp(1.375rem,2vw,   1.625rem); /* 22-26px */
  --fds-text-h5:         1.25rem;                          /* 20 */
  --fds-text-h6:         1.125rem;                         /* 18 */
  --fds-text-body-xl:    1.25rem;                          /* 20 */
  --fds-text-body-l:     1.125rem;                         /* 18 */
  --fds-text-body-m:     1rem;                             /* 16 */
  --fds-text-body-s:     0.875rem;                         /* 14 */
  --fds-text-caption:    0.75rem;                          /* 12 */
  --fds-text-overline:   0.6875rem;                        /* 11 */

  --fds-leading-tight:   1.1;
  --fds-leading-snug:    1.25;
  --fds-leading-normal:  1.5;
  --fds-leading-relaxed: 1.7;

  --fds-tracking-tighter: -0.04em;
  --fds-tracking-tight:   -0.02em;
  --fds-tracking-normal:  0;
  --fds-tracking-wide:    0.02em;
  --fds-tracking-wider:   0.08em;

  /* -------------------------------------------------------- */
  /* ESPAÇAMENTO (base 4)                                     */
  /* -------------------------------------------------------- */
  --fds-space-0: 0;
  --fds-space-1: 0.25rem;
  --fds-space-2: 0.5rem;
  --fds-space-3: 0.75rem;
  --fds-space-4: 1rem;
  --fds-space-5: 1.5rem;
  --fds-space-6: 2rem;
  --fds-space-7: 2.5rem;
  --fds-space-8: 3rem;
  --fds-space-9: 4rem;
  --fds-space-10: 5rem;
  --fds-space-11: 6rem;
  --fds-space-12: 8rem;

  /* -------------------------------------------------------- */
  /* RAIOS                                                    */
  /* -------------------------------------------------------- */
  --fds-radius-xs:   4px;
  --fds-radius-sm:   8px;
  --fds-radius-md:   12px;
  --fds-radius-lg:   16px;
  --fds-radius-xl:   24px;
  --fds-radius-2xl:  32px;
  --fds-radius-full: 9999px;

  /* -------------------------------------------------------- */
  /* MOTION                                                   */
  /* -------------------------------------------------------- */
  --fds-duration-instant: 100ms;
  --fds-duration-fast:    200ms;
  --fds-duration-base:    320ms;
  --fds-duration-slow:    480ms;
  --fds-duration-slower:  720ms;

  --fds-ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --fds-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --fds-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* -------------------------------------------------------- */
  /* LAYOUT                                                   */
  /* -------------------------------------------------------- */
  --fds-container-sm:  640px;
  --fds-container-md:  768px;
  --fds-container-lg:  1024px;
  --fds-container-xl:  1280px;
  --fds-container-2xl: 1440px;

  --fds-z-base:     1;
  --fds-z-dropdown: 100;
  --fds-z-sticky:   200;
  --fds-z-modal:    1000;
  --fds-z-toast:    2000;

  /* -------------------------------------------------------- */
  /* PATTERNS                                                  */
  /* -------------------------------------------------------- */
  --fds-pattern-nucleo:    url('/wp-content/uploads/2026/07/pattern-azul-nucleo.svg');
  --fds-pattern-marinho:   url('/wp-content/uploads/2026/07/pattern-marinho.svg');
  --fds-pattern-esmeralda: url('/wp-content/uploads/2026/07/pattern-esmeralda.svg');
  --fds-pattern-violeta:   url('/wp-content/uploads/2026/07/pattern-violeta.svg');
}

/* ============================================================
   TEMA — LIGHT (DEFAULT — Brandbook)
   ============================================================ */
:root,
[data-theme="light"] {
  --fds-surface-0:        #FFFFFF;
  --fds-surface-1:        #F7F8FA;
  --fds-surface-2:        #EEF1F6;
  --fds-surface-3:        #E1E5EE;
  --fds-surface-elevated: rgba(11,17,33,0.04);
  --fds-surface-glass:    rgba(255,255,255,0.65);
  --fds-surface-inverse:  var(--fds-color-marinho);

  /* Texto com contraste WCAG AA garantido sobre superfícies claras */
  --fds-text-primary:     #0B1121;     /* contra branco: 17.2:1 (AAA) */
  --fds-text-secondary:   #2C3449;     /* contra branco: 12.4:1 (AAA) */
  --fds-text-tertiary:    #5E6678;     /* contra branco: 5.6:1 (AA) */
  --fds-text-inverse:     #FFFFFF;
  --fds-text-link:        var(--fds-color-nucleo);

  --fds-border-subtle:    rgba(11,17,33,0.08);
  --fds-border-default:   rgba(11,17,33,0.14);
  --fds-border-strong:    rgba(11,17,33,0.24);
  --fds-border-focus:     var(--fds-color-nucleo);

  --fds-shadow-xs:   0 1px 2px rgba(11,17,33,0.06);
  --fds-shadow-sm:   0 2px 8px rgba(11,17,33,0.08);
  --fds-shadow-md:   0 8px 24px rgba(11,17,33,0.10);
  --fds-shadow-lg:   0 16px 48px rgba(11,17,33,0.12);
  --fds-shadow-xl:   0 24px 72px rgba(11,17,33,0.16);
  --fds-shadow-glow-nucleo:    0 0 32px rgba(0,102,255,0.30);
  --fds-shadow-glow-esmeralda: 0 0 32px rgba(32,215,138,0.30);
  --fds-shadow-glow-violeta:   0 0 32px rgba(139,92,246,0.30);

  --fds-code-bg:        #0B1121;
  --fds-pattern-bg:     var(--fds-pattern-nucleo);
}

/* ============================================================
   TEMA — DARK (opt-in)
   ============================================================ */
[data-theme="dark"] {
  --fds-surface-0:        #0B1121;
  --fds-surface-1:        #121A2E;
  --fds-surface-2:        #1A2238;
  --fds-surface-3:        #232D45;
  --fds-surface-elevated: rgba(255,255,255,0.04);
  --fds-surface-glass:    rgba(255,255,255,0.06);
  --fds-surface-inverse:  #FFFFFF;

  /* Texto com contraste WCAG AA garantido sobre superfícies escuras */
  --fds-text-primary:     #FFFFFF;     /* contra marinho: 17.2:1 (AAA) */
  --fds-text-secondary:   #C8D1E5;     /* contra marinho: 11.1:1 (AAA) */
  --fds-text-tertiary:    #9098AE;     /* contra marinho: 5.4:1 (AA)  */
  --fds-text-inverse:     var(--fds-color-marinho);
  --fds-text-link:        #6FA8FF;     /* núcleo lighter para AA em dark */

  --fds-border-subtle:    rgba(255,255,255,0.08);
  --fds-border-default:   rgba(255,255,255,0.14);
  --fds-border-strong:    rgba(255,255,255,0.24);
  --fds-border-focus:     #6FA8FF;

  --fds-shadow-xs:   0 1px 2px rgba(0,0,0,0.20);
  --fds-shadow-sm:   0 2px 8px rgba(0,0,0,0.28);
  --fds-shadow-md:   0 8px 24px rgba(0,0,0,0.32);
  --fds-shadow-lg:   0 16px 48px rgba(0,0,0,0.40);
  --fds-shadow-xl:   0 24px 72px rgba(0,0,0,0.50);
  --fds-shadow-glow-nucleo:    0 0 32px rgba(0,102,255,0.45);
  --fds-shadow-glow-esmeralda: 0 0 32px rgba(32,215,138,0.45);
  --fds-shadow-glow-violeta:   0 0 32px rgba(139,92,246,0.45);

  --fds-code-bg:        #06091A;
  --fds-pattern-bg:     var(--fds-pattern-marinho);
}

/* Light é o padrão absoluto do brandbook — dark é opt-in via [data-theme="dark"] */

/* ============================================================
   FORTICS DS — BASE
   Reset + tipografia global (H1-H6 em tags nativas)
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--fds-font-family);
  font-weight: var(--fds-weight-regular);
  font-size: var(--fds-text-body-m);
  line-height: var(--fds-leading-normal);
  color: var(--fds-text-primary);
  background: var(--fds-surface-0);
  min-height: 100vh;
  transition: background-color var(--fds-duration-base) var(--fds-ease-out),
              color var(--fds-duration-base) var(--fds-ease-out);
}

img, svg, video { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }

/* ============================================================
   TIPOGRAFIA — H1 a H6 em tags nativas + classes utilitárias
   ============================================================ */

h1, .fds-h1 {
  font-size: var(--fds-text-h1);
  font-weight: var(--fds-weight-bold);
  line-height: var(--fds-leading-tight);
  letter-spacing: var(--fds-tracking-tight);
  margin: 0 0 var(--fds-space-4);
}
h2, .fds-h2 {
  font-size: var(--fds-text-h2);
  font-weight: var(--fds-weight-bold);
  line-height: var(--fds-leading-snug);
  letter-spacing: var(--fds-tracking-tight);
  margin: 0 0 var(--fds-space-4);
}
h3, .fds-h3 {
  font-size: var(--fds-text-h3);
  font-weight: var(--fds-weight-semibold);
  line-height: var(--fds-leading-snug);
  margin: 0 0 var(--fds-space-3);
}
h4, .fds-h4 {
  font-size: var(--fds-text-h4);
  font-weight: var(--fds-weight-semibold);
  line-height: var(--fds-leading-snug);
  margin: 0 0 var(--fds-space-3);
}
h5, .fds-h5 {
  font-size: var(--fds-text-h5);
  font-weight: var(--fds-weight-semibold);
  line-height: var(--fds-leading-snug);
  margin: 0 0 var(--fds-space-2);
}
h6, .fds-h6 {
  font-size: var(--fds-text-h6);
  font-weight: var(--fds-weight-semibold);
  line-height: var(--fds-leading-snug);
  text-transform: uppercase;
  letter-spacing: var(--fds-tracking-wider);
  margin: 0 0 var(--fds-space-2);
}

p, .fds-p {
  margin: 0 0 var(--fds-space-4);
  font-size: var(--fds-text-body-m);
  line-height: var(--fds-leading-relaxed);
  color: var(--fds-text-secondary);
}

/* Displays para hero/feature */
.fds-display-xl { font-size: var(--fds-text-display-xl); font-weight: var(--fds-weight-extrabold); line-height: var(--fds-leading-tight); letter-spacing: var(--fds-tracking-tighter); }
.fds-display-l  { font-size: var(--fds-text-display-l);  font-weight: var(--fds-weight-bold);       line-height: var(--fds-leading-tight); letter-spacing: var(--fds-tracking-tighter); }
.fds-display-m  { font-size: var(--fds-text-display-m);  font-weight: var(--fds-weight-bold);       line-height: var(--fds-leading-tight); letter-spacing: var(--fds-tracking-tight); }

.fds-lead       { font-size: var(--fds-text-body-l); line-height: var(--fds-leading-relaxed); color: var(--fds-text-secondary); }
.fds-body-l     { font-size: var(--fds-text-body-l); line-height: var(--fds-leading-relaxed); }
.fds-body-m     { font-size: var(--fds-text-body-m); line-height: var(--fds-leading-normal); }
.fds-body-s     { font-size: var(--fds-text-body-s); line-height: var(--fds-leading-normal); }
.fds-caption    { font-size: var(--fds-text-caption); line-height: var(--fds-leading-normal); color: var(--fds-text-tertiary); }
.fds-overline   {
  font-size: var(--fds-text-overline);
  font-weight: var(--fds-weight-semibold);
  letter-spacing: var(--fds-tracking-wider);
  text-transform: uppercase;
  color: var(--fds-text-tertiary);
}

.fds-text-gradient {
  background: var(--fds-gradient-nucleo-violeta);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.fds-text-success { color: var(--fds-color-esmeralda); }
.fds-text-info    { color: var(--fds-color-nucleo); }
.fds-text-warn    { color: var(--fds-color-warning); }
.fds-text-danger  { color: var(--fds-color-danger); }

.fds-mono { font-family: var(--fds-font-mono); }

/* Listas com estilo Fortics */
ul.fds-ul, ol.fds-ol { padding-left: 1.25em; margin: 0 0 var(--fds-space-4); color: var(--fds-text-secondary); }
ul.fds-ul li, ol.fds-ol li { margin-bottom: var(--fds-space-2); line-height: var(--fds-leading-relaxed); }
ul.fds-ul li::marker { color: var(--fds-color-nucleo); }

code.fds-inline {
  font-family: var(--fds-font-mono);
  font-size: 0.875em;
  padding: 2px 6px;
  border-radius: var(--fds-radius-xs);
  background: var(--fds-surface-elevated);
  border: 1px solid var(--fds-border-subtle);
  color: var(--fds-text-primary);
}

/* ============================================================
   UTILITIES                                                   */
/* ============================================================ */

.fds-container { width: 100%; max-width: var(--fds-container-xl); margin-inline: auto; padding-inline: var(--fds-space-5); }

.fds-stack { display: flex; flex-direction: column; }
.fds-row   { display: flex; flex-direction: row; align-items: center; }
.fds-grid  { display: grid; }
.fds-flex-1 { flex: 1; }
.fds-wrap   { flex-wrap: wrap; }
.fds-items-center { align-items: center; }
.fds-items-start  { align-items: flex-start; }
.fds-items-end    { align-items: flex-end; }
.fds-justify-between { justify-content: space-between; }
.fds-justify-center  { justify-content: center; }
.fds-justify-end     { justify-content: flex-end; }

.fds-gap-1 { gap: var(--fds-space-1); }
.fds-gap-2 { gap: var(--fds-space-2); }
.fds-gap-3 { gap: var(--fds-space-3); }
.fds-gap-4 { gap: var(--fds-space-4); }
.fds-gap-5 { gap: var(--fds-space-5); }
.fds-gap-6 { gap: var(--fds-space-6); }
.fds-gap-8 { gap: var(--fds-space-8); }

.fds-mt-4 { margin-top: var(--fds-space-4); }
.fds-mt-6 { margin-top: var(--fds-space-6); }
.fds-mt-8 { margin-top: var(--fds-space-8); }
.fds-mb-4 { margin-bottom: var(--fds-space-4); }
.fds-mb-6 { margin-bottom: var(--fds-space-6); }
.fds-mb-8 { margin-bottom: var(--fds-space-8); }

.fds-text-center { text-align: center; }
.fds-text-right  { text-align: right; }

.fds-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Scrollbar */
::-webkit-scrollbar        { width: 10px; height: 10px; }
::-webkit-scrollbar-track  { background: transparent; }
::-webkit-scrollbar-thumb  { background: var(--fds-border-default); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: var(--fds-border-strong); }

/* Focus */
:focus-visible {
  outline: 2px solid var(--fds-border-focus);
  outline-offset: 2px;
  border-radius: var(--fds-radius-xs);
}

::selection { background: var(--fds-color-nucleo); color: #FFFFFF; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   FORTICS DS — ATOMS
   Estende components.css com:
   Checkbox, Radio, Switch, Select customizado, Spinner,
   Divider, Link, Tag, Icon wrapper
   ============================================================ */

/* =============== ICON WRAPPER =============== */
.fds-icon { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.fds-icon svg { width: 1em; height: 1em; }
.fds-icon--xs { font-size: 12px; }
.fds-icon--sm { font-size: 16px; }
.fds-icon--md { font-size: 20px; }
.fds-icon--lg { font-size: 24px; }
.fds-icon--xl { font-size: 32px; }
.fds-icon--nucleo { color: var(--fds-color-nucleo); }
.fds-icon--esmeralda { color: var(--fds-color-esmeralda); }
.fds-icon--violeta { color: var(--fds-color-violeta); }
.fds-icon--danger  { color: var(--fds-color-danger); }
.fds-icon--muted   { color: var(--fds-text-tertiary); }

/* =============== CHECKBOX =============== */
.fds-check {
  display: inline-flex; align-items: center; gap: var(--fds-space-3);
  cursor: pointer; user-select: none;
  font-size: var(--fds-text-body-s);
}
.fds-check input { position: absolute; opacity: 0; pointer-events: none; }
.fds-check__box {
  flex-shrink: 0;
  width: 20px; height: 20px;
  border: 2px solid var(--fds-border-strong);
  border-radius: var(--fds-radius-xs);
  background: transparent;
  transition: all var(--fds-duration-fast) var(--fds-ease-out);
  position: relative;
}
.fds-check__box::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 6.5 11.5 13 5'/%3E%3C/svg%3E") no-repeat center / 14px;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity var(--fds-duration-fast), transform var(--fds-duration-fast) var(--fds-ease-spring);
}
.fds-check input:checked + .fds-check__box {
  background: var(--fds-color-nucleo);
  border-color: var(--fds-color-nucleo);
}
.fds-check input:checked + .fds-check__box::after { opacity: 1; transform: scale(1); }
.fds-check input:indeterminate + .fds-check__box {
  background: var(--fds-color-nucleo);
  border-color: var(--fds-color-nucleo);
}
.fds-check input:indeterminate + .fds-check__box::after {
  opacity: 1; transform: scale(1);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='4' y1='8' x2='12' y2='8'/%3E%3C/svg%3E") no-repeat center / 14px;
}
.fds-check input:focus-visible + .fds-check__box { box-shadow: 0 0 0 4px rgba(0,102,255,0.18); }
.fds-check input:disabled + .fds-check__box { opacity: 0.4; cursor: not-allowed; }
.fds-check:hover input:not(:disabled) + .fds-check__box { border-color: var(--fds-color-nucleo); }

/* =============== RADIO =============== */
.fds-radio {
  display: inline-flex; align-items: center; gap: var(--fds-space-3);
  cursor: pointer; user-select: none;
  font-size: var(--fds-text-body-s);
}
.fds-radio input { position: absolute; opacity: 0; pointer-events: none; }
.fds-radio__dot {
  flex-shrink: 0;
  width: 20px; height: 20px;
  border: 2px solid var(--fds-border-strong);
  border-radius: 50%;
  background: transparent;
  position: relative;
  transition: all var(--fds-duration-fast) var(--fds-ease-out);
}
.fds-radio__dot::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: #fff;
  opacity: 0;
  transform: scale(0);
  transition: opacity var(--fds-duration-fast), transform var(--fds-duration-fast) var(--fds-ease-spring);
}
.fds-radio input:checked + .fds-radio__dot {
  background: var(--fds-color-nucleo);
  border-color: var(--fds-color-nucleo);
}
.fds-radio input:checked + .fds-radio__dot::after { opacity: 1; transform: scale(1); }
.fds-radio input:focus-visible + .fds-radio__dot { box-shadow: 0 0 0 4px rgba(0,102,255,0.18); }
.fds-radio input:disabled + .fds-radio__dot { opacity: 0.4; cursor: not-allowed; }
.fds-radio:hover input:not(:disabled) + .fds-radio__dot { border-color: var(--fds-color-nucleo); }

/* =============== SWITCH (toggle) =============== */
.fds-switch {
  display: inline-flex; align-items: center; gap: var(--fds-space-3);
  cursor: pointer; user-select: none;
  font-size: var(--fds-text-body-s);
}
.fds-switch input { position: absolute; opacity: 0; pointer-events: none; }
.fds-switch__track {
  flex-shrink: 0;
  width: 40px; height: 24px;
  border-radius: var(--fds-radius-full);
  background: var(--fds-border-strong);
  position: relative;
  transition: background var(--fds-duration-fast) var(--fds-ease-out);
}
.fds-switch__track::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transition: transform var(--fds-duration-base) var(--fds-ease-spring);
}
.fds-switch input:checked + .fds-switch__track { background: var(--fds-color-nucleo); }
.fds-switch input:checked + .fds-switch__track::after { transform: translateX(16px); }
.fds-switch input:focus-visible + .fds-switch__track { box-shadow: 0 0 0 4px rgba(0,102,255,0.18); }
.fds-switch input:disabled + .fds-switch__track { opacity: 0.4; cursor: not-allowed; }
.fds-switch--sm .fds-switch__track { width: 32px; height: 18px; }
.fds-switch--sm .fds-switch__track::after { width: 14px; height: 14px; }
.fds-switch--sm input:checked + .fds-switch__track::after { transform: translateX(14px); }

/* =============== SELECT =============== */
.fds-select {
  position: relative;
  display: block;
}
.fds-select select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  height: 48px;
  padding: 0 var(--fds-space-7) 0 var(--fds-space-4);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-md);
  background: var(--fds-surface-1);
  color: var(--fds-text-primary);
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-body-m);
  cursor: pointer;
  transition: border-color var(--fds-duration-fast), box-shadow var(--fds-duration-fast);
}
.fds-select select:hover { border-color: var(--fds-border-strong); }
.fds-select select:focus { outline: none; border-color: var(--fds-color-nucleo); box-shadow: 0 0 0 4px rgba(0,102,255,0.18); }
.fds-select::after {
  content: '';
  position: absolute;
  right: var(--fds-space-4); top: 50%;
  transform: translateY(-50%);
  width: 16px; height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C849A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center / contain;
  pointer-events: none;
}

/* =============== SPINNER =============== */
.fds-spinner {
  display: inline-block;
  width: 24px; height: 24px;
  border: 2.5px solid var(--fds-border-subtle);
  border-top-color: var(--fds-color-nucleo);
  border-radius: 50%;
  animation: fds-spin 0.8s linear infinite;
}
.fds-spinner--sm { width: 16px; height: 16px; border-width: 2px; }
.fds-spinner--lg { width: 36px; height: 36px; border-width: 3px; }
.fds-spinner--xl { width: 56px; height: 56px; border-width: 4px; }
.fds-spinner--esmeralda { border-top-color: var(--fds-color-esmeralda); }
.fds-spinner--violeta   { border-top-color: var(--fds-color-violeta); }
.fds-spinner--branco    { border-color: rgba(255,255,255,0.2); border-top-color: #FFFFFF; }
@keyframes fds-spin { to { transform: rotate(360deg); } }

/* Dots loader alternativo */
.fds-dots { display: inline-flex; align-items: center; gap: 4px; }
.fds-dots span {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--fds-color-nucleo);
  animation: fds-dots-bounce 1.2s infinite ease-in-out;
}
.fds-dots span:nth-child(2) { animation-delay: 0.15s; }
.fds-dots span:nth-child(3) { animation-delay: 0.3s; }
@keyframes fds-dots-bounce {
  0%, 80%, 100% { transform: scale(0.5); opacity: 0.5; }
  40%           { transform: scale(1);   opacity: 1; }
}

/* =============== DIVIDER =============== */
.fds-divider {
  height: 1px;
  background: var(--fds-border-default);
  border: none;
  margin: var(--fds-space-6) 0;
}
.fds-divider--gradient {
  background: linear-gradient(to right, transparent, var(--fds-border-strong), transparent);
}
.fds-divider--vertical {
  width: 1px; height: 100%; min-height: 24px;
  display: inline-block; vertical-align: middle;
  margin: 0 var(--fds-space-4);
}
.fds-divider-label {
  display: flex; align-items: center; gap: var(--fds-space-3);
  color: var(--fds-text-tertiary);
  font-size: var(--fds-text-caption);
  text-transform: uppercase;
  letter-spacing: var(--fds-tracking-wider);
  margin: var(--fds-space-6) 0;
}
.fds-divider-label::before, .fds-divider-label::after {
  content: ''; flex: 1; height: 1px;
  background: var(--fds-border-default);
}

/* =============== LINK =============== */
.fds-link {
  color: var(--fds-color-nucleo);
  font-weight: var(--fds-weight-semibold);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--fds-duration-fast), color var(--fds-duration-fast);
}
.fds-link:hover { border-bottom-color: currentColor; color: var(--fds-color-nucleo-90); }
.fds-link--inline { font-weight: inherit; border-bottom: 1px solid currentColor; }
.fds-link--external::after {
  content: '↗';
  display: inline-block;
  margin-left: 4px;
  font-size: 0.85em;
}
.fds-link--muted { color: var(--fds-text-secondary); }
.fds-link--muted:hover { color: var(--fds-text-primary); }

/* =============== TAG (variação de badge, removível) =============== */
.fds-tag {
  display: inline-flex; align-items: center;
  padding: 4px 10px 4px 12px;
  background: var(--fds-surface-elevated);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-full);
  font-size: var(--fds-text-caption);
  color: var(--fds-text-primary);
  gap: var(--fds-space-2);
}
.fds-tag__remove {
  background: transparent; border: 0; cursor: pointer;
  width: 16px; height: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--fds-text-tertiary);
  font-size: 14px; line-height: 1;
  transition: background var(--fds-duration-fast), color var(--fds-duration-fast);
}
.fds-tag__remove:hover { background: var(--fds-border-strong); color: var(--fds-text-primary); }

/* =============== AVATAR EXTRA (extends components.css) =============== */
.fds-avatar { position: relative; }
.fds-avatar__status {
  position: absolute;
  bottom: 0; right: 0;
  width: 12px; height: 12px;
  border-radius: 50%;
  border: 2px solid var(--fds-surface-0);
}
.fds-avatar__status--online  { background: var(--fds-color-esmeralda); }
.fds-avatar__status--busy    { background: var(--fds-color-danger); }
.fds-avatar__status--away    { background: var(--fds-color-warning); }
.fds-avatar__status--offline { background: var(--fds-text-tertiary); }

.fds-avatar-group { display: inline-flex; }
.fds-avatar-group .fds-avatar {
  border: 2px solid var(--fds-surface-0);
  margin-left: -8px;
}
.fds-avatar-group .fds-avatar:first-child { margin-left: 0; }

/* =============== KBD (keyboard key) =============== */
.fds-kbd {
  display: inline-block;
  padding: 2px 6px;
  font-family: var(--fds-font-mono);
  font-size: 0.85em;
  background: var(--fds-surface-2);
  border: 1px solid var(--fds-border-default);
  border-bottom-width: 2px;
  border-radius: var(--fds-radius-xs);
  color: var(--fds-text-primary);
}

/* =============== PROGRESS =============== */
.fds-progress {
  width: 100%;
  height: 8px;
  background: var(--fds-surface-elevated);
  border-radius: var(--fds-radius-full);
  overflow: hidden;
}
.fds-progress__bar {
  height: 100%;
  background: var(--fds-color-nucleo);
  border-radius: inherit;
  transition: width var(--fds-duration-slow) var(--fds-ease-out);
}
.fds-progress--gradient .fds-progress__bar { background: var(--fds-gradient-nucleo-violeta); }

/* ============================================================
   FORTICS DS — COMPONENTS
   Buttons, Cards, Badges, Inputs, Alerts, Chips, Nav, Avatar
   ============================================================ */

/* =============== BUTTONS =============== */
.fds-btn {
  --_h: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--fds-space-2);
  height: var(--_h);
  padding: 0 var(--fds-space-5);
  border: 1px solid transparent;
  border-radius: var(--fds-radius-full);
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-body-s);
  font-weight: var(--fds-weight-semibold);
  letter-spacing: var(--fds-tracking-wide);
  background: transparent;
  color: var(--fds-text-primary);
  cursor: pointer;
  transition: transform var(--fds-duration-fast) var(--fds-ease-out),
              background-color var(--fds-duration-fast) var(--fds-ease-out),
              border-color var(--fds-duration-fast) var(--fds-ease-out),
              box-shadow var(--fds-duration-fast) var(--fds-ease-out),
              color var(--fds-duration-fast) var(--fds-ease-out);
  will-change: transform;
}
.fds-btn:hover { transform: translateY(-1px); }
.fds-btn:active { transform: translateY(0); }
.fds-btn:disabled { opacity: 0.5; pointer-events: none; }

.fds-btn--primary {
  background: var(--fds-color-nucleo);
  color: #fff;
  box-shadow: 0 6px 18px rgba(0,102,255,0.32);
}
.fds-btn--primary:hover {
  background: var(--fds-color-nucleo-90);
  box-shadow: 0 10px 28px rgba(0,102,255,0.45);
}

.fds-btn--secondary {
  background: var(--fds-surface-1);
  color: var(--fds-text-primary);
  border-color: var(--fds-border-strong);
  backdrop-filter: blur(8px);
}
.fds-btn--secondary:hover {
  background: var(--fds-surface-2);
  border-color: var(--fds-color-nucleo);
  color: var(--fds-color-nucleo);
}

.fds-btn--ghost { background: transparent; color: var(--fds-text-primary); border-color: transparent; }
.fds-btn--ghost:hover { background: var(--fds-surface-elevated); color: var(--fds-color-nucleo); }

.fds-btn--gradient {
  background: var(--fds-gradient-nucleo-violeta);
  color: #fff;
  background-size: 200% 200%;
  background-position: 0% 50%;
  box-shadow: 0 8px 24px rgba(139,92,246,0.32);
}
.fds-btn--gradient:hover {
  background-position: 100% 50%;
  box-shadow: 0 12px 32px rgba(139,92,246,0.50);
}

.fds-btn--success { background: var(--fds-color-esmeralda); color: var(--fds-color-marinho); }
.fds-btn--danger  { background: var(--fds-color-danger);    color: #fff; }

.fds-btn--sm { --_h: 36px; padding: 0 var(--fds-space-4); font-size: var(--fds-text-caption); }
.fds-btn--lg { --_h: 56px; padding: 0 var(--fds-space-6); font-size: var(--fds-text-body-m); }
.fds-btn--icon { padding: 0; width: var(--_h); }

/* =============== CARDS =============== */
.fds-card {
  position: relative;
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
  padding: var(--fds-space-6);
  transition: transform var(--fds-duration-base) var(--fds-ease-out),
              border-color var(--fds-duration-base) var(--fds-ease-out),
              box-shadow var(--fds-duration-base) var(--fds-ease-out);
}
.fds-card--elevated {
  background: var(--fds-surface-2);
  box-shadow: var(--fds-shadow-md);
}
.fds-card--glass {
  background: var(--fds-surface-glass);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: var(--fds-border-default);
}
.fds-card--gradient {
  background: var(--fds-gradient-nucleo-violeta);
  border-color: transparent;
  color: #fff;
}
.fds-card--interactive { cursor: pointer; }
.fds-card--interactive:hover {
  transform: translateY(-4px);
  border-color: var(--fds-border-strong);
  box-shadow: var(--fds-shadow-lg);
}
.fds-card__eyebrow { font-size: var(--fds-text-overline); font-weight: var(--fds-weight-semibold); letter-spacing: var(--fds-tracking-wider); text-transform: uppercase; color: var(--fds-color-nucleo); margin-bottom: var(--fds-space-3); }
.fds-card__title { font-size: var(--fds-text-h3); font-weight: var(--fds-weight-semibold); margin: 0 0 var(--fds-space-3); }
.fds-card__body { color: var(--fds-text-secondary); margin: 0; }

/* =============== BADGES / CHIPS =============== */
.fds-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--fds-space-2);
  padding: 4px 10px;
  border-radius: var(--fds-radius-full);
  font-size: var(--fds-text-caption);
  font-weight: var(--fds-weight-semibold);
  letter-spacing: var(--fds-tracking-wide);
  background: var(--fds-surface-elevated);
  color: var(--fds-text-primary);
  border: 1px solid var(--fds-border-subtle);
}
/* Badges — cores escolhidas para AA WCAG em ambos temas */
.fds-badge--nucleo    { background: rgba(0,102,255,0.12);  color: #0052CC;            border-color: rgba(0,102,255,0.35); }
.fds-badge--esmeralda { background: rgba(32,215,138,0.14); color: #0F8852;            border-color: rgba(32,215,138,0.40); }
.fds-badge--violeta   { background: rgba(139,92,246,0.14); color: #6938E0;            border-color: rgba(139,92,246,0.40); }
.fds-badge--warning   { background: rgba(245,177,0,0.16);  color: #946800;            border-color: rgba(245,177,0,0.40); }
.fds-badge--danger    { background: rgba(255,77,79,0.14);  color: #C42124;            border-color: rgba(255,77,79,0.40); }

:root[data-theme="dark"] .fds-badge--nucleo,
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .fds-badge--nucleo { color: #6FA8FF; }
}
:root[data-theme="dark"] .fds-badge--nucleo    { color: #6FA8FF; }
:root[data-theme="dark"] .fds-badge--esmeralda { color: var(--fds-color-esmeralda); }
:root[data-theme="dark"] .fds-badge--violeta   { color: #B79BFA; }
:root[data-theme="dark"] .fds-badge--warning   { color: #F5C547; }
:root[data-theme="dark"] .fds-badge--danger    { color: #FF8082; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .fds-badge--nucleo    { color: #6FA8FF; }
  :root:not([data-theme]) .fds-badge--esmeralda { color: var(--fds-color-esmeralda); }
  :root:not([data-theme]) .fds-badge--violeta   { color: #B79BFA; }
  :root:not([data-theme]) .fds-badge--warning   { color: #F5C547; }
  :root:not([data-theme]) .fds-badge--danger    { color: #FF8082; }
}
.fds-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* =============== INPUTS =============== */
.fds-input {
  display: block;
  width: 100%;
  height: 48px;
  padding: 0 var(--fds-space-4);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-md);
  background: var(--fds-surface-1);
  color: var(--fds-text-primary);
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-body-m);
  transition: border-color var(--fds-duration-fast) var(--fds-ease-out),
              box-shadow var(--fds-duration-fast) var(--fds-ease-out);
}
.fds-input::placeholder { color: var(--fds-text-tertiary); }
.fds-input:hover { border-color: var(--fds-border-strong); }
.fds-input:focus { outline: none; border-color: var(--fds-color-nucleo); box-shadow: 0 0 0 4px rgba(0,102,255,0.18); }
.fds-input--error { border-color: var(--fds-color-danger); }
.fds-input--error:focus { box-shadow: 0 0 0 4px rgba(255,77,79,0.18); }

.fds-label { display: block; font-size: var(--fds-text-body-s); font-weight: var(--fds-weight-semibold); margin-bottom: var(--fds-space-2); }
.fds-help  { font-size: var(--fds-text-caption); color: var(--fds-text-tertiary); margin-top: var(--fds-space-2); }
.fds-help--error { color: var(--fds-color-danger); }

textarea.fds-input { height: auto; min-height: 120px; padding: var(--fds-space-3) var(--fds-space-4); resize: vertical; }

/* =============== ALERTS =============== */
.fds-alert {
  display: flex;
  gap: var(--fds-space-4);
  padding: var(--fds-space-4) var(--fds-space-5);
  border-radius: var(--fds-radius-md);
  border: 1px solid var(--fds-border-subtle);
  background: var(--fds-surface-1);
}
.fds-alert__icon { flex-shrink: 0; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: var(--fds-radius-full); }
.fds-alert__body { flex: 1; }
.fds-alert__title { font-weight: var(--fds-weight-semibold); margin: 0 0 var(--fds-space-1); }
.fds-alert__text  { font-size: var(--fds-text-body-s); color: var(--fds-text-secondary); margin: 0; }
.fds-alert--info     { border-color: rgba(0,102,255,0.32);  background: rgba(0,102,255,0.08); }
.fds-alert--success  { border-color: rgba(32,215,138,0.32); background: rgba(32,215,138,0.08); }
.fds-alert--warning  { border-color: rgba(245,177,0,0.32);  background: rgba(245,177,0,0.08); }
.fds-alert--danger   { border-color: rgba(255,77,79,0.32);  background: rgba(255,77,79,0.08); }

/* =============== AVATAR =============== */
.fds-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--fds-gradient-nucleo-violeta);
  color: #fff;
  font-weight: var(--fds-weight-semibold);
  font-size: var(--fds-text-body-s);
}
.fds-avatar--sm { width: 28px; height: 28px; font-size: var(--fds-text-caption); }
.fds-avatar--lg { width: 56px; height: 56px; font-size: var(--fds-text-body-l); }
.fds-avatar--xl { width: 80px; height: 80px; font-size: var(--fds-text-h3); }

/* =============== NAV LINKS =============== */
.fds-nav-link {
  display: flex;
  align-items: center;
  gap: var(--fds-space-3);
  padding: var(--fds-space-2) var(--fds-space-3);
  border-radius: var(--fds-radius-sm);
  color: var(--fds-text-secondary);
  font-size: var(--fds-text-body-s);
  font-weight: var(--fds-weight-regular);
  transition: background var(--fds-duration-fast) var(--fds-ease-out), color var(--fds-duration-fast) var(--fds-ease-out);
}
.fds-nav-link:hover { background: var(--fds-surface-elevated); color: var(--fds-text-primary); }
.fds-nav-link--active { background: rgba(0,102,255,0.12); color: var(--fds-color-nucleo); font-weight: var(--fds-weight-semibold); }

/* =============== SWATCH (token swatch) =============== */
.fds-swatch {
  display: flex; flex-direction: column;
  border-radius: var(--fds-radius-md);
  overflow: hidden;
  border: 1px solid var(--fds-border-subtle);
  background: var(--fds-surface-1);
}
.fds-swatch__color { height: 96px; }
.fds-swatch__meta  { padding: var(--fds-space-3) var(--fds-space-4); }
.fds-swatch__name  { font-weight: var(--fds-weight-semibold); margin: 0 0 4px; }
.fds-swatch__hex   { font-family: var(--fds-font-mono); font-size: var(--fds-text-caption); color: var(--fds-text-tertiary); }

/* =============== CODE BLOCK =============== */
.fds-code {
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-body-s);
  background: #06091A;
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-md);
  padding: var(--fds-space-4);
  overflow-x: auto;
  color: var(--fds-text-secondary);
  line-height: 1.6;
}
.fds-code .tk-key  { color: #6FA8FF; }
.fds-code .tk-str  { color: var(--fds-color-esmeralda); }
.fds-code .tk-fn   { color: #B79BFA; }
.fds-code .tk-num  { color: #F5C547; }
.fds-code .tk-com  { color: var(--fds-text-tertiary); font-style: italic; }

/* =============== DIVIDER =============== */
.fds-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, var(--fds-border-default), transparent);
  border: none;
  margin: var(--fds-space-8) 0;
}

/* ============================================================
   FORTICS DS — MOLECULES
   Toast, Code Block, Theme Toggle, Color Chip (interactive),
   Form Field, Tooltip, Dropdown
   ============================================================ */

/* =============== TOAST =============== */
.fds-toast-region {
  position: fixed;
  bottom: var(--fds-space-5);
  right: var(--fds-space-5);
  z-index: var(--fds-z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--fds-space-3);
  pointer-events: none;
  max-width: calc(100vw - var(--fds-space-8));
}
.fds-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: var(--fds-space-3);
  min-width: 280px;
  max-width: 420px;
  padding: var(--fds-space-3) var(--fds-space-4);
  background: var(--fds-surface-2);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-md);
  box-shadow: var(--fds-shadow-lg);
  color: var(--fds-text-primary);
  transform: translateX(110%);
  opacity: 0;
  transition: transform var(--fds-duration-slow) var(--fds-ease-out),
              opacity var(--fds-duration-slow) var(--fds-ease-out);
}
.fds-toast.is-visible { transform: translateX(0); opacity: 1; }
.fds-toast.is-leaving { transform: translateX(110%); opacity: 0; }
.fds-toast__icon {
  width: 24px; height: 24px;
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--fds-radius-full);
  font-weight: var(--fds-weight-bold);
}
.fds-toast__body { flex: 1; min-width: 0; }
.fds-toast__title {
  font-weight: var(--fds-weight-semibold);
  font-size: var(--fds-text-body-s);
  margin: 0 0 2px;
}
.fds-toast__msg {
  font-size: var(--fds-text-caption);
  color: var(--fds-text-secondary);
  margin: 0;
  word-wrap: break-word;
}
.fds-toast__close {
  background: transparent; border: 0; padding: 0;
  width: 24px; height: 24px;
  color: var(--fds-text-tertiary);
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--fds-radius-xs);
  transition: background var(--fds-duration-fast);
}
.fds-toast__close:hover { background: var(--fds-surface-elevated); color: var(--fds-text-primary); }

.fds-toast--success { border-color: rgba(32,215,138,0.40); }
.fds-toast--success .fds-toast__icon { background: rgba(32,215,138,0.18); color: var(--fds-color-esmeralda); }
.fds-toast--error   { border-color: rgba(255,77,79,0.40); }
.fds-toast--error   .fds-toast__icon { background: rgba(255,77,79,0.18); color: #FF8082; }
.fds-toast--warning { border-color: rgba(245,177,0,0.40); }
.fds-toast--warning .fds-toast__icon { background: rgba(245,177,0,0.18); color: #F5C547; }
.fds-toast--info    { border-color: rgba(0,102,255,0.40); }
.fds-toast--info    .fds-toast__icon { background: rgba(0,102,255,0.18); color: #6FA8FF; }

/* =============== CODE BLOCK (preview + copy) =============== */
.fds-codeblock {
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
  overflow: hidden;
  background: var(--fds-surface-1);
  margin-bottom: var(--fds-space-6);
}
.fds-codeblock__preview {
  padding: var(--fds-space-7) var(--fds-space-6);
  background:
    repeating-linear-gradient(45deg, rgba(127,127,127,0.04) 0 1px, transparent 1px 16px),
    var(--fds-surface-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--fds-space-3);
  min-height: 120px;
}
.fds-codeblock__preview--stack { flex-direction: column; align-items: stretch; }
.fds-codeblock__tabs {
  display: flex;
  border-top: 1px solid var(--fds-border-subtle);
  background: var(--fds-surface-2);
  padding: 0 var(--fds-space-2);
  gap: var(--fds-space-1);
}
.fds-codeblock__tab {
  background: transparent;
  border: 0;
  padding: var(--fds-space-3) var(--fds-space-4);
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-caption);
  color: var(--fds-text-tertiary);
  border-bottom: 2px solid transparent;
  transition: color var(--fds-duration-fast), border-color var(--fds-duration-fast);
}
.fds-codeblock__tab[aria-selected="true"] {
  color: var(--fds-color-nucleo);
  border-bottom-color: var(--fds-color-nucleo);
}
.fds-codeblock__panel {
  position: relative;
  background: var(--fds-code-bg);
  color: #C8D4F0;
  padding: var(--fds-space-4) var(--fds-space-5);
  overflow-x: auto;
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-body-s);
  line-height: 1.65;
}
.fds-codeblock__panel[hidden] { display: none; }
.fds-codeblock__panel pre { margin: 0; white-space: pre; }
.fds-codeblock__copy {
  position: absolute;
  top: var(--fds-space-3);
  right: var(--fds-space-3);
  display: inline-flex; align-items: center; gap: 6px;
  height: 30px; padding: 0 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--fds-radius-sm);
  color: #C8D4F0;
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-caption);
  font-weight: var(--fds-weight-semibold);
  cursor: pointer;
  transition: background var(--fds-duration-fast);
}
.fds-codeblock__copy:hover { background: rgba(255,255,255,0.12); }
.fds-codeblock__copy.is-copied { background: rgba(32,215,138,0.18); border-color: rgba(32,215,138,0.4); color: var(--fds-color-esmeralda); }

/* tokenização visual leve */
.fds-codeblock__panel .tk-key  { color: #6FA8FF; }
.fds-codeblock__panel .tk-str  { color: var(--fds-color-esmeralda); }
.fds-codeblock__panel .tk-fn   { color: #B79BFA; }
.fds-codeblock__panel .tk-num  { color: #F5C547; }
.fds-codeblock__panel .tk-com  { color: #6E7894; font-style: italic; }

/* =============== THEME TOGGLE =============== */
.fds-theme-toggle {
  display: inline-flex;
  align-items: center;
  background: var(--fds-surface-elevated);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-full);
  padding: 4px;
  gap: 2px;
}
.fds-theme-toggle__btn {
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 0;
  border-radius: var(--fds-radius-full);
  color: var(--fds-text-tertiary);
  transition: background var(--fds-duration-fast), color var(--fds-duration-fast);
}
.fds-theme-toggle__btn[aria-pressed="true"] {
  background: var(--fds-color-nucleo);
  color: #FFFFFF;
}

/* =============== COLOR CHIP INTERACTIVE =============== */
.fds-color-chip {
  position: relative;
  display: flex; flex-direction: column;
  border-radius: var(--fds-radius-md);
  overflow: hidden;
  border: 1px solid var(--fds-border-subtle);
  background: var(--fds-surface-1);
  cursor: pointer;
  text-align: left;
  font-family: var(--fds-font-family);
  color: inherit;
  padding: 0;
  transition: transform var(--fds-duration-fast) var(--fds-ease-out),
              border-color var(--fds-duration-fast) var(--fds-ease-out),
              box-shadow var(--fds-duration-fast) var(--fds-ease-out);
}
.fds-color-chip:hover {
  transform: translateY(-3px);
  border-color: var(--fds-border-strong);
  box-shadow: var(--fds-shadow-md);
}
.fds-color-chip__swatch {
  height: 120px;
  position: relative;
  display: flex; align-items: flex-end; justify-content: flex-end;
  padding: var(--fds-space-3);
}
.fds-color-chip__copy-hint {
  font-size: var(--fds-text-caption);
  font-family: var(--fds-font-mono);
  padding: 4px 8px;
  background: rgba(11,17,33,0.65);
  color: #FFFFFF;
  border-radius: var(--fds-radius-xs);
  opacity: 0;
  transition: opacity var(--fds-duration-fast);
}
.fds-color-chip:hover .fds-color-chip__copy-hint { opacity: 1; }
.fds-color-chip__meta { padding: var(--fds-space-3) var(--fds-space-4); }
.fds-color-chip__name { font-weight: var(--fds-weight-semibold); font-size: var(--fds-text-body-s); margin: 0; }
.fds-color-chip__hex {
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-caption);
  color: var(--fds-text-tertiary);
  margin: 2px 0 0;
}

/* =============== TOOLTIP =============== */
.fds-tooltip { position: relative; display: inline-block; }
.fds-tooltip__bubble {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--fds-color-marinho);
  color: #FFFFFF;
  padding: 6px 10px;
  border-radius: var(--fds-radius-sm);
  font-size: var(--fds-text-caption);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--fds-duration-fast) var(--fds-ease-out),
              transform var(--fds-duration-fast) var(--fds-ease-out);
  box-shadow: var(--fds-shadow-md);
}
.fds-tooltip:hover .fds-tooltip__bubble,
.fds-tooltip:focus-within .fds-tooltip__bubble {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* =============== FORM FIELD (label+input+help) =============== */
.fds-field { display: flex; flex-direction: column; gap: var(--fds-space-2); }
.fds-field__label { font-size: var(--fds-text-body-s); font-weight: var(--fds-weight-semibold); }
.fds-field__hint  { font-size: var(--fds-text-caption); color: var(--fds-text-tertiary); }
.fds-field__error { font-size: var(--fds-text-caption); color: var(--fds-color-danger); display: none; }
.fds-field[data-state="error"] .fds-field__error { display: block; }
.fds-field[data-state="error"] .fds-field__hint  { display: none; }

/* =============== FEATURE CARD (com Lucide) =============== */
.fds-feature-card {
  display: flex; flex-direction: column; gap: var(--fds-space-4);
  padding: var(--fds-space-6);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
  transition: transform var(--fds-duration-base) var(--fds-ease-out),
              border-color var(--fds-duration-base) var(--fds-ease-out),
              box-shadow var(--fds-duration-base) var(--fds-ease-out);
}
.fds-feature-card:hover {
  transform: translateY(-4px);
  border-color: var(--fds-border-strong);
  box-shadow: var(--fds-shadow-md);
}
.fds-feature-card__icon {
  width: 56px; height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(0,102,255,0.12);
  color: var(--fds-color-nucleo);
  border-radius: var(--fds-radius-md);
  flex-shrink: 0;
}
.fds-feature-card__icon svg { width: 28px; height: 28px; }
.fds-feature-card--esmeralda .fds-feature-card__icon { background: rgba(32,215,138,0.12); color: var(--fds-color-esmeralda); }
.fds-feature-card--violeta   .fds-feature-card__icon { background: rgba(139,92,246,0.12); color: var(--fds-color-violeta); }
.fds-feature-card--warning   .fds-feature-card__icon { background: rgba(245,177,0,0.12);  color: #F5C547; }
.fds-feature-card__title { font-size: var(--fds-text-h4); font-weight: var(--fds-weight-semibold); margin: 0; }
.fds-feature-card__desc { color: var(--fds-text-secondary); font-size: var(--fds-text-body-s); margin: 0; line-height: var(--fds-leading-relaxed); }
.fds-feature-card__cta {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--fds-color-nucleo);
  font-weight: var(--fds-weight-semibold);
  font-size: var(--fds-text-body-s);
  transition: gap var(--fds-duration-fast);
}
.fds-feature-card:hover .fds-feature-card__cta { gap: 10px; }

/* =============== STAT CARD =============== */
.fds-stat-card {
  padding: var(--fds-space-5);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
}
.fds-stat-card__label {
  font-size: var(--fds-text-caption);
  color: var(--fds-text-tertiary);
  text-transform: uppercase;
  letter-spacing: var(--fds-tracking-wider);
  margin: 0 0 var(--fds-space-2);
}
.fds-stat-card__value {
  font-size: var(--fds-text-display-m);
  font-weight: var(--fds-weight-extrabold);
  letter-spacing: var(--fds-tracking-tight);
  line-height: 1;
  margin: 0;
}
.fds-stat-card__delta {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: var(--fds-space-3);
  font-size: var(--fds-text-caption);
  font-weight: var(--fds-weight-semibold);
}
.fds-stat-card__delta--up   { color: var(--fds-color-esmeralda); }
.fds-stat-card__delta--down { color: var(--fds-color-danger); }

/* =============== TESTIMONIAL CARD =============== */
.fds-testimonial {
  padding: var(--fds-space-6);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
}
.fds-testimonial__quote {
  font-size: var(--fds-text-body-l);
  line-height: var(--fds-leading-relaxed);
  color: var(--fds-text-primary);
  margin: 0 0 var(--fds-space-5);
}
.fds-testimonial__quote::before { content: '"'; color: var(--fds-color-nucleo); font-size: 1.2em; }
.fds-testimonial__author {
  display: flex; align-items: center; gap: var(--fds-space-3);
}
.fds-testimonial__name { font-weight: var(--fds-weight-semibold); margin: 0; font-size: var(--fds-text-body-s); }
.fds-testimonial__role { color: var(--fds-text-tertiary); font-size: var(--fds-text-caption); margin: 0; }

/* =============== PRICE CARD =============== */
.fds-price-card {
  position: relative;
  padding: var(--fds-space-7) var(--fds-space-6);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
  display: flex; flex-direction: column;
  gap: var(--fds-space-5);
}
.fds-price-card--featured {
  background: var(--fds-gradient-nucleo-violeta);
  color: #fff;
  border-color: transparent;
  box-shadow: var(--fds-shadow-lg);
}
.fds-price-card--featured .fds-price-card__name,
.fds-price-card--featured .fds-price-card__feature,
.fds-price-card--featured .fds-price-card__price-period { color: rgba(255,255,255,0.85); }
.fds-price-card__featured-tag {
  position: absolute; top: -12px; right: var(--fds-space-5);
  padding: 4px 12px;
  background: var(--fds-color-esmeralda); color: var(--fds-color-marinho);
  border-radius: var(--fds-radius-full);
  font-size: var(--fds-text-caption);
  font-weight: var(--fds-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--fds-tracking-wider);
}
.fds-price-card__name { font-size: var(--fds-text-body-l); font-weight: var(--fds-weight-semibold); color: var(--fds-text-tertiary); margin: 0; }
.fds-price-card__price { font-size: var(--fds-text-display-m); font-weight: var(--fds-weight-extrabold); line-height: 1; margin: 0; }
.fds-price-card__price-period { font-size: var(--fds-text-body-s); font-weight: var(--fds-weight-regular); color: var(--fds-text-tertiary); }
.fds-price-card__features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--fds-space-3); }
.fds-price-card__feature { display: flex; align-items: center; gap: var(--fds-space-2); font-size: var(--fds-text-body-s); }
.fds-price-card__feature svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--fds-color-esmeralda); }

/* =============== DROPDOWN =============== */
.fds-dropdown { position: relative; display: inline-block; }
.fds-dropdown__trigger {
  display: inline-flex; align-items: center; gap: var(--fds-space-2);
  padding: var(--fds-space-2) var(--fds-space-4);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-sm);
  color: var(--fds-text-primary);
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-body-s);
  font-weight: var(--fds-weight-semibold);
  cursor: pointer;
}
.fds-dropdown__trigger:hover { border-color: var(--fds-border-strong); }
.fds-dropdown__trigger svg { transition: transform var(--fds-duration-fast); }
.fds-dropdown[data-open="true"] .fds-dropdown__trigger svg { transform: rotate(180deg); }
.fds-dropdown__menu {
  position: absolute;
  top: calc(100% + 8px); left: 0;
  min-width: 220px;
  padding: var(--fds-space-2);
  background: var(--fds-surface-2);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-md);
  box-shadow: var(--fds-shadow-lg);
  z-index: var(--fds-z-dropdown);
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity var(--fds-duration-fast) var(--fds-ease-out),
              transform var(--fds-duration-fast) var(--fds-ease-out);
}
.fds-dropdown[data-open="true"] .fds-dropdown__menu {
  opacity: 1; transform: translateY(0); pointer-events: auto;
}
.fds-dropdown__item {
  display: flex; align-items: center; gap: var(--fds-space-3);
  width: 100%;
  padding: var(--fds-space-2) var(--fds-space-3);
  background: transparent; border: 0;
  text-align: left;
  border-radius: var(--fds-radius-xs);
  color: var(--fds-text-primary);
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-body-s);
  cursor: pointer;
  transition: background var(--fds-duration-fast);
}
.fds-dropdown__item:hover { background: var(--fds-surface-elevated); }
.fds-dropdown__item svg { width: 16px; height: 16px; }
.fds-dropdown__divider { height: 1px; background: var(--fds-border-subtle); margin: var(--fds-space-2) 0; }

/* =============== SEARCH BAR =============== */
.fds-search {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 480px;
}
.fds-search__icon {
  position: absolute;
  left: var(--fds-space-4);
  color: var(--fds-text-tertiary);
  pointer-events: none;
  display: flex;
}
.fds-search__icon svg { width: 16px; height: 16px; }
.fds-search input.fds-input { padding-left: 44px; }
.fds-search__kbd {
  position: absolute;
  right: var(--fds-space-3);
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-caption);
  padding: 2px 6px;
  background: var(--fds-surface-2);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-xs);
  color: var(--fds-text-tertiary);
  pointer-events: none;
}

/* =============== NOTIFICATION (in-line) =============== */
.fds-notification {
  display: flex; align-items: flex-start; gap: var(--fds-space-3);
  padding: var(--fds-space-3) var(--fds-space-4);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-md);
  border-left: 3px solid var(--fds-color-nucleo);
}
.fds-notification__icon {
  width: 36px; height: 36px;
  border-radius: var(--fds-radius-full);
  background: rgba(0,102,255,0.12); color: var(--fds-color-nucleo);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.fds-notification__body { flex: 1; }
.fds-notification__title { font-weight: var(--fds-weight-semibold); font-size: var(--fds-text-body-s); margin: 0 0 2px; }
.fds-notification__text  { font-size: var(--fds-text-caption); color: var(--fds-text-secondary); margin: 0; }
.fds-notification__time  { font-size: var(--fds-text-caption); color: var(--fds-text-tertiary); }

/* ============================================================
   FORTICS DS — ORGANISMS
   Navbar · Hero · Hero 3D · Carousel · Accordion · Pomelo · Tabs · Footer · CTA
   ============================================================ */

/* =============== NAVBAR =============== */
.fds-navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--fds-space-4) var(--fds-space-6);
  background: color-mix(in srgb, var(--fds-surface-0) 80%, transparent);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--fds-border-subtle);
}
.fds-navbar__brand { display: flex; align-items: center; gap: var(--fds-space-3); }
.fds-navbar__brand img { height: 28px; }
.fds-navbar__nav { display: flex; align-items: center; gap: var(--fds-space-2); }
.fds-navbar__link {
  padding: var(--fds-space-2) var(--fds-space-3);
  border-radius: var(--fds-radius-sm);
  font-size: var(--fds-text-body-s);
  font-weight: var(--fds-weight-semibold);
  color: var(--fds-text-secondary);
  transition: background var(--fds-duration-fast), color var(--fds-duration-fast);
}
.fds-navbar__link:hover { background: var(--fds-surface-elevated); color: var(--fds-text-primary); }
.fds-navbar__actions { display: flex; align-items: center; gap: var(--fds-space-3); }

/* =============== HERO PADRÃO =============== */
.fds-hero {
  position: relative;
  padding: var(--fds-space-12) var(--fds-space-8);
  background:
    radial-gradient(800px 500px at 20% 0%,  rgba(0,102,255,0.22), transparent 60%),
    radial-gradient(800px 500px at 90% 100%, rgba(139,92,246,0.20), transparent 60%);
  overflow: hidden;
}
.fds-hero__pattern {
  position: absolute; inset: 0;
  background-image: var(--fds-pattern-bg);
  background-size: 360px;
  opacity: 0.35;
  pointer-events: none;
}
.fds-hero__inner { position: relative; max-width: 960px; }

/* =============== HERO 3D (cursor tracking) =============== */
.fds-hero3d {
  position: relative;
  min-height: 480px;
  perspective: 1200px;
  perspective-origin: 50% 50%;
  overflow: hidden;
  border-radius: var(--fds-radius-2xl);
  background: var(--fds-color-marinho);
  isolation: isolate;
}
.fds-hero3d__bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 60% at 20% 30%, rgba(0,102,255,0.40), transparent 60%),
    radial-gradient(50% 50% at 80% 70%, rgba(139,92,246,0.35), transparent 60%),
    radial-gradient(40% 40% at 60% 20%, rgba(32,215,138,0.25), transparent 60%);
  z-index: 0;
}
.fds-hero3d__layer {
  position: absolute;
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform 60ms linear;
}
.fds-hero3d__content {
  position: relative;
  z-index: 5;
  padding: var(--fds-space-10) var(--fds-space-8);
  color: #fff;
  max-width: 640px;
}
.fds-hero3d__content h1 { margin: 0 0 var(--fds-space-4); }
.fds-hero3d__content p  { color: rgba(255,255,255,0.85); margin: 0 0 var(--fds-space-6); }

/* =============== CAROUSEL =============== */
.fds-carousel {
  position: relative;
  overflow: hidden;
  border-radius: var(--fds-radius-lg);
}
.fds-carousel__viewport { overflow: hidden; }
.fds-carousel__track {
  display: flex;
  transition: transform var(--fds-duration-slower) var(--fds-ease-out);
  will-change: transform;
}
.fds-carousel__slide {
  flex: 0 0 100%;
  min-width: 0;
}
.fds-carousel__prev, .fds-carousel__next {
  position: absolute; top: 50%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-full);
  background: color-mix(in srgb, var(--fds-surface-1) 80%, transparent);
  color: var(--fds-text-primary);
  backdrop-filter: blur(8px);
  cursor: pointer;
  z-index: 2;
  transition: background var(--fds-duration-fast), border-color var(--fds-duration-fast);
}
.fds-carousel__prev { left: var(--fds-space-4); }
.fds-carousel__next { right: var(--fds-space-4); }
.fds-carousel__prev:hover, .fds-carousel__next:hover {
  background: var(--fds-color-nucleo);
  border-color: var(--fds-color-nucleo);
  color: #fff;
}
.fds-carousel__bullets {
  position: absolute; bottom: var(--fds-space-4); left: 50%;
  transform: translateX(-50%);
  display: flex; gap: var(--fds-space-2);
  z-index: 2;
}
.fds-carousel__bullet {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,0.3);
  border: 0;
  cursor: pointer;
  transition: width var(--fds-duration-base) var(--fds-ease-out),
              background var(--fds-duration-fast);
  padding: 0;
}
.fds-carousel__bullet.is-active {
  width: 24px;
  border-radius: 999px;
  background: #fff;
}

/* =============== CAROUSEL VARIANT — CARDS (scroll-snap nativo) ===============
   Mostra múltiplos cards visíveis ao mesmo tempo.
   Usa CSS scroll-snap — JS apenas controla setas.
=============================================================== */
.fds-carousel-cards {
  position: relative;
  --cards-gap: var(--fds-space-5);
  --cards-per-view: 3;
}
.fds-carousel-cards__viewport {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--cards-per-view) - 1) * var(--cards-gap)) / var(--cards-per-view));
  gap: var(--cards-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: var(--fds-space-2) var(--fds-space-1);
  scrollbar-width: none; /* firefox */
}
.fds-carousel-cards__viewport::-webkit-scrollbar { display: none; }

.fds-carousel-cards__card {
  scroll-snap-align: start;
  display: flex; flex-direction: column;
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-lg);
  overflow: hidden;
  transition: transform var(--fds-duration-base) var(--fds-ease-out),
              border-color var(--fds-duration-base);
}
.fds-carousel-cards__card:hover {
  transform: translateY(-4px);
  border-color: var(--fds-color-nucleo);
  box-shadow: var(--fds-shadow-md);
}
.fds-carousel-cards__card-cover {
  position: relative;
  height: 180px;
  overflow: hidden;
  background: var(--fds-gradient-nucleo-violeta);
}
.fds-carousel-cards__card-cover-pattern {
  position: absolute; inset: 0;
  background-image: var(--fds-pattern-marinho);
  background-size: 220px;
  opacity: 0.22;
  pointer-events: none;
}
.fds-carousel-cards__card-cover-spark {
  position: absolute;
  bottom: -20px; right: -20px;
  width: 120px; height: 120px;
  background: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
  opacity: 0.18;
  filter: brightness(0) invert(1);  /* spark branco */
  transition: transform var(--fds-duration-slow) var(--fds-ease-out);
}
.fds-carousel-cards__card:hover .fds-carousel-cards__card-cover-spark {
  transform: scale(1.12) rotate(15deg);
  opacity: 0.28;
}
.fds-carousel-cards__card-cover-tag {
  position: absolute;
  top: var(--fds-space-4); left: var(--fds-space-4);
  z-index: 2;
}
.fds-carousel-cards__card-body { padding: var(--fds-space-5) var(--fds-space-5) var(--fds-space-6); flex: 1; }
.fds-carousel-cards__card-title { font-size: var(--fds-text-h4); font-weight: var(--fds-weight-semibold); margin: 0 0 var(--fds-space-3); }
.fds-carousel-cards__card-desc  { font-size: var(--fds-text-body-s); color: var(--fds-text-secondary); margin: 0 0 var(--fds-space-4); line-height: var(--fds-leading-relaxed); }
.fds-carousel-cards__card-foot {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--fds-space-5) var(--fds-space-5);
  font-size: var(--fds-text-caption);
  color: var(--fds-text-tertiary);
}
.fds-carousel-cards__card-foot a {
  color: var(--fds-color-nucleo);
  font-weight: var(--fds-weight-semibold);
  display: inline-flex; align-items: center; gap: 4px;
}

/* Variantes de cobertura por cor */
.fds-carousel-cards__card-cover--esmeralda { background: linear-gradient(135deg, var(--fds-color-esmeralda), var(--fds-color-marinho)); }
.fds-carousel-cards__card-cover--violeta   { background: linear-gradient(135deg, var(--fds-color-violeta), var(--fds-color-marinho)); }
.fds-carousel-cards__card-cover--nucleo    { background: linear-gradient(135deg, var(--fds-color-nucleo), var(--fds-color-marinho)); }
.fds-carousel-cards__card-cover--tri       { background: linear-gradient(135deg, var(--fds-color-nucleo) 0%, var(--fds-color-violeta) 50%, var(--fds-color-esmeralda) 100%); }

/* Setas de navegação */
.fds-carousel-cards__nav {
  display: flex; gap: var(--fds-space-2);
  margin-top: var(--fds-space-4);
  align-items: center;
}
.fds-carousel-cards__nav-btn {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--fds-border-default);
  border-radius: var(--fds-radius-full);
  background: var(--fds-surface-1);
  color: var(--fds-text-primary);
  cursor: pointer;
  transition: background var(--fds-duration-fast), border-color var(--fds-duration-fast), color var(--fds-duration-fast);
}
.fds-carousel-cards__nav-btn:hover {
  background: var(--fds-color-nucleo);
  border-color: var(--fds-color-nucleo);
  color: #fff;
}
.fds-carousel-cards__nav-spacer { flex: 1; }
.fds-carousel-cards__progress {
  flex: 0 0 auto;
  min-width: 120px;
  height: 4px;
  background: var(--fds-border-subtle);
  border-radius: 2px;
  overflow: hidden;
}
.fds-carousel-cards__progress-bar {
  height: 100%;
  background: linear-gradient(to right, var(--fds-color-nucleo), var(--fds-color-violeta));
  border-radius: 2px;
  width: 33%;
  transition: width var(--fds-duration-base) var(--fds-ease-out);
}

/* Responsivo: menos cards visíveis em telas pequenas */
@media (max-width: 900px) { .fds-carousel-cards { --cards-per-view: 2; } }
@media (max-width: 600px) { .fds-carousel-cards { --cards-per-view: 1.2; } }

/* =============== ACCORDION =============== */
.fds-accordion { display: flex; flex-direction: column; gap: var(--fds-space-2); }
.fds-accordion__item {
  position: relative;
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-md);
  overflow: hidden;
  transition: border-color var(--fds-duration-fast), box-shadow var(--fds-duration-fast);
}
.fds-accordion__item[open] {
  border-color: var(--fds-color-nucleo);
  box-shadow: 0 0 0 3px rgba(0,102,255,0.08);
}
/* Linha vertical de marca à esquerda quando aberto */
.fds-accordion__item[open]::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--fds-color-nucleo), var(--fds-color-violeta));
}
.fds-accordion__head {
  list-style: none;
  cursor: pointer;
  padding: var(--fds-space-4) var(--fds-space-5);
  display: flex; align-items: center; justify-content: space-between; gap: var(--fds-space-4);
  font-weight: var(--fds-weight-semibold);
  font-size: var(--fds-text-body-l);
}
.fds-accordion__head::before {
  content: '';
  width: 18px; height: 18px;
  flex-shrink: 0;
  background-color: var(--fds-text-tertiary);
  -webkit-mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
  transition: background-color var(--fds-duration-fast), transform var(--fds-duration-base);
}
.fds-accordion__item[open] .fds-accordion__head::before {
  background-color: var(--fds-color-nucleo);
  transform: rotate(45deg);
}
.fds-accordion__head::-webkit-details-marker { display: none; }
.fds-accordion__head::after {
  content: '';
  width: 20px; height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center / contain;
  transition: transform var(--fds-duration-base) var(--fds-ease-out);
  flex-shrink: 0;
}
.fds-accordion__item[open] .fds-accordion__head::after { transform: rotate(-180deg); }
.fds-accordion__body {
  padding: 0 var(--fds-space-5) var(--fds-space-5);
  color: var(--fds-text-secondary);
  font-size: var(--fds-text-body-s);
  line-height: var(--fds-leading-relaxed);
}

/* =============== POMELO INTERACTIVE =============== */
.fds-pomelo {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) 2fr;
  gap: var(--fds-space-6);
  background: var(--fds-surface-1);
  border: 1px solid var(--fds-border-subtle);
  border-radius: var(--fds-radius-2xl);
  padding: var(--fds-space-6);
  min-height: 480px;
}
.fds-pomelo__list { display: flex; flex-direction: column; gap: var(--fds-space-2); }
.fds-pomelo__item {
  position: relative;
  display: flex; align-items: center; gap: var(--fds-space-4);
  padding: var(--fds-space-4) var(--fds-space-5);
  background: transparent;
  border: 0;
  border-radius: var(--fds-radius-lg);
  text-align: left;
  cursor: pointer;
  font-family: var(--fds-font-family);
  color: var(--fds-text-secondary);
  transition: background var(--fds-duration-base) var(--fds-ease-out),
              color var(--fds-duration-base) var(--fds-ease-out);
}
.fds-pomelo__item:hover { background: var(--fds-surface-elevated); color: var(--fds-text-primary); }
.fds-pomelo__item.is-active {
  background: var(--fds-color-nucleo);
  color: #fff;
  box-shadow: var(--fds-shadow-glow-nucleo);
}
.fds-pomelo__num {
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-caption);
  font-weight: var(--fds-weight-bold);
  opacity: 0.6;
  letter-spacing: var(--fds-tracking-wider);
  flex-shrink: 0;
}
.fds-pomelo__lbl {
  font-size: var(--fds-text-h4);
  font-weight: var(--fds-weight-semibold);
  flex: 1;
}
.fds-pomelo__item.is-active .fds-pomelo__num { opacity: 0.9; color: #fff; }
.fds-pomelo__arrow {
  width: 20px; height: 20px;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity var(--fds-duration-base), transform var(--fds-duration-base);
}
.fds-pomelo__item.is-active .fds-pomelo__arrow { opacity: 1; transform: translateX(0); }

.fds-pomelo__stage {
  position: relative;
  background: var(--fds-surface-2);
  border-radius: var(--fds-radius-xl);
  overflow: hidden;
  min-height: 480px;
}
.fds-pomelo__panel {
  position: absolute; inset: 0;
  padding: var(--fds-space-7);
  display: flex; flex-direction: column; justify-content: flex-end;
  opacity: 0;
  transform: scale(0.98);
  pointer-events: none;
  transition: opacity var(--fds-duration-slow) var(--fds-ease-out),
              transform var(--fds-duration-slow) var(--fds-ease-out);
  background-size: cover; background-position: center;
}
.fds-pomelo__panel.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
.fds-pomelo__panel-eyebrow {
  display: inline-block;
  font-size: var(--fds-text-overline);
  letter-spacing: var(--fds-tracking-wider);
  text-transform: uppercase;
  color: var(--fds-color-esmeralda);
  margin-bottom: var(--fds-space-3);
}
.fds-pomelo__panel h3 { color: #fff; margin: 0 0 var(--fds-space-3); font-size: var(--fds-text-h2); }
.fds-pomelo__panel p  { color: rgba(255,255,255,0.85); max-width: 480px; }
.fds-pomelo__panel-illustration {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 280px;
  color: rgba(255,255,255,0.08);
  pointer-events: none;
}

@media (max-width: 768px) {
  .fds-pomelo { grid-template-columns: 1fr; }
  .fds-pomelo__stage { min-height: 320px; }
}

/* =============== TABS =============== */
.fds-tabs { display: flex; flex-direction: column; gap: var(--fds-space-5); }
.fds-tabs__list {
  display: flex;
  gap: var(--fds-space-1);
  border-bottom: 1px solid var(--fds-border-subtle);
}
.fds-tabs__tab {
  position: relative;
  background: transparent;
  border: 0;
  padding: var(--fds-space-3) var(--fds-space-5);
  font-family: var(--fds-font-family);
  font-size: var(--fds-text-body-s);
  font-weight: var(--fds-weight-semibold);
  color: var(--fds-text-tertiary);
  cursor: pointer;
  transition: color var(--fds-duration-fast);
}
.fds-tabs__tab[aria-selected="true"] {
  color: var(--fds-text-primary);
}
.fds-tabs__tab[aria-selected="true"]::after {
  content: '';
  position: absolute;
  bottom: -1px; left: var(--fds-space-5); right: var(--fds-space-5);
  height: 3px;
  background: linear-gradient(to right, var(--fds-color-nucleo), var(--fds-color-violeta));
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,102,255,0.4);
}
.fds-tabs__tab:hover { color: var(--fds-text-primary); }
.fds-tabs__panels { position: relative; }
.fds-tabs__panel[hidden] { display: none; }

/* =============== FOOTER =============== */
.fds-footer {
  padding: var(--fds-space-9) var(--fds-space-7) var(--fds-space-7);
  background: var(--fds-surface-1);
  border-top: 1px solid var(--fds-border-subtle);
}
.fds-footer__inner {
  display: grid;
  grid-template-columns: 2fr repeat(3, 1fr);
  gap: var(--fds-space-8);
  max-width: 1280px;
  margin: 0 auto;
}
.fds-footer__brand img { height: 28px; margin-bottom: var(--fds-space-4); }
.fds-footer__brand p { color: var(--fds-text-tertiary); font-size: var(--fds-text-body-s); max-width: 320px; }
.fds-footer__col h6 {
  font-size: var(--fds-text-caption);
  letter-spacing: var(--fds-tracking-wider);
  text-transform: uppercase;
  color: var(--fds-text-tertiary);
  margin: 0 0 var(--fds-space-4);
}
.fds-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--fds-space-3); }
.fds-footer__col a { color: var(--fds-text-secondary); font-size: var(--fds-text-body-s); transition: color var(--fds-duration-fast); }
.fds-footer__col a:hover { color: var(--fds-text-primary); }
.fds-footer__bottom {
  max-width: 1280px;
  margin: var(--fds-space-7) auto 0;
  padding-top: var(--fds-space-5);
  border-top: 1px solid var(--fds-border-subtle);
  display: flex; justify-content: space-between; align-items: center;
  font-size: var(--fds-text-caption);
  color: var(--fds-text-tertiary);
  flex-wrap: wrap;
  gap: var(--fds-space-4);
}

/* =============== CTA SECTION =============== */
.fds-cta {
  background: var(--fds-gradient-nucleo-violeta);
  border-radius: var(--fds-radius-2xl);
  padding: var(--fds-space-9);
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.fds-cta::before {
  content: '';
  position: absolute; inset: 0;
  background-image: var(--fds-pattern-marinho);
  background-size: 320px;
  opacity: 0.2;
  pointer-events: none;
}
.fds-cta__inner { position: relative; max-width: 720px; margin: 0 auto; }
.fds-cta h2 { color: #fff; margin: 0 0 var(--fds-space-4); }
.fds-cta p  { color: rgba(255,255,255,0.9); font-size: var(--fds-text-body-l); margin: 0 0 var(--fds-space-6); }

/* =============== HERO BANNER 3D (Glass) =============== */
.fds-hero-banner-3d {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 560px;
  border-radius: var(--fds-radius-2xl);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 30% 20%, rgba(0,102,255,0.18), transparent 50%),
    radial-gradient(circle at 70% 80%, rgba(139,92,246,0.22), transparent 55%),
    radial-gradient(circle at 50% 50%, rgba(32,215,138,0.10), transparent 60%),
    var(--fds-color-marinho);
}

/* Palco interno gerado por JS */
.fds-hero3d-stage {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.fds-hero3d-stage__canvas-wrap {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fds-hero3d-stage__canvas-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}
/* Glow tri-color por trás do Spark — pulsa com a entrada */
.fds-hero3d-stage__glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,102,255,0.45), transparent 35%),
    radial-gradient(circle at 65% 40%, rgba(139,92,246,0.30), transparent 40%),
    radial-gradient(circle at 35% 65%, rgba(32,215,138,0.22), transparent 45%);
  mix-blend-mode: screen;
  opacity: 0;
  filter: blur(40px);
  pointer-events: none;
}

/* Conteúdo sobreposto ao 3D */
.fds-hero-banner-3d__content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding: var(--fds-space-8);
  text-align: center;
  color: #fff;
  pointer-events: none; /* deixa o mouse atingir o canvas atrás */
}
.fds-hero-banner-3d__content > * { pointer-events: auto; }
.fds-hero-banner-3d__content h1,
.fds-hero-banner-3d__content h2 { color: #fff; margin: 0 0 var(--fds-space-4); }
.fds-hero-banner-3d__content p  { color: rgba(255,255,255,0.85); margin: 0 0 var(--fds-space-5); }

/* Estados de entrada para o conteúdo (FOUC-safe) */
.fds-hero-banner-3d__content [data-entry] { opacity: 0; transform: translateY(12px); }
.fds-hero-banner-3d.is-entry-done .fds-hero-banner-3d__content [data-entry] {
  opacity: 1; transform: translateY(0);
  transition: opacity .8s var(--fds-ease-out), transform .8s var(--fds-ease-out);
  transition-delay: calc(var(--entry-i, 0) * 0.12s);
}

/* Variação de pano: mais escura ou mais clara */
.fds-hero-banner-3d--light {
  background:
    radial-gradient(circle at 30% 20%, rgba(0,102,255,0.10), transparent 50%),
    radial-gradient(circle at 70% 80%, rgba(139,92,246,0.10), transparent 55%),
    #F7F8FA;
}
.fds-hero-banner-3d--light .fds-hero-banner-3d__content h1,
.fds-hero-banner-3d--light .fds-hero-banner-3d__content h2 { color: var(--fds-color-marinho); }
.fds-hero-banner-3d--light .fds-hero-banner-3d__content p  { color: var(--fds-color-marinho-70); }

.fds-hero-banner-3d--compact { min-height: 380px; }
.fds-hero-banner-3d--tall    { min-height: 720px; }

/* ----- LAYOUTS ----- */

/* Centered (default) — texto no centro, Spark atrás */
.fds-hero-banner-3d[data-layout="centered"] .fds-hero-banner-3d__content {
  text-align: center;
}

/* Split right — texto à esquerda, Spark à direita */
.fds-hero-banner-3d[data-layout="split-right"] {
  justify-content: flex-start;
}
.fds-hero-banner-3d[data-layout="split-right"] .fds-hero-banner-3d__content {
  text-align: left;
  max-width: 480px;
  padding-left: var(--fds-space-9);
  padding-right: var(--fds-space-9);
  margin-right: auto;
  margin-left: 0;
}

/* Split left — texto à direita, Spark à esquerda */
.fds-hero-banner-3d[data-layout="split-left"] {
  justify-content: flex-end;
}
.fds-hero-banner-3d[data-layout="split-left"] .fds-hero-banner-3d__content {
  text-align: left;
  max-width: 480px;
  padding-left: var(--fds-space-9);
  padding-right: var(--fds-space-9);
  margin-left: auto;
  margin-right: 0;
}

/* Above — Spark grande em cima, texto embaixo */
.fds-hero-banner-3d[data-layout="above"] {
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 0;
}
.fds-hero-banner-3d[data-layout="above"] .fds-hero-banner-3d__content {
  text-align: center;
  padding-top: 0;
  padding-bottom: var(--fds-space-9);
}

/* Background — Spark gigante de fundo, texto preto sobre vidro */
.fds-hero-banner-3d[data-layout="background"] .fds-hero-banner-3d__content {
  text-align: center;
  background: rgba(0,0,0,0.18);
  backdrop-filter: blur(2px);
  border-radius: var(--fds-radius-xl);
  padding: var(--fds-space-7) var(--fds-space-8);
}

/* Dock — Spark pequeno fixo no canto inferior direito + texto à esquerda */
.fds-hero-banner-3d[data-layout="dock"] {
  justify-content: flex-start;
  align-items: stretch;
}
.fds-hero-banner-3d[data-layout="dock"] .fds-hero-banner-3d__content {
  text-align: left;
  max-width: 560px;
  padding: var(--fds-space-9);
  align-self: center;
}

/* =============== LOGO STRIP =============== */
.fds-logo-strip {
  display: flex; align-items: center; justify-content: center;
  gap: var(--fds-space-5);
  padding: var(--fds-space-6) 0;
  flex-wrap: wrap;
}
.fds-logo-strip span {
  font-family: var(--fds-font-family);
  font-weight: var(--fds-weight-bold);
  font-size: var(--fds-text-body-l);
  color: var(--fds-text-tertiary);
  opacity: 0.65;
  transition: opacity var(--fds-duration-fast);
}
.fds-logo-strip span:hover { opacity: 1; color: var(--fds-color-nucleo); }
.fds-logo-strip__sep {
  width: 14px; height: 14px;
  background-color: var(--fds-color-nucleo);
  -webkit-mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
  opacity: 0.5;
  animation: logo-strip-spin 8s linear infinite;
}
@keyframes logo-strip-spin { to { transform: rotate(360deg); } }

/* ============================================================
   BRAND EXPRESSION — utilitários para reforçar a marca em qualquer organismo
   ============================================================ */

/* Spark inline reutilizável (use junto com a CSS custom prop --spark-color) */
.fds-spark-mark {
  display: inline-block;
  width: 1em; height: 1em;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
}

/* Superfície com pattern Fortics + fade gradient para legibilidade */
.fds-branded-surface {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 0%, rgba(0,102,255,0.10), transparent 50%),
    radial-gradient(circle at 80% 100%, rgba(139,92,246,0.10), transparent 50%),
    var(--fds-surface-1);
}
.fds-branded-surface--dark {
  background:
    radial-gradient(circle at 20% 0%, rgba(0,102,255,0.35), transparent 50%),
    radial-gradient(circle at 80% 100%, rgba(139,92,246,0.30), transparent 50%),
    radial-gradient(circle at 50% 50%, rgba(32,215,138,0.10), transparent 60%),
    var(--fds-color-marinho);
  color: #FFFFFF;
}
.fds-branded-surface--dark h1, .fds-branded-surface--dark h2, .fds-branded-surface--dark h3,
.fds-branded-surface--dark h4, .fds-branded-surface--dark h5 { color: #FFFFFF; }
.fds-branded-surface--dark p { color: rgba(255,255,255,0.85); }

/* Pattern de Spark grid como fundo (camada sob conteúdo) */
.fds-pattern-bg {
  position: absolute;
  inset: 0;
  background-image: var(--fds-pattern-bg, var(--fds-pattern-nucleo));
  background-size: 320px;
  opacity: 0.10;
  pointer-events: none;
  z-index: 0;
}
.fds-branded-surface--dark .fds-pattern-bg { opacity: 0.18; }
.fds-pattern-bg--marinho { background-image: var(--fds-pattern-marinho); }
.fds-pattern-bg--nucleo  { background-image: var(--fds-pattern-nucleo); }
.fds-pattern-bg--violeta { background-image: var(--fds-pattern-violeta); }
.fds-pattern-bg--esmeralda { background-image: var(--fds-pattern-esmeralda); }

/* Spark no canto de cards/seções */
.fds-spark-corner {
  position: absolute;
  width: 80px; height: 80px;
  background: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
  opacity: 0.08;
  pointer-events: none;
  z-index: 0;
}
.fds-spark-corner--tl { top: var(--fds-space-5); left: var(--fds-space-5); }
.fds-spark-corner--tr { top: var(--fds-space-5); right: var(--fds-space-5); transform: rotate(45deg); }
.fds-spark-corner--bl { bottom: var(--fds-space-5); left: var(--fds-space-5); transform: rotate(-45deg); }
.fds-spark-corner--br { bottom: var(--fds-space-5); right: var(--fds-space-5); transform: rotate(180deg); }
.fds-spark-corner--lg { width: 200px; height: 200px; opacity: 0.06; }
.fds-spark-corner--xl { width: 360px; height: 360px; opacity: 0.05; }

/* Shapes flutuantes — 10 PNGs decorativos */
.fds-floating-shape {
  position: absolute;
  pointer-events: none;
  opacity: 0.45;
  animation: shape-float 12s ease-in-out infinite;
}
.fds-floating-shape--slow  { animation-duration: 18s; }
.fds-floating-shape--fast  { animation-duration: 8s;  }
@keyframes shape-float {
  0%, 100% { transform: translate(0, 0)    rotate(0deg); }
  33%      { transform: translate(8px, -16px)  rotate(8deg); }
  66%      { transform: translate(-12px, 6px)  rotate(-6deg); }
}

/* Divider com Spark central */
.fds-spark-divider {
  display: flex; align-items: center; gap: var(--fds-space-4);
  color: var(--fds-text-tertiary);
  margin: var(--fds-space-7) 0;
}
.fds-spark-divider::before, .fds-spark-divider::after {
  content: ''; flex: 1; height: 1px;
  background: linear-gradient(to right, transparent, var(--fds-border-default), transparent);
}
.fds-spark-divider__icon {
  width: 24px; height: 24px;
  background-color: var(--fds-color-nucleo);
  -webkit-mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
  flex-shrink: 0;
}

/* Eyebrow com prefixo Spark */
.fds-brand-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--fds-font-mono);
  font-size: var(--fds-text-overline);
  font-weight: var(--fds-weight-semibold);
  letter-spacing: var(--fds-tracking-wider);
  text-transform: uppercase;
  color: var(--fds-color-nucleo);
  margin-bottom: var(--fds-space-3);
}
.fds-brand-eyebrow::before {
  content: '';
  width: 14px; height: 14px;
  background-color: currentColor;
  -webkit-mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
          mask: url('/wp-content/uploads/2026/07/spark-principal.svg') no-repeat center / contain;
}

/* Gradient text mais expressivo (tri-color) */
.fds-gradient-text--tri {
  background: linear-gradient(135deg, var(--fds-color-nucleo) 0%, var(--fds-color-violeta) 50%, var(--fds-color-esmeralda) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

/* Glow shadow para CTA */
.fds-glow-nucleo  { box-shadow: 0 8px 32px rgba(0,102,255,0.40); }
.fds-glow-violeta { box-shadow: 0 8px 32px rgba(139,92,246,0.40); }

/* Sparkline animado (linha pulsante) */
.fds-sparkline {
  height: 3px;
  background: linear-gradient(to right, transparent, var(--fds-color-nucleo), var(--fds-color-violeta), transparent);
  background-size: 200% 100%;
  border-radius: 2px;
  animation: sparkline-pulse 3s ease-in-out infinite;
}
@keyframes sparkline-pulse {
  0%, 100% { background-position: -100% 0; opacity: 0.6; }
  50%      { background-position: 100% 0;  opacity: 1; }
}

/* ============================================================
   FORTICS DS — SPARK SVG ANIMATIONS (theme-agnostic)
   Cada animação usa --spark-primary e --spark-secondary, então pode
   funcionar em qualquer fundo via:

     <span class="spark-anim spark-pulse">      ← cores default da marca
     <span class="spark-anim spark-pulse on-dark">  ← contraste para fundo escuro
     <span class="spark-anim spark-pulse on-light"> ← contraste para fundo claro
     <span class="spark-anim spark-pulse on-color"> ← contraste para fundo de marca

   Você também pode setar inline:
     style="--spark-primary:#fff; --spark-secondary:#0066FF"
   ============================================================ */

/* Default — núcleo + marinho (funciona bem em fundo claro neutro) */
.spark-anim {
  --spark-primary:   var(--fds-color-nucleo);
  --spark-secondary: var(--fds-color-marinho);
  --spark-glow:      rgba(0, 102, 255, 0.85);
  display: inline-block;
  line-height: 0;
}
.spark-anim svg { width: 100%; height: 100%; overflow: visible; }

/* Modificadores de fundo — garantem contraste sem importar o tema */
.spark-anim.on-dark {     /* fundo escuro: núcleo + branco */
  --spark-primary:   var(--fds-color-nucleo);
  --spark-secondary: #FFFFFF;
}
.spark-anim.on-light {    /* fundo claro: núcleo + marinho (default) */
  --spark-primary:   var(--fds-color-nucleo);
  --spark-secondary: var(--fds-color-marinho);
}
.spark-anim.on-color {    /* fundo cor de marca: tudo branco */
  --spark-primary:   #FFFFFF;
  --spark-secondary: #FFFFFF;
  --spark-glow:      rgba(255, 255, 255, 0.7);
}
.spark-anim.on-photo {    /* sobre foto: branco com sombra para legibilidade */
  --spark-primary:   #FFFFFF;
  --spark-secondary: #FFFFFF;
  --spark-glow:      rgba(0, 0, 0, 0.4);
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.35));
}

/* Auto-adapt: quando o tema dark é ativo, espelhamos secondary para branco */
:root[data-theme="dark"] .spark-anim:not(.on-light):not(.on-color):not(.on-photo) {
  --spark-secondary: #FFFFFF;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .spark-anim:not(.on-light):not(.on-color):not(.on-photo) {
    --spark-secondary: #FFFFFF;
  }
}

/* ============================================================
   1) DRAW — desenha contorno e preenche
   ============================================================ */
.spark-draw svg path {
  fill: transparent;
  stroke: var(--spark-primary);
  stroke-width: 3;
  stroke-linejoin: round;
  stroke-dasharray: 1600;
  stroke-dashoffset: 1600;
  animation: spark-draw-primary 3.6s var(--fds-ease-out) infinite alternate;
}
.spark-draw svg path:nth-child(2) { animation-delay: 0.15s; }
.spark-draw svg path:nth-child(3),
.spark-draw svg path:nth-child(4),
.spark-draw svg path:nth-child(5),
.spark-draw svg path:nth-child(6) {
  stroke: var(--spark-secondary);
  animation-name: spark-draw-secondary;
}
.spark-draw svg path:nth-child(3) { animation-delay: 0.3s; }
.spark-draw svg path:nth-child(4) { animation-delay: 0.4s; }
.spark-draw svg path:nth-child(5) { animation-delay: 0.5s; }
.spark-draw svg path:nth-child(6) { animation-delay: 0.6s; }

@keyframes spark-draw-primary {
  0%   { stroke-dashoffset: 1600; fill: transparent; }
  60%  { stroke-dashoffset: 0;    fill: transparent; }
  100% { stroke-dashoffset: 0;    fill: var(--spark-primary); }
}
@keyframes spark-draw-secondary {
  0%   { stroke-dashoffset: 1600; fill: transparent; }
  60%  { stroke-dashoffset: 0;    fill: transparent; }
  100% { stroke-dashoffset: 0;    fill: var(--spark-secondary); }
}

/* ============================================================
   2) PULSE — pulsa com glow
   ============================================================ */
.spark-pulse svg path {
  fill: var(--spark-primary);
  animation: spark-pulse 2s ease-in-out infinite;
  transform-origin: 50% 50%;
}
.spark-pulse svg path:nth-child(n+3) { fill: var(--spark-secondary); }

@keyframes spark-pulse {
  0%, 100% { filter: drop-shadow(0 0 0 transparent); transform: scale(1); }
  50%      { filter: drop-shadow(0 0 30px var(--spark-glow)); transform: scale(1.06); }
}

.spark-pulse--violeta {
  --spark-primary:   var(--fds-color-violeta);
  --spark-glow:      rgba(139, 92, 246, 0.85);
}
.spark-pulse--esmeralda {
  --spark-primary:   var(--fds-color-esmeralda);
  --spark-glow:      rgba(32, 215, 138, 0.85);
}

/* ============================================================
   3) ORBIT — anéis girando ao redor
   ============================================================ */
.spark-orbit {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  width: 240px; height: 240px;
  --spark-primary:   var(--fds-color-nucleo);
  --spark-secondary: var(--fds-color-marinho);
}
.spark-orbit.on-dark   { --spark-secondary: #FFFFFF; }
.spark-orbit.on-color  { --spark-primary: #FFFFFF; --spark-secondary: #FFFFFF; }
:root[data-theme="dark"] .spark-orbit:not(.on-light):not(.on-color) { --spark-secondary: #FFFFFF; }

.spark-orbit__ring,
.spark-orbit__ring-2,
.spark-orbit__ring-3 {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.spark-orbit__ring {
  inset: 0;
  border: 2px dashed var(--spark-primary);
  opacity: 0.6;
  animation: spark-orbit-spin 10s linear infinite;
}
.spark-orbit__ring-2 {
  inset: 14%;
  border: 1px dashed var(--fds-color-violeta);
  opacity: 0.45;
  animation: spark-orbit-spin-rev 8s linear infinite;
}
.spark-orbit__ring-3 {
  inset: 28%;
  border: 1px solid rgba(32,215,138,0.32);
  opacity: 0.6;
  animation: spark-orbit-spin 12s linear infinite;
}
.spark-orbit__ring::after,
.spark-orbit__ring-2::after {
  content: '';
  position: absolute;
  top: -5px; left: 50%;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--spark-primary);
  transform: translateX(-50%);
  box-shadow: 0 0 12px var(--spark-primary);
}
.spark-orbit__ring-2::after {
  background: var(--fds-color-violeta);
  box-shadow: 0 0 12px var(--fds-color-violeta);
  width: 6px; height: 6px;
}
.spark-orbit__logo {
  position: relative;
  width: 38%; height: 38%;
  z-index: 2;
}
.spark-orbit__logo svg path { fill: var(--spark-primary); }
.spark-orbit__logo svg path:nth-child(n+3) { fill: var(--spark-secondary); }

@keyframes spark-orbit-spin     { to { transform: rotate(360deg); } }
@keyframes spark-orbit-spin-rev { to { transform: rotate(-360deg); } }

/* ============================================================
   4) ROTATE — gira o spark inteiro
   ============================================================ */
.spark-rotate svg {
  animation: spark-rotate-anim 8s linear infinite;
  transform-origin: 50% 50%;
}
.spark-rotate svg path { fill: var(--spark-primary); }
.spark-rotate svg path:nth-child(n+3) { fill: var(--spark-secondary); }
@keyframes spark-rotate-anim { to { transform: rotate(360deg); } }

.spark-rotate--glow svg {
  animation-duration: 6s;
  filter: drop-shadow(0 0 20px var(--spark-glow));
}

/* ============================================================
   5) MORPH — cicla entre as 4 cores de marca
   ============================================================ */
.spark-morph svg path { animation: spark-morph-anim 8s ease-in-out infinite; }
.spark-morph svg path:nth-child(n+3) { fill: var(--spark-secondary); animation: none; }
@keyframes spark-morph-anim {
  0%, 100% { fill: var(--fds-color-nucleo); }
  25%      { fill: var(--fds-color-violeta); }
  50%      { fill: var(--fds-color-esmeralda); }
  75%      { fill: #F5B100; }
}

/* ============================================================
   6) FLOAT — flutuação suave
   ============================================================ */
.spark-float svg {
  animation: spark-float-anim 3.2s ease-in-out infinite;
  transform-origin: 50% 50%;
}
.spark-float svg path { fill: var(--spark-primary); }
.spark-float svg path:nth-child(n+3) { fill: var(--spark-secondary); }
@keyframes spark-float-anim {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-10px) rotate(4deg); }
}

/* ============================================================
   7) BURST — explode do centro com ondas concêntricas
   ============================================================ */
.spark-burst {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  --spark-primary:   var(--fds-color-nucleo);
  --spark-secondary: var(--fds-color-marinho);
  --spark-glow:      rgba(0, 102, 255, 0.9);
}
.spark-burst.on-dark   { --spark-secondary: #FFFFFF; }
.spark-burst.on-color  { --spark-primary: #FFFFFF; --spark-secondary: #FFFFFF; --spark-glow: rgba(255,255,255,0.7); }
:root[data-theme="dark"] .spark-burst:not(.on-light):not(.on-color) { --spark-secondary: #FFFFFF; }

.spark-burst svg {
  animation: spark-burst-anim 2.6s ease-out infinite;
  transform-origin: 50% 50%;
}
.spark-burst svg path { fill: var(--spark-primary); }
.spark-burst svg path:nth-child(n+3) { fill: var(--spark-secondary); }
@keyframes spark-burst-anim {
  0%   { transform: scale(0) rotate(-180deg); opacity: 0; filter: drop-shadow(0 0 0 transparent); }
  40%  { transform: scale(1.2) rotate(0deg);  opacity: 1; filter: drop-shadow(0 0 40px var(--spark-glow)); }
  70%  { transform: scale(1) rotate(20deg);   filter: drop-shadow(0 0 16px var(--spark-glow)); }
  100% { transform: scale(1) rotate(0deg);    opacity: 1; filter: drop-shadow(0 0 0 transparent); }
}
.spark-burst::before,
.spark-burst::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid var(--spark-primary);
  pointer-events: none;
  animation: spark-burst-wave 2.6s ease-out infinite;
}
.spark-burst::after { animation-delay: 0.5s; }
@keyframes spark-burst-wave {
  0%   { transform: scale(0.6); opacity: 0.7; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* ============================================================
   8) CONSTELLATION — vários sparks aparecendo em sequência
   ============================================================ */
.spark-constellation {
  position: relative;
  display: block;
  width: 100%;
  height: 240px;
}
.spark-constellation .spark-anim {
  position: absolute;
  opacity: 0;
  animation: spark-constellation-pop 5s ease-in-out infinite;
}
.spark-constellation .spark-anim svg path { fill: var(--spark-primary); }
.spark-constellation .spark-anim svg path:nth-child(n+3) { fill: var(--spark-secondary); }
.spark-constellation .spark-anim:nth-child(1) { top: 20%; left: 10%; width: 32px; height: 32px; animation-delay: 0s; }
.spark-constellation .spark-anim:nth-child(2) { top: 60%; left: 25%; width: 24px; height: 24px; animation-delay: 0.5s; }
.spark-constellation .spark-anim:nth-child(3) { top: 30%; left: 45%; width: 56px; height: 56px; animation-delay: 1s; }
.spark-constellation .spark-anim:nth-child(4) { top: 70%; left: 60%; width: 28px; height: 28px; animation-delay: 1.5s; }
.spark-constellation .spark-anim:nth-child(5) { top: 15%; left: 78%; width: 40px; height: 40px; animation-delay: 2s; }
.spark-constellation .spark-anim:nth-child(6) { top: 55%; left: 88%; width: 22px; height: 22px; animation-delay: 2.5s; }

@keyframes spark-constellation-pop {
  0%, 80%, 100% { opacity: 0; transform: scale(0.4) rotate(-90deg); }
  20%, 60%      { opacity: 1; transform: scale(1) rotate(0deg); }
}

/* ============================================================
   9) NEON — efeito de néon piscando
   ============================================================ */
.spark-neon svg path {
  fill: var(--spark-primary);
  animation: spark-neon-anim 2.5s ease-in-out infinite;
}
.spark-neon svg path:nth-child(n+3) { fill: var(--spark-secondary); animation: none; }
@keyframes spark-neon-anim {
  0%, 18%, 22%, 25%, 53%, 57%, 100% {
    filter:
      drop-shadow(0 0 4px var(--spark-glow))
      drop-shadow(0 0 11px var(--spark-glow))
      drop-shadow(0 0 19px var(--spark-glow))
      drop-shadow(0 0 40px var(--fds-color-violeta))
      drop-shadow(0 0 80px var(--fds-color-violeta));
  }
  20%, 24%, 55% { filter: none; opacity: 0.6; }
}

/* ============================================================
   10) HOVER REVEAL — só anima no hover
   ============================================================ */
.spark-hover { cursor: pointer; }
.spark-hover svg { transition: transform .4s var(--fds-ease-spring); }
.spark-hover svg path { fill: var(--spark-primary); transition: fill .3s; }
.spark-hover svg path:nth-child(n+3) { fill: var(--spark-secondary); }
.spark-hover:hover svg {
  transform: rotate(45deg) scale(1.1);
  filter: drop-shadow(0 0 24px var(--spark-glow));
}
.spark-hover:hover svg path { fill: var(--fds-color-violeta); }

/* ============================================================
   11) TRAIL — Spark atravessa horizontalmente
   ============================================================ */
.spark-trail {
  position: relative;
  display: block;
  width: 100%;
  height: 80px;
  overflow: hidden;
}
.spark-trail .spark-anim {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px;
  animation: spark-trail-move 5s linear infinite;
}
.spark-trail .spark-anim svg path { fill: var(--spark-primary); }
.spark-trail .spark-anim svg path:nth-child(n+3) { fill: var(--spark-secondary); }
.spark-trail::before {
  content: '';
  position: absolute;
  top: 50%; left: 0;
  height: 2px; width: 100%;
  transform: translateY(-50%);
  background: linear-gradient(to right, transparent, var(--spark-primary), transparent);
  background-size: 200px 100%;
  background-repeat: no-repeat;
  animation: spark-trail-line 5s linear infinite;
}
@keyframes spark-trail-move {
  0%   { left: -8%; }
  100% { left: 108%; }
}
@keyframes spark-trail-line {
  0%   { background-position: -200px 0; }
  100% { background-position: calc(100% + 200px) 0; }
}

/* ============================================================
   Backwards-compat — manter classes legadas
   ============================================================ */
.spark-draw--white { /* shortcut para .spark-draw.on-color */
  --spark-primary:   #FFFFFF;
  --spark-secondary: #FFFFFF;
}


/* >>> BLOG-FORTICS INICIO (gerado) <<< */
/* ============================================================
   BLOG — componentes do DS + layout das páginas de conteúdo
   Wireframe: Figma FN7Nd2UzQVmjW5OsQ781Z8
     257:2866 arquivo · 257:3262 single · 257:3559 autor
   Tudo em token --fds-*: herda light/dark sem regra extra.
   ============================================================ */

/* o header do site é `position:fixed` (pré-header 34px + pílula 62px = 102px).
   Toda página de blog começa clara, então precisa dessa folga no topo. */
:root{--fds-blog-top:132px}
@media (max-width:900px){:root{--fds-blog-top:112px}}

/* A pílula do header é a MESMA em todas as páginas — a da home.
   Existia aqui um override que a escurecia nas páginas claras, e o
   `body.pgh-light` fazia o mesmo nas de produto. Os dois saíram: o header
   translúcido é o padrão, sem exceção por página. */

/* ---------- casca: neutraliza o padding e o wrap do ct_section ----------
   O Oxygen dá padding próprio à seção e limita `.ct-section-inner-wrap`.
   Quem controla ritmo e largura no blog é `.blog-sec` + `.wrap`, senão os dois
   se somam e aparece a faixa branca já conhecida do projeto. */
.ct-section.blog-shell{padding-top:0;padding-bottom:0}
/* as regras de ritmo abaixo repetem `.ct-section` de propósito: sem isso o
   reset acima (0,2,1) ganha das classes de layout (0,1,0) e some o padding */
.blog-shell > .ct-section-inner-wrap{display:block;width:100%;max-width:none;padding:0}

/* ---------- breadcrumb ---------- */
.fds-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  font-size:var(--fds-text-body-s);color:var(--fds-text-tertiary)}
.fds-breadcrumb a{color:var(--fds-text-tertiary);text-decoration:none;
  transition:color var(--fds-duration-fast) var(--fds-ease-out)}
.fds-breadcrumb a:hover{color:var(--fds-color-nucleo)}
.fds-breadcrumb__sep{width:14px;height:14px;flex:0 0 14px;opacity:.5}
.fds-breadcrumb__current{color:var(--fds-text-secondary);font-weight:600}

/* ---------- chip de filtro ---------- */
.fds-chip{display:inline-flex;align-items:center;height:39px;padding:0 21px;
  font-family:var(--fds-font-main);font-size:var(--fds-text-body-s);font-weight:600;
  color:var(--fds-text-secondary);background:var(--fds-surface-0);
  border:1px solid var(--fds-border-default);border-radius:var(--fds-radius-full);
  text-decoration:none;white-space:nowrap;
  transition:background var(--fds-duration-fast) var(--fds-ease-out),
             color var(--fds-duration-fast) var(--fds-ease-out),
             border-color var(--fds-duration-fast) var(--fds-ease-out)}
.fds-chip:hover{border-color:var(--fds-color-nucleo);color:var(--fds-color-nucleo)}
.fds-chip.is-active{background:var(--fds-color-nucleo);border-color:var(--fds-color-nucleo);color:#fff}

/* ---------- busca ---------- */
.fds-searchbar{position:relative;width:100%;max-width:600px;margin-inline:auto}
.fds-searchbar input{width:100%;height:50px;padding:0 20px 0 52px;
  font-family:var(--fds-font-main);font-size:var(--fds-text-body-m);
  color:var(--fds-text-primary);background:var(--fds-surface-0);
  border:1px solid var(--fds-border-default);border-radius:var(--fds-radius-full);outline:none;
  transition:border-color var(--fds-duration-fast) var(--fds-ease-out),
             box-shadow var(--fds-duration-fast) var(--fds-ease-out)}
.fds-searchbar input::placeholder{color:var(--fds-text-tertiary)}
.fds-searchbar input:focus{border-color:var(--fds-color-nucleo);
  box-shadow:0 0 0 4px var(--fds-color-nucleo-10)}
.fds-searchbar svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);
  width:20px;height:20px;color:var(--fds-text-tertiary);pointer-events:none}

/* ---------- card de post ---------- */
.fds-post-card{display:flex;flex-direction:column;height:100%;
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-lg);overflow:hidden;
  transition:transform var(--fds-duration-slow) var(--fds-ease-out),
             box-shadow var(--fds-duration-slow) var(--fds-ease-out),
             border-color var(--fds-duration-base) var(--fds-ease-out)}
.fds-post-card:hover{transform:translateY(-6px);box-shadow:var(--fds-shadow-lg);
  border-color:rgba(0,102,255,.3)}
.fds-post-card__cover{position:relative;display:block;overflow:hidden;
  background:var(--fds-gradient-nucleo-violeta)}
.fds-post-card__cover i{display:block;padding-bottom:56%;background-size:cover;
  background-position:center;transition:transform var(--fds-duration-slower) var(--fds-ease-out)}
.fds-post-card:hover .fds-post-card__cover i{transform:scale(1.04)}
.fds-post-card__body{display:flex;flex-direction:column;gap:10px;flex:1;
  padding:22px 25px 0}
.fds-post-card__cat{font-size:var(--fds-text-body-s);font-weight:600;
  color:var(--fds-color-nucleo);text-decoration:none}
.fds-post-card__title{margin:0;font-size:1.125rem;font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight)}
.fds-post-card__title a{color:var(--fds-text-primary);text-decoration:none;
  transition:color var(--fds-duration-fast) var(--fds-ease-out)}
.fds-post-card:hover .fds-post-card__title a{color:var(--fds-color-nucleo)}
.fds-post-card__desc{margin:0;font-size:var(--fds-text-body-s);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fds-post-card__foot{display:flex;align-items:center;gap:12px;margin-top:auto;
  padding:16px 25px;border-top:1px solid var(--fds-border-subtle)}
.fds-post-card__avatar{width:36px;height:36px;flex:0 0 36px;border-radius:var(--fds-radius-full);
  object-fit:cover;background:var(--fds-surface-2)}
/* gap:2px estava fora da escala — o menor degrau é --fds-space-1 (4px) */
.fds-post-card__who{display:flex;flex-direction:column;gap:4px;min-width:0}
.fds-post-card__author{font-size:var(--fds-text-body-s);font-weight:600;
  color:var(--fds-text-primary);text-decoration:none;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.fds-post-card__date{font-family:var(--fds-font-mono);font-size:var(--fds-text-caption);
  letter-spacing:var(--fds-tracking-wide);color:var(--fds-text-tertiary)}

/* ---------- paginação ---------- */
/* o Easy Posts emite `.oxy-easy-posts-pages` — apelidado aqui para não
   precisar de markup extra nem de classe manual em cada template */
.fds-pagination,.oxy-easy-posts-pages{display:flex;align-items:center;justify-content:center;
  gap:8px;flex-wrap:wrap;margin-top:var(--fds-space-7)}
.oxy-easy-posts-pages:empty{display:none}
.fds-pagination a,.fds-pagination span,
.oxy-easy-posts-pages a,.oxy-easy-posts-pages span{display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 10px;font-size:var(--fds-text-body-s);font-weight:600;
  color:var(--fds-text-secondary);background:var(--fds-surface-0);
  border:1px solid var(--fds-border-default);border-radius:var(--fds-radius-sm);
  text-decoration:none;transition:all var(--fds-duration-fast) var(--fds-ease-out)}
.fds-pagination a:hover,.oxy-easy-posts-pages a:hover{
  border-color:var(--fds-color-nucleo);color:var(--fds-color-nucleo)}
.fds-pagination .current,.oxy-easy-posts-pages .current,
.oxy-easy-posts-pages .page-numbers.current{
  background:var(--fds-color-nucleo);border-color:var(--fds-color-nucleo);color:#fff}
.fds-pagination .dots,.oxy-easy-posts-pages .dots{border:0;background:transparent}

/* ---------- newsletter ---------- */
.fds-newsletter{position:relative;overflow:hidden;text-align:center;
  padding:48px 24px;border-radius:var(--fds-radius-xl);
  background:var(--fds-surface-1);border:1px solid var(--fds-border-subtle)}
.fds-newsletter--dark{background:var(--fds-color-marinho);border-color:transparent;color:#fff}
.fds-newsletter--dark .fds-newsletter__lead{color:rgba(255,255,255,.72)}
.fds-newsletter--dark .fds-newsletter__form input{background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.24);color:#fff}
.fds-newsletter--dark .fds-newsletter__form input::placeholder{color:rgba(255,255,255,.5)}
.fds-newsletter__title{margin:0 0 12px;font-size:var(--fds-text-h3);font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight)}
.fds-newsletter__lead{margin:0 auto 28px;max-width:600px;
  font-size:var(--fds-text-body-m);line-height:var(--fds-leading-relaxed);
  color:var(--fds-text-secondary)}
.fds-newsletter__form{display:flex;gap:12px;max-width:500px;margin-inline:auto}
.fds-newsletter__form input{flex:1;min-width:0;height:48px;padding:0 16px;
  font-family:var(--fds-font-main);font-size:var(--fds-text-body-m);
  color:var(--fds-text-primary);background:var(--fds-surface-0);
  border:1px solid var(--fds-border-default);border-radius:var(--fds-radius-sm);outline:none}
.fds-newsletter__form input:focus{border-color:var(--fds-color-nucleo)}
.fds-newsletter__form .fds-btn{border-radius:var(--fds-radius-sm);height:48px;flex:0 0 auto}

/* ---------- card de autor ---------- */
.fds-author-card{display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:24px;text-align:center;background:var(--fds-surface-0);
  border:1px solid var(--fds-border-subtle);border-radius:var(--fds-radius-lg);
  transition:transform var(--fds-duration-slow) var(--fds-ease-out),
             box-shadow var(--fds-duration-slow) var(--fds-ease-out)}
.fds-author-card:hover{transform:translateY(-4px);box-shadow:var(--fds-shadow-md)}
.fds-author-card__avatar{width:100px;height:100px;border-radius:var(--fds-radius-full);
  object-fit:cover;background:var(--fds-surface-2)}
.fds-author-card__name{margin:12px 0 0;font-size:var(--fds-text-h6);font-weight:700}
.fds-author-card__name a{color:var(--fds-text-primary);text-decoration:none}
.fds-author-card__role{margin:0;font-size:var(--fds-text-body-s);color:var(--fds-text-tertiary)}

/* ---------- caixa de autor (single) ---------- */
.fds-author-box{display:flex;align-items:flex-start;gap:16px;padding:24px;
  background:var(--fds-surface-1);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-lg)}
.fds-author-box__avatar{width:64px;height:64px;flex:0 0 64px;
  border-radius:var(--fds-radius-full);object-fit:cover;background:var(--fds-surface-2)}
.fds-author-box__name{margin:0 0 4px;font-size:var(--fds-text-h6);font-weight:700}
.fds-author-box__name a{color:var(--fds-text-primary);text-decoration:none}
.fds-author-box__bio{margin:0;font-size:var(--fds-text-body-s);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}

/* ---------- sumário + compartilhar (sidebar do single) ---------- */
.fds-toc{position:sticky;top:120px}
.fds-toc__title,.fds-share__title{margin:0 0 14px;font-size:var(--fds-text-overline);
  font-weight:600;text-transform:uppercase;letter-spacing:var(--fds-tracking-wider);
  color:var(--fds-text-tertiary)}
.fds-toc__list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;
  border-left:2px solid var(--fds-border-subtle)}
.fds-toc__list a{display:block;padding:8px 0 8px 16px;margin-left:-2px;
  border-left:2px solid transparent;
  font-size:var(--fds-text-body-s);line-height:var(--fds-leading-snug);
  color:var(--fds-text-tertiary);text-decoration:none;
  transition:color var(--fds-duration-fast) var(--fds-ease-out),
             border-color var(--fds-duration-fast) var(--fds-ease-out)}
.fds-toc__list a:hover{color:var(--fds-text-primary)}
.fds-toc__list a.is-active{color:var(--fds-color-nucleo);
  border-left-color:var(--fds-color-nucleo);font-weight:600}
.fds-share{margin-top:32px}
.fds-share__links{display:flex;gap:8px}
.fds-share__links a{display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:var(--fds-radius-full);
  color:var(--fds-text-tertiary);background:var(--fds-surface-0);
  border:1px solid var(--fds-border-default);
  transition:all var(--fds-duration-fast) var(--fds-ease-out)}
.fds-share__links a:hover{color:#fff;background:var(--fds-color-nucleo);
  border-color:var(--fds-color-nucleo);transform:translateY(-2px)}
.fds-share__links svg{width:18px;height:18px}

/* ---------- métricas ---------- */
.fds-stat-row{display:flex;flex-wrap:wrap;gap:48px}
.fds-stat__num{display:block;font-size:1.8rem;font-weight:800;line-height:1.1;
  color:var(--fds-color-nucleo);letter-spacing:var(--fds-tracking-tight)}
.fds-stat__label{font-size:var(--fds-text-body-s);color:var(--fds-text-tertiary)}

/* ============================================================
   LAYOUT DAS PÁGINAS
   ============================================================ */
.ct-section.blog-sec{padding-block:var(--fds-space-9)}
.ct-section.blog-sec--tight{padding-block:var(--fds-space-7)}
.blog-sec--alt{background:var(--fds-surface-1)}

/* hero do arquivo: capa + destaque */
.ct-section.blog-hero{padding-top:var(--fds-blog-top);padding-bottom:var(--fds-space-8)}
.blog-hero__grid{display:grid;grid-template-columns:minmax(0,656fr) minmax(0,552fr);
  gap:48px;align-items:center;margin-top:var(--fds-space-6)}
.blog-hero__cover{display:block;position:relative;overflow:hidden;
  border-radius:var(--fds-radius-xl);background:var(--fds-gradient-nucleo-violeta)}
.blog-hero__cover i{display:block;padding-bottom:62.5%;background-size:cover;background-position:center}
.blog-hero__title{margin:16px 0 0;font-size:var(--fds-text-h1);font-weight:800;
  line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tighter)}
.blog-hero__title a{color:var(--fds-text-primary);text-decoration:none}
.blog-hero__title a:hover{color:var(--fds-color-nucleo)}
.blog-hero__lead{margin:20px 0 0;font-size:var(--fds-text-body-l);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}
.blog-hero__by{display:flex;align-items:center;gap:16px;margin-top:32px}
.blog-hero__by img{width:48px;height:48px;border-radius:var(--fds-radius-full);object-fit:cover}

/* barra de filtros */
.ct-section.blog-filters{padding-block:24px;border-block:1px solid var(--fds-border-subtle);
  background:var(--fds-surface-1)}
.blog-filters__chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.blog-filters__label{font-size:var(--fds-text-body-m);color:var(--fds-text-secondary);
  align-self:center;margin-right:4px}

/* grid de artigos — o Easy Posts envolve os cards num `.oxy-posts`, então a
   grade tem que valer para os dois níveis (a classe fica no elemento de fora) */
.blog-grid,.blog-grid > .oxy-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.blog-grid > .oxy-posts{grid-column:1/-1}
.blog-grid--2,.blog-grid--2 > .oxy-posts{grid-template-columns:repeat(2,minmax(0,1fr))}
.blog-title{margin:0 0 32px;font-size:var(--fds-text-h2);font-weight:700;
  letter-spacing:var(--fds-tracking-tight)}

/* autores */
/* a seção de especialistas só existe no índice do blog — nos demais arquivos o
   PHP sai vazio e a casca não pode deixar padding órfão.
   ⚠️ escopo pela classe própria: com `.blog-sec--alt` genérico esta regra
   derrubava qualquer outra seção clara (a faixa de métricas do case, entre elas) */
.ct-section.blog-especialistas:not(:has(.blog-authors__grid)){display:none}
.blog-authors__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;
  margin-top:var(--fds-space-7)}

/* ---------- single ---------- */
.ct-section.blog-post__head{padding-top:var(--fds-blog-top);text-align:left}
.blog-post__head .fds-badge,.blog-cat-head .fds-badge{margin-top:20px}
.blog-post__title{margin:16px 0 0;font-size:var(--fds-text-h1);font-weight:800;
  line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tighter);
  max-width:900px}
.blog-post__lead{margin:20px 0 0;max-width:820px;font-size:var(--fds-text-body-l);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}
.blog-post__cover:empty{display:none}
.blog-post__cover{margin-top:var(--fds-space-7);border-radius:var(--fds-radius-xl);
  overflow:hidden;background:var(--fds-gradient-nucleo-violeta)}
.blog-post__cover img{display:block;width:100%;height:auto}
.ct-section.blog-reading,.blog-reading{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;
  padding-block:var(--fds-space-8)}

/* tipografia do corpo do artigo (ct_inner_content) */
.blog-body{font-size:var(--fds-text-body-l);line-height:var(--fds-leading-relaxed);
  color:var(--fds-text-secondary);max-width:760px}
.blog-body > *:first-child{margin-top:0}
.blog-body h2{margin:48px 0 16px;font-size:var(--fds-text-h3);font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight);
  color:var(--fds-text-primary);scroll-margin-top:120px}
.blog-body h3{margin:36px 0 12px;font-size:var(--fds-text-h4);font-weight:700;
  color:var(--fds-text-primary);scroll-margin-top:120px}
.blog-body p{margin:0 0 20px}
.blog-body a{color:var(--fds-color-nucleo);text-decoration:underline;text-underline-offset:3px}
.blog-body ul,.blog-body ol{margin:0 0 20px;padding-left:24px}
.blog-body li{margin-bottom:10px}
.blog-body li::marker{color:var(--fds-color-nucleo)}
.blog-body blockquote{margin:32px 0;padding:8px 0 8px 28px;
  border-left:3px solid var(--fds-color-nucleo);
  font-size:var(--fds-text-h5);font-weight:500;line-height:var(--fds-leading-snug);
  color:var(--fds-text-primary)}
.blog-body blockquote p:last-child{margin-bottom:0}
.blog-body img{max-width:100%;height:auto;border-radius:var(--fds-radius-lg)}
.blog-body figure{margin:32px 0}
.blog-body figcaption{margin-top:12px;font-size:var(--fds-text-body-s);
  color:var(--fds-text-tertiary);text-align:center}
.blog-body pre{overflow-x:auto;padding:20px;border-radius:var(--fds-radius-md);
  background:var(--fds-surface-2);font-family:var(--fds-font-mono);font-size:var(--fds-text-body-s)}
.blog-body table{width:100%;border-collapse:collapse;margin:0 0 24px;
  font-size:var(--fds-text-body-s)}
.blog-body th,.blog-body td{padding:12px;border-bottom:1px solid var(--fds-border-subtle);text-align:left}

.blog-aside{min-width:0}
.blog-post__end{display:flex;flex-direction:column;gap:32px;margin-top:var(--fds-space-8);
  max-width:760px}

/* hero do autor */
.blog-author-hero{display:grid;grid-template-columns:260px minmax(0,1fr);gap:48px;
  align-items:start;margin-top:var(--fds-space-6)}
.blog-author-hero__ph{display:flex;flex-direction:column;align-items:center;gap:20px}
.blog-author-hero__ph img{width:140px;height:140px;border-radius:var(--fds-radius-full);
  object-fit:cover;background:var(--fds-surface-2)}
.blog-author-hero__role{margin:8px 0 0;font-size:var(--fds-text-body-l);color:var(--fds-text-tertiary)}
.blog-author-hero__bio{margin:20px 0 0;font-size:var(--fds-text-body-m);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary);max-width:800px}

/* cabeçalho de categoria */
.ct-section.blog-cat-head{padding-top:var(--fds-blog-top);padding-bottom:var(--fds-space-6)}
.blog-cat-head__title{margin:16px 0 0;font-size:var(--fds-text-h1);font-weight:800;
  line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tighter)}
.blog-cat-head__desc{margin:16px 0 0;max-width:760px;font-size:var(--fds-text-body-l);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}
.blog-cat-head__count{margin-top:12px;font-family:var(--fds-font-mono);
  font-size:var(--fds-text-body-s);color:var(--fds-text-tertiary)}

/* estado vazio */
.blog-empty{padding:64px 24px;text-align:center;color:var(--fds-text-tertiary);
  border:1px dashed var(--fds-border-default);border-radius:var(--fds-radius-lg)}

/* ---------- responsivo ---------- */
@media (max-width:1024px){
  .blog-grid,.blog-grid > .oxy-posts{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .blog-authors__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-section.blog-reading,.blog-reading{grid-template-columns:1fr;gap:40px}
  .fds-toc{position:static}
}
@media (max-width:860px){
  .blog-hero__grid{grid-template-columns:1fr;gap:28px}
  .blog-author-hero{grid-template-columns:1fr;gap:28px;justify-items:center;text-align:center}
  .blog-author-hero__bio,.blog-author-hero__role{margin-inline:auto}
  .fds-stat-row{justify-content:center;gap:32px}
}
@media (max-width:640px){
  .blog-grid,.blog-grid > .oxy-posts,.blog-grid--2,.blog-authors__grid{grid-template-columns:1fr}
  .ct-section.blog-sec{padding-block:var(--fds-space-8)}
  .fds-newsletter{padding:32px 20px}
  .fds-newsletter__form{flex-direction:column}
  .fds-newsletter__form .fds-btn{width:100%}
  .blog-filters__chips{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;
    scrollbar-width:none;padding-bottom:4px;margin-inline:-20px;padding-inline:20px}
  .blog-filters__chips::-webkit-scrollbar{display:none}
}


/* ============================================================
   CASES — card do wireframe (Figma 257:2234)
   logo do cliente · badge do segmento · faixa de duas métricas ·
   link + chips dos módulos usados
   ============================================================ */
.cases-grid,.cases-grid > .oxy-posts{display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.cases-grid > .oxy-posts{grid-column:1/-1}

.fds-case-card{display:flex;flex-direction:column;height:100%;
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-xl);overflow:hidden;
  transition:transform var(--fds-duration-slow) var(--fds-ease-out),
             box-shadow var(--fds-duration-slow) var(--fds-ease-out),
             border-color var(--fds-duration-base) var(--fds-ease-out)}
.fds-case-card:hover{transform:translateY(-6px);box-shadow:var(--fds-shadow-lg);
  border-color:rgba(0,102,255,.3)}

.fds-case-card__top{display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;padding:33px 33px 0}
.fds-case-card__logo{flex:0 0 80px;width:80px;height:80px;padding:10px;
  display:grid;place-items:center;overflow:hidden;
  background:var(--fds-surface-1);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-md)}
.fds-case-card__logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
/* fallback enquanto o cliente não tem logo carregado */
.fds-case-card__logo b{font-size:var(--fds-text-body-s);font-weight:800;line-height:1.15;
  text-align:center;color:var(--fds-text-tertiary);letter-spacing:-.01em;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}

.fds-case-card__title{margin:20px 33px 0;font-size:var(--fds-text-h4);font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight)}
.fds-case-card__title a{color:var(--fds-text-primary);text-decoration:none;
  transition:color var(--fds-duration-fast) var(--fds-ease-out)}
.fds-case-card:hover .fds-case-card__title a{color:var(--fds-color-nucleo)}
.fds-case-card__desc{margin:14px 33px 0;font-size:var(--fds-text-body-m);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.fds-case-card__metrics{display:grid;grid-template-columns:1fr 1fr;
  margin:26px 33px 33px;border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-md);background:var(--fds-surface-1)}
.fds-case-card__metric{display:flex;gap:12px;padding:21px}
.fds-case-card__metric + .fds-case-card__metric{border-left:1px solid var(--fds-border-subtle)}
.fds-case-card__metric svg{width:20px;height:20px;flex:0 0 20px;margin-top:4px;
  color:var(--fds-color-esmeralda)}
.fds-case-card__num{display:block;font-size:1.75rem;font-weight:800;line-height:1.1;
  color:var(--fds-text-primary);letter-spacing:var(--fds-tracking-tight)}
.fds-case-card__lbl{display:block;margin-top:8px;font-size:var(--fds-text-body-s);
  color:var(--fds-text-tertiary)}

.fds-case-card__foot{display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin-top:auto;padding:22px 33px;
  border-top:1px solid var(--fds-border-subtle);background:var(--fds-surface-1)}
.fds-case-card__link{display:inline-flex;align-items:center;gap:8px;
  font-size:var(--fds-text-body-m);font-weight:600;color:var(--fds-color-nucleo);
  text-decoration:none}
.fds-case-card__link svg{width:18px;height:18px;
  transition:transform var(--fds-duration-base) var(--fds-ease-out)}
.fds-case-card__link:hover svg{transform:translateX(4px)}
.fds-case-card__mods{display:flex;gap:8px;flex-wrap:wrap}
.fds-case-card__mod{position:relative;width:28px;height:28px;display:grid;place-items:center;
  border:1px solid var(--fds-border-default);border-radius:var(--fds-radius-sm);
  color:var(--fds-color-nucleo);background:var(--fds-surface-0)}
.fds-case-card__mod svg{width:14px;height:14px}
.fds-case-card__mod i{position:absolute;bottom:calc(100% + 6px);left:50%;
  transform:translateX(-50%) translateY(4px);white-space:nowrap;font-style:normal;
  font-size:var(--fds-text-caption);font-weight:600;padding:5px 8px;
  color:#fff;background:var(--fds-color-marinho);border-radius:var(--fds-radius-xs);
  opacity:0;pointer-events:none;
  transition:opacity var(--fds-duration-fast) var(--fds-ease-out),
             transform var(--fds-duration-fast) var(--fds-ease-out)}
.fds-case-card__mod:hover i,.fds-case-card__mod:focus i{opacity:1;transform:translateX(-50%)}

/* hero e CTA centralizados, como no wireframe */
.blog-center{text-align:center}
.blog-center .fds-breadcrumb{justify-content:center}
.blog-center .blog-cat-head__title,.blog-center .blog-cat-head__desc{margin-inline:auto}
.blog-center .blog-cat-head__desc{max-width:680px}
.cases-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

@media (max-width:900px){
  .cases-grid,.cases-grid > .oxy-posts{grid-template-columns:1fr;gap:24px}
  .fds-case-card__top{padding:25px 25px 0}
  .fds-case-card__title,.fds-case-card__desc{margin-inline:25px}
  .fds-case-card__metrics{grid-template-columns:1fr;margin:24px 25px 25px}
  .fds-case-card__metric + .fds-case-card__metric{border-left:0;
    border-top:1px solid var(--fds-border-subtle)}
  .fds-case-card__foot{flex-direction:column;align-items:flex-start;gap:14px;padding:20px 25px}
}


/* ============================================================
   CASE DE SUCESSO — single (Figma 257:5693)
   hero dividido · faixa de métricas · corpo estreito ·
   citação full-width · soluções aplicadas · CTA
   ============================================================ */
/* proporção do wireframe: texto 570 / imagem 590. `1fr + 590fr` esmagaria o
   texto — as duas frações precisam estar na mesma escala */
.case-hero{display:grid;grid-template-columns:minmax(0,570fr) minmax(0,590fr);gap:56px;
  align-items:center}
.case-hero__id{display:flex;align-items:center;gap:16px;margin-top:22px}
.case-hero__logo{flex:0 0 64px;width:64px;height:64px;padding:8px;display:grid;place-items:center;
  overflow:hidden;background:var(--fds-surface-1);
  border:1px solid var(--fds-border-subtle);border-radius:var(--fds-radius-md)}
.case-hero__logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.case-hero__logo b{font-size:var(--fds-text-caption);font-weight:800;line-height:1.1;
  text-align:center;color:var(--fds-text-tertiary)}
.case-hero__title{margin:24px 0 0;font-size:var(--fds-text-h1);font-weight:800;
  line-height:var(--fds-leading-tight);letter-spacing:var(--fds-tracking-tighter)}
.case-hero__lead{margin:20px 0 0;font-size:var(--fds-text-body-l);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}
.case-hero__img{border-radius:var(--fds-radius-xl);overflow:hidden;
  box-shadow:var(--fds-shadow-xl);background:var(--fds-gradient-nucleo-violeta);
  aspect-ratio:590/442}
.case-hero__img img{width:100%;height:100%;object-fit:cover;display:block}

/* faixa de métricas — o número é o herói da seção */
.case-stripe{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;
  padding-block:var(--fds-space-8)}
.case-stripe__item{text-align:center}
.case-stripe__num{display:flex;align-items:center;justify-content:center;gap:12px;
  font-size:clamp(2.5rem,5vw,3.5rem);font-weight:800;line-height:1;
  color:var(--fds-text-primary);letter-spacing:var(--fds-tracking-tighter)}
.case-stripe__num svg{width:36px;height:36px;flex:0 0 36px;color:var(--fds-color-esmeralda)}
.case-stripe__lbl{display:block;margin:16px auto 0;max-width:330px;
  font-size:var(--fds-text-body-m);line-height:var(--fds-leading-normal);
  color:var(--fds-text-secondary)}

/* corpo: mesma tipografia do artigo, sem a coluna do sumário */
.case-corpo{max-width:760px;margin-inline:auto}

/* soluções aplicadas */
.case-solucoes{margin:var(--fds-space-7) auto 0;max-width:760px;padding:28px 33px;
  background:var(--fds-surface-1);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-lg)}
.case-solucoes__t{margin:0 0 18px;font-size:var(--fds-text-body-m);font-weight:700;
  color:var(--fds-text-primary)}
.case-solucoes__lista{display:flex;flex-wrap:wrap;gap:12px}
.case-solucoes__item{display:inline-flex;align-items:center;gap:10px;padding:12px 17px;
  font-size:var(--fds-text-body-s);font-weight:600;color:var(--fds-text-primary);
  background:var(--fds-surface-0);border:1px solid var(--fds-border-default);
  border-radius:var(--fds-radius-md);text-decoration:none}
.case-solucoes__item svg{width:16px;height:16px;color:var(--fds-color-nucleo)}
.case-solucoes__item:hover{border-color:var(--fds-color-nucleo)}

/* citação de impacto, largura total */
.case-quote{position:relative;overflow:hidden;text-align:center;
  padding:var(--fds-space-9) var(--fds-space-5);background:var(--fds-surface-1)}
.case-quote__mark{width:48px;height:48px;margin-inline:auto;color:var(--fds-color-nucleo);
  opacity:.35}
.case-quote__txt{margin:32px auto 0;max-width:830px;
  font-size:var(--fds-text-h4);font-weight:500;line-height:var(--fds-leading-snug);
  color:var(--fds-text-primary)}
.case-quote__autor{display:block;margin-top:36px;font-size:var(--fds-text-body-m);
  font-weight:700;color:var(--fds-text-primary)}
.case-quote__cargo{display:block;margin-top:6px;font-size:var(--fds-text-body-s);
  color:var(--fds-text-tertiary)}

@media (max-width:900px){
  .case-hero{grid-template-columns:1fr;gap:32px}
  .case-stripe{grid-template-columns:1fr;gap:40px;padding-block:var(--fds-space-7)}
  .case-quote{padding-block:var(--fds-space-8)}
}


/* ------------------------------------------------------------
   O template de post único serve artigo E case. O WordPress não
   marca a categoria no body de um single, então um bloco no topo
   emite `.is-case` e o `:has()` liga/desliga as seções.
   ------------------------------------------------------------ */
.is-case{display:none}
body:has(.is-case) .so-artigo{display:none !important}
body:not(:has(.is-case)) .so-case{display:none !important}
/* o case não tem sumário lateral: a grade de leitura vira uma coluna */
body:has(.is-case) .blog-reading{grid-template-columns:1fr;max-width:760px;margin-inline:auto}
body:has(.is-case) .blog-aside{display:none}


/* ============================================================
   RECURSOS — central de documentos (Figma 257:1565)
   busca · filtro lateral por categoria · lista de documentos
   ============================================================ */
.rec-busca{position:relative;max-width:650px;margin:var(--fds-space-7) auto 0}
.rec-busca input{width:100%;height:55px;padding:0 120px 0 52px;
  font-family:var(--fds-font-main);font-size:var(--fds-text-body-m);
  color:var(--fds-text-primary);background:var(--fds-surface-0);
  border:1px solid var(--fds-border-default);border-radius:var(--fds-radius-full);outline:none}
.rec-busca input:focus{border-color:var(--fds-color-nucleo);
  box-shadow:0 0 0 4px var(--fds-color-nucleo-10)}
/* ancorado à ALTURA DO CAMPO (55px), não ao formulário: no celular o botão
   vira estático, o formulário cresce e um `top:50%` jogaria a lupa para o meio */
.rec-busca > svg{position:absolute;left:20px;top:17px;
  width:20px;height:20px;color:var(--fds-text-tertiary);pointer-events:none}
.rec-busca button{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:39px}

.rec-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:68px;
  align-items:start}
.rec-filtros{position:sticky;top:130px;display:flex;flex-direction:column;gap:8px}
.rec-filtros__t{margin:0 0 6px;font-size:var(--fds-text-h6);font-weight:700;
  color:var(--fds-text-primary)}
.rec-filtro{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 17px;
  font-size:var(--fds-text-body-s);font-weight:600;color:var(--fds-text-secondary);
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-md);text-decoration:none;
  transition:border-color var(--fds-duration-fast) var(--fds-ease-out),
             color var(--fds-duration-fast) var(--fds-ease-out)}
.rec-filtro svg{width:18px;height:18px;flex:0 0 18px;opacity:.7}
.rec-filtro:hover{border-color:var(--fds-color-nucleo);color:var(--fds-color-nucleo)}
.rec-filtro.is-active{background:var(--fds-color-nucleo);border-color:var(--fds-color-nucleo);
  color:#fff}
.rec-filtro.is-active svg{opacity:1}

.rec-lista{display:flex;flex-direction:column;gap:16px}
.rec-doc{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:16px;
  align-items:start;padding:25px;
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-lg);
  transition:border-color var(--fds-duration-base) var(--fds-ease-out),
             box-shadow var(--fds-duration-base) var(--fds-ease-out)}
.rec-doc:hover{border-color:rgba(0,102,255,.3);box-shadow:var(--fds-shadow-sm)}
.rec-doc__ic{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--fds-radius-md);
  background:var(--fds-color-nucleo-10);color:var(--fds-color-nucleo)}
.rec-doc__ic svg{width:24px;height:24px}
.rec-doc__cat{font-size:var(--fds-text-body-s);font-weight:600;color:var(--fds-color-nucleo)}
.rec-doc__t{margin:4px 0 0;font-size:var(--fds-text-h6);font-weight:700;
  line-height:var(--fds-leading-snug);color:var(--fds-text-primary)}
.rec-doc__d{margin:10px 0 0;font-size:var(--fds-text-body-s);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}
.rec-doc__meta{display:flex;flex-direction:column;align-items:flex-end;gap:10px;
  text-align:right;min-width:152px}
.rec-doc__tags{display:flex;gap:8px}
.rec-doc__tag{font-family:var(--fds-font-mono);font-size:var(--fds-text-caption);
  font-weight:600;padding:5px 8px;border-radius:var(--fds-radius-xs);
  color:var(--fds-text-secondary);background:var(--fds-surface-2)}
.rec-doc__data{font-size:var(--fds-text-body-s);color:var(--fds-text-tertiary)}
.rec-doc__dl{display:inline-flex;align-items:center;gap:8px;font-size:var(--fds-text-body-s);
  font-weight:600;color:var(--fds-color-nucleo);text-decoration:none}
.rec-doc__dl svg{width:18px;height:18px}
.rec-doc__dl:hover{text-decoration:underline;text-underline-offset:3px}

@media (max-width:900px){
  .rec-layout{grid-template-columns:1fr;gap:28px}
  .rec-filtros{position:static;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;
    scrollbar-width:none;margin-inline:-20px;padding-inline:20px}
  .rec-filtros::-webkit-scrollbar{display:none}
  .rec-filtros__t{display:none}
  .rec-filtro{flex:0 0 auto;border-radius:var(--fds-radius-full)}
  .rec-doc{grid-template-columns:48px minmax(0,1fr);gap:14px}
  .rec-doc__meta{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;
    justify-content:flex-start;text-align:left;gap:12px;
    padding-top:16px;border-top:1px solid var(--fds-border-subtle)}
  .rec-busca{display:flex;flex-direction:column;gap:12px}
  .rec-busca input{padding-right:20px}
  .rec-busca button{position:static;transform:none;width:100%;margin-top:0}
}


/* ============================================================
   MATERIAIS — e-books, infográficos e guias (Figma 257:2596)
   destaque no topo · filtro por formato · grade de 3 cards
   ============================================================ */
.mat-destaque{display:grid;grid-template-columns:minmax(0,496fr) minmax(0,744fr);
  gap:48px;align-items:center;margin-top:var(--fds-space-7);
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-xl);overflow:hidden}
.mat-destaque__capa{display:grid;place-items:center;aspect-ratio:496/398;
  background:var(--fds-gradient-nucleo-violeta);color:#fff}
.mat-destaque__capa svg{width:120px;height:120px;opacity:.9}
.mat-destaque__capa img{width:100%;height:100%;object-fit:cover}
.mat-destaque__txt{padding:40px 48px 40px 0}
.mat-destaque__t{margin:16px 0 0;font-size:var(--fds-text-h2);font-weight:800;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight)}
.mat-destaque__d{margin:16px 0 28px;font-size:var(--fds-text-body-m);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}

.mat-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

.mat-grid,.mat-grid > .oxy-posts{display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.mat-grid > .oxy-posts{grid-column:1/-1}

.mat-card{display:flex;flex-direction:column;height:100%;
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-lg);overflow:hidden;
  transition:transform var(--fds-duration-slow) var(--fds-ease-out),
             box-shadow var(--fds-duration-slow) var(--fds-ease-out),
             border-color var(--fds-duration-base) var(--fds-ease-out)}
.mat-card:hover{transform:translateY(-6px);box-shadow:var(--fds-shadow-lg);
  border-color:rgba(0,102,255,.3)}
.mat-card__capa{position:relative;display:grid;place-items:center;aspect-ratio:390/292;
  background:var(--fds-surface-1);border-bottom:1px solid var(--fds-border-subtle);
  color:var(--fds-color-nucleo)}
.mat-card__capa svg{width:64px;height:64px}
.mat-card__capa img{width:100%;height:100%;object-fit:cover}
.mat-card__tipo{position:absolute;top:16px;left:16px;
  font-size:var(--fds-text-caption);font-weight:700;padding:5px 10px;
  color:var(--fds-text-primary);background:var(--fds-surface-0);
  border-radius:var(--fds-radius-full);box-shadow:var(--fds-shadow-xs)}
.mat-card__t{margin:22px 25px 0;font-size:1.05rem;font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight);
  color:var(--fds-text-primary)}
.mat-card__d{margin:12px 25px 0;font-size:var(--fds-text-body-s);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mat-card__foot{margin-top:auto;padding:17px 24px;
  border-top:1px solid var(--fds-border-subtle)}
.mat-card__foot .fds-btn{width:100%}

@media (max-width:1024px){
  .mat-grid,.mat-grid > .oxy-posts{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
}
@media (max-width:900px){
  .mat-destaque{grid-template-columns:1fr;gap:0}
  .mat-destaque__capa{aspect-ratio:310/174}
  .mat-destaque__txt{padding:28px 25px 32px;text-align:center}
  .mat-destaque__t{font-size:var(--fds-text-h3)}
  .mat-destaque__txt .fds-btn{width:100%}
}
@media (max-width:640px){
  .mat-grid,.mat-grid > .oxy-posts{grid-template-columns:1fr}
}


/* ============================================================
   WEBINARS (Figma 269:58)
   próximo ao vivo em destaque · filtro por tema · grade de gravações
   ============================================================ */
.web-feat{display:grid;grid-template-columns:1fr 1fr;margin-top:var(--fds-space-7);
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-xl);overflow:hidden}
.web-capa{position:relative;display:grid;place-items:center;aspect-ratio:566/316;
  background:var(--fds-gradient-nucleo-violeta)}
.web-capa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.web-play{position:relative;display:grid;place-items:center;width:64px;height:64px;
  border-radius:50%;background:rgba(255,255,255,.9);color:var(--fds-color-nucleo);
  box-shadow:var(--fds-shadow-md);transition:transform var(--fds-duration-base) var(--fds-ease-out)}
.web-play svg{width:26px;height:26px;margin-left:3px}
.web-feat:hover .web-play,.web-card:hover .web-play{transform:scale(1.08)}
.web-badge{position:absolute;top:16px;left:16px;display:inline-flex;align-items:center;gap:8px;
  padding:5px 12px;border-radius:var(--fds-radius-full);
  font-size:var(--fds-text-caption);font-weight:600;color:#fff;background:rgba(11,17,33,.7);
  backdrop-filter:blur(8px)}
.web-badge i{width:7px;height:7px;border-radius:50%;background:var(--fds-color-esmeralda);
  animation:web-pulso 1.8s ease-in-out infinite}
@keyframes web-pulso{0%,100%{opacity:1}50%{opacity:.35}}
.web-feat__body{padding:40px}
.web-when{font-family:var(--fds-font-mono);font-size:var(--fds-text-body-s);
  letter-spacing:var(--fds-tracking-wide);color:var(--fds-color-nucleo);font-weight:600}
.web-feat__t{margin:14px 0 0;font-size:var(--fds-text-h3);font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:var(--fds-tracking-tight)}
.web-feat__d{margin:14px 0 26px;font-size:var(--fds-text-body-m);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}

.web-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.web-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}

.web-card{display:flex;flex-direction:column;height:100%;
  background:var(--fds-surface-0);border:1px solid var(--fds-border-subtle);
  border-radius:var(--fds-radius-lg);overflow:hidden;
  transition:transform var(--fds-duration-slow) var(--fds-ease-out),
             box-shadow var(--fds-duration-slow) var(--fds-ease-out),
             border-color var(--fds-duration-base) var(--fds-ease-out)}
.web-card:hover{transform:translateY(-6px);box-shadow:var(--fds-shadow-lg);
  border-color:rgba(0,102,255,.3)}
.web-card__media{position:relative;display:grid;place-items:center;aspect-ratio:359/225;
  background:var(--fds-gradient-nucleo-violeta)}
.web-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.web-card__media .web-play{width:48px;height:48px}
.web-card__media .web-play svg{width:20px;height:20px}
.web-cat{position:absolute;top:12px;left:12px;padding:5px 10px;
  font-size:var(--fds-text-caption);font-weight:600;color:var(--fds-text-primary);
  background:var(--fds-surface-0);border-radius:var(--fds-radius-full)}
.web-dur{position:absolute;right:14px;bottom:12px;padding:3px 8px;
  font-family:var(--fds-font-mono);font-size:var(--fds-text-caption);
  color:#fff;background:rgba(11,17,33,.72);border-radius:var(--fds-radius-xs)}
.web-card__body{display:flex;flex-direction:column;gap:8px;flex:1;padding:20px}
.web-card__t{margin:0;font-size:1.02rem;font-weight:700;line-height:var(--fds-leading-snug);
  letter-spacing:var(--fds-tracking-tight);color:var(--fds-text-primary)}
.web-card__d{margin:0;font-size:var(--fds-text-body-s);line-height:var(--fds-leading-relaxed);
  color:var(--fds-text-secondary);display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden}
.web-card__link{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:8px;
  font-size:var(--fds-text-body-s);font-weight:600;color:var(--fds-color-nucleo);
  text-decoration:none}
.web-card__link svg{width:16px;height:16px;
  transition:transform var(--fds-duration-base) var(--fds-ease-out)}
.web-card__link:hover svg{transform:translateX(4px)}

@media (max-width:1024px){.web-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .web-feat{grid-template-columns:1fr}
  .web-feat__body{padding:28px 25px 32px}
  .web-feat__body .fds-btn{width:100%}
}
@media (max-width:640px){.web-grid{grid-template-columns:1fr}}


/* ============================================================
   CORREÇÕES DE ESPAÇAMENTO E ESCALA — páginas internas
   Medido em /fortics-chat-center/, /segmentos/, /planos/ e /institucional/,
   nas duas larguras (1398px e 375px). As páginas novas (blog, cases,
   recursos, materiais, webinars) já passavam limpas.

   `!important` aqui não é preguiça: o CSS dessas páginas mora em code
   blocks que entram DEPOIS da folha global, então regra sem peso perde.

   NÃO inclui a home nem o mockup de interface `.fui-*`, que é uma UI
   desenhada em escala reduzida de propósito.
   ============================================================ */

/* ---- piso tipográfico ----
   O menor tamanho do DS é `--fds-text-overline` (0.6875rem = 11px).
   Havia rótulo a 9,6px, ilegível no celular. */
.amp-tag,.amp-card__tier,.ptag,.pg-sec .tag,.pgh-eyebrow,.hfx-eyebrow,
.pg-sec .chip,.ppanel .chip,.selo,.tf2-pill,.npill .nm{
  font-size:var(--fds-text-overline)!important;line-height:1.35}
/* o rótulo do orbital foi medido antes de subir: a 11px continua sem colisão
   entre pílulas e sem sair da tela em 375px */

/* ---- respiro entre rótulo, título e texto ----
   Rótulo colado no título (0–5px) e título colado no parágrafo (4px). */
.hfx-eyebrow,.pgh-eyebrow{display:block;margin-bottom:14px!important}
.amp-card__tier{display:block;margin-bottom:10px!important}
.pg-sec h3 + p,.pg-sec h3 + span.sub,.pg-sec h3 + .sub{margin-top:10px!important}
.pp-mod b,.amp-card b,.sgc-card b,.pgp-card b{display:block;margin-bottom:8px}
.pgi-stats .st b{display:block;margin-bottom:8px}
.pp-mod span > b + span{display:block}

/* ---- alvo de toque ----
   Trilha e links de card ficavam abaixo de 36px de altura. */
.fds-breadcrumb a{padding-block:7px}
.pg-sec a.link,.sgc-card a.link,.pp-mod{min-height:44px}
.pg-sec a.link{display:inline-flex;align-items:center;padding-block:6px}

@media (max-width:900px){
  /* no celular o rótulo em caixa-alta precisa de mais entrelinha e folga */
  .amp-tag,.amp-card__tier,.ptag,.pg-sec .tag,.pgh-eyebrow,.hfx-eyebrow,
  .pg-sec .chip,.ppanel .chip,.selo{letter-spacing:.06em}
  .pg-sec h3 + p,.pg-sec h3 + span.sub,.pg-sec h3 + .sub{margin-top:12px!important}
}


/* ============================================================
   CTA DE FECHAMENTO — o mesmo em todas as páginas
   Medido em 375px na /fortics-channel-connect/: o cartão tinha 295px de
   largura e os filhos 281px começando 32px adentro — ou seja, vazavam 50px
   para fora. Causa: `grid-template-columns:1fr` não encolhe abaixo do
   min-content, e os campos do formulário têm largura mínima própria.
   `minmax(0,1fr)` + `min-width:0` resolvem na raiz.
   ============================================================ */
/* o spark decorativo é absoluto e sangra para fora do cartão arredondado */
.ctafinal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden}
.ctafinal > *{min-width:0}
.ctafinal .lead-form,.ctafinal .fds-field,.ctafinal .fds-input{min-width:0;max-width:100%}
.ctafinal .fds-input{width:100%;box-sizing:border-box}

@media (max-width:900px){
  .ctafinal{grid-template-columns:minmax(0,1fr)!important;padding:28px 22px!important;
    gap:26px}
  /* o título do CTA vinha em --fds-text-h2 (até 44px) e quebrava feio em 375 */
  .ctafinal .fds-h2{font-size:clamp(1.5rem,6vw,1.85rem)!important;
    line-height:var(--fds-leading-snug)}
  .ctafinal .lead{font-size:var(--fds-text-body-m)!important}
  .ctafinal .form-panel{padding:22px!important}
  .ctafinal .ctas{display:flex;flex-wrap:wrap;gap:10px}
  .ctafinal .ctas .fds-btn{width:100%}
  /* a seção somava 16px de lado ao 24px do .wrap: 40px de recuo num
     aparelho de 375 é caro demais */
  .pg-sec.pg-cta{padding-inline:0!important}
}


/* ============================================================
   ESCALA TIPOGRÁFICA NO CELULAR
   Os tokens de título do DS não têm degrau para telas pequenas:
   `--fds-text-h1` é clamp(2.5rem,4.5vw,3.5rem) e, em 375px, o `4.5vw`
   dá 17px — o clamp trava no MÍNIMO, 40px. Um H1 de 40px come a tela
   inteira. Aqui o degrau entra pelas classes dos componentes, não pelo
   token, para não mexer na home.
   ============================================================ */
@media (max-width:640px){
  .blog-cat-head__title,.blog-hero__title,.blog-post__title,.case-hero__title{
    font-size:clamp(1.75rem,8vw,2.25rem);letter-spacing:var(--fds-tracking-tight)}
  .blog-title,.mat-destaque__t,.web-feat__t,.fds-newsletter__title,
  .ctafinal .fds-h2,.case-quote__txt{
    font-size:clamp(1.4rem,6.4vw,1.8rem)}
  .blog-cat-head__desc,.blog-hero__lead,.blog-post__lead,.case-hero__lead{
    font-size:var(--fds-text-body-m)}
  /* chips e filtros: cabem mais por linha */
  .fds-chip{height:36px;padding:0 15px;font-size:var(--fds-text-caption)}
  .rec-filtro{min-height:40px;padding:0 14px;font-size:var(--fds-text-caption)}
}


/* ============================================================
   GRIDS QUE NÃO ENCOLHEM — a mesma causa do CTA
   Item de grid nasce com `min-width:auto`: ele nunca fica menor que o
   próprio conteúdo, mesmo com a faixa em `minmax(0,1fr)`. Onde o filho é
   um `ct_div_block` do Oxygen (sem estilo próprio), ele vaza para fora.
   Título e descrição também precisam poder quebrar palavra longa.
   ============================================================ */
.rec-layout > *,.rec-lista,.rec-doc,.rec-doc > *,
.blog-reading > *,.case-hero > *,.mat-destaque > *,.web-feat > *,
.fds-case-card__metrics > *,.fds-case-card > *,.mat-card > *,.web-card > *{min-width:0}

.rec-doc__t,.rec-doc__d,.rec-doc__cat,
.mat-card__t,.web-card__t,.fds-case-card__title{overflow-wrap:anywhere}

/* a coluna de meta tinha `min-width:152px`, que empurrava o card para fora
   quando o espaço apertava */
@media (max-width:1100px){
  .rec-doc{grid-template-columns:48px minmax(0,1fr)}
  .rec-doc__meta{grid-column:1/-1;min-width:0;flex-direction:row;flex-wrap:wrap;
    align-items:center;justify-content:flex-start;text-align:left;gap:12px;
    padding-top:16px;border-top:1px solid var(--fds-border-subtle)}
}
@media (max-width:900px){
  .rec-layout{grid-template-columns:minmax(0,1fr)}
}

/* ---------- páginas legais (privacidade, cookies) ---------- */
/* !important: o CSS por elemento do Oxygen zera o padding da seção, e sem ele
   o header fixo (106px) cobre a trilha e o topo do título. */
.lgl-hero{padding:136px 24px 44px!important;background:var(--fds-bg-subtle,#F4F7FC)}
.lgl-hero .wrap{max-width:1120px;margin:0 auto}
.lgl-hero__t{margin:14px 0 0;font-size:var(--fds-text-h1);font-weight:800;
  line-height:var(--fds-leading-tight);letter-spacing:-.02em;color:var(--fds-text-primary)}
.lgl-hero__d{margin:14px 0 0;max-width:70ch;font-size:var(--fds-text-body-l);
  line-height:var(--fds-leading-relaxed);color:var(--fds-text-secondary)}
.lgl-hero__up{margin:18px 0 0;font-family:var(--fds-font-mono);
  font-size:var(--fds-text-caption);letter-spacing:var(--fds-tracking-wide);
  color:var(--fds-text-tertiary)}

/* !important pelo mesmo motivo do hero: o CSS por elemento do Oxygen zera o
   padding da seção e o documento encosta no hero. */
.lgl-sec{padding:72px 24px 96px!important}
.lgl-sec .wrap{max-width:1120px;margin:0 auto}
.lgl-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:56px;align-items:start}
.lgl-layout > *{min-width:0}

.lgl-toc__in{position:sticky;top:104px;max-height:calc(100vh - 140px);overflow-y:auto;
  scrollbar-width:thin}
.lgl-toc__t{margin:0 0 16px;font-family:var(--fds-font-mono);font-size:var(--fds-text-overline);
  font-weight:600;letter-spacing:var(--fds-tracking-wide);text-transform:uppercase;
  color:var(--fds-text-tertiary)}
.lgl-toc__nav{display:flex;flex-direction:column;gap:6px;
  border-left:2px solid var(--fds-border-default)}
.lgl-toc__nav a{padding:8px 14px;font-size:var(--fds-text-body-s);line-height:1.45;
  color:var(--fds-text-secondary);text-decoration:none;border-left:2px solid transparent;
  margin-left:-2px;transition:color .2s,border-color .2s}
.lgl-toc__nav a:hover{color:var(--fds-color-nucleo);border-left-color:var(--fds-color-nucleo)}

.lgl-doc{max-width:74ch;font-size:var(--fds-text-body);line-height:var(--fds-leading-relaxed);
  color:var(--fds-text-secondary)}
.lgl-doc > *:first-child{margin-top:0}
.lgl-doc h2{margin:52px 0 16px;font-size:var(--fds-text-h4);font-weight:700;
  line-height:var(--fds-leading-snug);letter-spacing:-.01em;color:var(--fds-text-primary);
  scroll-margin-top:100px;overflow-wrap:anywhere}
/* elemento nativo: ct_text_block renderiza <div class="ct-text-block">, não <p> */
.lgl-doc p,.lgl-doc > .ct-text-block{margin:0 0 18px}
.lgl-doc strong{color:var(--fds-text-primary);font-weight:600}
.lgl-doc ul,.lgl-doc ol{margin:0 0 16px;padding-left:22px;display:flex;
  flex-direction:column;gap:8px}
.lgl-doc > .ct-text-block > ul,.lgl-doc > .ct-text-block > ol{margin:0}
.lgl-doc li{padding-left:4px}
.lgl-doc a{color:var(--fds-color-nucleo);text-decoration:underline;
  text-underline-offset:2px;overflow-wrap:anywhere}
/* tabelas de controle do documento: rolam sozinhas, nunca empurram a página */
.lgl-doc table{width:100%;margin:0 0 20px;border-collapse:collapse;
  font-size:var(--fds-text-body-s);display:block;overflow-x:auto}
.lgl-doc th,.lgl-doc td{padding:10px 14px;text-align:left;vertical-align:top;
  border:1px solid var(--fds-border-default)}
.lgl-doc thead th,.lgl-doc tr:first-child td strong{color:var(--fds-text-primary)}

@media (max-width:980px){
  .lgl-layout{grid-template-columns:minmax(0,1fr);gap:28px}
  .lgl-toc__in{position:static;max-height:none;padding:18px 20px;
    background:var(--fds-bg-subtle,#F4F7FC);border-radius:var(--fds-radius-md,14px)}
  .lgl-toc__nav{max-height:240px;overflow-y:auto}
}
@media (max-width:640px){
  .lgl-hero{padding:118px 20px 32px!important}
  .lgl-sec{padding:48px 20px 72px!important}
  .lgl-doc h2{margin-top:34px}
}

/* ---------- QA · piso tipográfico e alvo de toque ---------- */
/* O piso do DS é --fds-text-overline (11px). O mockup de interface (.fui-*) fica
   fora: é UI em escala, não texto de leitura. */
/* ⚠ `.rv-rail__dot` NÃO entra aqui. O design esconde o dígito no desktop com
   `font-size:0` — o ponto é um círculo de 12px e o número existe só para leitor de
   tela. Com `!important` o piso de 11px passava por cima e os números apareciam na
   tela. `font-size:0` em texto só-para-assistiva é técnica legítima: antes de forçar
   um piso, verificar se o texto é para ser visto. */
.tf2-card__st,.ft2-col b,.pg-kicker,
#text_block-10067-15,#text_block-10070-15,#text_block-10073-15,#text_block-10076-15{
  font-size:var(--fds-text-overline,.6875rem)!important}
/* Mockups de interface (#fui, .pgv-mock, .pchc-mock, .pgc-board) ficam fora do piso:
   são reproduções de tela em escala, não texto de leitura. */

/* Alvo de toque: padding aumenta a área clicável e a margem negativa devolve o
   espaço ao layout — o alvo cresce, o desenho não se mexe. */
.fx3-pre__wa,.fx3-pre__links a{padding-block:13px;margin-block:-13px;
  display:inline-flex;align-items:center}
.fx3-brand{padding-block:11px;margin-block:-11px}
.fds-carousel-cards__card-foot a{padding-block:13px;margin-block:-13px;
  display:inline-flex;align-items:center}
.seg-more{padding-block:6px;margin-block:-6px;display:inline-flex;align-items:center}
/* controles isolados podem simplesmente crescer */
/* ⚠ `.fc-action-btn` saiu daqui: é um círculo de 27px (`border-radius:50%`) e
   `min-height:44px` o esticava para 27×40 — virava oval. Botão de ícone com
   tamanho fixo recebe a área de toque por camada invisível, que não mexe na
   geometria. `.npill` já tem 60px e não precisava da regra. */
.tf2-ctl__btn,.fx3-x,.fx3-cta{min-height:44px}
.fc-action-btn{position:relative}
.fc-action-btn::after{content:'';position:absolute;inset:-9px}

/* Controles isolados: podem crescer sem estragar o desenho.
   `!important` é obrigatório: o CSS destas páginas vive em code blocks, que entram
   DEPOIS da folha global no documento e por isso vencem no empate de especificidade. */
.fds-chip,.fds-btn,.seg-more,.lgl-toc__nav a,.fds-badge,
.web-card__link,.fds-breadcrumb a{min-height:44px!important}
.fds-badge,.web-card__link,.fds-breadcrumb a{display:inline-flex;align-items:center}
.lgl-toc__nav a{display:flex;align-items:center}
/* Ícone com tamanho fixo: o padding entraria para dentro (border-box), então a área
   de toque vem de uma camada invisível por cima — o círculo continua com 32px. */
.ft2-social a{position:relative}
.ft2-social a::after{content:'';position:absolute;inset:-6px}
/* Links em linha apertada: padding cresce o alvo, margem negativa devolve o espaço */
/* ⚠ `.ft2-col a` NÃO entra aqui: são links empilhados numa coluna. `inline-flex`
   tira o empilhamento (viram lado a lado) e a margem negativa faz as áreas de
   clique se sobreporem 26px — clicar entre dois acerta o errado. Em lista
   vertical o alvo vem de padding real. */
.ft2-col a{display:flex!important;padding-block:11px!important}
.ft2-bot .lg a,.fds-case-card__link,.fds-badge{
  padding-block:13px!important;margin-block:-13px!important;
  display:inline-flex!important;align-items:center}
/* Ficam de fora, por isenção da própria WCAG 2.5.8 (alvo em linha dentro de texto):
   títulos de card e de autor, o autor/categoria na linha de meta, e os links dentro
   do corpo dos documentos legais (.lgl-doc a). */

/* Trava: SVG sem width/height dentro da trilha assume o tamanho do container e
   vira um ícone gigante. Aconteceu nas páginas legais (1072px). */
.fds-breadcrumb svg{width:16px;height:16px;flex:0 0 16px}
.fds-breadcrumb__sep{color:var(--fds-text-tertiary);line-height:1;font-size:1.05em;user-select:none}

/* respiro entre o CTA de fechamento das páginas legais e o rodapé */
.lgl-cta{padding-bottom:96px!important}
@media (max-width:640px){ .lgl-cta{padding-bottom:64px!important} }

/* Sumário do post acompanha a leitura. O wireframe é estático e não mostra isso,
   mas um índice que rola para fora da tela não cumpre a função — mesmo tratamento
   já dado ao índice das páginas legais. Cases não têm sumário (regra própria). */
.blog-aside{position:sticky;top:104px;align-self:start;max-height:calc(100vh - 130px);
  overflow-y:auto;scrollbar-width:thin}
@media (max-width:900px){
  .blog-aside{position:static;max-height:none;overflow:visible}
}

/* >>> BLOG-FORTICS FIM <<< */
