.contact-page {
    background: #f8f7f4;
    color: #161616;
}

.contact-page .editorial-header {
    background: rgba(255, 255, 255, .96);
}

.contact-page .editorial-nav .is-current {
    color: #a78042;
}

.contact-page .editorial-nav .is-current::after {
    transform: scaleX(1);
}

.contact-hero {
    overflow: hidden;
    border-bottom: 1px solid #e6e2da;
    background:
        radial-gradient(circle at 80% 45%, rgba(197, 166, 112, .22), transparent 26%),
        linear-gradient(115deg, #f5f3ef 0%, #fff 58%, #ece7df 100%);
}

.contact-hero-grid {
    min-height: 560px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .85fr);
    align-items: center;
    gap: 7vw;
    padding-top: 66px;
    padding-bottom: 66px;
}

.contact-breadcrumb {
    display: flex;
    gap: 10px;
    margin-bottom: 60px;
    color: #85817b;
    font-size: 12px;
    letter-spacing: .05em;
}

.contact-breadcrumb a:hover { color: #a78042; }

.contact-hero-copy h1,
.contact-section-heading h2,
.contact-address-panel h2 {
    margin: 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 400;
    letter-spacing: -.035em;
}

.contact-hero-copy h1 {
    max-width: 680px;
    font-size: clamp(52px, 5.1vw, 86px);
    line-height: .98;
}

.contact-hero-copy > p:not(.editorial-kicker) {
    max-width: 600px;
    margin: 34px 0 0;
    color: #67635d;
    font-size: 15px;
    line-height: 1.85;
}

.contact-hero-actions {
    display: flex;
    align-items: center;
    gap: 34px;
    margin-top: 36px;
}

.contact-hero-art {
    position: relative;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 50%;
}

.contact-hero-art::before,
.contact-hero-art::after,
.contact-art-ring {
    content: '';
    position: absolute;
    border: 1px solid rgba(167, 128, 66, .28);
    border-radius: 50%;
}

.contact-hero-art::before { inset: 3%; }
.contact-hero-art::after { inset: 13%; }
.contact-art-ring { inset: 23%; }

.contact-hero-art img {
    position: relative;
    z-index: 1;
    width: 78%;
    height: 145px;
    object-fit: contain;
    object-position: center;
    mix-blend-mode: multiply;
    opacity: .82;
}

.contact-hero-art p {
    position: absolute;
    z-index: 2;
    bottom: 23%;
    margin: 0;
    text-align: center;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 17px;
    letter-spacing: .28em;
}

.contact-hero-art small {
    display: block;
    margin-top: 8px;
    color: #8f6e39;
    font-family: Arial, sans-serif;
    font-size: 8px;
    letter-spacing: .22em;
}

.contact-details,
.contact-location,
.company-details {
    padding: 92px 0;
}

.contact-details { background: #fff; }

.contact-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .6fr);
    align-items: end;
    gap: 60px;
    margin-bottom: 48px;
}

.contact-section-heading.compact { grid-template-columns: 1fr; }

.contact-section-heading h2,
.contact-address-panel h2 {
    font-size: clamp(38px, 3.7vw, 58px);
    line-height: 1.05;
}

.contact-section-heading > p {
    margin: 0 0 5px;
    color: #77726b;
    font-size: 14px;
    line-height: 1.8;
}

.contact-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid #dfdbd3;
}

.contact-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 250px;
    padding: 36px;
    border-right: 1px solid #dfdbd3;
    background: #fff;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}

.contact-card:last-child { border-right: 0; }
.contact-card:hover { background: #171717; color: #fff; transform: translateY(-5px); }

.contact-card-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    margin-bottom: 32px;
    border: 1px solid #b9965d;
    border-radius: 50%;
}

.contact-card-icon svg {
    width: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.3;
}

.contact-card-icon .fill-dot { fill: currentColor; stroke: none; }
.contact-card small { color: #9b7a45; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.contact-card strong { overflow-wrap: anywhere; margin-top: 10px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(21px, 2vw, 28px); font-weight: 400; }
.contact-card > span:last-child { margin-top: auto; padding-top: 28px; color: #77726b; font-size: 11px; letter-spacing: .06em; }
.contact-card:hover > span:last-child { color: #cdb17f; }

.contact-location { background: #f1efea; }

.contact-location-grid {
    display: grid;
    grid-template-columns: minmax(330px, .58fr) minmax(0, 1.42fr);
    gap: 64px;
    align-items: center;
}

.contact-address-panel address {
    margin: 34px 0;
    color: #6f6a63;
    font-size: 14px;
    font-style: normal;
    line-height: 1.85;
}

.contact-address-panel address strong {
    display: block;
    margin-bottom: 13px;
    color: #1a1a1a;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 19px;
    font-weight: 400;
}

.contact-map-wrap {
    position: relative;
    min-height: 510px;
    overflow: hidden;
    background: #ddd8cf;
    box-shadow: 0 18px 55px rgba(50, 40, 25, .12);
}

.contact-map-wrap iframe { width: 100%; height: 510px; border: 0; filter: grayscale(.78) contrast(.94) sepia(.08); }

.contact-map-link {
    position: absolute;
    right: 24px;
    bottom: 24px;
    left: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 17px 20px;
    color: #fff;
    background: rgba(20, 20, 20, .94);
    backdrop-filter: blur(8px);
}

.contact-map-link span { display: flex; flex-direction: column; gap: 4px; }
.contact-map-link b { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.contact-map-link small { color: #c8c4bd; font-size: 10px; }
.contact-map-link i { color: #c8a76e; font-family: Georgia, serif; font-size: 26px; font-style: normal; }

.company-details { background: #fff; }

.company-detail-grid {
    display: grid;
    grid-template-columns: 1.35fr .7fr .8fr 1.35fr;
    margin: 0;
    border-top: 1px solid #dedad2;
    border-bottom: 1px solid #dedad2;
}

.company-detail-grid div { padding: 30px 28px; border-right: 1px solid #dedad2; }
.company-detail-grid div:first-child { padding-left: 0; }
.company-detail-grid div:last-child { padding-right: 0; border-right: 0; }
.company-detail-grid dt { margin-bottom: 10px; color: #9b7a45; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.company-detail-grid dd { margin: 0; color: #292929; font-size: 13px; line-height: 1.6; }
.company-detail-grid dd span { font-variant-numeric: tabular-nums; letter-spacing: .025em; }

@media (max-width: 980px) {
    .contact-hero-grid { min-height: auto; grid-template-columns: 1fr .72fr; gap: 30px; }
    .contact-hero-art p { bottom: 18%; }
    .contact-card-grid { grid-template-columns: 1fr 1fr; }
    .contact-card:nth-child(2) { border-right: 0; }
    .contact-card:last-child { grid-column: 1 / -1; border-top: 1px solid #dfdbd3; }
    .contact-location-grid { grid-template-columns: 1fr; }
    .company-detail-grid { grid-template-columns: 1fr 1fr; }
    .company-detail-grid div:nth-child(2) { border-right: 0; }
    .company-detail-grid div:nth-child(n+3) { border-top: 1px solid #dedad2; }
    .company-detail-grid div:first-child,
    .company-detail-grid div:nth-child(3) { padding-left: 0; }
}

@media (max-width: 720px) {
    .contact-hero-grid { display: block; padding-top: 42px; padding-bottom: 50px; }
    .contact-breadcrumb { margin-bottom: 45px; }
    .contact-hero-copy h1 { font-size: clamp(44px, 13vw, 62px); }
    .contact-hero-copy > p:not(.editorial-kicker) br { display: none; }
    .contact-hero-actions { align-items: flex-start; flex-direction: column; gap: 24px; }
    .contact-hero-art { width: min(330px, 90vw); margin: 35px auto 0; }
    .contact-details,
    .contact-location,
    .company-details { padding: 64px 0; }
    .contact-section-heading { grid-template-columns: 1fr; gap: 20px; }
    .contact-card-grid { grid-template-columns: 1fr; }
    .contact-card,
    .contact-card:nth-child(2) { min-height: 220px; border-right: 0; border-bottom: 1px solid #dfdbd3; }
    .contact-card:last-child { grid-column: auto; border-top: 0; border-bottom: 0; }
    .contact-map-wrap,
    .contact-map-wrap iframe { min-height: 390px; height: 390px; }
    .contact-map-link { right: 12px; bottom: 12px; left: 12px; }
    .company-detail-grid { grid-template-columns: 1fr; }
    .company-detail-grid div,
    .company-detail-grid div:first-child,
    .company-detail-grid div:nth-child(3) { padding: 22px 0; border-right: 0; border-top: 1px solid #dedad2; }
    .company-detail-grid div:first-child { border-top: 0; }
}
