/* ============================================================
   CONTACT US PAGE — built on top of styles.css
   Reuses: fonts, navbar, contact, footer, root variables
   ============================================================ */

:root {
    --cu-gold: #c9a85c;
    --cu-gold-soft: rgba(201, 168, 92, 0.55);
}

.contact-us-page { background: #000; }

.cu-container {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 4rem;
    position: relative;
    z-index: 2;
}

/* ============ HERO HEADER (plant + logo) ============ */
.cu-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100svh;
    min-height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cu-hero-img {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0%;
    object-fit: cover;
    object-position: center;
    will-change: transform;
    -webkit-mask-image: linear-gradient(to bottom, transparent, black 25%, black 75%, transparent);
    mask-image: linear-gradient(to bottom, transparent, black 25%, black 75%, transparent);
}
.cu-hero-logo {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 1.5rem;
    margin-top: -6%;
    filter: drop-shadow(0 12px 40px rgba(0,0,0,.5));
}
.cu-hero-logo img {
    width: clamp(280px, 38vw, 640px);
    height: auto;
}

/* ============ CONTACT MAIN (shared background) ============ */
.cu-main {
    position: relative;
    width: 100%;
    padding-bottom: 7rem;
}
.cu-bg {
    position: absolute;
    top: -10%;                 /* overscan so the parallax shift never exposes a hard edge */
    left: 0;
    width: 100%;
    height: 120%;
    object-fit: cover;
    object-position: top center;
    z-index: 0;
    will-change: transform;
    -webkit-mask-image: linear-gradient(to bottom, transparent, black 25%, black 60%, transparent);
    mask-image: linear-gradient(to bottom, transparent, black 25%, black 60%, transparent);
    opacity: .55;
}

/* ----- CONTACT US big heading ----- */
.cu-hero-band {
    min-height: 55vh;
    display: flex;
    align-items: flex-end;
    padding-bottom: 5rem;
}
.cu-title {
    font-size: clamp(3rem, 11vw, 9rem);
    font-weight: 900;
    letter-spacing: 4px;
    line-height: 1;
    color: var(--light-text);
    margin: 0;
    text-shadow: 0 8px 40px rgba(0,0,0,.5);
}
.cu-title span {
    display: block;
    font-size: .42em;
    letter-spacing: 8px;
    color: var(--cu-gold);
}

/* ----- shared headings/text ----- */
.cu-heading {
    font-size: clamp(2.2rem, 5.5vw, 4rem);
    font-weight: 900;
    letter-spacing: 3px;
    color: var(--light-text);
    margin: 0 0 1rem;
}
.cu-text {
    font-size: clamp(.95rem, 1.4vw, 1.15rem);
    font-weight: 300;
    line-height: 1.7;
    color: rgba(255,255,255,.85);
    max-width: 900px;
    margin: 0;
}

.cu-get-in-touch { margin-bottom: 5rem; }
.cu-get-in-touch .cu-text { margin-bottom: 2.5rem; }

/* ============ CONTACT FORM ============ */
.cu-form { width: 100%; }

.cu-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: 1px solid var(--cu-gold-soft);
    background: hsla(47, 39%, 53%, 24%);
    backdrop-filter: blur(2px);
}
.cu-grid input,
.cu-grid textarea {
    width: 100%;
    background: transparent;
    border: 0;
    border-right: 1px solid var(--cu-gold-soft);
    border-bottom: 1px solid var(--cu-gold-soft);
    padding: 1.4rem 1.5rem;
    color: var(--light-text);
    font-family: var(--font-gotham);
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: .5px;
    outline: none;
    transition: background .25s ease, box-shadow .25s ease;
}
/* remove right border on the second column to avoid double edge */
.cu-grid input:nth-child(2n),
.cu-grid .full {
    border-right: 0;
}
.cu-grid .full {
    grid-column: 1 / -1;
}
.cu-grid textarea {
    resize: vertical;
    min-height: 150px;
    border-bottom: 0;
}
.cu-grid input::placeholder,
.cu-grid textarea::placeholder {
    color: rgba(255, 255, 255, 0.78);
    font-weight: 300;
}
.cu-grid input:focus,
.cu-grid textarea:focus {
    background: rgba(201, 168, 92, 0.12);
    box-shadow: inset 0 0 0 1px var(--cu-gold);
}
.cu-grid input.is-invalid,
.cu-grid textarea.is-invalid {
    background: rgba(220, 53, 69, 0.14);
    box-shadow: inset 0 0 0 1px rgba(220, 53, 69, 0.8);
}

/* ----- submit ----- */
.cu-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 2rem;
}
.submit-btn {
    background: var(--cu-gold);
    color: #fff;
    border: 0;
    padding: 1rem 4rem;
    font-family: var(--font-gotham);
    font-weight: 700;
    font-size: 1.2rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.submit-btn:hover {
    background: #d8b96a;
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(201, 168, 92, 0.35);
}

/* ============ OFFICES ============ */
.cu-offices { margin-bottom: 5rem; }

.office-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 2rem;
}
.office-card {
    position: relative;
    border: 1px solid var(--cu-gold-soft);
    background: rgba(20, 18, 10, 0.55);
    backdrop-filter: blur(2px);
    padding: 2.2rem 1.8rem;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.office-card:hover {
    transform: translateY(-6px);
    border-color: var(--cu-gold);
    box-shadow: 0 16px 40px rgba(201, 168, 92, 0.18);
}
.office-tag {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--cu-gold);
    border: 1px solid var(--cu-gold-soft);
    padding: .3rem .8rem;
    margin-bottom: 1.2rem;
}
.office-card h3 {
    font-size: clamp(1.3rem, 2.2vw, 1.8rem);
    font-weight: 900;
    letter-spacing: 3px;
    color: var(--light-text);
    margin: 0 0 .8rem;
}
.office-address {
    font-size: .95rem;
    font-weight: 300;
    line-height: 1.65;
    color: rgba(255,255,255,.85);
    margin: 0 0 1.2rem;
}
.office-lines {
    list-style: none;
    margin: 0;
    padding: 1.2rem 0 0;
    border-top: 1px solid rgba(201, 168, 92, 0.25);
    display: grid;
    gap: .45rem;
}
.office-lines li {
    font-size: .88rem;
    font-weight: 300;
    color: rgba(255,255,255,.8);
}
.office-lines strong {
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--light-text);
}

.cu-email-line {
    margin: 2.5rem 0 0;
    font-size: clamp(1rem, 1.6vw, 1.25rem);
    font-weight: 300;
    color: rgba(255,255,255,.85);
}
.cu-email-line strong {
    font-weight: 900;
    letter-spacing: 2px;
    color: var(--light-text);
}
.cu-email-line a {
    color: var(--cu-gold);
    text-decoration: none;
    transition: color .25s ease;
}
.cu-email-line a:hover { color: #d8b96a; }

/* ============ MAP ============ */
.cu-map {
    border: 1px solid var(--cu-gold-soft);
    line-height: 0;
}
.cu-map iframe {
    width: 100%;
    height: 460px;
    border: 0;
    filter: grayscale(1) invert(.92) contrast(.88);   /* dark theme map */
}

/* ============ RESPONSIVE ============ */

/* ----- large tablets / small laptops ----- */
@media (max-width: 1200px) {
    .cu-container { padding: 0 3rem; }
}

/* ----- tablets (landscape) ----- */
@media (max-width: 992px) {
    .cu-container { padding: 0 2.5rem; }
    .cu-hero-band { min-height: 45vh; padding-bottom: 4rem; }
    .office-grid { grid-template-columns: 1fr 1fr; }
    .cu-get-in-touch, .cu-offices { margin-bottom: 4rem; }
}

/* ----- tablets (portrait) ----- */
@media (max-width: 768px) {
    .cu-container { padding: 0 1.5rem; }
    .cu-hero { min-height: 400px; }
    .cu-hero-logo img { width: clamp(220px, 55vw, 340px); }

    .cu-hero-band { min-height: 35vh; padding-bottom: 3rem; }
    .cu-title { letter-spacing: 2px; }
    .cu-title span { letter-spacing: 5px; }

    .cu-grid { grid-template-columns: 1fr; }
    .cu-grid input,
    .cu-grid textarea { border-right: 0; padding: 1.2rem 1.2rem; }
    .cu-actions { justify-content: stretch; }
    .cu-actions .submit-btn { width: 100%; padding: 1rem; }

    .office-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .office-card { padding: 1.8rem 1.4rem; }
    .office-card:hover { transform: none; }

    .cu-map iframe { height: 340px; }
    .cu-main { padding-bottom: 5rem; }
}

/* ----- phones ----- */
@media (max-width: 576px) {
    .cu-container { padding: 0 1rem; }
    .cu-hero { min-height: 340px; }
    .cu-hero-logo img { width: clamp(180px, 60vw, 260px); }

    .cu-hero-band { min-height: 28vh; padding-bottom: 2.5rem; }
    .cu-heading { letter-spacing: 2px; }

    .cu-grid input,
    .cu-grid textarea { padding: 1.05rem 1rem; font-size: .95rem; }
    .submit-btn { font-size: 1.05rem; letter-spacing: 2px; }

    .office-tag { letter-spacing: 2px; }
    .cu-map iframe { height: 280px; }
    .cu-main { padding-bottom: 4rem; }
}

/* ----- short landscape phones ----- */
@media (max-height: 480px) and (orientation: landscape) {
    .cu-hero { height: 100svh; min-height: 0; }
    .cu-hero-logo img { width: clamp(160px, 24vw, 240px); }
}
