:root {
    /* --bg: #080d12; */
    --bg: #1a5795;
    --surface: #111923;
    --card: #17212d;
    --line: #283545;
    --gold: #c9a24d;
    --gold-light: #e6c979;
    --text: #edf1f5;
    --muted: #8d99a9;
    --ink: #121820;
    --paper: #f3f1eb;
    --green: #27c56b;
    --radius: 8px;
    --shadow: 0 16px 45px rgba(0, 0, 0, .32)
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, Arial, sans-serif;
    line-height: 1.65
}

body.menu-open,
body.modal-open {
    overflow: hidden
}

img {
    display: block;
    max-width: 100%
}

a {
    color: inherit;
    text-decoration: none
}

button,
input,
select,
textarea {
    font: inherit
}

.container {
    width: min(1120px, calc(100% - 40px));
    margin: auto
}

.header {
    position: fixed;
    z-index: 30;
    top: 0;
    left: 0;
    width: 100%;
    background: #13395f;
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(12px)
}

.header__inner {
    height: 74px;
    display: flex;
    align-items: center;
    gap: 26px
}


.brand {
    display: flex;
    align-items: center;
    gap: 0;
    flex: none
}


.header-logo {
    display: block;
    max-width: 150px;
    width: 100%;
    height: auto;
    aspect-ratio: 150/44;
    object-fit: contain;
    flex-shrink: 0
}


/* Адаптивність для мобільних пристроїв */
@media (max-width: 768px) {
    .header-logo {
        width: 180px;
        height: auto;
        aspect-ratio: 246/66
    }
}

@media (max-width: 480px) {
    .header-logo {
        width: 150px;
        height: auto;
        aspect-ratio: 246/66
    }
}


.nav {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-left: auto
}

.nav__link {
    font-size: 12px;
    font-weight: 600
}

.nav__link:hover {
    color: var(--gold)
}

.header__phone {
    padding: 8px 10px;
    border: 1px solid #56492d;
    border-radius: 6px;
    color: var(--gold);
    font-size: 11px;
    font-weight: 700
}

.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 44px;
    padding: 0 25px;
    border: 0;
    border-radius: var(--radius);
    background: linear-gradient(135deg, var(--gold), var(--gold-light));
    color: var(--ink);
    font-weight: 800;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
    cursor: pointer;
    box-shadow: 0 5px 20px rgba(201, 162, 77, .18)
}

.button:hover {
    filter: brightness(1.08)
}

.button--small {
    min-height: 38px;
    padding: 0 16px;
    font-size: 10px
}

.button--ghost {
    background: var(--surface);
    color: var(--text);
    border: 1px solid var(--line);
    box-shadow: none
}

.menu-button {
    display: none;
    background: transparent;
    border: 0;
    width: 40px;
    height: 40px;
    padding: 9px
}

.menu-button span {
    display: block;
    height: 2px;
    margin: 5px 0;
    background: var(--text)
}

.hero {
    min-height: 760px;
    padding: 185px 0 100px;
    /* background-color: #080d12; */
    background-color: #1a5795;
    /* background-image: linear-gradient(rgba(36, 48, 60, .15) 1px, transparent 1px), linear-gradient(90deg, rgba(36, 48, 60, .15) 1px, transparent 1px), radial-gradient(circle at 50% 40%, rgba(201, 162, 77, .08), transparent 34%);
    background-size: 32px 32px, 32px 32px, auto */
}

.hero__grid {
    display: grid;
    grid-template-columns: 1.25fr .88fr;
    align-items: center;
    gap: 46px
}

.eyebrow {
    display: inline-flex;
    padding: 4px 12px;
    border: 1px solid #5c5036;
    border-radius: 20px;
    background: var(--surface);
    color: var(--gold);
    font-size: 10px;
    font-weight: 700
}

.hero__title {
    max-width: 660px;
    margin: 20px 0 15px;
    font: 700 55px/1.02 'Playfair Display', serif
}

.hero__title em {
    color: var(--gold);
    font-style: normal
}

.hero__lead {
    max-width: 650px;
    color: var(--muted);
    font-size: 15px
}

.hero__lead strong {
    color: var(--text)
}

.hero__facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 25px 0 28px
}

.hero__facts div {
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface)
}

.hero__facts small,
.hero__facts b {
    display: block
}

.hero__facts small {
    text-transform: uppercase;
    color: var(--muted);
    font-size: 9px
}

.hero__facts b {
    font: 600 14px 'Playfair Display', serif
}

.hero__facts div:nth-child(2) b {
    color: var(--gold)
}

.hero__actions {
    display: flex;
    gap: 12px
}

.status-card {
    padding: 25px;
    border: 1px solid #594a2e;
    border-radius: 14px;
    background: linear-gradient(145deg, #1a2431, #121a24);
    box-shadow: var(--shadow)
}

.status-card__head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--line)
}

.status-card__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 6px;
    background: #3a382f;
    color: var(--gold)
}

.status-card__head div b,
.status-card__head div small {
    display: block
}

.status-card__head div small {
    color: var(--muted);
    font-size: 9px
}

.status-card__active {
    margin-left: auto;
    padding: 4px 8px;
    border: 1px solid #145d35;
    background: #0d3823;
    color: var(--green);
    font-size: 8px
}

.status-card__media {
    position: relative;
    height: 165px;
    margin: 20px 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #000
}

.status-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(.75) contrast(1.15)
}

.status-card__media div {
    position: absolute;
    left: 12px;
    bottom: 10px
}

.status-card__media div small,
.status-card__media div b {
    display: block
}

.status-card__media div small {
    color: var(--gold);
    font-size: 8px
}

.status-card__media div b {
    font: 600 12px 'Playfair Display', serif
}

.status-card__media>span {
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 4px 8px;
    background: var(--surface);
    border: 1px solid var(--line);
    font-size: 9px
}

.check-list {
    list-style: none;
    padding: 0;
    margin: 0
}

.check-list li {
    position: relative;
    padding: 6px 0 6px 24px;
    font-size: 11px
}

.check-list li:before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--gold)
}

.status-card__foot {
    margin: 14px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    text-align: center;
    color: var(--muted);
    font-size: 8px
}

.section {
    padding: 100px 0
}

.section--light {
    background: var(--paper);
    color: var(--ink)
}

.section--black {
    /* background: #05080b; */
    background: #13395f;
}

.section-heading {
    max-width: 720px;
    margin-bottom: 45px
}

.section-heading--center {
    text-align: center;
    margin-left: auto;
    margin-right: auto
}

.section-heading>span {
    color: var(--gold);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .15em
}

.section-heading h2 {
    margin: 7px 0 12px;
    font: 700 39px/1.16 'Playfair Display', serif
}

.section-heading p {
    margin: 0;
    color: #727983
}

.section:not(.section--light) .section-heading p {
    color: var(--muted)
}

.about {
    display: grid;
    grid-template-columns: .85fr 1.45fr;
    gap: 55px
}

.about__license {
    padding: 30px;
    border-left: 4px solid var(--gold);
    background: #fff;
    box-shadow: 0 12px 35px rgba(23, 28, 34, .08)
}

.about__license h3 {
    font: 700 24px 'Playfair Display', serif
}

.about__stamp {
    margin-top: 25px;
    padding: 16px;
    border: 1px solid #d8c9a7;
    background: #fbf7ec;
    color: #776132;
    font-size: 12px
}

.features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
}

.features article {
    padding-bottom: 20px;
    border-bottom: 1px solid #d7d4cd
}

.features i {
    font-style: normal;
    color: var(--gold);
    font-size: 26px
}

.features h3 {
    margin: 7px 0;
    font: 700 17px 'Playfair Display', serif
}

.features p {
    margin: 0;
    color: #6f747a;
    font-size: 13px
}

.principles,
.steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line)
}

.principles article,
.steps article {
    padding: 30px 24px;
    background: var(--surface)
}

.principles b,
.steps b {
    color: var(--gold);
    font: 700 30px 'Playfair Display', serif
}

.principles h3,
.steps h3 {
    margin: 15px 0 8px;
    font: 700 18px 'Playfair Display', serif
}

.principles p,
.steps p {
    margin: 0;
    color: var(--muted);
    font-size: 12px
}

.steps small {
    display: block;
    margin-top: 20px;
    color: var(--gold);
    font-size: 10px
}

.filters {
    display: flex;
    gap: 8px;
    margin-bottom: 30px
}

.filters__button {
    padding: 10px 18px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--surface);
    color: var(--muted);
    cursor: pointer
}

.filters__button--active {
    border-color: var(--gold);
    color: var(--gold)
}

.catalog {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px
}

.product {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    transition: .3s
}

.product:hover {
    transform: translateY(-3px);
    border-color: #5e5135
}

.product[hidden] {
    display: none
}

.product__image {
    position: relative;
    height: 265px;
    overflow: hidden;
    background: #000
}

.product__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: contrast(1.15)
}

.product__image span {
    position: absolute;
    left: 15px;
    top: 15px;
    padding: 5px 9px;
    background: rgba(8, 13, 18, .85);
    color: var(--gold);
    font-size: 9px;
    font-weight: 700
}

.product__body {
    padding: 25px
}

.product__meta {
    display: flex;
    justify-content: space-between;
    color: var(--muted);
    font-size: 10px
}

.product__meta b {
    color: var(--gold)
}

.product h3 {
    margin: 9px 0;
    font: 700 25px 'Playfair Display', serif
}

.product p {
    color: var(--muted);
    font-size: 12px
}

.product dl {
    margin: 18px 0
}

.product dl div {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--line);
    font-size: 11px
}

.product dt {
    color: var(--muted)
}

.product dd {
    margin: 0;
    font-weight: 700
}

.product__more {
    padding: 0;
    border: 0;
    background: none;
    color: var(--gold);
    font-weight: 700;
    cursor: pointer
}

/* ---- gallery ---- */
.gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px
}

.gallery video {
    width: 100%;
    height: 230px;
    object-fit: cover;
    filter: contrast(1.12);
    background: #000
}

.gallery video:nth-child(odd) {
    /* margin-top: 25px */
}
.notice {
    margin-top: 35px;
    padding: 28px;
    border: 1px solid #5e5135;
    background: linear-gradient(90deg, var(--surface), #171710)
}

.notice h3 {
    margin: 0 0 8px;
    font: 700 21px 'Playfair Display', serif
}

.notice p {
    margin: 0;
    color: var(--muted)
}

.faq {
    max-width: 850px;
    margin: auto;
    border-top: 1px solid #ccc
}

.faq details {
    border-bottom: 1px solid #ccc
}

.faq summary {
    padding: 22px 45px 22px 0;
    font-weight: 700;
    cursor: pointer;
    position: relative
}

.faq summary:after {
    content: '+';
    position: absolute;
    right: 5px;
    color: var(--gold);
    font-size: 24px
}

.faq details[open] summary:after {
    content: '−'
}

.faq details p {
    padding: 0 0 20px;
    margin: 0;
    color: #666
}

.section--contact {
    /* background: #0b1118; */
    background: #13395f;
}

.contact {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 70px
}

.contact__item {
    margin: 25px 0;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line)
}

.contact__item small,
.contact__item span {
    display: block;
    color: var(--muted);
    font-size: 11px
}

.contact__item a {
    display: block;
    color: var(--gold);
    font: 700 22px 'Playfair Display', serif
}

.contact__legal {
    margin-top: 35px;
    color: var(--muted)
}

.form {
    padding: 35px;
    border: 1px solid var(--line);
    background: var(--surface);
    border-radius: var(--radius)
}

.form h3 {
    margin: 0;
    font: 700 26px 'Playfair Display', serif
}

.form>p {
    color: var(--muted)
}

.form label {
    display: block;
    margin-top: 15px;
    color: var(--muted);
    font-size: 11px
}

.form input,
.form select,
.form textarea {
    width: 100%;
    margin-top: 6px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 5px;
    background: #0b1118;
    color: var(--text);
    outline: none
}

.form input:focus,
.form select:focus,
.form textarea:focus {
    border-color: var(--gold)
}

.form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px
}

.form__check {
    display: flex !important;
    align-items: flex-start;
    gap: 8px
}

.form__check input {
    width: auto;
    margin-top: 3px
}

.form .button {
    margin-top: 20px;
    width: 100%
}

.form__success {
    display: none;
    margin-top: 15px;
    padding: 12px;
    background: #103823;
    color: #6ce9a2
}

.form__success--visible {
    display: block
}

.footer {
    padding: 30px 0;
    border-top: 1px solid var(--line);
    background: #05080b
}

.footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.footer p {
    color: var(--muted);
    font-size: 11px
}

.modal {
    position: fixed;
    z-index: 60;
    inset: 0;
    display: none;
    place-items: center;
    padding: 20px;
    background: rgba(0, 0, 0, .78)
}

.modal--open {
    display: grid
}

.modal__dialog {
    position: relative;
    width: min(560px, 100%);
    max-height: 90vh;
    overflow: auto;
    padding: 28px;
    border: 1px solid #625434;
    border-radius: 10px;
    background: var(--surface);
    box-shadow: var(--shadow)
}

.modal__close {
    position: absolute;
    z-index: 2;
    right: 10px;
    top: 10px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: var(--bg);
    color: var(--text);
    font-size: 24px;
    cursor: pointer
}

.modal__image {
    width: 100%;
    height: 260px;
    object-fit: cover;
    margin-bottom: 20px
}

.modal__tag {
    color: var(--gold);
    font-size: 10px;
    font-weight: 800
}

.modal__title {
    font: 700 30px 'Playfair Display', serif
}

.modal__text {
    color: var(--muted)
}

.modal__spec div {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
    padding: 8px 0
}

.modal__spec dd {
    margin: 0;
    font-weight: 700
}

.modal .button {
    width: 100%;
    margin-top: 15px
}

/* footer */
.footer-social {
    display: flex;
    gap: 1rem;
}

.footer-social__link {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-full);
    background-color: var(--color-slate-800);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s, color 0.2s;
}

.footer-social__link:hover {
    color: var(--color-white);
}

.footer-social__link--ig:hover {
    background-color: var(--color-brand-green);
}

.footer-social__link--fb:hover {
    background-color: var(--color-brand-blue);
}

.footer-social__link--yt:hover {
    background-color: var(--color-red-500);
}

.footer-social__link svg {
    width: 24px;
    height: 24px;
}

.icon--labs-check {
    width: 24px;
    height: 24px;
    display: block;
}

