
:root {
  --bs-primary: #3f51b5;
  --bs-primary-rgb: 63, 81, 181;
  --bs-secondary-color: #5f6f89;
  --bs-body-color: #182235;
  --bs-body-bg: #ffffff;
  --bs-border-color: rgba(38, 67, 135, 0.12);
  --bs-link-color: #3f51b5;
  --bs-link-hover-color: #3fa9c4;
  --bs-border-radius: 1rem;
  --bs-border-radius-lg: 1.35rem;
  --bs-border-radius-xl: 1.75rem;
  --bs-box-shadow: 0 18px 40px rgba(20, 40, 92, 0.09);
  --bs-box-shadow-lg: 0 32px 72px rgba(20, 40, 92, 0.14);
  --bs-focus-ring-color: rgba(63, 81, 181, 0.18);
  --bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(63, 81, 181, 0.15);
}
::selection{background:rgba(63,169,196,.24);color:#1f2d76}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:#182235;background:radial-gradient(circle at top left,rgba(116,199,218,.16),transparent 0 28%),radial-gradient(circle at 100% 20%,rgba(63,81,181,.10),transparent 0 26%),linear-gradient(180deg,#f6f9fe 0%,#ffffff 26%,#f7fbff 100%);opacity:0;transition:opacity .42s ease,background-position .4s ease}
body.is-ready{opacity:1}
body.is-transitioning-out{opacity:1}
h1,h2,h3,h4,h5,h6,.navbar .nav-link,.btn,.section-title,.footer-title,.accordion-button{font-family:'Manrope',sans-serif;letter-spacing:-.02em}
p,li,span,small,label,input,textarea,select{font-family:'Inter',sans-serif}
a,button,.btn,.nav-link,.dropdown-item,.text-link,.topbar-link,.footer-links a{transition:color .3s ease,background-color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease,opacity .3s ease}
a{text-decoration:none;color:#3f51b5}
main a:not(.btn):not(.navbar-brand):not(.dropdown-item):not(.icon-link-card):not(.topbar-link):not(.footer-links a){position:relative}
main a:not(.btn):not(.navbar-brand):not(.dropdown-item):not(.icon-link-card):not(.sub-service-card):not(.topbar-link):not(.footer-links a)::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;border-radius:999px;background:linear-gradient(90deg,#3f51b5,#3fa9c4);transition:width .3s ease}
main a:not(.btn):not(.navbar-brand):not(.dropdown-item):not(.icon-link-card):not(.sub-service-card):not(.topbar-link):not(.footer-links a):hover::after{width:100%}
.modal a:not(.btn)::after,.modal a:not(.btn)::before{content:none !important;display:none !important;background:none !important;width:0 !important;height:0 !important}
.modal a:not(.btn){position:static !important}
.modal-body a{text-decoration:underline;color:#3f51b5}
.modal-body a:hover{color:#3fa9c4;text-decoration:underline}
a:hover{color:#3fa9c4}.fw-800{font-weight:800}
.py-6{padding-top:5rem!important;padding-bottom:5rem!important}.py-7{padding-top:6rem!important;padding-bottom:6rem!important}
.mt-6{margin-top:5rem!important}.mt-7{margin-top:7rem!important}
@media (min-width:992px){.py-lg-6{padding-top:6rem!important;padding-bottom:6rem!important}.py-lg-7{padding-top:8rem!important;padding-bottom:8rem!important}}
.bg-soft{background:linear-gradient(180deg,rgba(238,242,255,.55),rgba(245,248,252,.88))}
.bg-cream{background:linear-gradient(180deg,#ffe0a8 0%,#ffc870 100%)}
.sub-service-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.4rem 1.5rem;border-radius:18px;background:#fff;border:1px solid rgba(38,67,135,.14);color:#182235;text-decoration:none;position:static;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.sub-service-card::before,.sub-service-card::after{content:none !important;display:none !important}
.sub-service-card h3{font-weight:700;color:#182235;margin:0;flex:1;min-width:0;line-height:1.35}
.sub-service-card i{color:#3f51b5;font-size:1.15rem;flex-shrink:0;transition:transform .25s ease}
.sub-service-card:hover{text-decoration:none;background:#f7fbff;color:#182235;border-color:rgba(63,81,181,.32);box-shadow:0 12px 28px rgba(20,40,92,.10);transform:translateY(-2px)}
.sub-service-card:hover i{transform:translate(3px,-3px)}
.sub-service-card:focus-visible{outline:2px solid rgba(63,81,181,.5);outline-offset:2px}
.modal-content{border-radius:18px;border:none;overflow:hidden}
.modal-header{padding:1.5rem 1.75rem;border-bottom:1px solid rgba(38,67,135,.08)}
.modal-body{padding:1.5rem 1.75rem;line-height:1.75}
.modal-body p{margin-bottom:1rem;color:#3a4a66}
.modal-footer{padding:1.25rem 1.75rem;border-top:1px solid rgba(38,67,135,.08);background:linear-gradient(180deg,#f7fbff,#fff)}
.topbar{background:linear-gradient(90deg,#ff8c00 0%,#ff7a00 50%,#ff6b00 100%)}
.topbar .topbar-link{color:rgba(255,255,255,.88)}
.topbar .topbar-link:hover{color:#fff;transform:translateY(-1px)}
.navbar{overflow:visible;backdrop-filter:blur(18px);background:rgba(255,255,255,.88);border-bottom:1px solid rgba(38,67,135,.08);box-shadow:0 14px 32px rgba(20,40,92,.04)}
.navbar .nav-link{color:#182235;font-weight:800;font-size:.96rem;letter-spacing:.01em;position:relative;padding-top:.95rem;padding-bottom:.95rem}
.navbar .nav-link:hover,.navbar .nav-link.active{color:#3f51b5}
.navbar .nav-link::after{content:'';position:absolute;left:.75rem;right:.75rem;bottom:.55rem;height:2px;border-radius:999px;background:linear-gradient(90deg,#3f51b5,#3fa9c4);transform:scaleX(0);transform-origin:center;transition:transform .25s ease}
.navbar .nav-link:hover::after,.navbar .nav-link.active::after{transform:scaleX(1)}
.navbar.nav-scrolled{background:rgba(255,255,255,.96);box-shadow:0 18px 42px rgba(20,40,92,.09)}
.navbar-toggler{border:1px solid rgba(63,81,181,.16);border-radius:16px;padding:.55rem .7rem;box-shadow:0 12px 26px rgba(20,40,92,.06)}
.navbar-toggler:focus{box-shadow:0 0 0 .25rem rgba(63,81,181,.12)}
.brand-logo{width:52px;height:52px;object-fit:contain;}
.navbar-brand,.footer-brand{display:flex;align-items:center;gap:.9rem}
.navbar-brand .brand-fallback,.footer-brand .brand-fallback{display:inline-flex;flex-direction:column;line-height:1.02}
.navbar-brand .brand-fallback strong,.footer-brand .brand-fallback strong{font-size:1.02rem;color:#182235;font-family:'Manrope',sans-serif;font-weight:800}
.navbar-brand .brand-fallback small,.footer-brand .brand-fallback small{color:#5f6f89;font-size:.78rem}
.btn{position:relative;overflow:hidden;border-radius:999px;font-weight:800;letter-spacing:.01em;padding:.92rem 1.4rem;box-shadow:0 12px 24px rgba(20,40,92,.08)}
.btn::before{content:'';position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0));opacity:.7;pointer-events:none}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,#3f51b5 0%,#355dc0 44%,#3fa9c4 100%);border-color:transparent;color:#fff}
.btn-primary:hover,.btn-primary:focus{color:#fff;background:linear-gradient(135deg,#495dc4 0%,#3766c9 48%,#4bb8d4 100%);border-color:transparent;box-shadow:0 18px 34px rgba(52,89,191,.22)}
.btn-outline-primary{color:#3f51b5;border-color:rgba(63,81,181,.22);background:rgba(255,255,255,.84)}
.btn-outline-primary:hover,.btn-outline-primary:focus{color:#fff;background:linear-gradient(135deg,#3f51b5 0%,#355dc0 44%,#3fa9c4 100%);border-color:transparent;box-shadow:0 18px 34px rgba(52,89,191,.18)}
.btn-outline-light{color:#fff;border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.10)}
.btn-outline-light:hover,.btn-outline-light:focus{color:#1f2d76;background:#fff;border-color:#fff;box-shadow:0 18px 34px rgba(255,255,255,.18)}
.btn-portal{background:linear-gradient(135deg,#1f2d76 0%,#3f51b5 55%,#4470d2 100%);color:#fff}
.btn-portal:hover,.btn-portal:focus{color:#fff;box-shadow:0 18px 34px rgba(52,89,191,.22)}
.dropdown-menu{display:block;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease,visibility .25s ease;border-radius:20px;padding:.85rem;border:1px solid rgba(63,81,181,.10);background:rgba(255,255,255,.98);box-shadow:0 24px 54px rgba(20,40,92,.12)!important}
.dropdown-menu.show{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-item{border-radius:14px;padding:.78rem .95rem;font-weight:700;color:#182235}
.dropdown-item:hover,.dropdown-item:focus{background:linear-gradient(135deg,rgba(238,242,255,.95),rgba(230,247,251,.95));color:#2c3e9e;transform:translateX(4px)}
@media (min-width:1200px){.navbar .dropdown{position:relative}.navbar .dropdown:hover>.dropdown-menu,.navbar .dropdown:focus-within>.dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}}
.hero-section,.inner-hero{position:relative;overflow:hidden;background:radial-gradient(circle at top left,rgba(116,199,218,.22),transparent 0 30%),radial-gradient(circle at 86% 18%,rgba(255,255,255,.14),transparent 0 20%),linear-gradient(135deg,#1f2d76 0%,#30499e 42%,#3f51b5 68%,#3fa9c4 100%);color:#fff}
.hero-section .container,.inner-hero .container{position:relative;z-index:2}.page-home{min-height:92vh}
.hero-orb{position:absolute;border-radius:50%;filter:blur(12px);opacity:.42}
.hero-orb.hero-orb-1{width:340px;height:340px;background:rgba(116,199,218,.34);top:-60px;right:-90px;position:absolute}
.hero-orb.hero-orb-2{width:260px;height:260px;background:rgba(255,255,255,.16);bottom:30px;left:-70px;position:absolute}
.eyebrow,.section-tag,.panel-badge,.metric-kicker,.product-badge,.article-meta{display:inline-flex;align-items:center;gap:.45rem;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:800}
.eyebrow{color:#ffa64d}
.panel-badge,.section-tag,.metric-kicker,.product-badge,.article-meta{color:#3f51b5}
.hero-lead,.page-lead{font-size:1.13rem;line-height:1.85;color:rgba(255,255,255,.89);max-width:60ch}
.glass-card,.hero-panel,.content-card,.metric-card,.service-card,.resource-card,.stack-card,.timeline-card,.product-card,.article-card,.crumb-card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.6);box-shadow:0 18px 44px rgba(20,40,92,.09);border-radius:22px}
.glass-card{padding:1rem 1.1rem;color:#fff;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));border-color:rgba(255,255,255,.18);box-shadow:none;backdrop-filter:blur(8px);min-height:100%}
.glass-card i{font-size:1.2rem;color:#74c7da}.glass-card h3{font-size:.96rem;margin:.85rem 0 0;color:#fff}
.hero-panel{padding:2.2rem;color:#182235;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,250,255,.92))}
.section-shell{position:relative}.content-card,.metric-card,.resource-card,.stack-card,.timeline-card{padding:2rem}
.section-title{font-size:clamp(2rem,3vw,3rem);line-height:1.05;font-weight:800;margin:.35rem 0 1rem}
.section-copy{color:#5f6f89;font-size:1.05rem;line-height:1.8}
.icon-link-card{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border:1px solid rgba(38,67,135,.12);border-radius:18px;color:#182235;background:linear-gradient(180deg,#fff,#fbfcff)}
.icon-link-card i{color:#3f51b5;font-size:1.2rem}.icon-link-card:hover{color:#182235;border-color:rgba(63,81,181,.24);transform:translateY(-3px);box-shadow:0 18px 34px rgba(20,40,92,.08)}
.service-card{padding:2rem;display:flex;flex-direction:column;gap:1rem;position:relative;overflow:hidden}
.service-card .service-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(135deg,rgba(238,242,255,.95),rgba(230,247,251,.95));color:#3f51b5;font-size:1.45rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.service-card h3{font-size:1.36rem;font-weight:800;margin:0}.service-card p{color:#5f6f89;margin:0;line-height:1.82}
.service-card::after{content:'';position:absolute;inset:auto -10% -38% auto;width:12rem;height:12rem;border-radius:50%;background:radial-gradient(circle,rgba(63,169,196,.12),transparent 66%)}
.featured-card{background:linear-gradient(180deg,#ffffff 0%,#f4f8ff 100%);transform:translateY(-4px);border-color:rgba(63,81,181,.12)}
.service-list,.check-list,.footer-links{list-style:none;padding:0;margin:0}
.service-list li,.check-list li{position:relative;padding-left:1.7rem;margin-bottom:.7rem;color:#5f6f89}
.service-list li::before,.check-list li::before{content:"\F26E";font-family:"bootstrap-icons";color:#3fa9c4;position:absolute;left:0;top:.05rem}
.metric-card h3{font-size:1.48rem;font-weight:800;margin:.55rem 0 1rem}.text-link{color:#3f51b5;font-weight:800;display:inline-flex;align-items:center;gap:.35rem}
.quote-shell{background:linear-gradient(135deg,#1f2d76 0%,#30499e 56%,#3f51b5 100%);border-radius:28px;padding:2.4rem;color:#fff;position:relative;box-shadow:0 30px 64px rgba(32,45,118,.2)}
.quote-mark{font-size:4rem;line-height:1;color:rgba(255,255,255,.34)}.quote-shell p{font-size:1.22rem;line-height:1.68;margin-bottom:.75rem}.quote-shell footer{color:rgba(255,255,255,.78)}
.timeline-step{display:flex;gap:1rem;align-items:flex-start;padding-bottom:1.2rem;margin-bottom:1.2rem;border-bottom:1px solid rgba(38,67,135,.12)}
.timeline-step span{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(238,242,255,.95),rgba(230,247,251,.95));color:#3f51b5;font-weight:800;flex:0 0 auto}
.timeline-step h3{font-size:1.2rem;margin:0 0 .35rem;font-weight:800}.timeline-step p{margin:0;color:#5f6f89}
.product-card,.article-card{padding:1.6rem}.product-card h3,.article-card h3{font-size:1.15rem;font-weight:800;margin:.55rem 0 .75rem}.product-card p,.article-card p{color:#5f6f89;line-height:1.75;margin:0}
.article-card.has-image{display:flex;gap:1.3rem;align-items:flex-start;padding:1.5rem 1.6rem}
.article-card.has-image .article-image{width:128px;height:128px;flex:0 0 128px;object-fit:cover;border-radius:16px;display:block;box-shadow:8px 8px 0 0 rgba(63,81,181,.16),0 6px 18px rgba(20,40,92,.10);transition:box-shadow .35s ease,transform .35s ease,filter .35s ease}
.article-card.has-image:hover .article-image{transform:translate(-3px,-3px);box-shadow:11px 11px 0 0 rgba(63,81,181,.26),0 10px 24px rgba(20,40,92,.16);filter:saturate(1.1)}
.article-card.has-image .article-body{flex:1;min-width:0;padding:0;display:flex;flex-direction:column}
.article-card.has-image .article-body h3{margin-top:0;font-size:1.2rem}
.article-card.has-image .article-body .text-link{margin-top:auto;align-self:flex-start}
.article-card.has-image:hover .article-body .text-link i{transform:translateX(4px);transition:transform .25s ease}
.article-card.has-image.featured-post{padding-right:6.5rem}
.article-card.has-image.featured-post .article-image{box-shadow:8px 8px 0 0 rgba(212,160,23,.35),0 6px 18px rgba(212,160,23,.18)}
.article-card.has-image.featured-post:hover .article-image{box-shadow:11px 11px 0 0 rgba(212,160,23,.5),0 10px 24px rgba(212,160,23,.25)}
.article-card.has-image.is-compact{padding:1.1rem 1.25rem;gap:1rem}
.article-card.has-image.is-compact .article-image{width:84px;height:84px;flex:0 0 84px;border-radius:12px;box-shadow:6px 6px 0 0 rgba(63,81,181,.16),0 4px 12px rgba(20,40,92,.08)}
.article-card.has-image.is-compact:hover .article-image{transform:translate(-2px,-2px);box-shadow:8px 8px 0 0 rgba(63,81,181,.24),0 6px 16px rgba(20,40,92,.12)}
.author-portrait{width:128px;height:128px;object-fit:cover;border-radius:16px;display:block;box-shadow:8px 8px 0 0 rgba(63,81,181,.16),0 6px 18px rgba(20,40,92,.10)}
.btn-compact{padding:.55rem 1.05rem;font-size:.95rem;letter-spacing:.005em;box-shadow:0 8px 18px rgba(20,40,92,.08)}
.btn-compact:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(20,40,92,.12)}
.btn-mini{padding:.38rem .85rem;font-size:.82rem;font-weight:700;letter-spacing:.005em;box-shadow:0 6px 14px rgba(20,40,92,.06)}
.btn-mini:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(20,40,92,.10)}
.btn-square{border-radius:14px}
.btn-pill{border-radius:999px}
.swatch-block{height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}
.token-row{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:1rem;padding:.65rem 0;border-bottom:1px solid rgba(38,67,135,.10);align-items:center}
.token-row:last-child{border-bottom:none}
.token-row code{background:rgba(63,81,181,.08);padding:.2rem .55rem;border-radius:8px;color:#1f2d76;font-size:.85rem}
.demo-grid{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.guide-section{padding-top:3.5rem;padding-bottom:3.5rem;border-bottom:1px solid rgba(38,67,135,.08)}
.guide-section:last-of-type{border-bottom:none}
.guide-anchor{scroll-margin-top:120px}
.inner-hero{padding:7rem 0 5rem}.crumb-card{padding:1.25rem 1.4rem;color:#182235;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(247,250,255,.92))}
.contact-list{list-style:none;padding:0;margin:0}.contact-list li{display:flex;gap:1rem;margin-bottom:1.3rem}.contact-list li i{font-size:1.1rem;color:#3f51b5;width:1.2rem}.contact-list li strong{display:block;margin-bottom:.25rem}.contact-list li span{color:#5f6f89;line-height:1.7}
.form-control,.form-select,textarea.form-control{border-radius:18px;border-color:rgba(63,81,181,.12);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,250,255,.96));padding:.95rem 1rem;min-height:3.3rem}
.form-control:focus,.form-select:focus,textarea.form-control:focus{border-color:rgba(63,81,181,.45);box-shadow:0 0 0 .25rem rgba(63,81,181,.12)}
textarea.form-control{min-height:9rem}
.site-footer{background:linear-gradient(135deg,#151d42 0%,#1f2d76 55%,#263b87 100%);color:rgba(255,255,255,.76)}
.site-footer .footer-title{color:#fff;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;margin-bottom:1rem}
.site-footer .footer-links li{margin-bottom:.6rem}.site-footer .footer-links a,.site-footer .topbar-link{color:rgba(255,255,255,.78)}
.site-footer .footer-links a:hover{color:#fff;transform:translateX(2px)}
.site-footer .brand-fallback strong{color:#fff}.site-footer .brand-fallback small{color:rgba(255,255,255,.66)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.11);font-size:.9rem}
.footer-bottom a{color:rgba(255,255,255,.78)}
.footer-bottom a:hover{color: white; transform: translateX(2px)}
@media (max-width:1199.98px){.navbar .dropdown-menu{display:none;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none!important;padding:.3rem 0 .6rem .8rem;background:transparent}.navbar .dropdown-menu.show{display:block}}
@media (max-width:991.98px){.hero-section{padding-top:2rem}.hero-panel,.content-card,.metric-card,.resource-card,.stack-card,.timeline-card{padding:1.5rem}.section-title{font-size:2rem}}
@media (max-width:575.98px){.brand-fallback strong{font-size:.92rem}.brand-fallback small{font-size:.72rem}.quote-shell p{font-size:1.05rem}}
.hero-section,.inner-hero,.quote-shell{isolation:isolate}.js-parallax-section,.js-parallax-quote{position:relative;overflow:hidden}
.parallax-layer,.parallax-glow{position:absolute;inset:-8%;pointer-events:none;z-index:0;will-change:transform;transition:transform .2s linear}
.parallax-layer{opacity:.3;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.18),transparent 0 24%),linear-gradient(120deg,rgba(255,255,255,.08),transparent 42%,rgba(116,199,218,.10) 72%,transparent 100%)}
.parallax-glow{inset:auto;width:26rem;height:26rem;right:-8rem;bottom:-10rem;border-radius:50%;background:radial-gradient(circle,rgba(116,199,218,.22) 0%,rgba(63,81,181,.10) 34%,transparent 72%);filter:blur(10px);opacity:.95;animation:floatGlow 11s ease-in-out infinite;animation-delay:var(--glow-delay,0s)}
.quote-shell .parallax-layer{opacity:.2}.hero-section>*,.inner-hero>*,.quote-shell>*{position:relative;z-index:1}
.service-card,.resource-card,.content-card,.metric-card,.stack-card,.timeline-card,.product-card,.article-card,.crumb-card,.icon-link-card,.glass-card,.hero-panel{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.service-card:hover,.resource-card:hover,.content-card:hover,.metric-card:hover,.stack-card:hover,.timeline-card:hover,.product-card:hover,.article-card:hover,.crumb-card:hover,.icon-link-card:hover,.hero-panel:hover{transform:translateY(-6px);box-shadow:0 28px 58px rgba(20,40,92,.12)}
.page-shop .product-card{transition:none}
.page-shop .product-card:hover{transform:none;box-shadow:0 18px 44px rgba(20,40,92,.09)}
/* Featured post — medium accent, no motion */
.article-card.featured-post,
.article-card.featured-post *{transition:none!important;animation:none!important}
.article-card.featured-post[data-aos],
.article-card.featured-post [data-aos]{opacity:1!important;transform:none!important}
.article-card.featured-post{background:linear-gradient(135deg,#fff3b3 0%,#ffe580 100%);border:1px solid rgba(255,255,255,.6);box-shadow:0 18px 44px rgba(212,160,23,.22);position:relative;color:#1f2d76;transition:none}
.article-card.featured-post:hover{transform:none;box-shadow:0 18px 44px rgba(212,160,23,.22)}
.article-card.featured-post h3{color:#1f2d76;font-weight:800}
.article-card.featured-post p{color:rgba(31,45,118,.82)}
.article-card.featured-post .text-link{color:#1f2d76;font-weight:800}
.article-card.featured-post .article-meta{color:rgba(31,45,118,.72);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.article-card.featured-post .featured-badge{position:absolute;top:1rem;right:1rem;display:inline-flex;align-items:center;gap:.3rem;width:auto;background:#1f2d76;color:#ffd400;padding:.35rem .85rem;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 4px 10px rgba(0,0,0,.18)}

/* Blog list view modes */
.view-list .article-col{flex:0 0 100%;max-width:100%}
.view-compact .article-col{flex:0 0 100%;max-width:100%}
.view-compact .article-card{padding:.85rem 1.25rem}
.view-compact .article-card .article-body{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding-top:0}
.view-compact .article-card .article-body .article-meta{font-size:.75rem;margin:0;white-space:nowrap;flex-shrink:0;order:1}
.view-compact .article-card .article-body h3{font-size:1rem;margin:0;flex:1;min-width:0;order:2;font-weight:700}
.view-compact .article-card .article-body p{display:none}
.view-compact .article-card .article-body .text-link{flex-shrink:0;white-space:nowrap;order:3}
.view-compact .article-card.featured-post{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem}
.view-compact .article-card.featured-post .featured-badge{position:static;display:inline-flex;width:auto;flex:0 0 auto;align-self:center;order:-1;padding:.25rem .6rem;font-size:.65rem;letter-spacing:.06em}
.view-compact .article-card.featured-post .article-body{flex:1;min-width:0}
.view-compact .article-card.has-image{padding:.85rem 1.25rem;gap:.85rem;align-items:center}
.view-compact .article-card.has-image .article-image{width:44px;height:44px;flex:0 0 44px;border-radius:10px;box-shadow:3px 3px 0 0 rgba(63,81,181,.18);transition:none}
.view-compact .article-card.has-image:hover .article-image{transform:none;box-shadow:3px 3px 0 0 rgba(63,81,181,.22);filter:none}
.view-compact .article-card.has-image .article-body{flex:1;min-width:0;padding:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-direction:row}
.view-compact .article-card.has-image .article-body h3{font-size:1rem;font-weight:700}
.view-compact .article-card.has-image .article-body .text-link i{transform:none !important}
.view-compact .article-card.has-image.featured-post .article-image{box-shadow:3px 3px 0 0 rgba(212,160,23,.4)}
@media (max-width:575.98px){
  .article-card.has-image{padding:1.2rem 1.3rem;gap:1rem}
  .article-card.has-image .article-image{width:88px;height:88px;flex:0 0 88px;border-radius:14px;box-shadow:5px 5px 0 0 rgba(63,81,181,.16),0 4px 12px rgba(20,40,92,.08)}
  .article-card.has-image:hover .article-image{box-shadow:7px 7px 0 0 rgba(63,81,181,.24),0 6px 14px rgba(20,40,92,.12)}
  .article-card.has-image.featured-post{padding-right:1.3rem}
  .article-card.has-image.featured-post .featured-badge{top:.5rem;right:.5rem;font-size:.6rem;padding:.2rem .5rem}
  .article-card.has-image .article-body h3{font-size:1.05rem;padding-right:0}
  .article-card.has-image .article-body p{font-size:.92rem;line-height:1.55}
}
@keyframes floatGlow{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-18px,-20px,0) scale(1.05)}}
@media (prefers-reduced-motion:reduce){.parallax-layer,.parallax-glow,[data-aos]{animation:none!important;transition:none!important;transform:none!important}}
@media (max-width:991.98px){.parallax-glow{width:18rem;height:18rem;right:-6rem;bottom:-7rem}}
.page-transition{position:fixed;inset:0;z-index:2000;pointer-events:none;overflow:hidden}
.page-transition img {position: absolute;z-index: 10;left: 50%;margin: -45px 0 0 -45px;top: 50%;background-color: #FFF;padding: 2px 10px;width: 90px;border-radius: 10px;box-shadow: 0 0 32px rgba(0,0,0,.42);opacity:0}
.page-transition__overlay,.page-transition__line{position:absolute;inset:0;opacity:1;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.page-transition__overlay { background: rgba(255, 255, 255, 0.5); }
.page-transition__line{inset:auto 0 0;height:4px;background:linear-gradient(90deg,transparent 0%,rgba(116,199,218,.5) 20%,white 50%,rgba(63,81,181,.55) 78%,transparent 100%);box-shadow:0 0 32px rgba(116,199,218,.42)}
body.is-ready .page-transition__overlay,body.is-ready .page-transition__line,body.is-ready .page-transition img{opacity:0}
body.is-transitioning-out .page-transition__overlay,body.is-transitioning-out .page-transition__line,body.is-transitioning-out .page-transition img{opacity:1}
.card,.table,.accordion-item,.modal-content{border:1px solid rgba(63,81,181,.08);border-radius:22px;box-shadow:0 18px 40px rgba(20,40,92,.06)}
.accordion-button{border-radius:18px!important;font-weight:800;color:#182235;background:linear-gradient(180deg,#ffffff,#f7faff)}
.accordion-button:not(.collapsed){color:#1f2d76;background:linear-gradient(135deg,rgba(238,242,255,.95),rgba(230,247,251,.95));box-shadow:none}
.accordion-button:focus{box-shadow:0 0 0 .25rem rgba(63,81,181,.12)}
.badge{border-radius:999px;padding:.55em .85em;font-weight:700}
.nav-pills .nav-link{border-radius:999px;font-weight:800;color:#182235;background:rgba(63,81,181,.06)}
.nav-pills .nav-link.active{background:linear-gradient(135deg,#3f51b5 0%,#355dc0 44%,#3fa9c4 100%);color:#fff}
.table thead th{color:#1f2d76;border-bottom-color:rgba(63,81,181,.12);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.topbar-color-picker .topbar-picker-label{color:inherit;opacity:.85;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.7rem}
.topbar-swatch{width:20px;height:20px;border-radius:5px;border:2px solid rgba(255,255,255,.45);cursor:pointer;padding:0;display:inline-block;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.topbar-swatch:hover{transform:scale(1.15)}
.topbar-swatch.active{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.35)}
.topbar-swatch[data-color="black"]{background:#0a0a0a}
.topbar-swatch[data-color="orange"]{background:linear-gradient(135deg,#ff8c00,#ff6b00)}
.topbar-swatch[data-color="white"]{background:#fff;border-color:rgba(0,0,0,.18)}
.topbar-swatch[data-color="blue"]{background:linear-gradient(135deg,#1f2d76,#3f51b5)}
.topbar[data-theme="white"] .topbar-picker-label,.topbar[data-theme="white"] .topbar-link{color:#182235 !important}
.topbar[data-theme="white"] .topbar-swatch{border-color:rgba(0,0,0,.25)}
.topbar[data-theme="white"] .topbar-swatch.active{border-color:#182235;box-shadow:0 0 0 2px rgba(24,34,53,.20)}

/* ============================================================
   Hero — Round 2 (V1 Faithful + Aux template)
   Landscape multi-layer + ambient drift + scroll parallax
   Production HTML uses: .lh-hero / .lh-hero--aux / .lh-aux--{env|safety|transportation|default}
   ============================================================ */
.lh-hero{ position:relative; overflow:hidden; min-height:720px; display:flex; flex-direction:column; justify-content:flex-end; color:#fff; font-family:'Inter',sans-serif; background:#0f1d49; isolation:isolate; }
.lh-hero--aux{ min-height:460px; }
.lh-hero h1{ font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-.025em; color:#fff; }
.landscape-stack{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.landscape-stack .ls-layer{ position:absolute; inset:0; will-change:transform; opacity:0; background:none; }
.landscape-stack .ls-drift{ position:absolute; inset:-3%; background-size:cover; background-position:center; will-change:transform; }
.landscape-stack .ls-sky .ls-drift{ inset:-5%; }
.landscape-stack .ls-veg{ z-index:1; }
.landscape-stack .ls-veg .ls-drift{ -webkit-mask-image:linear-gradient(180deg,transparent 56%,#000 76%,#000 100%); mask-image:linear-gradient(180deg,transparent 56%,#000 76%,#000 100%); background-position:center bottom; filter:saturate(1.05) brightness(.98); }
.ls-scrim{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.ls-scrim--left{ background:linear-gradient(90deg,rgba(15,29,73,.94) 0%,rgba(15,29,73,.90) 22%,rgba(15,29,73,.55) 42%,rgba(15,29,73,0) 62%),linear-gradient(180deg,rgba(15,29,73,.18) 0%,transparent 14%,transparent 78%,rgba(15,29,73,.55) 100%); }
.ls-scrim--floor{ background:linear-gradient(0deg,rgba(15,29,73,.94) 0%,rgba(15,29,73,.78) 14%,rgba(15,29,73,.45) 30%,rgba(15,29,73,0) 55%),linear-gradient(90deg,rgba(15,29,73,.42) 0%,rgba(15,29,73,.18) 26%,transparent 48%); }
.ls-scrim--center{ background:radial-gradient(ellipse 60% 52% at 50% 46%,rgba(15,29,73,.86) 0%,rgba(15,29,73,.62) 35%,rgba(15,29,73,.18) 58%,transparent 72%),linear-gradient(180deg,rgba(15,29,73,.22) 0%,transparent 18%,transparent 80%,rgba(15,29,73,.55) 100%); }
.landscape-stack .ls-sky{ animation:ls-enter-sky 1.15s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:60ms; }
.landscape-stack .ls-veg{ animation:ls-enter-veg 1.15s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:320ms; }
@keyframes ls-enter-sky{ from{ opacity:0; transform:scale(1.045); } to{ opacity:1; transform:scale(1); } }
@keyframes ls-enter-veg{ from{ opacity:0; transform:translate3d(0,24px,0); } to{ opacity:1; transform:translate3d(0,0,0); } }
.lh-hero .stagger{ opacity:0; transform:translate3d(0,14px,0); animation:lh-text-enter .8s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:calc(110ms * var(--si,1) + 720ms); }
@keyframes lh-text-enter{ to{ opacity:1; transform:translate3d(0,0,0); } }
@keyframes drift-a{ 0%,100%{ transform:translate3d(0,0,0) scale(1.00); } 50%{ transform:translate3d(-6px,-3px,0) scale(1.008); } }
@keyframes drift-b{ 0%,100%{ transform:translate3d(0,0,0) scale(1.00); } 50%{ transform:translate3d(8px,4px,0) scale(1.006); } }
.drift-a{ animation:drift-a 34s ease-in-out infinite; animation-delay:1.2s; }
.drift-b{ animation:drift-b 28s ease-in-out infinite; animation-delay:1.4s; }
@media (prefers-reduced-motion:reduce){ .lh-hero .stagger, .landscape-stack .ls-layer, .landscape-stack .ls-drift{ animation:none !important; opacity:1 !important; transform:none !important; } }
.lh-container{ position:relative; z-index:5; max-width:1280px; margin:0 auto; width:100%; padding:9rem 2.5rem 5rem; flex:1 1 auto; display:flex; align-items:center; }
.lh-container--center{ justify-content:center; padding-bottom:6rem; }
.lh-container--floor{ align-items:flex-end; padding-bottom:4rem; }
.lh-container--aux{ padding:7rem 2.5rem 3.5rem; align-items:flex-end; }
.lh-copy{ max-width:600px; }
.lh-copy--bottom{ max-width:640px; }
.lh-copy--center{ max-width:760px; text-align:center; }
.lh-eyebrow{ display:inline-flex; align-items:center; gap:.65rem; text-transform:uppercase; letter-spacing:.16em; font-size:.74rem; font-weight:800; color:rgba(255,255,255,.86); margin-bottom:1.4rem; }
.lh-eyebrow .eyebrow-dot{ width:6px; height:6px; border-radius:50%; background:#3FA9C4; box-shadow:0 0 0 4px rgba(63,169,196,.18); }
.lh-eyebrow--center{ width:100%; justify-content:center; gap:.9rem; }
.lh-eyebrow--center .eyebrow-line{ flex:0 0 56px; height:1px; background:rgba(255,255,255,.30); }
.lh-headline{ font-size:clamp(2.6rem,4.8vw,4.6rem); line-height:1.04; margin:0 0 1.4rem; text-wrap:balance; color:#fff; }
.lh-headline--lg{ font-size:clamp(3.2rem,6vw,6rem); line-height:1; }
.lh-headline--center{ font-size:clamp(2.6rem,4.6vw,4.4rem); }
.lh-headline--aux{ font-size:clamp(2.2rem,3.6vw,3.4rem); margin-bottom:1rem; }
.lh-headline .lh-line{ display:block; }
.lh-headline .lh-accent{ color:#5BC0DE; background:linear-gradient(135deg,#74C7DA 0%,#3FA9C4 70%,#2A8DA8 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; display:inline; }
.lh-headline--center .lh-accent{ display:inline; padding:0 .12em; }
.lh-rule{ display:block; width:84px; height:3px; border-radius:2px; background:linear-gradient(90deg,#3FA9C4 0%,#74C7DA 100%); margin:0 0 1.5rem; }
.lh-lead{ font-size:1.06rem; line-height:1.65; color:rgba(255,255,255,.88); max-width:52ch; margin:0 0 1.8rem; text-wrap:pretty; }
.lh-lead--center{ margin-left:auto; margin-right:auto; }
.lh-cta{ display:inline-flex; align-items:center; gap:.85rem; padding:1.05rem 1.7rem; background:linear-gradient(135deg,#3F51B5 0%,#3FA9C4 100%); color:#fff; font-family:'Manrope',sans-serif; font-weight:800; font-size:.94rem; letter-spacing:.04em; text-transform:uppercase; text-decoration:none; border-radius:6px; box-shadow:0 14px 30px rgba(20,40,92,.36),inset 0 1px 0 rgba(255,255,255,.22); position:relative; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease,filter .25s ease; }
.lh-cta:hover{ transform:translateY(-2px); box-shadow:0 22px 38px rgba(20,40,92,.42),inset 0 1px 0 rgba(255,255,255,.30); filter:brightness(1.04); color:#fff; }
.lh-cta i.bi-arrow-right{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:4px; background:rgba(255,255,255,.14); font-size:.9rem; transition:transform .25s ease,background .25s ease; }
.lh-cta:hover i.bi-arrow-right{ transform:translateX(4px); background:rgba(255,255,255,.22); }
.lh-cta--ghost{ background:transparent; border:1px solid rgba(255,255,255,.38); box-shadow:none; color:#fff; }
.lh-cta--ghost:hover{ background:rgba(255,255,255,.10); filter:none; color:#fff; }
.lh-cta-row{ display:flex; flex-wrap:wrap; gap:.9rem; }
.lh-crumb{ display:flex; align-items:center; gap:.45rem; font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:1.1rem; }
.crumb-cell{ display:inline-flex; align-items:center; gap:.45rem; }
.lh-crumb i{ font-size:.65rem; opacity:.5; }
.lh-crumb .crumb-cell:last-child > span{ color:#fff; }
.services-blade{ position:relative; z-index:6; width:100%; margin-top:-1px; }
.blade-seam{ display:block; width:100%; height:56px; margin-bottom:-2px; }
.blade-body{ background:linear-gradient(180deg,#152C5C 0%,#0F1D49 100%); border-top:1px solid rgba(116,199,218,.10); }
.blade-inner{ max-width:1280px; margin:0 auto; padding:1.4rem 2.5rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.blade-cell{ display:flex; align-items:center; justify-content:center; gap:1.5rem; flex:1 1 0; }
.blade-cell .blade-item{ flex:0 1 auto; }
.blade-item{ display:flex; align-items:center; gap:.85rem; color:#fff; }
.blade-rule{ width:1px; height:34px; background:rgba(255,255,255,.16); justify-self:center; }
.blade-icon{ width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:rgba(63,169,196,.16); color:#74C7DA; font-size:1.1rem; }
.blade-icon i{ line-height:1; }
.blade-text{ display:flex; flex-direction:column; line-height:1.15; }
.blade-text strong{ font-family:'Manrope',sans-serif; font-weight:800; font-size:.92rem; color:#fff; }
.blade-text small{ font-size:.76rem; color:rgba(255,255,255,.6); letter-spacing:.02em; }
.services-blade--flat .blade-seam{ display:none; }
.services-blade--flat .blade-inner{ display:grid; grid-template-columns:1fr 1fr; gap:.75rem; padding:1rem 1.25rem; }
.services-blade--flat .blade-rule{ display:none; }
/* Bleed hero up under sticky navbar (used on index.html main hero). */
.lh-hero--bleed-top{ margin-top: -78px; }
@media (max-width: 991.98px){ .lh-hero--bleed-top{ margin-top: -64px; } }

.lh-aux--environmental .ls-veg .ls-drift{ filter:saturate(1.1) hue-rotate(4deg) brightness(.98); }
.lh-aux--safety .ls-veg .ls-drift{ filter:saturate(.85) hue-rotate(-18deg) brightness(.92); }
.lh-aux--transportation .ls-veg .ls-drift{ filter:saturate(.78) hue-rotate(-32deg) brightness(.86); }

/* V1 mobile + tablet responsive overrides */
@media (max-width:991.98px){
  .lh-hero{ min-height:640px; }
  .lh-hero--aux{ min-height:420px; }
  .lh-container{ padding:7rem 1.5rem 4rem; }
  .lh-container--aux{ padding:6rem 1.5rem 3rem; }
  .blade-inner{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; padding:1.2rem 1.5rem; }
  .blade-rule{ display:none; }
}
@media (max-width:575.98px){
  .lh-hero{ min-height:580px; }
  .lh-container{ padding:5.5rem 1.25rem 3.5rem; }
  .lh-container--aux{ padding:5rem 1.25rem 2.5rem; }
  .lh-headline{ font-size:2.2rem; line-height:1.06; }
  .lh-headline--aux{ font-size:2rem; }
  .blade-inner{ grid-template-columns:1fr; gap:.85rem; padding:1rem 1.25rem; }
}

/* Cream aux variant — same V1 idiom (landscape + scrim + ambient + parallax),
   warm orange/cream scrim instead of navy. Used on pages that originally had
   bg-cream: services, resources, blog, blog-post. */
.lh-hero--cream{ color:#182235; }
.lh-hero--cream .ls-scrim--left{
  background:
    linear-gradient(90deg,
      rgba(255,200,112,.94) 0%,
      rgba(255,200,112,.88) 24%,
      rgba(255,224,168,.55) 44%,
      rgba(255,224,168,0)   64%),
    linear-gradient(180deg,
      rgba(255,166,77,.18) 0%,
      transparent 14%,
      transparent 78%,
      rgba(255,166,77,.42) 100%);
}
.lh-hero--cream .ls-drift{ filter:saturate(.9) hue-rotate(-20deg) brightness(1.02); }
.lh-hero--cream h1, .lh-hero--cream .lh-headline{ color:#182235; }
.lh-hero--cream .lh-lead{ color:rgba(24,34,53,.82); }
.lh-hero--cream .lh-eyebrow{ color:rgba(24,34,53,.7); }
.lh-hero--cream .lh-eyebrow .eyebrow-dot{ background:#B85C00; box-shadow:0 0 0 4px rgba(184,92,0,.22); }
.lh-hero--cream .lh-crumb{ color:rgba(24,34,53,.55); }
.lh-hero--cream .lh-crumb .crumb-cell:last-child > span{ color:#182235; }
.lh-hero--cream .lh-crumb a{ color:inherit !important; }
.lh-hero--cream .lh-rule{ background:linear-gradient(90deg,#FF8C00 0%,#FFA64D 100%); }
.lh-hero--cream .lh-headline .lh-accent{
  background:linear-gradient(135deg,#B85C00 0%,#FFA64D 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}

/* ==========================================================================
   Paginação — marcação Bootstrap de blog.html, cores do tema.
   O padrão do Bootstrap traz azul #0d6efd e cantos de 6px; aqui alinha com
   --bs-primary (#3f51b5), o radius de 1rem e a sombra usada nos cards.
   ========================================================================== */
.pagination{ gap:.4rem; flex-wrap:wrap; }
.pagination .page-item{ margin:0; }
.pagination .page-link{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:2.75rem; height:2.75rem; padding:0 .85rem;
  border:1px solid rgba(63,81,181,.16);
  border-radius:.85rem;
  background:rgba(255,255,255,.86);
  color:#3f51b5;
  font-weight:600; font-size:.95rem; line-height:1;
  text-decoration:none;
  transition:background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.pagination .page-link:hover{
  background:rgba(63,81,181,.07);
  border-color:rgba(63,81,181,.32);
  color:#2f3f9e;
  transform:translateY(-1px);
}
.pagination .page-link:focus-visible{
  outline:none;
  border-color:rgba(63,81,181,.45);
  box-shadow:0 0 0 .25rem rgba(63,81,181,.15);
}
.pagination .page-item.active .page-link{
  background:linear-gradient(135deg,#3f51b5 0%,#355dc0 44%,#3fa9c4 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 26px rgba(52,89,191,.22);
}
.pagination .page-item.disabled .page-link{
  background:rgba(255,255,255,.5);
  border-color:rgba(38,67,135,.09);
  color:#93a0b8;
  cursor:default; transform:none; box-shadow:none;
}
/* As reticências não são um controle: sem borda nem fundo. */
.pagination .page-item.disabled .page-link[aria-hidden="true"]{
  background:transparent; border-color:transparent; min-width:1.5rem; padding:0;
}
@media (max-width:575.98px){
  /* Controles menores em telas estreitas; o flex-wrap acima cuida da quebra. */
  .pagination .page-link{ min-width:2.4rem; height:2.4rem; padding:0 .6rem; font-size:.9rem; }
}

/* O título do card virou link (o site estático tinha só texto no <h3>).
   Este bloco devolve a aparência original — cor do corpo, sem sublinhado —
   mantendo o título clicável. O hover fica por conta do card, que já tem
   translateY(-6px). */
.article-card h3 a{ color:inherit; text-decoration:none; }
.article-card h3 a:hover,.article-card h3 a:focus-visible{ color:inherit; text-decoration:none; }
/* A regra global de "main a" desenha um sublinhado gradiente animado via
   ::after. No título do card isso não existia — desliga. */
.article-card h3 a::after{ content:none !important; }

/* ==========================================================================
   Contact Form 7 — ajustes para o markup do plugin caber no grid do desenho.
   ========================================================================== */
/* O CF7 envolve cada campo num <span> inline; sem isto o .form-control não
   ocupa a largura da coluna. */
.wpcf7-form-control-wrap{ display:block; }
/* O CF7 injeta um <p> de resposta e uma <div> de status no fim do form. */
.wpcf7 form .wpcf7-response-output{
  margin:1rem 0 0; padding:.85rem 1.1rem; border-radius:.85rem; border-width:1px;
}
.wpcf7-not-valid-tip{ font-size:.85rem; margin-top:.35rem; }
/* O spinner do CF7 só é escondido com visibility:hidden e mantém 24px de
   largura + 24px de margem de cada lado — dentro do .d-flex.gap-3 isso abria
   ~100px entre "Submit Inquiry" e "Email Directly". O formulário usa um
   <button> próprio, então nem deveria existir; a regra fica como rede de
   segurança caso um [submit] volte ao template. */
.wpcf7-spinner{ display:none; }
.wpcf7-form.submitting .wpcf7-spinner{ display:inline-block; margin:0 0 0 .75rem; }
/* Honeypot: fora da tela em vez de display:none, que parte dos bots detecta.
   aria-hidden + tabindex -1 no HTML mantêm fora do leitor de tela e do teclado. */
.jem-hp{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;
}

/* O .content-card não levanta no hover em página nenhuma: a regra geral aplica
   translateY(-6px), e passar o mouse sobre um bloco de texto longo movia o
   parágrafo que a pessoa está lendo. Restaura a sombra base da linha 94.
   Os demais cards (service, resource, article…) continuam com o efeito — lá ele
   sinaliza que o bloco é clicável. */
.content-card:hover{
  transform:none;
  box-shadow:0 18px 44px rgba(20,40,92,.09);
}
/* No post de notícia os stack-card do aside também são texto, não atalho. */
body.jem-no-anim main .stack-card:hover{
  transform:none;
  box-shadow:0 18px 44px rgba(20,40,92,.09);
}

/* As grades de sub-serviço transbordavam sobre o rodapé: o AOS parte de
   translate3d(0,100px,0), que empurra o card para fora da seção antes de animar.
   O jem-no-anim já remove o data-aos nessas páginas; o overflow é a garantia de
   que nada mais escape da seção. */
body.jem-services main .section-shell{ overflow:hidden; }

/* Spinner da transição de página, no lugar do jem_loader.gif (186 KB / 24
   frames). O <img> antigo continua estilizado acima caso volte; este bloco é
   o que vale agora. Respeita prefers-reduced-motion. */
.page-transition__spinner{
  position:absolute; z-index:10; left:50%; top:50%;
  width:44px; height:44px; margin:-22px 0 0 -22px;
  border:3px solid rgba(63,81,181,.18);
  border-top-color:#3f51b5;
  border-radius:50%;
  opacity:0;
  animation:jem-spin .8s linear infinite;
}
body.is-transitioning-out .page-transition__spinner{ opacity:1; }
body.is-ready .page-transition__spinner{ opacity:0; }
@keyframes jem-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){
  .page-transition__spinner{ animation:none; border-top-color:rgba(63,81,181,.18); }
}
