/* ===== Футер үстіндегі «Кампус» жолағы (template-parts/campus-strip.php, inc/campus.php) ===== */
/* Шрифт — тек сайттың негізгі шрифті Merriweather (ұсақ мәтін де; бұрын system-ui болған) */
.cs { padding: 44px 0; background: #F5F9FF; border-top: 1px solid #e3ebf6; font-family: Merriweather, Georgia, serif; color: #0A1628; }
.cs * { box-sizing: border-box; }
.cs-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: 28px; align-items: stretch; }

.cs-head .cs-addr { display: inline-block; margin-left: 12px; white-space: nowrap; } /* белгіше + мекенжай — бөлінбейді */
.cs-head .cs-pin { display: inline-block; width: 1em; height: 1em; margin-right: 4px; vertical-align: -.14em; } /* мекенжай алдындағы белгіше */
@media (max-width: 575px) { /* телефонда — бір жолда: мөлшері экранға қарай сәл кішірейеді */
    .cs-head .fp-news__sub { font-size: min(16px, 3.7vw) !important; white-space: nowrap; }
    .cs-head .cs-addr { margin-left: .6em; }
}

/* Карта (3D — assets/js/campus-map.js; оған дейін — сурет) */
.cs-map { position: relative; overflow: hidden; border: 1px solid #e3ebf6; border-radius: 18px; background: #eef3f1; box-shadow: 0 10px 30px rgba(10,22,40,.06); }
.cs-map__img { display: block; width: 100%; height: auto; }
.cs-map.is-ready .cs-map__img { display: none; }
.cs-map .campus-scene { display: block; width: 100%; height: auto; }
@media (min-width: 992px) {
    .cs-map.is-ready { min-height: 440px; }
    .cs-map.is-ready .campus-scene { position: absolute; inset: 0; height: 100%; } /* оң жақ бағанның биіктігіне */
}
.cs-map .campus-face, .cs-map .campus-number { cursor: pointer; }
.cs-map .campus-scene:focus-visible { outline: 3px solid #0052A5; outline-offset: -3px; }
.cs-map .campus-scene:focus:not(:focus-visible) { outline: none; } /* тінтуірмен басқанда жиек шықпасын */
.cs-map__btn { position: absolute; z-index: 2; left: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 50px; background: rgba(10,22,40,.86); color: #fff !important; font: 700 13px Merriweather, Georgia, serif; text-decoration: none !important; backdrop-filter: blur(4px); }
.cs-map__btn svg { width: 16px; height: 16px; }
.cs-map__btn:hover { background: #0052A5; }

/* Тақырып — басты беттің басқа бөлімдеріндей (.fp-news__head, front-page.php), картаның үстінде; оң жақта — қойындылар, батырмалар */

.cs-acc { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.cs-acc__i { border: 1px solid #e3ebf6; border-radius: 12px; background: #fff; }
.cs-acc__i.is-open { border-color: #cfdcec; box-shadow: 0 6px 18px rgba(10,22,40,.05); }
.cs-acc h3 { margin: 0 !important; font-size: inherit !important; }
.cs-acc__h { display: flex; align-items: center; gap: 8px; width: 100%; padding: 12px 14px; border: 0; border-radius: 12px; background: none; font: 700 14px Merriweather, Georgia, serif; color: #0A1628; text-align: left; cursor: pointer; }
.cs-acc__h:hover { color: #0052A5; }
.cs-acc__h:focus-visible { outline: 2px solid #0052A5; outline-offset: -2px; }
.cs-acc__n { min-width: 22px; padding: 1px 7px; border-radius: 50px; background: #EEF5FF; color: #0052A5; font: 700 11.5px/1.5 Merriweather, Georgia, serif; text-align: center; }
.cs-acc__h svg { width: 16px; height: 16px; margin-left: auto; color: #5a6a80; transition: transform .15s; }
.cs-acc__i.is-open .cs-acc__h { border-bottom: 2px solid #F5C46B; border-radius: 12px 12px 0 0; }
.cs-acc__i.is-open .cs-acc__h svg { transform: rotate(180deg); color: #0052A5; }
.cs-acc__b { padding: 6px 8px 8px; }
.cs-acc__b[hidden] { display: none; }
.cs-acc ul { list-style: none; margin: 0; padding: 0; }
.cs-acc a { display: flex; align-items: flex-start; gap: 9px; padding: 6px 8px; border-radius: 8px; font: 13px/1.35 Merriweather, Georgia, serif; color: #0A1628 !important; text-decoration: none !important; }
.cs-acc a:hover, .cs-acc a.is-hot { background: #EEF5FF; color: #0052A5 !important; }
.cs-acc a.is-sel { background: #0A1628; color: #fff !important; }
.cs-acc a.is-sel small { color: #c9d6e6; }
.cs-acc a.is-sel .cs-info { color: #F5C46B; }
.cs-acc small { display: block; font-size: 11.5px; color: #5a6a80; }
.cs-num { flex: 0 0 auto; min-width: 24px; height: 24px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--c); border-radius: 50px; background: #fff; font: 700 10.5px/1 Merriweather, Georgia, serif; color: #0A1628; }
.cs-info { flex-shrink: 0; width: 15px; height: 15px; margin: 2px 0 0 auto; color: #0052A5; opacity: .8; }

.cs-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cs-btn { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 42px; padding: 0 14px; border: 1px solid #cfdcec; border-radius: 10px; background: #fff; font: 700 13px Merriweather, Georgia, serif; color: #0052A5 !important; text-decoration: none !important; white-space: nowrap; }
.cs-btn svg { width: 14px; height: 14px; }
.cs-btn:hover { border-color: #0052A5; }
.cs-btn--pri { border-color: #0052A5; background: #0052A5; color: #fff !important; }
.cs-btn--pri:hover { background: #003b78; border-color: #003b78; }

@media (max-width: 991px) {
    .cs { padding: 32px 0; }
    .cs-in { grid-template-columns: 1fr; gap: 18px; }
    .cs-map { order: 2; }
    .cs-map__btn { display: none; } /* телефонда — төмендегі «Интерактивті карта» батырмасы жеткілікті, картаны жаппасын */
    .cs-side { display: contents; } /* телефонда: (тақырып) → карта → қойындылар → батырмалар */
    .cs-acc { order: 3; margin: 0; }
    .cs-actions { order: 4; }
}

/* ===== Корпус туралы модальді терезе (assets/js/campus-modal.js) ===== */
html.cm-lock { overflow: hidden; }
.cm { width: min(1040px, calc(100% - 32px)); max-width: none; max-height: min(86vh, 860px); padding: 0; border: 0; border-radius: 18px; background: #fff; color: #0A1628; box-shadow: 0 30px 80px rgba(10,22,40,.35); font-family: Merriweather, Georgia, serif; }
.cm::backdrop { background: rgba(10,22,40,.55); backdrop-filter: blur(3px); }
.cm[open] { animation: cm-in .18s ease-out; }
@keyframes cm-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.cm * { box-sizing: border-box; }
.cm-box { position: relative; display: flex; flex-direction: column; max-height: inherit; }
.cm-x { position: absolute; top: 14px; right: 14px; z-index: 2; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; cursor: pointer; }
.cm-x:hover { background: rgba(255,255,255,.26); }
.cm-x svg { width: 18px; height: 18px; }
.cm-head { display: flex; align-items: flex-start; gap: 16px; padding: 24px 64px 22px 24px; background: linear-gradient(120deg, #0A1628 0%, #0b2f63 55%, #0052A5 100%); color: #fff; }
.cm-num { flex: 0 0 auto; min-width: 52px; height: 52px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border: 3px solid var(--c, #3b82f6); border-radius: 14px; background: #fff; color: #0A1628; font: 700 20px/1 Merriweather, Georgia, serif; }
.cm-type { display: block; margin-bottom: 6px; font: 700 11px/1.3 Merriweather, Georgia, serif; letter-spacing: .14em; text-transform: uppercase; color: #F5C46B; }
.cm-name { margin: 0 !important; font-size: 21px !important; font-weight: 700; line-height: 1.3; color: #fff !important; }
.cm-desc { margin: 6px 0 0; font: 13.5px/1.45 Merriweather, Georgia, serif; color: #d6e3f5; }
.cm-body { flex: 1; overflow: auto; padding: 20px 24px; }
.cm-search { position: relative; display: block; margin: 0 0 14px; }
.cm-search svg { position: absolute; left: 12px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: #5a6a80; }
.cm-search input { width: 100%; height: 42px; margin: 0; padding: 0 12px 0 38px; border: 1px solid #cfdcec; border-radius: 10px; font: 14px Merriweather, Georgia, serif; color: #0A1628; background: #fff; }
.cm-search input:focus { outline: none; border-color: #0052A5; box-shadow: 0 0 0 3px rgba(0,82,165,.15); }
.cm-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.cm-tabs[hidden] { display: none; }
.cm-tabs button { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid #cfdcec; border-radius: 50px; background: #fff; font: 700 13px Merriweather, Georgia, serif; color: #0A1628; cursor: pointer; }
.cm-tabs button span { min-width: 20px; padding: 1px 6px; border-radius: 50px; background: #EEF5FF; color: #0052A5; font: 700 11px/1.5 Merriweather, Georgia, serif; }
.cm-tabs button[aria-selected="true"] { border-color: #0052A5; background: #0052A5; color: #fff; }
.cm-tabs button[aria-selected="true"] span { background: rgba(255,255,255,.2); color: #fff; }
.cm-tabs button:focus-visible { outline: 2px solid #F5C46B; outline-offset: 2px; }
.cm-floor[hidden] { display: none; }
.cm-floor__t { display: none; margin: 0 0 8px !important; font-size: 14px !important; font-weight: 700; color: #0052A5; }
.cm-floor.is-search .cm-floor__t, .cm-floor:only-of-type .cm-floor__t { display: block; }
.cm-floor.is-search + .cm-floor.is-search { margin-top: 16px; }
.cm-rooms { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; }
@media (min-width: 992px) { .cm-rooms { grid-template-columns: repeat(3, minmax(0, 1fr)); } } /* кең терезе (2026-10-19) — 3 баған */
.cm-rooms li { display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; border: 1px solid #eef2f7; border-radius: 10px; background: #F8FBFF; font: 13.5px/1.4 Merriweather, Georgia, serif; }
.cm-rooms li[hidden] { display: none; }
.cm-rooms li.is-hit { border-color: #E0A526; background: #FFF9EC; box-shadow: 0 0 0 2px rgba(224,165,38,.25); } /* іздеуден келген кабинет */
.cm-rooms b { flex: 0 0 auto; min-width: 42px; padding: 1px 7px; border-radius: 6px; background: #0052A5; color: #fff; font: 700 12px/1.5 Merriweather, Georgia, serif; text-align: center; }
.cm-rooms b.cm-dot { min-width: 0; width: 7px; height: 7px; margin-top: 6px; padding: 0; border-radius: 50%; background: #F5C46B; }
.cm-empty { margin: 4px 0; padding: 22px; border: 1px dashed #cfdcec; border-radius: 12px; text-align: center; font: 14px Merriweather, Georgia, serif; color: #5a6a80; }
.cm-empty[hidden] { display: none; }
.cm-foot { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 14px 24px; border-top: 1px solid #eef2f7; background: #F8FBFF; }
.cm-map { margin-right: auto; font: 700 13.5px Merriweather, Georgia, serif; color: #0052A5 !important; text-decoration: none !important; }
.cm-map[hidden] { display: none; }
.cm-map:hover { text-decoration: underline !important; }
.cm-close { height: 38px; padding: 0 18px; border: 1px solid #cfdcec; border-radius: 10px; background: #fff; font: 700 13px Merriweather, Georgia, serif; color: #0A1628; cursor: pointer; }
.cm-close:hover { border-color: #0052A5; color: #0052A5; }
@media (max-width: 575px) {
    .cm { width: 100vw; max-width: 100vw; max-height: 92vh; margin: auto 0 0; border-radius: 18px 18px 0 0; }
    .cm-head { padding: 18px 56px 16px 16px; gap: 12px; }
    .cm-num { min-width: 44px; height: 44px; font-size: 17px; }
    .cm-name { font-size: 18px !important; }
    .cm-body { padding: 16px; }
    .cm-rooms { grid-template-columns: 1fr; }
    .cm-foot { padding: 12px 16px; }
}

@media print { .cs, .cm { display: none !important; } }
