/* Public reading pages and shared group-style shell. */
.public-site { --public-navy:#002c59; --public-deep:#001b39; --public-orange:#e84416; --public-green:#00b336; --public-ink:#333; --public-muted:#666; --public-line:#e0e0e0; --public-paper:#fff; --public-soft:#f7f7f7; background:var(--public-paper); color:var(--public-ink); font-family:"Microsoft YaHei","PingFang SC","Segoe UI",sans-serif; }
.public-site-skip-link { position:absolute; left:-9999px; top:8px; z-index:99; padding:10px 15px; color:#fff; background:var(--public-navy); }
.public-site-skip-link:focus { left:8px; }
.public-site *, .public-site *::before, .public-site *::after { box-sizing:border-box; }
.public-site a { color:inherit; text-underline-offset:3px; }
.public-site-header { position:sticky; top:0; z-index:20; background:var(--public-deep); border-bottom:1px solid rgba(255,255,255,.18); box-shadow:0 3px 16px rgba(0,0,0,.18); }
.public-site-header__inner { max-width:1600px; min-height:84px; margin:0 auto; padding:14px 5%; display:flex; align-items:center; gap:24px; }
.public-site-brand { flex:0 0 auto; display:inline-flex; align-items:center; height:36px; padding:3px 7px; box-sizing:border-box; border-radius:4px; background:#fff; }
.public-site-brand .joint-logo__veeam { height:30px; width:auto; }
.public-site-brand .joint-logo__vstecs { height:28px; width:auto; }
.public-site-brand .joint-logo__sep { width:1px; height:26px; margin:0 14px; background:#e2e5ea; }
.public-site-nav { margin-left:auto; display:flex; align-items:center; gap:30px; }
.public-site-nav a { position:relative; padding:12px 0 11px; color:rgba(255,255,255,.9); font-size:15px; text-decoration:none; white-space:nowrap; }
.public-site-nav a::after { content:""; position:absolute; left:0; right:0; bottom:3px; height:2px; background:var(--public-orange); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.public-site-nav a:hover, .public-site-nav a.is-active { color:#fff; }
.public-site-nav a:hover::after, .public-site-nav a.is-active::after { transform:scaleX(1); }
.public-site-nav:hover a.is-active::after { transform:scaleX(0); }
.public-site-nav a.is-active:hover::after { transform:scaleX(1); }
.public-site-login { margin-left:20px; min-width:72px; padding:10px 18px; background:var(--public-orange); color:#fff!important; font-size:14px; font-weight:700; text-align:center; text-decoration:none; white-space:nowrap; }
.public-site-login:hover, .public-site-login:focus-visible { background:#b93612; }
.public-site-menu-toggle { display:none; min-width:44px; padding:9px 12px; border:1px solid rgba(255,255,255,.7); color:#fff; background:transparent; white-space:nowrap; }
.public-site-main { min-height:50vh; }
.public-site-nav a, .public-site-login, .public-site-menu-toggle { min-height:44px; }
.public-site-review-banner { padding:9px 5%; color:#6b3d00; background:#fff3cd; border-bottom:1px solid #f1d58a; text-align:center; font-size:13px; }
.public-site-footer { position:relative; margin-top:0; padding:60px 5% 36px; color:#fff; background:#06152f url("../images/public-footer/footer-bg.png") center/cover no-repeat; }
.public-site-footer__inner { position:relative; max-width:1600px; margin:0 auto; display:grid; grid-template-columns:minmax(235px,.85fr) repeat(3,minmax(0,1fr)); gap:36px; align-items:start; }
.public-site-footer__brand-panel { min-width:0; }
.public-site-footer__brand { display:inline-block; color:#fff; font-size:24px; font-weight:700; letter-spacing:-.03em; text-decoration:none; }
.public-site-footer__joint-logo { display:inline-flex; align-items:center; height:36px; padding:3px 7px; box-sizing:border-box; border-radius:4px; background:#fff; }
.public-site-footer__joint-logo .joint-logo__veeam { width:auto; height:30px; }
.public-site-footer__joint-logo .joint-logo__sep { width:1px; height:26px; margin:0 14px; background:#e2e5ea; }
.public-site-footer__joint-logo .joint-logo__vstecs { width:auto; height:28px; }
.public-site-footer p { max-width:280px; margin:18px 0 24px; color:rgba(255,255,255,.75); font-size:14px; line-height:1.8; }
.public-site-footer__identity { margin-bottom:18px !important; }
.public-site-footer__contact-summary { margin-bottom:0 !important; }
.public-site-footer__contact-summary br { display:none; }
.public-site-footer__contact-summary a { display:block; color:#fff; font-weight:700; text-decoration:none; }
.public-site-footer__contact-summary a:hover { color:#ff8a68; }
.public-site-footer__contact { display:block; margin-top:8px; color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
.public-site-footer__contact:hover { color:#ff8a68; }
.public-site-footer__nav-panel { display:grid; grid-column:2/-1; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.public-site-footer__nav-group { display:flex; flex-direction:column; align-items:flex-start; gap:9px; min-width:0; }
.public-site-footer__nav-group h2 { margin:0 0 9px; color:#fff; font-size:15px; letter-spacing:.08em; }
.public-site-footer__nav-group h2::after { content:""; display:block; width:28px; height:2px; margin-top:11px; background:var(--public-orange); }
.public-site-footer__nav-group a { padding:0; color:rgba(255,255,255,.78); background:transparent; font-size:14px; line-height:1.55; text-decoration:none; }
.public-site-footer__nav-group a:hover { color:var(--public-orange); background:transparent; }
.public-site-footer__nav-group--policies { border-left:1px solid rgba(255,255,255,.2); padding-left:24px; }
.public-site-footer__legal { grid-column:1/-1; display:flex; justify-content:center; gap:15px; flex-wrap:wrap; margin-top:4px; padding-top:18px; border-top:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.58); font-size:12px; line-height:1.6; text-align:center; }
.public-site-footer__legal a { display:inline-flex; align-items:center; gap:4px; color:rgba(255,255,255,.58); text-decoration:none; }
.public-site-footer__legal img { width:16px; height:16px; }
.public-site-footer__backtop { position:absolute; right:0; bottom:-36px; width:47px; height:47px; display:grid; place-items:center; color:#fff; background:var(--public-orange); font-size:25px; line-height:1; text-decoration:none; }
.public-page-intro { max-width:1200px; margin:0 auto; padding:80px 5% 44px; }
.public-page-intro h1, .public-reading h1 { margin:0 0 15px; color:var(--public-navy); font-size:clamp(30px,4vw,52px); line-height:1.2; letter-spacing:-.03em; }
.public-page-intro p { max-width:760px; color:var(--public-muted); line-height:1.9; }
.public-reading__eyebrow { margin-bottom:12px; color:var(--public-orange); font-size:12px; font-weight:700; letter-spacing:.18em; }
.public-reading { max-width:960px; margin:0 auto; padding:70px 5% 20px; }
.public-reading__meta { color:var(--public-muted); font-size:13px; border-bottom:1px solid var(--public-line); padding-bottom:17px; }
.public-reading__body { margin-top:34px; font-size:16px; line-height:1.95; }
.public-reading__body h1 { font-size:32px; }
.public-reading__body h2 { margin:34px 0 12px; color:var(--public-navy); font-size:24px; }
.public-reading__body h3 { margin:25px 0 9px; color:var(--public-navy); font-size:19px; }
.public-reading__body p { margin:14px 0; }
.public-reading__body ul, .public-reading__body ol { padding-left:25px; }
.public-reading__body a { color:var(--public-orange); }
.table-scroll { overflow-x:auto; margin:22px 0; border:1px solid var(--public-line); }
.table-scroll table { width:100%; min-width:540px; border-collapse:collapse; font-size:14px; }
.table-scroll th, .table-scroll td { padding:11px 13px; border-bottom:1px solid var(--public-line); border-right:1px solid var(--public-line); text-align:left; vertical-align:top; }
.table-scroll th { color:var(--public-navy); background:var(--public-soft); }
.public-reading__back { padding-top:26px; border-top:1px solid var(--public-line); color:var(--public-muted); font-size:14px; }
.public-reading__back a, .public-button { color:var(--public-orange); }
.public-button { display:inline-block; margin-top:14px; padding:12px 20px; border:1px solid var(--public-orange); text-decoration:none; }
.public-entry-grid { max-width:1200px; margin:0 auto; padding:0 5% 64px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.public-entry-card { padding:25px; border:1px solid var(--public-line); background:#fff; min-height:190px; }
.public-entry-card:hover { border-color:var(--public-orange); box-shadow:0 10px 30px rgba(0,44,89,.08); }
.public-entry-card__meta { color:var(--public-orange); font-size:12px; letter-spacing:.08em; }
.public-entry-card h2 { margin:12px 0 10px; color:var(--public-navy); font-size:20px; line-height:1.45; }
.public-entry-card h2 a { text-decoration:none; }
.public-entry-card p:last-child { color:var(--public-muted); font-size:14px; line-height:1.75; }
.public-entry-card__link { display:inline-block; margin-top:10px; color:var(--public-orange); font-size:13px; font-weight:700; text-decoration:none; }
.public-entry-card__link:hover { color:var(--public-navy); }
.public-empty { grid-column:1/-1; padding:45px 20px; color:var(--public-muted); text-align:center; }
.public-empty__line { display:block; width:45px; height:1px; margin:0 auto 18px; background:var(--public-orange); }
.partner-roster { max-width:1200px; margin:0 auto; padding:45px 5% 10px; }
.public-section-heading { text-align:center; margin-bottom:28px; }
.public-section-heading__eyebrow { color:var(--public-orange); font-size:11px; letter-spacing:.18em; font-weight:700; }
.public-section-heading h2 { margin:8px 0 3px; color:var(--public-navy); font-size:30px; }
.public-section-heading p { color:var(--public-muted); }
.partner-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.partner-card { padding:17px 18px; border:1px solid var(--public-line); background:#fff; min-height:100px; }
.partner-card:hover { border-color:var(--public-orange); }
.partner-card h3 { margin:0 0 10px; color:var(--public-ink); font-size:15px; line-height:1.55; }
.partner-card p { margin:0; color:var(--public-muted); font-size:12px; }
.partner-card p span { color:var(--public-navy); font-family:ui-monospace,monospace; }
.partner-note { padding:15px 18px; border-left:3px solid var(--public-orange); background:var(--public-soft); }
.partner-note a { color:var(--public-orange); }
@media (max-width:1200px) { .public-site-footer__inner { grid-template-columns:minmax(235px,.8fr) repeat(3,minmax(0,1fr)); gap:24px; } .public-site-footer__nav-panel { gap:22px; } .public-site-footer__nav-group--policies { padding-left:18px; } }
@media (max-width:1023px) { .public-site-header__inner { gap:13px; } .public-site-menu-toggle { display:block; margin-left:auto; } .public-site-nav { position:absolute; left:0; right:0; top:100%; display:none; padding:13px 5%; color:#fff; background:var(--public-deep); border-bottom:1px solid rgba(255,255,255,.18); box-shadow:0 14px 25px rgba(0,0,0,.2); } .public-site-nav.is-open { display:grid; grid-template-columns:repeat(2,1fr); } .public-site-nav a { padding:12px 4px; } .public-site-login { margin-left:0; } .partner-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:820px) { .public-site-footer__inner { grid-template-columns:1fr 1fr; gap:32px; } .public-site-footer__nav-panel { grid-column:1/-1; } }
@media (max-width:680px) { .public-site-header__inner { min-height:66px; padding:9px 4%; } .public-site-brand { height:30px; padding:3px 7px; } .public-site-brand .joint-logo__veeam { height:24px; } .public-site-brand .joint-logo__vstecs { height:22px; } .public-site-brand .joint-logo__sep { height:20px; margin:0 9px; } .public-site-login { padding:8px 10px; font-size:12px; } .public-site-menu-toggle { padding:7px 9px; font-size:12px; } .public-site-nav.is-open { grid-template-columns:1fr; } .public-page-intro { padding:52px 5% 30px; } .public-page-intro h1, .public-reading h1 { font-size:32px; } .public-entry-grid { grid-template-columns:1fr; } .public-reading { padding-top:50px; } .public-reading__body { font-size:15px; } .partner-roster { padding-top:32px; } .partner-grid { grid-template-columns:1fr; } .public-site-footer { padding:44px 5% 30px; } .public-site-footer__inner { display:block; } .public-site-footer__nav-panel { display:grid; grid-template-columns:1fr; gap:30px; margin-top:34px; } .public-site-footer__nav-group--policies { padding-top:30px; padding-left:0; border-top:1px solid rgba(255,255,255,.2); border-left:0; } .public-site-footer__legal { margin-top:28px; } .public-site-footer__backtop { right:0; bottom:-22px; } }
@media (max-width:680px) {
  body.public-site-menu-open { overflow:hidden; }
  body.public-site-menu-open::before { content:""; position:fixed; top:66px; right:0; bottom:0; left:0; z-index:24; background:rgba(0,18,43,.72); opacity:1; animation:public-menu-overlay-in .32s ease both; }
  .public-site-header { z-index:35; }
  .public-site-nav { position:fixed; top:66px; right:0; bottom:0; left:auto; z-index:40; display:flex; width:min(78vw,400px); padding:18px 26px 38px; flex-direction:column; align-items:stretch; gap:0; overflow-y:auto; color:#fff; background:#00366b; border:0; box-shadow:-14px 0 34px rgba(0,0,0,.24); transform:translateX(100%); visibility:hidden; opacity:0; pointer-events:none; transition:transform .42s cubic-bezier(.22,.61,.36,1), opacity .28s ease, visibility 0s linear .42s; }
  .public-site-nav.is-open { display:flex; transform:translateX(0); visibility:visible; opacity:1; pointer-events:auto; transition-delay:0s; }
  .public-site-nav a, .public-site-nav a.is-active { display:flex; min-height:58px; padding:0 0; align-items:center; justify-content:space-between; color:rgba(255,255,255,.96); font-size:18px; font-weight:500; line-height:1.4; border-bottom:1px solid rgba(255,255,255,.76); }
  .public-site-nav a::after, .public-site-nav a:hover::after, .public-site-nav a.is-active::after { position:static; width:auto; height:auto; margin-left:16px; background:none; transform:none; transition:none; }
  .public-site-nav a:not(:first-child)::after { content:"⌄"; color:rgba(220,235,249,.76); font-size:20px; line-height:1; }
  .public-site-nav a:hover, .public-site-nav a.is-active { color:#fff; }
  .public-site-menu-toggle { position:relative; z-index:41; width:44px; height:44px; padding:0; overflow:hidden; transition:border-color .25s ease, background .25s ease; }
  body.public-site-menu-open .public-site-menu-toggle { border-color:transparent; background:transparent; font-size:0; }
  body.public-site-menu-open .public-site-menu-toggle::before, body.public-site-menu-open .public-site-menu-toggle::after { content:""; position:absolute; top:21px; left:9px; width:26px; height:1.5px; background:#fff; transform-origin:center; animation:.3s ease both; }
  body.public-site-menu-open .public-site-menu-toggle::before { animation-name:public-menu-close-in; }
  body.public-site-menu-open .public-site-menu-toggle::after { animation-name:public-menu-close-in-reverse; }
  body.public-site-menu-open .public-site-menu-toggle::before { transform:rotate(45deg); }
  body.public-site-menu-open .public-site-menu-toggle::after { transform:rotate(-45deg); }
  body.public-site-menu-open .public-site-login { opacity:0; pointer-events:none; transform:translateX(8px); }
  .public-site-login { transition:opacity .2s ease, transform .2s ease; }
}
@keyframes public-menu-overlay-in { from { opacity:0; } to { opacity:1; } }
@keyframes public-menu-close-in { from { opacity:0; transform:scaleX(.2) rotate(45deg); } to { opacity:1; transform:scaleX(1) rotate(45deg); } }
@keyframes public-menu-close-in-reverse { from { opacity:0; transform:scaleX(.2) rotate(-45deg); } to { opacity:1; transform:scaleX(1) rotate(-45deg); } }
@media (prefers-reduced-motion:reduce) { body.public-site-menu-open::before, body.public-site-menu-open .public-site-menu-toggle::before, body.public-site-menu-open .public-site-menu-toggle::after { animation:none; } }
@media (prefers-reduced-motion:reduce) { .public-site *, .public-site *::before, .public-site *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
@media print { .public-site-header, .public-site-footer, .public-site-review-banner, .public-reading__back { display:none; } .public-reading { max-width:none; padding:0; } .public-reading__body { font-size:11pt; } .table-scroll { overflow:visible; } .table-scroll table { min-width:0; } }
