/* Standalone brand/contact additions. Load after the shared prototype styles. */
.wecom-section{margin-block:20px 65px}
.wecom-is-open{overflow:hidden}
.brand .brand-logo {
  display: block;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  object-fit: contain;
  border: 1px solid #d8c3a6;
  border-radius: 12px;
  background: #f2e6d4;
}

.wecom-panel,
.wecom-dialog-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 248px;
  gap: 38px;
  align-items: center;
}

.wecom-panel {
  padding: 36px;
  border: 1px solid #ced8e1;
  border-radius: 12px;
  background: #fff;
  scroll-margin-top: 35px;
}

.wecom-eyebrow {
  margin: 0 0 13px;
  color: #244ae8;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.25px;
}

.wecom-copy h2 {
  margin: 0 0 18px;
  color: #12233d;
  font-family: var(--serif, Georgia, serif);
  font-size: clamp(27px, 2.5vw, 37px);
  font-weight: 500;
  line-height: 1.5;
}

.wecom-copy p:not(.wecom-eyebrow) {
  margin: 0 0 14px;
  color: #52647a;
  font-size: 13px;
  line-height: 1.85;
}

.wecom-copy p.wecom-boundary {
  margin: 18px 0 0;
  color: #52647a;
  font-size: 11px;
}

.wecom-download {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  min-height: 44px;
  padding: 10px 0;
  border-bottom: 1px solid #12233d;
  color: #12233d;
  font-size: 13px;
  text-decoration: none;
}

.wecom-download > span {
  font-size: 19px;
}

.wecom-code {
  width: 100%;
  margin: 0;
}

.wecom-code-frame {
  display: grid;
  width: 100%;
  padding: 12px;
  place-items: center;
  border: 1px solid #e0e6eb;
  border-radius: 10px;
  background: #fff;
}

.wecom-code-frame img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 248px;
  aspect-ratio: 248 / 241;
  object-fit: contain;
  background: #fff;
  /* No crop, filter, rounded QR corners, decorative overlay or recolouring. */
}

.wecom-code figcaption {
  margin-top: 12px;
  color: #52647a;
  font-size: 10px;
  line-height: 1.6;
  text-align: center;
}

.wecom-float {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  z-index: 50;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  max-width: calc(100vw - 40px);
  padding: 13px 18px;
  border: 1px solid #254764;
  border-radius: 9px;
  color: #fff;
  background: #12233d;
  box-shadow: 0 8px 22px #12233d20;
  font: 12px/1.5 var(--sans, Arial, sans-serif);
  text-decoration: none;
  cursor: pointer;
}

.wecom-float,
.wecom-float-fallback {
  display: inline-flex;
}

.wecom-chat-icon {
  width: 21px;
  height: 21px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wecom-dialog {
  position: fixed;
  width: min(780px, calc(100vw - 36px));
  max-height: calc(100dvh - 36px);
  margin: auto;
  padding: 45px 36px 34px;
  overflow: auto;
  border: 1px solid #ccd6df;
  border-radius: 14px;
  color: #12233d;
  background: #f3f6f8;
  box-shadow: 0 25px 80px #0a1d3840;
  overscroll-behavior: contain;
}

.wecom-dialog:not([open]) {
  display: none;
}

.wecom-dialog[open] {
  display: block;
}

.wecom-dialog::backdrop {
  background: #10243ccc;
}

.wecom-close {
  position: absolute;
  top: 7px;
  right: 9px;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 8px;
  color: #12233d;
  background: transparent;
  font: 30px/1 Arial, sans-serif;
  cursor: pointer;
}

.wecom-close:hover {
  background: #dfe7ed;
}

.wecom-float:focus-visible,
.wecom-close:focus-visible,
.wecom-download:focus-visible {
  outline: 3px solid #244ae8;
  outline-offset: 4px;
}

@media (max-width: 767px) {
  .brand .brand-logo {
    width: 43px;
    height: 43px;
    flex-basis: 43px;
    border-radius: 10px;
  }

  .wecom-panel,
  .wecom-dialog-content {
    grid-template-columns: minmax(0, 1fr);
    gap: 25px;
  }

  .wecom-panel {
    padding: 25px 20px;
  }

  .wecom-code {
    max-width: 248px;
    justify-self: center;
  }

  .wecom-copy h2 {
    font-size: 28px;
  }

  .wecom-copy p:not(.wecom-eyebrow) {
    font-size: 12px;
  }

  .wecom-copy p.wecom-boundary {
    font-size: 10px;
  }

  .wecom-float {
    right: max(15px, env(safe-area-inset-right));
    bottom: max(15px, env(safe-area-inset-bottom));
    padding: 11px 14px;
    font-size: 11px;
  }

  .wecom-dialog {
    width: calc(100vw - 26px);
    max-height: calc(100dvh - 26px);
    padding: 46px 22px 25px;
    border-radius: 12px;
  }
}

@media (max-width: 359px) {
  .brand .brand-logo {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .wecom-panel {
    padding: 22px 16px;
  }

  .wecom-copy h2 {
    font-size: 25px;
  }

  .wecom-dialog {
    padding-inline: 18px;
  }
}

/* Rounded, translucent contact surface; the original QR remains on opaque white. */
.brand .brand-logo{border-radius:16px;background:#f5eadb;box-shadow:0 2px 12px #12233d0a}
.contact-intro{padding-top:38px;padding-bottom:32px;max-width:1050px}
.contact-intro .eyebrow{margin-bottom:18px}
.contact-intro h1{font-size:clamp(39px,4.5vw,65px);line-height:1.4;letter-spacing:-1.5px}
.contact-intro>p{font-size:14px;color:var(--muted);margin:18px 0 0}
.contact-qr-main{max-width:1050px}
.contact-quiet-links{display:flex;gap:32px;justify-content:center;flex-wrap:wrap;padding:30px 0 80px;font-size:12px;color:var(--muted)}
.contact-quiet-links>a{display:inline-flex;align-items:center;min-height:44px}
.wecom-panel{grid-template-columns:296px minmax(0,1fr);padding:40px 48px;gap:60px;border-radius:32px;border:1px solid rgba(255,255,255,.93);background:rgba(255,255,255,.66);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 16px 55px #2547640b,inset 0 1px 0 #fff;scroll-margin-top:24px}
.wecom-panel .wecom-code{width:296px;max-width:100%;justify-self:center}
.wecom-code-frame{padding:23px;border-radius:26px;background:#fff;border:1px solid #e0e7ed;box-shadow:0 9px 28px #12233d06}
.wecom-code-frame img{border-radius:0!important;filter:none!important;object-fit:contain;background:#fff}
.wecom-code figcaption{font-size:11px;margin-top:15px}
.wecom-copy h2{font-size:clamp(29px,3vw,42px);line-height:1.4;margin-bottom:20px}
.wecom-copy p.wecom-mobile-help{max-width:345px;font-size:14px;line-height:1.9}
.wecom-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:23px}
.wecom-download,.wecom-expand{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;padding:12px 20px;border:1px solid #d0dbe7;border-radius:999px;background:rgba(255,255,255,.75);color:#12233d;font-size:12px;text-decoration:none;white-space:nowrap}
.wecom-download{background:#244ae8;color:white;border-color:#244ae8}
.wecom-expand>span{font-size:16px}
.wecom-copy p.wecom-boundary{font-size:11px;margin-top:18px;color:#607287}
.wecom-float{border-radius:999px;background:rgba(18,35,61,.86);border-color:#ffffff50;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 10px 35px #12233d22}
.wecom-dialog{width:min(560px,calc(100vw - 36px));padding:48px 38px 30px;border-radius:32px;border-color:#ffffffba;background:rgba(243,247,251,.94);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.wecom-dialog-content{grid-template-columns:minmax(0,1fr);gap:24px;text-align:center}
.wecom-dialog .wecom-code{max-width:270px;justify-self:center}
.wecom-dialog .wecom-code-frame{padding:16px}
.wecom-dialog .wecom-copy h2{font-size:29px;margin-bottom:12px}
.wecom-dialog .wecom-copy .wecom-eyebrow{display:none}
.wecom-dialog .wecom-mobile-help{margin-inline:auto;font-size:12px}
.wecom-dialog .wecom-actions{justify-content:center;margin-top:16px}
.wecom-dialog .wecom-boundary{font-size:10px;margin-top:14px}
.wecom-dialog::backdrop{background:rgba(20,36,56,.52);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.wecom-close{top:9px;right:12px;border-radius:999px;background:#ffffff99}
.wecom-expand:focus-visible{outline:3px solid #244ae8;outline-offset:4px}
@media(max-width:1000px){.wecom-panel{grid-template-columns:270px minmax(0,1fr);padding:32px;gap:35px}.wecom-panel .wecom-code{width:270px}.wecom-copy h2{font-size:34px}.wecom-copy p.wecom-mobile-help{font-size:13px}}
@media(max-width:767px){
 .brand .brand-logo{border-radius:13px}
 .contact-intro{padding-top:22px;padding-bottom:25px}
 .contact-intro h1{font-size:39px;letter-spacing:-.8px}
 .contact-intro>p{font-size:12px;line-height:1.9;margin-top:14px}
 .contact-quiet-links{gap:8px 25px;padding:20px 0 48px;font-size:11px}
 .wecom-panel{grid-template-columns:minmax(0,1fr);padding:27px 24px;border-radius:28px;gap:28px;text-align:center}
 .wecom-panel .wecom-code{width:280px;max-width:100%}
 .wecom-code-frame{border-radius:24px;padding:16px}
 .wecom-copy h2{font-size:31px;margin-bottom:15px}
 .wecom-copy p.wecom-mobile-help{margin-inline:auto;font-size:12px;line-height:1.8}
 .wecom-eyebrow{font-size:9px;margin-bottom:10px}
 .wecom-actions{justify-content:center;gap:10px;margin-top:20px}
 .wecom-download,.wecom-expand{padding:11px 17px;gap:13px;font-size:11px}
 .wecom-copy p.wecom-boundary{font-size:10px}
 .wecom-dialog{width:calc(100vw - 26px);padding:49px 24px 25px;border-radius:28px}
 .wecom-dialog-content{gap:20px}
 .wecom-dialog .wecom-code{max-width:258px}
 .wecom-dialog .wecom-copy h2{font-size:27px}
 .wecom-dialog .wecom-mobile-help{font-size:11px}
}
@media(max-width:359px){
 .contact-intro h1{font-size:34px}
 .wecom-panel{padding:25px 16px;border-radius:26px}
 .wecom-code-frame{padding:13px}
 .wecom-copy h2{font-size:28px}
 .wecom-actions{gap:8px}
 .wecom-download,.wecom-expand{padding-inline:14px;font-size:10px;gap:10px}
 .wecom-dialog{padding-inline:20px;border-radius:26px}
 .wecom-dialog .wecom-copy h2{font-size:25px}
}

/* A focused QR dialog, independent from the landing-page contact card. */
.wecom-dialog.wecom-compact{width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border-radius:24px;background:rgba(225,235,247,.97);border:1px solid #ffffffb3;overflow:auto;box-shadow:0 22px 70px #10243c30}
.wecom-compact .wecom-dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 12px 22px;border-bottom:1px solid #b9cade70;background:rgba(225,235,247,.97);backdrop-filter:blur(16px)}
.wecom-compact .wecom-dialog-header h2{font-family:var(--sans);font-size:17px;font-weight:600;line-height:1.5;letter-spacing:0;margin:0}
.wecom-compact .wecom-close{position:static;flex:0 0 36px;width:36px;height:36px;background:#ffffff85;font-size:25px;border:1px solid #fff8}
.wecom-compact .wecom-dialog-body{display:grid;gap:16px;padding:20px 22px 22px;justify-items:center}
.wecom-compact .wecom-code-frame{width:100%;max-width:320px;padding:14px;border-radius:18px;box-shadow:none}
.wecom-compact .wecom-code-frame img{max-width:none;width:100%;height:auto;object-fit:contain;border-radius:0}
.wecom-compact #wecom-dialog-help{font-size:11px;line-height:1.8;color:#43556d;text-align:center;margin:0}
.wecom-compact .wecom-download{width:100%;min-height:46px;margin:0;font-size:12px;border-radius:999px}
@media(max-width:359px){.wecom-compact .wecom-dialog-header{padding:10px 12px 10px 16px}.wecom-compact .wecom-dialog-body{padding:16px;gap:13px}.wecom-compact .wecom-dialog-header h2{font-size:16px}.wecom-compact #wecom-dialog-help{font-size:10px}}
@media(max-height:480px) and (min-width:600px){.wecom-dialog.wecom-compact{width:580px}.wecom-compact .wecom-dialog-body{grid-template-columns:240px 1fr;align-items:center;padding:14px 20px;gap:12px 22px}.wecom-compact .wecom-code-frame{grid-column:1;grid-row:1/3;width:240px}.wecom-compact #wecom-dialog-help{grid-column:2;align-self:end;text-align:left}.wecom-compact .wecom-download{grid-column:2;align-self:start}}
