:root {
    --main-bg-color: #111111;
    --main-text-color: #FFFFFF;
    --add-text-color: #000000;
    --accent-color: #FF6F61;
    --highlight-color: #50ade5;
    --darker-color: #3871c1;
    --border-radius: 5px;
    --font-family: 'Montserrat';
    --header-bg-gradient: linear-gradient(to top right, var(--highlight-color), var(--darker-color));
    --font-size-small: 10px;
    --font-size-medium: 12px;
    --font-size-large: 14px;
}
    
html, body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}
    
body {
    font-family: var(--font-family);
    line-height: 1.5;
    font-size: var(--font-size-large);
    color: var(--main-text-color);
    background-color: var(--main-bg-color);
    overflow-x: hidden;
}
    
/* 1 - Контейнер для усіх елементів, крім футеру */
.container {
    display: flex;
    flex-wrap: wrap;
    min-height: 100vh;
    background-color: var(--main-bg-color);
    width: 100%;
    overflow: hidden;
}

/* 1.2 - Бічна секція */
.aside {
    display: flex;
    /*flex: 1;*/
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    min-height: 200vh;
    padding: 0;
    margin: 0;
    /*background-color: var(--highlight-color);*/
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}

/* 34 - Таблиця з інформацією */
.table-block {
    /*flex-grow: 1;*/
    width: 100%;
    height: 100%;
    padding-top: 10px;
    margin-bottom: 10px;
    box-sizing: border-box;
    overflow: hidden;
    background-color: var(--highlight-color);
}

.table-header p {
    text-align: center;
    color: var(--add-text-color);
    font-weight: bold;
    font-size: var(--font-size-medium);
    margin: 0;
    padding: 0;
}

table {
    width: 100%;
    max-width: 100%;
    padding: 0 5px;
    margin: 0;
    justify-content: center;
    align-items: center;
    border-collapse: collapse;
    color: var(--add-text-color);
    font-size: var(--font-size-medium);
    font-weight: bolder;
    overflow-x: hidden;
    display: flex;
}

th, td {
    border: none;
    padding: 1px 4px;
    text-align: center;
}

/* 2 - Блок з калькулятором */
.calc {
    /*flex: 2;*/
    /*flex-grow: 5;*/
    line-height: 1.25;
    width: 100%;
    height: 100%;
    padding: 5px;
    margin: 0;
    background-color: var(--main-bg-color);
    display: block;
    border: 1px solid var(--highlight-color);
    border-radius: var(--border-radius);
    box-sizing: border-box;
    overflow: hidden;
}
    
.calc-header {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--accent-color);
    border-radius: var(--border-radius);
    margin: 5px;
}
    
.calc-header p {
    text-align: center;
    color: var(--add-text-color);
    font-weight: bold;
    font-size: var(--font-size-large);
}
    
.calculationFields {
    padding: 0 5px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #FF6F61;
}
    
.film-field {
    display: flex;
    flex-direction: column;
    background-color: var(--main-bg-color);
    padding: 5px 0;
    justify-content: center;
    width: 100%;
}

/* Поля введення та вибору */
.film-field input,
.film-field select {
    width: 120%;
    height: 1.25rem;
    line-height: 1.25rem;
    box-sizing: border-box;
    background-color: var(--main-bg-color);
    border: 1px solid var(--accent-color);
    border-radius: 3px;
    text-align: left;
    font-size: var(--font-size-medium);
    color: #999999; /* Сірий текст за замовчуванням */
    padding-left: 2px;
}

.film-field .length::placeholder {
    color: #999999; /* Сірий текст для placeholder */
    font-size: var(--font-size-medium);
    padding-left: 2px;
}

.film-field select:not(:invalid) {
    color: #FFFFFF; /* Білий текст після вибору значення */
    padding-left: 2px;
}

.film-field input:not([value=""]) {
    color: #FFFFFF;
    padding-left: 2px;
}
.film-field .length:not(:placeholder-shown) {
    color: #FFFFFF;
    padding-left: 2px;
}

.film-field .length:not([value=""]) {
    color: #FFFFFF;
    padding-left: 2px;
}

.form-group {
    display: flex;
    align-items: center;
    margin-bottom: 0.25rem;
}
    
.form-label {
    width: 100%;
    text-align: left;
    text-wrap: wrap;
    font-size: var(--font-size-medium);
    margin: 0 2px;
}
        
.result {
    font-weight: bold;
    text-align: left;
    font-size: var(--font-size-medium);
    padding: 2px 0;
    margin: 2px 0;
    border-top: 1px solid var(--accent-color);
    border-bottom: 1px solid var(--accent-color);
    color: var(--main-text-color);
    display: none; /* Приховуємо результат за замовчуванням */
}

.result.visible {
    display: block; /* Відображаємо результат, коли він обчислений */
}
    
/* Стилі для всіх кнопок */
#buttons-container {
    display: flex;
    flex-wrap: wrap;
    margin: 5px 0;
    justify-content: space-around;
    align-items: center;
    width: 100%;
}
    
/* Центрування кнопок */
.center-content {
    display: flex;
    justify-content: center;
    align-items: center;
}
    
button {
    padding: 2px 4px;
    background-color: var(--accent-color);
    cursor: pointer;
    white-space: nowrap;
    border-radius: 4px;
    /*font-weight: bold;*/
    font-size: var(--font-size-medium);
    max-width: 100%;
    box-sizing: border-box;
}

button:hover {
    /*background-color: var(--highlight-color);*/
    color: var(--main-text-color);
}
    
/* 3 - Основний блок */
.main {
    flex: 3;
    padding: 0;
    margin: 0;
    background: var(--main-bg-color);
    color: var(--main-text-color);
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}
    
/* 4 - Хедер в блоці main */
.header {
    order: 1; /* Завжди на першому місці */
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--header-bg-gradient);
    padding: 0;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    max-height: 50px;
}
    
/* 5 - Логотип в хедері блоку main */
.header .logo {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
       
/* 5.3 - Зображення в логотипі в хедері блоку main */
.header .logo img {
    max-width: 150px;
    height: auto;
    min-height: 50px;
}
    
/* 6 - Опис в блоці main */
.header-text {
    order: 2;
    text-align: left;
    color: var(--main-text-color);
    margin: 10px 0;
    /*border-bottom: 2px solid var(--highlight-color);*/
    justify-content: center;
}
    
/* 6.1 - текст в блоці main */
.header-text p {
    color: var(--main-text-color);
    display: flex;
    /*font-weight: bold;*/
    padding: 10px;
    justify-content: center;
}
    
/* 7 - Контейнер для опису форм та плівок */
.format-container {
    order: 3;
    display: flex;
    width: 100%;
    column-gap: 0;
    padding: 0;
    margin: 0;
    font-size: var(--font-size-medium);
}
    
/* 8, 14 - Колонки з описом форматів форм та плівок */
.plate-group, .film-column {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    flex: 4;
    /*margin-bottom: 50px;*/
    padding: 0;
}
    
/* 9, 15 - Назви колонок з описом форматів форм та плівок */
.plate-header, .film-header {
    text-align: center;
    text-wrap: nowrap;
    padding: 5px 0;
}
    
/* 10 - Об'єднані 3 колонки з форматами форм */
.columns {
    display: flex;
    gap: 0px;
    width: 100%;
}
    
/* 11 - Колонка з форматами форм та плівок */
.column {
    flex: 1;
    width: 100%;
    padding: 0;
    margin-bottom: 10px;
 }
    
/* 12, 16 - Список форматів форм та плівок */
.plate-list, .film-list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
}
    
/* 13, 17 - елемент списку форматів форм та плівок */
.plate-list li, .film-list li {
    padding: 2px 0;
}

/* 13.1, 17.1 - непарний елемент списку форматів форм та плівок */
.plate-list li:nth-child(odd),
.film-list li:nth-child(odd) {
    background-color: var(--highlight-color);
    color: var(--add-text-color);
    font-weight: bolder;
}

/* 13.2, 17.2 - парний елемент списку форматів форм та плівок */
.plate-list li:nth-child(even),
.film-list li:nth-child(even) {
    background-color: var(--main-bg-color);
    color: var(--main-text-color);
}

/* Стилі для останнього парного елементу */
.plate-list li:last-of-type,
.film-list li:last-of-type {
    background-color: var(--highlight-bg-color);
    color: var(--highlight-text-color);
    border-bottom: 1px solid var(--highlight-color);
}
    
/* 14 - Колонка з описом форматів плівок */
.film-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}
    
/* 18 - Інформаційний блок */
.info-columns {
    order: 4;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    padding: 0;
    margin: 20px 0;
    background-color: var(--main-bg-color);
    /*border-bottom: 1px solid var(--highlight-color);*/
    color: var(--main-text-color);
    flex-grow: 0.5;
    /*row-gap: 5px;*/
}
    
/* 19 - Заголовок інформаційного блоку */
.info-columns h1 {
    display: block;
    text-align: center;
    background-color: var(--highlight-color);
    color: var(--add-text-color);
    font-weight: bold;
    margin: 5px 0;
    padding: 0 10px;
}
    
/* 20 - Об'єднані колонки про вивід форм */
.plate-info-columns {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    width: 100%;
    justify-content: center;
    align-items: left;
}
    
/* 21 - Колонки з інформацією про вивід */
.info-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
    margin-bottom: 20px;
    box-sizing: border-box;
    max-width: 90%;
    font-size: var(--font-size-medium);
    /*font-weight: bold;*/
}

/* 22 - Заголовок колонки з інформацією про вивід */
.info-column-header {
    font-weight: bold;
    padding-left: 10%;
    margin-bottom: 5px;
    text-align: left;
    text-wrap: nowrap;
}

/* 22.1 - надстроковий елемент */
.sup {
    font-size: 0.6em;
    vertical-align: super;
    text-decoration: underline;
}

/* 23 - Список з інформацією про вивід */
.padded-list {
    list-style: none;
    text-align: center;
    padding: 0;
    margin: 0;
    font-size: var(--font-size-medium);
}

/* 24 - Елемент списку з інформацією про вивід */
.padded-list li {
    position: relative;
    padding-left: 1.5rem;
    text-align: left;
}

.padded-list > li::before {
    content: url('../img/list_mark.svg');
    position: absolute;
    left: 0;
    display: block;
}

/* 25 - Інформаційний блок */
/*.info-columns-text {
    display: block;
    /*padding: 20px 20px;*/ /* Змінити при додаванні інформації */
    /*flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 10px 0 10px;
    margin: 0;
    box-sizing: border-box;
    max-width: 100%;
    font-size: var(--font-size-medium);
    background-color: var(--main-bg-color);
    color: var(--main-text-color);
    /* border-top: 1px solid var(--highlight-color); */
/*}*/

/* 25.1 - Заголовок інформаційного блоку */
/*.info-columns-text h1 {
    display: block;
    text-align: left;
    font-weight: bold;
    font-size: var(--font-size-large);
    background-color: var(--highlight-color);
    color: var(--add-text-color);
    margin: 5px 0;
}*/

/* 25.2 - Текст інформаційного блоку */
.info-columns-text .padded-list {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
    align-items: left;
    padding-left: 10px;
    margin-bottom: 20px;
    box-sizing: border-box;
    font-size: var(--font-size-medium);
}

.sub-ul {
    list-style: none;
    text-align: center;
    padding-left: 50px;
    margin: 0;
}

.sub-ul li,
.sub-ul li::before,
.sub-ul li::after {
    list-style: none;
}

.sub-ul li::before {
    content: '';
}

/* 26 - Блок з контактною інформацією */
.contacts {
    width: 100%;
    order: 5;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    flex-grow: 0.5;
    align-items: center;
    justify-content: center; 
    /*text-align: center;*/
    padding: 0; /* padding: 5px 10%;*/
    margin: 20px 0; /* margin: 0; */
    background-color: var(--main-bg-color);
    color: var(--main-text-color);
    /*box-sizing: border-box;*/
    overflow-x: hidden;
}

/* 26.1 - Заголовок блоку з контактною інформацією */
.contacts h1 {
    width: 100%;
    display: block;
    text-align: center;
    background-color: var(--highlight-color);
    color: var(--add-text-color);
    font-weight: bold;
    margin: 5px 0;
    padding: 0 10px;
}

/* 27 - Об'єднані колонки з інформацією */ 
.contact-columns {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    box-sizing: border-box;
    width: 100%;
    padding: 10px 0;
    margin: 0;
}

/* 28 - Окрема колонка з інформацією */
.contact-column {
    padding: 0;
    text-align: left;
    text-wrap: nowrap;
    flex: 5;
    padding: 0 10px;
    margin: 0;
    width: 100%;
}

/* 29 - Форма зворотнього зв'язку */
.connection {
    display: none;
}

/* Плаваюча кнопка зворотнього зв'язку */
.floating-button {
    position: fixed;
    bottom: 2rem;
    right: 4rem;
    padding: 2px 4px;
    background-color: var(--highlight-color);
    color: var(--add-text-color);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    white-space: nowrap;
    font-size: var(--font-size-medium);
    z-index: 1000;
    display: none; /* Приховати кнопку за замовчуванням */
}

.floating-button.visible {
    display: block; /* Показати кнопку, коли додано клас visible */
}

.floating-button:hover {
    /*background-color: var(--highlight-color);*/
    color: var(--main-text-color);
}

/* 30 - Блок футера */
.footer {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 20px;
    padding: 0;
    z-index: 1;
}

/* 31 - Колір блоку футера */
.cmyk-footer-field {
    min-height: 1rem;
    background: #FFFFFF;
    width: 100%;
    margin: 0;
}

/* 32 - заливка футера */
.cmyk-footer {
    min-height: 1rem;
    text-align: center;
    color: var(--main-text-color);
    background: repeating-linear-gradient(to right,
        rgba(0, 255, 255, 1) 0rem, rgba(0, 255, 255, 1) 1.5rem, 
        rgba(255, 0, 255, 1) 1.5rem, rgba(255, 0, 255, 1) 3rem, 
        rgba(255, 255, 0, 1) 3rem, rgba(255, 255, 0, 1) 4.5rem, 
        rgba(0, 0, 0, 1) 4.5rem, rgba(0, 0, 0, 1) 6rem,
        rgba(0, 255, 255, 0.75) 6rem, rgba(0, 255, 255, 0.75) 7.5rem, 
        rgba(255, 0, 255, 0.75) 7.5rem, rgba(255, 0, 255, 0.75) 9rem, 
        rgba(255, 255, 0, 0.75) 9rem, rgba(255, 255, 0, 0.75) 10.5rem,
        rgba(0, 0, 0, 0.75) 10.5rem, rgba(0, 0, 0, 0.75) 12rem,
        rgba(0, 255, 255, 0.5) 12rem, rgba(0, 255, 255, 0.5) 13.5rem, 
        rgba(255, 0, 255, 0.5) 13.5rem, rgba(255, 0, 255, 0.5) 15rem,
        rgba(255, 255, 0, 0.5) 15rem, rgba(255, 255, 0, 0.5) 16.5rem, 
        rgba(0, 0, 0, 0.5) 16.5rem, rgba(0, 0, 0, 0.5) 18rem,
        rgba(0, 255, 255, 0.25) 18rem, rgba(0, 255, 255, 0.25) 19.5rem, 
        rgba(255, 0, 255, 0.25) 19.5rem, rgba(255, 0, 255, 0.25) 21rem,
        rgba(255, 255, 0, 0.25) 21rem, rgba(255, 255, 0, 0.25) 22.5rem, 
        rgba(0, 0, 0, 0.25) 22.5rem, rgba(0, 0, 0, 0.25) 24rem);
}

/* 32.1 - текст у блоці футера */
.footer p {
    vertical-align: middle;
    font-weight: bold;
}

/* 32.2 - логотип у блоці футера */
.footer img {
    max-width: 40px;
    height: auto;
    vertical-align: middle;
}

/* 33 - Вікно форми */
.modal.active {
    display: block;
}

.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.25);
}

.modal-content {
    background-color: var(--main-bg-color);
    margin: 5% auto;
    padding: 0.5rem 1rem;
    width: 80%;
    max-width: 400px;
    border: 2px solid var(--highlight-color);
    border-radius: var(--border-radius);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    font-size: var(--font-size-medium);
}

.modal-content label {
    color: var(--highlight-color);
    font-family: var(--font-family);
    font-size: var(--font-size-medium);
}

.modal-content input,
.modal-content textarea {
    line-height: 1.5rem;
    min-width: 90%;
    padding: 0;
    margin: 0;
    border: 1px solid var(--highlight-color);
    border-radius: var(--border-radius);
    background-color: var(--main-bg-color);
    color: #FFFFFF;
    font-family: var(--font-family);
    font-size: var(--font-size-large);
}

.modal-content textarea {
    height: 5rem;
}

.modal-content button {
    padding: 2px;
    align-self: center;
    text-wrap: nowrap;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    background-color: var(--highlight-color);
    color: var(--add-text-color);
    font-size: var(--font-size-medium);
    max-width: 100%;
}

.modal-content button:hover {
    /*background-color: var(--highlight-color);*/
    color: var(--main-text-color);
}

.close-btn {
    color: var(--main-text-color);
    align-self: flex-end;
    float: right;
    font-size: 30px;
    font-weight: bold;
    cursor: pointer;
    padding: 20px;
    margin: 0;
}

.close-btn:hover,
.close-btn:focus {
    color: var(--highlight-color);
    text-decoration: none;
    cursor: pointer;
}
  

@media (max-width: 768px) {

    html, body, .header, .footer {
        margin: 0;
        padding: 0;
        width: 100%;
        box-sizing: border-box;
    } 

    .container {
        flex-direction: column;
        flex-wrap: wrap;
        overflow-x: hidden;
    }

    .aside {
        order: 2;
        max-width: 100%;
        overflow-x: hidden;
        padding: 0;
        margin: 0;
        /*z-index: 1;*/
        /*border-radius: var(--border-radius);*/
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        min-height: 100%;
        /*max-height: 100%;
        min-height: 50vh;*/
    }
    
    .calc {
        order: 70;
        max-width: 100%;
        overflow-x: hidden;
        min-height: 100%;
        position: -webkit-sticky; /* Safari */
        position: sticky;
        padding-bottom: 1rem;
        margin-top: auto 10px 1rem 10px;
        bottom: 0;
    }

    table{
        order: 7;
        min-height: auto;
        min-width: 100%;
        margin-bottom: 10px;
    }

    .main {
        order: 1;
        min-width: 100%;
    }

    .header {
        width: 100%;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    /*.header-text {
        border-bottom: 1px solid var(--highlight-color);
    }*/

    .format-container {
        flex-direction: column;
        padding: 0;
        margin-bottom: 10px;
        width: 100%;
        /*border-bottom: 1px solid var(--highlight-color);*/
    }

    .plate-group, .film-column {
        width: 100%;
        padding: 0;
        margin: 0;
    }

    .column {
        width: 100%;
        padding: 0;
        margin: 0;
    }
    
    .plate-info-columns {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        width: 100%;
        margin-bottom: 10px;
    }

    .columns {
        margin-bottom: 10px;        
    }

    .plate-list li:nth-child(even),
    .film-list li:nth-child(even) {
        border-bottom: 1px solid var(--highlight-color);
    }

    .info-column {
        align-items: flex-start;
        padding-left: 10px;
        max-width: 100%;
        box-sizing: border-box;
    }

    .info-columns {
        width: 100%;
        padding: 0;
        margin-bottom: 20px;
        row-gap: 5px;
        flex-grow: 1;
    }
    
    .contacts {
        width: 100%;
        margin: 0;
    }

    .contact-columns {
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 10px;
    }

    .contact-column {
        padding: 10px 0;
    }

    .connection {
        justify-content: flex-end;
    }

    .contact-column form {
        flex-direction: column;
        align-items: flex-start;
    }    

    input[type="text"],
    input[type="email"],
    input[type="password"],
    textarea {
        font-size: 0.9rem; /* Зменшений розмір шрифту для малих екранів */
        padding: 8px; /* Зменшені внутрішні відступи */
    }
    
    .floating-button {
        position: fixed; /*absolute; /* Закріплення кнопки в межах контейнера */
        bottom: 0.1rem;
        right: 0.25rem;
        padding: 2px;
        white-space: nowrap;
        display: hidden;
    }

    .cmyk-footer {
        text-align: left;
        padding-left: 10px;
    }

    .table-header p,
    /*table,*/
    .table-block {
        text-align: center;
        margin: 0 auto;
        /*font-size: var(--font-size-small);*/
    }

    /*.info-columns,
    .info-columns-text {
        border-top: 1px solid var(--highlight-color);
        border-bottom: 1px solid var(--highlight-color);
    }*/

}