/* V31: layout integrity and Classic geometric lines. */
/* Decorative background canvases MUST NOT join the card's content flow. */
.particle-host{position:relative}
.particle-host>canvas.particle-window,.ida-v28-illuminated>canvas.particle-window{
 position:absolute!important;inset:0!important;display:block!important;
 width:100%!important;height:100%!important;margin:0!important;padding:0!important;
 z-index:0!important;pointer-events:none!important
}
.ida-v28-illuminated>.ida-v16-edge,
.ida-v28-illuminated>.ida-v17-trace-svg,
.ida-v28-illuminated>.ida-v18-trace-svg{position:absolute!important;inset:0!important;pointer-events:none!important}
/* Natural height rather than forced equal-height columns. */
.service-grid,.pro-grid,.pricing-grid,.why-benefits,.automation-benefits{
 align-items:start!important;grid-auto-rows:max-content
}
.service-grid>.service-card,.pro-grid>.pro-card,
.pricing-grid>.price-card,.why-benefits>.why-benefit{
 height:auto!important;min-height:0!important;align-self:start!important
}
.service-card .text-link,.price-card>.btn{margin-top:16px!important}
.service-card p{margin-bottom:12px!important}
.price-card>p{min-height:0!important}
.price-card ul{margin-bottom:16px!important}
/* V28 and V30 relied on two competing observers to reveal text. A missed
 * observer left invisible lettering occupying a normal-sized box.
 * Content is now always opaque; entrance motion uses transform only. */
html .ida-v28-reveal,html .ida-v30-heading{
 opacity:1!important;translate:none!important;filter:none!important;
 transition:color .4s,text-shadow .55s!important
}
html .ida-v30-heading.ida-v30-visible{animation:ida-v31-title 1.3s cubic-bezier(.23,.77,.29,1) both}
@keyframes ida-v31-title{from{transform:translateY(7px)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 html .ida-v30-heading.ida-v30-visible{animation:none!important;transform:none!important}
}
/* Remove all three independent families of stars in Classic only. */
html[data-theme="ivory"] .ida-v27-stardust,
html[data-theme="ivory"] .ida-v27-star,
html[data-theme="ivory"] .ida-v20-sparkfield,
html[data-theme="ivory"] canvas.particle-window,
html[data-theme="ivory"] .ida-v25-nav-stars,
html[data-theme="ivory"] .ida-v25-click-spark{display:none!important}
#ida-v31-geometry{
 position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;
 z-index:2;pointer-events:none!important;overflow:hidden;display:none;
 color:#fff;opacity:.68;filter:drop-shadow(0 0 .6px rgba(54,61,75,.30))
}
html[data-theme="ivory"] #ida-v31-geometry{display:block}
#ida-v31-geometry path{
 fill:none;stroke:#fff;stroke-width:.65px;stroke-linejoin:round;stroke-linecap:round;
 vector-effect:non-scaling-stroke;opacity:var(--thread-alpha,.66)
}
@media print{#ida-v31-geometry{display:none!important}}
@media(forced-colors:active){#ida-v31-geometry{display:none!important}}
