/* =========================================================
   TRAVEL CONTACT PAGE
   CONTACT PAGE - COMPLETE RESPONSIVE CSS
========================================================= */

:root {
    --contact-blue: #0756A5;
    --contact-blue-dark: #062D63;
    --contact-blue-light: #EAF4FF;
    --contact-orange: #F59E0B;
    --contact-orange-dark: #D97706;
    --contact-orange-light: #FFF7E6;

    --contact-navy: #142033;
    --contact-navy-2: #1b2940;

    --contact-text: #172033;
    --contact-muted: #727c8b;

    --contact-bg: #f7f9fc;
    --contact-white: #ffffff;

    --contact-border: #e3e8ef;

    --contact-shadow:
        0 15px 45px rgba(20, 32, 51, 0.07);

    --contact-radius: 14px;
}


/* =========================================================
   PAGE
========================================================= */

.contact-page {
    width: 100%;
    min-height: 100vh;

    background: var(--contact-bg);

    color: var(--contact-text);

    overflow: hidden;
}


/* =========================================================
   COMMON CONTAINER
   4 SIDE PAGE PADDING
========================================================= */

.contact-page .container {
    width: min(1180px, calc(100% - 48px));

    margin-left: auto;
    margin-right: auto;

    padding-left: 0;
    padding-right: 0;

    box-sizing: border-box;
}


/* =========================================================
   CONTACT HERO
========================================================= */

.contact-page-hero {
    position: relative;

    width: 100%;

    padding: 82px 0 58px;

    background:
        radial-gradient(
            circle at 88% 18%,
            rgba(7, 86, 165, 0.08),
            transparent 27%
        ),
        radial-gradient(
            circle at 8% 80%,
            rgba(20, 32, 51, 0.035),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #ffffff 0%,
            #fafbfc 52%,
            #f7f8fa 100%
        );

    border-bottom: 1px solid var(--contact-border);

    box-sizing: border-box;
}


/* =========================================================
   HERO DECORATIVE PATTERN
========================================================= */

.contact-page-hero .about-hero-pattern {
    position: absolute;

    inset: 0;

    pointer-events: none;

    opacity: 0.35;
}

.contact-page-hero .about-hero-pattern::before {
    content: "";

    position: absolute;

    width: 380px;
    height: 380px;

    right: -180px;
    top: -180px;

    border-radius: 50%;

    border: 1px solid rgba(7, 86, 165, 0.08);
}

.contact-page-hero .about-hero-pattern::after {
    content: "";

    position: absolute;

    width: 240px;
    height: 240px;

    left: -120px;
    bottom: -130px;

    border-radius: 50%;

    border: 1px solid rgba(20, 32, 51, 0.06);
}


/* =========================================================
   HERO CONTENT
========================================================= */

.contact-page-hero .about-hero-content {
    position: relative;

    z-index: 2;

    width: 100%;

    display: flex;
    flex-direction: column;

    align-items: center;

    text-align: center;
}


/* =========================================================
   HERO EYEBROW
========================================================= */

.contact-page-hero .eyebrow {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    margin: 0 0 17px;

    color: var(--contact-blue);

    font-size: 12px;
    line-height: 1;

    font-weight: 800;

    letter-spacing: 0.14em;

    text-transform: uppercase;
}

.contact-page-hero .eyebrow::before,
.contact-page-hero .eyebrow::after {
    content: "";

    width: 28px;
    height: 1px;

    background: var(--contact-blue);

    opacity: 0.75;
}


/* =========================================================
   HERO TITLE
========================================================= */

.contact-page-hero h1 {
    width: 100%;

    max-width: 900px;

    margin: 0 auto;

    color: var(--contact-navy);

    font-family: var(--font-display);

    font-size: clamp(
        2.8rem,
        5.4vw,
        4.7rem
    );

    line-height: 1.02;

    font-weight: 750;

    letter-spacing: -0.045em;

    text-align: center;
}

.contact-page-hero h1 em {
    color: var(--contact-blue);

    font-style: normal;
}


/* =========================================================
   HERO DESCRIPTION
========================================================= */

.contact-page-hero p {
    width: 100%;

    max-width: 720px;

    margin: 20px auto 0;

    color: var(--contact-muted);

    font-size: 15px;

    line-height: 1.8;

    text-align: center;
}


/* =========================================================
   BREADCRUMB
   PROPER CENTER + 4 SIDE SPACING
========================================================= */

.contact-page .about-breadcrumb {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex-wrap: wrap;

    gap: 8px;

    width: auto;
    max-width: calc(100% - 20px);

    margin: 25px auto 0;

    padding: 10px 17px;

    box-sizing: border-box;

    background: rgba(255,255,255,0.96);

    border: 1px solid #e1e6ed;

    border-radius: 50px;

    box-shadow:
        0 8px 25px rgba(20, 32, 51, 0.06);

    font-size: 12px;

    line-height: 1.2;

    text-align: center;
}


/* Breadcrumb Home */

.contact-page .about-breadcrumb a {
    display: inline-flex;

    align-items: center;

    color: var(--contact-navy);

    font-size: 12px;

    font-weight: 800;

    text-decoration: none;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.contact-page .about-breadcrumb a:hover {
    color: var(--contact-blue);

    transform: translateY(-1px);
}


/* Slash */

.contact-page .about-breadcrumb span {
    display: inline-flex;

    align-items: center;

    color: var(--contact-blue);

    font-size: 13px;

    font-weight: 800;
}


/* Current Page */

.contact-page .about-breadcrumb span:last-child {
    color: #707a89;

    font-weight: 600;
}


/* =========================================================
   SECOND HERO SECTION
========================================================= */

.contact-hero {
    width: 100%;

    padding: 78px 0 48px;

    background: var(--contact-bg);

    text-align: center;

    box-sizing: border-box;
}

.contact-hero .container {
    display: flex;

    flex-direction: column;

    align-items: center;
}


/* =========================================================
   CONTACT EYEBROW
========================================================= */

.contact-eyebrow {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    margin: 0 0 15px;

    color: var(--contact-blue);

    font-size: 11px;

    line-height: 1;

    font-weight: 800;

    letter-spacing: 0.15em;

    text-transform: uppercase;
}

.contact-eyebrow::before,
.contact-eyebrow::after {
    content: "";

    width: 30px;
    height: 1px;

    background: var(--contact-blue);
}


/* =========================================================
   CONTACT HERO TITLE
========================================================= */

.contact-hero h1 {
    width: 100%;

    max-width: 950px;

    margin: 0 auto;

    color: var(--contact-navy);

    font-family: var(--font-display);

    font-size: clamp(
        2.5rem,
        5vw,
        4rem
    );

    line-height: 1.08;

    font-weight: 750;

    letter-spacing: -0.04em;

    text-align: center;
}


/* =========================================================
   CONTACT HERO TEXT
========================================================= */

.contact-hero p {
    width: 100%;

    max-width: 700px;

    margin: 18px auto 0;

    color: var(--contact-muted);

    font-size: 15px;

    line-height: 1.8;

    text-align: center;
}


/* =========================================================
   MAIN CONTACT SECTION
========================================================= */

.contact-section {
    width: 100%;

    padding: 30px 0 90px;

    background: var(--contact-bg);

    box-sizing: border-box;
}


/* =========================================================
   CONTACT LAYOUT
========================================================= */

.contact-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 0.88fr)
        minmax(0, 1.12fr);

    gap: 30px;

    align-items: stretch;

    width: 100%;
}


/* =========================================================
   CONTACT INFORMATION CARD
========================================================= */

.contact-info {
    position: relative;

    min-width: 0;

    overflow: hidden;

    padding: 40px;

    border-radius: var(--contact-radius);

    color: #fff;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(245,158,11,0.20),
            transparent 31%
        ),
        radial-gradient(
            circle at 0% 100%,
            rgba(7,86,165,0.07),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            #142033 0%,
            #0e1829 100%
        );

    border: 1px solid rgba(255,255,255,0.06);

    box-shadow:
        0 18px 50px rgba(14, 24, 41, 0.13);

    box-sizing: border-box;
}


/* Decorative Circle */

.contact-info::before {
    content: "";

    position: absolute;

    width: 280px;
    height: 280px;

    right: -130px;
    top: -130px;

    border-radius: 50%;

    border: 1px solid rgba(245,158,11,0.18);

    pointer-events: none;
}

.contact-info::after {
    content: "";

    position: absolute;

    width: 190px;
    height: 190px;

    left: -105px;
    bottom: -100px;

    border-radius: 50%;

    border: 1px solid rgba(255,255,255,0.06);

    pointer-events: none;
}


/* Content above decoration */

.contact-info > * {
    position: relative;

    z-index: 2;
}


/* =========================================================
   CONTACT INFO HEADING
========================================================= */

.contact-info h2 {
    margin: 0 0 12px;

    color: #fff;

    font-family: var(--font-display);

    font-size: 2rem;

    line-height: 1.15;

    font-weight: 700;

    letter-spacing: -0.025em;
}

.contact-info > p {
    margin: 0 0 30px;

    color: rgba(255,255,255,0.68);

    font-size: 14px;

    line-height: 1.75;
}


/* =========================================================
   CONTACT DETAILS
========================================================= */

.contact-details {
    display: flex;

    flex-direction: column;

    gap: 13px;

    width: 100%;
}


/* =========================================================
   CONTACT ITEM
========================================================= */

.contact-item {
    display: flex;

    align-items: flex-start;

    gap: 13px;

    width: 100%;

    padding: 13px;

    box-sizing: border-box;

    border-radius: 9px;

    border: 1px solid rgba(255,255,255,0.08);

    background: rgba(255,255,255,0.035);

    transition:
        transform 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

.contact-item:hover {
    transform: translateX(5px);

    border-color: rgba(245,158,11,0.45);

    background: rgba(245,158,11,0.08);

    box-shadow:
        0 8px 22px rgba(0,0,0,0.08);
}


/* =========================================================
   CONTACT ICON
========================================================= */

.contact-item-icon {
    width: 40px;
    height: 40px;

    min-width: 40px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 8px;

    color: #F59E0B;

    background: rgba(245,158,11,0.12);

    font-size: 16px;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.contact-item:hover .contact-item-icon {
    color: #fff;

    background: var(--contact-blue);

    transform: scale(1.06);
}


/* =========================================================
   CONTACT ITEM CONTENT
========================================================= */

.contact-item-content {
    min-width: 0;

    flex: 1;
}

.contact-item-content small {
    display: block;

    margin: 0 0 3px;

    color: #F59E0B;

    font-size: 10px;

    line-height: 1.2;

    font-weight: 800;

    letter-spacing: 0.1em;

    text-transform: uppercase;
}

.contact-item-content a,
.contact-item-content span {
    display: block;

    color: rgba(255,255,255,0.90);

    font-size: 13px;

    line-height: 1.6;

    text-decoration: none;

    word-break: break-word;

    overflow-wrap: anywhere;
}

.contact-item-content a {
    transition: color 0.25s ease;
}

.contact-item-content a:hover {
    color: #F59E0B;
}


/* =========================================================
   SOCIAL
========================================================= */

.contact-social {
    margin-top: 28px;
}

.contact-social-title {
    margin-bottom: 12px;

    color: #fff;

    font-size: 11px;

    line-height: 1.2;

    font-weight: 800;

    letter-spacing: 0.1em;

    text-transform: uppercase;
}

.contact-social-icons {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;
}

.contact-social-icons a {
    width: 38px;
    height: 38px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    border-radius: 8px;

    color: #fff;

    background: rgba(255,255,255,0.06);

    border: 1px solid rgba(255,255,255,0.12);

    text-decoration: none;

    transition:
        transform 0.3s ease,
        background 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

.contact-social-icons a:hover {
    color: #fff;

    background: var(--contact-blue);

    border-color: var(--contact-blue);

    transform: translateY(-4px);

    box-shadow:
        0 9px 22px rgba(245,158,11,0.28);
}


/* =========================================================
   FORM BOX
========================================================= */

.contact-form-box {
    min-width: 0;

    padding: 40px;

    background: #fff;

    border: 1px solid var(--contact-border);

    border-radius: var(--contact-radius);

    box-shadow: var(--contact-shadow);

    box-sizing: border-box;
}


/* =========================================================
   FORM HEADING
========================================================= */

.contact-form-box h2 {
    margin: 0 0 8px;

    color: var(--contact-navy);

    font-family: var(--font-display);

    font-size: 2rem;

    line-height: 1.15;

    font-weight: 700;

    letter-spacing: -0.025em;
}

.contact-form-box > p {
    margin: 0 0 27px;

    color: var(--contact-muted);

    font-size: 14px;

    line-height: 1.7;
}


/* =========================================================
   FORM
========================================================= */

.contact-form {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 17px;

    width: 100%;
}


/* =========================================================
   FORM GROUP
========================================================= */

.form-group {
    display: flex;

    flex-direction: column;

    gap: 7px;

    min-width: 0;
}

.form-group.full {
    grid-column: 1 / -1;
}


/* =========================================================
   LABEL
========================================================= */

.form-group label {
    margin: 0;

    color: var(--contact-text);

    font-size: 12px;

    line-height: 1.3;

    font-weight: 800;
}

.form-group label span {
    color: var(--contact-blue);
}


/* =========================================================
   INPUT / SELECT / TEXTAREA
========================================================= */

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;

    box-sizing: border-box;

    padding: 13px 14px;

    border: 1px solid #dce2e9;

    border-radius: 8px;

    outline: none;

    background: #f9fafb;

    color: var(--contact-text);

    font-family: inherit;

    font-size: 14px;

    line-height: 1.4;

    transition:
        border-color 0.25s ease,
        background 0.25s ease,
        box-shadow 0.25s ease;
}

.form-group input {
    height: 47px;
}

.form-group textarea {
    min-height: 125px;

    resize: vertical;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: #9aa3af;
}


/* =========================================================
   FORM FOCUS
========================================================= */

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    border-color: var(--contact-blue);

    background: #fff;

    box-shadow:
        0 0 0 3px rgba(245,158,11,0.08);
}


/* =========================================================
   SELECT
========================================================= */

.form-group select {
    cursor: pointer;

    appearance: auto;
}


/* =========================================================
   SUBMIT
========================================================= */

.contact-submit {
    grid-column: 1 / -1;

    margin-top: 3px;
}

.contact-submit button {
    width: 100%;

    min-height: 51px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 6px;

    padding: 12px 20px;

    border: 0;

    border-radius: 8px;

    background:
        linear-gradient(
            135deg,
            var(--contact-blue),
            var(--contact-blue-dark)
        );

    color: #fff;

    font-family: inherit;

    font-size: 13px;

    font-weight: 800;

    cursor: pointer;

    box-shadow:
        0 9px 22px rgba(7,86,165,0.16);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background 0.3s ease;
}

.contact-submit button:hover {
    background:
        linear-gradient(
            135deg,
            var(--contact-blue-dark),
            #D97706
        );

    transform: translateY(-2px);

    box-shadow:
        0 13px 28px rgba(245,158,11,0.25);
}

.contact-submit button i {
    transition: transform 0.3s ease;
}

.contact-submit button:hover i {
    transform: translateX(4px);
}


/* =========================================================
   ADDRESS SECTION
========================================================= */

.contact-address-section {
    width: 100%;

    padding: 0 0 90px;

    background: var(--contact-bg);

    box-sizing: border-box;
}

.address-card {
    width: 100%;

    padding: 35px;

    box-sizing: border-box;

    border: 1px solid var(--contact-border);

    border-radius: var(--contact-radius);

    background: #fff;

    text-align: center;

    box-shadow:
        0 10px 35px rgba(20,32,51,0.04);
}

.address-card h3 {
    margin: 0 0 10px;

    color: var(--contact-navy);

    font-family: var(--font-display);

    font-size: 1.7rem;

    line-height: 1.2;

    font-weight: 700;
}

.address-card p {
    width: 100%;

    max-width: 720px;

    margin: 0 auto;

    color: var(--contact-muted);

    font-size: 14px;

    line-height: 1.75;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

    .contact-page .container {
        width: min(
            100% - 40px,
            900px
        );
    }

    .contact-layout {
        grid-template-columns: 1fr;

        gap: 24px;
    }

    .contact-info,
    .contact-form-box {
        padding: 32px;
    }

    .contact-page-hero {
        padding: 70px 0 52px;
    }

    .contact-hero {
        padding: 65px 0 40px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 650px) {

    .contact-page .container {
        width: calc(100% - 32px);

        max-width: none;
    }


    /* Hero */

    .contact-page-hero {
        padding: 58px 0 42px;
    }


    .contact-page-hero .eyebrow {
        margin-bottom: 14px;

        font-size: 10px;

        letter-spacing: 0.12em;
    }

    .contact-page-hero .eyebrow::before,
    .contact-page-hero .eyebrow::after {
        width: 20px;
    }


    /* Main Hero Title */

    .contact-page-hero h1 {
        max-width: 100%;

        font-size: 2.65rem;

        line-height: 1.06;

        letter-spacing: -0.035em;
    }


    /* Hero Text */

    .contact-page-hero p {
        margin-top: 16px;

        font-size: 13.5px;

        line-height: 1.7;
    }


    /* Breadcrumb */

    .contact-page .about-breadcrumb {
        max-width: calc(100% - 4px);

        margin-top: 21px;

        padding: 8px 13px;

        gap: 6px;

        font-size: 11px;

        border-radius: 40px;
    }

    .contact-page .about-breadcrumb a,
    .contact-page .about-breadcrumb span {
        font-size: 11px;
    }


    /* Second Hero */

    .contact-hero {
        padding: 55px 0 35px;
    }

    .contact-eyebrow {
        margin-bottom: 13px;

        font-size: 10px;
    }

    .contact-eyebrow::before,
    .contact-eyebrow::after {
        width: 22px;
    }

    .contact-hero h1 {
        font-size: 2.45rem;

        line-height: 1.08;

        letter-spacing: -0.03em;
    }

    .contact-hero p {
        margin-top: 15px;

        font-size: 13.5px;

        line-height: 1.7;
    }


    /* Contact Section */

    .contact-section {
        padding: 18px 0 60px;
    }


    /* Layout */

    .contact-layout {
        grid-template-columns: 1fr;

        gap: 20px;
    }


    /* Info */

    .contact-info {
        padding: 25px 20px;

        border-radius: 11px;
    }

    .contact-info h2,
    .contact-form-box h2 {
        font-size: 1.7rem;
    }

    .contact-info > p {
        margin-bottom: 24px;

        font-size: 13px;
    }


    /* Contact item */

    .contact-details {
        gap: 10px;
    }

    .contact-item {
        padding: 11px;

        gap: 11px;
    }

    .contact-item-icon {
        width: 37px;
        height: 37px;

        min-width: 37px;

        font-size: 15px;
    }

    .contact-item-content a,
    .contact-item-content span {
        font-size: 12.5px;
    }


    /* Social */

    .contact-social {
        margin-top: 23px;
    }


    /* Form */

    .contact-form-box {
        padding: 25px 20px;

        border-radius: 11px;
    }

    .contact-form {
        grid-template-columns: 1fr;

        gap: 15px;
    }

    .form-group.full,
    .contact-submit {
        grid-column: auto;
    }

    .form-group input {
        height: 46px;
    }

    .form-group textarea {
        min-height: 115px;
    }


    /* Address */

    .contact-address-section {
        padding-bottom: 60px;
    }

    .address-card {
        padding: 25px 18px;

        border-radius: 11px;
    }

    .address-card h3 {
        font-size: 1.5rem;
    }

    .address-card p {
        font-size: 13px;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .contact-page .container {
        width: calc(100% - 28px);
    }


    .contact-page-hero {
        padding: 48px 0 35px;
    }


    .contact-page-hero h1 {
        font-size: 2.2rem;

        line-height: 1.08;
    }


    .contact-page-hero p {
        font-size: 13px;
    }


    .contact-page .about-breadcrumb {
        margin-top: 18px;

        padding: 7px 11px;

        gap: 5px;
    }


    .contact-page .about-breadcrumb a,
    .contact-page .about-breadcrumb span {
        font-size: 10.5px;
    }


    .contact-hero {
        padding: 45px 0 30px;
    }


    .contact-hero h1 {
        font-size: 2.05rem;
    }


    .contact-info,
    .contact-form-box {
        padding: 21px 16px;
    }


    .contact-info h2,
    .contact-form-box h2 {
        font-size: 1.55rem;
    }


    .contact-item-content a,
    .contact-item-content span {
        font-size: 12px;
    }


    .contact-social-icons a {
        width: 36px;
        height: 36px;
    }


    .contact-submit button {
        min-height: 48px;
    }
}


/* =========================================================
   EXTRA SMALL DEVICES
========================================================= */

@media (max-width: 350px) {

    .contact-page .container {
        width: calc(100% - 22px);
    }

    .contact-page-hero h1 {
        font-size: 2rem;
    }

    .contact-hero h1 {
        font-size: 1.9rem;
    }

    .contact-page .about-breadcrumb {
        padding: 6px 9px;
    }
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.contact-page a:focus-visible,
.contact-page button:focus-visible,
.contact-page input:focus-visible,
.contact-page textarea:focus-visible,
.contact-page select:focus-visible {
    outline: 2px solid var(--contact-blue);

    outline-offset: 3px;
}


/* =========================================================
   BLUE / ORANGE SELECTION
========================================================= */

.contact-page ::selection {
    background: var(--contact-blue);

    color: #fff;
}