/* Connectivity: responsive physical/online signal diagrams, not product UI mockups. */
.connectivity-setups { padding-top:64px; }
.setup-selector { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.setup-selector>a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:11px 21px; border:1px solid #9eb5a8; border-radius:4px; color:var(--ink); background:var(--white); font-size:14px; font-weight:700; line-height:1.5; text-decoration:none; transition:border-color .15s; }
.setup-selector>a:hover { background:#deebe0; }
.setup-selector>[aria-selected=true] { background:var(--night); border-color:var(--night); color:var(--signal); }
.conn-legend { display:flex; flex-wrap:wrap; gap:12px 28px; margin-bottom:30px; font-size:12px; color:var(--muted); }
.conn-legend>span { display:flex; align-items:center; gap:10px; }
.conn-legend i { width:30px; border-top:2px solid var(--green); }
.conn-legend .conn-legend-online { border-top:2px dashed #436b8a; }
.setup-panel { margin-top:36px; }
.setup-panel[role=tabpanel] { margin-top:0; }
.setup-heading { max-width:75ch; margin-bottom:25px; }
.setup-heading h3 { font-size:clamp(24px,2.2vw,31px); font-weight:650; line-height:1.2; margin-bottom:12px; }
.setup-heading p { font-size:16px; margin:0; }
.connection-diagram { margin:0 0 28px; padding:32px; background:#e4ece1; border:1px solid #b4c9b8; border-radius:6px; }
.conn-path { display:flex; align-items:stretch; }
.conn-node { display:flex; align-items:center; flex-direction:column; justify-content:center; flex:1 1 0; min-width:0; gap:14px; padding:24px 18px; background:var(--white); border:1px solid #abc4b3; border-radius:5px; text-align:center; }
.conn-device { display:grid; place-items:center; width:58px; height:58px; border-radius:10px; background:#dcebe0; color:var(--green); }
.conn-device>.icon { width:36px; height:36px; }
.conn-icon { flex:none; }
.conn-node strong { display:block; font-size:17px; font-weight:750; line-height:1.45; letter-spacing:-.02em; }
.conn-node p { margin:0; font-size:14px; line-height:1.65; }
.conn-node-host { background:var(--night); border-color:var(--night); color:var(--white); }
.conn-node-host .conn-device { background:#24494f; color:var(--signal); }
.conn-node-host p { color:#d1e2d7; }
.conn-node-audience { background:#f2dcc7; border-color:#d0b69a; }
.conn-node-audience .conn-device { background:#e5c5a7; color:#21464a; }
.conn-link { display:flex; align-items:center; justify-content:center; flex-direction:column; flex:0 0 116px; gap:12px; padding:10px; align-self:center; color:var(--green); text-align:center; }
.conn-link>span { font-size:12px; line-height:1.6; font-weight:650; }
.conn-link>svg { width:100%; height:20px; overflow:visible; }
.conn-link-online { color:#365d7e; }
.conn-link-online .conn-line { stroke-dasharray:5 4; }
.connection-diagram figcaption { font-size:13px; line-height:1.7; color:#465b50; margin-top:24px; padding-top:20px; border-top:1px solid #b4c9b8; max-width:100ch; }
.setup-notes { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:18px; }
.setup-notes h4 { font-size:17px; margin:0 0 10px; line-height:1.5; }
.setup-notes p { font-size:15px; line-height:1.8; margin:0; }
.conn-footnote { font-size:14px; line-height:1.75; max-width:95ch; }
.conn-guest-note { display:flex; align-items:flex-start; gap:20px; margin:28px 0 18px; padding:22px 24px; border-left:3px solid var(--green); background:#d9e9dc; }
.conn-guest-note>.conn-icon { width:32px; height:32px; }
.conn-guest-note strong { font-size:17px; line-height:1.5; }
.conn-guest-note p { font-size:14px; margin:6px 0 0; max-width:90ch; }
.conn-utility { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 30px; margin-top:34px; padding-top:20px; border-top:1px solid var(--line); }
.connectivity-print { border:0; padding:0; background:none; font:inherit; font-size:14px; cursor:pointer; }
html:not(.js) .connectivity-print { display:none; }

/* Campaign arrows describe authority and coordination, never a shared audio bus. */
.conn-campaign-admin { max-width:350px; margin:auto; }
.conn-control-label { color:#365d7e; font-size:13px; line-height:1.6; font-weight:650; margin:0; padding:30px 10px; text-align:center; }
.conn-stations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding-top:28px; border-top:2px dashed #567d93; }
.conn-station { position:relative; display:flex; flex-direction:column; align-items:center; gap:14px; padding:22px 18px; background:var(--white); border:1px solid #abc4b3; border-radius:5px; text-align:center; }
.conn-station::before { content:""; position:absolute; width:0; height:28px; top:-30px; left:50%; border-left:2px dashed #567d93; }
.conn-station-label { font-size:12px; color:#4c6061; font-weight:650; }
.conn-station strong { font-size:18px; }
.conn-station p { font-size:14px; line-height:1.7; margin:0; }
.conn-station-audio { display:flex; align-items:center; gap:8px; font-size:12px; line-height:1.7; color:var(--green); padding-top:10px; border-top:1px solid var(--line); }
.conn-station-audio .conn-icon { width:24px; height:24px; }

/* Both common input routes stay visible so equipment planning does not hide detail. */
.conn-input-options { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.conn-input-option { min-width:0; background:var(--white); padding:28px; border:1px solid #b6c7b7; border-top:3px solid var(--green); }
.conn-input-option:nth-child(2) { border-top-color:#9a6b42; }
.conn-input-option .small-label { display:block; margin-bottom:16px; color:#4c6061; font-weight:650; }
.conn-input-option h3 { font-size:26px; font-weight:650; margin-bottom:24px; }
.conn-input-option>.connection-diagram { padding:0; border:0; background:none; margin-bottom:20px; }
.conn-input-option .conn-node { padding:16px 10px; gap:12px; }
.conn-input-option .conn-node strong { font-size:14px; }
.conn-input-option .conn-node p { font-size:12px; }
.conn-input-option .conn-device { width:44px; height:44px; }
.conn-input-option .conn-device .conn-icon { width:30px; height:30px; }
.conn-input-option .conn-link { flex-basis:48px; padding:8px 4px; }
.conn-input-option .conn-link>span { font-size:12px; line-height:1.5; }
.conn-input-option .connection-diagram figcaption { border-top:0; padding-top:0; margin-top:18px; }
.conn-input-option>p { font-size:14px; line-height:1.75; margin-bottom:0; }
.conn-port-note { margin-top:28px; padding:24px 28px; background:#f0e2c9; border-left:3px solid #936022; }
.conn-port-note strong { font-size:17px; }
.conn-port-note p { font-size:14px; line-height:1.8; margin:8px 0 0; color:#554f3e; max-width:105ch; }
.conn-setup-steps { list-style:none; padding:0; margin:40px 0 0; counter-reset:connections; }
.conn-setup-steps li { display:grid; grid-template-columns:35px minmax(180px,.55fr) minmax(0,1fr); gap:26px; padding:24px 0; border-top:1px solid #b4c3b3; counter-increment:connections; }
.conn-setup-steps li::before { content:counter(connections,decimal-leading-zero); font-weight:700; color:var(--green); }
.conn-setup-steps li>strong { font-size:17px; line-height:1.5; }
.conn-setup-steps li>span { font-size:15px; color:var(--muted); line-height:1.8; }

.conn-requirements { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.conn-requirement-card { min-width:0; border:1px solid #b6c7b7; padding:30px; background:var(--white); }
.conn-requirement-title { display:flex; align-items:center; gap:18px; padding-bottom:24px; border-bottom:2px solid #9cbfa8; }
.conn-requirement-title>.conn-icon,.conn-requirement-title>.icon { width:40px; height:40px; color:var(--green); }
.conn-requirement-title h3 { font-size:27px; font-weight:650; margin-top:8px; }
.conn-requirement-card dl { margin:0; }
.conn-requirement-card dl>div { padding:22px 0; border-bottom:1px solid var(--line); }
.conn-requirement-card dt { font-size:14px; font-weight:750; margin-bottom:8px; }
.conn-requirement-card dd { margin:0; font-size:15px; line-height:1.8; color:var(--muted); }
.conn-requirement-card .conn-recommendation { padding:16px; margin:24px 0 0; font-size:14px; line-height:1.8; background:#e3ecdf; }
.conn-requirement-companion .conn-requirement-title { border-bottom-color:#c2a27e; }
.conn-requirement-companion .conn-recommendation { background:#f3e5d3; }
.conn-minimum-notes { display:grid; grid-template-columns:1fr 1fr; gap:44px; margin-top:42px; }
.conn-minimum-notes>div { padding-top:25px; border-top:1px solid var(--line); }
.conn-minimum-notes h3 { font-size:23px; font-weight:650; margin-bottom:15px; }
.conn-minimum-notes p { font-size:15px; line-height:1.8; margin-bottom:0; max-width:65ch; }
.conn-soundcheck { background:#dde6e4; }
.conn-checklist { list-style:none; margin:0 0 30px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:30px 48px; counter-reset:soundcheck; }
.conn-checklist li { display:grid; grid-template-columns:30px 1fr; gap:12px 18px; border-top:1px solid #9fb7ae; padding-top:22px; counter-increment:soundcheck; }
.conn-checklist li::before { content:counter(soundcheck,decimal-leading-zero); font-weight:700; color:var(--green); }
.conn-checklist strong { font-size:18px; line-height:1.5; }
.conn-checklist span { grid-column:2; color:var(--muted); font-size:15px; line-height:1.8; }
.conn-sources { padding-block:48px; border-bottom:1px solid var(--line); }
.conn-sources h2 { font-size:24px; margin-bottom:18px; }
.conn-sources p { font-size:14px; max-width:100ch; }
.conn-sources ul { display:flex; flex-wrap:wrap; gap:5px 28px; padding:0; margin:0; list-style:none; }
.conn-sources li { display:flex; align-items:center; min-height:44px; font-size:13px; color:var(--green); }

@media(max-width:1100px) {
 .conn-link { flex-basis:90px; padding:8px; }
 .connection-diagram { padding:26px; }
 .conn-node { padding:20px 14px; }
 .conn-input-options { grid-template-columns:1fr; }
 .conn-input-option .conn-link { flex-basis:100px; padding:10px; }
 .conn-input-option .conn-link>span { font-size:12px; }
 .conn-input-option .conn-node { padding:20px 18px; }
 .conn-input-option .conn-node strong { font-size:16px; }
 .conn-input-option .conn-node p { font-size:14px; }
}
@media(max-width:760px) {
 .connectivity-setups { padding-top:42px; }
 .setup-selector { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 .setup-selector>a { font-size:13px; min-height:48px; padding:12px 8px; }
 .conn-legend { font-size:12px; gap:10px; margin-bottom:24px; }
 .setup-heading h3 { font-size:26px; }
 .setup-heading p { font-size:15px; }
 .connection-diagram { padding:20px; }
 .conn-path { flex-direction:column; align-items:stretch; }
 .conn-node { padding:20px; flex:auto; width:100%; }
 .conn-device { width:50px; height:50px; }
 .conn-node strong { font-size:17px; }
 .conn-node p { max-width:38ch; }
 .conn-link,.conn-input-option .conn-link { display:grid; grid-template-columns:36px 1fr; gap:12px; flex:auto; width:100%; max-width:260px; align-self:center; min-height:70px; padding:8px; text-align:left; }
 .conn-link>svg { grid-column:1; grid-row:1; width:56px; max-width:none; height:20px; transform:translateX(-10px) rotate(90deg); }
 .conn-link>span { grid-column:2; grid-row:1; font-size:12px; }
 .connection-diagram figcaption { margin-top:20px; padding-top:18px; font-size:12px; }
 .setup-notes,.conn-requirements,.conn-minimum-notes,.conn-checklist { grid-template-columns:1fr; gap:26px; }
 .setup-notes h4 { font-size:17px; }
 .setup-notes p { font-size:14px; }
 .conn-guest-note { padding:20px; gap:14px; }
 .conn-guest-note>.conn-icon { width:26px; height:26px; }
 .conn-guest-note strong { font-size:16px; }
 .conn-guest-note p { font-size:13px; }
 .conn-control-label { padding:24px 0; font-size:12px; }
 .conn-stations { grid-template-columns:1fr; border-top:0; border-left:2px dashed #567d93; padding:0 0 0 22px; gap:22px; margin-left:8px; }
 .conn-station::before { width:22px; height:0; left:-24px; top:50%; border-left:0; border-top:2px dashed #567d93; }
 .conn-utility { margin-top:26px; }
 .conn-utility .text-link { font-size:13px; }
 .conn-input-option { padding:24px 20px; }
 .conn-input-option h3 { font-size:25px; }
 .conn-input-option .connection-diagram figcaption { border-top:1px solid var(--line); padding-top:18px; }
 .conn-input-option .conn-node { padding:20px; }
 .conn-input-option .conn-node strong { font-size:16px; }
 .conn-input-option .conn-node p { font-size:13px; }
 .conn-port-note { padding:22px 20px; }
 .conn-port-note strong { font-size:16px; }
 .conn-port-note p { font-size:13px; }
 .conn-setup-steps li { grid-template-columns:26px 1fr; gap:12px; }
 .conn-setup-steps li>span { grid-column:2; font-size:14px; }
 .conn-requirement-card { padding:24px 20px; }
 .conn-requirement-title { gap:14px; }
 .conn-requirement-title h3 { font-size:24px; }
 .conn-requirement-title>.conn-icon,.conn-requirement-title>.icon { width:32px; height:32px; }
 .conn-requirement-card dd { font-size:14px; }
 .conn-requirement-card .conn-recommendation { font-size:13px; padding:14px; }
 .conn-minimum-notes { gap:28px; margin-top:32px; }
 .conn-minimum-notes h3 { font-size:22px; }
 .conn-minimum-notes p,.conn-checklist span { font-size:14px; }
 .conn-checklist strong { font-size:17px; }
 .conn-sources { padding-block:36px; }
 .conn-sources li { font-size:13px; padding-block:8px; }
}
@media(prefers-reduced-motion:reduce) { .setup-selector>a { transition:none; } }
@media print {
 .page-connectivity [data-setup-panel][hidden] { display:block!important; }
 .setup-panel { break-before:page; margin-block:30px; }
 .setup-panel:first-of-type { break-before:auto; }
 .setup-selector,.conn-utility,.conn-soundcheck>.wrap>.btn { display:none; }
 .connection-diagram,.conn-requirement-card,.conn-input-option { break-inside:avoid; }
 .conn-input-options,.conn-requirements,.conn-minimum-notes { grid-template-columns:1fr; }
 .conn-node-host { background:white; color:black; }
 .conn-node-host p { color:black; }
 .conn-path { flex-direction:row; }
 .conn-link { display:flex; flex-direction:column; flex:0 0 90px; }
 .conn-link>svg { transform:none; width:100%; }
 .conn-stations { grid-template-columns:repeat(3,1fr); }
}

/* A compact, printable AV hand-off. Keep every setup and requirement in the PDF. */
@media print {
 .page-connectivity { font-size:10pt; line-height:1.5; }
 .page-connectivity h1 { font-size:27pt; }
 .page-connectivity h2 { font-size:20pt; }
 .page-connectivity h3,.setup-heading h3 { font-size:16pt; }
 .page-connectivity .page-hero { border:0; background:white; padding:0 0 12pt; }
 .page-connectivity .page-hero::before { content:"SalamAI · Connectivity & requirements"; display:block; font-size:10pt; margin-bottom:12pt; }
 .page-connectivity .page-hero .lede { font-size:11pt; margin:12pt 0 0; }
 .page-connectivity .hero-breadcrumbs,.page-connectivity .page-hero-visual,.page-connectivity .eyebrow,
 .page-connectivity .page-hero .btn,.page-connectivity main>.section.tinted:not([id]) { display:none; }
 .page-connectivity .section { padding:18px 0; }
 .page-connectivity .section-heading { margin-bottom:18px; }
 .page-connectivity .section-heading p { margin-block:12px; font-size:10pt; }
 .conn-legend { margin-bottom:18px; }
 .setup-panel { margin-top:0; }
 .setup-heading { margin-bottom:14px; }
 .setup-heading p,.setup-notes p { font-size:10pt; line-height:1.5; }
 .setup-notes { grid-template-columns:1fr 1fr; gap:20px; }
 .setup-notes h4 { font-size:11pt; margin-bottom:8px; }
 .connection-diagram { padding:14px; margin-bottom:18px; }
 .conn-node { padding:14px 10px; gap:10px; }
 .conn-node strong { font-size:11pt; }
 .conn-node p { font-size:9pt; line-height:1.5; }
 .conn-device { width:36px; height:36px; }
 .conn-device .conn-icon,.conn-device>.icon { width:26px; height:26px; }
 .conn-link,.conn-input-option .conn-link { display:flex; min-height:0; flex:0 0 72px; padding:5px; }
 .conn-link>span,.conn-input-option .conn-link>span { font-size:8pt; line-height:1.5; }
 .conn-link>svg { width:100%; }
 .connection-diagram figcaption { font-size:9pt; line-height:1.5; margin-top:14px; padding-top:12px; }
 .conn-guest-note { margin:18px 0; padding:14px; }
 .conn-guest-note strong { font-size:11pt; }
 .conn-guest-note p,.conn-footnote { font-size:9pt; line-height:1.5; }
 .conn-campaign-admin { max-width:270px; }
 .conn-control-label { padding:20px; font-size:9pt; }
 .conn-stations { border-left:0; border-top:2px dashed #567d93; margin:0; padding:20px 0 0; gap:14px; }
 .conn-station { padding:14px 10px; gap:10px; }
 .conn-station::before { width:0; height:20px; top:-22px; left:50%; border-top:0; border-left:2px dashed #567d93; }
 .conn-station-label,.conn-station p,.conn-station-audio { font-size:9pt; line-height:1.5; }
 .conn-station strong { font-size:11pt; }
 .conn-station>.conn-icon { width:28px; height:28px; }
 .conn-input-options { gap:18px; }
 .conn-input-option { padding:18px; }
 .conn-input-option h3 { font-size:15pt; margin:12px 0; }
 .conn-input-option>.connection-diagram { margin-bottom:12px; }
 .conn-input-option .conn-node { padding:12px; }
 .conn-input-option .conn-node strong { font-size:10pt; }
 .conn-input-option .conn-node p,.conn-input-option>p { font-size:9pt; line-height:1.5; }
 .conn-input-option .connection-diagram figcaption { border:0; padding-top:0; }
 .conn-port-note { padding:16px; margin-top:18px; }
 .conn-port-note strong { font-size:11pt; }
 .conn-port-note p { font-size:9pt; line-height:1.5; }
 .conn-setup-steps { margin-top:20px; }
 .conn-setup-steps li { grid-template-columns:22px 150px 1fr; gap:12px; padding:16px 0; }
 .conn-setup-steps li>strong { font-size:11pt; }
 .conn-setup-steps li>span { grid-column:auto; font-size:9pt; line-height:1.5; }
 .conn-requirements { grid-template-columns:1fr 1fr; gap:20px; }
 .conn-requirement-card { padding:18px; }
 .conn-requirement-title { gap:12px; padding-bottom:16px; }
 .conn-requirement-title h3 { font-size:15pt; margin:0; }
 .conn-requirement-card dl>div { padding:14px 0; }
 .conn-requirement-card dt { font-size:10pt; }
 .conn-requirement-card dd,.conn-requirement-card .conn-recommendation { font-size:9pt; line-height:1.5; }
 .conn-requirement-card .conn-recommendation { padding:12px; margin-top:16px; }
 .conn-minimum-notes { grid-template-columns:1fr 1fr; gap:20px; margin-top:22px; }
 .conn-minimum-notes h3 { font-size:13pt; margin-bottom:12px; }
 .conn-minimum-notes p { font-size:9pt; line-height:1.5; }
 .conn-checklist { grid-template-columns:1fr 1fr; gap:20px; margin-bottom:18px; }
 .conn-checklist strong { font-size:11pt; }
 .conn-checklist span { font-size:9pt; line-height:1.5; }
 .conn-sources { break-inside:avoid; }
 .conn-sources p,.conn-sources li { font-size:9pt; line-height:1.5; }
 .conn-sources li { min-height:22px; padding:0; }
}
