/* Narrow refinements to the existing contact card. */
.info-page .contact-artifact{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.info-page .contact-card .card-name{font-size:clamp(3rem,6vw,5.8rem);line-height:.98;overflow-wrap:normal}
.info-page .contact-intro h2{font-size:clamp(2rem,3.3vw,3rem);line-height:1.08}
.info-page .save-contact strong{font-size:clamp(1.35rem,2.5vw,2.3rem);line-height:1.15}
.info-page .save-contact{min-height:74px;grid-template-columns:1fr auto}
.info-page .save-contact>span{display:none}
.info-page .import-help{font-size:14px;line-height:1.55;color:#d0ccc6;margin:18px 0}
.info-page summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.info-page .qr-copy h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.12}
.info-page .exchange-overlay{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;background:transparent;color:inherit}
.info-page .exchange-overlay:not([open]){display:none}
.info-page .exchange-overlay::backdrop{background:rgba(0,0,0,.85)}
.info-page .exchange-header h2,.info-page .exchange-result h2{font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.12;padding-right:30px}
.info-page .exchange-form>label,.info-page .exchange-split label{font-size:13px}
.info-page .portrait-frame{min-height:460px}
.info-page :focus-visible{outline:3px solid #09a6ff;outline-offset:4px}
@media(max-width:1000px){.info-page .contact-artifact{grid-template-columns:1fr;max-width:720px}.info-page .identity-panel{border-right:0;border-bottom:1px solid rgba(255,255,255,.55)}.info-page .portrait-frame{min-height:360px}.info-page .contact-card .card-name{font-size:clamp(3rem,10vw,5rem)}}
@media(max-width:560px){.info-page .portrait-frame{min-height:260px}.info-page .identity-copy{margin-top:-70px}.info-page .primary-actions{order:0;margin:28px 0 36px}.info-page .contact-intro p{margin-top:16px}.info-page .identity-mark{width:58px;height:58px;top:-14px}.info-page .qr-record{transform:none}.info-page .exchange-dialog{box-sizing:border-box}}
.info-page .contact-artifact,.info-page .primary-actions,.info-page .contact-channels,.info-page .contact-destinations{padding-top:0;padding-bottom:0}
.info-page .exchange-dialog{padding:32px}
@media(max-width:560px){
 .info-page .identity-panel{display:grid;grid-template-columns:112px 1fr;align-items:center;padding:20px 18px;gap:18px}
 .info-page .artifact-line,.info-page .portrait-frame>span,.info-page .identity-mark,.info-page .operator-line{display:none}
 .info-page .portrait-frame{min-height:144px;border:1px solid #555}
 .info-page .portrait-frame img{object-fit:cover}
 .info-page .portrait-frame::after{display:none}
 .info-page .identity-copy{margin:0;padding:0}
 .info-page .identity-copy>p{font-size:11px;line-height:1.5;margin-bottom:10px}
 .info-page .contact-card .card-name{font-size:clamp(1.65rem,7.5vw,2.7rem);line-height:1.08}
 .info-page .contact-intro h2{font-size:1.75rem}
 .info-page .exchange-dialog{padding:24px 18px}
}
.info-page .contact-card section.contact-artifact,.info-page .contact-card section.primary-actions,.info-page .contact-card section.contact-channels,.info-page .contact-card section.contact-destinations{padding-top:0!important;padding-bottom:0!important}
.info-page .channel-grid a,.info-page .contact-destinations a{color:var(--cc-bone)}
.info-page .channel-grid{grid-template-columns:1fr}
.info-page .channel-grid a:nth-child(n){padding:16px 32px 16px 0;border-right:0}
.info-page .contact-artifact{align-items:start}
.info-page .identity-panel{border-bottom:1px solid rgba(255,255,255,.55)}

.info-page #qr-heading{scroll-margin-top:130px}
.info-page .qr-record{margin-top:0;margin-bottom:48px}
.info-page #share-card{background:var(--cc-magenta);border-color:var(--cc-magenta);color:white}

.info-page .qr-copy p{color:#383632}

/* Contact-page accent: Envisionary yellow. */
.info-page{--cc-magenta:#ffcd00}
.info-page .save-contact,.info-page #share-card,.info-page .exchange-submit,.info-page .exchange-result button,.info-page .exchange-close:hover,.info-page .exchange-close:focus-visible{color:var(--cc-black)}

/* Keep the mobile contact card open and uncluttered. */
@media(max-width:1000px){
 .info-page .contact-artifact,.info-page .identity-panel,.info-page .portrait-frame{border:0;box-shadow:none}
 .info-page .save-contact,.info-page .save-contact:hover,.info-page .save-contact:focus-visible,
 .info-page .qr-record,.info-page .qr-image,.info-page .identity-mark,.info-page .exchange-dialog{box-shadow:none}
}

/* Match homepage action colors and hover treatment at every size. */
.info-page :is(.save-contact,.action-row a,.action-row button,#share-card,.exchange-submit,.exchange-result button,.qr-copy>a){
 background:var(--cat);color:#0a0a0a;border-color:transparent;box-shadow:none;transform:none;
 transition:transform .2s,background .2s,color .2s,border-color .2s;
}
.info-page :is(.save-contact,.action-row a,.action-row button,#share-card,.exchange-submit,.exchange-result button,.qr-copy>a):is(:hover,:focus-visible){
 background:linear-gradient(135deg,#209ad5,#eb008b);color:#fff;border-color:transparent;box-shadow:none;transform:translateY(-2px);
}
.info-page :is(.contact-artifact,.identity-mark,.qr-record,.qr-image,.exchange-dialog){box-shadow:none}
@media(prefers-reduced-motion:reduce){.info-page :is(.save-contact,.action-row a,.action-row button,#share-card,.exchange-submit,.exchange-result button,.qr-copy>a){transition:none}}

/* No button shadow effects in any interaction state. Keyboard outlines remain visible. */
.info-page :is(button,.btn,.save-contact,.action-row a,.qr-copy>a),.info-page :is(button,.btn,.save-contact,.action-row a,.qr-copy>a):is(:hover,:focus,:active){box-shadow:none!important;filter:none!important;text-shadow:none!important}

/* Frameless on desktop as well as mobile. */
.info-page .contact-artifact,.info-page .identity-panel,.info-page .portrait-frame{border:0!important;box-shadow:none!important}
.info-page :is(.save-contact,.action-row a,.action-row button,#share-card,.exchange-submit,.exchange-result button,.qr-copy>a){border:0!important;background-clip:border-box}
.info-page :is(.save-contact,.action-row a,.action-row button,#share-card,.exchange-submit,.exchange-result button,.qr-copy>a):focus:not(:focus-visible){outline:0}
.info-page :focus-visible{outline:2px solid #fff;outline-offset:4px}
