        /* ==========================================================================
           デザイントークン (Design Tokens) - 看護の優しさと安心感を表現
           ========================================================================== */
        :root {
            /* Colors - Brand */
            --color-brand-primary: #cce6ff; /* 水色 */
            --color-brand-secondary: #ffcdcd; /* ピンク */
            --color-brand-tertiary: #e0f8fb; /* 淡い水色 */
            --color-brand-quaternary: #fdfdfd;
            --color-brand-accent: #4f7396; /* 差し色: 深いブルーグレーで引き締める */

            /* Colors - Mono */
            --color-mono-primary: #4a4545; /* ウォームグレー */
            --color-mono-secondary: #7a7373; /* ミディアムグレー */
            --color-mono-tertiary: #d1cbcb;
            --color-mono-quaternary: #f4f1f1;
            --color-mono-quinary: #fdfcfc;
            --color-white: #ffffff;
            --color-black: #000000;
            --color-footer-bg: #1c3177;

            /* Typography */
            --font-family-ja: 'Noto Sans JP', sans-serif;
            --font-family-en: 'Hind', sans-serif;

            /* Spacing & Sizes */
            --spacing-xs: 8px;
            --spacing-s: 16px;
            --spacing-m: 24px;
            --spacing-l: 32px;
            --spacing-xl: 48px;
            --spacing-xxl: 64px;
            
            /* Border Radius (優しさの表現) */
            --border-radius-s: 12px;
            --border-radius-m: 24px;
            --border-radius-l: 40px;
            --border-radius-pill: 100px;
            
            /* Elevation (Shadows) */
            --elevation-1: 0 8px 24px rgba(79, 115, 150, 0.06);
            --elevation-2: 0 16px 40px rgba(79, 115, 150, 0.08);
            --elevation-3: 0 24px 56px rgba(79, 115, 150, 0.12);

            /* Animations */
            --transition-base: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
            
            /* Breakpoints */
            --bp-md: 768px;
            --bp-lg: 1024px;
        }

        /* ==========================================================================
           ベーススタイル (Base)
           ========================================================================== */
        *, *::before, *::after {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        /* ベースの文字サイズを18pxに引き上げ、全体を比例して拡大（視認性向上） */
        html {
            font-size: 18px;
            overflow-x: hidden;
            max-width: 100%;
        }

        body {
            font-family: var(--font-family-ja);
            color: var(--color-mono-primary);
            line-height: 1.8;
            letter-spacing: 0.02em;
            background-color: transparent;
            font-feature-settings: "palt" 1;
            overflow-x: hidden;
            max-width: 100%;
        }

        main {
            overflow-x: hidden;
            max-width: 100%;
        }

        .en-text {
            font-family: var(--font-family-en);
            font-size: 1.06em;
            font-feature-settings: normal;
        }

        a {
            color: var(--color-brand-accent);
            text-decoration: none;
            transition: var(--transition-base);
        }

        a:hover {
            color: #d198a6;
            opacity: 0.8;
        }

        img {
            max-width: 100%;
            height: auto;
            vertical-align: bottom;
        }

        ul, ol {
            list-style: none;
        }

        /* --- 優しい背景 (オーブ) --- */
        .c-bg-orbs {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            z-index: -2; background-color: var(--color-white); overflow: hidden; pointer-events: none;
        }
        .c-bg-orb {
            position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.6;
            animation: floatOrb 25s infinite alternate ease-in-out;
        }
        .c-bg-orb--1 { top: -10%; left: -10%; width: 55vw; height: 55vw; background-color: var(--color-brand-primary); }
        .c-bg-orb--2 { bottom: 5%; right: -10%; width: 65vw; height: 65vw; background-color: var(--color-brand-secondary); animation-delay: -5s; animation-duration: 30s; }
        .c-bg-orb--3 { top: 40%; left: 25%; width: 45vw; height: 45vw; background-color: var(--color-brand-tertiary); animation-delay: -10s; animation-duration: 20s; }
        .c-bg-orbs::after {
            content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.7);
        }
        @supports (backdrop-filter: blur(40px)) {
            .c-bg-orbs::after { background-color: rgba(255, 255, 255, 0.3); backdrop-filter: blur(40px); -webkit-backdrop-filter: blur(40px); }
        }
        @keyframes floatOrb {
            0% { transform: translate(0, 0) scale(1); }
            50% { transform: translate(4%, 8%) scale(1.05); }
            100% { transform: translate(-4%, -4%) scale(0.95); }
        }

        /* ==========================================================================
           レイアウト (Layout)
           ========================================================================== */
        .l-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-m); }
        .l-section { padding: calc(var(--spacing-xxl) * 1.5) 0; position: relative; }
        .l-section--bg-light { background-color: rgba(253, 252, 252, 0.3); }

        .l-section__header { margin-bottom: var(--spacing-xl); text-align: center; position: relative; }
        .l-section__subtitle { font-family: var(--font-family-en); font-size: 1.15rem; color: var(--color-brand-accent); text-transform: uppercase; letter-spacing: 0.15em; display: block; margin-bottom: var(--spacing-xs); font-weight: 700; }
        .l-section__title { font-size: 2.5rem; font-weight: 700; color: var(--color-mono-primary); letter-spacing: 0.08em; position: relative; display: inline-block; padding-bottom: var(--spacing-m); }

        /* --- セクションタイトル (TOPページは縦ラインなし) --- */
        .c-heading2 { font-size: 2.25rem; font-weight: 700; color: var(--color-mono-primary); margin-bottom: var(--spacing-l); letter-spacing: 0.06em; position: relative; display: inline-flex; align-items: center; gap: 16px; }

        /* ==========================================================================
           セマンティックコンポーネント (Semantic Components)
           ========================================================================== */
        
        /* --- グローバルヘッダー --- */
        .c-globalHeader {
            position: sticky; top: 0; background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px); box-shadow: 0 4px 20px rgba(79, 115, 150, 0.05); z-index: 100; transition: var(--transition-base);
        }
        .c-globalHeader__inner { display: flex; justify-content: space-between; align-items: center; height: 80px; padding: 0 2vw; max-width: 1800px; margin: 0 auto; }
        /* 大学ロゴ＋分野名
         * 0.95A：クリアスペース。A は図版の定義（多くは S マークの幅、または「SCIENCE TOKYO」行の高さ）。横の隙間は「0.95×A 以上」。
         *   本サイトでは gap = 0.95 × (ロゴ画像高さ × 0.38) で A を近似（0.38 は行高の目安比）。
         * 併記の高さ B：右の2行の合計は、公式図の「Institute の I 〜 TOKYO の O」の高さに合わせる（STOKYO 1 行だけより高い）。1 枚画像のため STOKYO 帯と中央揃えがずれる → transform で微調整。 */
        .c-globalHeader__logo a {
            display: flex;
            align-items: center;
            gap: calc(0.95 * 0.38 * 56px);
            text-decoration: none;
            transition: var(--transition-base);
        }
        .c-globalHeader__logo-img { height: 56px; width: auto; object-fit: contain; flex-shrink: 0; }
        .c-globalHeader__logo-text {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: flex-start;
            row-gap: 0;
            white-space: nowrap;
            min-width: 0;
            transform: translateY(0.04rem);
        }
        .c-globalHeader__logo-main {
            font-size: 1.06rem;
            font-weight: 500;
            font-family: var(--font-family-ja), sans-serif;
            color: var(--color-brand-accent);
            line-height: 1.1;
            letter-spacing: 0.02em;
        }
        .c-globalHeader__logo-sub {
            font-family: var(--font-family-en), 'Noto Sans JP', sans-serif;
            font-size: 0.68rem;
            color: var(--color-mono-secondary);
            font-weight: 500;
            letter-spacing: 0.05em;
            margin-top: 0;
            line-height: 1.1;
        }

        .c-menuToggle { display: none; background: none; border: none; cursor: pointer; padding: var(--spacing-xs); }
        .c-menuToggle span { display: block; width: 24px; height: 2.5px; background-color: var(--color-brand-accent); margin: 5px 0; border-radius: var(--border-radius-pill); transition: var(--transition-base); }

        .c-globalNav { display: flex; }
        .c-globalNav__list { display: flex; gap: var(--spacing-l); }
        .c-globalNav__item { position: relative; }
        .c-globalNav__link { display: flex; align-items: center; height: 80px; color: var(--color-mono-primary); font-weight: 600; font-size: 1.05rem; padding: 0 var(--spacing-xs); letter-spacing: 0.02em; transition: color 0.3s ease; position: relative; }
        .c-globalNav__link::after { content: ''; position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); width: 0; height: 2px; background-color: var(--color-brand-accent); transition: width 0.3s ease; border-radius: 2px; }
        .c-globalNav__link:hover::after, .c-globalNav__link.is-active::after { width: calc(100% - 16px); }
        .c-globalNav__link:hover, .c-globalNav__link.is-active { color: var(--color-brand-accent); }

        .c-globalNav__subList { position: absolute; top: 100%; left: -10px; width: 240px; background-color: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: var(--elevation-2); border-radius: var(--border-radius-m); opacity: 0; visibility: hidden; transform: translateY(10px) scale(0.98); transform-origin: top left; transition: var(--transition-base); z-index: 10; padding: 12px 0; border: 1px solid var(--color-brand-quaternary); }
        .c-globalNav__item:hover .c-globalNav__subList { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
        .c-globalNav__subItem { list-style: none; }
        .c-globalNav__subLink { display: block; padding: 10px var(--spacing-m); color: var(--color-mono-primary); font-size: 1rem; transition: var(--transition-base); }
        .c-globalNav__subLink:hover { color: var(--color-brand-accent); transform: translateX(6px); }
        .has-child > a::before { content: "▼"; font-size: 0.5em; margin-left: 6px; color: var(--color-mono-tertiary); transition: var(--transition-base); order: 2; }
        .has-child:hover > a::before { transform: rotate(180deg); color: var(--color-brand-accent); }

        .c-button--contact { display: inline-flex; align-items: center; justify-content: center; padding: 10px 28px; background-color: #1c3177; color: #ffffff !important; font-weight: 700; font-size: 1.05rem; border-radius: var(--border-radius-pill); transition: var(--transition-base); letter-spacing: 0.05em; box-shadow: 0 4px 12px rgba(28, 49, 119, 0.15); text-decoration: none; }
        .c-button--contact:hover { background-color: #15255b; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(28, 49, 119, 0.25); opacity: 1; }

        /* --- ヒーローエリア --- */
        
        
        
        
        
        
        

        @keyframes heroSlideshow { 0% { opacity: 0; transform: scale(1); } 10% { opacity: 1; } 33% { opacity: 1; } 43% { opacity: 0; } 100% { opacity: 0; transform: scale(1.05); } }
        
        
        
        

        @keyframes heroFadeUp { to { transform: translateY(0); opacity: 1; } }

        
        
        
        
        
        
        .c-hand-marker { position: relative; z-index: 1; display: inline-block; margin-bottom: 8px; letter-spacing: 0.08em; color: var(--color-brand-accent); font-size: 1.3em; }
        .c-hand-marker::after { content: ''; position: absolute; bottom: 4px; left: -2%; width: 104%; height: 14px; background-color: rgba(204, 230, 255, 0.8); border-radius: 20px 60px 20px 40px / 40px 10px 30px 15px; z-index: -1; transform: rotate(-1deg); }

        /* --- 私たちについて (About Us) --- */
        .c-glassPanel { background-color: rgba(255, 255, 255, 0.6); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border-radius: 40px; border: 1px solid rgba(255, 255, 255, 0.9); padding: calc(var(--spacing-xl) * 1.5) var(--spacing-xl); box-shadow: var(--elevation-2); }
        
        
        
        
        
        
        
        .c-keywordList { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
        .c-keywordTag { background-color: var(--color-white); border: 1px solid var(--color-brand-tertiary); color: var(--color-brand-accent); padding: 10px 24px; border-radius: var(--border-radius-pill); font-weight: 600; font-size: 1.05rem; box-shadow: 0 4px 12px rgba(79, 115, 150, 0.05); transition: var(--transition-base); letter-spacing: 0.05em; }
        .c-keywordTag:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(79, 115, 150, 0.12); border-color: var(--color-brand-secondary); }

        /* --- 記事リスト --- */
        
        
        @supports (backdrop-filter: blur(10px)) {
            
        }
        
        
        
        
        
        .c-label { display: inline-block; padding: 6px 16px; font-size: 0.85rem; border-radius: var(--border-radius-pill); font-weight: 600; letter-spacing: 0.05em; }
        .c-label--news { background-color: #ffdafe; color: var(--color-mono-primary); }
        .c-label--activity { background-color: #c8f8ff; color: var(--color-mono-primary); }
        .c-label--research { background-color: #4f7396; color: var(--color-white); }
        
        .c-entryList__link:hover 
        

        /* --- カード (サイトメニュー) --- */
        
        
        @supports (backdrop-filter: blur(15px)) {
            
        }
        
        
        /* 画像を囲うラッパーを追加して、角丸とはみ出し防止を適用 */
        
        
        .c-card:hover 
        
        
        
        
        
        /* --- サイトメニュー用 ドロップダウンアニメーション改善 --- */
        
        
        /* ホバー外れ(チラつき)を防ぐための透明な橋渡し */
        
        .c-card__dropdown:hover 
        
        
        

        /* --- CTA (お問い合わせ) --- */
        
        
        
        
        
        
        
        
        .c-ctaContact .c-button--primary {
            background-color: var(--color-white);
            color: #1c3177;
            border-color: var(--color-white);
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
        }
        .c-ctaContact .c-button--primary:hover {
            background-color: var(--color-brand-tertiary);
            color: #15255b;
            transform: translateY(-4px);
            box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
        }

        /* --- ボタン --- */
        .c-buttonGroup { display: flex; flex-direction: column; gap: var(--spacing-s); }
        .c-buttonGroup--center { align-items: center; }
        .c-button { display: inline-flex; align-items: center; justify-content: center; padding: 16px 36px; font-weight: 700; font-size: 1.1rem; text-align: center; border-radius: var(--border-radius-pill); cursor: pointer; transition: var(--transition-base); text-decoration: none; line-height: 1.4; border: 2px solid transparent; letter-spacing: 0.05em; background-color: var(--color-white); color: var(--color-brand-accent); border-color: var(--color-brand-primary); }
        .c-button:hover { background-color: var(--color-brand-secondary); border-color: var(--color-brand-secondary); color: var(--color-mono-primary); box-shadow: var(--elevation-1); transform: translateY(-2px); }
        .c-button--primary { background-color: var(--color-brand-primary); color: var(--color-brand-accent); border-color: var(--color-brand-primary); box-shadow: var(--elevation-1); }
        .c-button--primary:hover { background-color: var(--color-brand-secondary); color: var(--color-mono-primary); border-color: var(--color-brand-secondary); box-shadow: var(--elevation-2); transform: translateY(-2px); }
        .c-button--sizeM { min-width: 240px; }
        .c-button__label { margin: 0 8px; }
        .icon-arrow-right { display: inline-block; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 6px solid currentColor; margin-left: 8px; transition: var(--transition-base); }
        .c-button:hover .icon-arrow-right { transform: translateX(6px); }

        /* --- グローバルフッター (レイアウト改善: 左カラム＋右ナビゲーション3等分) --- */
        .c-globalFooter { 
            background-color: var(--color-footer-bg); 
            color: rgba(255, 255, 255, 0.8); 
            padding: var(--spacing-xl) 0 var(--spacing-xl); 
            position: relative; 
            margin-top: calc(var(--spacing-xxl) * 2); 
        }

        .c-globalFooter::before {
            content: '';
            position: absolute;
            top: -80px;
            left: 0;
            width: 100%;
            height: 80px;
            background-color: var(--color-footer-bg);
            clip-path: ellipse(120% 100% at 50% 100%);
            z-index: -1;
        }
        @media (min-width: 768px) {
            .c-globalFooter::before { top: -120px; height: 120px; }
        }

        /* フッターのインナー幅をメインコンテンツ(1200px)と揃えて間延びを解消 */
        .c-globalFooter__inner { max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-m); }

        /* --- フッターメインエリア --- */
        .c-footerMain { 
            display: flex; 
            justify-content: space-between; 
            align-items: flex-start; 
            gap: calc(var(--spacing-xl) * 1.5); 
            margin-bottom: var(--spacing-xl); 
            padding-bottom: var(--spacing-xl); 
            border-bottom: 1px solid rgba(255, 255, 255, 0.15); 
        }
        
        /* 左: ロゴ、住所、マップボタン */
        .c-footerLeft { 
            display: flex; 
            flex-direction: column; 
            gap: var(--spacing-m); 
            flex: 0 0 320px; 
        }

        .c-footerInfo__logo {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            align-items: center;
            gap: calc(0.95 * 0.38 * 48px);
            margin-bottom: var(--spacing-xs);
        }
        .c-footerInfo__logo-img { height: 48px; width: auto; max-width: 100%; object-fit: contain; object-position: left center; flex-shrink: 0; }
        /* 左ロゴ画像内の2行とベースラインを揃える（画像の余白分を相殺） */
        .c-footerInfo__logo-text { display: flex; flex-direction: column; white-space: nowrap; justify-content: center; min-width: 0; transform: translateY(-0.18em); }
        .c-footerInfo__logo-main { font-size: 1.05rem; font-weight: 500; font-family: var(--font-family-ja), sans-serif; color: var(--color-white); line-height: 1.25; letter-spacing: 0.02em; }
        .c-footerInfo__logo-sub { font-family: var(--font-family-en), 'Noto Sans JP', sans-serif; font-size: 0.8rem; color: rgba(255, 255, 255, 0.82); font-weight: 500; letter-spacing: 0.05em; margin-top: 2px; }
        .c-footerInfo__text { font-size: 0.95rem; color: rgba(255, 255, 255, 0.8); line-height: 1.8; }
        
        .c-button--map {
            background-color: transparent;
            color: var(--color-white);
            border-color: rgba(255, 255, 255, 0.3);
            padding: 10px 24px;
            font-size: 0.95rem;
            width: fit-content;
            margin-top: -8px;
        }
        .c-button--map:hover {
            background-color: rgba(255, 255, 255, 0.1);
            border-color: var(--color-white);
            color: var(--color-white);
            transform: translateY(-2px);
        }
        .c-button--map svg {
            margin-right: 8px;
        }

        /* 右: ナビゲーション (3均等配置) */
        .c-footerNav { 
            flex: 1; 
            display: grid; 
            grid-template-columns: repeat(3, 1fr); 
            gap: var(--spacing-xl); 
        }
        
        .c-footerNav__group { display: flex; flex-direction: column; gap: var(--spacing-xs); }
        .c-footerNav__heading { color: var(--color-white); font-weight: 700; font-size: 1.05rem; margin-bottom: var(--spacing-xs); letter-spacing: 0.05em; padding-bottom: 8px; border-bottom: 2px solid rgba(255, 255, 255, 0.2); }
        .c-footerNav__heading a { color: inherit; }
        .c-footerNav__heading a:hover { opacity: 1; color: var(--color-brand-primary); }
        .c-footerNav__list { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
        .c-footerNav__link { color: rgba(255, 255, 255, 0.65); font-size: 0.95rem; font-weight: 500; transition: var(--transition-base); display: inline-block; }
        .c-footerNav__link:hover { color: var(--color-white); transform: translateX(4px); }

        /* --- モーダル (Map) --- */
        .c-modal {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1000;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s ease;
        }
        .c-modal.is-active {
            opacity: 1;
            visibility: visible;
        }
        .c-modal__overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.6);
            backdrop-filter: blur(4px);
            cursor: pointer;
        }
        .c-modal__content {
            position: relative;
            background-color: var(--color-white);
            border-radius: var(--border-radius-l);
            width: 90%;
            max-width: 600px;
            max-height: 90vh;
            overflow-y: auto;
            padding: var(--spacing-xl);
            box-shadow: var(--elevation-3);
            transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
        }
        .c-modal.is-active .c-modal__content {
            transform: translateY(0) scale(1);
        }
        .c-modal__closeBtn {
            position: absolute;
            top: 20px;
            right: 20px;
            background: var(--color-mono-quinary);
            border: 1px solid var(--color-mono-tertiary);
            width: 40px;
            height: 40px;
            border-radius: 50%;
            font-size: 1.5rem;
            color: var(--color-mono-secondary);
            cursor: pointer;
            transition: var(--transition-base);
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .c-modal__closeBtn:hover {
            color: var(--color-brand-accent);
            border-color: var(--color-brand-accent);
            background-color: var(--color-brand-quaternary);
        }
        .c-modalProfile {
            display: flex;
            gap: var(--spacing-m);
            margin-bottom: var(--spacing-m);
            align-items: center;
            padding-bottom: var(--spacing-m);
            border-bottom: 1px solid var(--color-mono-quaternary);
        }
        .c-modalProfile__img {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            object-fit: cover;
            border: 3px solid var(--color-brand-quaternary);
        }
        .c-modalProfile__info h3 {
            font-size: 1.5rem;
            color: var(--color-brand-accent);
            margin-bottom: 4px;
        }

        /* --- Modal Data --- */
        .c-modalData__item {
            margin-bottom: var(--spacing-m);
        }
        .c-modalData__item h4 {
            font-size: 0.95rem;
            color: #d198a6;
            margin-bottom: 8px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .c-modalData__item h4::before {
            content: '';
            display: inline-block;
            width: 16px;
            height: 2px;
            background-color: var(--color-brand-secondary);
        }
        .c-modalData__item p {
            font-size: 0.95rem;
            color: var(--color-mono-primary);
            line-height: 1.7;
        }
            font-size: 1.5rem;
            /* --- Modal Data --- */
            .c-modalData__item {
                margin-bottom: var(--spacing-m);
            }
            .c-modalData__item h4 {
                font-size: 0.95rem;
                color: #d198a6;
                margin-bottom: 8px;
                display: flex;
                align-items: center;
                gap: 8px;
            }
            .c-modalData__item h4::before {
                content: '';
                display: inline-block;
                width: 16px;
                height: 2px;
                background-color: var(--color-brand-secondary);
            }
            .c-modalData__item p {
                font-size: 0.95rem;
                color: var(--color-mono-primary);
                line-height: 1.7;
            }
            color: var(--color-brand-accent);
            margin-bottom: 4px;
        }
        .c-modal__map { width: 100%; height: 60vh; min-height: 400px; border-radius: calc(var(--border-radius-m) - 4px); overflow: hidden; background-color: #f4f1f1; }
        .c-modal__map iframe { width: 100%; height: 100%; border: 0; display: block; }

        .c-footerBottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--spacing-m); text-align: left; }
        .c-footerBottom__links { display: flex; flex-wrap: wrap; gap: var(--spacing-m); font-size: 0.95rem; color: rgba(255, 255, 255, 0.7); }
        .c-footerBottom__links a { color: inherit; transition: var(--transition-base); }
        .c-footerBottom__links a:hover { color: var(--color-white); }
        .c-footerBottom > p { font-size: 1rem; color: rgba(255, 255, 255, 0.6); }

        /* ==========================================================================
           レスポンシブ (Responsive)
           ========================================================================== */
        @media screen and (max-width: 1024px) {
            
            
            
            
            

            .c-footerMain { flex-direction: column; gap: var(--spacing-xl); }
            .c-footerLeft { flex: auto; align-items: center; text-align: center; }
            .c-button--map { margin: 0 auto; }
            .c-footerInfo__logo { align-items: center; }
            .c-footerInfo__logo-text { align-items: center; }
            .c-footerNav { width: 100%; gap: var(--spacing-m); }
        }

        @media screen and (max-width: 768px) {
            html { font-size: 16px; }
            .u-hidden-sp { display: none !important; }

            /* SP：ロゴ〜分野名がハンバーガーに被らないよう幅を確保（flex 縮小 + 省略） */
            .c-globalHeader__inner { padding: 0 var(--spacing-m); gap: 0.5rem; min-width: 0; align-items: center; }
            .c-globalHeader__logo { flex: 1 1 0; min-width: 0; display: flex; align-items: center; height: 100%; }
            .c-globalHeader__logo a {
                min-width: 0;
                max-width: 100%;
                gap: min(10px, calc(0.95 * 0.38 * 44px));
                align-items: center;
                height: 100%;
            }
            .c-globalHeader__logo-img { height: 44px; }
            .c-globalHeader__logo-text { overflow: hidden; transform: translateY(0); display: flex; flex-direction: column; justify-content: center; height: 100%; }
            .c-globalHeader__logo-main,
            .c-globalHeader__logo-sub {
                display: block;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                max-width: 100%;
            }
            .c-globalHeader__logo-main { font-size: 1rem; line-height: 1.1; }
            .c-globalHeader__logo-sub { font-size: 0.65rem; line-height: 1.1; }
            .c-footerInfo__logo { flex-direction: column; gap: calc(0.95 * 0.38 * 44px); text-align: center; align-items: center; justify-content: center; }
            .c-footerInfo__logo-img { height: 44px; object-position: center; margin: 0 auto; }
            .c-footerInfo__logo-text { text-align: center; transform: translateY(0); align-items: center; }
            
            .c-footerLeft { align-items: center; text-align: center; width: 100%; }
            .c-footerInfo__text { text-align: center; margin: 0 auto; }
            .c-globalFooter .c-button--map { margin: 0 auto; display: inline-flex; justify-content: center; }
            .c-footerInfo__logo-main { font-size: 0.86rem; line-height: 1.2; }
            .c-footerInfo__logo-sub { font-size: 0.62rem; line-height: 1.2; }
            .c-menuToggle { display: block; flex-shrink: 0; position: relative; z-index: 2; }
            .c-globalNav {
                position: absolute; top: 80px; left: 0; width: 100%; background-color: var(--color-white);
                box-shadow: 0 10px 15px rgba(79,115,150,0.1); display: none; padding: var(--spacing-s) 0;
                border-radius: 0 0 var(--border-radius-m) var(--border-radius-m);
            }
            .c-globalNav.is-active { display: block; }
            .c-globalNav__list { flex-direction: column; gap: 0; }
            .c-globalNav__link { height: auto; padding: var(--spacing-m); border-bottom: 1px solid var(--color-mono-quaternary); }
            .c-globalNav__link::after { display: none; }
            .c-globalNav__subList {
                position: static; width: 100%; box-shadow: none; opacity: 1; visibility: visible; transform: none;
                display: none; background-color: var(--color-brand-quaternary); border: none; border-radius: 0; padding: 0;
            }
            .has-child:hover .c-globalNav__subList { display: block; }
            .c-globalNav__subLink { padding: 12px var(--spacing-xl); border-bottom: 1px solid rgba(79, 115, 150, 0.1); }
            .c-globalNav__item:last-child { margin: var(--spacing-m); display: flex; }
            .c-globalNav__item:last-child .c-button--contact { width: 100%; padding: 14px; justify-content: center; }

            
            
            
            
            
            
            

            .c-glassPanel { padding: var(--spacing-xl) var(--spacing-m); border-radius: 32px; }
            
            
            .c-phaseBar__arrow svg { width: 20px; height: 20px; }
            
            .c-keywordTag { padding: 8px 16px; font-size: 0.95rem; }

            
            
            

            
            
            .c-button--sizeM { width: 100%; }

            .c-footerNav { grid-template-columns: 1fr; gap: var(--spacing-l); text-align: center; }
            .c-footerBottom { flex-direction: column; align-items: center; text-align: center; }
            .c-footerBottom__links { justify-content: center; width: 100%; }
            .c-footerBottom > p { font-size: clamp(0.55rem, 3.5vw, 0.9rem); white-space: nowrap; letter-spacing: 0; margin: 0 auto; }

            /* 下部CTA：横パディングを少し詰めて可読性の大きいメールを1行に */
            
            body 
            .c-ctaContact .c-button--primary {
                white-space: nowrap;
                font-size: 1.1rem;
                padding: 14px 22px;
            }
            
            .c-modal__map { height: 50vh; min-height: 300px; }
        }

        @media screen and (max-width: 480px) {
            .c-globalHeader__logo a { gap: min(6px, calc(0.95 * 0.38 * 40px)); }
            .c-globalHeader__logo-img { height: 40px; width: auto; }
            .c-globalHeader__logo-main { font-size: 0.88rem; }
            .c-globalHeader__logo-sub { font-size: 0.56rem; }
            .c-footerInfo__logo { gap: calc(0.95 * 0.38 * 44px); }
            .c-footerInfo__logo-img { height: 44px; }
            .c-footerInfo__logo-main { font-size: 0.8rem; }
            .c-footerInfo__logo-sub { font-size: 0.55rem; }
            .c-footerNav__container { grid-template-columns: 1fr; }
        }

/* --- CTA お問い合わせ --- */
.c-ctaContact {
    background: linear-gradient(135deg, var(--color-brand-accent) 0%, var(--color-footer-bg) 100%);
    border-radius: var(--border-radius-l); padding: 80px 64px;
    display: flex; justify-content: space-between; align-items: center; gap: 40px;
    color: var(--color-white); position: relative; overflow: hidden;
    box-shadow: var(--elevation-2);
}
.c-ctaContact::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background-image: radial-gradient(circle at 100% 0%, rgba(204, 230, 255, 0.15) 0%, transparent 50%), radial-gradient(circle at 0% 100%, rgba(255, 205, 205, 0.1) 0%, transparent 50%);
    pointer-events: none; z-index: 0;
}
.c-ctaContact__info { position: relative; z-index: 1;}
.c-ctaContact__heading { font-weight: 700; font-size: 28.4px; margin-bottom: 16px; letter-spacing: 0.05em; display: flex; align-items: center; gap: 16px;}
.c-ctaContact__text { font-size: 14.9px; color: rgba(255, 255, 255, 0.8); line-height: 1.8; font-weight: 500;}
.c-ctaContact__action { flex: 0 0 auto; text-align: right; position: relative; z-index: 1;}
.c-ctaContact__email { font-family: var(--font-family-en); font-size: 22.8px; font-weight: 700; margin-bottom: 8px; letter-spacing: 0.1em; color: var(--color-white);}
.c-ctaContact__note { display: block; font-size: 13px; color: rgba(255, 255, 255, 0.78); letter-spacing: 0.02em; }

.c-ctaContact .c-button--white { background-color: var(--color-white); color: var(--color-brand-accent); box-shadow: 0 4px 16px rgba(0,0,0,0.1);}
.c-ctaContact .c-button--white:hover { background-color: var(--color-brand-primary); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.2); }

@media screen and (max-width: 1024px) {
    .c-ctaContact { flex-direction: column; text-align: left; gap: 40px; padding: 64px 40px; align-items: flex-start;}
    .c-ctaContact__action { text-align: left; }
}

@media screen and (max-width: 768px) {
    .c-ctaContact { padding: 48px 24px; border-radius: var(--border-radius-m);}
    .c-ctaContact__email { font-size: 18.5px; }
}
