﻿/* Сброс базовых стилей */
* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
}

/* Сброс outline для fieldset */
fieldset,
fieldset.form-field,
.form-field,
.field-with-gender {
    outline: none;
    outline-width: 0;
    outline-style: none;
    outline-color: transparent;
    -webkit-tap-highlight-color: transparent;
    border: none;
    box-shadow: none;
}

fieldset:focus,
fieldset:focus-visible,
fieldset:focus-within,
fieldset:active,
.form-field:focus,
.form-field:focus-visible,
.form-field:focus-within,
.form-field:active,
fieldset.form-field:focus,
fieldset.form-field:focus-visible,
fieldset.form-field:focus-within,
fieldset.form-field:active,
.field-with-gender:focus,
.field-with-gender:focus-visible,
.field-with-gender:focus-within,
.field-with-gender:active {
    outline: none;
    outline-width: 0;
    outline-style: none;
    outline-color: transparent;
    -webkit-tap-highlight-color: transparent;
    border: none;
    box-shadow: none;
}

/* Input reset */
input:not([class]),
textarea:not([class]),
select:not([class]),
button:not([class]) {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 0;
    box-shadow: none;
}

/* Сброс outline для checkbox */
input[type="checkbox"],
.checkbox-input {
    outline: none;
    outline-width: 0;
    outline-style: none;
    outline-color: transparent;
    outline-offset: 0;
    -webkit-tap-highlight-color: transparent;
}

input[type="checkbox"]:focus,
input[type="checkbox"]:focus-visible,
input[type="checkbox"]:focus-within,
input[type="checkbox"]:invalid,
input[type="checkbox"]:required,
input[type="checkbox"]:checked,
.checkbox-input:focus,
.checkbox-input:focus-visible,
.checkbox-input:focus-within,
.checkbox-input:invalid,
.checkbox-input:required,
.checkbox-input:checked {
    outline: none;
    outline-width: 0;
    outline-style: none;
    outline-color: transparent;
    outline-offset: 0;
    -webkit-tap-highlight-color: transparent;
}

/* Фиксированный размер checkbox в форме возврата */
.refund-form input[type="checkbox"]#refundConsent,
.refund-form input.checkbox-input#refundConsent {
    width: 25px;
    height: 25px;
    min-width: 25px;
    max-width: 25px;
    min-height: 25px;
    max-height: 25px;
    transform: none;
    scale: 1;
    flex-shrink: 0;
    flex-grow: 0;
    box-shadow: none;
}

/* Сброс outline для аккордеона */
.accordion,
.accordion-header,
[role="button"].accordion-header {
    outline: none;
    outline-width: 0;
    outline-style: none;
    outline-color: transparent;
    -webkit-tap-highlight-color: transparent;
}

.accordion:focus,
.accordion:focus-visible,
.accordion:focus-within,
.accordion:hover,
.accordion:active,
.accordion-header:focus,
.accordion-header:focus-visible,
.accordion-header:focus-within,
.accordion-header:hover,
.accordion-header:active {
    outline: none;
    outline-width: 0;
    outline-style: none;
    outline-color: transparent;
    -webkit-tap-highlight-color: transparent;
}

/* Предотвращение зума на iOS */
@media (max-width: 768px) {
    input[type="text"]:not(.field-input),
    input[type="email"]:not(.field-input),
    input[type="tel"]:not(.field-input),
    input[type="number"]:not(.field-input),
    input[type="date"]:not(.field-input),
    input[type="time"]:not(.field-input),
    input[type="datetime-local"]:not(.field-input),
    textarea:not(.field-input),
    select:not(.field-input) {
        font-size: 16px;
    }
    
    .field-input {
        font-size: max(16px, 1em);
    }
}

/* Text break protection */
.accordion-name,
.faq-question h3,
.author-name,
.review-header,
.accordion-header,
.accordion-title,
.accordion-desc,
.stat-label,
.stat-number {
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

/* Media elements */
img, svg, video, canvas {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Horizontal scroll protection */
body, header, main, section, footer {
    max-width: 100%;
    overflow-x: clip;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

/* Touch elements min size */
button, .btn, a.btn, .calc-button, .gender-btn, 
.accordion-header, 
.btn-payment-premium,
.btn-get-matrix, .btn-add-review, .btn-submit-review, .btn-close-success {
    min-height: 44px;
    min-width: 44px;
}

/* Button content centering */
button:not(.gender-btn),
.btn:not(.gender-btn),
a.btn:not(.gender-btn),
.calc-button {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* Button icons */
button svg,
.btn svg,
button .icon,
.btn .icon,
.calc-button-arrow,
.btn-arrow,
.btn-icon-3d {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
}

/* Touch devices optimization */
@media (hover: none) and (pointer: coarse) {
    button, .btn, a.btn, .accordion-header, .calc-button, 
    .gender-btn, input[type="submit"], input[type="button"] {
        touch-action: manipulation;
        -webkit-tap-highlight-color: rgba(139, 92, 246, 0.2);
    }
    
    body {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
}

/* Защита от горизонтального скролла на мобильных */
@media (max-width: 768px) {
    html, body {
        overflow-x: clip;
        margin: 0;
        padding: 0;
        width: 100%;
        max-width: 100%;
    }
    
    section {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        box-sizing: border-box;
    }
    
    .container {
        max-width: 100%;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
}
