/* Joe. / Contact Icon Dock — V7 contact update, no content/schema migrations required. */
.contact-dock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%;max-width:520px;isolation:isolate}
.contact-slot{position:relative;min-width:0}
.contact-slot:has(.contact-popover){z-index:40}
.contact-icon-card{font:inherit;position:relative;width:100%;min-width:0;min-height:113px;border:1px solid rgba(47,53,62,.105);border-radius:17px;background:linear-gradient(165deg,rgba(255,255,255,.95),rgba(242,242,242,.62));box-shadow:0 6px 18px rgba(18,23,32,.022),inset 0 1px 0 rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px;cursor:pointer;color:#26282d;transition:transform .32s cubic-bezier(.2,.8,.2,1),background .32s,box-shadow .32s,border-color .32s}
.contact-icon-card:hover{transform:translateY(-5px);border-color:rgba(37,43,52,.24);background:#fff;box-shadow:0 16px 32px rgba(32,40,55,.085)}
.contact-icon-card[aria-expanded="true"]{border-color:#8f979f;background:#fff;box-shadow:0 12px 26px rgba(29,40,55,.09)}
.contact-icon-card:focus-visible,.contact-popover button:focus-visible,.contact-popover a:focus-visible{outline:2px solid #415e7d;outline-offset:3px}
.contact-icon-bubble{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;color:#272d35;background:#eff0f1;border:1px solid #e5e7e8;transition:background .28s,color .28s,transform .28s}
.contact-icon-card:hover .contact-icon-bubble,.contact-icon-card[aria-expanded="true"] .contact-icon-bubble{background:#202329;color:#fff;transform:scale(1.045)}
.contact-icon-bubble svg{display:block;width:20px;height:20px}
.contact-icon-name{font-size:12px;font-weight:550;letter-spacing:.045em;color:#3b3d40}
.contact-card-corner{position:absolute;right:10px;top:8px;color:#a3a9ae;font-size:10px;opacity:0;transform:translate(-4px,4px);transition:.22s}
.contact-icon-card:hover .contact-card-corner{opacity:1;transform:translate(0,0)}
.contact-popover{position:fixed;z-index:1000;bottom:calc(100% + 14px);min-width:270px;max-width:min(298px,calc(100vw - 24px));padding:18px;background:rgba(255,255,255,.99);color:#24272c;border:1px solid #e2e4e7;border-radius:17px;box-shadow:0 20px 70px rgba(17,27,40,.18);animation:contactPop .22s cubic-bezier(.2,.7,.2,1) both;overflow-wrap:anywhere}
.contact-popover-top{display:flex;align-items:center;justify-content:space-between;color:#71787e;font-size:11px;font-weight:600;letter-spacing:.045em}
.contact-popover-top button{display:grid;place-items:center;border:0;background:#f1f2f3;border-radius:8px;width:27px;height:27px;cursor:pointer;color:#494b50}
.contact-popover-top svg{width:14px;height:14px}
.contact-popover-value{font-size:17px;font-weight:620;letter-spacing:-.025em;margin-top:19px;color:#141820;word-break:break-word;line-height:1.4}
.contact-popover p{font-size:11px;line-height:1.6;color:#81878e;margin:9px 0 17px}
.contact-popover-actions{display:flex;gap:7px;align-items:stretch}
.contact-primary-action,.contact-copy-action{border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:0 11px;font-size:11px;text-decoration:none;cursor:pointer;white-space:nowrap}
.contact-primary-action{background:#1e2229;color:white;flex:1;border:1px solid #1e2229}.contact-primary-action svg,.contact-copy-action svg{width:14px;height:14px}
.contact-copy-action{background:#f1f2f3;border:1px solid #e7e8eb;color:#333b42;min-width:85px}
.contact-screen .screen-inner{padding-top:clamp(123px,13.2vh,178px)}
.contact-screen .contact-eyebrow{font-size:10px;letter-spacing:.19em;color:#888e97;margin-bottom:9px}
.contact-screen .page-lead{font-size:clamp(62px,6.3vw,112px);line-height:1.02}
.contact-period{color:#8e9eab}
.contact-stage{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(28px,4vw,68px);margin-top:31px;min-height:0;align-items:center}
.contact-detail-icons{max-width:unset;min-width:0}
.contact-intro h2{font-weight:540;letter-spacing:-.064em;font-size:clamp(31px,3vw,48px);line-height:1.18;margin:0}
.contact-intro h2 em{font-style:normal;color:#9299a2}
.contact-intro p{font-size:13px;line-height:1.95;color:#7b8087;max-width:460px;margin:18px 0 29px}
.contact-privacy-note{font-size:11px;color:#9aa0a7;margin-top:15px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.contact-privacy-dot{width:3px;height:3px;border-radius:50%;background:#c2c8cf}
.contact-tertiary{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #dedede;max-width:520px;margin-top:26px;padding-top:15px;gap:16px;font-size:11px;color:#9299a0}
.contact-tertiary a{display:inline-flex;align-items:center;gap:4px;color:#535b64}
.contact-tertiary svg{height:12px;width:12px}
.contact-art{position:relative;min-width:0;overflow:hidden;border-radius:16px}
.contact-art .contact-image{height:clamp(355px,37vw,535px);width:100%;border-radius:16px;display:block;object-fit:cover}
.contact-art-label{position:absolute;right:18px;bottom:18px;border-radius:20px;padding:8px 12px;color:rgba(255,255,255,.92);background:rgba(22,27,33,.48);backdrop-filter:blur(10px);font-size:9px;letter-spacing:.13em}
.home-contact-dock{margin-top:29px;max-width:520px}
.contact-dock--home .contact-icon-card{background:#f2f2f1;border-color:rgba(0,0,0,.11)}
.contact-dock--home .contact-icon-name{color:#373b40}
.home-contact-more{margin-top:19px}.home-contact-more .text-link{font-size:12px}
@keyframes contactPop{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:760px){
 .contact-screen .screen-inner{padding-top:107px!important;padding-bottom:110px!important}
 .contact-stage{display:flex;flex-direction:column;align-items:stretch;gap:22px;margin-top:23px}
 .contact-art{order:2;max-height:215px}.contact-art .contact-image{height:215px}
 .contact-intro h2{font-size:clamp(27px,7.7vw,35px)}.contact-intro p{margin:12px 0 19px;font-size:12px;line-height:1.7}
 .contact-icon-card{min-height:90px;border-radius:13px;gap:9px}
 .contact-icon-bubble{width:34px;height:34px;border-radius:11px}.contact-icon-bubble svg{width:18px;height:18px}
 .contact-icon-name{font-size:11px}.contact-dock{gap:7px;max-width:none}
 .contact-privacy-note{margin-top:11px;line-height:1.5;font-size:10px}
 .contact-tertiary{margin-top:17px;padding-top:11px}.contact-art-label{font-size:8px}
 .contact-popover{position:fixed;left:12px!important;right:12px!important;bottom:max(16px,env(safe-area-inset-bottom))!important;max-width:unset;width:auto!important;border-radius:19px;padding:20px;box-shadow:0 12px 60px rgba(0,0,0,.24)}
 .home-contact-dock{max-width:100%;margin-top:19px}.home-contact-more{margin-top:14px}
}
@media(max-width:375px){.contact-icon-card{min-height:80px}.contact-icon-bubble{width:31px;height:31px}.contact-icon-name{font-size:10px}.contact-icon-card{gap:6px}.contact-dock{gap:6px}}
@media(prefers-reduced-motion:reduce){.contact-icon-card,.contact-icon-bubble,.contact-card-corner{transition:none}.contact-popover{animation:none}}
/* Keep the Home CTA readable and its secondary link on one line. */
.content-section.dark:has(.home-contact-dock) .desc{color:#bfc3c8}
.home-contact-more .text-link{display:inline-flex!important;align-items:center;gap:11px;width:auto;white-space:nowrap;text-decoration:none;line-height:1.5}
.home-contact-more .text-link svg{flex:none;width:18px;height:18px}
