/* ADS additions. Shared header/footer and existing components keep production styling. */
.ads-page { --ads-navy:#1b293e; --ads-brand:#a2174e; --ads-bg:#f3f3f3; --ads-muted:#667180; color:var(--ads-navy); font-size:16px; line-height:1.75; }
.ads-page *, .ads-breadcrumb * { box-sizing:border-box; }
.ads-container { width:calc(100% - 13.194444%); max-width:1250px; margin-inline:auto; }
.ads-page h1,.ads-page h2,.ads-page h3,.ads-page p,.ads-page figure { margin:0; }
.ads-page a { color:inherit; }
.ads-page a:focus-visible,.ads-page button:focus-visible,.ads-page select:focus-visible { outline:3px solid #a2174e; outline-offset:4px; }
.ads-breadcrumb { background:#f3f3f3; color:#1b293e; font-size:14px; line-height:24px; padding:18px 0; }
.ads-breadcrumb ol { padding-left:110px; display:flex; gap:16px; list-style:none; }
.ads-breadcrumb li { min-width:0; flex-shrink:0; white-space:nowrap; }
.ads-breadcrumb li:last-child { flex-shrink:1; overflow:hidden; text-overflow:ellipsis; }
.ads-breadcrumb li+li::before { content:'›'; color:#667180; margin-right:16px; }
.ads-breadcrumb a { color:inherit; }
.ads-intro { padding-top:34px; padding-bottom:32px; }
.ads-page .ads-column-title { color:#000; font-family:'游明朝','Yu Mincho',YuMincho,'Noto Serif JP',serif; font-size:28px; font-weight:600; line-height:1.7; margin-bottom:16px; }
.ads-tabs { display:flex; gap:12px; margin-top:28px; }
.ads-tabs a { width:160px; background:var(--ads-bg); text-align:center; padding:12px 10px; font-size:15px; font-weight:500; line-height:25.5px; }
.ads-tabs a[aria-current],.ads-keyword-links a[aria-current] { background:var(--ads-navy); color:white; text-decoration:underline; }
.ads-page .ads-keywords > p { font-size:12px; color:var(--ads-muted); margin:20px 0 8px; }
.ads-keyword-links { display:flex; gap:8px; flex-wrap:wrap; }
.ads-keyword-links a { background:var(--ads-bg); padding:12px 15px; font-size:15px; font-weight:500; line-height:25.5px; }
.ads-list-area { background:var(--ads-bg); padding:64px 0 80px; }
.ads-page .ads-section-label { display:flex; gap:16px; align-items:baseline; margin-bottom:20px; font-size:14px; font-weight:400; line-height:25px; }
.ads-section-label > span { color:var(--ads-brand); font-size:13px; font-weight:700; letter-spacing:1px; min-width:90px; }
.ads-pickup { margin-bottom:56px; }
.ads-card { background:white; min-width:0; }
.ads-card-image { display:block; aspect-ratio:16/9; overflow:hidden; }
.ads-card-image > img { display:block; width:100%; height:100%; object-fit:cover; }
.ads-card-body { padding:24px 32px 29px; display:flex; flex-direction:column; gap:10px; }
.ads-meta { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px 12px; font-size:12px; color:var(--ads-muted); line-height:20px; }
.ads-badge { display:inline-block; flex-shrink:0; background:var(--ads-navy); color:white; padding:3px 10px; font-size:12px; line-height:20px; white-space:nowrap; }
.ads-badge-alumni,.ads-material-badge.is-flyer { background:var(--ads-brand); }
.ads-material-badge.is-report,.ads-material-badge.is-event { background:#5c6571; }
.ads-card h3 { font-size:18px; line-height:1.7; font-weight:700; }
.ads-card h3 a { text-decoration:underline; text-underline-offset:3px; }
.ads-concept { font-size:15px; line-height:25.5px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ads-tags { display:flex; flex-wrap:wrap; gap:0 10px; font-size:13px; line-height:22px; color:var(--ads-muted); }
.ads-tags a { color:var(--ads-muted); }
.ads-date { color:var(--ads-muted); font-size:12px; line-height:20px; }
.ads-pickup-card { display:grid; grid-template-columns:46% minmax(0,1fr); }
.ads-pickup-card .ads-card-image { aspect-ratio:auto; min-height:430px; }
.ads-pickup-card .ads-card-body { padding:40px; gap:16px; }
.ads-pickup-card h3 { font-size:24px; line-height:38px; }
.ads-pickup-card .ads-tags { font-size:12px; line-height:20px; }
.ads-page .ads-read-more { color:var(--ads-brand); font-weight:700; font-size:13px; line-height:22px; }
.ads-read-more span { margin-left:12px; }
.ads-page .ads-section-title { font-size:20px; line-height:32px; font-weight:700; margin-bottom:24px; }
.ads-column-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 30px; align-items:start; }
.ads-empty { padding:24px; background:white; }
.ads-pagination { margin-top:40px; }
.ads-pagination ul { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; list-style:none; padding:0; }
.ads-pagination a,.ads-pagination span { display:block; padding:8px 16px; border:1px solid #d9dde2; background:white; }
.ads-pagination .current { background:var(--ads-navy); color:white; }
.ads-fallback { width:100%; height:100%; background:#1b293e; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; color:white; font-weight:700; }
.ads-fallback img { width:26%; height:auto; max-height:60%; }
.ads-fallback.is-faculty img { filter:brightness(0) invert(1); }
.ads-fallback.is-alumni { background:#f4e8ed; color:#a2174e; }
.ads-article { width:calc(100% - 13.194444%); max-width:895px; margin:0 auto; padding:64px 0 80px; }
.ads-article-header h1 { font-size:24px; font-weight:700; line-height:38px; margin:20px 0; }
.ads-article-header .ads-tags { margin-top:16px; font-size:12px; }
.ads-article-header .ads-date+.ads-date { margin-top:8px; }
.ads-page .ads-article-hero { margin:32px 0 40px; }
.ads-article-hero > img,.ads-article-hero > .ads-fallback { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; height:auto; }
.ads-article-hero > .ads-fallback { display:flex; }
.ads-article-hero figcaption { font-size:12px; color:var(--ads-muted); padding-top:8px; }
.ads-lead { background:var(--ads-bg); padding:32px; font-size:16px; font-weight:500; line-height:30px; margin-bottom:40px; }
.ads-prose { font-size:16px; line-height:28px; overflow-wrap:anywhere; }
.ads-page .ads-prose > *+* { margin-top:24px; }
.ads-prose h2 { font-size:20px; font-weight:700; line-height:1.5; padding-top:16px; }
.ads-prose h3 { font-size:18px; font-weight:700; }
.ads-prose blockquote { border:0; background:#f8f2f5; padding:32px; margin-left:0; margin-right:0; }
.ads-prose blockquote p { margin:0; }
.ads-prose cite { display:block; margin-top:12px; font-size:12px; line-height:20px; font-style:normal; color:var(--ads-muted); }
.ads-prose ul,.ads-prose ol { padding-left:1.5em; }
.ads-prose img { max-width:100%; height:auto; }
.ads-profile { background:var(--ads-bg); padding:32px; display:flex; gap:28px; margin-top:40px; align-items:flex-start; }
.ads-profile-image { width:128px; height:132px; overflow:hidden; flex-shrink:0; position:relative; }
.ads-profile-image img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.ads-profile-image.is-original-photo img { position:absolute; width:320px; max-width:none; height:auto; top:-20px; left:-96px; }
.ads-profile > div:last-child { min-width:0; }
.ads-profile h2 { font-size:20px; line-height:32px; font-weight:700; margin:4px 0 8px; }
.ads-profile p { font-size:14px; line-height:25px; }
.ads-page .ads-eyebrow { color:var(--ads-brand); font-size:14px; font-weight:700; letter-spacing:2.4px; line-height:22px; }
.ads-profile .ads-eyebrow { font-size:12px; font-weight:400; letter-spacing:0; }
.ads-profile .ads-read-more { display:inline-block; margin-top:8px; }
.ads-series { margin-top:40px; padding:32px; background:var(--ads-bg); }
.ads-series h2 { font-size:20px; font-weight:700; margin-bottom:12px; line-height:32px; }
.ads-series a { display:flex; flex-direction:column; padding:16px; gap:8px; background:white; margin-top:12px; font-size:14px; line-height:25px; }
.ads-series strong { font-size:13px; }
.ads-series [aria-current] strong { color:var(--ads-brand); }
/* Reuse the event page's .sns-wrap001 layout and original SNS icons. */
.ads-share { margin:76px 0; }
.ads-bottom-tags { margin-bottom:24px; }
.ads-back { text-align:center; margin-top:32px; }
.ads-page .ads-button { display:inline-flex; justify-content:center; align-items:center; border:1px solid var(--ads-navy); background:var(--ads-navy); color:white; padding:10px 16px; min-height:44px; font-size:13px; font-weight:700; line-height:20px; text-align:center; }
.ads-page .ads-button.is-outline { background:white; color:var(--ads-navy); }
.ads-page .ads-button.is-brand { background:var(--ads-brand); border-color:var(--ads-brand); width:350px; max-width:100%; min-height:70px; font-size:14px; }
.ads-page .ads-button:hover { opacity:.8; }
.ads-archive-intro { padding-top:64px; padding-bottom:40px; }
.ads-archive-intro h1 { font-family:'游明朝','Yu Mincho',YuMincho,'Noto Serif JP',serif; font-size:40px; line-height:58px; font-weight:600; margin:12px 0; }
.ads-archive-filters { display:flex; align-items:center; gap:40px; margin-top:28px; }
.ads-material-tabs { display:flex; flex:1; flex-wrap:wrap; border-bottom:1px solid #d9dde2; }
.ads-material-tabs a { color:var(--ads-muted); font-size:16px; font-weight:700; padding:12px 20px; border-bottom:3px solid transparent; }
.ads-material-tabs a[aria-current] { color:var(--ads-navy); border-color:var(--ads-brand); }
.ads-year-form { display:flex; gap:12px; align-items:center; font-size:13px; flex-wrap:wrap; }
.ads-year-form label { position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.ads-year-select { position:relative; display:inline-flex; align-items:center; min-height:44px; padding:8px 8px 8px 16px; border:1px solid #d9dde2; background:#fff; color:var(--ads-navy); font-size:14px; line-height:1.5; white-space:nowrap; }
.ads-year-select > span { font-weight:700; }
.ads-year-select > i.icon { display:inline-block; width:20px; height:20px; margin-left:4px; }
.ads-year-select > i.icon svg { display:block; width:100%; height:100%; }
.ads-year-select > select { position:absolute; top:0; left:0; width:100%; height:100%; opacity:0; cursor:pointer; font-size:16px; }
.ads-year-select:focus-within { outline:2px solid var(--ads-navy); outline-offset:2px; }
.ads-filter-submit { padding:10px; border:1px solid #d9dde2; background:white; color:var(--ads-navy); cursor:pointer; }
.ads-year-form.is-enhanced .ads-filter-submit { display:none; }
.ads-material-area { background:var(--ads-bg); padding:64px 0 96px; }
.ads-latest .ads-section-label { font-size:16px; font-weight:700; margin-bottom:16px; }
.ads-latest .ads-section-label > span { font-size:14px; letter-spacing:2px; min-width:76px; }
.ads-material-card { background:white; padding:18px; min-width:0; }
.ads-cover { aspect-ratio:210/297; }
.ads-cover img { display:block; width:100%; height:100%; object-fit:contain; }
.ads-cover-placeholder { width:100%; height:100%; background:#d9dde2; display:flex; align-items:center; justify-content:center; color:#667180; }
.ads-material-info { min-width:0; }
.ads-material-card .ads-meta { margin-top:12px; font-size:12px; gap:8px; }
.ads-material-badge { font-size:11px; line-height:16px; padding:3px 8px; }
.ads-material-card h3 { font-size:16px; line-height:25px; font-weight:700; margin-top:12px; }
.ads-material-card .ads-material-details { font-size:12px; line-height:22px; color:var(--ads-muted); margin-top:12px; }
.ads-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; }
.ads-material-card:not(.ads-material-latest) .ads-actions { flex-direction:column; }
.ads-material-latest { display:grid; grid-template-columns:280px minmax(0,1fr); gap:48px; padding:40px; }
.ads-material-latest .ads-meta { margin-top:0; }
.ads-material-latest h3 { font-size:24px; line-height:36px; margin-top:20px; }
.ads-material-description { font-size:15px; color:var(--ads-muted); line-height:28px; margin-top:20px!important; }
.ads-material-latest .ads-material-details { margin-top:20px; }
.ads-material-latest .ads-actions { margin-top:20px; }
.ads-year-group { margin-top:64px; }
.ads-year-group:first-child { margin-top:0; }
.ads-year-group h2 { font-family:'游明朝','Yu Mincho',YuMincho,serif; font-size:28px; line-height:42px; font-weight:600; border-bottom:2px solid #9ba1aa; padding-bottom:8px; margin-bottom:24px; }
.ads-material-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.ads-top-grid { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 20px; }
.ads-top-grid > .cell { width:auto!important; margin:0!important; }
.ads-top-grid .ads-archive-thumb { background:#cea0b2; display:flex!important; justify-content:center; align-items:center; }
.ads-pdf-icon { display:flex; align-items:center; justify-content:center; width:52px; height:48px; border:1px solid #a2174e; background:white; color:#a2174e; font-size:14px; font-weight:700; }
@media (max-width:1000px) and (min-width:769px) {
 .ads-pickup-card .ads-card-body { padding:28px; } .ads-card-body { padding:20px; }
 .ads-archive-filters { flex-direction:column; align-items:stretch; gap:16px; } .ads-material-latest { grid-template-columns:220px minmax(0,1fr); gap:28px; }
 .ads-material-grid { gap:20px; } .ads-material-card { padding:14px; }
}
@media (max-width:768px) {
 .ads-page { font-size:15px; line-height:27px; }
 .ads-container,.ads-article { width:calc(100% - 52px); }
 .ads-breadcrumb { padding:18px 0; }
 .ads-breadcrumb ol { width:calc(100% - 26px); padding-left:0; gap:10px; }
 .ads-breadcrumb li+li::before { margin-right:10px; }
 .ads-intro { padding-top:30px; padding-bottom:32px; }
 .ads-page .ads-column-title { font-size:24px; line-height:36px; }
 .ads-tabs a { width:auto; flex:1; font-size:13px; line-height:22px; padding:12px 4px; white-space:nowrap; }
 .ads-keyword-links a { font-size:13px; line-height:22px; }
 .ads-list-area { padding:40px 0 48px; }
 .ads-page .ads-section-label { font-size:13px; gap:16px; }
 .ads-section-label > span { min-width:75px; font-size:12px; }
 .ads-pickup { margin-bottom:40px; }
 .ads-pickup-card { display:block; }
 .ads-pickup-card .ads-card-image { aspect-ratio:16/9; min-height:0; }
 .ads-pickup-card .ads-card-body { padding:24px; gap:16px; }
 .ads-pickup-card h3 { font-size:20px; line-height:32px; }
 .ads-column-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
 .ads-card-body { padding:24px; }
 .ads-card h3 { font-size:18px; line-height:30.6px; }
 .ads-meta { gap:8px; }
 .ads-badge { padding:3px 8px; }
 .ads-article { padding:40px 0 48px; }
 .ads-article-header h1 { font-size:22px; line-height:35px; }
 .ads-page .ads-article-hero { margin:24px 0; }
 .ads-lead { padding:24px; font-size:15px; line-height:28px; margin-bottom:32px; }
 .ads-prose { font-size:15px; line-height:27px; }
 .ads-prose blockquote { padding:24px; }
 .ads-prose h2 { font-size:19px; line-height:30px; }
 .ads-profile { padding:24px; flex-direction:column; gap:20px; }
 .ads-series { padding:24px; }
 .ads-series h2 { font-size:18px; line-height:28px; }
 .ads-page .ads-button.is-brand { min-width:0; width:100%; }
 .ads-archive-intro { padding-top:40px; padding-bottom:32px; }
 .ads-archive-intro h1 { font-size:30px; line-height:44px; }
 .ads-archive-filters { flex-direction:column; align-items:stretch; gap:16px; }
 .ads-material-tabs a { padding:10px 12px; font-size:13px; }
 .ads-year-form { flex-wrap:nowrap; justify-content:flex-end; }
 .ads-year-select { font-size:12px; }
 .ads-material-area { padding:40px 0 64px; }
 .ads-latest .ads-section-label { font-size:14px; }
 .ads-latest .ads-section-label > span { font-size:12px; min-width:68px; }
 .ads-material-latest { display:block; padding:24px; }
 .ads-material-latest .ads-cover { width:200px; max-width:100%; margin:0 auto 24px; }
 .ads-material-latest h3 { font-size:20px; line-height:30px; margin-top:20px; }
 .ads-material-description { font-size:14px; line-height:25px; }
 .ads-material-latest .ads-actions { flex-direction:column; gap:10px; }
 .ads-material-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .ads-material-card:not(.ads-material-latest) { padding:12px; }
 .ads-material-card:not(.ads-material-latest) h3 { font-size:14px; line-height:23px; }
 .ads-material-card:not(.ads-material-latest) .ads-button { font-size:12px; padding:8px; }
 .ads-year-group { margin-top:40px; }
 .ads-year-group h2 { font-size:24px; line-height:36px; margin-bottom:20px; }
 .ads-top-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
}
@media(max-width:359px) { .ads-tabs { gap:6px; } .ads-tabs a { font-size:12px; } .ads-pickup-card .ads-card-body,.ads-card-body,.ads-material-latest { padding:20px; } }

.ads-protected { padding-block:64px; }

.ads-page .ads-related .ads-section-title { font-family:'游明朝','Yu Mincho',YuMincho,serif; font-size:28px; font-weight:600; line-height:1.7; color:#000; }
.ads-page .screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:768px) { .ads-page .ads-related .ads-section-title { font-size:24px; } }
