| /** |
| * Mobile Modal Styles |
| * Ported from original css/utils.css (lines 475-571) |
| * Matches HystModal behavior exactly |
| */ |
| |
| /* Modal Container (HystModal equivalent) */ |
| .mobmenu { |
| position: fixed; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| z-index: 1000; |
| display: flex; |
| align-items: center; |
| justify-content: flex-start; |
| opacity: 1; |
| pointer-events: all; |
| } |
| |
| /* Modal Wrap (backdrop) */ |
| .mobmenuWrap { |
| position: fixed; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| background: rgba(0, 0, 0, 0.5); |
| z-index: 1; |
| } |
| |
| /* Modal Window (slides from left) */ |
| .mobmenuWindow { |
| position: fixed; |
| top: 0; |
| left: 0; |
| bottom: 0; |
| width: 240px; |
| background: #fff; |
| z-index: 2; |
| overflow-y: auto; |
| animation: slideInFromLeft 0.3s ease; |
| box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); |
| } |
| |
| @keyframes slideInFromLeft { |
| from { |
| transform: translateX(-100%); |
| } |
| to { |
| transform: translateX(0); |
| } |
| } |
| |
| /* Close Button */ |
| .mobmenuClose { |
| position: absolute; |
| top: 10px; |
| right: 10px; |
| width: 30px; |
| height: 30px; |
| border: none; |
| background: transparent; |
| cursor: pointer; |
| z-index: 10; |
| font-size: 0; |
| color: transparent; |
| } |
| |
| .mobmenuClose::before, |
| .mobmenuClose::after { |
| content: ''; |
| position: absolute; |
| top: 50%; |
| left: 50%; |
| width: 16px; |
| height: 2px; |
| background: #000; |
| } |
| |
| .mobmenuClose::before { |
| transform: translate(-50%, -50%) rotate(45deg); |
| } |
| |
| .mobmenuClose::after { |
| transform: translate(-50%, -50%) rotate(-45deg); |
| } |
| |
| /* Modal Content */ |
| .mobmenuContent { |
| padding: 20px 0; |
| min-height: 100vh; |
| min-height: 100dvh; /* Modern dynamic viewport height for mobile */ |
| } |
| |
| /* Logo */ |
| .mobmenuLogo { |
| margin: 20px auto 40px; |
| width: 100px; |
| display: block; |
| } |
| |
| .mobmenuLogo img { |
| display: block; |
| width: 100%; |
| height: auto; |
| } |
| |
| /* Menu */ |
| .mobmenuMenu { |
| font-size: 14px; |
| line-height: 1.3; |
| padding-bottom: 40px; |
| } |
| |
| .mobmenuMenu ul { |
| list-style: none; |
| margin: 0; |
| padding: 0; |
| } |
| |
| .mobmenuMenu > ul > li { |
| margin: 0; |
| padding: 0; |
| } |
| |
| .mobmenuMenu ul a { |
| display: block; |
| padding: 7px 30px; |
| color: #000; |
| text-decoration: none; |
| font-size: 14px; |
| line-height: 1.7; |
| border-bottom: 1px solid #f0f0f0; |
| } |
| |
| .mobmenuMenu ul a:hover { |
| color: #000; |
| text-decoration: none; |
| } |
| |
| /* Nested menu items */ |
| .mobmenuMenu li li a { |
| color: #6e6e6e; |
| font-size: 13px; |
| padding: 5px 25px 5px 40px; |
| } |
| |
| /* Accordion behavior */ |
| .mobmenuMenu ul ul { |
| height: 0; |
| overflow: hidden; |
| transition: height 0.3s ease; |
| } |
| |
| .mobmenuMenu li.isdefault ul { |
| height: auto; |
| } |
| |
| .mobmenuMenu .isopen ul { |
| height: auto; |
| } |
| |
| /* Parent with accordion */ |
| .mobmenuParent { |
| display: block; |
| position: relative; |
| } |
| |
| /* Accordion Opener (arrow) */ |
| .mobmenuOpener { |
| position: absolute; |
| top: 0; |
| right: 13px; |
| z-index: 10; |
| width: 33px; |
| height: 100%; |
| border: none; |
| background: transparent; |
| background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 0L11.1962 9L0.803848 9L6 0Z' fill='%23222222'/%3E%3C/svg%3E"); |
| background-repeat: no-repeat; |
| background-size: 10px 8px; |
| background-position: center center; |
| transform-origin: center center; |
| transform: rotate(180deg); |
| transition: transform 0.25s ease; |
| cursor: pointer; |
| } |
| |
| .isopen .mobmenuOpener { |
| transform: rotate(0deg); |
| } |
| |
| /* Download Button */ |
| .mobmenuButton { |
| width: auto; |
| margin: 15px 30px; |
| background: #0070cc; |
| color: #fff; |
| border-radius: 1rem; |
| padding: 0 20px; |
| height: 50px; |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| text-decoration: none; |
| font-size: 16px; |
| font-weight: 500; |
| transition: background 0.2s ease; |
| } |
| |
| .mobmenuButton:hover { |
| background: #0061b0; |
| color: #fff; |
| text-decoration: none; |
| } |
| |
| /* Mobile width adjustment */ |
| @media (max-width: 320px) { |
| .mobmenuWindow { |
| width: 100%; |
| } |
| } |