blob: 859f5428bee1e35d7e224844f5c313a2e0e757db [file]
/**
* 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%;
}
}