/* PІDKŁUCZENIE LOKALNYCH CZCIONEK */

@font-face {
    font-family: 'Quentin';
    src: url('fonts/Quentin.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Apex New';
    src: url('fonts/apex-new-font-family/ApexNewTrial-Book-BF66724ea4e7ac4.otf') format('opentype');
    font-weight: 400; /* Regular/Book */
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Apex New';
    src: url('fonts/apex-new-font-family/ApexNewTrial-Medium-BF66724ea5881a1.otf') format('opentype');
    font-weight: 500; /* Medium */
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Apex New';
    src: url('fonts/apex-new-font-family/ApexNewTrial-Bold-BF66724ea518ae4.otf') format('opentype');
    font-weight: 700; /* Bold */
    font-style: normal;
    font-display: swap;
}

/* ZMIENNE KOLORYSTYCZNE BEM */
:root {
    --bg-main: #f4ead9;
    --text-olive: #767a23;
    --bg-blue: #bfccd1;
    --btn-burgundy: #621c35;
    
    /* Fonty lokalne */
    --font-heading: 'Quentin', serif; 
    --font-body: 'Apex New', sans-serif;
}

/* RESET */
* {
    margin: 0;
    padding: 0;
    color: var(--text-olive);
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.page {
    background-color: var(--bg-main);
    font-family: var(--font-heading);
    color: #333;
    line-height: 1.5;
}

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

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

/* KONTENERY */
.page__container {
    max-width: 1210px;
    margin: 0 auto;
    padding: 0 20px;
}

/* KOMPONENTY: BUTTONY */
.btn {
    display: inline-block;
    padding: 12px 30px 10px 30px;
    border-radius: 30px;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 18px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.btn--primary {
    background-color: var(--text-olive);
    color: var(--bg-main);
}

.btn--primary:hover {
    background-color: #5d611b;
}

.btn--outline {
    background-color: transparent;
    color: var(--text-olive);
    border-color: var(--text-olive);
}

.btn--outline:hover {
    background-color: var(--text-olive);
    color: #fff;
}

/* TYPOGRAFIA */
h1, h2, h3 {
    font-family: var(--font-heading);
    color: var(--text-olive);
    font-weight: normal;
}

/* HEADER */
.header {
    padding: 25px 0;
}
.header__container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.header__logo-img {
    height: 60px;
    width: auto;
}
.header__link {
    font-family: var(--font-heading);
    font-weight: 500;
    font-size: 26px;
    color: var(--text-olive);
    transition: opacity 0.3s;
}
.header__link:hover {
    opacity: 0.7;
}

/* HERO SECTION */
.hero {
    padding: 25px 0;
}
.hero__container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 5px;
}
.hero__image {
    border-radius: 20px;
    width: 100%;
    max-width: 430px;
}
.hero__content {
    max-width: 500px;
}
.hero__title {
    font-size: 56px;
    margin-bottom: 30px;
    line-height: 1.2;
}
.hero__text {
    max-width: 430px;
    font-size: 20px;
    margin-bottom: 20px;
    font-weight: 400;
}
.hero__btn {
    margin-top: 20px;
}

/* ABOUT SECTION */
.about {
    padding: 25px 0;
}
.about__container {
    background-color: var(--bg-blue);
    border-radius: 20px;
    padding: 55px 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.about__title {
    font-size: 56px;
    margin-bottom: 30px;
    color: var(--btn-burgundy);
}
.about__content {
    max-width: 50%;
}
.about__text {
    font-size: 20px;
    margin-bottom: 14px;
    color: #333;
    font-weight: 400;
}
.about__text--bold {
    font-weight: 700;
    margin-bottom: 0;
}
.about__image-wrapper {
    display: flex;
    justify-content: end;
    position: relative;
}
.about__image {
    border-radius: 20px;
    width: 70%;
}
.about__badge-img {
    position: absolute;
    top: -4%;
    left: 28%;
    width: 75px;
    height: auto;
    z-index: 2;
}

/* OFFER SECTION */
.offer {
    padding: 80px 0;
}
.offer__title {
    font-size: 56px;
    margin-bottom: 50px;
}
.offer__grid {
    display: flex;
    justify-content: space-between;
}
.offer__column {
    flex: 1;
    max-width: 45%;
}
.offer__column--right {
    position: relative;
}
.offer__text {
    font-size: 20px;
    margin-bottom: 20px;
    font-weight: 400;
}
.offer__subtitle {
    font-size: 20px;
    margin-top: 30px;
}
.offer__icon {
    position: absolute;
    top: -35%;
    right: 20px;
}
.offer__icon-img {
    width: 125px;
    height: auto;
}
.offer__btn {
    width: 100%;
    text-align: center;
    margin-top: 40px;
}

/* GALLERY SECTION */
.gallery {
    padding: 40px 0 80px;
}
.gallery__container {
    display: flex;
    justify-content: space-between;
}
.gallery__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 45%;
}

/* CONTACT SECTION */
.contact {
    padding-bottom: 80px;
}
.contact__container {
    background-color: var(--bg-blue);
    border-radius: 20px;
    padding: 55px 60px;
}
.contact__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 40px;
}
.contact__header-text {
    max-width: 600px;
}
.contact__title {
    font-size: 56px;
    color: var(--btn-burgundy);
    margin-bottom: 10px;
}
.contact__subtitle {
    font-size: 18px;
    font-weight: 500;
    color: #333;
    line-height: 1.5;
}
.contact__header-img {
    width: 65%;
    height: auto;
    margin-top: -20px;
    margin-left: auto;
}
.contact__inner {
    display: flex;
}
.contact__form {
    font-family:var(--font-body);
    flex: 3;
}
.form__row {
    display: flex;
    justify-content: space-between;
}
.form__row .form__group {
    max-width: 45%;
}
.form__group {
    margin-bottom: 25px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.form__label {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 5px;
    color: #333;
}
.form__label--inline {
    margin-bottom: 0;
    font-weight: 500;
}
.form__input,
.form__textarea {
    padding: 10px 2px;
    border: none;
    border-bottom: 1px solid #555;
    background-color: transparent;
    font-family: var(--font-body);
    font-size: 16px;
    outline: none;
    color: #333;
}
.form__textarea {
    resize: vertical;
    min-height: 100px;
    border: 1px solid #555;
    border-radius: 10px;
    padding: 10px;
    margin-top: 10px;
}
.form__submit {
    background-color: var(--btn-burgundy);
    color: var(--bg-main);
    border: none;
    padding: 12px 40px;
}
.form__submit:hover {
    background-color: #4a1327;
}

/* Zastosowanie falistej linii (obrazka) */
.contact__separator {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    margin-top: -20px;
}
.contact__separator-img {
    height: 100%;
    max-height: 400px;
    width: auto;
    object-fit: contain;
}

.contact__info {
    flex: 1;
    color: var(--btn-burgundy);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.contact__info-title {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 20px;
    color: #333;
    margin-bottom: 20px;
}
.contact__info-text,
.contact__info-link {
    font-size: 18px;
    margin-bottom: 10px;
    display: block;
    font-family: var(--font-body);
    color: var(--btn-burgundy);
    font-weight: 500;
}
.contact__socials {
    display: flex;
    margin-top: 20px;
}
.contact__social-img {
    width: 35px;
    height: auto;
    transition: transform 0.2s;
}
.contact__social-link:hover .contact__social-img {
    transform: scale(1.1);
}

@media (max-width: 1048px) {
    .contact .contact__container .contact__header .contact__header-text .contact__title {
        font-size: 48px;
    }
}

/* RWD - ADAPTACJA MOBILNA */
@media (max-width: 992px) {
    .hero__container,
    .about__container,
    .offer__grid,
    .contact__inner {
        flex-direction: column;
    }
    
    .hero__container {
        flex-direction: column-reverse;
        text-align: center;
        align-items: center;
    }

    .hero__content {
        margin-bottom: 15px;
    }

    .hero__title {
        font-size: 40px;
    }

    .hero__text {
        max-width: 100%;
    }

    .hero__image {
        width: 370px;
    }

    .about__content {
        max-width: 70%;
        text-align: center;
        margin-bottom: 15px;
    }
    
    .about__image-wrapper {
        justify-content: center;
    }

    .about__badge-img {
        left: 14%;
    }

    .offer__grid {
        align-items: center;
    }

    .offer__column {
        max-width: 70%;
        text-align: center;
    }

    .offer__icon {
        top: -130%;
        right: -22%;
    }

    .form__submit {
        display: flex;
        margin: 0 auto;
    }
    
    .contact__separator {
        transform: rotate(90deg); /* Obracamy falistą linię na małych ekranach */
        height: 80px;
        margin: 0 15px;
        padding: 0;
    }
    .contact__separator-img {
        height: auto;
        width: 150px;
    }

    .contact__info {
        align-items: center;
    }
}

@media (max-width: 768px) {
    .header__container {
        flex-direction: column;
    }

    .about__container,
    .contact__container {
        padding: 30px 20px;
    }

    .header__logo{
        margin-bottom: 30px;
    }


    .offer__title {
        text-align: center;
    }

    .offer__icon {
        display:  none;
    }

    .gallery__container {
        flex-direction: column;
        align-items: center;
    }

    .gallery__image {
        margin: 0 auto;
        max-width: 60%;
    }
    
    .contact__header {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .contact__header-img {
        display: none;
    }

    .form__row .form__group {
        max-width: 100%;
    }

    .hero__image {
        margin: 0 auto;
    }
    
    .form__row {
        flex-direction: column;
    }
    
    .about__badge-img {
        width: 70px;
    }
}

@media (max-width: 496px) {
    .offer {
        padding: 25px;
    }

    .about__content, .offer__column {
        max-width: 100%;
    }

    .hero__image {
        width: 100%;
    }

    .about__image {
        width: 100%;
    }

    .about__badge-img {
        left: -2%;
    }

    .offer__title {
        margin-bottom: 25px;
    }

    .offer__text {
        margin-bottom: 15px;
    }

    .offer__btn {
        margin-top: 20px;
    }

    .gallery {
        padding: 20px 0;
    }

    .gallery__image {
        max-width: 80%;
    }

    .contact__separator {
        display: none;
    }
    
    .contact__info {
        margin-top: 20px;
    }

    h1, h2 {
        font-size: 34px!important;
    }

    h3, p {
        font-size: 16px!important;
    }
}
