/* ── Installer Search Section ── */ .installer-search { display: flex; justify-content: center; padding: 80px 20px 40px; .installer-search_inner { display: flex; flex-direction: column; align-items: center; gap: 30px; width: 100%; max-width: 600px; h2 { font-family: metropolis, sans-serif; font-weight: 600; font-size: 32px; color: $nine-primary-color; text-align: center; margin: 0; } } .installerSearch { display: flex; flex-direction: row; gap: 0; width: 100%; } .installer-input { display: flex; align-items: center; flex: 1; position: relative; } .input-icon { position: absolute; left: 16px; width: 16px; height: 16px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23002140' d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: contain; cursor: pointer; z-index: 1; } input#postcode { width: 100%; height: 56px; padding: 0 16px 0 44px; font-family: metropolis, sans-serif; font-size: 16px; font-weight: 400; color: $nine-primary-color; border: 2px solid $nine-primary-color; border-right: none; border-radius: 0; outline: none; background: #fff; box-shadow: none; &::placeholder { color: #999; } &:focus { border-color: $nine-primary-gold; } } button.btn-primary { height: 56px; padding: 0 32px; font-family: metropolis, sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: #fff; background-color: $nine-primary-green; border: 2px solid $nine-primary-green; border-radius: 0; cursor: pointer; white-space: nowrap; transition: background-color 0.3s ease, color 0.3s ease; &:hover { background-color: $nine-primary-color; border-color: $nine-primary-color; } } #loading { position: absolute; right: 140px; top: 50%; transform: translateY(-50%); img { width: 20px; height: 20px; } } } /* ── Locations Section (list + map) ── */ .installer-locations { display: flex; flex-direction: column; margin: 0 auto; background-color: #f5f5f5; .installers { position: relative; overflow: hidden; } .container-half.acf-map { min-height: 400px; padding: 0; } } /* ── Location List ── */ .location-items { display: flex; flex-direction: column; gap: 0; padding: 24px; max-height: 70vh; overflow-y: auto; &::-webkit-scrollbar { width: 4px; } &::-webkit-scrollbar-thumb { background: $nine-primary-gold; border-radius: 2px; } &::-webkit-scrollbar-track { background: #e8e8e8; } &.scrollable { overflow-y: auto; } } /* ── Location Item ── */ .location { display: flex; flex-direction: row; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 1px solid #ddd; cursor: pointer; transition: background-color 0.2s ease; &:hover { background-color: rgba($nine-primary-gold, 0.05); h5 { color: $nine-primary-gold; transition: color 0.2s ease; } } h5 { font-family: metropolis, sans-serif; font-size: 16px; font-weight: 600; color: $nine-primary-color; margin: 0; } p { font-family: metropolis, sans-serif; font-size: 14px; color: #666; margin: 0; } .retailer-aside { display: none; } } /* ── Side Info Panel ── */ .location-info, .installer-aside { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #f5f5f5; z-index: 999; transform: translateX(-110%); transition: transform 0.35s ease; &.visible { transform: translateX(0); display: flex; flex-direction: column; padding: 24px; gap: 16px; overflow-y: auto; } } .exit-info-panel { display: flex; align-items: center; gap: 8px; cursor: pointer; text-transform: uppercase; font-family: metropolis, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 1px; color: $nine-primary-color; &:before { content: '←'; font-size: 14px; } p { margin: 0; display: inline; } } /* ── Info Panel Inner ── */ .location-info_inner { display: flex; flex-direction: column; gap: 16px; .installer { h4 { font-family: metropolis, sans-serif; font-size: 20px; font-weight: 600; color: $nine-primary-color; margin: 0; } p { font-size: 14px; color: #666; } } .retailer-address { display: flex; flex-direction: column; gap: 6px; p, a { font-family: metropolis, sans-serif; font-size: 14px; color: #444; margin: 0; line-height: 1.6; word-break: break-word; } a { color: $nine-primary-gold; text-decoration: none; &:hover { text-decoration: underline; } } } .social-links { display: flex; gap: 16px; a { font-family: metropolis, sans-serif; font-size: 13px; font-weight: 500; color: $nine-primary-color; text-decoration: none; border-bottom: 1px solid $nine-primary-color; padding-bottom: 2px; transition: color 0.2s ease, border-color 0.2s ease; &:hover { color: $nine-primary-gold; border-color: $nine-primary-gold; } } } } /* ── Callout Links ── */ .callouts { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; a { display: inline-flex; align-items: center; font-family: metropolis, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: $nine-primary-green; text-decoration: none; padding: 8px 0; border-bottom: 1px solid $nine-primary-green; transition: color 0.2s ease, border-color 0.2s ease; &:hover { color: $nine-primary-gold; border-color: $nine-primary-gold; } } } /* ── Google Maps overrides ── */ .acf-map { border: none; img { max-width: inherit !important; } } .gmnoprint button:after { display: block; } .gmnoprint span, .gmnoprint a, .gm-style-cc a { line-height: 14px; } /* ── Desktop ── */ @media (min-width: 968px) { .installer-search { padding: 93px 20px 50px; .installer-search_inner h2 { font-size: 40px; } } .installer-locations { flex-direction: row; height: 80vh; .installers { width: 40%; height: 100%; overflow: hidden; } .container-half.acf-map { width: 60%; height: 100%; min-height: unset; } } .location-items { max-height: 100%; padding: 32px 40px; } .location-info.visible, .installer-aside.visible { padding: 40px; } .exit-info-panel { margin-bottom: 16px; } .callouts { flex-direction: row; gap: 32px; } } /* ── Mobile ── */ @media (max-width: 967px) { .installer-search { .installerSearch { flex-direction: column; gap: 12px; } button.btn-primary { width: 100%; height: 50px; } input#postcode { border-right: 2px solid $nine-primary-color; } } }