/*
 * 吉川研究室 — style.css（大幅整理版）
 * =========================================================
 * HTML/CSS＋FTP運用向け。
 * 元CSSの適用順をできるだけ維持し、完全重複ブロックを削除。
 * 1セレクタ1行のコンパクト形式で、修正箇所を探しやすくしています。
 *
 * 構成：
 *  01. Base / Variables
 *  02. Navigation
 *  03. Home / Hero / News
 *  04. About / Message
 *  05. Research
 *  06. Member / Publications
 *  07. Activities
 *  08. Access / Footer
 *  09. Responsive
 *  10. Other / Page-specific adjustments
 * =========================================================
 */


/* ===== 01. Base / Variables ===== */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
:root { --navy:#0c1a30; --navy-mid:#1a2d4f; --accent:#c8922a; --accent-lt:#e8b24a; --white:#f5f3ee; --gray:#b0b8c4; --border:rgba(255,255,255,0.13); --font-serif:"DM Serif Display","Noto Serif JP",serif; --font-body:"Noto Sans JP",sans-serif; --font-mono:"Space Mono",monospace; --nav-height:72px; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-body); background:var(--navy); color:var(--white); font-weight:400; line-height:1.9; overflow-x:hidden; }

/* ===== 02. Navigation ===== */
nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:1.2rem 2.5rem; min-height:var(--nav-height); background:rgba(12,26,48,0.96); backdrop-filter:blur(18px); border-bottom:.5px solid rgba(255,255,255,.16); }
.nav-logo { display:flex; flex-direction:column; gap:2px; text-decoration:none; cursor:pointer; flex-shrink:0; }
.nav-logo-main { font-family:var(--font-serif); font-size:clamp(1.8rem,2vw,2.4rem); color:var(--white); letter-spacing:.05em; line-height:1.15; }
.nav-logo-sub { font-size:clamp(.62rem,.72vw,.82rem); letter-spacing:.03em; color:var(--accent); text-transform:none; line-height:1.75; max-width:520px; }
.nav-logo-sub-mobile { display:none; }
.nav-right { display:flex; align-items:center; gap:1.8rem; }
.nav-links { display:flex; gap:1.8rem; list-style:none; }
.nav-links a { text-decoration:none; font-size:.76rem; letter-spacing:.08em; color:rgba(245,243,238,.78); transition:color .2s; position:relative; cursor:pointer; white-space:nowrap; }
.nav-links a::after { content:""; position:absolute; bottom:-4px; left:0; right:0; height:.5px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.nav-links a:hover, .nav-links a.active { color:var(--white); }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); }
.nav-icons { display:flex; align-items:center; gap:.6rem; }
.nav-icon-btn { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:2px; color:rgba(245,243,238,.68); background:transparent; border:.5px solid rgba(255,255,255,.22); cursor:pointer; transition:all .2s; padding:0; flex-shrink:0; }
.nav-icon-btn:hover, .nav-icon-btn.active { color:var(--accent); border-color:rgba(200,146,42,.55); background:rgba(200,146,42,.1); }
.lang-btn { font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em; color:var(--accent); background:transparent; border:.5px solid rgba(200,146,42,.5); padding:.35rem .75rem; border-radius:2px; cursor:pointer; transition:all .2s; flex-shrink:0; }
.lang-btn:hover { background:rgba(200,146,42,.18); border-color:var(--accent); }

/* ===== 01. Base / Variables ===== */
.page { display:none; }
.page.active { display:block; }

/* ===== 03. Home / Hero / News ===== */
.hero { min-height:100vh; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; }
.hero-slides { position:absolute; inset:0; }
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease; background:linear-gradient(135deg,var(--navy-mid),var(--navy)); }
.hero-slide.active { opacity:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; object-position:center; filter:brightness(.52) saturate(.82); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(12,26,48,.97) 0%,rgba(12,26,48,.22) 55%,transparent 100%); z-index:1; }
.hero-content { position:relative; z-index:2; padding:0 4rem 4.5rem; max-width:900px; transform:translateY(2.8rem); }
.hero-eyebrow { font-family:var(--font-mono); font-size:.7rem; letter-spacing:.2em; color:var(--accent); margin-bottom:1.2rem; opacity:0; animation:fadeUp .8s .3s forwards; }
.hero-title { font-family:var(--font-serif); font-size:clamp(2.8rem,6vw,5rem); font-weight:400; line-height:1.15; color:var(--white); margin-bottom:1.5rem; opacity:0; animation:fadeUp .8s .5s forwards; transition:opacity .5s; }
.hero-title em { font-style:italic; color:var(--accent-lt); }
.hero-sub { font-size:1.02rem; color:rgba(245,243,238,.88); max-width:560px; line-height:2; opacity:0; animation:fadeUp .8s .7s forwards; transition:opacity .5s; }
.hero-bottom { position:absolute; bottom:1.6rem; left:4rem; right:4rem; z-index:3; display:flex; align-items:center; justify-content:space-between; }
.hero-dots { display:flex; gap:8px; align-items:center; }
.hero-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.35); cursor:pointer; transition:background .3s,transform .3s; border:none; padding:0; }
.hero-dot.active { background:var(--accent); transform:scale(1.4); }
.hero-counter { font-family:var(--font-mono); font-size:.65rem; letter-spacing:.18em; color:rgba(200,146,42,.82); }
.hero-arrows { display:flex; gap:.5rem; }
.hero-arrow { background:rgba(12,26,48,.6); border:.5px solid rgba(200,146,42,.42); color:var(--accent); width:40px; height:40px; border-radius:2px; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1rem; transition:background .2s,border-color .2s; backdrop-filter:blur(8px); }
.hero-arrow:hover { background:rgba(200,146,42,.22); border-color:rgba(200,146,42,.75); }

/* ===== 01. Base / Variables ===== */
section { padding:7rem 4rem; }
.section-inner { max-width:1100px; margin:0 auto; }
.section-label { font-family:var(--font-mono); font-size:.68rem; letter-spacing:.25em; color:var(--accent); text-transform:uppercase; margin-bottom:1rem; display:flex; align-items:center; gap:1rem; }
.section-label::after { content:""; flex:0 0 40px; height:.5px; background:var(--accent); opacity:.6; }
.yl-btn { display:inline-block; padding:.75rem 2rem; background:var(--accent); color:var(--navy); font-family:var(--font-mono); font-size:.75rem; letter-spacing:.15em; text-decoration:none; border-radius:1px; transition:background .2s,transform .2s; margin-top:1.5rem; cursor:pointer; border:none; }
.yl-btn:hover { background:var(--accent-lt); transform:translateY(-1px); }
.yl-btn-ghost { display:inline-block; font-family:var(--font-mono); font-size:.76rem; letter-spacing:.12em; color:var(--accent); text-decoration:none; border-bottom:.5px solid var(--accent); padding-bottom:2px; transition:color .2s; cursor:pointer; }
.yl-btn-ghost:hover { color:var(--accent-lt); }

/* ===== 04. About / Message ===== */
.about-section { background:var(--navy); }
.about-grid { display:grid; grid-template-columns:1.15fr 0.85fr; gap:4rem; align-items:start; }
.about-heading { font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:400; line-height:1.3; color:var(--white); margin-bottom:2rem; }
.about-text { font-size:.93rem; color:rgba(245,243,238,.88); line-height:2.1; margin-bottom:1.5rem; }
.about-affil { font-family:var(--font-mono); font-size:.63rem; color:rgba(245,243,238,.42); letter-spacing:.07em; line-height:1.85; margin-top:1.5rem; padding-top:1.2rem; border-top:.5px solid var(--border); }
.about-right { padding-top:1rem; }
.about-card { background:rgba(255,255,255,.05); border:.5px solid var(--border); border-radius:2px; padding:1.75rem 2rem; margin-bottom:1rem; border-left:2px solid var(--accent); transition:background .2s; }
.about-card:hover { background:rgba(255,255,255,.08); }
.about-card-num { font-family:var(--font-mono); font-size:.65rem; color:var(--accent); letter-spacing:.15em; margin-bottom:.5rem; }
.about-card-text { font-size:.9rem; color:rgba(245,243,238,.88); line-height:1.9; }

/* ===== 03. Home / Hero / News ===== */
.about-home-section { background:radial-gradient(circle at 80% 20%, rgba(200,146,42,.12) 0%, transparent 30%), linear-gradient(180deg, #111f39 0%, #0c1a30 100%); border-top:1px solid rgba(200,146,42,.22); border-bottom:1px solid rgba(200,146,42,.18); position:relative; }
.about-home-section::before { content:""; position:absolute; top:0; left:4rem; right:4rem; height:1px; background:linear-gradient(90deg, transparent, rgba(232,178,74,.55), transparent); }
.about-home-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-home-body { font-size:.96rem; color:rgba(245,243,238,.88); line-height:2.15; margin-bottom:2rem; }
.about-home-visual { padding-top:.5rem; }
.material-visual-card { position:relative; min-height:360px; overflow:hidden; border:.5px solid rgba(200,146,42,.28); border-radius:4px; background:linear-gradient(145deg, rgba(12,26,48,.82), rgba(26,45,79,.52)), radial-gradient(circle at 68% 38%, rgba(232,178,74,.34) 0%, rgba(232,178,74,.10) 22%, transparent 46%), radial-gradient(circle at 24% 78%, rgba(126,184,224,.20) 0%, transparent 38%); box-shadow:0 28px 80px rgba(0,0,0,.32); }
.material-visual-card::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:36px 36px; mask-image:linear-gradient(to bottom, rgba(0,0,0,.75), transparent 72%); }
.material-visual-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,15,31,.92) 0%, transparent 58%); }
.material-glow { position:absolute; border-radius:999px; filter:blur(2px); opacity:.85; }
.material-glow-01 { width:190px; height:190px; right:16%; top:22%; background:radial-gradient(circle, rgba(232,178,74,.42), rgba(200,146,42,.12) 46%, transparent 70%); }
.material-glow-02 { width:130px; height:130px; left:15%; bottom:18%; background:radial-gradient(circle, rgba(126,184,224,.24), rgba(126,184,224,.08) 52%, transparent 72%); }
.material-core { position:absolute; right:24%; top:31%; width:120px; height:120px; z-index:2; }
.core-ring { position:absolute; inset:0; border:1px solid rgba(232,178,74,.48); border-radius:50%; }

/* ===== 10. Other / Page-specific adjustments ===== */
.ring-02 { inset:22px; border-color:rgba(245,243,238,.28); }

/* ===== 03. Home / Hero / News ===== */
.core-dot { position:absolute; left:50%; top:50%; width:12px; height:12px; border-radius:50%; transform:translate(-50%,-50%); background:var(--accent-lt); box-shadow:0 0 28px rgba(232,178,74,.85); }
.visual-copy { position:absolute; left:2rem; right:2rem; bottom:2rem; z-index:3; }
.visual-kicker { display:block; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.18em; color:var(--accent); margin-bottom:.8rem; text-transform:uppercase; }
.visual-copy strong { display:block; font-family:var(--font-serif); font-size:clamp(1.65rem,2.4vw,2.45rem); font-weight:400; line-height:1.18; color:var(--white); }
.visual-tags { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.1rem; }
.visual-tags span { font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; color:rgba(245,243,238,.76); background:rgba(255,255,255,.045); border:.5px solid rgba(200,146,42,.30); border-radius:2px; padding:.36rem .75rem; }
.about-home-anim { padding-top:.5rem; }
.kw-label { font-family:var(--font-mono); font-size:.63rem; letter-spacing:.22em; color:var(--accent); text-transform:uppercase; margin-bottom:1.1rem; display:block; }

/* ===== 10. Other / Page-specific adjustments ===== */
.keyword-grid { display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:2rem; }

/* ===== 03. Home / Hero / News ===== */
.kw-tag { font-family:var(--font-mono); font-size:.68rem; letter-spacing:.04em; color:rgba(245,243,238,.82); background:rgba(255,255,255,.05); border:.5px solid rgba(200,146,42,.32); border-radius:2px; padding:.38rem .9rem; cursor:pointer; opacity:0; transform:translateY(12px); transition:opacity .45s ease calc(var(--i) * 70ms), transform .45s ease calc(var(--i) * 70ms), background .2s, border-color .2s, color .2s; }
.kw-tag.in { opacity:1; transform:translateY(0); }
.kw-tag:hover { background:rgba(200,146,42,.18); border-color:rgba(200,146,42,.75); color:var(--accent-lt); }
.kw-tag:hover::after { content:"→"; margin-left:.4em; font-size:.6rem; }
.anim-counts { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; }
.anim-count-item { background:rgba(255,255,255,.04); border:.5px solid var(--border); border-left:2px solid var(--accent); padding:1.2rem 1.5rem; display:flex; flex-direction:column; gap:.3rem; }
.anim-num { font-family:var(--font-serif); font-size:2rem; color:var(--accent-lt); line-height:1; }
.anim-count-label { font-family:var(--font-mono); font-size:.6rem; letter-spacing:.15em; color:rgba(245,243,238,.58); text-transform:uppercase; }
.news-section { background:linear-gradient(180deg, #071121 0%, #0c1a30 100%); border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.08); position:relative; }
.news-section::before { content:""; position:absolute; top:0; left:4rem; right:4rem; height:1px; background:linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent); }
.news-grid { display:grid; grid-template-columns:200px 1fr; gap:4rem; align-items:start; }
.news-heading { font-family:var(--font-serif); font-size:2rem; font-weight:400; color:var(--white); position:sticky; top:calc(var(--nav-height) + 1rem); }
.news-list { list-style:none; }
.news-entry { display:flex; gap:2rem; padding:1.3rem 0; border-bottom:.5px solid rgba(255,255,255,.1); align-items:baseline; }
.news-date { font-family:var(--font-mono); font-size:.72rem; color:var(--accent); white-space:nowrap; min-width:90px; }
.news-badge { font-size:.66rem; padding:2px 8px; border-radius:1px; border:.5px solid; margin-right:8px; white-space:nowrap; }
.badge-award { color:var(--accent-lt); border-color:var(--accent); }
.badge-join { color:#6dc4a0; border-color:#6dc4a0; }
.badge-lab { color:#7eb8e0; border-color:#7eb8e0; }
.news-text { font-size:.9rem; color:rgba(245,243,238,.9); }
.news-cta { margin-top:2.5rem; display:flex; justify-content:flex-end; }
.news-cta-btn { display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-mono); font-size:.73rem; letter-spacing:.12em; color:var(--navy); background:var(--accent); border:none; padding:.68rem 1.6rem; border-radius:1px; cursor:pointer; transition:background .2s,transform .2s; }
.news-cta-btn:hover { background:var(--accent-lt); transform:translateY(-1px); }

/* ===== 05. Research ===== */
.research-section { background:var(--navy); }
.research-heading { font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:400; color:var(--white); margin-bottom:1rem; }
.research-intro { font-size:.93rem; color:rgba(245,243,238,.82); max-width:620px; margin-bottom:4rem; line-height:2; }
.research-items { display:flex; flex-direction:column; }
.research-item { display:grid; grid-template-columns:3fr 2fr; border-top:.5px solid var(--border); padding:3rem 0; }
.research-item:last-child { border-bottom:.5px solid var(--border); }
.research-item:hover .research-item-num { color:var(--accent-lt); }
.research-item-left { padding-right:4rem; }
.research-item-num { font-family:var(--font-mono); font-size:.65rem; letter-spacing:.2em; color:var(--accent); margin-bottom:1rem; transition:color .2s; }
.research-item-title { font-family:var(--font-serif); font-size:1.45rem; font-weight:400; color:var(--white); margin-bottom:1rem; line-height:1.45; }
.research-item-body { font-size:.88rem; color:rgba(245,243,238,.82); line-height:2.05; }
.research-item-img { width:100%; height:200px; object-fit:cover; filter:brightness(.72) saturate(.65); border-radius:2px; transition:filter .3s; align-self:center; }
.research-item:hover .research-item-img { filter:brightness(.9) saturate(.85); }

/* ===== 04. About / Message ===== */
.message-section { background:var(--navy-mid); border-top:.5px solid var(--border); }
.message-grid { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.message-heading { font-family:var(--font-serif); font-size:clamp(2rem,3vw,2.5rem); font-weight:400; color:var(--white); margin-bottom:2.5rem; line-height:1.3; }
.message-quote { border-left:2px solid var(--accent); padding-left:1.5rem; margin-bottom:2rem; }
.message-quote p { font-size:.92rem; color:rgba(245,243,238,.88); line-height:2.05; margin-bottom:.75rem; }
.message-sig { font-family:var(--font-serif); font-size:1.1rem; color:var(--accent-lt); margin-top:2rem; }
.message-sig-sub { font-size:.75rem; font-family:var(--font-mono); color:rgba(245,243,238,.65); letter-spacing:.1em; margin-top:.25rem; }
.message-right { display:flex; flex-direction:column; gap:1rem; }

/* ===== 10. Other / Page-specific adjustments ===== */
.value-block { display:flex; gap:1.5rem; align-items:flex-start; padding:1.5rem; background:rgba(255,255,255,.05); border:.5px solid var(--border); border-radius:2px; }
.value-num { font-family:var(--font-mono); font-size:2rem; color:rgba(200,146,42,.3); line-height:1; min-width:36px; }
.value-content-title { font-size:.9rem; font-weight:500; color:var(--white); margin-bottom:.35rem; }
.value-content-text { font-size:.82rem; color:rgba(245,243,238,.78); line-height:1.85; }

/* ===== 08. Access / Footer ===== */
.access-section { background:var(--navy); border-top:.5px solid var(--border); }
.access-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.access-heading { font-family:var(--font-serif); font-size:2.2rem; font-weight:400; color:var(--white); margin-bottom:2rem; }
.access-line { display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.2rem; }
.access-icon { color:var(--accent); font-size:.9rem; margin-top:2px; }
.access-addr { font-size:.88rem; color:rgba(245,243,238,.88); line-height:2; }
.access-addr strong { color:var(--white); font-weight:500; }
.access-dept { font-family:var(--font-mono); font-size:.62rem; color:rgba(245,243,238,.5); letter-spacing:.05em; line-height:1.9; margin-top:.6rem; padding-top:.6rem; border-top:.5px solid var(--border); }
.map-box { border-radius:4px; overflow:hidden; border:.5px solid var(--border); height:280px; }
.map-box iframe { width:100%; height:100%; border:none; filter:grayscale(.3) invert(.88) hue-rotate(180deg); }

/* ===== 06. Member / Publications ===== */
.member-section { background:var(--navy); }
.member-heading { font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:400; color:var(--white); margin-bottom:.75rem; }
.member-year-note { font-family:var(--font-mono); font-size:1.0rem; letter-spacing:.12em; color:rgba(245,243,238,.5); margin-bottom:1.0rem; }
.member-block { margin-bottom:3rem; }
.member-block-label { font-family:var(--font-mono); font-size:.65rem; letter-spacing:.25em; color:var(--accent); text-transform:uppercase; padding-bottom:.75rem; border-bottom:.5px solid var(--border); display:block; }
.member-row { display:grid; grid-template-columns:200px 1fr; padding:1.1rem 0; border-bottom:.5px solid rgba(255,255,255,.08); align-items:start; }
.member-role { font-family:var(--font-mono); font-size:.7rem; color:var(--gray); letter-spacing:.03em; padding-top:3px; }
.member-name-ja { font-size:.94rem; color:var(--white); }
.member-name-en { font-size:.72rem; font-family:var(--font-mono); color:rgba(245,243,238,.5); margin-top:3px; }
.member-stu-row { display:grid; grid-template-columns:130px 1fr; padding:1rem 0; border-bottom:.5px solid rgba(255,255,255,.08); align-items:start; }
.member-degree { font-family:var(--font-mono); font-size:.7rem; color:var(--gray); padding-top:3px; }
.member-names { font-size:.9rem; color:rgba(245,243,238,.9); line-height:1.95; }
.pub-section { background:var(--navy); }
.pub-heading { font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:400; color:var(--white); margin-bottom:2.5rem; }
.pub-tabs { display:flex; border-bottom:.5px solid var(--border); margin-bottom:2.5rem; }
.pub-tab-btn { font-family:var(--font-mono); font-size:.7rem; letter-spacing:.13em; color:rgba(245,243,238,.58); background:transparent; border:none; padding:.8rem 1.8rem; cursor:pointer; transition:color .2s; position:relative; text-transform:uppercase; }
.pub-tab-btn::after { content:""; position:absolute; bottom:-.5px; left:0; right:0; height:1.5px; background:var(--accent); transform:scaleX(0); transition:transform .3s; }
.pub-tab-btn:hover { color:rgba(245,243,238,.88); }
.pub-tab-btn.active { color:var(--accent); }
.pub-tab-btn.active::after { transform:scaleX(1); }
.pub-panel { display:none; }
.pub-panel.active { display:block; }
.pub-year { font-family:var(--font-mono); font-size:.65rem; letter-spacing:.2em; color:var(--accent-lt); margin:2.5rem 0 1rem; padding-bottom:.5rem; border-bottom:.5px solid var(--border); }
.pub-year:first-child { margin-top:0; }
.pub-entry { padding:.75rem 0; border-bottom:.5px solid rgba(255,255,255,.07); font-size:.83rem; color:rgba(245,243,238,.82); line-height:2; }
.pub-entry:last-child { border-bottom:none; }

/* ===== 08. Access / Footer ===== */
footer { background:#070f1f; padding:3rem 2.5rem; border-top:.5px solid var(--border); }
.footer-inner { max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; }
.footer-logo { font-family:var(--font-serif); font-size:1.1rem; color:rgba(245,243,238,.65); }
.footer-nav { display:flex; gap:1.8rem; list-style:none; flex-wrap:wrap; }
.footer-nav a { text-decoration:none; font-size:.74rem; letter-spacing:.1em; color:rgba(245,243,238,.55); transition:color .2s; cursor:pointer; }
.footer-nav a:hover { color:var(--white); }
.footer-copy { font-family:var(--font-mono); font-size:.65rem; color:rgba(245,243,238,.28); letter-spacing:.1em; text-align:center; max-width:1100px; margin:1.2rem auto 0; }
.footer-dept { font-family:var(--font-mono); font-size:.6rem; color:rgba(245,243,238,.2); letter-spacing:.07em; text-align:center; max-width:1100px; margin:.4rem auto 0; }

/* ===== 01. Base / Variables ===== */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(24px); }
  to { opacity:1; transform:translateY(0); }
}
.reveal { opacity:0; transform:translateY(32px); transition:opacity .7s ease,transform .7s ease; }
.reveal.in { opacity:1; transform:translateY(0); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .about-home-section::before, .news-section::before { left:1.5rem; right:1.5rem; }
  nav { padding:1rem 1.5rem; }
  .nav-links { gap:1rem; }
  .nav-links a { font-size:.68rem; }
  section { padding:5rem 1.5rem; }
  /* スマホ：ヒーロー画像が縦に大きすぎてテキストが下に追いやられるのを防ぐ。
     フルスクリーン(100vh)をやめ、画面高に対して控えめな高さにする */
  .hero { min-height:auto; height:95vh; min-height:560px; max-height:800px; }
  /* タブレット・スマホ表示時：ロゴ下のテキストを「大阪大学大学院工学研究科」で改行する形に切り替え */
  nav .nav-logo-sub-pc { display:none !important; }
  nav .nav-logo-sub-mobile { display:inline !important; }
  /* テキストを下端へ押し込んでいた余白とズレを縮小し、見やすい位置へ引き上げる。
     上に1行分の余白を足して、ヘッダー直下から少し下げる */
  .hero-content { padding:2rem 1.5rem 3rem; transform:translateY(0); }
  .hero-bottom { left:1.5rem; right:1.5rem; bottom:1.4rem; }
  .about-home-grid,.about-grid,.message-grid,.access-grid,.news-grid { grid-template-columns:1fr; gap:2rem; }
  .research-item { grid-template-columns:1fr; }
  .research-item-left { padding-right:0; }
  .news-heading { position:static; }
  .footer-inner { flex-direction:column; gap:1.5rem; text-align:center; }
  .member-row { grid-template-columns:130px 1fr; }
  .member-stu-row { grid-template-columns:90px 1fr; }
}

/* ===== 03. Home / Hero / News ===== */
.material-visual-image-card { overflow:hidden; border:.5px solid rgba(200,146,42,.36); border-radius:4px; background:#071121; box-shadow:0 30px 90px rgba(0,0,0,.38); }
.material-visual-image-card img { display:block; width:100%; height:auto; filter:saturate(.96) brightness(.94); }
.visual-tags-centered { justify-content:center; gap:.7rem; }
.visual-tags-centered span { text-align:center; min-width:105px; line-height:1.35; }
.visual-tags-centered small { font-family:var(--font-body); font-size:.64rem; letter-spacing:.05em; color:rgba(245,243,238,.58); }

/* ===== 02. Navigation ===== */
.nav-links a { font-size:.76rem !important; }

/* ===== 04. About / Message ===== */
.about-heading-one-line { max-width:none; white-space:nowrap; }

/* ===== 03. Home / Hero / News ===== */
.visual-clean-card { position:relative; min-height:520px; overflow:hidden; border:.5px solid rgba(200,146,42,.36); border-radius:4px; background:#071121; box-shadow:0 30px 90px rgba(0,0,0,.38); }
.visual-clean-card img { display:block; width:100%; height:520px; object-fit:cover; object-position:center; filter:saturate(.98) brightness(.96); }
.news-section { background:var(--navy) !important; border-top:.5px solid var(--border) !important; border-bottom:.5px solid var(--border) !important; position:relative; }
.news-section::before { display:none !important; }
.news-grid { display:grid !important; grid-template-columns:200px 1fr !important; gap:4rem !important; align-items:start !important; padding:0 !important; background:transparent !important; border:0 !important; border-left:0 !important; box-shadow:none !important; }
.news-heading { font-family:var(--font-serif) !important; font-size:2rem !important; font-weight:400 !important; color:var(--white) !important; position:sticky !important; top:calc(var(--nav-height) + 1rem) !important; }
.news-badge { display:none !important; }
.news-entry { display:flex !important; gap:2rem !important; padding:1.3rem 0 !important; border-bottom:.5px solid rgba(255,255,255,.1) !important; align-items:baseline !important; }
.news-cta { margin-top:2.5rem !important; display:flex !important; justify-content:flex-end !important; }
.news-cta-btn { background:var(--accent) !important; color:var(--navy) !important; border:none !important; }
.news-cta-btn:hover { background:var(--accent-lt) !important; color:var(--navy) !important; transform:translateY(-1px) !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .about-heading-one-line { white-space:normal; }
  .visual-clean-card, .visual-clean-card img { min-height:420px; height:420px; }
  .news-grid { grid-template-columns:1fr !important; gap:2rem !important; }
  .news-heading { position:static !important; }
}

/* ===== 03. Home / Hero / News ===== */
.visual-integrated-card { position:relative; height:460px !important; min-height:460px !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; background:transparent !important; overflow:hidden !important; }
.visual-integrated-card::before { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(to right, #111f39 0%, rgba(17,31,57,.82) 3%, rgba(17,31,57,.18) 15%, transparent 34%), linear-gradient(to bottom, #111f39 0%, transparent 12%, transparent 88%, #0c1a30 100%), radial-gradient(circle at 50% 50%, transparent 45%, rgba(12,26,48,.26) 100%); }
.visual-integrated-card img { width:100% !important; height:100% !important; object-fit:contain !important; object-position:center !important; filter:saturate(.98) brightness(.96) !important; display:block !important; transform:scale(1.02); }
.about-home-visual { padding-top:0 !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .visual-integrated-card { height:380px !important; min-height:380px !important; }
  .visual-integrated-card img { object-fit:cover !important; }
}

/* ===== 03. Home / Hero / News ===== */
.news-mixed-grid { grid-template-columns:260px 1fr !important; gap:4.5rem !important; }
.news-lead { font-size:.84rem; color:rgba(245,243,238,.68); line-height:2; margin-top:1.3rem; }
.news-mixed-list .news-entry { gap:1.7rem !important; }
.news-tag { display:inline-block !important; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; line-height:1; padding:.35rem .65rem; border:.5px solid rgba(255,255,255,.18); border-radius:2px; margin-right:.75rem; white-space:nowrap; vertical-align:middle; }
.tag-research { color:var(--accent-lt); border-color:rgba(232,178,74,.58); background:rgba(200,146,42,.10); }
.tag-industry { color:#7eb8e0; border-color:rgba(126,184,224,.55); background:rgba(126,184,224,.09); }
.tag-event { color:#6dc4a0; border-color:rgba(109,196,160,.55); background:rgba(109,196,160,.09); }
.tag-lab { color:rgba(245,243,238,.78); border-color:rgba(245,243,238,.25); background:rgba(255,255,255,.045); }
.news-cta-clean { margin-top:2.3rem !important; display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:1rem !important; }
.news-main-btn { min-width:320px; justify-content:center; }
.news-sub-links { display:flex; align-items:center; gap:.8rem; padding-left:.1rem; }
.news-sub-links a { font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; color:rgba(245,243,238,.56); text-decoration:none; transition:color .2s ease; }
.news-sub-links a:hover { color:var(--accent); }
.news-sub-links span { color:rgba(245,243,238,.24); font-size:.7rem; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .news-mixed-grid { grid-template-columns:1fr !important; gap:2rem !important; }
  .news-tag { margin-bottom:.4rem; }
  .news-main-btn { min-width:0; width:100%; }
}

/* ===== 03. Home / Hero / News ===== */
.hero-slide img { object-fit:cover !important; object-position:center center !important; filter:brightness(.54) saturate(.92) contrast(1.04) !important; }
.news-cta-refined { margin-top:2rem !important; display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:.85rem !important; }
.news-main-btn { min-width:300px; justify-content:center; }
.news-sub-links-refined { display:flex !important; align-items:center !important; gap:.75rem !important; padding-left:.05rem !important; }
.news-sub-links-refined a { font-family:var(--font-mono) !important; font-size:.66rem !important; letter-spacing:.08em !important; color:rgba(245,243,238,.52) !important; text-decoration:none !important; border-bottom:.5px solid rgba(245,243,238,.20); padding-bottom:2px; transition:color .2s ease, border-color .2s ease; }
.news-sub-links-refined a:hover { color:var(--accent) !important; border-color:rgba(200,146,42,.7); }
.news-sub-links-refined span { color:rgba(245,243,238,.22) !important; font-size:.68rem !important; }
.news-link-cards { display:none !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .news-main-btn { min-width:0; width:100%; }
  .news-sub-links-refined { justify-content:center !important; width:100%; }
}

/* ===== 05. Research ===== */
.research-hero { position:relative; padding:3.6rem 3.2rem; margin-bottom:2.2rem; background:radial-gradient(circle at 78% 28%, rgba(232,178,74,.16), transparent 34%), linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); border:.5px solid rgba(255,255,255,.12); border-left:2px solid rgba(200,146,42,.72); overflow:hidden; }
.research-hero::after { content:""; position:absolute; right:-80px; top:-80px; width:260px; height:260px; border:1px solid rgba(200,146,42,.22); border-radius:50%; }
.research-kicker { font-family:var(--font-mono); font-size:.66rem; letter-spacing:.22em; color:var(--accent); text-transform:uppercase; margin-bottom:1.2rem; }
.research-main-title { font-family:var(--font-serif); font-size:clamp(1.7rem, 3vw, 2.8rem); font-weight:400; line-height:1.3; color:var(--white); margin-bottom:1.5rem; }
.research-main-lead { max-width:760px; font-size:.95rem; color:rgba(245,243,238,.84); line-height:2.15; }
.research-theme-nav { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin:2.4rem 0 4.2rem; border:.5px solid rgba(255,255,255,.12); }
.research-theme-nav button { min-height:96px; padding:1rem .85rem; background:rgba(255,255,255,.035); color:rgba(245,243,238,.82); border:0; border-right:.5px solid rgba(255,255,255,.10); font-family:var(--font-body); font-size:.82rem; line-height:1.55; cursor:pointer; transition:background .2s ease, color .2s ease; text-align:left; }
.research-theme-nav button:last-child { border-right:0; }
.research-theme-nav button:hover { background:rgba(200,146,42,.13); color:var(--white); }
.research-theme-nav button span { display:block; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.16em; color:var(--accent); margin-bottom:.5rem; }
.research-detail-items { gap:0; }
.research-detail-item { grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:3rem; align-items:center; padding:3.8rem 0; }
.research-detail-item .research-item-title { font-size:1.65rem; }
.research-detail-item .research-item-body { max-width:680px; }
.research-visual-card { position:relative; height:260px; border:.5px solid rgba(200,146,42,.34); overflow:hidden; background:#071121; box-shadow:0 22px 60px rgba(0,0,0,.26); }
.research-visual-card::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 65% 45%, rgba(232,178,74,.34), transparent 26%), radial-gradient(circle at 28% 65%, rgba(126,184,224,.18), transparent 32%), linear-gradient(135deg, rgba(255,255,255,.06), transparent 50%); }
.research-visual-card::after { content:""; position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:34px 34px; opacity:.42; }
.research-visual-card span { position:absolute; left:1.4rem; bottom:1.2rem; z-index:2; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.13em; color:var(--accent-lt); text-transform:uppercase; }
.observe-card::before { background:radial-gradient(circle at 70% 38%, rgba(126,184,224,.38), transparent 25%), radial-gradient(circle at 42% 60%, rgba(255,255,255,.10), transparent 35%), linear-gradient(135deg, rgba(255,255,255,.055), transparent 52%); }
.metal-card::before { background:radial-gradient(circle at 62% 45%, rgba(210,210,215,.26), transparent 28%), radial-gradient(circle at 32% 68%, rgba(200,146,42,.18), transparent 36%), linear-gradient(135deg, rgba(255,255,255,.045), transparent 52%); }
.recycle-card::before { background:radial-gradient(circle at 67% 40%, rgba(109,196,160,.30), transparent 28%), radial-gradient(circle at 28% 72%, rgba(200,146,42,.16), transparent 34%), linear-gradient(135deg, rgba(255,255,255,.045), transparent 54%); }
.thermo-card::before { background:radial-gradient(circle at 68% 45%, rgba(232,178,74,.34), transparent 25%), radial-gradient(circle at 35% 66%, rgba(210,90,60,.18), transparent 34%), linear-gradient(135deg, rgba(255,255,255,.048), transparent 52%); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .research-hero { padding:2.4rem 1.5rem; }
  .research-theme-nav { grid-template-columns:1fr; }
  .research-theme-nav button { min-height:auto; border-right:0; border-bottom:.5px solid rgba(255,255,255,.10); }
  .research-detail-item { grid-template-columns:1fr; gap:1.6rem; padding:3rem 0; }
  .research-visual-card { height:220px; }
}

/* ===== 04. About / Message ===== */
.about-philosophy-panel { position:relative; padding:1.8rem 0 1.6rem 1.5rem; border-left:1px solid rgba(200,146,42,.42); }
.about-side-label { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.18em; color:var(--accent); text-transform:uppercase; margin-bottom:.9rem; }
.about-side-title { font-family:var(--font-serif); font-size:clamp(1.45rem,2.2vw,2rem); font-weight:400; color:var(--white); line-height:1.38; margin-bottom:1.8rem; }
.about-flow { display:flex; flex-direction:column; gap:1.35rem; }
.about-flow-item { display:grid; grid-template-columns:42px 1fr; gap:1rem; align-items:start; padding-bottom:1.35rem; border-bottom:.5px solid rgba(255,255,255,.10); }
.about-flow-item:last-child { border-bottom:0; padding-bottom:0; }
.about-flow-num { font-family:var(--font-mono); font-size:.72rem; color:var(--accent-lt); letter-spacing:.12em; }
.about-flow-item p { font-size:.86rem; color:rgba(245,243,238,.82); line-height:2; }
.message-link-panel { margin-top:2rem; padding:1.4rem; background:linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); border:.5px solid rgba(255,255,255,.12); }
.message-link-lead { font-size:.82rem; color:rgba(245,243,238,.66); margin-bottom:1rem; }
.message-link-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.message-link-card { text-align:left; border:.5px solid rgba(200,146,42,.36); background:rgba(12,26,48,.55); color:var(--white); padding:1rem 1.05rem; cursor:pointer; transition:background .2s ease, border-color .2s ease, transform .2s ease; }
.message-link-card:hover { background:rgba(200,146,42,.12); border-color:rgba(232,178,74,.72); transform:translateY(-1px); }
.message-link-card.student { border-color:rgba(126,184,224,.38); }
.message-link-card.student:hover { border-color:rgba(126,184,224,.72); background:rgba(126,184,224,.10); }
.message-link-kicker { display:block; font-family:var(--font-mono); font-size:.58rem; letter-spacing:.14em; color:var(--accent); margin-bottom:.4rem; text-transform:uppercase; }
.message-link-card strong { display:block; font-size:.86rem; font-weight:500; line-height:1.5; }
.message-link-card em { display:block; color:var(--accent-lt); font-style:normal; margin-top:.6rem; }

/* ===== 05. Research ===== */
.research-theme-index { margin:2.6rem 0 4.4rem; }
.research-index-label { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.20em; color:rgba(245,243,238,.45); text-transform:uppercase; margin-bottom:.9rem; }
.research-theme-index .research-theme-nav { display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:.5px solid rgba(255,255,255,.14); border-bottom:.5px solid rgba(255,255,255,.14); border-left:0; border-right:0; margin:0; }
.research-theme-index .research-theme-nav button { position:relative; min-height:128px; padding:1.3rem 1rem; background:transparent; border:0; border-right:.5px solid rgba(255,255,255,.10); color:var(--white); }
.research-theme-index .research-theme-nav button:last-child { border-right:0; }
.research-theme-index .research-theme-nav button::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.research-theme-index .research-theme-nav button:hover::after { transform:scaleX(1); }
.research-theme-index .research-theme-nav button:hover { background:rgba(255,255,255,.035); }
.research-theme-index .research-theme-nav button span { display:block; font-family:var(--font-mono); font-size:.64rem; color:var(--accent); letter-spacing:.16em; margin-bottom:.75rem; }
.research-theme-index .research-theme-nav button strong { display:block; font-size:.9rem; font-weight:500; line-height:1.55; color:rgba(245,243,238,.9); }
.research-theme-index .research-theme-nav button em { display:block; margin-top:.45rem; font-family:var(--font-mono); font-size:.58rem; letter-spacing:.08em; color:rgba(245,243,238,.42); font-style:normal; }
.research-detail-item { position:relative; border-top:0 !important; padding:4.2rem 0 4.2rem 2rem !important; }
.research-detail-item::before { content:""; position:absolute; left:0; top:3.8rem; bottom:3.8rem; width:2px; background:var(--accent); opacity:.75; }
.research-detail-item::after { content:""; position:absolute; left:0; right:0; bottom:0; height:.5px; background:linear-gradient(90deg, rgba(200,146,42,.38), rgba(255,255,255,.08), transparent); }
.research-detail-item .research-item-num { display:inline-flex; align-items:center; gap:.6rem; padding:.25rem .65rem; border:.5px solid rgba(200,146,42,.34); background:rgba(200,146,42,.08); margin-bottom:1.1rem; }
.research-detail-item .research-item-title { position:relative; padding-left:0; margin-bottom:1.2rem; }
.research-visual-card { border-radius:0 !important; box-shadow:none !important; background:transparent !important; border:.5px solid rgba(255,255,255,.12) !important; }
.theme-growth::before { background:#c8922a; }
.theme-observe::before { background:#7eb8e0; }
.theme-metal::before { background:#b0b8c4; }
.theme-recycle::before { background:#6dc4a0; }
.theme-thermo::before { background:#e8b24a; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .message-link-grid { grid-template-columns:1fr; }
  .about-philosophy-panel { padding-left:1.3rem; }
  .research-theme-index .research-theme-nav { grid-template-columns:1fr; }
  .research-theme-index .research-theme-nav button { min-height:auto; border-right:0; border-bottom:.5px solid rgba(255,255,255,.10); }
  .research-detail-item { padding-left:1.2rem !important; }
}

/* ===== 04. About / Message ===== */
.prof-message-section, .student-message-section { background:radial-gradient(circle at 86% 18%, rgba(200,146,42,.12), transparent 32%), linear-gradient(180deg, #0c1a30 0%, #071121 100%); }
.prof-message-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:4.8rem; align-items:center; }
.prof-message-photo { position:relative; min-height:620px; overflow:hidden; border:.5px solid rgba(200,146,42,.34); background:#071121; box-shadow:0 35px 90px rgba(0,0,0,.34); }
.prof-message-photo img { width:100%; height:100%; min-height:620px; object-fit:cover; object-position:center top; display:block; filter:brightness(.88) saturate(.92); }
.prof-message-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,15,31,.92), transparent 45%), linear-gradient(to right, rgba(7,15,31,.30), transparent 45%); }
.prof-photo-overlay { position:absolute; left:1.6rem; bottom:1.5rem; z-index:2; }
.prof-photo-overlay span, .prof-message-sign span, .student-voice-text span, .student-voice-mini span { display:block; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.16em; color:var(--accent); text-transform:uppercase; margin-bottom:.35rem; }
.prof-photo-overlay strong { font-family:var(--font-serif); font-size:1.7rem; font-weight:400; color:var(--white); }
.prof-message-lead { border-left:2px solid rgba(200,146,42,.72); padding-left:1.6rem; margin:1.6rem 0 2rem; }
.prof-message-lead p { font-size:.93rem; line-height:2.15; color:rgba(245,243,238,.86); margin-bottom:1rem; }
.prof-message-sign { padding-top:1.2rem; border-top:.5px solid rgba(255,255,255,.12); margin-top:1.8rem; }
.prof-message-sign strong { display:block; font-family:var(--font-serif); font-size:1.25rem; font-weight:400; color:var(--white); }
.message-page-links { display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem; }
.message-page-links button { display:inline-flex; align-items:center; justify-content:center; border:none; background:var(--accent); color:var(--navy); font-family:var(--font-mono); font-size:.72rem; letter-spacing:.10em; padding:.74rem 1.35rem; cursor:pointer; transition:background .2s ease, transform .2s ease; }
.message-page-links button:hover { background:var(--accent-lt); transform:translateY(-1px); }
.message-page-links button.ghost { background:transparent; color:var(--accent); border:.5px solid rgba(200,146,42,.55); }
.message-page-links button.ghost:hover { background:rgba(200,146,42,.12); color:var(--accent-lt); }
.student-message-header { max-width:760px; margin-bottom:3.2rem; }
.student-message-lead { font-size:.94rem; color:rgba(245,243,238,.78); line-height:2; }
.student-voices-layout { display:grid; grid-template-columns:1.05fr .95fr; gap:1.4rem; align-items:stretch; }
.student-voice-feature, .student-voice-mini { background:linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.022)); border:.5px solid rgba(255,255,255,.12); overflow:hidden; transition:transform .2s ease, border-color .2s ease, background .2s ease; }
.student-voice-feature:hover, .student-voice-mini:hover { transform:translateY(-2px); border-color:rgba(200,146,42,.55); background:rgba(255,255,255,.06); }
.student-voice-feature { display:grid; grid-template-rows:1fr auto; min-height:680px; }
.student-voice-photo { position:relative; overflow:hidden; min-height:470px; }
.student-voice-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:brightness(.92) saturate(.92); display:block; }
.student-voice-text { padding:1.7rem 1.8rem 1.9rem; }
.student-voice-text h3, .student-voice-mini h3 { font-family:var(--font-serif); font-weight:400; color:var(--white); line-height:1.5; }
.student-voice-text h3 { font-size:1.55rem; margin-bottom:.75rem; }
.student-voice-text p, .student-voice-mini p { color:rgba(245,243,238,.76); line-height:1.95; }
.student-voice-text p { font-size:.9rem; }
.student-voice-side { display:grid; grid-template-rows:1fr 1fr; gap:1.4rem; }
.student-voice-mini { display:grid; grid-template-columns:42% 58%; min-height:330px; }
.student-voice-mini img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:brightness(.90) saturate(.92); }
.student-voice-mini div { padding:1.45rem 1.35rem; align-self:center; }
.student-voice-mini h3 { font-size:1.15rem; margin-bottom:.65rem; }
.student-voice-mini p { font-size:.82rem; }
.student-bottom-links { margin-top:2rem; }

/* ===== 08b. Student Quad Grid (4名均等カード) ===== */
.student-quad-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:1.3rem; }
.student-quad-card { background:linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border:.5px solid rgba(255,255,255,.12); padding:2rem 1.5rem 1.8rem; display:flex; flex-direction:column; align-items:center; text-align:center; transition:border-color .4s ease, background .4s ease; }
.student-quad-card:hover { border-color:rgba(200,146,42,.42); background:rgba(255,255,255,.045); }
.student-quad-photo { position:relative; width:100%; aspect-ratio:3/2; border-radius:14px; overflow:hidden; flex-shrink:0; background:linear-gradient(150deg, rgba(200,146,42,.18), rgba(12,26,48,.45)); border:.5px solid rgba(200,146,42,.32); transition:border-color .4s ease; }
.student-quad-card:hover .student-quad-photo { border-color:rgba(200,146,42,.68); }
.student-quad-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:brightness(.92) saturate(.92); display:block; }
.student-quad-photo-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.25rem; color:rgba(245,243,238,.34); }
.student-quad-photo-placeholder svg { width:36%; height:36%; opacity:.5; }
.student-quad-tag { margin-top:1.15rem; font-family:var(--font-mono); font-size:.6rem; letter-spacing:.14em; color:var(--accent); text-transform:uppercase; }
.student-quad-name { font-family:var(--font-serif); font-size:1.12rem; font-weight:400; color:var(--white); line-height:1.4; margin-top:.45rem; margin-bottom:1.15rem; }
.student-quad-body { display:flex; flex-direction:column; flex:1; width:100%; }
.student-quad-quote { font-size:.86rem; line-height:2.05; color:rgba(245,243,238,.8); text-align:left; }
.student-quad-quote::before { content:"“"; color:var(--accent); font-family:var(--font-serif); font-size:1.15em; margin-right:.08em; }
.student-quad-quote::after { content:"”"; color:var(--accent); font-family:var(--font-serif); font-size:1.15em; margin-left:.08em; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .prof-message-grid, .student-voices-layout { grid-template-columns:1fr; gap:2rem; }
  .prof-message-photo { min-height:480px; }
  .prof-message-photo img { min-height:480px; }
  .student-voice-feature { min-height:auto; }
  .student-voice-mini { grid-template-columns:1fr; }
  .student-voice-mini img { height:360px; }
  .student-quad-grid { grid-template-columns:repeat(2, 1fr); gap:1.3rem; }
}

@media (max-width:560px) {
  .student-quad-grid { grid-template-columns:1fr; }
}

/* ===== 05. Research ===== */
.research-theme-index { margin:3rem 0 4.8rem !important; }
.research-index-label { font-family:var(--font-mono); font-size:.66rem; letter-spacing:.22em; color:rgba(245,243,238,.48); text-transform:uppercase; margin-bottom:1rem; }
.modern-theme-nav { display:grid !important; grid-template-columns:repeat(5,1fr) !important; gap:.95rem !important; border:0 !important; margin:0 !important; }
.modern-theme-card { position:relative !important; overflow:hidden !important; min-height:230px !important; padding:1.15rem 1rem !important; border:.5px solid rgba(255,255,255,.12) !important; background:#071121 !important; color:var(--white) !important; cursor:pointer !important; text-align:left !important; isolation:isolate; transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease, background .35s ease !important; }
.modern-theme-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-2; filter:brightness(.56) saturate(.86); transform:scale(1.02); transition:transform .75s ease, filter .55s ease; }
.modern-theme-card .modern-theme-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(7,15,31,.94) 0%, rgba(7,15,31,.56) 52%, rgba(7,15,31,.18) 100%), radial-gradient(circle at 80% 18%, rgba(232,178,74,.22), transparent 42%); transition:opacity .35s ease; }
.modern-theme-card:hover { transform:translateY(-8px) !important; border-color:rgba(232,178,74,.68) !important; box-shadow:0 22px 55px rgba(0,0,0,.40), 0 0 0 1px rgba(200,146,42,.12) !important; }
.modern-theme-card:hover img { transform:scale(1.10); filter:brightness(.72) saturate(.98); }
.modern-theme-card::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg, var(--accent), var(--accent-lt)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.modern-theme-card:hover::after { transform:scaleX(1); }
.modern-theme-card span { display:inline-flex !important; align-items:center; justify-content:center; width:38px; height:24px; font-family:var(--font-mono) !important; font-size:.64rem !important; letter-spacing:.12em !important; color:var(--accent-lt) !important; border:.5px solid rgba(232,178,74,.45); background:rgba(7,15,31,.55); margin-bottom:4.6rem !important; }
.modern-theme-card strong { display:block !important; position:absolute; left:1rem; right:1rem; bottom:2.4rem; font-size:.96rem !important; line-height:1.55 !important; font-weight:500 !important; color:rgba(245,243,238,.96) !important; text-shadow:0 2px 12px rgba(0,0,0,.55); }
.modern-theme-card em { display:block !important; position:absolute; left:1rem; right:1rem; bottom:1rem; font-family:var(--font-mono) !important; font-size:.58rem !important; letter-spacing:.10em !important; color:rgba(245,243,238,.58) !important; font-style:normal !important; text-transform:uppercase; }
.research-photo-card { position:relative !important; height:320px !important; overflow:hidden !important; border:.5px solid rgba(255,255,255,.14) !important; background:#071121 !important; box-shadow:0 20px 55px rgba(0,0,0,.25) !important; }
.research-photo-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:brightness(.82) saturate(.92); transition:transform .7s ease, filter .5s ease; }
.research-photo-card:hover img { transform:scale(1.05); filter:brightness(.94) saturate(1.02); }
.research-photo-card::before { display:none !important; }
.research-photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,15,31,.88), transparent 58%), linear-gradient(to right, rgba(7,15,31,.28), transparent 48%); opacity:1 !important; }
.research-photo-card span { position:absolute; left:1.25rem; right:1.25rem; bottom:1.1rem; z-index:2; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.10em; line-height:1.65; color:var(--accent-lt); text-transform:none; }
.research-detail-item { padding-top:4.7rem !important; padding-bottom:4.7rem !important; }
.research-detail-item::before { width:3px !important; opacity:.9 !important; }
.research-detail-item .research-item-title { font-size:1.72rem !important; }
.research-detail-item .research-item-body { font-size:.9rem !important; line-height:2.08 !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .modern-theme-nav { grid-template-columns:1fr !important; }
  .modern-theme-card { min-height:190px !important; }
  .modern-theme-card span { margin-bottom:3.2rem !important; }
  .research-photo-card { height:250px !important; }
}

/* ===== 05. Research ===== */
.research-hero-natural { position:relative !important; display:grid !important; grid-template-columns:minmax(0, 1.08fr) minmax(300px, .92fr) !important; gap:4rem !important; align-items:center !important; padding:2.2rem 0 4.3rem !important; margin-bottom:2.8rem !important; background:transparent !important; border:0 !important; border-left:0 !important; overflow:visible !important; }
.research-hero-natural::after { display:none !important; }
.research-hero-natural::before { content:""; position:absolute; left:-6rem; right:-6rem; bottom:0; height:1px; background:linear-gradient(90deg, transparent, rgba(200,146,42,.42), rgba(255,255,255,.10), transparent); }
.research-hero-copy { position:relative; z-index:2; }
.research-hero-natural .research-kicker { margin-bottom:1.35rem !important; }
.research-hero-natural .research-main-title { margin-bottom:1.7rem !important; letter-spacing:.02em; }
.research-hero-natural .research-main-lead { max-width:780px !important; color:rgba(245,243,238,.82) !important; }
.research-hero-visual { position:relative; height:390px; min-height:390px; overflow:hidden; background:radial-gradient(circle at 54% 52%, rgba(232,178,74,.30), transparent 20%), radial-gradient(circle at 72% 35%, rgba(126,184,224,.16), transparent 28%), radial-gradient(circle at 30% 74%, rgba(200,146,42,.12), transparent 32%), linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.012)); border-top:.5px solid rgba(255,255,255,.12); border-bottom:.5px solid rgba(255,255,255,.10); }
.research-hero-visual::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:42px 42px; mask-image:radial-gradient(circle at 52% 50%, rgba(0,0,0,.95), transparent 72%); opacity:.55; }
.research-hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(to right, rgba(12,26,48,.92) 0%, transparent 22%, transparent 76%, rgba(12,26,48,.62) 100%), linear-gradient(to bottom, rgba(12,26,48,.78) 0%, transparent 26%, transparent 72%, rgba(12,26,48,.86) 100%); }

/* ===== 03. Home / Hero / News ===== */
.hero-core-glow { position:absolute; left:50%; top:49%; width:120px; height:120px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(232,178,74,.85), rgba(232,178,74,.30) 34%, transparent 70%); box-shadow:0 0 70px rgba(232,178,74,.45); z-index:2; }
.hero-orbit { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); border:.5px solid rgba(232,178,74,.34); border-radius:50%; z-index:2; }

/* ===== 10. Other / Page-specific adjustments ===== */
.orbit-01 { width:250px; height:250px; }
.orbit-02 { width:360px; height:190px; border-color:rgba(126,184,224,.22); transform:translate(-50%,-50%) rotate(-18deg); }

/* ===== 03. Home / Hero / News ===== */
.hero-process-line { position:absolute; height:1px; background:linear-gradient(90deg, transparent, rgba(232,178,74,.78), transparent); z-index:2; opacity:.72; }

/* ===== 10. Other / Page-specific adjustments ===== */
.line-01 { width:72%; left:14%; top:36%; transform:rotate(-12deg); }
.line-02 { width:64%; left:18%; top:58%; transform:rotate(10deg); }
.line-03 { width:42%; left:30%; top:74%; background:linear-gradient(90deg, transparent, rgba(126,184,224,.60), transparent); }

/* ===== 03. Home / Hero / News ===== */
.hero-keywords { position:absolute; left:1.2rem; right:1.2rem; bottom:1.1rem; z-index:3; display:flex; justify-content:center; flex-wrap:wrap; gap:.55rem; }
.hero-keywords span { font-family:var(--font-mono); font-size:.58rem; letter-spacing:.10em; color:rgba(245,243,238,.70); border:.5px solid rgba(200,146,42,.28); background:rgba(7,15,31,.46); padding:.32rem .62rem; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .research-hero-natural { grid-template-columns:1fr !important; gap:2.2rem !important; padding-bottom:3rem !important; }
  .research-hero-visual { height:260px; min-height:260px; }
  .hero-keywords { justify-content:flex-start; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research > .research-section.page-top > .section-inner > .section-label { display:none !important; }
#page-research .research-section.page-top { padding-top:calc(2.05rem + var(--nav-height)) !important; }

/* ===== 05. Research ===== */
.research-hero-natural { grid-template-columns:minmax(0, 1.18fr) minmax(360px, .82fr) !important; gap:3.4rem !important; padding:0 0 3.2rem !important; margin-bottom:2.6rem !important; }
.research-hero-natural .research-kicker { font-size:.66rem !important; letter-spacing:.24em !important; margin-bottom:1.15rem !important; color:var(--accent) !important; }
.research-hero-natural .research-main-title { font-size:clamp(1.6rem, 3.1vw, 2.5rem) !important; line-height:1.28 !important; letter-spacing:.02em !important; margin-bottom:1.45rem !important; max-width:none !important; }
.research-hero-natural .research-main-lead { max-width:760px !important; font-size:.94rem !important; line-height:2.05 !important; color:rgba(245,243,238,.80) !important; }
.research-hero-visual-science { height:330px !important; min-height:330px !important; border-top:.5px solid rgba(255,255,255,.11) !important; border-bottom:.5px solid rgba(255,255,255,.10) !important; background:radial-gradient(circle at 55% 54%, rgba(232,178,74,.30), transparent 18%), radial-gradient(circle at 74% 34%, rgba(126,184,224,.18), transparent 30%), radial-gradient(circle at 26% 68%, rgba(200,146,42,.12), transparent 34%), linear-gradient(145deg, rgba(255,255,255,.038), rgba(255,255,255,.010)) !important; }

/* ===== 03. Home / Hero / News ===== */
.hero-orbit, .hero-core-glow, .hero-process-line { display:none !important; }

/* ===== 05. Research ===== */
.research-hero-visual-science::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.032) 1px, transparent 1px); background-size:38px 38px; mask-image:radial-gradient(circle at 54% 50%, rgba(0,0,0,.9), transparent 76%); opacity:.58; }
.research-hero-visual-science::after { content:""; position:absolute; inset:0; background:linear-gradient(to right, rgba(12,26,48,.88) 0%, transparent 20%, transparent 78%, rgba(12,26,48,.60) 100%), linear-gradient(to bottom, rgba(12,26,48,.72) 0%, transparent 24%, transparent 72%, rgba(12,26,48,.86) 100%); z-index:3; }

/* ===== 10. Other / Page-specific adjustments ===== */
.science-glow-core { position:absolute; left:52%; top:58%; width:150px; height:150px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(232,178,74,.92), rgba(232,178,74,.32) 34%, transparent 70%); box-shadow:0 0 70px rgba(232,178,74,.42); z-index:2; }
.science-melt { position:absolute; left:33%; right:22%; bottom:80px; height:30px; border-radius:50%; background:radial-gradient(ellipse at center, rgba(232,178,74,.62), rgba(232,178,74,.18) 48%, transparent 72%); filter:blur(.4px); z-index:2; }
.science-crystal { position:absolute; width:86px; height:120px; border:1px solid rgba(232,178,74,.42); background:linear-gradient(145deg, rgba(245,243,238,.10), rgba(126,184,224,.10)); clip-path:polygon(50% 0%, 88% 22%, 78% 100%, 22% 100%, 12% 22%); z-index:2; opacity:.72; }
.crystal-01 { right:24%; top:72px; transform:rotate(9deg); }
.crystal-02 { right:39%; top:115px; width:58px; height:88px; opacity:.46; transform:rotate(-12deg); }
.science-curve { position:absolute; z-index:2; width:68%; height:110px; left:16%; border-top:1px solid rgba(126,184,224,.26); border-radius:50%; }
.curve-01 { top:82px; transform:rotate(-10deg); }
.curve-02 { top:142px; border-top-color:rgba(232,178,74,.30); transform:rotate(9deg); }
.science-atom { position:absolute; width:8px; height:8px; border-radius:50%; background:rgba(232,178,74,.75); box-shadow:0 0 18px rgba(232,178,74,.62); z-index:2; }
.atom-01 { left:37%; top:38%; }
.atom-02 { right:27%; top:65%; background:rgba(126,184,224,.72); box-shadow:0 0 18px rgba(126,184,224,.55); }

/* ===== 05. Research ===== */
.research-hero-visual-science .hero-keywords { z-index:4 !important; justify-content:center !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  #page-research .research-section.page-top { padding-top:calc(1rem + var(--nav-height)) !important; }
  .research-hero-natural { grid-template-columns:1fr !important; gap:2rem !important; padding-bottom:2.4rem !important; }
  .research-hero-natural .research-main-title { font-size:clamp(1.8rem,5vw,2.8rem) !important; line-height:1.25 !important; }
  .research-hero-visual-science { height:240px !important; min-height:240px !important; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research .research-main-title { max-width:1120px !important; font-size:clamp(2.5rem,3.75vw,4.35rem) !important; line-height:1.28 !important; letter-spacing:.015em !important; }
#page-research .research-title-line { display:block !important; white-space:nowrap !important; }
#page-research .research-hero-natural { grid-template-columns:minmax(0, 1.42fr) minmax(300px, .58fr) !important; gap:2.6rem !important; }
#page-research .research-hero-visual-science { height:300px !important; min-height:300px !important; }

/* ===== 06. Member / Publications ===== */
.pub-lead { max-width:760px; color:rgba(245,243,238,.72); font-size:.92rem; line-height:2; }
.pub-modern-tabs { display:flex; gap:.2rem; border-bottom:.5px solid rgba(255,255,255,.12); margin-bottom:2.8rem; }
.pub-modern-tabs .pub-tab-btn { padding:.85rem 1.8rem !important; background:transparent; }
.pub-year-block { display:grid; grid-template-columns:150px 1fr; gap:2.5rem; padding:2.2rem 0; border-top:.5px solid rgba(255,255,255,.10); }
.pub-year-block:first-child { border-top:0; padding-top:0; }
.pub-modern-entry strong { color:rgba(255,255,255,.98); font-weight:700; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  #page-research .research-title-line { white-space:normal !important; }
  #page-research .research-hero-natural { grid-template-columns:1fr !important; }
  .pub-year-block { grid-template-columns:1fr; gap:1rem; }
  .pub-year-block h3 { position:static; }
  .pub-modern-tabs { overflow-x:auto; }
  .activities-temp-note { flex-direction:column; }
}

/* ===== 06. Member / Publications ===== */
.member-temp-note, .activities-temp-note { display:flex !important; align-items:flex-start !important; gap:1rem !important; margin:0 0 2.6rem !important; padding:1rem 1.15rem !important; border:.5px solid rgba(232,178,74,.36) !important; background:linear-gradient(135deg, rgba(200,146,42,.12), rgba(255,255,255,.025)) !important; color:rgba(245,243,238,.82) !important; }
.member-temp-note strong, .activities-temp-note strong { flex:0 0 auto !important; font-family:var(--font-mono) !important; font-size:.68rem !important; letter-spacing:.14em !important; color:var(--accent-lt) !important; border:.5px solid rgba(232,178,74,.46) !important; padding:.22rem .55rem !important; }
.member-temp-note span, .activities-temp-note span { font-size:.86rem !important; line-height:1.8 !important; }
.publications-redesign { background:radial-gradient(circle at 88% 12%, rgba(200,146,42,.10), transparent 30%), linear-gradient(180deg, #0c1a30 0%, #071121 100%) !important; }
.pub-hero { margin-bottom:2.4rem; }
.publications-redesign .pub-heading { margin-bottom:1rem !important; }
.pub-lead { max-width:820px; color:rgba(245,243,238,.72); font-size:.92rem; line-height:2; }
.pub-modern-tabs { display:flex !important; gap:.2rem !important; border-bottom:.5px solid rgba(255,255,255,.12) !important; margin-bottom:2.8rem !important; }
.pub-modern-tabs .pub-tab-btn { padding:.85rem 1.8rem !important; background:transparent !important; }
.pub-year-block { display:grid !important; grid-template-columns:150px 1fr !important; gap:2.5rem !important; padding:2.2rem 0 !important; border-top:.5px solid rgba(255,255,255,.10) !important; }
.pub-year-block:first-child { border-top:0 !important; padding-top:0 !important; }
.pub-year-block h3 { position:sticky; top:calc(var(--nav-height) + 1.2rem); align-self:start; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.16em; color:var(--accent-lt); font-weight:400; padding-top:.3rem; }
.pub-modern-list { display:flex; flex-direction:column; gap:.9rem; }
.pub-modern-entry { position:relative; padding:1.15rem 1.25rem 1.15rem 1.45rem; background:rgba(255,255,255,.035); border:.5px solid rgba(255,255,255,.08); border-left:2px solid rgba(200,146,42,.45); transition:background .25s ease, border-color .25s ease, transform .25s ease; }
.pub-modern-entry:hover { background:rgba(255,255,255,.055); border-color:rgba(200,146,42,.38); transform:translateX(4px); }
.pub-modern-entry p { font-size:.86rem; line-height:2.05; color:rgba(245,243,238,.82); }
.pub-modern-entry strong { color:#fff; font-weight:700; }
.pub-modern-entry em { color:rgba(232,178,74,.92); font-style:normal; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .member-temp-note, .activities-temp-note { flex-direction:column !important; }
  .pub-year-block { grid-template-columns:1fr !important; gap:1rem !important; }
  .pub-year-block h3 { position:static !important; }
  .pub-modern-tabs { overflow-x:auto; }
}

/* ===== 03. Home / Hero / News ===== */
.news-sub-links-refined a { font-size:.76rem !important; letter-spacing:.06em !important; color:rgba(245,243,238,.62) !important; }
.news-sub-links-refined { gap:1rem !important; }

/* ===== 10. Other / Page-specific adjustments ===== */
.nowrap-line { white-space:nowrap; }

/* ===== 05. Research ===== */
.research-main-title { max-width:980px !important; font-size:clamp(3rem,4.9vw,5.4rem) !important; line-height:1.18 !important; }

/* ===== 10. Other / Page-specific adjustments ===== */
.temporary-note { margin:0 auto 2rem; max-width:1200px; padding:.9rem 1.2rem; border:1px solid rgba(232,178,74,.22); background:rgba(232,178,74,.06); color:rgba(255,240,210,.85); font-size:.85rem; letter-spacing:.04em; }

/* ===== 06. Member / Publications ===== */
.publications-modern { max-width:1200px; margin:0 auto; padding:4rem 0 6rem; }
.publication-year { font-size:2.8rem; color:#e2b24a; margin-bottom:2rem; font-family:serif; }
.publication-category { margin-bottom:3rem; }
.publication-category h3 { font-size:1.2rem; margin-bottom:1.2rem; padding-bottom:.8rem; border-bottom:1px solid rgba(255,255,255,.12); color:#f5f3ee; }
.publication-item { padding:1.2rem 0; border-bottom:1px solid rgba(255,255,255,.06); transition:.35s ease; }
.publication-item:hover { padding-left:.7rem; border-color:rgba(226,178,74,.28); }
.publication-item p { line-height:2; color:rgba(245,243,238,.82); font-size:.95rem; }
.publication-item strong { color:#ffffff; font-weight:700; }

/* ===== 05. Research ===== */
.research-hero-image-visual { overflow:hidden; border-radius:28px; min-height:360px; background:#050b24; box-shadow:0 28px 80px rgba(4, 12, 34, 0.28); }
.research-hero-image-visual img { width:100%; height:100%; min-height:360px; display:block; object-fit:cover; object-position:center; }

/* ===== 09. Responsive ===== */
@media (max-width: 900px) {
  .research-hero-image-visual, .research-hero-image-visual img { min-height:260px; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research .research-hero-bg-card { position:relative; overflow:hidden; min-height:520px; padding:clamp(44px, 6vw, 72px); border-radius:30px; background:#061326; box-shadow:0 30px 90px rgba(0, 10, 32, 0.36); display:flex; align-items:flex-end; isolation:isolate; }
#page-research .research-hero-bg-card::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(4, 12, 28, 0.96) 0%, rgba(4, 12, 28, 0.86) 34%, rgba(4, 12, 28, 0.58) 62%, rgba(4, 12, 28, 0.40) 100%), linear-gradient(0deg, rgba(4, 12, 28, 0.82) 0%, rgba(4, 12, 28, 0.18) 44%, rgba(4, 12, 28, 0.28) 100%); pointer-events:none; }
#page-research .research-hero-bg-card::after { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 18% 18%, rgba(100, 170, 255, 0.18), transparent 34%), radial-gradient(circle at 82% 45%, rgba(190, 120, 255, 0.18), transparent 36%); mix-blend-mode:screen; pointer-events:none; }
#page-research .research-hero-bg-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:right center; opacity:0.72; filter:brightness(0.72) saturate(1.08); transform:scale(0.98); z-index:-2; pointer-events:none; }
#page-research .research-hero-text-on-image { max-width:58%; color:#fff; position:relative; z-index:2; padding:0; }
#page-research .research-hero-text-on-image .research-kicker { color:rgba(255, 255, 255, 0.72); letter-spacing:0.18em; }
#page-research .research-hero-text-on-image .research-main-title, #page-research .research-hero-text-on-image .research-main-title span { color:#ffffff; text-shadow:0 6px 26px rgba(0, 0, 0, 0.36); }
#page-research .research-hero-text-on-image .research-main-lead { color:rgba(255, 255, 255, 0.84); text-shadow:0 4px 18px rgba(0, 0, 0, 0.30); }
#page-research .research-hero-visual-hidden { display:none !important; }

/* ===== 09. Responsive ===== */
@media (max-width: 900px) {
  #page-research .research-hero-bg-card { min-height:520px; padding:34px 26px; align-items:flex-end; }
  #page-research .research-hero-bg-photo { object-position:center bottom; opacity:0.62; }
  #page-research .research-hero-text-on-image { max-width:100%; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research .research-hero-about-style { display:grid; grid-template-columns:minmax(0, 0.95fr) minmax(420px, 1.05fr); gap:clamp(32px, 5vw, 72px); align-items:center; padding:clamp(36px, 5vw, 72px) 0; background:transparent; box-shadow:none; border-radius:0; overflow:visible; min-height:auto; }
#page-research .research-hero-about-style .research-hero-copy { max-width:620px; position:relative; z-index:2; }
#page-research .research-hero-about-visual { position:relative; min-height:420px; display:flex; align-items:center; justify-content:center; }
#page-research .research-visual-image-card { position:relative; width:100%; min-height:430px; border-radius:34px; overflow:hidden; background:#061326; box-shadow:0 28px 80px rgba(0, 16, 45, 0.24); isolation:isolate; }
#page-research .research-visual-image-card::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(5, 12, 35, 0.08), rgba(5, 12, 35, 0.28)), radial-gradient(circle at 18% 18%, rgba(117, 201, 255, 0.18), transparent 34%); pointer-events:none; }
#page-research .research-visual-image-card img { width:100%; height:100%; min-height:430px; display:block; object-fit:contain; object-position:center; filter:brightness(0.92) saturate(1.08); transform:scale(0.98); }
#page-research .research-hero-bg-photo { display:none !important; }
#page-research .research-hero-bg-card::before, #page-research .research-hero-bg-card::after { content:none !important; }
#page-research .research-hero-text-on-image { max-width:none !important; color:inherit !important; padding:initial !important; }
#page-research .research-hero-visual-hidden { display:block !important; }

/* ===== 09. Responsive ===== */
@media (max-width: 900px) {
  #page-research .research-hero-about-style { grid-template-columns:1fr; gap:30px; padding:36px 0; }
  #page-research .research-hero-about-visual, #page-research .research-visual-image-card, #page-research .research-visual-image-card img { min-height:280px; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research .research-hero-about-style { grid-template-columns:minmax(0, 0.72fr) minmax(560px, 1.45fr) !important; gap:clamp(28px, 4vw, 56px) !important; align-items:center !important; overflow:visible !important; }
#page-research .research-hero-about-visual { min-height:610px !important; margin-right:clamp(-40px, -4vw, -70px); }
#page-research .research-visual-image-card { min-height:610px !important; width:115% !important; max-width:none !important; border-radius:34px !important; }
#page-research .research-visual-image-card img { min-height:610px !important; object-fit:contain !important; object-position:center !important; transform:scale(1.08) !important; }

/* ===== 09. Responsive ===== */
@media (max-width: 1100px) {
  #page-research .research-hero-about-style { grid-template-columns:minmax(0, 0.85fr) minmax(430px, 1.25fr) !important; }
  #page-research .research-hero-about-visual, #page-research .research-visual-image-card, #page-research .research-visual-image-card img { min-height:500px !important; }
}
@media (max-width: 900px) {
  #page-research .research-hero-about-style { grid-template-columns:1fr !important; }
  #page-research .research-hero-about-visual { margin-right:0 !important; }
  #page-research .research-visual-image-card { width:100% !important; }
  #page-research .research-hero-about-visual, #page-research .research-visual-image-card, #page-research .research-visual-image-card img { min-height:360px !important; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research .research-hero-about-visual { transform:translateY(28px) !important; }
#page-research .research-visual-image-card { background:#061326 !important; border:none !important; outline:none !important; box-shadow:0 28px 80px rgba(0, 16, 45, 0.24) !important; }
#page-research .research-visual-image-card::before, #page-research .research-visual-image-card::after { display:none !important; content:none !important; }
#page-research .research-visual-image-card img { display:block !important; background:#061326 !important; transform:translateY(18px) scale(1.08) !important; border:none !important; outline:none !important; }

/* ===== 09. Responsive ===== */
@media (max-width: 900px) {
  #page-research .research-hero-about-visual { transform:translateY(12px) !important; }
  #page-research .research-visual-image-card img { transform:translateY(8px) scale(1.04) !important; }
}

/* ===== 10. Other / Page-specific adjustments ===== */
#page-research .research-visual-image-card { background-color:#061326 !important; overflow:hidden !important; line-height:0 !important; }
#page-research .research-visual-image-card img { clip-path:inset(2px 0 2px 0); }

/* ===== 02. Navigation ===== */
nav .nav-icons { display:flex; align-items:center; gap:12px; }
nav .nav-icon-btn, nav .lang-btn { height:48px !important; min-height:48px !important; box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; vertical-align:middle !important; }
nav .nav-icon-btn { width:48px !important; min-width:48px !important; padding:0 !important; }
nav .lang-btn { min-width:60px !important; padding:0 16px !important; }
.nav-menu-toggle { display:none; width:48px; height:48px; min-width:48px; border:1px solid rgba(255,255,255,0.28); background:rgba(6, 19, 38, 0.42); color:currentColor; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; border-radius:0; box-sizing:border-box; z-index:1002; }
.nav-menu-toggle span { display:block; width:20px; height:2px; background:currentColor; border-radius:999px; transition:transform .25s ease, opacity .25s ease; }
nav.nav-open .nav-menu-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
nav.nav-open .nav-menu-toggle span:nth-child(2) { opacity:0; }
nav.nav-open .nav-menu-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ===== 09. Responsive ===== */
@media (max-width: 900px) {
  nav { position:fixed !important; top:0 !important; left:0 !important; right:0 !important; z-index:1000 !important; display:flex !important; align-items:center !important; gap:12px !important; box-sizing:border-box !important; padding:0.9rem calc(16px + env(safe-area-inset-right)) 0.9rem calc(16px + env(safe-area-inset-left)) !important; }
  nav .nav-logo { flex:1 1 auto !important; min-width:0 !important; overflow:hidden !important; }
  nav .nav-logo-main { white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; }
  nav .nav-logo-sub { max-width:100% !important; overflow:hidden !important; }
  .nav-menu-toggle { display:inline-flex !important; flex:0 0 auto !important; margin-left:auto !important; }
  nav .nav-right { position:fixed !important; top:72px !important; left:16px !important; right:16px !important; display:none !important; flex-direction:column !important; align-items:stretch !important; gap:18px !important; padding:22px !important; border:1px solid rgba(255,255,255,0.14) !important; border-radius:24px !important; background:rgba(6, 19, 38, 0.96) !important; box-shadow:0 24px 80px rgba(0, 0, 0, 0.38) !important; backdrop-filter:blur(18px) !important; -webkit-backdrop-filter:blur(18px) !important; }
  nav.nav-open .nav-right { display:flex !important; }
  nav .nav-links { display:flex !important; flex-direction:column !important; gap:8px !important; width:100% !important; margin:0 !important; padding:0 !important; }
  nav .nav-links li { width:100% !important; }
  nav .nav-links a { display:block !important; width:100% !important; padding:12px 4px !important; box-sizing:border-box !important; }
  nav .nav-icons { display:flex !important; justify-content:flex-start !important; gap:12px !important; padding-top:8px !important; }
  body { padding-top:72px !important; }
  /* スマホ表示時のみ：タブレットの95vhより少し低くする */
  .hero { height:75vh !important; min-height:560px !important; max-height:760px !important; }
}

/* ===== 02. Navigation ===== */
nav .nav-icon-btn, nav .lang-btn { height:32px !important; min-height:32px !important; box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; vertical-align:middle !important; }
nav .nav-icon-btn { width:32px !important; min-width:32px !important; padding:0 !important; }
nav .nav-icon-btn svg { width:12px !important; height:16px !important; }
nav .lang-btn { min-width:44px !important; padding:0 10px !important; font-size:13px !important; }

/* ===== 09. Responsive ===== */
@media (max-width: 900px) {
  nav .nav-icon-btn, nav .lang-btn { height:32px !important; min-height:32px !important; }
  nav .nav-icon-btn { width:32px !important; min-width:32px !important; }
  nav .lang-btn { min-width:44px !important; }
}

/* ===== 06. Member / Publications ===== */
.publications-redesign .pub-lead { display:none !important; }
.publications-redesign .pub-year-block h3 { font-family:var(--font-mono); font-size:.9rem; letter-spacing:.18em; color:var(--accent); font-weight:400; margin:2.2rem 0 .55rem; }
.publications-redesign .pub-modern-list { margin-top:.65rem; }
.publications-redesign .pub-modern-entry { position:relative; padding:1.25rem 1.45rem 1.3rem; margin:0 0 .65rem; background:rgba(255,255,255,.022) !important; border:.5px solid rgba(255,255,255,.12) !important; border-left:2px solid rgba(200,146,42,.50) !important; box-shadow:none !important; transform:none !important; transition:none !important; }
.publications-redesign .pub-modern-entry:hover { transform:none !important; background:rgba(255,255,255,.022) !important; border-color:rgba(255,255,255,.12) !important; border-left-color:rgba(200,146,42,.50) !important; box-shadow:none !important; }
.publications-redesign .pub-modern-entry::after { display:none !important; }
.publications-redesign .pub-modern-entry p { margin:0; }
.publications-redesign .pub-entry-title { margin:0 0 .55rem !important; font-size:1.02rem; line-height:1.65; font-weight:600; color:var(--accent-lt); }
.publications-redesign .pub-entry-authors { margin:0 0 .35rem !important; font-size:.88rem; line-height:1.72; color:rgba(245,243,238,.84); font-weight:400; }
.publications-redesign .pub-entry-authors strong { color:var(--white); font-weight:600; }
.publications-redesign .pub-entry-source { margin:0 !important; font-size:.84rem; line-height:1.7; color:rgba(245,243,238,.58); }
.publications-redesign .pub-entry-source em { font-style:normal; color:rgba(245,243,238,.72); }
.publications-redesign .pub-entry-links { display:flex; flex-wrap:wrap; gap:.85rem; margin-top:.45rem; }
.publications-redesign .pub-entry-links a { font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em; color:var(--accent); text-decoration:none; border-bottom:.5px solid rgba(200,146,42,.45); padding-bottom:2px; transition:none !important; }
.publications-redesign .pub-entry-links a:hover { color:var(--accent); border-color:rgba(200,146,42,.45); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .publications-redesign .pub-year-block h3 { margin-top:1.9rem; margin-bottom:.45rem; }
  .publications-redesign .pub-modern-list { margin-top:.5rem; }
  .publications-redesign .pub-modern-entry { padding:1.15rem 1rem 1.2rem; margin-bottom:.55rem; }
  .publications-redesign .pub-entry-title { font-size:.94rem; line-height:1.6; }
  .publications-redesign .pub-entry-authors, .publications-redesign .pub-entry-source { font-size:.81rem; line-height:1.65; }
}

/* ===== 06. Member / Publications ===== */
.publications-redesign .pub-title-sub { display:block; margin-top:.22rem; color:rgba(232,178,74,.78); font-weight:500; font-size:.96em; }
.publications-redesign .pub-author-sub { display:block; margin-top:.1rem; color:rgba(245,243,238,.58); font-size:.94em; }
.publications-redesign .pub-year-nav-wrap { margin:1.8rem 0 2.2rem; }
.publications-redesign .pub-year-nav { display:none; flex-wrap:wrap; gap:.7rem; }
.publications-redesign .pub-year-nav.active { display:flex; }
.publications-redesign .pub-year-nav a { display:inline-flex; align-items:center; justify-content:center; min-width:104px; padding:.52rem 1rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:rgba(245,243,238,.82); text-decoration:none; background:rgba(255,255,255,.035); border:.5px solid rgba(255,255,255,.12); border-left:2px solid rgba(200,146,42,.55); transition:none !important; }
.publications-redesign .pub-year-nav a:hover { color:rgba(245,243,238,.82); background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.12); border-left-color:rgba(200,146,42,.55); }
.publications-redesign .pub-year-block { scroll-margin-top:calc(var(--nav-height) + 1.5rem); }
.publications-redesign .pub-year-block h3 { margin-top:1.8rem !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .publications-redesign .pub-year-nav-wrap { margin:1.3rem 0 1.7rem; }
  .publications-redesign .pub-year-nav { gap:.55rem; }
  .publications-redesign .pub-year-nav a { min-width:92px; padding:.48rem .8rem; font-size:.64rem; }
}

/* ===== 06. Member / Publications ===== */
.publications-redesign .pub-year-block { position:relative; padding-bottom:2.8rem; }
.publications-redesign .pub-page-top { position:absolute; right:0; bottom:.2rem; margin:0; }
.publications-redesign .pub-page-top-link { display:inline-flex; align-items:center; justify-content:center; padding:.46rem 1.18rem; border-radius:999px; background:rgba(255,255,255,.045); border:.5px solid rgba(200,146,42,.32); color:var(--accent); font-family:var(--font-mono); font-size:.64rem; letter-spacing:.08em; text-decoration:none; line-height:1; transition:none !important; }
.publications-redesign .pub-page-top-link:hover { background:rgba(255,255,255,.045); border-color:rgba(200,146,42,.32); color:var(--accent); transform:none !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .publications-redesign .pub-year-block { padding-bottom:2.4rem; }
  .publications-redesign .pub-page-top { right:0; bottom:0; }
  .publications-redesign .pub-page-top-link { padding:.42rem 1rem; font-size:.62rem; }
}

/* ===== 05. Research ===== */
.research-hero-crisp-style { position:relative; display:grid !important; grid-template-columns:minmax(0, .48fr) minmax(0, .52fr); gap:2rem; align-items:center; min-height:540px; padding:4.6rem 4rem 4.5rem; overflow:hidden; background:radial-gradient(circle at 78% 44%, rgba(70,92,170,.16), transparent 52%), linear-gradient(135deg, rgba(12,26,48,.98), rgba(7,15,31,.96)) !important; border:0 !important; box-shadow:none !important; }
.research-hero-crisp-style::before, .research-hero-crisp-style::after { content:none !important; display:none !important; }
.research-hero-crisp-style .research-hero-copy { position:relative; z-index:5; max-width:560px; width:100%; }
.research-hero-crisp-style .research-hero-copy::after { content:""; position:absolute; top:-120px; bottom:-120px; left:-140px; right:-260px; z-index:-1; pointer-events:none; background:linear-gradient(to right, rgba(12,26,48,.98) 0%, rgba(12,26,48,.94) 38%, rgba(12,26,48,.82) 58%, rgba(12,26,48,.56) 74%, rgba(12,26,48,.20) 88%, transparent 100% ); }
.research-hero-crisp-style .research-main-title, .research-hero-crisp-style .research-main-lead { max-width:560px; }
.research-hero-crisp-style .research-main-lead { color:rgba(245,243,238,.88); }
.research-hero-crisp-style .research-hero-visual { display:block !important; position:relative !important; z-index:2; width:100% !important; min-height:440px !important; align-self:stretch; pointer-events:none; }
.research-hero-crisp-style .research-visual-image-card { position:absolute !important; inset:-4.2rem -4.6rem -4.2rem -6.4rem !important; border:0 !important; background:transparent !important; box-shadow:none !important; overflow:visible !important; line-height:0 !important; }
.research-hero-crisp-style .research-visual-image-card::before, .research-hero-crisp-style .research-visual-image-card::after { content:none !important; display:none !important; }
.research-hero-crisp-style .research-visual-image-card img { display:block !important; width:100% !important; height:100% !important; object-fit:contain !important; object-position:center right !important; opacity:.94 !important; filter:brightness(.82) saturate(.98) contrast(1.02) !important; transform:scale(1.14) !important; transform-origin:center right !important; border:0 !important; box-shadow:none !important; vertical-align:top !important; background:transparent !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .research-hero-crisp-style { grid-template-columns:1fr; gap:1.6rem; min-height:auto; padding:3.2rem 1.8rem 3.2rem; }
  .research-hero-crisp-style .research-hero-copy, .research-hero-crisp-style .research-main-title, .research-hero-crisp-style .research-main-lead { max-width:none; }
  .research-hero-crisp-style .research-hero-copy::after { left:-40px; right:-40px; top:-40px; bottom:-80px; background:linear-gradient(to bottom, rgba(12,26,48,.96) 0%, rgba(12,26,48,.82) 46%, rgba(12,26,48,.30) 82%, transparent 100% ); }
  .research-hero-crisp-style .research-hero-visual { min-height:280px !important; }
  .research-hero-crisp-style .research-visual-image-card { inset:-2rem -2rem -2rem -2rem !important; }
  .research-hero-crisp-style .research-visual-image-card img { object-position:center center !important; transform:scale(1.06) !important; opacity:.78 !important; }
}

/* ===== 05. Research ===== */
.research-hero-crisp-style, .research-hero-crisp-style .research-hero-visual, .research-hero-crisp-style .research-visual-image-card, .research-hero-crisp-style .research-visual-image-card img { border-top:0 !important; border-bottom:0 !important; outline:0 !important; }

/* ===== 06. Member / Publications ===== */
.member-section { background:radial-gradient(circle at 82% 12%, rgba(70,92,170,.10), transparent 34%), linear-gradient(180deg, #071121 0%, var(--navy) 42%, #071121 100%); }
.member-photo-wrap { margin:2.8rem 0 4.2rem; text-align:center; }
.member-group-photo { width:85%; max-width:85%; height:auto; display:block; margin:0 auto; border-radius:22px; border:.5px solid rgba(255,255,255,.10); box-shadow:0 26px 70px rgba(0,0,0,.38), 0 0 0 1px rgba(255,255,255,.035) inset; filter:brightness(.96) saturate(.96) contrast(1.02); }
.member-list-section { margin-top:3.2rem; border-top:.5px solid rgba(255,255,255,.12); }

/* ===== 04. About / Message ===== */
.student-list-section { margin-top:4rem; }

/* ===== 06. Member / Publications ===== */
.member-list-heading { display:flex; align-items:baseline; gap:.9rem; padding:1.3rem 0 1.1rem; border-bottom:.5px solid rgba(255,255,255,.08); }
.member-list-heading span { font-size:1.15rem; letter-spacing:.08em; color:var(--white); }
.member-list-heading em { font-style:normal; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.18em; color:rgba(245,243,238,.42); text-transform:uppercase; }
.member-list-row { display:grid; grid-template-columns:120px 1fr; gap:2rem; align-items:baseline; padding:0.8rem 0; border-bottom:.5px solid rgba(255,255,255,.07); }
.member-list-role { font-family:var(--font-mono); font-size:.90rem; letter-spacing:.12em; line-height:1.7; }

/* ===== 10. Other / Page-specific adjustments ===== */
.staff-role-label { color:var(--accent); }

/* ===== 04. About / Message ===== */
.student-role-label { color:#7eb8e0; }

/* ===== 06. Member / Publications ===== */
.member-list-names { font-size:1.05rem; line-height:2; color:rgba(245,243,238,.90); }
.member-main-name { display:inline-block; margin-right:1.1rem; font-size:1.05rem; color:var(--white); }
.member-sub-name { display:inline-block; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; color:rgba(245,243,238,.48); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .member-photo-wrap { margin:2rem 0 3rem; }
  .member-group-photo { width:100%; max-width:100%; border-radius:16px; }
  .member-list-row { grid-template-columns:1fr; gap:.3rem; padding:1.08rem 0; }
  .member-main-name, .member-sub-name { display:block; }
  .member-sub-name { margin-top:.1rem; }
}

/* ===== 06. Member / Publications ===== */
.member-archive-section { margin-top:4.6rem; padding-top:2.4rem; border-top:.5px solid rgba(255,255,255,.10); }
.member-archive-head { display:flex; align-items:baseline; gap:.9rem; margin-bottom:1.4rem; }
.member-archive-head span { font-size:1.08rem; letter-spacing:.08em; color:var(--white); }
.member-archive-head em { font-style:normal; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.18em; color:rgba(245,243,238,.42); text-transform:uppercase; }
.member-archive-links { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:.9rem; }
.member-archive-links a { display:block; padding:1.05rem 1.15rem; text-decoration:none; background:rgba(255,255,255,.035); border:.5px solid rgba(255,255,255,.10); border-left:2px solid rgba(126,184,224,.45); transition:background .2s ease, border-color .2s ease, transform .2s ease; }
.member-archive-links a:hover { background:rgba(126,184,224,.08); border-color:rgba(126,184,224,.35); border-left-color:rgba(126,184,224,.75); transform:translateY(-2px); }
.member-archive-links span { display:block; font-size:.92rem; color:rgba(245,243,238,.90); margin-bottom:.2rem; }
.member-archive-links small { display:block; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.10em; color:rgba(245,243,238,.42); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .member-archive-links { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:560px) {
  .member-archive-links { grid-template-columns:1fr; }
}

/* ===== 06. Member / Publications ===== */
.member-archive-links-three { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.member-archive-placeholder { margin-top:3rem; padding:3.2rem 3rem; background:linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.018)); border:.5px solid rgba(255,255,255,.10); border-left:2px solid rgba(126,184,224,.48); }
.member-archive-year { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.18em; color:#7eb8e0; margin-bottom:1rem; }
.member-archive-placeholder h3 { font-family:var(--font-serif); font-size:clamp(1.8rem, 3vw, 2.7rem); font-weight:400; line-height:1.35; color:var(--white); margin-bottom:1rem; }
.member-archive-placeholder p { max-width:720px; font-size:.9rem; color:rgba(245,243,238,.76); line-height:2; }
.member-back-link { display:inline-flex; margin-top:2rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:var(--accent); text-decoration:none; border-bottom:.5px solid rgba(200,146,42,.45); padding-bottom:2px; }
.member-back-link:hover { color:var(--accent-lt); border-color:var(--accent-lt); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .member-archive-links-three { grid-template-columns:1fr; }
  .member-archive-placeholder { padding:2.3rem 1.5rem; }
}

/* ===== 07. Activities ===== */
.activities-section { background:radial-gradient(circle at 84% 10%, rgba(70,92,170,.12), transparent 34%), linear-gradient(180deg, #071121 0%, var(--navy) 44%, #071121 100%); }
.activities-inner { max-width:1180px; }
.activities-page-head { display:block !important; margin-bottom:2rem !important; }
.activities-kicker { font-family:var(--font-mono); font-size:.7rem; letter-spacing:.24em; color:var(--accent); text-transform:uppercase; }
.activity-feature, .activities-title, .activities-lead { display:none !important; }
.activity-card-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1.4rem; align-items:stretch; }
.activity-card { display:flex; flex-direction:column; min-height:100%; background:rgba(255,255,255,.035); border:.5px solid rgba(255,255,255,.10); color:inherit; text-decoration:none; overflow:hidden; transition:transform .25s ease, border-color .25s ease, background .25s ease; }
.activity-card:hover { transform:translateY(-4px); border-color:rgba(200,146,42,.42); background:rgba(255,255,255,.052); }
.activity-card-image { aspect-ratio:16 / 10; overflow:hidden; position:relative; background:#071121; }
.activity-card-image::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,17,33,.28), transparent 58%), radial-gradient(circle at center, transparent 58%, rgba(7,17,33,.14) 100%); pointer-events:none; }
.activity-card-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:brightness(.94) saturate(.98) contrast(1.03); transition:transform .42s ease, filter .42s ease; }
.activity-card:hover .activity-card-image img { transform:scale(1.025); filter:brightness(1) saturate(1.02) contrast(1.04); }
.activity-card-body { padding:1.35rem 1.3rem 1.45rem; }
.activity-meta { display:flex; align-items:center; gap:.8rem; margin-bottom:.8rem; }
.activity-category { font-family:var(--font-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.activity-meta time { font-family:var(--font-mono); font-size:.66rem; color:rgba(245,243,238,.45); }
.activity-card h3 { font-size:1rem; line-height:1.7; margin-bottom:.55rem; color:var(--white); font-weight:500; }
.activity-card p { font-size:.82rem; line-height:1.9; color:rgba(245,243,238,.74); }

/* ===== 05. Research ===== */
.research-hero-about-style { display:grid; grid-template-columns:minmax(0, 1fr) minmax(420px, 540px); gap:3.4rem; align-items:center; }
.research-hero-about-visual { width:100%; min-height:390px; }
.research-full-image-card { position:relative; width:100%; height:390px; overflow:visible; background:transparent !important; border:0 !important; box-shadow:none !important; }
.research-full-image-card img, .research-visual-image-card img, .research-hero-about-visual img { width:100% !important; height:100% !important; object-fit:contain !important; object-position:center center !important; transform:none !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .activity-card-grid { grid-template-columns:1fr; }
  .research-hero-about-style { grid-template-columns:1fr; }
  .research-hero-about-visual, .research-full-image-card { min-height:300px; height:300px; }
}

/* ===== 07. Activities ===== */
.activities-page-head { margin-bottom:.75rem !important; }
.activities-year-nav { display:flex; flex-wrap:wrap; gap:.55rem; margin:.4rem 0 1.05rem; padding:0; max-width:520px; }
.activities-year-nav a { position:relative; display:inline-flex; flex-direction:column; justify-content:center; gap:0; min-width:138px; padding:.56rem .85rem .58rem; text-decoration:none; background:rgba(255,255,255,.026); border:.5px solid rgba(255,255,255,.10); border-left:1.5px solid rgba(126,184,224,.40); transition:transform .18s ease, border-color .18s ease, background .18s ease; }
.activities-year-nav a::before { content:""; position:absolute; inset:0; background:linear-gradient(135deg, rgba(200,146,42,.10), transparent 68%); opacity:0; transition:opacity .18s ease; }
.activities-year-nav a:hover, .activities-year-nav a.active { transform:translateY(-1px); background:rgba(255,255,255,.04); border-color:rgba(200,146,42,.34); border-left-color:rgba(200,146,42,.82); }
.activities-year-nav a:hover::before, .activities-year-nav a.active::before { opacity:1; }
.activities-year-nav span { position:relative; z-index:1; font-size:.82rem; letter-spacing:.08em; line-height:1.45; color:rgba(245,243,238,.90); }
.activities-year-nav small { position:relative; z-index:1; font-family:var(--font-mono); font-size:.48rem; letter-spacing:.12em; line-height:1.45; text-transform:uppercase; color:rgba(245,243,238,.32); }
.activities-year-nav a.active span, .activities-year-nav a:hover span { color:var(--white); }
.activities-year-block { scroll-margin-top:calc(var(--nav-height) + 2rem); margin-top:1.65rem; }
.activities-year-block:first-of-type { margin-top:.55rem; }
.activities-year-heading { display:flex; align-items:baseline; gap:.75rem; margin-bottom:.78rem; padding-bottom:.5rem; border-bottom:.5px solid rgba(255,255,255,.08); }
.activities-year-heading span { font-size:.88rem; letter-spacing:.08em; color:rgba(245,243,238,.88); }
.activities-year-heading em { font-style:normal; font-family:var(--font-mono); font-size:.52rem; letter-spacing:.15em; color:rgba(245,243,238,.30); text-transform:uppercase; }

/* ===== 10. Other / Page-specific adjustments ===== */
grid-template-columns: 1fr; } .activities-year-nav a { min-width:0; }
} .activities-section .activities-year-nav, .activities-section .activities-year-nav-final { margin:.8rem 0 2rem !important; }

/* ===== 07. Activities ===== */
.activities-section .activities-year-block { margin:2.5rem 0 3rem !important; }
.activities-section .activities-year-heading { margin:2rem 0 1.15rem !important; padding:0 0 .55rem !important; }
.activities-section .activity-card-grid { margin-top:.15rem !important; }

/* ===== 04. About / Message ===== */
.message-page-links a { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:.72rem 1.35rem; border:.5px solid rgba(200,146,42,.70); border-radius:2px; background:var(--accent); color:var(--navy) !important; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.10em; line-height:1.5; text-decoration:none; cursor:pointer; transition:background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.message-page-links a:hover { background:var(--accent-lt); border-color:rgba(232,178,74,.95); color:var(--navy) !important; transform:translateY(-1px); }
.message-page-links a.ghost { background:transparent; color:rgba(245,243,238,.84) !important; border-color:rgba(245,243,238,.24); }
.message-page-links a.ghost:hover { background:rgba(255,255,255,.055); border-color:rgba(200,146,42,.62); color:var(--accent-lt) !important; }

/* ===== 09. Responsive ===== */
@media (max-width:700px) {
  .message-page-links { flex-direction:column; align-items:stretch; }
  .message-page-links a { width:100%; }
}

/* ===== 04. About / Message ===== */
.message-link-card, .message-link-card:link, .message-link-card:visited { text-decoration:none !important; }
.message-link-card strong { text-decoration:none !important; border-bottom:none !important; font-size:.92rem; letter-spacing:.03em; transition:color .2s ease; }
.message-link-card:hover strong { color:var(--accent-lt); }
.message-link-card em { display:inline-flex; align-items:center; justify-content:center; width:28px; height:18px; margin-top:1.2rem; color:var(--accent-lt); border-bottom:1px solid rgba(245,243,238,.9); line-height:1; transition:transform .2s ease, color .2s ease, border-color .2s ease; }
.message-link-card:hover em { transform:translateX(3px); color:var(--accent-lt); border-color:var(--accent-lt); }
.message-link-card em { display:none !important; }
.message-link-card strong { text-decoration:none !important; border:0 !important; font-size:1.15rem; font-weight:500; line-height:1.5; }
.message-link-card { min-height:140px; }
.message-link-panel { padding:1.6rem 1.55rem 1.75rem; }
.message-link-lead { margin-bottom:1.35rem; }
.message-link-grid { gap:1.25rem; }
.message-link-card { position:relative !important; display:block !important; min-height:165px !important; padding:1.75rem 1.55rem !important; text-decoration:none !important; }
.message-link-card, .message-link-card:visited { color:var(--white) !important; }
.message-link-card strong { display:block !important; max-width:100% !important; margin:.6rem 0 0 !important; font-size:1.55rem !important; font-weight:600 !important; line-height:1.45 !important; letter-spacing:.02em !important; color:var(--white) !important; text-decoration:none !important; border:0 !important; }
.message-link-card em { position:absolute !important; right:1.55rem !important; bottom:1.35rem !important; display:block !important; font-style:normal !important; font-family:var(--font-mono) !important; font-size:1.35rem !important; line-height:1 !important; color:var(--accent-lt) !important; text-decoration:none !important; border:0 !important; transition:transform .25s ease, color .25s ease !important; }
.message-link-card:hover strong { color:var(--white) !important; text-decoration:none !important; }
.message-link-card:hover em { transform:translateX(5px); color:var(--accent) !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .message-link-grid { grid-template-columns:1fr; }
  .message-link-card { min-height:145px !important; }
  .message-link-card strong { font-size:1.35rem !important; }
}

/* ===== 04. About / Message ===== */
.message-link-panel { margin-top:2.2rem !important; padding:1.9rem 2rem 2rem !important; }
.message-link-lead { margin-bottom:1.6rem !important; font-size:.9rem !important; line-height:1.8 !important; color:rgba(245,243,238,.72) !important; }
.message-link-grid { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:1.5rem !important; }
.message-link-card { position:relative !important; display:flex !important; flex-direction:column !important; justify-content:flex-start !important; min-height:148px !important; padding:1.55rem 1.75rem 1.35rem !important; border:.5px solid rgba(200,146,42,.42) !important; background:rgba(12,26,48,.50) !important; text-decoration:none !important; }
.message-link-card.student { border-color:rgba(126,184,224,.42) !important; }
.message-link-kicker { margin-bottom:1.05rem !important; font-size:.58rem !important; letter-spacing:.18em !important; line-height:1 !important; }
.message-link-card strong { display:block !important; margin:0 !important; max-width:82% !important; font-size:1.24rem !important; font-weight:600 !important; line-height:1.55 !important; letter-spacing:.02em !important; color:var(--white) !important; text-decoration:none !important; border:0 !important; }
.message-link-card em { position:absolute !important; right:1.65rem !important; bottom:1.45rem !important; display:block !important; width:auto !important; height:auto !important; margin:0 !important; font-style:normal !important; font-family:var(--font-mono) !important; font-size:1.35rem !important; line-height:1 !important; color:var(--accent-lt) !important; border:0 !important; text-decoration:none !important; }
.message-link-card:hover { transform:translateY(-1px) !important; }
.message-link-card:hover em { transform:translateX(4px) !important; color:var(--accent-lt) !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .message-link-grid { grid-template-columns:1fr !important; }
  .message-link-card { min-height:132px !important; padding:1.35rem 1.4rem 1.25rem !important; }
  .message-link-card strong { max-width:86% !important; font-size:1.12rem !important; }
}

/* ===== 04. About / Message ===== */
.about-redesign .about-feature-list { display:flex; flex-direction:column; gap:2.6rem; }
.about-redesign .about-feature-item { overflow:hidden; }
.about-redesign .about-feature-image { width:100%; height:clamp(260px, 30vw, 340px); overflow:hidden; border-radius:4px; background:#071121; }
.about-redesign .about-feature-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; filter:brightness(.94) saturate(.98) contrast(1.03); }
.about-redesign .about-feature-body { padding-top:1rem; }
.about-redesign .about-feature-head h3 { margin-bottom:.45rem; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .about-redesign .about-feature-list { gap:2.1rem; }
  .about-redesign .about-feature-image { height:clamp(220px, 52vw, 300px); }
}

/* ===== 04. About / Message ===== */
.about-redesign { background:radial-gradient(circle at 82% 12%, rgba(126,184,224,.12), transparent 28%), radial-gradient(circle at 18% 72%, rgba(200,146,42,.10), transparent 30%), linear-gradient(180deg, #071121 0%, var(--navy) 48%, #071121 100%) !important; overflow:hidden; }
.about-redesign .about-redesign-inner { max-width:1480px !important; }
.about-redesign-grid { display:grid; grid-template-columns:minmax(850px, 1.6fr) minmax(520px, 1fr); gap:6rem; align-items:stretch; position:relative; }
.about-redesign-grid::before { content:""; position:absolute; top:0; bottom:0; left:calc(42% + 1.6rem); width:1px; background:linear-gradient(to bottom, rgba(200,146,42,.72), rgba(200,146,42,.36), rgba(200,146,42,.65)); opacity:.78; }
.about-redesign-heading {font-size: clamp(2.2rem, 3.2vw, 3.6rem) !important; line-height:1.24 !important; margin-bottom:1.9rem !important; letter-spacing:.015em; }
.about-redesign-lead { max-width:620px; margin:0 0 2.4rem; font-size:1.1rem; line-height:2.15; color:rgba(245,243,238,.82); }
.about-feature-list { display:flex; flex-direction:column; gap:1.7rem; margin-top:2.2rem; }
.about-feature-item { display:grid; grid-template-columns:170px minmax(0,1fr); gap:1.8rem; align-items:center; }
.about-feature-image { position:relative; height:120px; overflow:hidden; border:.5px solid rgba(255,255,255,.13); background:#071121; box-shadow:0 18px 45px rgba(0,0,0,.24); }
.about-feature-image::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,17,33,.42), transparent 58%), radial-gradient(circle at 50% 50%, transparent 50%, rgba(7,17,33,.22) 100%); pointer-events:none; }
.about-feature-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:brightness(.92) saturate(.96) contrast(1.05); transition:transform .55s ease, filter .45s ease; }
.about-feature-item:hover .about-feature-image img { transform:scale(1.045); filter:brightness(1) saturate(1.04) contrast(1.05); }
.about-feature-head { display:flex; align-items:center; gap:.85rem; margin-bottom:.62rem; }
.about-feature-icon { display:inline-flex; align-items:center; justify-content:center; width:28px; min-width:28px; height:28px; color:var(--accent-lt); border:.5px solid rgba(200,146,42,.42); border-radius:999px; font-family:var(--font-mono); font-size:.85rem; line-height:1; }
.about-feature-head h3 { margin:0; font-size:1.02rem; line-height:1.55; font-weight:600; color:rgba(245,243,238,.96); letter-spacing:.03em; }
.about-feature-body p { margin:0; font-size:.90rem; line-height:1.95; color:rgba(245,243,238,.72); }
.about-redesign-cta { display:flex; align-items:center; width:100%; max-width:560px;margin-top:2.6rem !important;}
.cta-text { white-space:nowrap; font-size: 1.4rem;}
.cta-line { width:180px; height:1px; margin:0 1rem; background:rgba(200,146,42,.65);}
.cta-arrow { font-family:var(--font-mono); font-size:1.1rem;}
.about-redesign-cta,
.about-redesign-cta:link,
.about-redesign-cta:visited,
.about-redesign-cta:hover,
.about-redesign-cta:active {
    color: var(--accent-lt) !important;
    text-decoration: none !important;
}

.about-redesign-cta .cta-text,
.about-redesign-cta .cta-arrow {
    color: var(--accent-lt) !important;
    text-decoration: none !important;
}
.about-redesign-cta,
    color: var(--accent-lt) !important;
    text-decoration: none !important;.about-redesign-cta:visited {

}

.about-redesign-cta:hover {
    color: var(--accent-lt) !important;
    text-decoration: none !important;
}

.cta-arrow {
    color: var(--accent-lt) !important; font-size: 1.5rem !important;
}
.about-redesign-cta:hover { background:rgba(200,146,42,.13); border-color:rgba(232,178,74,.88); transform:translateY(-1px); }
.about-redesign-right { position:relative; display:flex !important; flex-direction:column !important; gap:1.65rem !important; padding-top:0 !important; transform:none !important; }
.about-redesign-philosophy { position:relative !important; overflow:hidden !important; padding:2.5rem 2.8rem 2.2rem !important; border-left:0 !important; border:.5px solid rgba(255,255,255,.15) !important; background:linear-gradient(135deg, rgba(255,255,255,.048), rgba(255,255,255,.015)), rgba(7,17,33,.28) !important; min-height:560px; }
.about-philosophy-visual { position:absolute; top:-7.5rem; right:-3.5rem; width:360px; height:300px; pointer-events:none; opacity:.88; background:radial-gradient(circle at 70% 54%, rgba(232,178,74,.92) 0 7%, rgba(232,178,74,.42) 8% 16%, rgba(232,178,74,.10) 17% 34%, transparent 35%), radial-gradient(circle at 42% 42%, rgba(126,184,224,.20), transparent 38%); filter:blur(.1px); }
.about-philosophy-visual::before { content:""; position:absolute; right:94px; top:0; width:34px; height:180px; border:1px solid rgba(245,243,238,.18); border-radius:0 0 18px 18px; background:linear-gradient(to bottom, rgba(255,255,255,.10), rgba(255,255,255,.02)); }
.about-philosophy-visual::after { content:""; position:absolute; right:63px; top:152px; width:96px; height:96px; border-radius:999px; border:1px solid rgba(232,178,74,.38); box-shadow:0 0 48px rgba(232,178,74,.26); background:radial-gradient(circle, rgba(232,178,74,.36), rgba(232,178,74,.08) 55%, transparent 70%); }
.about-redesign-side-title { position:relative; z-index:2; font-size:clamp(2rem, 2.7vw, 3rem) !important; line-height:1.34 !important; margin-bottom:2.4rem !important; }
.about-redesign-flow { position:relative; z-index:2; gap:0 !important; border-top:.5px solid rgba(255,255,255,.14); }
.about-redesign-flow .about-flow-item { display:grid !important; grid-template-columns:70px 58px 1fr !important; gap:1.35rem !important; align-items:center !important; padding:0.5rem 0 !important; border-bottom:.5px solid rgba(255,255,255,.14) !important; }
.about-redesign-flow .about-flow-num { font-family:var(--font-mono); font-size:1.72rem !important; line-height:1 !important; color:var(--accent-lt) !important; letter-spacing:.05em !important; }
.about-flow-icon { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; color:var(--accent); border:.5px solid rgba(200,146,42,.36); font-family:var(--font-mono); font-size:1.3rem; line-height:1; }
.about-redesign-flow .about-flow-item p { font-size:.93rem !important; line-height:2 !important; color:rgba(245,243,238,.86) !important; }
.about-redesign-message-panel { position:relative !important; overflow:hidden !important; margin-top:0rem !important; padding:2.15rem 2.35rem 2.25rem !important; border:.5px solid rgba(255,255,255,.18) !important; background:linear-gradient(90deg, rgba(12,26,48,.96), rgba(12,26,48,.74)), radial-gradient(circle at 82% 62%, rgba(126,184,224,.14), transparent 32%) !important; }
.about-redesign-message-panel::before { content:""; position:absolute; right:-2rem; bottom:-3rem; width:350px; height:240px; opacity:.34; background:linear-gradient(to top, rgba(255,255,255,.12), transparent 35%), radial-gradient(ellipse at 40% 90%, rgba(126,184,224,.55), transparent 32%), radial-gradient(ellipse at 78% 82%, rgba(126,184,224,.38), transparent 26%); border-radius:24px; pointer-events:none; }
.about-redesign-message-panel .message-link-lead { position:relative; z-index:2; margin-bottom:1.6rem !important; font-size:1.2rem !important; line-height:1.8 !important; color:var(--accent-lt) !important; letter-spacing:.04em; }
.about-redesign-message-panel .message-link-grid { position:relative; z-index:2; display:grid !important; grid-template-columns:1fr !important; gap:1rem !important;}
.about-redesign-message-panel .message-link-card { position:relative !important; min-height:60px !important; padding:.85rem .85rem 1rem !important; border:.5px solid rgba(200,146,42,.64) !important; background:rgba(7,17,33,.62) !important; text-decoration:none !important; }
.about-redesign-message-panel .message-link-card.student { border-color:rgba(126,184,224,.62) !important; }
.about-redesign-message-panel .message-link-kicker { font-size:.62rem !important; letter-spacing:.20em !important; margin-bottom:1.05rem !important; }
.about-redesign-message-panel .message-link-card strong { max-width:86% !important; font-family:var(--font-serif) !important; font-size:1.1rem !important; font-weight:400 !important; line-height:1.45 !important; color:var(--white) !important; }
.about-redesign-message-panel .message-link-card em { position:absolute !important; right:1.55rem !important; bottom:1.25rem !important; margin:0 !important; border:0 !important; width:auto !important; height:auto !important; display:block !important; font-size:1.35rem !important; color:var(--accent-lt) !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1100px) {
  .about-redesign-grid { grid-template-columns:1fr !important; gap:3.4rem !important; }
  .about-redesign-grid::before { display:none !important; }
  .about-redesign-philosophy { min-height:auto; }
}
@media (max-width:700px) {
  .about-redesign { padding-left:1.5rem !important; padding-right:1.5rem !important; }
  .about-feature-item { grid-template-columns:1fr; gap:1rem; }
  .about-feature-image { aspect-ratio:16 / 9; }
  .about-redesign-cta { min-width:0; width:100%; }
  .about-redesign-philosophy { padding:2rem 1.35rem 1.6rem !important; }
  /* 「現象を見つめ…」を「材料が生まれる…」と同じフォントサイズに揃える */
  .about-redesign-side-title { font-size:clamp(2.2rem, 3.2vw, 3.6rem) !important; }
  .about-redesign-flow .about-flow-item { grid-template-columns:54px 1fr !important; gap:.9rem !important; }
  .about-flow-icon { display:none; }
  .about-redesign-message-panel { padding:1.65rem 1.25rem 1.8rem !important; }
  .about-redesign-message-panel .message-link-grid { grid-template-columns:1fr !important; }
  .about-redesign-message-panel .message-link-card strong { font-size:1.18rem !important; }
}

/* ===== 04. About / Message ===== */
.about-redesign .about-feature-icon { display:none !important; }
.about-redesign .about-feature-head { display:block !important; gap:0 !important; }
.about-redesign .about-feature-head h3 { margin:0 0 .60rem 0 !important; }
.about-redesign .about-flow-icon { display:none !important; }
.about-redesign-flow .about-flow-item { display:grid !important; grid-template-columns:40px minmax(0, 1fr) !important; column-gap:1.45rem !important; row-gap:0 !important; align-items:center !important; width:100% !important; padding:1.1rem 0 !important; border-bottom:.5px solid rgba(255,255,255,.14) !important; }
.about-redesign-flow .about-flow-item:last-child { border-bottom:0 !important; }
.about-redesign-flow .about-flow-num { display:block !important; grid-column:1 !important; width:72px !important; min-width:72px !important; font-family:var(--font-mono) !important; font-size:1rem !important; line-height:1 !important; letter-spacing:.05em !important; color:var(--accent-lt) !important; white-space:nowrap !important; writing-mode:horizontal-tb !important; text-orientation:mixed !important; }
.about-redesign-flow .about-flow-item p { display:block !important; grid-column:2 !important; width:100% !important; max-width:none !important; min-width:0 !important; margin:0 !important; padding:0 !important; font-size:.85rem !important; line-height:2 !important; color:rgba(245,243,238,.86) !important; white-space:normal !important; word-break:normal !important; overflow-wrap:anywhere !important; writing-mode:horizontal-tb !important; text-orientation:mixed !important; }
.about-redesign-philosophy { border:0 !important; border-left:0 !important; background:transparent !important; box-shadow:none !important; padding:2.0rem 1.8rem 1.25rem 2.8rem !important; min-height:auto !important; overflow:visible !important; }
.about-redesign-message-panel { border:0 !important; background:transparent !important; box-shadow:none !important; padding:1.35rem 1.8rem 0 2.8rem !important; margin-top:0 !important; overflow:visible !important; }
.about-redesign-message-panel::before, .about-redesign-message-panel::after { display:none !important; }
.about-redesign .about-feature-item:nth-child(3) .about-feature-image img { object-position:center 68% !important; transform:scale(1.08) !important; }
.about-redesign .about-feature-item:nth-child(3):hover .about-feature-image img { transform:scale(1.12) !important; }
.about-redesign .about-feature-image::after { background:linear-gradient(to top, rgba(7,17,33,.54), rgba(7,17,33,.10) 50%, rgba(7,17,33,.20) 100%), radial-gradient(circle at 50% 50%, transparent 44%, rgba(7,17,33,.30) 100%) !important; }

/* ===== 09. Responsive ===== */
@media (max-width:700px) {
  .about-redesign-flow .about-flow-item { grid-template-columns:54px minmax(0,1fr) !important; column-gap:.9rem !important; }
  .about-redesign-flow .about-flow-num { width:54px !important; min-width:54px !important; font-size:1.25rem !important; }
  .about-redesign-philosophy, .about-redesign-message-panel { padding-left:1.35rem !important; padding-right:1.35rem !important; }
}

/* ===== 04. About / Message ===== */
.about-redesign .about-feature-list { gap:1.7rem !important; margin-top:2.2rem !important; }
.about-redesign .about-feature-item { display:grid !important; grid-template-columns:170px minmax(0,1fr) !important; gap:1.8rem !important; align-items:center !important; overflow:visible !important; }
.about-redesign .about-feature-image { width:170px !important; height:105px !important; aspect-ratio:auto !important; border-radius:0 !important; }
.about-redesign .about-feature-image img { width:100% !important; height:120% !important; object-fit:cover !important; object-position:center center !important; }
.about-redesign .about-feature-body { padding-top:0 !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .about-redesign .about-feature-item { grid-template-columns:150px minmax(0,1fr) !important; }
  .about-redesign .about-feature-image { width:150px !important; height:auto !important; }
}
@media (max-width:700px) {
  .about-redesign .about-feature-item { grid-template-columns:1fr !important; }
  .about-redesign .about-feature-image { width:100% !important; height:auto !important; }
}

/* ===== 04. About / Message ===== */
.about-redesign .about-redesign-grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap:4rem !important; align-items:start; }
.about-redesign .about-redesign-grid::before { left:calc(59% + .35rem) !important; }
.about-redesign .about-left { min-width:0 !important; }
.about-redesign .about-redesign-lead { max-width:720px !important; }
.about-redesign .about-feature-item { grid-template-columns:190px minmax(0, 1fr) !important; gap:1.65rem !important; }
.about-redesign .about-feature-image { width:190px !important; height:113px !important; aspect-ratio:auto !important; }
.about-redesign .about-redesign-philosophy { padding:2.35rem 2.35rem 2.05rem !important; }
.about-redesign .about-redesign-message-panel { padding:1.2rem 2.15rem 2.15rem !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1100px) {
  .about-redesign .about-redesign-grid { grid-template-columns:1fr !important; gap:3.4rem !important; }
  .about-redesign .about-redesign-grid::before { display:none !important; }
}
@media (max-width:700px) {
  .about-redesign .about-feature-item { grid-template-columns:1fr !important; }
  .about-redesign .about-feature-image { width:100% !important; }
}

/* ===== 04. About / Message ===== */
.about-redesign .about-philosophy-panel, .about-redesign .about-redesign-philosophy { border-left:0 !important; }
.about-redesign .about-philosophy-panel::before, .about-redesign .about-redesign-philosophy::before { content:none !important; display:none !important; }
.about-redesign .about-redesign-grid::before { display:block !important; left:calc(59% + .35rem) !important; width:1px !important; background:linear-gradient(to bottom, rgba(200,146,42,.72), rgba(200,146,42,.36), rgba(200,146,42,.65)) !important; opacity:.78 !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1100px) {
  .about-redesign .about-redesign-grid::before { display:none !important; }
}

/* ===== 04. About / Message ===== */
.about-redesign .about-redesign-grid::before, .about-redesign-grid::before, .about-redesign .about-redesign-grid::after, .about-redesign-grid::after, .about-redesign .about-philosophy-panel::before, .about-philosophy-panel::before, .about-redesign .about-philosophy-panel::after, .about-philosophy-panel::after, .about-redesign .about-redesign-philosophy::before, .about-redesign-philosophy::before, .about-redesign .about-redesign-philosophy::after, .about-redesign-philosophy::after { content:none !important; display:none !important; opacity:0 !important; width:0 !important; background:none !important; border:0 !important; }
.about-redesign .about-philosophy-panel, .about-philosophy-panel, .about-redesign .about-redesign-philosophy, .about-redesign-philosophy, .about-redesign .about-redesign-right, .about-redesign-right { border-left:0 !important; }

/* ===== 07. Activities ===== */
.activity-detail-section { background:radial-gradient(circle at 82% 18%, rgba(200,146,42,.10), transparent 30%), linear-gradient(180deg, #0c1a30 0%, #071121 100%); }
.activity-detail-inner { max-width:1280px !important; }
.activity-detail-back { display:inline-flex; align-items:center; gap:.5rem; margin-bottom:2.2rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:rgba(245,243,238,.62); text-decoration:none; transition:color .2s ease; }
.activity-detail-back:hover { color:var(--accent); }
.activity-detail-hero { display:grid; grid-template-columns:minmax(0, .88fr) minmax(420px, 1.12fr); gap:4rem; align-items:center; padding:1.2rem 0 4rem; border-bottom:.5px solid rgba(255,255,255,.14); }
.activity-detail-kicker { font-family:var(--font-mono); font-size:.66rem; letter-spacing:.24em; color:var(--accent); text-transform:uppercase; margin-bottom:1rem; }
.activity-detail-title { font-family:var(--font-serif); font-size:clamp(2rem,3.8vw,4.2rem); font-weight:400; line-height:1.22; color:var(--white); margin-bottom:1.5rem; }
.activity-detail-lead { font-size:.96rem; line-height:2.15; color:rgba(245,243,238,.84); max-width:720px; }
.activity-detail-meta { display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.5rem; }
.activity-detail-meta span, .activity-detail-meta time { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.10em; color:rgba(245,243,238,.72); border:.5px solid rgba(255,255,255,.16); padding:.38rem .72rem; background:rgba(255,255,255,.035); }
.activity-detail-meta span { color:var(--accent-lt); border-color:rgba(200,146,42,.45); }
.activity-detail-main-image { position:relative; overflow:hidden; border:.5px solid rgba(255,255,255,.14); background:#071121; box-shadow:0 32px 90px rgba(0,0,0,.30); }
.activity-detail-main-image::before { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(to top, rgba(7,15,31,.74), transparent 48%), linear-gradient(to right, rgba(7,15,31,.22), transparent 38%); }
.activity-detail-main-image img { display:block; width:100%; aspect-ratio:16 / 10; object-fit:cover; filter:brightness(.88) saturate(.92); transition:transform .35s ease, filter .35s ease; }
.activity-detail-main-image:hover img { transform:scale(1.025); filter:brightness(.96) saturate(1); }
.activity-detail-content { display:grid; grid-template-columns:260px minmax(0,1fr); gap:4rem; padding:4rem 0 1rem; }
.activity-detail-side { border-left:2px solid rgba(200,146,42,.65); padding-left:1.2rem; }
.activity-detail-side span { display:block; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.18em; color:var(--accent); text-transform:uppercase; margin-bottom:.75rem; }
.activity-detail-side p { font-size:.84rem; line-height:2; color:rgba(245,243,238,.66); }
.activity-detail-body p { font-size:.95rem; line-height:2.15; color:rgba(245,243,238,.86); margin-bottom:1.2rem; }
.activity-detail-gallery { display:grid; grid-template-columns:1.2fr .8fr; gap:1rem; margin-top:2.4rem; }
.activity-detail-gallery figure { position:relative; overflow:hidden; border:.5px solid rgba(255,255,255,.13); background:#071121; margin:0; }
.activity-detail-gallery figure:first-child { grid-row:span 2; }
.activity-detail-gallery img { width:100%; height:100%; min-height:220px; object-fit:cover; display:block; filter:brightness(.88) saturate(.9); }
.activity-detail-gallery figure:first-child img { min-height:460px; }
.activity-detail-gallery figcaption { position:absolute; left:1rem; bottom:.85rem; font-family:var(--font-mono); font-size:.58rem; letter-spacing:.12em; color:rgba(245,243,238,.70); background:rgba(7,15,31,.58); padding:.35rem .55rem; }
.activity-detail-nav { display:flex; justify-content:space-between; gap:1rem; margin-top:3.2rem; padding-top:1.8rem; border-top:.5px solid rgba(255,255,255,.12); }
.activity-detail-nav a { display:inline-flex; align-items:center; justify-content:center; min-width:180px; padding:.75rem 1.4rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:var(--accent); text-decoration:none; border:.5px solid rgba(200,146,42,.45); transition:background .2s ease, color .2s ease; }
.activity-detail-nav a:hover { background:rgba(200,146,42,.12); color:var(--accent-lt); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .activity-detail-hero, .activity-detail-content { grid-template-columns:1fr; gap:2rem; }
  .activity-detail-gallery { grid-template-columns:1fr; }
  .activity-detail-gallery figure:first-child { grid-row:auto; }
  .activity-detail-gallery figure:first-child img, .activity-detail-gallery img { min-height:260px; }
  .activity-detail-nav { flex-direction:column; }
  .activity-detail-nav a { width:100%; }
}

/* ===== 07. Activities ===== */
.activity-detail-section.activity-detail-simple { background:var(--navy) !important; }
.activity-detail-section.activity-detail-simple .section-inner { max-width:980px !important; }
.activity-simple-back { display:inline-block; margin-bottom:2.4rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:rgba(245,243,238,.58); text-decoration:none; }
.activity-simple-back:hover { color:var(--accent); }
.activity-simple-article { padding-bottom:2rem; }
.activity-simple-meta { display:flex; align-items:center; gap:.8rem; margin-bottom:1.1rem; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.12em; color:rgba(245,243,238,.50); text-transform:uppercase; }
.activity-simple-meta span { color:var(--accent); }
.activity-simple-title { font-family:var(--font-serif); font-size:clamp(2rem, 3.2vw, 3.2rem); font-weight:400; line-height:1.35; color:var(--white); margin-bottom:2rem; }
.activity-simple-main-image { margin:0 0 2rem; border:.5px solid rgba(255,255,255,.14); background:#071121; overflow:hidden; }
.activity-simple-main-image img { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; filter:brightness(.92) saturate(.94); }
.activity-simple-text { max-width:820px; font-size:.96rem; line-height:2.15; color:rgba(245,243,238,.86); margin-bottom:2.4rem; }
.activity-simple-gallery { display:grid; grid-template-columns:repeat(2, 1fr); gap:1rem; margin-bottom:2.6rem; }
.activity-simple-gallery img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; border:.5px solid rgba(255,255,255,.12); filter:brightness(.92) saturate(.92); }
.activity-simple-nav { display:flex; justify-content:space-between; gap:1rem; padding-top:1.5rem; border-top:.5px solid rgba(255,255,255,.12); }
.activity-simple-nav a { font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; color:var(--accent); text-decoration:none; }
.activity-simple-nav a:hover { color:var(--accent-lt); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .activity-simple-gallery { grid-template-columns:1fr; }
  .activity-simple-nav { flex-direction:column; }
}

/* ===== 07. Activities ===== */
.activities-gallery-page { background:radial-gradient(circle at 78% 12%, rgba(126,184,224,.12), transparent 32%), linear-gradient(180deg, #0c1a30 0%, #071121 100%) !important; padding-top:calc(4.5rem + var(--nav-height)) !important; }
.activities-gallery-inner { max-width:1280px !important; }
.activities-hero { position:relative; display:grid; grid-template-columns:.9fr 1.1fr; gap:4rem; align-items:center; min-height:360px; margin-bottom:3.2rem; overflow:hidden; }
.activities-hero-copy { position:relative; z-index:2; }
.activities-hero-copy .section-label { margin-bottom:1.5rem; }
.activities-hero-copy h1 { font-family:var(--font-serif); font-size:clamp(2.5rem,4vw,4.4rem); font-weight:400; line-height:1; color:var(--white); margin-bottom:1.5rem; }
.activities-hero-copy p:not(.section-label) { max-width:520px; font-size:.96rem; line-height:2.1; color:rgba(245,243,238,.86); }
.activities-hero-image { position:relative; height:360px; overflow:hidden; border:.5px solid rgba(255,255,255,.12); background:#071121; }
.activities-hero-image::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to right, rgba(12,26,48,.92), rgba(12,26,48,.28) 46%, rgba(12,26,48,.04)), linear-gradient(to top, rgba(7,15,31,.72), transparent 58%); }
.activities-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center 60%; display:block; filter:brightness(.72) saturate(.88); }
.activities-gallery-year-nav { display:flex !important; gap:.7rem !important; margin:0 0 3.2rem !important; }
.activities-gallery-year-nav a { min-width:100px; text-align:center; padding:.5rem 1rem !important; border:.5px solid rgba(255,255,255,.16) !important; color:rgba(245,243,238,.72) !important; background:rgba(255,255,255,.025) !important; text-decoration:none; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; }
.activities-gallery-year-nav a.active, .activities-gallery-year-nav a:hover { color:var(--white) !important; border-color:rgba(200,146,42,.86) !important; background:rgba(200,146,42,.08) !important; }
.activities-gallery-year-block { padding:0 !important; margin-bottom:4.6rem !important; }
.activities-gallery-year-block .activities-year-heading { display:flex; align-items:baseline; gap:.8rem; margin-bottom:1.4rem; padding-bottom:.8rem; border-bottom:.5px solid rgba(255,255,255,.12); }
.activities-gallery-year-block .activities-year-heading span { font-size:1rem; color:var(--white); font-weight:500; }
.activities-gallery-year-block .activities-year-heading em { font-family:var(--font-mono); font-size:.58rem; letter-spacing:.16em; color:rgba(245,243,238,.34); font-style:normal; text-transform:uppercase; }
.activity-gallery-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1.35rem; }
.activity-gallery-card { position:relative; display:block; min-height:390px; overflow:hidden; border:.5px solid rgba(255,255,255,.13); background:#071121; color:var(--white); text-decoration:none; transition:transform .25s ease, border-color .25s ease, background .25s ease; }
.activity-gallery-card:hover { transform:translateY(-4px); border-color:rgba(200,146,42,.72); background:#0b172b; }
.activity-gallery-image { position:absolute; inset:0; overflow:hidden; }
.activity-gallery-image::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(3,12,28,.92) 0%, rgba(3,12,28,.72) 20%, rgba(3,12,28,0) 45%), linear-gradient(to right, rgba(12,26,48,.18), transparent 100%); }
.activity-gallery-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:brightness(.82) saturate(.88); transition:transform .45s ease, filter .45s ease; }
.activity-gallery-card:hover .activity-gallery-image img { transform:scale(1.04); filter:brightness(.86) saturate(.96); }
.activity-gallery-info { position:absolute; left:1.35rem; right:1.35rem; bottom:1.25rem; z-index:2; }
.activity-gallery-info time { display:block; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.12em; color:var(--accent-lt); margin-bottom:.65rem; }
.activity-gallery-info h3 { font-size:1.05rem; font-weight:600; line-height:1.65; letter-spacing:.02em; color:var(--white); padding-right:2.4rem; }
.activity-gallery-info span { position:absolute; right:0; bottom:.1rem; font-family:var(--font-mono); font-size:1.2rem; color:var(--accent); transition:transform .25s ease, color .25s ease; }
.activity-gallery-card:hover .activity-gallery-info span { transform:translateX(4px); color:var(--accent-lt); }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  .activities-gallery-page { padding-top:calc(3rem + var(--nav-height)) !important; }
  .activities-hero { grid-template-columns:1fr; gap:1.8rem; min-height:auto; }
  .activities-hero-image { height:280px; }
  .activities-gallery-year-nav { flex-wrap:wrap; }
  .activities-gallery-year-nav a { min-width:0; flex:1 1 120px; }
  .activity-gallery-grid { grid-template-columns:1fr; }
  .activity-gallery-card { min-height:330px; }
}

/* ===== 01. Base / Variables ===== */
.page-top { padding-top:calc(7rem + var(--nav-height)) !important; }

/* ===== 07. Activities ===== */
.activities-gallery-page { padding-top:calc(1rem + var(--nav-height)) !important; }
.activities-gallery-inner { max-width:1440px !important; }
.activities-hero { margin-bottom:.2rem !important; min-height:300px !important; align-items:center !important; }
.activities-hero-copy { padding-top:0 !important; }
.activities-hero-copy .section-label { margin-bottom:.8rem !important; }
.activities-hero-copy h1 { margin-bottom:.6rem !important; }
.activities-hero-copy p:not(.section-label) { margin-bottom:0 !important; }
.activities-gallery-year-nav { margin-top:-3rem !important; margin-bottom:1.4rem !important; }
.activities-gallery-year-block { padding-top:0 !important; }
.activities-gallery-year-block .activities-year-heading { margin-bottom:1.4rem !important; margin-top:2rem !important; }
.activities-hero-image { min-height:260px !important; max-height:330px !important; overflow:hidden !important; margin-top:5rem !important; }
.activities-hero-image img { width:100% !important; height:100% !important; object-fit:cover !important; object-position:center 60% !important; filter:brightness(1.05) saturate(.98) contrast(1.02) !important; }
.activities-hero-image::before { content:"" !important; position:absolute !important; inset:0 !important; z-index:1 !important; pointer-events:none !important; background:linear-gradient(to right, #0c1a30 0%, rgba(12,26,48,.78) 18%, rgba(12,26,48,.18) 48%, transparent 78%), linear-gradient(to bottom, rgba(12,26,48,.28), rgba(12,26,48,.68)) !important; }
.activity-gallery-grid { gap:1.35rem !important; }
.activity-gallery-card { min-height:360px !important; }

/* ===== 09. Responsive ===== */
@media (max-width:1000px) {
  /* スマホ：固定ナビ分(nav-height)に加えていた上余白が大きすぎてページ先頭が空きすぎるため縮小 */
  .page-top { padding-top:calc(1rem + var(--nav-height)) !important; }
  .activities-gallery-page { padding-top:calc(2.2rem + var(--nav-height)) !important; }
  .activities-hero { min-height:auto !important; margin-bottom:1.4rem !important; }
  .activities-hero-image { height:260px !important; min-height:260px !important; }
  .activities-gallery-year-nav { margin-top:.8rem !important; margin-bottom:1.8rem !important; }
  .activity-gallery-card { min-height:320px !important; }
}

/* =========================================================
   ACTIVITY DETAIL PAGE 2026-06-04
   Activitiesカードから遷移する詳細ページ用。
   ネイビー×ゴールドの世界観を維持し、写真1枚〜複数枚まで対応。
   対象HTML例：activity-casting-conference.html
   ========================================================= */
.activity-story-page {
  background:
    radial-gradient(circle at 82% 48%, rgba(200,146,42,.12), transparent 28%),
    radial-gradient(circle at 18% 12%, rgba(126,184,224,.10), transparent 30%),
    linear-gradient(180deg, #071121 0%, #0c1a30 46%, #071121 100%);
  color:var(--white);
  padding-top:var(--nav-height);
  overflow:hidden;
}

/* 上部の戻るリンク */
.activity-story-back-wrap {
  max-width:1440px;
  margin:0 auto;
  padding:2rem 2.5rem 0;
}
.activity-story-back {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:rgba(245,243,238,.82);
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  text-decoration:none;
  transition:color .2s ease, transform .2s ease;
}
.activity-story-back:hover {
  color:var(--accent-lt);
  transform:translateX(-3px);
}

/* 大きなメイン写真＋タイトル */
.activity-story-hero {
  position:relative;
  min-height:560px;
  margin:1.4rem auto 0;
  max-width:1440px;
  border-top:.5px solid rgba(255,255,255,.12);
  border-bottom:.5px solid rgba(255,255,255,.12);
  overflow:hidden;
  background:#071121;
}
.activity-story-hero-image {
  position:absolute;
  inset:0;
  margin:0;
}
.activity-story-hero-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:brightness(.72) saturate(.92) contrast(1.02);
}
.activity-story-hero-overlay {
  position:absolute;
  inset:0;
  background:
    linear-gradient(to right, rgba(7,15,31,.95) 0%, rgba(7,15,31,.78) 34%, rgba(7,15,31,.16) 70%, rgba(7,15,31,.25) 100%),
    linear-gradient(to top, rgba(7,15,31,.88) 0%, transparent 52%);
  z-index:1;
}
.activity-story-hero-text {
  position:relative;
  z-index:2;
  min-height:560px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  max-width:1440px;
  margin:0 auto;
  padding:0 4rem 4.4rem;
}
.activity-story-hero-text time {
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.16em;
  color:var(--accent-lt);
  margin-bottom:1.2rem;
}
.activity-story-hero-text h1 {
  max-width:820px;
  font-family:var(--font-serif);
  font-size:clamp(2.25rem, 4.4vw, 4.6rem);
  font-weight:400;
  line-height:1.22;
  color:var(--white);
  margin-bottom:1.6rem;
}
.activity-story-tags {
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
}
.activity-story-tags span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:88px;
  padding:.45rem .85rem;
  border:.5px solid rgba(255,255,255,.22);
  color:rgba(245,243,238,.82);
  font-size:.72rem;
  letter-spacing:.06em;
  background:rgba(12,26,48,.48);
}

/* 共通セクション */
.activity-story-section {
  padding:4.8rem 2.5rem 0;
}
.activity-story-inner {
  max-width:1280px;
  margin:0 auto;
}
.activity-story-summary .activity-story-inner {
  display:grid;
  grid-template-columns:280px minmax(0, 1fr);
  gap:4rem;
  align-items:start;
}
.activity-story-heading span {
  display:block;
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.2em;
  color:var(--accent);
  text-transform:uppercase;
  margin-bottom:.7rem;
}
.activity-story-heading h2 {
  position:relative;
  font-family:var(--font-serif);
  font-size:1.7rem;
  font-weight:400;
  color:var(--white);
  line-height:1.35;
  padding-bottom:.9rem;
}
.activity-story-heading h2::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:42px;
  height:1px;
  background:var(--accent);
}
.activity-story-body {
  max-width:760px;
  color:rgba(245,243,238,.86);
  font-size:.95rem;
  line-height:2.2;
}
.activity-story-body p + p {
  margin-top:.85rem;
}

/* 写真ギャラリー：1枚でも複数枚でも成立する可変グリッド */
.activity-story-gallery-section {
  padding-top:4.5rem;
}
.activity-story-gallery-section .activity-story-heading {
  margin-bottom:1.8rem;
}
.activity-story-gallery {
  display:grid;
  grid-template-columns:1.15fr .8fr .8fr;
  grid-auto-flow:dense;
  gap:1rem;
}
.activity-story-gallery figure {
  position:relative;
  margin:0;
  min-height:250px;
  overflow:hidden;
  border:.5px solid rgba(255,255,255,.13);
  background:#071121;
}
.activity-story-gallery figure.is-large {
  grid-row:span 2;
  min-height:520px;
}
.activity-story-gallery img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:brightness(.86) saturate(.9);
  transition:transform .35s ease, filter .35s ease;
}
.activity-story-gallery figure:hover img {
  transform:scale(1.035);
  filter:brightness(.98) saturate(1);
}

/* 写真が多い場合のボタン。不要ならHTML側で削除OK */
.activity-story-photo-link {
  width:min(420px, 100%);
  min-height:64px;
  margin:2.4rem auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.9rem;
  color:var(--white);
  border:.5px solid rgba(200,146,42,.58);
  background:rgba(200,146,42,.045);
  text-decoration:none;
  font-size:.86rem;
  letter-spacing:.04em;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.activity-story-photo-link span,
.activity-story-photo-link em {
  color:var(--accent);
  font-style:normal;
  font-family:var(--font-mono);
}
.activity-story-photo-link:hover {
  background:rgba(200,146,42,.13);
  border-color:var(--accent-lt);
  transform:translateY(-2px);
}

/* 下部：前の記事・一覧に戻る・次の記事 */
.activity-story-bottom-nav {
  max-width:900px;
  margin:4.6rem auto 4rem;
  display:grid;
  grid-template-columns:1fr 120px 1fr;
  border:.5px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.025);
}
.activity-story-nav-item {
  min-height:138px;
  padding:1.6rem 2rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:var(--white);
  text-decoration:none;
  border-right:.5px solid rgba(255,255,255,.13);
  transition:background .2s ease, color .2s ease;
}

/* 下部ナビを3つの独立カードにする */
.activity-story-bottom-nav {
  max-width:900px !important;
  margin:4.6rem auto 4rem !important;
  padding:0 2.5rem !important;
  display:grid !important;
  grid-template-columns:1fr 110px 1fr !important;
  gap:1.2rem !important;
  border:none !important;
  background:transparent !important;
}

.activity-story-nav-item {
  grid-column:1 !important;
  min-height:92px !important;
  padding:1rem 1.4rem !important;
  border:.5px solid rgba(255,255,255,.14) !important;
  background:rgba(255,255,255,.025) !important;
}

.activity-story-nav-item.list {
  grid-column:2 !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  padding:1rem .7rem !important;
}
.activity-story-nav-item.list strong {
  font-size:.8rem;
}

.activity-story-nav-item.next {
  grid-column:3 !important;
  text-align:left !important;
}

.activity-story-nav-item:last-child {
  border-right:0;
}
.activity-story-nav-item span {
  display:block;
  margin-bottom:.5rem;
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.25em;
  color:rgba(245,243,238,.62);
  opacity:.75;
}
.activity-story-nav-item strong {
  font-size:.88rem;
  line-height:1.5;
  font-weight:500;
}
.activity-story-nav-item.list {
  align-items:center;
  text-align:center;
}
.activity-story-nav-item.list .grid-icon {
  font-size:.92rem;
  line-height:.72;
  color:var(--white);
  letter-spacing:.1em;
}
.activity-story-nav-item.next {
  text-align:left;
  align-items:flex-start;
}
.activity-story-nav-item:hover {
  background:rgba(200,146,42,.10);
  color:var(--accent-lt);
}

/* 詳細ページ：スマホ調整 */
@media (max-width:1000px) {
  .activity-story-back-wrap { padding:1.4rem 1.5rem 0; }
  .activity-story-hero { min-height:520px; margin-top:1rem; }
  .activity-story-hero-text { min-height:520px; padding:0 1.5rem 3rem; }
  .activity-story-hero-overlay { background:linear-gradient(to top, rgba(7,15,31,.94) 0%, rgba(7,15,31,.52) 58%, rgba(7,15,31,.32) 100%); }
  .activity-story-section { padding:3.8rem 1.5rem 0; }
  .activity-story-summary .activity-story-inner { grid-template-columns:1fr; gap:1.6rem; }
  .activity-story-gallery { grid-template-columns:1fr; }
  .activity-story-gallery figure,
  .activity-story-gallery figure.is-large { min-height:260px; grid-row:auto; }
  /* 下部ナビの縦積みは680px以下（スマホ）でのみ行う。別ブロックで定義 */
}

/* 下部ナビ：680px以下（スマホ）のときだけ1列縦積みにする。
   これより広い幅（タブレット〜狭めたPC窓）では横3列（左空き／中央=一覧／右=記事）を維持 */
/* 中間幅（〜760px）：横3列を保ったまま、中央列・サムネイル・文字を縮めて窮屈さを防ぐ */
@media (max-width:760px) {
  .activity-story-bottom-nav { grid-template-columns:1fr 76px 1fr !important; gap:.6rem !important; padding:0 1.2rem !important; }
  .activity-story-nav-item { padding:.8rem .9rem !important; min-height:84px !important; }
  .activity-story-nav-item.list { padding:.8rem .4rem !important; }
  .activity-story-nav-item.list .grid-icon { font-size:.78rem !important; }
  .activity-story-nav-item.list strong { font-size:.72rem !important; }
  .activity-story-nav-item span { font-size:.54rem !important; letter-spacing:.12em !important; margin-bottom:.35rem !important; }
  .activity-story-nav-item strong { font-size:.76rem !important; line-height:1.45 !important; }
  .actd-nav-item-inner { gap:.55rem !important; }
  .actd-nav-thumb { width:50px !important; height:38px !important; }
}

/* 本物のスマホ（480px以下）でのみ1列の縦積みにする */
@media (max-width:480px) {
  .activity-story-bottom-nav { grid-template-columns:1fr !important; margin:3.2rem 1.5rem 3rem !important; padding:0 !important; gap:0 !important; }
  .activity-story-nav-item, .activity-story-nav-item.list, .activity-story-nav-item.next { grid-column:auto !important; }
  .activity-story-nav-item { min-height:112px !important; border-right:0 !important; border-bottom:.5px solid rgba(255,255,255,.13) !important; text-align:left !important; align-items:flex-start !important; }
  .activity-story-nav-item:last-child { border-bottom:0 !important; }
  .activity-story-nav-item.list { align-items:center !important; text-align:center !important; }
  .activity-story-nav-item span { font-size:.62rem !important; }
  .activity-story-nav-item strong { font-size:.88rem !important; }
  .actd-nav-thumb { width:72px !important; height:51px !important; }
  /* 記事カード内：サムネイルと文字を横並びにして、文字が縦折れしないようにする */
  .actd-nav-item-inner { flex-direction:row !important; align-items:center !important; gap:.9rem !important; }
  .activity-story-nav-item.next .actd-nav-item-inner { flex-direction:row !important; }
}

/* ═══════════════════════════════════════
   Activity Detail Mag - 詳細ページ専用
   ═══════════════════════════════════════ */
.activity-detail-mag-page { background:var(--navy); min-height:100vh; }
.activity-detail-mag-inner { max-width:920px; margin:0 auto; padding:0 2.5rem; }
.activity-detail-mag-back { display:block; font-family:var(--font-mono); font-size:.82rem; letter-spacing:.16em; color:rgba(200,146,42,.82); text-decoration:none; padding:.4rem 0 1.8rem; transition:color .2s; }
.activity-detail-mag-back:hover { color:var(--accent); }
.activity-detail-mag-meta { display:flex; align-items:center; gap:.8rem; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.12em; margin-bottom:1.2rem; }
.activity-detail-mag-meta time { color:var(--accent); }
.activity-detail-mag-meta span { color:rgba(245,243,238,.82); border:.5px solid rgba(200,146,42,.45); padding:.3rem .85rem; }
.activity-detail-mag-title { font-family:var(--font-serif); font-size:clamp(2.2rem,4vw,3.4rem); font-weight:400; line-height:1.3; color:var(--white); margin-bottom:1rem; }
.activity-detail-mag-title-line { width:2.5rem; height:2px; background:var(--accent); margin-bottom:1.8rem; }
.activity-detail-mag-lead { font-size:.94rem; line-height:2.05; color:rgba(245,243,238,.76); margin-bottom:2.6rem; }
.activity-detail-mag-mainimg { margin-bottom:3.5rem; border:.5px solid rgba(255,255,255,.1); background:#071121; overflow:hidden; }
.activity-detail-mag-mainimg img { display:block; width:100%; height:auto; filter:brightness(.9) saturate(.94); }
.activity-detail-mag-overview { display:grid; grid-template-columns:1fr 220px; gap:3.5rem; align-items:start; margin-bottom:3.5rem; }
.activity-detail-mag-section-label { font-family:var(--font-mono); font-size:.75rem; letter-spacing:.26em; color:var(--accent); margin-bottom:.65rem; }
.activity-detail-mag-section-line { width:2rem; height:1.5px; background:var(--accent); margin-bottom:1.5rem; }
.activity-detail-mag-overview-text { font-size:.94rem; line-height:2.15; color:rgba(245,243,238,.84); }
.activity-detail-mag-overview-text p { margin-bottom:.7rem; }
.activity-detail-mag-info-list { list-style:none; padding:0; margin:0; }
.activity-detail-mag-info-item { display:flex; align-items:flex-start; gap:1rem; padding:1rem 0; border-bottom:.5px solid rgba(255,255,255,.1); font-size:.84rem; line-height:1.7; color:rgba(245,243,238,.78); }
.activity-detail-mag-info-item:first-child { border-top:.5px solid rgba(255,255,255,.1); }
.activity-detail-mag-info-icon { flex-shrink:0; margin-top:.15rem; color:rgba(200,146,42,.72); }
.activity-detail-mag-gallery { margin-bottom:1.5rem; }
.activity-detail-mag-gallery-row1 { margin-bottom:.6rem; }
.activity-detail-mag-gallery-row1 figure { margin:0; overflow:hidden; border:.5px solid rgba(255,255,255,.08); background:#071121; }
.activity-detail-mag-gallery-row1 img { display:block; width:100%; height:auto; filter:brightness(.88) saturate(.9); transition:transform .4s ease,filter .4s ease; }
.activity-detail-mag-gallery-row1 figure:hover img { transform:scale(1.02); filter:brightness(.98) saturate(1); }
.activity-detail-mag-gallery-row2 { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
.activity-detail-mag-gallery-row2 figure { margin:0; overflow:hidden; border:.5px solid rgba(255,255,255,.08); background:#071121; }
.activity-detail-mag-gallery-row2 img { display:block; width:100%; height:200px; object-fit:cover; filter:brightness(.88) saturate(.9); transition:transform .4s ease,filter .4s ease; }
.activity-detail-mag-gallery-row2 figure:hover img { transform:scale(1.03); filter:brightness(.98) saturate(1); }
.activity-detail-mag-more-wrap { display:flex; justify-content:center; margin:1.8rem 0 3.5rem; }
.activity-detail-mag-more-btn { display:flex; align-items:center; gap:.8rem; padding:.9rem 2.8rem; border:.5px solid rgba(200,146,42,.45); color:rgba(245,243,238,.68); font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-decoration:none; background:transparent; transition:all .22s; }
.activity-detail-mag-more-btn:hover { border-color:var(--accent); color:var(--accent); background:rgba(200,146,42,.05); }

/* 下部ナビの幅を本文と揃える（既存の1440pxを上書き） */
.activity-detail-mag-page .activity-story-bottom-nav {
  max-width:920px !important;
  padding:0 2.5rem;
  margin-top:0;
  margin-bottom:4rem;
}

@media (max-width:900px) {
  .activity-detail-mag-inner { padding:0 1.5rem; }
  .activity-detail-mag-overview { grid-template-columns:1fr; gap:2rem; }
  .activity-detail-mag-gallery-row2 { grid-template-columns:1fr 1fr; }
  .activity-detail-mag-page .activity-story-bottom-nav { padding:0 1.5rem; }
}
@media (max-width:600px) {
  .activity-detail-mag-gallery-row2 { grid-template-columns:1fr; }
}

/* 詳細ページのpage-top余白を詰める */
.activity-detail-mag-page.page-top {
  padding-top: calc(2rem + var(--nav-height)) !important;
}
@media (max-width:1000px) {
  .activity-detail-mag-page.page-top {
    padding-top: calc(1.5rem + var(--nav-height)) !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   11. Activity Detail (actd) — Activities詳細ページ共通スタイル
   ═══════════════════════════════════════════════════════════ */

.actd-page { background: var(--navy); min-height: 100vh; }
.actd-page.page-top { padding-top: calc(1.5rem + var(--nav-height)) !important; }

.actd-back-wrap { max-width: 900px; margin: 0 auto; padding: 2rem 2.5rem 0; }
.actd-back { display: block; font-family: var(--font-mono); font-size: .84rem; letter-spacing: .12em; color: var(--accent); text-decoration: none; padding-top: 0.5rem; padding-bottom: 2rem; transition: color .2s; }
.actd-back:hover { color: var(--accent-lt); }

.actd-header { max-width: 900px; margin: 0 auto; padding: 0 2.5rem 2rem; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: start; }
.actd-meta { display: flex; align-items: center; gap: .8rem; font-family: var(--font-mono); font-size: .64rem; letter-spacing: .12em; margin-bottom: 1rem; }
.actd-meta time { color: var(--accent); }
.actd-meta span { color: rgba(245,243,238,.82); border: .5px solid rgba(200,146,42,.5); padding: .3rem .8rem; }
.actd-title { font-family: var(--font-serif); font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; line-height: 1.35; color: var(--white); margin-bottom: 1rem; }
.actd-title-underline { width: 2.5rem; height: 2px; background: var(--accent); margin-bottom: 1.6rem; }
.actd-lead { font-size: .92rem; line-height: 2; color: rgba(245,243,238,.78); }
.actd-deco { opacity: .22; flex-shrink: 0; padding-top: .5rem; }

.actd-main-image { max-width: 900px; margin: 0 auto 3rem; padding: 0 2.5rem; }
.actd-main-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: brightness(.88) saturate(.92); border: .5px solid rgba(255,255,255,.1); }

.actd-overview { max-width: 900px; margin: 0 auto 3rem; padding: 0 2.5rem; display: grid; grid-template-columns: 1fr 240px; gap: 3rem; align-items: start; }
.actd-overview-label { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .22em; color: var(--accent); margin-bottom: .7rem; }
.actd-overview-line { width: 2rem; height: 1.5px; background: var(--accent); margin-bottom: 1.4rem; }
.actd-overview-text { font-size: .94rem; line-height: 2.1; color: rgba(245,243,238,.82); }
.actd-overview-text p { margin-bottom: .6rem; }

.actd-info-list { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.actd-info-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1rem 0; border-bottom: .5px solid rgba(255,255,255,.1); font-size: .84rem; line-height: 1.7; color: rgba(245,243,238,.78); }
.actd-info-item:first-child { border-top: .5px solid rgba(255,255,255,.1); }
.actd-info-icon { flex-shrink: 0; margin-top: .1rem; color: rgba(200,146,42,.7); }

.actd-gallery { max-width: 900px; margin: 0 auto 1.5rem; padding: 0 2.5rem; }
.actd-gallery-label { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .22em; color: var(--accent); margin-bottom: .7rem; }
.actd-gallery-line { width: 2rem; height: 1.5px; background: var(--accent); margin-bottom: 1.4rem; }

/* ── ギャラリーグリッド（2列・横長基準） ──────────────────
   全ページ共通・1種類のギャラリーです。写真を必要な枚数だけ
   <figure> で並べます（通常2〜3枚）。
     ・通常の横長写真（4:3）：<figure> のみ
       → PCでは2列で大きく並びます（3枚なら2列＋次の行に左寄せ1枚）
     ・縦長写真（3:4）　　　：<figure class="is-portrait"> を付ける
   画像をクリックすると拡大表示されます（ライトボックスは main.js）。
   ───────────────────────────────────────────────────────── */
.actd-gallery-masonry {
  display: grid;
  grid-template-columns: repeat(2, 1fr);   /* 2列基準：写真2〜3枚を大きく見せる */
  grid-auto-rows: auto;
  gap: .7rem;
}
.actd-gallery-masonry figure {
  margin: 0;
  aspect-ratio: 4 / 3;          /* 横長写真は4:3で表示 */
  overflow: hidden;
  background: #071121;
  border: .5px solid rgba(255,255,255,.10);
}
.actd-gallery-masonry figure.is-portrait {
  aspect-ratio: 3 / 4;          /* 縦長写真は3:4で表示 */
}
.actd-gallery-masonry img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  filter: brightness(.88) saturate(.9);
  transition: transform .4s ease, filter .4s ease;
}
.actd-gallery-masonry figure:hover img {
  transform: scale(1.04);
  filter: brightness(.98) saturate(1);   /* ホバーで少しだけ明るく・拡大 */
}

/* ── レスポンシブ ── */
/* スマホ：1列 */
@media (max-width: 600px) {
  .actd-gallery-masonry { grid-template-columns: 1fr; }
}



/* ── 前後ナビ ── */
.activity-story-bottom-nav { max-width: 900px !important; margin-left: auto !important; margin-right: auto !important; padding: 0 2.5rem !important; }
.actd-page .activity-story-bottom-nav .activity-story-nav-item span { color: var(--accent) !important; }
.actd-page .activity-story-nav-item { transform: none !important; transition: background .2s ease !important; }
.actd-page .activity-story-nav-item:hover { transform: none !important; background: rgba(200,146,42,.10) !important; }

.actd-nav-item-inner { display: flex; align-items: center; gap: .9rem; width: 100%; }
.actd-nav-item-inner > div:not(.actd-nav-thumb) { flex: 1 1 auto; min-width: 0; }
.activity-story-nav-item.next .actd-nav-item-inner { flex-direction: row-reverse; }
.actd-nav-thumb { width: 72px; height: 51px; overflow: hidden; flex-shrink: 0; border: .5px solid rgba(255,255,255,.22); border-radius: 2px; opacity: .9; transition: opacity .25s ease; }
.activity-story-nav-item:hover .actd-nav-thumb { opacity: 1; }
.actd-nav-thumb img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.95); transition: transform .3s ease; }
.activity-story-nav-item:hover .actd-nav-thumb img { transform: scale(1.05); filter: brightness(.9); }

/* ── レスポンシブ ── */
@media (max-width: 900px) {
  /* スマホ：ヘッダーと「一覧に戻る」の間の空きが大きすぎるため、上部の余白を詰める */
  .actd-page.page-top { padding-top: var(--nav-height) !important; }
  .actd-back-wrap { padding-top: 0 !important; }
  .actd-back { padding-top: 0 !important; padding-bottom: 0.4rem !important; }
  .actd-back-wrap, .actd-header, .actd-main-image, .actd-overview, .actd-gallery { padding-left: 1.5rem; padding-right: 1.5rem; }
  .actd-header { grid-template-columns: 1fr; }
  .actd-deco { display: none; }
  .actd-overview { grid-template-columns: 1fr; gap: 2rem; }
  .actd-info-list { margin-top: 0; }
  .activity-story-bottom-nav { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
}

/* ═══════════════════════════════════════════════════════════
   NEWS ARCHIVE PAGE  （news.html お知らせ一覧ページ専用）
   ・年別アーカイブのレイアウトのみ追加。
   ・各エントリーは既存の .news-entry / .news-date / .news-tag /
     .tag-* / .news-text を流用しているため配色・余白は共通。
   ═══════════════════════════════════════════════════════════ */
.news-archive-inner { max-width: 900px; margin: 0 auto; padding: 0 2.5rem 1rem; }

.news-archive-back-wrap { margin-bottom: 1.8rem; }
.news-archive-back { font-family: var(--font-mono); font-size: .7rem; letter-spacing: .08em; color: var(--accent); text-decoration: none; transition: color .2s ease; }
.news-archive-back:hover { color: var(--accent-lt); }

.news-archive-title { font-family: var(--font-serif); font-size: 2.2rem; font-weight: 400; color: var(--white); margin-top: .4rem; line-height: 1.3; }
.news-archive-title-line { width: 2rem; height: 1.5px; background: var(--accent); margin: 1rem 0 2.8rem; }

.news-archive-year-group { margin-bottom: 2.6rem; }
.news-archive-year { display: flex; align-items: center; gap: 1.2rem; margin-bottom: .3rem; }
.news-archive-year span { font-family: var(--font-mono); font-size: 1.5rem; letter-spacing: .05em; color: var(--accent-lt); }
.news-archive-year::after { content: ""; flex: 1; height: .5px; background: rgba(200,146,42,.38); }

.news-archive-list { list-style: none; padding: 0; margin: 0; }
.news-archive-list .news-entry { gap: 1.7rem !important; }

/* リンク付きエントリー（詳細ページがあるお知らせ）。行全体をクリック可能に */
.news-archive-list .news-entry-link { display: flex; gap: 1.7rem; align-items: baseline; width: 100%; text-decoration: none; color: inherit; transition: opacity .2s ease; }
.news-archive-list .news-entry-link:hover { opacity: .82; }
.news-archive-list .news-entry-link .news-text > span:last-child { transition: color .2s ease; }
.news-archive-list .news-entry-link:hover .news-text > span:last-child { color: var(--accent-lt); }

@media (max-width: 600px) {
  .news-archive-inner { padding-left: 1.5rem; padding-right: 1.5rem; }
  .news-archive-title { font-size: 1.7rem; }
  .news-archive-title-line { margin-bottom: 2rem; }
  .news-archive-year span { font-size: 1.25rem; }
  .news-archive-year-group { margin-bottom: 2rem; }
  .news-archive-list .news-entry-link { gap: 1.2rem; }
}

/* ═══════════════════════════════════════════════════════════
   HOME NEWS — エントリー全体を記事リンク化（index.html）
   ・既存の .news-entry レイアウトは変更せず、内側を <a> で包む
     形に対応するためのスタイルのみ追加。
   ═══════════════════════════════════════════════════════════ */
.news-mixed-list .news-entry-link { display: flex; gap: 1.7rem; align-items: baseline; width: 100%; text-decoration: none; color: inherit; transition: opacity .2s ease; }
.news-mixed-list .news-entry-link:hover { opacity: .82; }
.news-mixed-list .news-entry-link .news-text > span:last-child { transition: color .2s ease; }
.news-mixed-list .news-entry-link:hover .news-text > span:last-child { color: var(--accent-lt); }

@media (max-width: 600px) {
  .news-mixed-list .news-entry-link { gap: 1.2rem; }
}

/* ═══════════════════════════════════════════════════════════
   NEWS DETAIL PAGE — 写真2枚横並び（news詳細ページ用）
   ・メイン画像と同じ幅・余白。PCは2列、スマホは1列に。
   ═══════════════════════════════════════════════════════════ */
.news-photo-pair { max-width: 900px; margin: 0 auto 3rem; padding: 0 2.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.news-photo-pair figure { margin: 0; overflow: hidden; }
.news-photo-pair img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: brightness(.88) saturate(.92); border: .5px solid rgba(255,255,255,.1); }

@media (max-width: 600px) {
  .news-photo-pair { grid-template-columns: 1fr; padding-left: 1.5rem; padding-right: 1.5rem; }
}

/* about ページ：ホーム共通CTA（.yl-btn-ghost）使用時の上余白
   （上の画像・本文とくっつかないように） */
.about-left .yl-btn-ghost { margin-top: 2.6rem; }

/* about: メッセージパネル（研究室の雰囲気を…）を1行分ほど上に詰める */
.about-redesign .about-redesign-message-panel { margin-top: -2.4rem !important; }

/* ═══════════════════════════════════════════════════════════
   NEWS ARCHIVE PAGE — リンク付きエントリー（news.html）
   ═══════════════════════════════════════════════════════════ */
.news-archive-list .news-entry-link { display: flex; gap: 1.7rem; align-items: baseline; width: 100%; text-decoration: none; color: inherit; transition: opacity .2s ease; }
.news-archive-list .news-entry-link:hover { opacity: .82; }
.news-archive-list .news-entry-link .news-text > span:last-child { transition: color .2s ease; }
.news-archive-list .news-entry-link:hover .news-text > span:last-child { color: var(--accent-lt); }

/* ═══════════════════════════════════════════════════════════
   HOME NEWS — エントリー全体を記事リンク化（index.html）
   ═══════════════════════════════════════════════════════════ */
.news-mixed-list .news-entry-link { display: flex; gap: 1.7rem; align-items: baseline; width: 100%; text-decoration: none; color: inherit; transition: opacity .2s ease; }
.news-mixed-list .news-entry-link:hover { opacity: .82; }
.news-mixed-list .news-entry-link .news-text > span:last-child { transition: color .2s ease; }
.news-mixed-list .news-entry-link:hover .news-text > span:last-child { color: var(--accent-lt); }

@media (max-width: 600px) {
  .news-mixed-list .news-entry-link { gap: 1.2rem; }
  .news-archive-list .news-entry-link { gap: 1.2rem; }
}

/* ═══════════════════════════════════════════════════════════
   COMING SOON バナー（準備中ページ用）
   ═══════════════════════════════════════════════════════════ */
.wip-banner { max-width: 900px; margin: calc(var(--nav-height) + 2rem) auto 3rem; padding: 1.8rem 2.5rem; border: .5px solid rgba(200,146,42,.5); background: linear-gradient(135deg, rgba(200,146,42,.08), rgba(12,26,48,.6)); display: flex; flex-direction: column; gap: .8rem; }
.wip-banner .wip-label { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .22em; color: var(--accent); }
.wip-banner p { font-size: .92rem; color: rgba(245,243,238,.75); line-height: 1.7; margin: 0; }
.wip-banner a { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .08em; color: var(--accent); text-decoration: none; transition: color .2s; }
.wip-banner a:hover { color: var(--accent-lt); }

@media (max-width: 600px) {
  .wip-banner { margin: 2rem 1.5rem 0; padding: 1.3rem 1.4rem; }
}

/* ═══════════════════════════════════════════════════════════
   メンバー：メールアドレス表示（教授・准教授）
   member-sub-name の直下に mailto リンクとして表示
   2026 追記
   ═══════════════════════════════════════════════════════════ */
.member-email {
  display: block;
  margin-top: .25rem;
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .04em;
  color: var(--accent);
  text-decoration: none;
  transition: color .2s ease;
}
.member-email:hover {
  color: var(--accent-lt);
  text-decoration: underline;
}

/* ═══════════════════════════════════════════════════════════
   アクセス：代表電話
   住所ブロックの下に access-line 形式で表示
   2026 追記
   ═══════════════════════════════════════════════════════════ */
.access-tel-label {
  font-family: var(--font-mono);
  font-size: .62rem;
  letter-spacing: .08em;
  color: rgba(245,243,238,.5);
}
.access-tel {
  display: inline-block;
  margin-top: .15rem;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  letter-spacing: .04em;
  color: var(--white);
  text-decoration: none;
  transition: color .2s ease;
}
.access-tel:hover {
  color: var(--accent-lt);
}

/* ═══════════════════════════════════════════════════════════
   ギャラリー画像クリックで拡大表示（ライトボックス・全ページ共通）
   動作は main.js が担当。表示用の <div> は main.js が自動生成。
   画像クリック / Esc で閉じる。
   2026 追記
   ═══════════════════════════════════════════════════════════ */
.actd-gallery-masonry img { cursor: zoom-in; }

.img-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3vh 3vw;
  background: rgba(7, 17, 33, 0.92);
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
  cursor: zoom-out;
}
.img-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}
.img-lightbox-img {
  max-width: 80%;
  max-height: 80vh;
  object-fit: contain;
  border: .5px solid rgba(255,255,255,.18);
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  transform: scale(.96);
  transition: transform .28s ease;
}
.img-lightbox.is-open .img-lightbox-img {
  transform: scale(1);
}
@media (max-width: 600px) {
  .img-lightbox-img { max-width: 94%; max-height: 84vh; }
}

/* ── ライトボックス：閉じる×ボタン（全ページ共通） ──
   main.js が自動生成。右上に配置。クリックで閉じる。 */
.img-lightbox-close {
  position: fixed;
  top: 2.2vh;
  right: 2.4vw;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  line-height: 1;
  color: var(--white);
  background: rgba(255,255,255,.08);
  border: .5px solid rgba(255,255,255,.25);
  border-radius: 50%;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.img-lightbox-close:hover {
  background: var(--accent);
  color: var(--navy);
  transform: rotate(90deg);
}
@media (max-width: 600px) {
  .img-lightbox-close { width: 40px; height: 40px; font-size: 1.7rem; top: 1.4vh; right: 4vw; }
}
