/* Shared colors, typography, navigation and homepage components. */
@import url('../homepage/homepage.css?v=20261113-3');

/* Reading pages use the same restrained design, with a comfortable line length. */
.inner-page{min-height:100vh;display:flex;flex-direction:column}
.document-main{flex:1;padding-top:38px;padding-bottom:64px}
.document-layout{max-width:840px;margin-inline:auto}
.document-layout.has-toc{max-width:1120px;display:grid;grid-template-columns:minmax(0,800px) minmax(180px,240px);gap:64px;align-items:start}
.document{min-width:0}
.document-header{padding-bottom:24px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.back-link{display:inline-block;margin-bottom:19px;font-size:13px;text-decoration:none}
.document-header h1{font-size:38px;letter-spacing:-.8px;margin:0;line-height:1.22}
.document-header .subtitle{font-size:17px;color:var(--muted);margin:12px 0 0}
.document-body{font-size:16px;line-height:1.8;overflow-wrap:anywhere}
.document-body p{margin-bottom:20px}
.document-body h2{font-size:24px;letter-spacing:-.3px;margin:36px 0 16px}
.document-body h3{font-size:19px;margin:28px 0 12px}
.document-body h4{font-size:17px;margin:22px 0 10px}
.document-body>section:first-child>h2,.document-body>h2:first-child,.contact-page>section:first-child>h2{margin-top:0}
.document-body ul,.document-body ol{padding-left:24px;margin:0 0 22px}
.document-body li{padding-left:3px;margin:10px 0}
.document-body li::marker{color:var(--muted)}
.document-body li>p:last-child{margin-bottom:0}
.document-body hr{border:0;border-top:1px solid var(--line);margin:30px 0}
.document-body blockquote,.document-body .callout{border:0;border-left:3px solid var(--green);padding:12px 0 12px 22px;margin:24px 0;background:var(--soft);border-radius:0;box-shadow:none}
.document-body blockquote p:last-child,.document-body .callout p:last-child{margin-bottom:0}
.document-body .callout{padding-right:20px}
.document-body .callout-title{font-weight:600;color:var(--ink);margin-bottom:6px}
.document-body code{font-size:.88em;background:var(--soft);padding:2px 5px}
.document-body pre{overflow-x:auto;padding:18px;background:var(--soft);font-size:14px;line-height:1.6}
.document-body pre code{padding:0}
.document-body table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14px}
.document-body th,.document-body td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
.document-body th{font-weight:600;color:var(--ink)}
.document-body img,.document-body video{max-width:100%;height:auto}
.document-body iframe{display:block;max-width:100%;width:100%;border:1px solid var(--line)!important;margin:24px 0}
.document-body figure{margin:24px 0}
.document-body figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.page-toc{position:sticky;top:110px;border-left:1px solid var(--line);padding-left:22px;max-height:calc(100vh - 140px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a7b4a8 #f3f5f1}
.page-toc h2{font-size:13px;font-weight:600;margin:0 0 13px}
.page-toc ul{list-style:none;margin:0;padding:0;font-size:13px;line-height:1.6}
.page-toc ul ul{padding-left:13px;margin-top:8px}
.page-toc li{margin:0 0 10px}
.page-toc a{color:var(--muted);text-decoration:none}
.page-toc a:hover{color:var(--green);text-decoration:underline}
.page-toc:not(:has(li)){display:none}
.document-layout.has-toc:not(:has(.page-toc li)){display:block;max-width:840px}
.service-category>ul,.supervision-category>ul,.page-award .document-body>ul,.page-misc .document-body>ul{list-style:none;padding:0}
.service-category>ul>li,.supervision-category>ul>li,.page-award .document-body>ul>li,.page-misc .document-body>ul>li{padding:12px 0;margin:0;border-bottom:1px solid var(--line)}
.university-section{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;padding:26px 0;border-bottom:1px solid var(--line)}
.university-section:first-child{padding-top:0}
.university-image img,.university-image video{width:180px;height:auto;object-fit:contain}
.university-image p,.university-description p:last-child{margin-bottom:0}
.page-calendar .document-layout,.page-photos .document-layout{max-width:1100px}
.photo-masonry{columns:3;column-gap:18px}
.photo-card{break-inside:avoid;margin-bottom:18px;cursor:pointer}
.photo-card img{display:block;width:100%;height:auto}
.photo-card:hover{opacity:.92}
.photo-lightbox{display:none;position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.92);align-items:center;justify-content:center;flex-direction:column;padding:24px}
.photo-lightbox.active{display:flex}
.photo-lightbox img{max-width:90vw;max-height:80vh;width:auto;object-fit:contain}
.lightbox-close{position:absolute;top:16px;right:24px;background:none;border:0;color:white;font-size:36px;line-height:1;cursor:pointer}
.lightbox-caption{color:white;font-size:13px;margin-top:12px}
@media(max-width:1100px){.document-layout.has-toc{gap:36px;grid-template-columns:minmax(0,1fr) 200px}.photo-masonry{columns:2}}
@media(max-width:760px){.document-main{padding-top:25px;padding-bottom:38px}.document-layout.has-toc{display:flex;flex-direction:column;gap:0}.document{display:contents}.document-header{order:0;width:100%;padding-bottom:20px;margin-bottom:22px}.document-header h1{font-size:30px;letter-spacing:-.6px}.back-link{margin-bottom:16px}.document-body{order:2;width:100%;font-size:15px;line-height:1.75}.document-body h2{font-size:22px;margin-top:28px}.document-body h3{font-size:18px}.page-toc{position:static;width:100%;order:1;border-left:0;border-bottom:1px solid var(--line);padding:0 0 14px;margin-bottom:25px;max-height:190px}.page-toc:not(:has(li)){display:none}.university-section{grid-template-columns:1fr;gap:18px}.university-image img,.university-image video{width:160px}.photo-masonry{columns:1}.photo-lightbox{padding:12px}.photo-lightbox img{max-width:95vw;max-height:85vh}}

.document-body .btn{display:inline-block;padding:8px 0;font-size:14px;color:var(--green);text-decoration:underline;text-underline-offset:4px;background:none;border:0;border-radius:0}
