/* Annual plan support: existing four-column editorial layout and brand retained.
   Source-provided teacher portraits share one circle and information hierarchy. */
.teacher-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;align-items:stretch}
.teacher-card{padding:26px 0 0;border-top:2px solid var(--ink);display:flex;flex-direction:column;min-width:0}
.teacher-avatar{position:relative;width:120px;height:120px;border-radius:50%;overflow:hidden;background:var(--surface);margin-bottom:24px;flex:none;display:grid;place-items:center;color:var(--muted);font-size:12px}
/* Lock the image to the square viewport even after its intrinsic size loads. */
.teacher-avatar img{position:absolute;inset:0;display:block;width:120px;height:120px;object-fit:cover}
.teacher-heading{min-height:100px}
.teacher-card .teacher-role{font-size:14px;font-weight:650;color:var(--muted);line-height:1.65;margin:0 0 22px}
.teacher-card h3{font-size:26px;line-height:1.35;margin:0 0 12px;overflow-wrap:anywhere}
.teacher-card .teacher-introduction{font-size:15px;color:var(--muted);margin:0 0 22px;line-height:1.85}
.teacher-card .teacher-focus{font-size:14px;font-weight:650;line-height:1.75;color:var(--ink);padding:16px;border-radius:12px;background:var(--green-soft);margin:auto 0 0}
.mentor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.mentor-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:20px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);align-items:start}
.mentor-avatar{width:88px;aspect-ratio:1;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;background:var(--white);overflow:hidden;color:var(--muted);font-size:12px}
.mentor-avatar img{width:100%;height:100%;object-fit:cover}
.mentor-copy{min-width:0}
.mentor-copy h3{font-size:21px;line-height:1.4;margin:0 0 16px;overflow-wrap:anywhere}
.mentor-copy p{font-size:14px;line-height:1.8;color:var(--muted);margin:0;overflow-wrap:anywhere}
.mentor-copy p span{display:block;color:var(--ink);font-size:12px;font-weight:600;margin-bottom:3px}
.mentor-copy .mentor-school{margin-bottom:14px}
.mentor-copy .mentor-placeholder-label{display:inline-block;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 7px;margin:0 0 14px}
.mentor-copy:has(.mentor-placeholder-label) h3{margin-bottom:8px}
.virtual-mentor-avatar{position:relative;border:0;border-radius:50%;background:#e1eee5;--avatar-ink:#44735d}
.virtual-variant-2{background:#e6eaf1;--avatar-ink:#596d8a}
.virtual-variant-3{background:#f0e8de;--avatar-ink:#9b7756}
.virtual-variant-4{background:#ece5ed;--avatar-ink:#866482}
.virtual-avatar-head{position:absolute;width:29px;height:32px;left:30px;top:16px;border-radius:48% 48% 45% 45%;background:var(--avatar-ink)}
.virtual-avatar-body{position:absolute;width:66px;height:46px;left:11px;top:54px;border-radius:48% 48% 0 0;background:var(--avatar-ink)}
.virtual-variant-2 .virtual-avatar-head{border-radius:42% 42% 48% 48%;height:34px;top:14px}
.virtual-variant-3 .virtual-avatar-head{width:32px;left:28px;border-radius:50%}
.virtual-variant-4 .virtual-avatar-body{width:60px;left:14px}
.mentor-more{margin-top:28px}
.mentor-more>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:60px;padding:14px 22px;background:var(--white);border:1px solid var(--line);border-radius:12px;font-size:16px;font-weight:650;color:var(--ink);cursor:pointer;transition:background .18s,border-color .18s}
.mentor-more>summary::-webkit-details-marker{display:none}
.mentor-more>summary:hover{background:var(--green-soft);border-color:var(--green-dark)}
.mentor-more>summary:focus-visible{outline:3px solid var(--green-dark);outline-offset:4px}
.mentor-more>summary:active{background:var(--green-soft)}
.mentor-toggle-mark{display:grid;place-items:center;width:30px;height:30px;font-size:26px;line-height:1;color:var(--green-dark);flex:none}
.mentor-collapse-label{display:none}
.mentor-more[open] .mentor-expand-label{display:none}
.mentor-more[open] .mentor-collapse-label{display:inline}
.mentor-more[open] .mentor-toggle-mark{transform:rotate(45deg)}
.mentor-extra{margin-top:24px}
.about-space .page-title{max-width:960px;margin-bottom:26px}
.space-address{display:flex;gap:18px;align-items:baseline;margin-bottom:38px}
.space-address>span{font-size:14px;color:var(--muted);flex:none}
.space-address address{font-style:normal;font-size:22px;font-weight:650;line-height:1.65;overflow-wrap:anywhere}
@media(max-width:1100px){.mentor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1023px){.teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.teacher-heading{min-height:0}.teacher-avatar{margin-bottom:22px}}
@media(max-width:640px){.teacher-grid,.mentor-grid{grid-template-columns:1fr}.teacher-grid{gap:34px}.teacher-card{padding-top:22px}.teacher-card h3{font-size:26px}.mentor-card{padding:22px;gap:16px}.mentor-more>summary{padding:14px 18px;font-size:15px}.space-address{flex-direction:column;gap:6px;margin-bottom:28px}.space-address address{font-size:19px}}
@media(prefers-reduced-motion:reduce){.mentor-more>summary{transition:none}}
@media(prefers-color-scheme:dark){.mentor-toggle-mark{color:#72e4a8}.mentor-more>summary:hover,.mentor-more>summary:focus-visible{border-color:#72e4a8;outline-color:#72e4a8}}

/* Six supplied photos: full-width panorama, four landscape frames and a
   portrait spanning two rows. Column ratio preserves the portrait framing. */
.offline-gallery-filled{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,calc(36% - 4.32px));gap:18px}
.offline-gallery-filled .offline-photo-slot{position:relative;grid-column:auto;grid-row:auto;aspect-ratio:4/3;border:0;border-radius:16px;background:var(--surface)}
.offline-gallery-filled .offline-photo-slot img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.offline-gallery-filled .offline-photo-panorama{grid-column:1/-1;aspect-ratio:2848/1080}
.offline-gallery-filled .offline-photo-portrait{grid-column:3;grid-row:2/span 2;aspect-ratio:auto}
@media(max-width:767px){
  .offline-gallery-filled{grid-template-columns:minmax(0,1fr);gap:16px}
  .offline-gallery-filled .offline-photo-slot{grid-column:1/-1;grid-row:auto;aspect-ratio:var(--photo-aspect,4/3)}
}
.space-render-note{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 18px}
.space-gallery-filled{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.space-gallery-filled .offline-photo-slot{position:relative;grid-column:auto;aspect-ratio:4/3;border:0;border-radius:16px;background:var(--surface)}
.space-gallery-filled .offline-photo-slot img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:767px){.space-gallery-filled{grid-template-columns:minmax(0,1fr);gap:16px}}

/* Additional supplied photos keep their native proportions in a compact fold. */
.offline-more{margin-top:28px}
.offline-more>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:60px;padding:14px 22px;background:var(--white);border:1px solid var(--line);border-radius:12px;font-size:16px;font-weight:650;cursor:pointer}
.offline-more>summary::-webkit-details-marker{display:none}
.offline-more>summary:hover{background:var(--green-soft);border-color:var(--green-dark)}
.offline-collapse-label{display:none}
.offline-more[open] .offline-expand-label{display:none}
.offline-more[open] .offline-collapse-label{display:inline}
.offline-toggle-mark{font-size:26px;line-height:1;color:var(--plan-accent)}
.offline-more[open] .offline-toggle-mark{transform:rotate(45deg)}
.offline-more-grid{columns:3;column-gap:18px;margin-top:24px}
.offline-more-grid .offline-photo-slot{position:relative;display:block;break-inside:avoid;grid-column:auto;margin:0 0 18px;aspect-ratio:var(--photo-aspect,4/3);border:0;border-radius:16px;background:var(--surface)}
.offline-more-grid .offline-photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.offline-more-grid{columns:2}}
@media(max-width:640px){.offline-more-grid{columns:1}.offline-more>summary{padding:14px 18px;font-size:15px}}

/* Keep the same control beneath all cards/photos in either disclosure state. */
.has-bottom-toggle>summary{display:none}
.has-bottom-toggle{margin-top:0}
.has-bottom-toggle[open]{margin-top:24px}
.has-bottom-toggle>.mentor-extra,.has-bottom-toggle>.offline-more-grid{margin-top:0}
.section-disclosure-toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:60px;margin-top:28px;padding:14px 22px;background:var(--white);border:1px solid var(--line);border-radius:12px;color:var(--ink);font:inherit;font-size:16px;font-weight:650;text-align:left;cursor:pointer;transition:background .18s,border-color .18s;scroll-margin:100px 0 28px}
.section-disclosure-toggle:hover,.section-disclosure-toggle:active{background:var(--green-soft);border-color:var(--green-dark)}
.section-disclosure-toggle:focus-visible{outline:3px solid var(--green-dark);outline-offset:4px}
.section-disclosure-mark{display:grid;place-items:center;width:30px;height:30px;font-size:26px;line-height:1;color:var(--green-dark);flex:none}
.section-disclosure-toggle[aria-expanded="true"] .section-disclosure-mark{transform:rotate(45deg)}
@media(max-width:640px){.section-disclosure-toggle{padding:14px 18px;font-size:15px}}
@media(prefers-reduced-motion:reduce){.section-disclosure-toggle{transition:none}}
@media(prefers-color-scheme:dark){.section-disclosure-mark{color:#72e4a8}.section-disclosure-toggle:hover,.section-disclosure-toggle:focus-visible{border-color:#72e4a8;outline-color:#72e4a8}}
