/* Application forms and accessibility additions to the supplied design. */
html { scrollbar-gutter: stable; }
img[loading="lazy"] { height: auto; }
.particles-container { overflow: hidden; pointer-events: none; }
.particle.is-ambient {
    opacity: var(--particle-opacity);
    animation: affiliate-particle-float var(--particle-duration) linear infinite;
    animation-play-state: paused;
}
.particles-container.is-visible .particle.is-ambient { animation-play-state: running; }
.particle.is-trail { animation: affiliate-particle-trail 2s ease-out forwards; }
@keyframes affiliate-particle-float {
    0% { transform: translate(0, 20px); opacity: 0; }
    20%, 75% { opacity: var(--particle-opacity); }
    100% { transform: translate(var(--particle-drift), -100px); opacity: 0; }
}
@keyframes affiliate-particle-trail {
    from { transform: translate(0, 0); opacity: .5; }
    to { transform: translate(15px, -25px); opacity: 0; }
}
button.btn { border: 0; }
.btn, .dialog-close, .captcha-refresh, .login-form input, .burgermenu,
.join-form .btn-register { box-shadow: none; }
.header_nav_row .btn_wrap { gap: 10px; }
.header_nav_row .btn_wrap > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 108px;
    min-height: 46px;
    padding: 12px 24px;
    font-size: 15px;
    line-height: 1.2;
}
.header_nav_row .nav { font-size: clamp(13px, .75vw, 17px); }
body.dialog-open, body.body_hidden { overflow: hidden; }
body.body_hidden .burgermenu, body.body_hidden .btnTotop,
body.body_hidden .floating_btn_wrap { visibility: hidden; }
.cover .menu_con .menu_header { position: relative; }
.menu-close {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    display: grid; place-items: center; width: 40px; height: 40px; padding: 0;
    border: 1px solid #7d6836; border-radius: 6px; background: #171717;
    color: #f5d88c; font-size: 24px; line-height: 1; box-shadow: none;
}
.faq-section .faq-list .faq-item .faq-question { padding-right: 50px; }
.menu_btn .burgermenu span { position: relative; border: 0; height: 2px; background: #e4ce85; }
.menu_btn .burgermenu span::before, .menu_btn .burgermenu span::after {
    position: absolute; left: 0; animation: none; transition: transform .25s;
}
.menu_btn .burgermenu span::before { transform: translateY(-8px); }
.menu_btn .burgermenu span::after { transform: translateY(8px); }
.menu_btn .burgermenu.opened span { background: transparent; }
.menu_btn .burgermenu.opened span::before { transform: rotate(45deg); }
.menu_btn .burgermenu.opened span::after { transform: rotate(-45deg); }
.section-anchor { position: absolute; top: 0; scroll-margin-top: 100px; }
.slide_bg, #contact { scroll-margin-top: 90px; }
.no-aos [data-aos] { opacity: 1 !important; transform: none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid #f5d88c;
    outline-offset: 5px;
}
.cta-btn { display: inline-block; text-decoration: none; }
.join-form input:invalid:not(:placeholder-shown) { border-color: #e98383; }
.form-status {
    padding: 14px 18px;
    margin: 0 0 24px;
    border: 1px solid #af5858;
    border-radius: 8px;
    background: #321b1b;
    color: #ffd2d2;
    font-size: 14px;
    line-height: 1.6;
    white-space: pre-line;
    text-align: left;
    scroll-margin-top: 110px;
}
.form-status.is-success { border-color: #678e61; background: #1b2c1c; color: #cfe9c9; }
.join-form .btn-register:disabled { opacity: .65; cursor: wait; }
.affiliate-dialog {
    margin: auto;
    width: min(clamp(480px, 28vw, 620px), calc(100% - 32px));
    max-width: calc(100% - 32px);
    max-height: calc(100dvh - 40px);
    padding: clamp(28px, 2vw, 40px);
    overflow-y: auto;
    color: #f7f2e6;
    background: linear-gradient(145deg, #25221a, #101010 70%);
    border: 1px solid #7d6836;
    border-radius: 16px;
    box-shadow: 0 25px 100px #000b;
}
.affiliate-dialog::backdrop { background: #000c; backdrop-filter: blur(6px); }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.dialog-heading h2 {
    font-size: clamp(28px, 1.5vw, 34px);
    color: #f5d88c;
    width: auto;
    max-width: none;
    text-align: left !important;
}
.dialog-eyebrow { margin-bottom: 8px; font-size: 12px; letter-spacing: .14em; color: #c0ac7b; }
.dialog-close, .captcha-refresh {
    border: 1px solid #675735;
    border-radius: 7px;
    background: #26221a;
    color: #f5d88c;
    cursor: pointer;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    padding: 0;
    width: 42px;
    height: 42px;
    font-size: 24px;
    line-height: 1;
}
.login-form { display: flex; flex-direction: column; gap: 12px; }
.login-form label { font-size: 16px; color: #d8ccaf; margin-bottom: 0; }
.login-form input {
    min-width: 0;
    width: 100%;
    min-height: 52px;
    margin-bottom: 8px;
    padding: 14px;
    background: #101010;
    border: 1px solid #4a4230;
    border-radius: 7px;
    color: #fff;
    font-size: 16px;
    box-shadow: none;
}
.login-form input:focus { border-color: #c5a663; outline: 2px solid #c5a663; outline-offset: 2px; }
.captcha-row { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.captcha-row input { flex: 1; margin: 0; }
.captcha-row img { flex-shrink: 0; border-radius: 3px; }
.login-form .login-submit { display: block; min-height: 52px; padding: 14px; font-size: 17px; box-shadow: none; }
.login-form .btn2 { display: block; }
.product-dialog { width: min(850px, calc(100% - 32px)); }
.product-dialog > img { display: block; width: 100%; max-height: 70vh; object-fit: contain; }
.menu_row[role=button] { cursor: pointer; }
@media (max-width: 860px) {
    .header_nav_row .btn_wrap > .btn { display: none; }
    .copyright { padding-bottom: 72px; }
    .join-form input { font-size: 16px !important; }
    .affiliate-dialog { padding: 24px; }
}
@media (min-width: 1920px) {
    .header_nav_row .btn_wrap > .btn { min-width: 124px; min-height: 50px; font-size: 17px; }
}
@media (max-width: 480px) {
    .affiliate-dialog { padding: 20px; }
    .dialog-heading { gap: 12px; }
    .dialog-heading h2 { font-size: 24px; }
    .dialog-eyebrow { font-size: 10px; letter-spacing: .1em; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
