/* Owner-provided photos form atmospheric backgrounds; neutral overlays protect text contrast. */
.contacts-section{background:#f5f5f5}
.microbiology-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.contact-card{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-width:0;min-height:450px;padding:36px;border:2px solid #dedede;border-radius:18px;background:#202020;color:#ffffff;transition:border-color .18s,transform .18s}
.contact-background{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;pointer-events:none}
.contact-card:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(115deg,#000000d6 0%,#000000b3 62%,#000000a3 100%);pointer-events:none}
.contact-card>:not(.contact-background){position:relative;z-index:2}
.contact-card .contact-icon{background:#ffffff12;border-color:#ffffff66;color:#ffffff}
.contact-card .contact-index{color:#ffffff}
.contact-card h3,.contact-card .contact-channel,.contact-card .contact-value,.contact-card .contact-hint{color:#ffffff}
.contact-card .contact-email:hover{color:#ffffff;text-decoration-thickness:2px}
.contact-card .button.secondary{background:#ffffff;color:#151515;border-color:#ffffff}
.contact-card .button.secondary:hover{background:#eeeeee;border-color:#eeeeee}
.contact-card:hover{border-color:#0DAC55;transform:translateY(-3px)}
.contact-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}
.contact-icon{display:flex;align-items:center;justify-content:center;width:62px;height:62px;flex:0 0 62px;border:1px solid #0DAC55;border-radius:17px;color:#0DAC55;background:#ffffff}
.contact-icon svg{width:34px;height:34px}
.contact-index{font-size:12px;letter-spacing:1.5px;color:#777777}
.contact-card h3{font-size:clamp(24px,2.2vw,32px);line-height:1.25;letter-spacing:-.6px;font-weight:600;margin:0 0 27px;overflow-wrap:anywhere}
.contact-card .contact-channel{font-size:11px;line-height:1.6;color:#666666;margin:0 0 8px;letter-spacing:.5px}
.contact-value{font-size:clamp(18px,1.7vw,25px);line-height:1.5;font-weight:500;color:#202020;margin:0 0 28px;overflow-wrap:anywhere}
.contact-email{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;display:block}
.contact-email:hover{color:#0DAC55}
.contact-card .contact-button{align-self:flex-start;justify-content:flex-start;gap:12px;min-height:53px;padding:14px 22px;max-width:100%;margin-top:auto}
.contact-button svg{width:23px;height:23px;flex:0 0 23px}
.contact-button .contact-button-label{font-size:13px;line-height:1.5}
.contact-button>span:last-child{margin-left:8px}
.contact-card .contact-hint{font-size:11px;line-height:1.7;color:#6a6a6a;margin:14px 0 0}
.contact-address{display:flex;align-items:center;gap:24px;margin-top:24px;padding:28px 36px;background:#ffffff;border:2px solid #dedede;border-radius:18px;min-width:0}
.contact-address h3{margin:0 0 8px;font-size:12px;font-weight:600;color:#666666;letter-spacing:.6px}
.contact-address address{font-size:17px;line-height:1.7;font-style:normal;color:#202020;overflow-wrap:anywhere}
.contact-address>div{min-width:0}
@media(max-width:850px){.microbiology-contacts{gap:16px}.contact-card{padding:25px}.contact-card h3{font-size:25px}.contact-value{font-size:19px}.contact-address{padding:25px}}
@media(max-width:600px){.microbiology-contacts{grid-template-columns:1fr;gap:16px}.contact-card{padding:25px;border-radius:14px}.contact-card-top{margin-bottom:25px}.contact-card h3{font-size:26px;margin-bottom:23px}.contact-value{font-size:21px}.contact-card .contact-button{width:100%;justify-content:flex-start}.contact-button>span:last-child{margin-left:auto}.contact-icon{width:56px;height:56px;flex-basis:56px;border-radius:15px}.contact-icon svg{width:30px;height:30px}.contact-address{align-items:flex-start;gap:17px;margin-top:16px;padding:24px;border-radius:14px}.contact-address address{font-size:14px;line-height:1.85}.contact-address h3{margin-top:2px}}
@media(max-width:360px){.contact-card{padding:21px}.contact-value{font-size:19px}.contact-address{padding:21px;gap:13px}.contact-address .contact-icon{width:45px;height:45px;flex-basis:45px}.contact-address address{font-size:13px}.contact-button .contact-button-label{font-size:12px}}
@media(prefers-reduced-motion:reduce){.contact-card{transition:none}.contact-card:hover{transform:none}}

/* Keep every text element above the photos white, including small captions. */
.contact-card .contact-channel,.contact-card .contact-value,.contact-card .contact-hint{color:#ffffff}
.contact-address h3,.contact-address address{color:#0DAC55;text-transform:uppercase}
.contact-address address{font-size:clamp(18px,1.8vw,23px);font-weight:700;letter-spacing:.3px;line-height:1.7}
#contacts-title{max-width:700px;text-wrap:balance}
@media(max-width:600px){.contact-card{min-height:420px}.contact-background{object-position:62% 50%}.contact-address address{font-size:17px;line-height:1.8}.contact-address h3{font-size:12px}}
@media(max-width:360px){.contact-address address{font-size:15px}}
