/* Contact page: shared visual identity with a calm, accessible enquiry layout. */
.contact-hero { position:relative; overflow:hidden; background:#111d35; color:white; }
.contact-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 75% 35%,rgba(67,163,165,.14),transparent 55%); pointer-events:none; }
.contact-hero-layout { position:relative; display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:64px; min-height:420px; padding:48px 0; }
.contact-hero .eyebrow { color:#a9efd9; }
.contact-hero h1 { margin:0 0 25px; color:white; font-size:clamp(3rem,5vw,4.5rem); line-height:1.08; }
.contact-hero .breadcrumb { margin:0; }
.contact-hero .breadcrumb-item,.contact-hero .breadcrumb-item.active { color:#d4e1e9; }
.contact-hero .breadcrumb-item a { color:#a9efd9; }
.contact-hero .breadcrumb-item + .breadcrumb-item::before { color:#90a6b9; }
.contact-hero-art { position:relative; width:100%; max-width:360px; justify-self:center; }
.contact-hero-art::after { content:''; position:absolute; inset:13px -13px -13px 13px; border:1px solid #a9efd933; border-radius:22px; pointer-events:none; }
.contact-hero-art img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:22px; }
.contact-quick { padding-bottom:0; }
.contact-info-card { display:flex; align-items:center; gap:16px; min-height:105px; height:100%; padding:20px 22px; border:1px solid #e1e7ef; border-radius:13px; background:#fff; }
.contact-info-icon { display:inline-flex; align-items:center; justify-content:center; flex:none; width:43px; height:43px; border-radius:11px; color:#09635f; background:#e7f5f1; font-size:1rem; }
.contact-info-card h2 { margin:0 0 5px; font-size:.94rem; line-height:1.35; }
.contact-info-card a,.contact-info-card div>span { color:#59687b; font-size:.85rem; line-height:1.55; overflow-wrap:anywhere; }
.contact-info-card a { text-decoration:none; }
.contact-info-card a:hover { color:#09635f; }
.contact-main { padding-top:42px; }
.contact-form-panel { height:100%; padding:34px; border:1px solid #e1e7ef; border-radius:18px; background:white; }
.contact-form-panel .section-title { max-width:620px; font-size:clamp(1.9rem,2.8vw,2.4rem); }
.contact-lead { color:#09635f; font-weight:700; font-size:1rem; margin:0 0 13px; }
.contact-intro { max-width:62ch; margin-bottom:24px; font-size:.94rem; }
.contact-form .form-control,.contact-form .form-select { min-height:55px; border:1px solid #e1e7ef; border-radius:8px; background:#f7f9fc; color:#172740; font-size:.94rem; }
.contact-form textarea.form-control { min-height:118px; resize:vertical; }
.contact-form .form-floating>label { color:#65758a; font-size:.88rem; }
.contact-form .form-control:focus,.contact-form .form-select:focus { border-color:#77b6a4; box-shadow:0 0 0 3px #e7f5f1; background:white; }
.contact-form .btn-x { margin-top:4px; padding:14px 22px; }
.contact-location { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid #e1e7ef; border-radius:18px; background:#f3f6fa; }
.contact-location-art { background:#eef4f5; }
.contact-location-art img { display:block; width:100%; aspect-ratio:1.35; object-fit:cover; }
.contact-location-body { display:flex; flex:1; flex-direction:column; justify-content:center; padding:28px; background:#f7fafb; }
.contact-location-body h3 { margin:0 0 20px; font-size:clamp(1.35rem,2vw,1.7rem); line-height:1.3; }
.contact-map-link { display:inline-flex; align-items:center; gap:12px; color:#09635f; font-size:.84rem; font-weight:700; text-decoration:none; }
.contact-map-link:hover { color:#147d79; }
.contact-map-link i { transform:rotate(45deg); }
.contact-map-details { border-top:1px solid #dde7eb; background:#fff; }
.contact-map-details summary { display:flex; align-items:center; justify-content:space-between; padding:19px 28px; color:#172740; font-size:.83rem; font-weight:700; cursor:pointer; list-style:none; }
.contact-map-details summary::-webkit-details-marker { display:none; }
.contact-map-details summary i { color:#09635f; transition:transform .2s; }
.contact-map-details[open] summary i { transform:rotate(180deg); }
.contact-map-details summary:focus-visible { outline:2px solid #147d79; outline-offset:-4px; }
.contact-map-frame { display:block; width:100%; height:340px; border:0; }
@media (max-width:991.98px) { .contact-hero-layout { min-height:0; gap:28px; } }
@media (max-width:767.98px) { .contact-hero-layout { grid-template-columns:1fr; padding:42px 0; } .contact-hero-art { max-width:260px; justify-self:start; } }
@media (max-width:575.98px) { .contact-hero h1 { font-size:2.7rem; } .contact-hero-art { max-width:210px; } .contact-info-card { min-height:88px; padding:18px; } .contact-main { padding-top:34px; } .contact-form-panel { padding:24px 20px; } .contact-location-body { padding:22px; } .contact-map-details summary { padding:17px 22px; } .contact-map-frame { height:300px; } }
