    body {
        font-family: 'Zen Maru Gothic', sans-serif;
        background-color: #ffffff;
        -webkit-tap-highlight-color: transparent;
        overflow-x: hidden;
        width: 100%;
    }
    @media (min-width: 768px) {
        body {
            background-color: #f8fafc;
        }
    }

    .glass {
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    }

    .scrollbar-hide::-webkit-scrollbar,
    .hide-scrollbar::-webkit-scrollbar {
        display: none;
    }

    .scrollbar-hide,
    .hide-scrollbar {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    html {
        scroll-padding-top: 130px;
    }

    .line-clamp-2 {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    /* お気に入りボタン: 通常状態 */
    .like-btn i,
    .like-btn svg {
        fill: none;
        color: #cbd5e1;
        stroke: currentColor;
        transition: all 0.2s ease;
    }

    /* お気に入りボタン: 登録済み状態 */
    .like-btn.active i,
    .like-btn.active svg {
        fill: #ec4899 !important;
        color: #ec4899 !important;
        stroke: #ec4899 !important;
    }

    .like-btn:active i,
    .like-btn:active svg {
        transform: scale(1.2);
    }

    /* トースト通知 */
    .toast-notification {
        position: fixed;
        left: 50%;
        transform: translateX(-50%) translateY(1rem);
        z-index: 100;
        padding: 0.75rem 1.5rem;
        border-radius: 0.75rem;
        font-size: 0.875rem;
        font-weight: 700;
        box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
        opacity: 0;
        transition: all 0.3s ease;
        pointer-events: none;
    }

    .toast-notification.toast-visible {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    .toast-added {
        background-color: #1BACE8;
        color: #ffffff;
        bottom: 5rem;
    }

    .toast-removed {
        background-color: #f1f5f9;
        color: #334155;
        border: 1px solid #e2e8f0;
        bottom: 5rem;
    }

    @media (min-width: 768px) {

        .toast-added,
        .toast-removed {
            bottom: 2rem;
        }
    }

    /* 削除確認モーダル */
    .modal-overlay {
        position: fixed;
        inset: 0;
        background-color: rgba(0, 0, 0, 0.4);
        z-index: 200;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 1rem;
        opacity: 0;
        transition: opacity 0.2s ease;
        pointer-events: none;
    }

    .modal-overlay.modal-visible {
        opacity: 1;
        pointer-events: auto;
    }

    .modal-box {
        background: #ffffff;
        border-radius: 1rem;
        padding: 2rem;
        max-width: 400px;
        width: 100%;
        text-align: center;
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
        transform: scale(0.95);
        transition: transform 0.2s ease;
    }

    .modal-overlay.modal-visible .modal-box {
        transform: scale(1);
    }

    .search-input:focus~.search-icon {
        color: #1BACE8;
        transform: scale(1.1);
    }

    /* details/summaryのデフォルト三角形を消す */
    summary.faq-button::-webkit-details-marker,
    summary.faq-button::marker {
        display: none;
    }

    .faq-icon {
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* 開閉時のアイコン回転 */
    details[open] .faq-icon {
        transform: rotate(180deg);
    }

    /* FAQ開閉アニメーション */
    details .faq-answer {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease-in-out;
        opacity: 0;
    }

    details.is-open .faq-answer {
        grid-template-rows: 1fr;
        opacity: 1;
    }

    details .faq-answer > div {
        overflow: hidden;
    }

    details.is-closing .faq-answer {
        grid-template-rows: 0fr;
        opacity: 0;
    }

    .news-content {
        height: 0;
        overflow: hidden;
        transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease-in-out;
        opacity: 0;
    }

    .news-content.is-open {
        opacity: 1;
    }

    .news-icon {
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .news-button[aria-expanded="true"] .news-icon {
        transform: rotate(180deg);
    }

    /* ========================================================
   フルスクリーンメニュー アニメーション
======================================================== */

    /* ハンバーガーボタン → × アニメーション */
    .hamburger-line {
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease, background-color 0.3s ease;
        transform-origin: center;
    }

    .menu-open .hamburger-line-1 {
        transform: translateY(8px) rotate(45deg);
    }

    .menu-open .hamburger-line-2 {
        opacity: 0;
        transform: translateX(10px);
    }

    .menu-open .hamburger-line-3 {
        transform: translateY(-8px) rotate(-45deg);
    }

    /* 円形展開（clip-path） */
    #new-mobile-menu {
        clip-path: circle(0px at calc(100% - 36px) 32px);
        transition: clip-path 0.7s cubic-bezier(0.8, 0, 0.1, 1), visibility 0.7s;
        visibility: hidden;
        pointer-events: none;
    }

    #new-mobile-menu.menu-open {
        clip-path: circle(150% at calc(100% - 36px) 32px);
        visibility: visible;
        pointer-events: auto;
    }

    /* メニュー項目の順次フェードイン */
    .menu-item {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .menu-open .menu-item {
        opacity: 1;
        transform: translateY(0);
    }

    .menu-open .menu-item-1 {
        transition-delay: 0.10s;
    }

    .menu-open .menu-item-2 {
        transition-delay: 0.15s;
    }

    .menu-open .menu-item-3 {
        transition-delay: 0.20s;
    }

    .menu-open .menu-item-4 {
        transition-delay: 0.25s;
    }

    .menu-open .menu-item-5 {
        transition-delay: 0.30s;
    }

    .menu-open .menu-item-6 {
        transition-delay: 0.35s;
    }

    .menu-open .menu-item-7 {
        transition-delay: 0.40s;
    }

    .menu-open .menu-item-8 {
        transition-delay: 0.45s;
    }

    .form-input {
        transition: all 0.3s ease;
    }

    .form-input:focus {
        outline: none;
        border-color: #1BACE8;
        background-color: #ffffff;
        box-shadow: 0 0 0 4px rgba(27, 172, 232, 0.1);
        transform: translateY(-1px);
    }

    .badge-required {
        background: linear-gradient(135deg, #ef4444, #dc2626);
        color: white;
        font-size: 0.7rem;
        padding: 2px 8px;
        border-radius: 9999px;
        font-weight: bold;
        letter-spacing: 0.05em;
        box-shadow: 0 2px 4px rgba(239, 68, 68, 0.2);
        margin-left: 8px;
        vertical-align: middle;
    }

    .article-body p {
        margin-bottom: 1.5em;
        line-height: 1.8;
        color: #334155;
    }

    .article-body strong {
        background: linear-gradient(transparent 60%, #E0F2FE 60%);
        padding: 0 2px;
    }
