/* Shared completion pass: brand logos, a coherent icon family and useful motion. */
.ds2 .ui-icon{display:inline-block;vertical-align:middle;flex:0 0 auto;width:24px;height:24px;color:inherit}
.ds2 .button{gap:12px}
.ds2 .button .button-arrow{width:17px;height:17px;transition:transform 220ms var(--ease)}
.ds2 .button:hover .button-arrow{transform:translateX(3px)}
.ds2 .button>span{min-width:0}
.ds2 .feature-icon{display:block;margin-bottom:18px;width:30px;height:30px;color:var(--plum)}
.ds2 .pms-benefits>div{border-top:1px solid var(--border);padding-top:24px}
.ds2 .integration-benefits .feature-icon{color:var(--plum)}
.ds2 .integration-channels li{gap:12px;min-height:86px}
.ds2 .integration-channels .channel-logo{width:148px;height:38px;object-fit:contain;display:block;flex-shrink:0;max-width:100%}
.ds2 .integration-channels .airbnb-logo{width:126px;height:39px}
.ds2 .integration-channels .logo-tile,.ds2 .channels-sample .logo-tile{background:#fff;border:1px solid #e4dce3}
.ds2 .channels-sample .channel-mini{display:flex;justify-content:center;align-items:center;min-height:68px;padding:14px;border-radius:9px}
.ds2 .channels-sample .channel-logo{width:126px;height:30px;max-width:100%;object-fit:contain}
.ds2 .channels-sample .airbnb-logo{width:100px;height:31px}
.ds2 .product-tabs>button{display:flex;align-items:center;gap:12px}
.ds2 .product-tabs>button>.tab-icon{width:21px;height:21px;display:block;color:inherit}
.ds2 .product-tabs>button>.tab-label{display:block!important;font-size:13px;line-height:1.45;color:inherit;flex:1;text-align:left}
.ds2 .product-tabs>button[aria-selected=true]>.tab-icon{color:var(--pink)}
.ds2 .module-mark{display:flex;align-items:center;gap:10px;margin-bottom:22px;color:var(--plum)}
.ds2 .module-mark .eyebrow{margin:0;font-size:10px}
.ds2 .module-mark .ui-icon{width:22px;height:22px}
.ds2 .journey-tabs button{display:flex;align-items:center;justify-content:start;gap:12px}
.ds2 .journey-tabs button>.ui-icon{width:22px;height:22px;color:var(--pink)}
.ds2 .journey-tabs button>span{font-size:13px;color:inherit}
.ds2 .role-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:10px}
.ds2 .role-tabs .ui-icon{width:19px;height:19px}
.ds2 .ukraine-items .local-icon{width:26px;height:26px;margin-top:5px;color:var(--plum)}
.ds2 .migration-step-mark{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ds2 .migration-step-mark .ui-icon{width:27px;height:27px;color:var(--plum)}
.ds2 .migration-step-mark .migration-index{font-size:18px;color:var(--muted)}
.ds2 .audience-list .feature-icon{width:27px;height:27px;margin-bottom:18px}
.ds2 .integration-connector{position:relative;height:52px}
.ds2 .integration-connector>span{display:none}
.ds2 .integration-connector:before{content:'';position:absolute;top:6px;bottom:6px;left:50%;width:1px;background:currentColor;opacity:.35}
.ds2 .integration-connector:after{content:'';position:absolute;left:calc(50% - 3px);top:6px;width:7px;height:7px;border-radius:50%;background:var(--plum)}
.ds2 .integration-flow.is-in-view .integration-connector:after{animation:connection-run 900ms var(--ease) 2}
.ds2 .reading-progress{position:absolute;bottom:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--pink);pointer-events:none}
.ds2 .header nav a[aria-current=location]{text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:8px;text-decoration-thickness:2px}
.ds2 .motion-ready{opacity:1;transform:none}
.ds2 .motion-ready:not(.is-in-view){opacity:.01;transform:translateY(16px)}
.ds2 .motion-ready.is-in-view{animation:content-arrive 620ms var(--ease) both}
.ds2 .header{position:sticky}
.dark-edition .feature-icon,.dark-edition .integration-benefits .feature-icon,.dark-edition .module-mark,.dark-edition .ukraine-items .local-icon,.dark-edition .migration-step-mark .ui-icon{color:var(--pink)}
.dark-edition .integration-connector:after{background:var(--pink)}
.dark-edition .migration-step-mark .migration-index{color:var(--text-muted)}
.dark-edition .integration-channels .logo-tile,.dark-edition .channels-sample .logo-tile{background:#fffafc;border-color:#fffafc}
@keyframes content-arrive{from{opacity:.1;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes connection-run{from{transform:translateY(0);opacity:0}25%{opacity:1}to{transform:translateY(32px);opacity:0}}
@media(max-width:1100px){.ds2 .hero-v3 .hero-v2-actions .button{font-size:12px;padding-inline:10px;gap:8px}.dark-hero-actions .button{font-size:12px;padding-inline:12px;gap:8px}}
@media(max-width:767px){.ds2 .integration-channels li{min-height:80px;padding:16px 12px}.ds2 .integration-channels .booking-logo{width:124px}.ds2 .integration-channels .airbnb-logo{width:108px}.ds2 .integration-channels li:not(.logo-tile){font-size:13px;gap:8px}.ds2 .integration-channels li:not(.logo-tile) .ui-icon{width:20px;height:20px}.ds2 .role-tabs button{gap:7px;font-size:12px;padding-inline:10px}.ds2 .role-tabs .ui-icon{width:18px;height:18px}.ds2 .journey-tabs button{min-width:160px}.ds2 .migration-step-mark{grid-row:1/3;flex-direction:column;align-items:start;justify-content:start;gap:12px}.ds2 .migration-path article{grid-template-columns:38px 1fr}.ds2 .hero-v3 .hero-v2-actions .button,.dark-hero-actions .button{font-size:14px;padding:14px 18px;gap:12px}.ds2 .feature-icon{margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){.ds2 .motion-ready:not(.is-in-view){opacity:1;transform:none}.ds2 .motion-ready.is-in-view,.ds2 .integration-flow.is-in-view .integration-connector:after{animation:none!important}.ds2 .button .button-arrow{transition:none!important}}
.ds2.end-in-view .mobile-cta{display:none}
