         }
         
         let keyboardHeight = newKeyboardFrame?.height ?? viewController.keyboardFrame?.height ?? 0
-        let viewHeight = newViewSize?.height ?? viewController.view.bounds.height
         
         contentViewBottomConstraint?.constant = keyboardHeight
         
-        guard !shouldAlwaysPinToTop(newViewSize: newViewSize) else {
+        guard !shouldAlwaysPinToTop() else {
             displayMode = .full
             containerViewTopConstraint?.constant = containerPinnedTopSpacing
             return
         }
+        
+        let viewSize = newViewSize ?? viewController.view.bounds.size
+        let isLandscape = viewSize.height < viewSize.width
+        let topConstraintMultiplier = isLandscape ? 0.20 : 0.40
         
         switch displayMode {
         case .full:
             containerViewTopConstraint?.constant = containerPinnedTopSpacing
         case .partial:
-            containerViewTopConstraint?.constant = viewHeight * (0.40)
+            containerViewTopConstraint?.constant = viewSize.height * (topConstraintMultiplier)
         }
     }
     

                return
            }
            
            self.displayMode = .partial
            self.calculateLayout(in: viewController)
        }
        

        self.contentView = contentView
    }
    
    private func shouldAlwaysPinToTop() -> Bool {
        
        guard let viewController = viewController else {
            return false
        }
        
        return viewController.view.traitCollection.verticalSizeClass == .compact
    }
    
    @objc fileprivate func userDidPanContainerView(_ gestureRecognizer: UIPanGestureRecognizer) {
