@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* 
   配色パレット
   Base: #FFFFFF (White)
   Primary (CTA): #30A4E3 (Blue)
   Accent 1: #E3303C (Red)
   Accent 2: #E3DE30 (Yellow)
*/

svg:not([fill]) {
    fill: #ccc;
}

/* ヘッダー全体を上部に固定 */
.l-header {
    position: sticky;
    top: 0;
    z-index: 1001;
    /* 検索メニュー(1000)より上にくるように */
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    /* 境界をわかりやすく */
}

/* ヘッダー中身の幅調整 */
.l-header__inner.l-container {
    max-width: 1280px !important;
}

/* ヘッダーの中身を横並びにする・両端揃え */
.l-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* 差し込んだカスタムエリアのレイアウト */
.p-headerCustomArea {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-left: auto;
    /* 右端に寄せるために追加 */
    margin-right: 0;
    /* 右端の余白なし */
    order: 999;
    /* 他の要素より後ろ（右）に配置 */
}

/* 検索メニュー周りのラッパー */
.p-headerCustomArea__searchWrapper {
    position: relative;
    width: 320px;
    /* 少し広めに確保 */
}

/* 検索窓の幅を100%に */
.p-headerCustomArea__search {
    width: 100%;
}

.p-headerCustomArea__search input.search-field {
    width: 100%;
    border-radius: 4px;
    padding-top: 8px;
    padding-bottom: 8px;
}

/* 検索メニュー（ドロップダウン） */
.p-searchMenu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    /* Align to right of the wrapper */
    width: 540px;
    /* Wider as per image */
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    padding: 32px;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    text-align: left;
}

.p-searchMenu.is-active {
    opacity: 1;
    visibility: visible;
    top: calc(100% + 15px);
}

.p-searchMenu::before {
    content: "";
    position: absolute;
    top: -8px;
    right: 40px;
    /* Position arrow near the right end */
    border-right: 8px solid transparent;
    border-bottom: 8px solid #fff;
    border-left: 8px solid transparent;
}

/* 検索メニュー内ナビゲーション */
.p-searchMenu__nav {
    display: flex;
    justify-content: space-between;
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 20px;
}

.p-searchMenu__nav li a {
    text-decoration: none;
    color: #333;
    font-size: 14px;
    font-weight: bold;
    transition: color 0.2s;
}

.p-searchMenu__nav li a:hover {
    color: #30A4E3;
}

/* カテゴリセクション */
.p-searchMenu__title {
    font-size: 15px;
    font-weight: bold;
    color: #333;
    margin-bottom: 24px;
}

.p-searchMenu__catList {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.p-searchMenu__catList li a {
    display: inline-block;
    padding: 8px 20px;
    border: 1px solid #eee;
    border-radius: 30px;
    font-size: 12px;
    color: #666;
    text-decoration: none;
    background: #fff;
    transition: all 0.2s ease;
}

.p-searchMenu__catList li a:hover {
    background: #f7f9fb;
    border-color: #30A4E3;
    color: #30A4E3;
    color: #30A4E3;
}

/* モバイル用検索ヘッダー */
.p-searchMenu__mobileHeader {
    display: none;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #eee;
}

.p-searchMenu__mobileHeader .c-searchForm {
    flex-grow: 1;
}

.p-searchMenu__close {
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    color: #999;
    cursor: pointer;
    padding: 5px;
}

/* スマホ表示時の調整 */
@media (max-width: 768px) {
    .p-headerCustomArea__searchWrapper {
        /* スマホでは検索アイコンのみ表示されるのでラッパー自体の幅は自動 */
        width: auto;
    }

    .p-searchMenu,
    .p-searchMenu.is-active {
        position: fixed;
        top: 48px;
        /* ヘッダー高さ分 */
        left: 0;
        right: 0;
        width: 100%;
        height: calc(100vh - 60px);
        border-radius: 0;
        box-shadow: none;
        overflow-y: auto;
        padding: 20px;
        z-index: 1000;
        border-top: 1px solid #eee;
    }

    /* 矢印削除 */
    .p-searchMenu::before {
        display: none;
    }

    .p-searchMenu__mobileHeader {
        display: flex;
    }

    .p-searchMenu__nav {
        flex-direction: column;
        gap: 15px;
    }

    .p-searchMenu__nav li {
        width: 100%;
        border-bottom: 1px solid #f9f9f9;
        padding-bottom: 10px;
    }

    .p-searchMenu__title {
        margin-top: 20px;
    }
}

/* ログイン・会員登録ボタン */
.c-btnLogin,
.c-btnRegister {
    font-size: 14px;
    font-weight: bold;
    padding: 8px 16px;
    /* 少し大きめに */
    border-radius: 8px;
    text-decoration: none;
    display: inline-block;
}

.c-btnLogin--blue {
    background: #30A4E3;
    /* 画像に近い水色 */
    color: #fff !important;
}

.c-btnLogin--blue:hover {
    opacity: 0.9;
}

/* ログイン時のアバター画像 */
.p-headerCustomArea__member img {
    border-radius: 50%;
    vertical-align: middle;
    width: 40px;
    height: 40px;
    object-fit: cover;
}

/* カスタム検索フォーム */
.c-searchForm {
    position: relative;
    width: 100%;
}

.c-searchForm__field {
    width: 100%;
    border-radius: 8px;
    /* 角丸で柔らかく */
    padding: 8px 40px 8px 16px;
    /* 右側にアイコン分の余白 */
    border: 1px solid #ccc;
    background: #fdfdfd;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: all 0.3s;
}

.c-searchForm__field:focus {
    background: #fff;
    border-color: #30A4E3;
    /* Primary Blue */
    box-shadow: 0 0 0 2px rgba(48, 164, 227, 0.2);
    outline: none;
}

.c-searchForm__button {
    position: absolute;
    top: 50%;
    right: 5px;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: #30A4E3;
    /* Primary Blue */
    cursor: pointer;
    padding: 8px;
    font-size: 1.2em;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
}

/* ====================================
   page-デザイン
   ==================================== */
/* Global container width override (except single and MyPage) */
/* Global container width override (Targeting specific pages instead of excluding) */
body.home #content.l-container,
body.archive #content.l-container,
body.search #content.l-container,
body.blog #content.l-container,
body.page:not(.page-template-page-mypage):not(.page-template-page-mypage-php):not(.page-template-page-favorites):not(.page-template-page-qa):not(.page-template-page-qa-php):not(.page-template-page-unsubscribe):not(.page-template-page-unsubscribe-php):not(.page-template-page-terms-of-service):not(.page-template-page-terms-of-service-php):not(.page-template-page-privacy):not(.page-template-page-privacy-php) #content.l-container {
    max-width: 1160px !important;
}

/* マイページデザイン適用ページで不要な要素を非表示 */
.page-template-page-mypage .c-pageTitle,
.page-template-page-mypage .c-breadcrumbs,
.page-template-page-mypage-php .c-pageTitle,
.page-template-page-mypage-php .c-breadcrumbs,
.page-template-page-qa .c-pageTitle,
.page-template-page-qa .c-breadcrumbs,
.page-template-page-qa-php .c-pageTitle,
.page-template-page-qa-php .c-breadcrumbs,
.page-template-page-unsubscribe .c-pageTitle,
.page-template-page-unsubscribe .c-breadcrumbs,
.page-template-page-unsubscribe-php .c-pageTitle,
.page-template-page-unsubscribe-php .c-breadcrumbs,
.page-template-page-terms-of-service .c-pageTitle,
.page-template-page-terms-of-service .c-breadcrumbs,
.page-template-page-terms-of-service-php .c-pageTitle,
.page-template-page-terms-of-service-php .c-breadcrumbs,
.page-template-page-privacy .c-pageTitle,
.page-template-page-privacy .c-breadcrumbs,
.page-template-page-privacy-php .c-pageTitle,
.page-template-page-privacy-php .c-breadcrumbs {
    display: none !important;
}



.l-contentWrapper {
    display: flex !important;
    flex-wrap: nowrap;
    justify-content: space-between;
    flex-direction: row !important;
    gap: 40px;
    padding-top: 40px;
    padding-bottom: 60px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}



/* ====================================
   Signup LP Template Styles
   ==================================== */
.p-signupLp {
    background-color: #fff;
    /* 全体背景白 */
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    color: #333;
    padding-bottom: 80px;
}

/* 共通パーツ */
.p-signupLp__sectionTitle {
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
    color: #333;
    margin-bottom: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.p-signupLp__sectionTitleIcon {
    color: #89C9F3;
    /* 水色アクセント */
    font-size: 0.8em;
}

.c-btnLp {
    display: inline-block;
    background: #30A4E3;
    /* Primary Blue */
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    padding: 15px 40px;
    border-radius: 8px;
    transition: opacity 0.3s;
    box-shadow: 0 4px 10px rgba(48, 164, 227, 0.3);
}

.c-btnLp:hover {
    opacity: 0.9;
    color: #fff;
}

.c-btnLp--small {
    padding: 10px 30px;
    font-size: 0.9em;
}

.c-btnLp--gray {
    background: #DDEBF4;
    color: #333;
    box-shadow: none;
}

/* Hero Section */
/* Hero Section */
.p-signupLp__hero {
    text-align: center;
    padding: 100px 20px;
    background-image: url('https://kaigooutbrain.com/wp-content/uploads/2025/12/6471d508bcba8981964b37e5415104d0-e1767518185957.webp');
    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;

    /* Container is already full width due to page template styles */
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.p-signupLp__heroTitle {
    font-size: 2rem;
    line-height: 1.6;
    margin-bottom: 40px;
    font-weight: bold;
}

.p-signupLp__highlight {
    background: #eef7fc;
    /* 薄い青背景 */
    padding: 0 10px;
    display: inline-block;
    font-size: 1.2em;
    font-weight: 800;
}

/* Intro Section */
.p-signupLp__intro {
    padding: 60px 20px;
    text-align: center;
}

.p-signupLp__introText p {
    margin-bottom: 2em;
    line-height: 1.8;
    font-size: 0.95rem;
}

/* Pricing Section */
.p-signupLp__pricing {
    padding: 60px 20px;
}

.p-signupLp__pricingCards {
    display: flex;
    justify-content: center;
    gap: 30px;
    max-width: 800px;
    margin: 0 auto;
    flex-wrap: wrap;
    /* スマホ対応 */
}

.p-signupLp__card {
    border: 1px solid #eee;
    border-radius: 12px;
    width: 320px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
}

@media screen and (max-width: 600px) {
    .p-signupLp__card {
        width: 100%;
        max-width: 340px;
        margin: 0 auto;
    }
}

.p-signupLp__cardHeader {
    text-align: center;
    padding: 15px;
    font-weight: bold;
    color: #fff;
}

.p-signupLp__cardHeader--regular {
    background: #89C9F3;
    /* 水色 */
}

.p-signupLp__cardHeader--corporate {
    background: #DDEBF4;
    /* 薄いグレー/青 */
    color: #333;
}

.p-signupLp__cardBody {
    padding: 30px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.p-signupLp__cardCta {
    margin-top: auto;
}

.p-signupLp__price {
    margin-bottom: 20px;
    color: #333;
}

.p-signupLp__priceLabel {
    font-size: 0.9rem;
    font-weight: bold;
}

.p-signupLp__priceAmount {
    font-size: 2rem;
    font-weight: bold;
    margin: 0 5px;
}

.p-signupLp__priceUnit {
    font-size: 0.8rem;
}

.p-signupLp__features {
    list-style: none;
    padding: 0;
    margin: 0 0 30px;
    text-align: left;
    display: inline-block;
}

.p-signupLp__features li {
    font-size: 0.9rem;
    margin-bottom: 10px;
    position: relative;
    padding-left: 1.5em;
}

.p-signupLp__features li::before {
    content: "●";
    color: #89C9F3;
    position: absolute;
    left: 0;
    font-size: 0.8em;
}

/* 法人会員特徴 */
.p-signupLp__features--corporate li::before {
    color: #ddd;
}

.p-signupLp__note {
    font-size: 0.8rem;
    color: #666;
    margin-bottom: 20px;
    line-height: 1.4;
}

/* Profile Section */
.p-signupLp__profile {
    padding: 60px 20px;
}

.p-signupLp__profileBox {
    max-width: 800px;
    margin: 0 auto;
    border: 1px solid #89C9F3;
    /* 水色枠線 */
    border-radius: 12px;
    padding: 40px;
    background: #fff;
}

.p-signupLp__profileContent {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.p-signupLp__profileImage {
    flex-shrink: 0;
    width: 120px;
    text-align: center;
}

.p-signupLp__avatarPlaceholder {
    width: 100px;
    height: 100px;
    background: #ddd;
    border-radius: 50%;
    margin: 0 auto;
}

.p-signupLp__profileText {
    flex-grow: 1;
}

.p-signupLp__profileName {
    font-size: 1.2rem;
    font-weight: bold;
    margin-bottom: 15px;
    display: flex;
    align-items: flex-end;
    gap: 10px;
    line-height: 1;
}

.c-icon-x {
    display: inline-flex;
    line-height: 1;
    color: #000;
}

.c-icon-x svg {
    display: block;
}

.p-signupLp__profileDesc {
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 20px;
}

.p-signupLp__profileHistory dt {
    font-weight: bold;
    margin-bottom: 10px;
    font-size: 0.9rem;
}

.p-signupLp__profileHistory dd {
    margin: 0 0 15px;
    font-size: 0.85rem;
    line-height: 1.6;
    color: #444;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .p-signupLp__pricingCards {
        flex-direction: column;
        align-items: center;
        margin-left: auto;
        margin-right: auto;
    }

    .p-signupLp__profileContent {
        flex-direction: column;
        align-items: center;
        text-align: center;
        /* スマホはセンター寄せも見やすい */
    }

    .p-signupLp__profileHistory {
        text-align: left;
    }


}

/* 
   LPテンプレート用レイアウト調整 
   SWELLのデフォルト（サイドバーあり）を強制的に1カラム解除
   Topレベルのコンテナはフルワイドにするが、中身のコンテナは幅を制限する
*/

/* ヘッダーなどが崩れるため、グローバルな .l-container リセットは削除し、
   #content と .l-main に対してのみスタイルを適用する */

.page-template-page-signup-php #content,
.page-template-page-signup #content {
    background: #fff;
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
    display: block !important;
    /* Flex/Grid解除 */
}

.page-template-page-signup-php .l-main,
.page-template-page-signup .l-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    flex: none !important;
    padding: 0 !important;
}

.page-template-page-signup-php .l-sidebar,
.page-template-page-signup .l-sidebar,
.page-template-page-signup-php #sidebar,
.page-template-page-signup #sidebar {
    display: none !important;
    width: 0 !important;
}

/* LP内のコンテンツコンテナは適切な幅に戻す */
.p-signupLp .l-container {
    max-width: 1200px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: auto !important;
    /* 上書き解除 */
}

/* 画質調整対応 */
.p-signupLp__hero {
    image-rendering: -webkit-optimize-contrast;
}

/* 追加テキストスタイル */
.p-signupLp__heroLead {
    font-size: 1.1rem;
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
    line-height: 1.6;
}

.p-signupLp__pricingIntro {
    text-align: center;
    margin-bottom: 40px;
    line-height: 1.8;
}

/* --------------------------------------------------
   Login Modal
-------------------------------------------------- */
.p-loginModal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-loginModal.is-show {
    opacity: 1;
    visibility: visible;
}

.p-loginModal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    cursor: pointer;
}

.p-loginModal__content {
    position: relative;
    width: 90%;
    max-width: 480px;
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
    z-index: 2001;
    transform: translateY(20px);
    transition: transform 0.3s ease;
}

.p-loginModal.is-show .p-loginModal__content {
    transform: translateY(0);
}

.p-loginModal__close {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    font-size: 2rem;
    line-height: 1;
    color: #999;
    cursor: pointer;
    padding: 0;
}

.p-loginModal__close:hover {
    color: #333;
}

.p-loginModal__header {
    text-align: center;
    margin-bottom: 25px;
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
}

.p-loginModal__title {
    font-size: 1.25rem;
    font-weight: bold;
    color: #333;
    margin: 0;
}

/* wp_login_form styling */
.p-loginModal__body form {
    margin-bottom: 20px;
}

.p-loginModal__body p {
    margin-bottom: 15px;
}

.p-loginModal__body label {
    display: block;
    font-weight: bold;
    margin-bottom: 5px;
    font-size: 0.9rem;
    color: #333;
}

.p-loginModal__body input[type="text"],
.p-loginModal__body input[type="password"] {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 1rem;
    background: #f9f9f9;
}

.p-loginModal__body input[type="text"]:focus,
.p-loginModal__body input[type="password"]:focus {
    border-color: #30A4E3;
    background: #fff;
    outline: none;
}

.p-loginModal__body .login-remember {
    font-size: 0.85rem;
    margin-bottom: 20px;
}

.p-loginModal__body .login-remember label {
    font-weight: normal;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.p-loginModal__body .login-submit {
    text-align: center;
    margin-top: 20px;
}

.p-loginModal__body input[type="submit"] {
    background: #30A4E3;
    color: #fff;
    border: none;
    padding: 12px 40px;
    border-radius: 30px;
    font-weight: bold;
    font-size: 1rem;
    cursor: pointer;
    transition: opacity 0.3s;
    width: 100%;
    max-width: 280px;
}

.p-loginModal__body input[type="submit"]:hover {
    opacity: 0.9;
}

/* Password Toggle Icon */
.p-loginModal__passWrapper {
    position: relative;
    width: 100%;
}

.p-loginModal__togglePass {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    cursor: pointer;
    color: #aaa;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s;
    z-index: 2;
}

.p-loginModal__togglePass:hover {
    color: #30A4E3;
}

/* Register Link Area */
.p-loginModal__register {
    border-top: 1px solid #eee;
    padding-top: 20px;
    text-align: center;
}

.p-loginModal__registerText {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 10px;
}

.c-btnRegisterLink {
    display: inline-block;
    padding: 10px 30px;
    background: #fff;
    border: 1px solid #30A4E3;
    color: #30A4E3;
    border-radius: 30px;
    text-decoration: none;
    font-weight: bold;
    transition: all 0.3s;
    font-size: 0.95rem;
}

/* シェイクアニメーション */
@keyframes shake {

    0%,
    100% {
        transform: translateX(0);
    }

    10%,
    30%,
    50%,
    70%,
    90% {
        transform: translateX(-5px);
    }

    20%,
    40%,
    60%,
    80% {
        transform: translateX(5px);
    }
}

.is-shaking {
    animation: shake 0.5s;
    border: 2px solid #E3303C;
    /* エラー時は枠線も赤くしてみる */
}

/* --------------------------------------------------
   User Menu (Balloon)
-------------------------------------------------- */
.p-headerCustomArea__avatarBtn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    line-height: 0;
    border-radius: 50%;
    transition: opacity 0.3s;
}

.p-headerCustomArea__avatarBtn:hover {
    opacity: 0.8;
}

.p-headerCustomArea__avatarBtn img {
    border-radius: 50%;
    width: 40px;
    height: 40px;
    object-fit: cover;
}

.p-headerCustomArea__member {
    position: relative;
    /* margin-left: 20px; */
    /* custom-header.php側で調整済みの場合あり */
}

.p-userMenu {
    position: absolute;
    top: calc(100% + 15px);
    right: 0;
    width: 250px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    padding: 15px 0;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.2s ease;
    text-align: left;
}

.p-userMenu.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* 吹き出しの三角 */
.p-userMenu::before {
    content: "";
    position: absolute;
    top: -6px;
    right: 15px;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #fff;
}

.p-userMenu__header {
    padding: 0 15px 10px;
    border-bottom: 1px solid #eee;
    margin-bottom: 10px;
}

.p-userMenu__rankLabel {
    font-size: 0.75rem;
    color: #888;
    margin-bottom: 2px;
}

.p-userMenu__rankName {
    font-size: 1rem;
    font-weight: bold;
    color: #333;
}

.p-userMenu__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-userMenu__list li {
    margin: 0;
}

.p-userMenu__list a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    color: #333;
    text-decoration: none;
    font-size: 0.95rem;
    transition: background-color 0.2s;
}

.p-userMenu__list a:hover {
    background-color: #f7f9fa;
    color: #30A4E3;
}

.p-userMenu__divider {
    height: 1px;
    background: #eee;
    margin: 8px 0;
}

.p-userMenu__logout {
    color: #E3303C !important;
}

.p-userMenu__logout:hover {
    background: #fff1f1 !important;
}

/* --------------------------------------------------
   My Page (page-mypage.php)
-------------------------------------------------- */
.p-mypage {
    display: flex !important;
    flex-wrap: nowrap;
    justify-content: space-between;
    flex-direction: row !important;
    gap: 40px;
    padding-top: 40px;
    padding-bottom: 60px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    min-height: calc(100vh - 450px);
    /* フッターが浮かないように最小高さを確保 */
}

@media (max-width: 959px) {
    .p-mypage {
        flex-direction: column !important;
        padding-top: 0 !important;
        gap: 0;
    }

    .p-mypage__sidebar {
        width: 100% !important;
        order: 2 !important;
        position: static !important;
        /* スマホではsticky解除 */
        margin-top: 40px;
    }

    .p-mypage__main {
        width: 100% !important;
        max-width: 100% !important;
        order: 1 !important;
    }
}

/* Sidebar */
.p-mypage__nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-mypage__nav li {
    margin-bottom: 4px;
}

.p-mypage__nav li a {
    display: block;
    padding: 4px 12px;
    color: #666;
    text-decoration: none;
    font-size: 0.95rem;
    transition: color 0.3s;

}

.p-mypage__nav li.is-current a,
.p-mypage__nav li a:hover {
    background-color: #f0f4f8;
    /* 薄い青グレー背景 */
    color: #30A4E3;
    /* Primary Blue */
    padding-left: 16px;
    /* 少し右にずれるアニメーション */
}

.p-mypage__navDivider {
    height: 1px;
    background: #eee;
    margin: 20px 0;
}

.p-mypage__navButton {
    margin-top: 20px;
    text-align: center;
    /* ボタン自体を中央寄せ（お好みで） */
}

.p-mypage__navButton .c-btnOutline {
    color: #E3303C;
    border-color: #E3303C;
    padding: 8px 20px;
    /* テキストに合わせて少し調整 */
    width: auto;
    /* テキストに合わせる */
    min-width: 120px;
    /* 極端に小さくならないように */
    text-align: center;
}

.p-mypage__navButton .c-btnOutline:hover {
    background: #E3303C;
    color: #fff;
    border-color: #E3303C;
}

/* Sidebar explicit width & sticky positioning */
.p-mypage__sidebar {
    width: 300px !important;
    flex-shrink: 0;
    position: sticky;
    top: 80px;
    align-self: flex-start;
    padding: 20px 0;
    /* Matches .c-navSidebar padding in single.php */
}

.p-mypage__main {
    flex: 1;
    min-width: 0;
    max-width: calc(100% - 300px - 40px);
}

.c-btnOutline {
    display: inline-block;
    padding: 8px 30px;
    border: 1px solid #ccc;
    border-radius: 4px;
    color: #666;
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s;
}

.c-btnOutline:hover {
    border-color: #666;
    background: #f9f9f9;
}

/* Main Content */
.p-mypage__section {
    margin-bottom: 60px;
}

.p-mypage__title {
    font-size: 1.4rem;
    font-weight: bold;
    border-bottom: 1px solid #ccc;
    padding-bottom: 10px;
    margin-bottom: 30px;
    color: #333;
}

/* Avatar Area */
.p-mypage__avatarArea {
    display: flex;
    align-items: center;
    gap: 30px;
    margin-bottom: 40px;
    padding: 20px;
    background: #f9f9f9;
    border-radius: 8px;
}

.p-mypage__avatarCurrent img {
    border-radius: 50%;
    width: 100px;
    height: 100px;
    object-fit: cover;
    border: 3px solid #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.c-fileUploadBtn {
    display: inline-block;
    padding: 8px 16px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    color: #333;
    transition: all 0.3s;
}

.c-fileUploadBtn:hover {
    background: #f0f0f0;
}

.c-fileUploadBtn input[type="file"] {
    display: none;
}

.p-mypage__note {
    font-size: 0.8rem;
    color: #888;
    margin-top: 5px;
    margin-bottom: 0;
}

/* Table */
.p-mypage__table {
    width: 100%;
    border-collapse: collapse;
}

/* --------------------------------------------------
   My Page Styles (User added)
-------------------------------------------------- */
.p-mypage__table th,
.p-mypage__table td {
    padding: 20px;
    border-bottom: 1px solid #eee;
    text-align: left;
}

.p-mypage__table th {
    width: 200px;
    background: #f9f9f9;
    font-weight: normal;
    color: #555;
    vertical-align: middle;
}

.p-mypage__table td {
    color: #333;
    vertical-align: middle;
}

.p-mypage__emptyText {
    color: #aaa;
}

@media (max-width: 600px) {

    .p-mypage__table th,
    .p-mypage__table td {
        display: block;
        width: 100%;
    }

    .p-mypage__table th {
        padding-bottom: 5px;
        background: transparent;
        font-weight: bold;
    }

    .p-mypage__table td {
        padding-top: 5px;
        padding-left: 20px;
    }

    .p-mypage__avatarArea {
        flex-direction: column;
        text-align: center;
    }
}

/* Alert Box */
.c-alertBox {
    padding: 10px 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    font-size: 0.9rem;
}

.c-alertBox--success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.c-alertBox--error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* --------------------------------------------------
   Nav Sidebar (Common Component)
-------------------------------------------------- */
.c-navSidebar {
    padding: 20px 0;
}

.c-navSidebar__section {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #eaeaea;
    /* 上品な薄いグレー */
}

.c-navSidebar__section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.c-navSidebar__title {
    font-size: 15px;
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
    padding-left: 10px;
    border-left: 4px solid #30A4E3;
    /* アクセントカラーの線 */
    line-height: 1.4;
}

.c-navSidebar__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.c-navSidebar__list li {
    margin-bottom: 6px;
    /* 12px -> 6px */
}

.c-navSidebar__list a {
    text-decoration: none;
    color: #333;
    font-size: 0.95rem;
    padding: 4px 12px;
    /* 8px -> 4px */
    border-radius: 4px;
    transition: all 0.2s ease;
    display: block;
}

.c-navSidebar__list a:hover {
    background-color: #f0f4f8;
    /* 薄い青グレー背景 */
    color: #30A4E3;
    /* Primary Blue */
    padding-left: 16px;
    /* 少し右にずれるアニメーション */
}

/* サイドバーのスティッキー（SWELLのデフォルトIDに依存する場合があるが、独自IDで制御） */
#sidebar_scroll {
    position: sticky;
    top: 80px;
    /* ヘッダーの高さ分調整 */
}

/* --------------------------------------------------
   Single Post Layout (Custom 2-column)
-------------------------------------------------- */
.l-container--2col {
    display: flex !important;
    flex-wrap: nowrap;
    justify-content: space-between;
    flex-direction: row !important;
    gap: 50px;
    padding-top: 40px;
    padding-bottom: 60px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

.l-main {
    flex: 1;
    /* 残りの幅をすべて埋める */
    min-width: 0;
    /* Flex item content overflow fix */
    max-width: calc(100% - 300px - 40px);
    /* 念のため最大幅も計算（無くても良いが安全策） */
}

/* SWELLのサイドバー幅が300pxと仮定、あるいは合わせる */
.l-sidebar {
    width: 300px;
    flex-shrink: 0;
    order: -1 !important;
    /* Force sidebar to be first (Left) */
}

/* スマホ対応 */
@media screen and (max-width: 959px) {

    /* タブレット以下 */
    /* タブレット以下 */
    .l-container--2col {
        flex-direction: column !important;
        /* Desktopのrow !importantを上書き */
        gap: 0;
    }

    .l-main {
        width: 100%;
        max-width: 100%;
        /* Desktopの制限を解除 */
        margin-bottom: 60px;
    }

    .l-sidebar {
        width: 100%;
        order: 2 !important;
        /* Desktopの order: -1 !important を上書きして下に配置 */
    }
}

/* 記事タイトル周り（シンプルに） */
/* Old styles removed */

/* 記事タイトル周り（note風デザイン） */
.p-postThumb {
    margin-bottom: 24px;
    width: 100%;
}

.p-postThumb img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    /* PCでは少し角丸 */
}

/* スマホでのフルワイド・デザイン調整 */
@media screen and (max-width: 959px) {

    /* シングルページ（2カラムコンテナ）の余白削除 & コンテナサイド余白0 */
    .l-container--2col,
    .l-container,
    .l-contentWrapper,
    .p-mypage {
        padding-top: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .p-postThumb {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        max-width: none;
        margin-bottom: 20px;
        margin-top: 0;
    }

    .p-postThumb img {
        border-radius: 0;
        /* スマホでは角丸なし */
    }

    .c-postTitle {
        padding: 0 16px;
    }

    .c-postTitle__title {
        font-size: 24px;
        /* スマホで少し大きく */
        line-height: 1.4;
    }

    /* 記事本文フォントサイズ & 余白 */
    /* 記事本文フォントサイズ & 余白 */
    .p-postContent {
        font-size: 1rem;
        padding: 0 16px !important;
    }

    .p-postContent h2 {
        font-size: 20px;
    }

    .p-postContent h3 {
        font-size: 18px;
    }

    .p-postContent p {
        font-size: 16px;
    }

    /* その他アーカイブ・固定ページ等のラッパー調整 */
    .l-contentWrapper {
        flex-direction: column !important;
        gap: 0;
    }

    /* アーカイブ等のリストにも余白追加 */
    .p-postList--custom,
    .c-archiveTitle,
    .l-mainContent>*:not(.p-postThumb) {
        /* 画像以外（主にリストやタイトル）に余白適用。
            ただし.p-postList--custom自体にpaddingをつけるとグリッドが崩れる可能性があるため注意が必要だが、
            リスト形式なら大丈夫。念のため安全に。
          */
        padding-left: 16px;
        padding-right: 16px;
    }

    /* サイドバーにも余白 */
    .l-sidebar {
        padding: 20px;
    }

    /* マイページも同様 */
    /* マイページも同様 */
    .p-mypage__main,
    .p-mypage__sidebar {
        padding-left: 20px;
        padding-right: 20px;
        width: 100% !important;
    }

    .l-mainContent {
        width: 100%;
        max-width: 100%;
        margin-bottom: 60px;
    }
}

/* --------------------------------------------------
   Article Header Redesign
-------------------------------------------------- */
.c-postTitle {
    display: block !important;
    /* Ensure vertical stacking */
    margin-bottom: 40px;
}

.c-postTitle__main {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
}

.c-postTitle__icon {
    font-size: 24px;
    color: #999;
    padding-top: 5px;
    /* タイトルとの位置合わせ */
}

.c-postTitle__title {
    font-size: 26px;
    font-weight: bold;
    line-height: 1.4;
    margin: 0;
}

.c-postTitle__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 30px;
    width: 100%;
    /* Ensure full width for space-between */
}

.c-postTitle__date {
    font-size: 16px;
    color: #333;
    letter-spacing: 0.05em;
}

.c-postTitle__metaRight {
    display: flex;
    align-items: center;
    gap: 20px;
}

.c-postTitle__favorite {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #333;
}

.c-favBtn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.c-favBtn:hover {
    transform: scale(1.1);
}

.c-favBtn.-disabled {
    cursor: default;
}

.heart-svg {
    width: 20px;
    height: 20px;
    fill: #ccc;
    /* グレーに変更 */
    transition: fill 0.2s;
}

.c-favBtn.is-active .heart-svg {
    fill: #E3303C;
    /* お気に入り時は赤 */
}

/* Favorites Plugin Style Overrides (if needed) */
.simplefavorite-button {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    color: #333 !important;
    /* デフォルトの色 */
    font-size: 18px !important;
    cursor: pointer;
    vertical-align: middle;
    opacity: 1 !important;
    /* Force visibility */
}

/* Ensure icon is visible even when inactive */
.simplefavorite-button i {
    color: #333 !important;
}

/* 以前の誤ったCSS（\e906）を削除 */
/* .simplefavorite-button:not(.active) i:before { content: ... } */

.simplefavorite-button.active {
    color: #E3303C !important;
    /* ハートが赤くなる */
}

/* アイコンとテキストの位置調整 */
.simplefavorite-button i {
    font-size: 1.2em;
}

.c-postTitle__share {
    background: none;
    border: none;
    padding: 0;
    font-size: 20px;
    color: #666;
    cursor: pointer;
    transition: color 0.2s;
}

.c-postTitle__share:hover {
    color: #333;
}

/* --------------------------------------------------
   アーカイブ・お気に入りページ
-------------------------------------------------- */


.c-pageTitle {
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
    padding-bottom: 12px;
    margin-bottom: 30px;
    border-bottom: 1px solid #eee;
    letter-spacing: 0.05em;
    position: relative;
}

.c-pageTitle::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 2px;
    background-color: #333 !important;
    z-index: 1;
}

.post_content {
    margin-top: 0px !important;
}


.c-archiveTitle__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
    padding-bottom: 12px;
    margin-bottom: 30px;
    border-bottom: 1px solid #eee;
    letter-spacing: 0.05em;
    position: relative;
}


.c-archiveTitle__title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 60px;
    height: 2px;
    background-color: #333;
}


/* --------------------------------------------------
   カスタム記事一覧カード (.p-favItem)
-------------------------------------------------- */


.p-postList--custom {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.p-favItem {
    width: calc((100% - 48px) / 3);
    /* 3カラム (gap: 24px * 2 = 48px を3等分) */
    display: flex;
    flex-direction: column;
    margin-bottom: 24px;
    background: #fff;
    box-sizing: border-box;
}

@media (max-width: 959px) {
    .p-favItem {
        width: 100% !important;
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        padding: 15px 0;
        border-bottom: 1px solid #eee;
        margin-bottom: 0;
        gap: 15px;
    }

    .p-favItem__thumb {
        width: 40px !important;
        height: 40px !important;
        flex: 0 0 40px !important;
        order: 1 !important;
        /* Force Left */
        margin: 0 !important;
        flex-shrink: 0;
        border-radius: 50% !important;
        /* Make it circular */
    }

    .p-favItem__thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 4px;
    }

    .p-favItem__body {
        order: 2 !important;
        /* Force Right */
        width: auto;
        flex: 1;
        padding: 0;
    }

    /* タイトル（h3相当） */
    .p-favItem__title {
        font-size: 14px !important;
        font-weight: bold;
        margin-bottom: 8px !important;
        line-height: 1.5;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    /* メタ情報 */
    .p-favItem__meta {
        font-size: 12px;
        color: #999;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    /* -------------------------------------------
       Front Page Slider Override (Revert to Card)
       ------------------------------------------- */
    .p-frontSlider .p-favItem {
        flex-direction: column !important;
        align-items: stretch !important;
        border-bottom: none !important;
        padding: 0 !important;
        gap: 0 !important;
    }

    .p-frontSlider .p-favItem__thumb {
        width: 100% !important;
        max-width: none !important;
        flex: 0 0 auto !important;
        height: auto !important;
        aspect-ratio: 16/9 !important;
        order: -1 !important;
        /* Force to top */
        margin: 0 0 12px 0 !important;
    }

    .p-frontSlider .p-favItem__thumb img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .p-frontSlider .p-favItem__body {
        width: 100% !important;
        order: 0 !important;
    }

    .p-frontSlider .p-favItem__title {
        font-size: 1rem !important;
        -webkit-line-clamp: 3 !important;
        margin-bottom: 12px !important;
    }

    /* Meta Reorder for Front Page (Author Top, Likes Bottom) */
    .p-frontSlider .p-favItem__meta {
        flex-wrap: wrap !important;
        gap: 0 !important;
    }

    .p-frontSlider .p-favItem__author {
        order: 1 !important;
    }

    .p-frontSlider .p-favItem__actions {
        order: 2 !important;
        margin-left: auto !important;
    }

    .p-frontSlider .p-favItem__likes {
        order: 3 !important;
        width: 100% !important;
        margin-top: 8px !important;
        padding-top: 8px !important;
        /* create visual separation if needed */
    }
}

/* サムネイル */
.p-favItem__thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    margin-bottom: 12px;
    border-radius: 8px;
}

.p-favItem__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.p-favItem__thumb:hover img {
    transform: scale(1.05);
}

/* カードボディ */
.p-favItem__body {
    padding: 0;
}

/* Newバッジ */
.p-favItem__badge {
    display: inline-block;
    padding: 2px 10px;
    border: 1px solid #7FAFC8;
    color: #7FAFC8;
    background: #fff;
    font-size: 11px;
    border-radius: 4px;
    margin-bottom: 8px;
    line-height: 1.4;
    width: fit-content;
}

/* タイトル */
.p-favItem__title {
    font-size: 1rem !important;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 12px !important;
    margin-top: 0px !important;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.p-favItem__title a {
    color: inherit;
    text-decoration: none;
}

/* メタ情報（執筆者 + フォローボタン） */
/* メタ情報（執筆者 + フォローボタン） */
.p-favItem__meta {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-top: auto;
    margin-bottom: 12px;
    gap: 12px;
    /* いいねとアイコンの間隔 */
}

.p-favItem__author a {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #333;
    font-size: 0.8125rem;
    font-weight: 500;
}

.p-favItem__author img {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 8px;
    background: #eee;
}

/* アクション（フォローボタン等） */
.p-favItem__actions {
    margin-left: auto;
    /* 右端に寄せる */
}

/* フォローボタン */
.p-favItem__followBtn {
    background: #fff;
    border: 1px solid #333;
    color: #333;
    font-size: 11px;
    padding: 4px 12px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}

.p-favItem__followBtn:hover {
    background: #333;
    color: #fff;
}

/* フッター（いいね数） */
.p-favItem__footer {
    display: flex;
    align-items: center;
}

.p-favItem__likes {
    display: flex;
    align-items: center;
    font-size: 13px;
    color: #333;
}

.p-favItem__heart {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    margin-right: 4px;
    line-height: 0;
    display: inline-flex;
    align-items: center;
}

.p-favItem__heart .heart-svg {
    width: 20px;
    height: 20px;
    fill: #ccc;
    transition: fill 0.2s;
}

.p-favItem__heart.is-active .heart-svg {
    fill: #ff4b4b;
    stroke: #ff4b4b;
    /* 枠線もピンクに */
}

/* --------------------------------------------------
   フロントページ (.p-front)
-------------------------------------------------- */

/* FV */
.p-frontFV {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f0f8ff;
    /* プレースホルダー色 */
    overflow: hidden;
}

.p-frontFV__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('https://kaigooutbrain.com/wp-content/uploads/2026/01/top-fv.webp');
    /* 仮画像 */
    background-size: cover;
    background-position: center;
    z-index: 1;
}

/* 画像の上にオーバーレイをかける場合 */
.p-frontFV__bg::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(92, 175, 229, 0.5);
    /* #5CAFE5の50% */
}

.p-frontFV__content {
    position: relative;
    z-index: 2;
    text-align: center;
}

.p-frontFV__title {
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    margin-bottom: 30px;
    line-height: 1.5;
}

.p-frontFV__titleBig {
    font-size: 40px;
    display: block;
    margin-top: 10px;
}

.p-frontFV__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-top: 30px;
}

.p-frontFV__actions .p-frontFV__btn {
    width: 300px;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
    text-align: center;
    box-sizing: border-box;
}

.p-frontFV__btn {
    display: inline-block;
    padding: 15px 60px;
    background: #5CAFE5;
    color: #fff;
    font-weight: 700;
    border-radius: 4px;
    text-decoration: none;
    transition: opacity 0.3s;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.p-frontFV__btn:hover {
    opacity: 0.8;
}

/* メインコンテンツ幅 */
.l-mainContent.p-frontContent {
    max-width: 1280px;
    margin: 0 auto;
    padding: 60px 20px;
    background: transparent;
    /* SWELLのデフォルト背景を解除する場合 */
    box-shadow: none;
}

/* セクション共通 */
.p-frontSec {
    margin-bottom: 80px;
    margin-top: 80px;
}

.p-frontSec__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid #ddd;
    padding-bottom: 10px;
    margin-bottom: 30px;
}

.p-frontSec__title {
    font-size: 24px;
    font-weight: 700;
    color: #333;
    margin: 0;
}

.p-frontSec__nav {
    display: flex;
    gap: 10px;
}

.p-frontSec__arrow {
    width: 30px;
    height: 30px;
    border: 1px solid #ccc;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.p-frontSec__arrow::before {
    content: "";
    width: 8px;
    height: 8px;
    border-top: 2px solid #666;
    border-right: 2px solid #666;
    transform: rotate(45deg);
    display: block;
}

.p-frontSec__arrow.-prev::before {
    transform: rotate(-135deg);
    margin-left: 2px;
}

.p-frontSec__arrow.-next::before {
    margin-right: 2px;
}

/* スライダー */
.p-frontSlider {
    display: flex;
    overflow-x: auto;
    gap: 24px;
    scroll-snap-type: x mandatory;
    padding-bottom: 20px;
    /* スクロールバー用 */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Firefox */
}

.p-frontSlider::-webkit-scrollbar {
    display: none;
    /* Chrome/Safari */
}

.p-frontSlider__item {
    flex: 0 0 320px;
    /* カード幅固定 */
    scroll-snap-align: start;
}

/* fav_itemの上書き調整 */
.p-frontSlider__item .p-favItem {
    width: 100%;
    /* コンテナいっぱいに */
    margin-bottom: 0;
}

.p-frontSec__more {
    text-align: center;
    margin-top: 20px;
}

.c-btnMore {
    display: inline-block;
    padding: 10px 40px;
    background: #333;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    border-radius: 4px;
}

/* Aboutセクション */
.p-frontAbout {
    background: #fff;
    padding: 40px;
    /* 枠線内側の余白 */
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    /* うっすら影 */
    text-align: center;
    margin-top: 80px;
    width: 100%;
    border: 5px solid #EBF6FC;
    /* コンテンツ幅いっぱいに */
}


.p-frontAbout__title {
    display: inline-block;
    font-size: 20px;
    font-weight: 700;
    color: #333;
    margin-bottom: 40px;
    position: relative;
    padding: 0 20px;
}

.p-frontAbout__title::before,
.p-frontAbout__title::after {
    content: "●";
    color: #5CAFE5;
    margin: 0 10px;
}

.p-frontAbout__cols {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-bottom: 40px;
}

.p-frontAbout__col {
    width: 100%;
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-frontAbout__number {
    display: block;
    font-size: 24px;
    color: #5CAFE5;
    font-weight: 700;
    border-bottom: 2px solid #5CAFE5;
    width: 40px;
    margin: 0 auto 10px;
}

/* --------------------------------------------------
   Pagination Fix
-------------------------------------------------- */
.c-pagination .nav-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.p-frontAbout__img {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #fff;
    border: 2px solid #5CAFE5;
    border-radius: 8px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.p-frontAbout__img img {
    max-width: 80%;
    height: auto;
}

.p-frontAbout__text {
    font-size: 14px;
    font-weight: 700;
}

.p-frontAbout__lead {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 30px;
    font-weight: 700;
}

.p-frontAbout__btnArea {
    margin-top: 20px;
}

.u-text-blue {
    color: #5CAFE5;
}

@media (max-width: 768px) {
    .p-frontFV__titleBig {
        font-size: 28px;
    }

    .p-frontAbout__cols {
        flex-direction: column;
        align-items: center;
    }

    .p-frontSlider__item {
        flex: 0 0 280px;
    }
}

@media (max-width: 959px) {
    .p-frontSec__header {
        padding-left: 15px !important;
        padding-top: 10px !important;
    }
	
	
	
/* 親要素のインナーの制限を無視させる */
    .p-frontAbout__title {
        width: auto !important; /* 100%ではなくautoに戻す */
        margin-left: -40px !important;  /* 親のpadding分だけ左に突き出す */
        margin-right: -40px !important; /* 親のpadding分だけ右に突き出す */
        
        /* 見栄えの調整 */
        padding: 15px 20px !important; /* 上下の余白と、文字が端に寄らないための左右余白 */
    
        text-align: center;
    }
	
	
	
    .p-frontSlider__item {
        flex: 0 0 152px;
    }

    .l-mainContent.p-frontContent {
        max-width: 100%;
        margin: 0 auto;
        padding: 60px 0px;
        background: transparent;
        box-shadow: none;
    }

    /* Meta Info Container */
    body .p-favItem .p-favItem__meta {
        display: block !important;
        /* Stack Header and Footer */
        width: 100% !important;
        margin-top: 8px !important;
    }

    /* Row 1: Header (Cat + Status) */
    body .p-favItem .p-favItem__metaHeader {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;

        /* Spacing between Row 1 and Row 2 */
        width: 100% !important;
    }

    /* Row 2: Footer (Date + Likes) */
    body .p-favItem .p-favItem__metaFooter {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        /* Date Left, Likes Right */
        width: 100% !important;
    }

    /* Category Tag */
    body .p-favItem .c-catTag {
        display: inline-block !important;
        padding: 2px 8px !important;
        font-size: 10px !important;
        font-weight: bold !important;
        color: #30A4E3 !important;
        background: #eef7fc !important;
        border: 1px solid #d0e8f6 !important;
        border-radius: 4px !important;
        line-height: 1 !important;
        text-transform: uppercase !important;
        margin: 0 !important;
        /* Reset margins */
        width: auto !important;
    }

    /* Status Tag */
    body .p-favItem .c-statusTag {
        display: inline-flex !important;
        align-items: center !important;
        margin: 0 !important;
        /* Reset margins */
        white-space: nowrap !important;
        /* Inherit existing styles or ensure specific ones if needed */
    }

    /* Date */
    body .p-favItem .p-voicyList__date {
        font-size: 11px !important;
        margin: 0 !important;
        color: #999;
    }

    /* Likes */
    body .p-favItem .p-favItem__likes {
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
    }

    /* Card design (white bg, shadow) should be active by default,
       but if .p-favItem was overridden to be transparent/no shadow,
       we need to re-enable it here for mobile.
       Assuming .p-favItem has these styles by default and no specific
       override for mobile was present that removed them.
       If there was, add:
    .p-favItem {
        background: #fff !important;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
        border-radius: 8px !important;
    }
    */

    /* Fix thumb to 40px circle */
    .p-favItem__thumb {
        width: 40px !important;
        height: 40px !important;
        border-radius: 50% !important;
        overflow: hidden !important;
        /* Ensure image inside is clipped */
        flex-shrink: 0 !important;
        /* Prevent shrinking in flex containers */
    }

    .p-favItem__thumb img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }
}

/* End of media query */

/*********************************
 * Paywall Message
 *********************************/
.c-paywall {
    position: relative;
    margin: 40px auto 60px;
    padding: 0;
    max-width: 600px;
    overflow: hidden;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    text-align: center;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    border: 1px solid #eee;
}

/* 背景ぼかし演出（コンテンツが隠れているような演出用） */
.c-paywall::before {
    content: "";
    position: absolute;
    top: -80px;
    left: 0;
    width: 100%;
    height: 80px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
    pointer-events: none;
    z-index: 1;
}

.c-paywall__inner {
    position: relative;
    padding: 50px 30px;
    z-index: 2;
}

/* アイコン */
.c-paywall__icon {
    font-size: 42px;
    margin-bottom: 20px;
    line-height: 1;
    color: #333;
}

/* テキスト */
.c-paywall__text {
    font-size: 18px;
    font-weight: 700;
    color: #333;
    margin-bottom: 30px !important;
    line-height: 1.5;
}

/* ボタンラッパー */
.c-paywall__btnWrap {
    margin-bottom: 24px;
}

/* ボタン本体 */
.c-btn.-paywall {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 280px;
    padding: 16px 32px;
    background-color: #30A4E3;
    /* テーマカラーの水色に変更 */
    color: #fff !important;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    border-radius: 50px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(48, 164, 227, 0.3);
    line-height: 1.2;
}

.c-btn.-paywall:hover {
    background-color: #2691c9;
    /* ホバー時は少し濃く */
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(48, 164, 227, 0.4);
    opacity: 1;
}

/* サブテキスト（ログインリンクなど） */
.c-paywall__sub {
    font-size: 14px;
    color: #666;
    margin-bottom: 0 !important;
}

.c-paywall__sub a {
    color: #333;
    text-decoration: underline;
    font-weight: bold;
    transition: opacity 0.3s;
}

.c-paywall__sub a:hover {
    opacity: 0.7;
    color: #30A4E3;
}

/* スマホ対応 */
@media (max-width: 600px) {
    .c-paywall {
        margin: 30px 0px 50px;
        border-radius: 10px;
    }

    .c-paywall__inner {
        padding: 40px 20px;
    }

    .c-paywall__text {
        font-size: 16px;
        margin-bottom: 24px !important;
    }

    .c-paywall__icon {
        font-size: 36px;
        margin-bottom: 16px;
    }

    .c-btn.-paywall {
        width: 100%;
        min-width: auto;
        padding: 14px 20px;
        font-size: 15px;
    }
}


/* --------------------------------------------------
   Mobile Header Customization (Robust Fix)
-------------------------------------------------- */
@media screen and (max-width: 959px) {

    /* 1. Hide DEFAULT SWELL Mobile Elements */
    .l-header__logo,
    .l-header__menuBtn,
    .c-iconBtn.-menu,
    .c-iconBtn.-search,
    .l-header__customBtn {
        display: none !important;
    }

    .p-headerCustomArea__avatarBtn img {
        border-radius: 50%;
        width: 32px;
        height: 32px;
        object-fit: cover;
    }

    /* 2. Container Adjustment */
    .l-header__inner {
        padding: 0 10px !important;
        display: flex;
        align-items: center;
        height: 100%;
    }

    /* 3. Custom Header Area acts as Main Mobile Header */
    .p-headerCustomArea {
        display: flex;
        align-items: center;
        width: 100%;
        height: 100%;
        gap: 0;
    }

    /* Mobile Logo (Left) */
    .p-headerCustomArea__mobileLogo {
        display: flex;
        align-items: center;
        max-width: 240px;
        height: 100%;
    }

    .p-headerCustomArea__mobileLogo a {
        display: flex;
        align-items: center;
        line-height: 0;
    }

    .p-headerCustomArea__mobileLogo img {
        height: auto;
        max-height: 40px;
        width: auto;
        vertical-align: middle;
    }

    /* Search Wrapper - Right aligned, next to login button */
    .p-headerCustomArea__searchWrapper {
        display: flex;
        align-items: center;
        width: auto !important;
        margin-left: auto !important;
        margin-right: 4px;
    }

    /* Search Trigger */
    .p-headerCustomArea__searchTrigger {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        background: none;
        border: none;
        font-size: 24px;
        color: #333;
        cursor: pointer;
        padding: 0;
    }

    /* Login Area (Right) */
    .p-headerCustomArea__guest,
    .p-headerCustomArea__member {
        /* No specific styles needed for wrapper */
    }

    /* Login Button Style */
    .c-btnLogin {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        padding: 0 12px !important;
        height: 34px !important;
        font-size: 13px !important;
        background-color: #30A4E3;
        color: #fff !important;
        border-radius: 99px;
        white-space: nowrap !important;
        font-weight: bold;
        line-height: 1 !important;
        box-sizing: border-box;
    }

    /* Hide Desktop Search Form */
    .p-headerCustomArea__search {
        display: none !important;
    }

    /* Fix Search Menu Position */
    .p-searchMenu {
        top: 60px;
        left: 0;
        right: 0;
        width: 100%;
    }
}

/* Hide Mobile Logo on Desktop */
.p-headerCustomArea__mobileLogo {
    display: none;
}

.p-headerCustomArea__searchTrigger {
    display: none;
}

@media screen and (max-width: 959px) {
    .p-headerCustomArea__mobileLogo {
        display: block;
    }

    .p-headerCustomArea__searchTrigger {
        display: inline-flex;
    }
}

/* Login Button Text - PC/SP switch */
.c-btnLogin__textSp {
    display: none;
}

@media screen and (max-width: 959px) {
    .c-btnLogin__textPc {
        display: none;
    }

    .c-btnLogin__textSp {
        display: inline;
    }
}

/* ====================================
   Front Page v2 (Voicy-like List)
   ==================================== */
/* 詳細度を上げてスタイルが確実に当たるように調整 */
body .p-voicyList {
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    max-width: 800px;
    margin: 0 auto;
}

body .p-voicyList__item {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    background: #f9f9f9;
    /* 少し明るめに変更 */
    border-radius: 8px;
    margin-bottom: 15px;
    text-decoration: none;
    color: #333;
    border: 1px solid #eee;
    /* 薄い境界線を追加 */
    transition: all 0.2s ease;
}

body .p-voicyList__item:last-child {
    margin-bottom: 0;
}

body .p-voicyList__item:hover {
    background: #fff;
    /* ホバー時は白に */
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    /* 影を少し強調 */
    border-color: #ddd;
}

body .p-voicyList__icon {
    width: 48px;
    /* 少し大きく */
    height: 48px;
    background: #e0e0e0;
    border-radius: 50%;
    flex-shrink: 0;
}

body .p-voicyList__content {
    flex-grow: 1;
    min-width: 0;
}

body .p-voicyList__title {
    font-size: 16px;
    /* フォントサイズ微増 */
    font-weight: bold;
    margin: 0 0 6px 0;
    line-height: 1.5;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

body .p-voicyList__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    color: #777;
}

/* タグスタイル */
body .c-statusTag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 4px;
    border: 1px solid transparent;
}

body .c-statusTag--free {
    background: #eff3f5;
    color: #d43543;
    border-color: #d43543;
}

body .c-statusTag--paid {
    background: #fff;
    color: #333;
    border-color: #ccc;
    position: relative;
    padding-left: 22px;
}

body .c-statusTag--paid .c-icon-lock {
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    /* アイコンの色を濃く調整 */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23333' d='M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    display: inline-block;
}

body .p-voicyList__date {
    color: #999;
    font-size: 0.9em;
    font-family: "Helvetica Neue", Arial, sans-serif;
    letter-spacing: 0.05em;
}

/* スマホ対応 */
@media (max-width: 768px) {
    body .p-voicyList {
        padding: 20px 15px;
        background: transparent;
        /* スマホでは背景透過で馴染ませる */
        box-shadow: none;
    }

    body .p-voicyList__item {
        background: #fff;
        padding: 15px;
        gap: 12px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    }

    body .p-voicyList__icon {
        width: 40px;
        height: 40px;
    }

    body .p-voicyList__title {
        font-size: 15px;
    }
}

/* ====================================
   Custom Post List (Voicy-like Style Override)
   ==================================== */
/* p-postList--custom 配下の .p-favItem をリスト形式に強制変換 */

body .p-postList--custom {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    max-width: 800px;
    margin: 0 auto 60px;
    /* 下部マージン確保 */
    position: relative;
    /* Stretched Link用 */
}

/* スマホ対応: コンテナ */
@media (max-width: 768px) {
    body .p-postList--custom {
        padding: 20px 0;
        /* 左右padding除去 */
        background: transparent;
        box-shadow: none;
    }
}

/* リストアイテム (.p-favItem) */
body .p-postList--custom .p-favItem {
    width: 100% !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 15px !important;
    padding: 15px 20px !important;
    background: #f9f9f9 !important;
    border-radius: 8px !important;
    margin-bottom: 0 !important;
    /* gapで制御するため */
    border: 1px solid #eee !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;
    position: relative !important;
    /* Stretched Linkの基準 */
}

body .p-postList--custom .p-favItem:hover {
    background: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    border-color: #ddd !important;
}

/* スマホ対応: アイテム */
@media (max-width: 768px) {
    body .p-postList--custom .p-favItem {
        background: #fff !important;
        padding: 15px !important;
        gap: 12px !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03) !important;
    }
}

/* リンクをカード全体に広げる (Stretched Link) */
body .p-postList--custom .p-favItem__title a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* ハートボタンをリンクの上に配置 */
body .p-postList--custom .c-favBtn {
    position: relative;
    z-index: 2;
    /* リンクより上 */
}

/* サムネイル (.p-favItem__thumb) - 小さな円形にする */
body .p-postList--custom .p-favItem__thumb {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    /* 固定幅 */
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    margin-bottom: 0 !important;
    margin-right: 0 !important;
    order: 0 !important;
    /* 左側に */
    background: #e0e0e0;
    /* 背景色（画像がない場合用） */
}

/* スマホでもサイズ維持 */
@media (max-width: 768px) {
    body .p-postList--custom .p-favItem__thumb {
        width: 40px !important;
        height: 40px !important;
        flex: 0 0 40px !important;
    }
}

body .p-postList--custom .p-favItem__thumb img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

/* 本文エリア (.p-favItem__body) */
body .p-postList--custom .p-favItem__body {
    flex-grow: 1 !important;
    width: auto !important;
    padding: 0 !important;
    order: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

/* タイトル (.p-favItem__title) */
body .p-postList--custom .p-favItem__title {
    font-size: 16px !important;
    font-weight: bold !important;
    margin: 0 0 6px 0 !important;
    line-height: 1.5 !important;
    color: #333 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 768px) {
    body .p-postList--custom .p-favItem__title {
        font-size: 15px !important;
    }
}

/* メタ情報 (.p-favItem__meta) */
body .p-postList--custom .p-favItem__meta {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    font-size: 12px !important;
    color: #777 !important;
    justify-content: flex-start !important;
}

@media (max-width: 768px) {
    body .p-postList--custom .p-favItem__meta {
        display: flex !important;
        align-items: center !important;

        margin: 0 !important;
        font-size: 12px !important;
        color: #777 !important;
        justify-content: flex-start !important;
    }
}


/* メタ内の要素順序整理 */
/* 執筆者を先頭に */
body .p-postList--custom .p-favItem__author {
    display: flex;
    align-items: center;
}

body .p-postList--custom .p-favItem__author img {
    width: 20px !important;
    height: 20px !important;
    margin-right: 5px !important;
}

body .p-postList--custom .p-favItem__authorName {
    font-size: 12px !important;
}

/* 「NEW」バッジの調整 */
body .p-postList--custom .p-favItem__badge {
    display: inline-block;
    margin-right: 8px;
    margin-bottom: 0 !important;
    padding: 2px 6px;
    font-size: 10px;
    vertical-align: middle;
}

/* いいねボタン・フォローボタン等の非表示（必要に応じて表示制御） */
/* Voicy風リストではシンプルにするため、一部要素は非表示またはスタイル調整 */
body .p-postList--custom .p-favItem__actions {
    display: none !important;
    /* リスト表示ではフォローボタン等は一旦隠す（スペースがないため） */
}

/* いいね数 */
body .p-postList--custom .p-favItem__likes {
    margin-left: auto !important;
    /* 右端へ */
    font-size: 12px !important;
}

/* ====================================
   Header Favorite Button
   ==================================== */
.p-headerCustomArea__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: #333;
    font-size: 22px;
    /* 少し調整 */
    text-decoration: none;
    transition: opacity 0.3s;
    margin-right: 5px;
}

.p-headerCustomArea__btn:hover {
    opacity: 0.7;
    color: #E3303C;
    /* ホバー時は赤く */
}

/* スマホでは検索トリガーの左に並ぶので、余白調整等は親要素のflex gap等に依存するが
   searchWrapperは gap指定がないので margin-right で調整済み */

/* カテゴリータグ (.c-catTag) */
body .p-postList--custom .c-catTag {
    display: inline-block !important;
    padding: 4px 10px !important;
    font-size: 13px !important;
    font-weight: bold !important;
    color: #30A4E3 !important;
    background: #eef7fc !important;
    border: 1px solid #d0e8f6 !important;
    border-radius: 4px !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    margin-bottom: 4px !important;
}

@media (max-width: 768px) {
    body .p-postList--custom .c-catTag {
        padding: 4px 10px !important;
        font-size: 13px !important;
        margin-bottom: 0px !important;
    }
}

/* --------------------------------------------------
   Single Post Title Tags Area
-------------------------------------------------- */
.c-postTitle__tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    padding: 0 5px;
}

/* カテゴリータグ (シングルページ用) */
.c-postTitle__tags .c-catTag {
    display: inline-block;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: bold;
    color: #30A4E3;
    background: #eef7fc;
    border: 1px solid #d0e8f6;
    border-radius: 4px;
    line-height: 1;
}

/* ハッシュタグ */
.c-hashTag {
    display: inline-block;
    font-size: 13px;
    color: #666;
    background: transparent;
    padding: 2px 4px;
    border-radius: 4px;
    text-decoration: none;
    transition: color 0.2s;
}

.c-hashTag:hover {
    color: #30A4E3;
}

/* スマホ調整 */
@media screen and (max-width: 959px) {
    .c-postTitle__tags {
        padding: 0 16px;
        margin-bottom: 15px;
    }
}

/* --------------------------------------------------
   Front Page v3 Layout Adjustment
-------------------------------------------------- */
/* 2カラムレイアウト内のp-frontSecの上部余白を削除して、サイドバーと高さを合わせる */
.l-container--2col .l-main .p-frontSec {
    margin-top: 0;
}

/* スマホなどで隙間が空きすぎないように調整 */
@media screen and (max-width: 959px) {
    .l-container--2col .l-main .p-frontSec {
        margin-top: 0;
        margin-bottom: 40px;
    }
}

/* --------------------------------------------------
   Front Page FV Buttons (Vertical Layout)
-------------------------------------------------- */
.p-frontFV__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    /* ボタン間の間隔 */
    width: 100%;
}

/* サブボタン（無料記事はこちら）のデザイン調整 */
.p-frontFV__btn--sub {
    background: #fff;
    color: #5CAFE5;
    border: 2px solid #5CAFE5;
    /* メインボタンの青に合わせる */
}

.p-frontFV__btn--sub:hover {
    background: #eef7fc;
    opacity: 1;
    /* hover時の透明化を打ち消し */
}

/* --------------------------------------------------
   Utility Classes
-------------------------------------------------- */
@media screen and (min-width: 769px) {
    .u-sp-only {
        display: none !important;
    }
}

@media screen and (max-width: 768px) {
    .u-pc-only {
        display: none !important;
    }
}

/* メタ内の要素順序整理 */
/* 執筆者を先頭に */
body .p-postList--custom .p-favItem__author {
    display: flex;
    align-items: center;
}

body .p-postList--custom .p-favItem__author img {
    width: 20px !important;
    height: 20px !important;
    margin-right: 5px !important;
}

body .p-postList--custom .p-favItem__authorName {
    font-size: 12px !important;
}

/* 「NEW」バッジの調整 */
body .p-postList--custom .p-favItem__badge {
    display: inline-block;
    margin-right: 8px;
    margin-bottom: 0 !important;
    padding: 2px 6px;
    font-size: 10px;
    vertical-align: middle;
}

/* いいねボタン・フォローボタン等の非表示（必要に応じて表示制御） */
/* Voicy風リストではシンプルにするため、一部要素は非表示またはスタイル調整 */
body .p-postList--custom .p-favItem__actions {
    display: none !important;
    /* リスト表示ではフォローボタン等は一旦隠す（スペースがないため） */
}

/* いいね数 */
body .p-postList--custom .p-favItem__likes {
    margin-left: auto !important;
    /* 右端へ */
    font-size: 12px !important;
}

/* ====================================
   Header Favorite Button
   ==================================== */
.p-headerCustomArea__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: #333;
    font-size: 22px;
    /* 少し調整 */
    text-decoration: none;
    transition: opacity 0.3s;
    margin-right: 5px;
}

.p-headerCustomArea__btn:hover {
    opacity: 0.7;
    color: #E3303C;
    /* ホバー時は赤く */
}

/* スマホでは検索トリガーの左に並ぶので、余白調整等は親要素のflex gap等に依存するが
   searchWrapperは gap指定がないので margin-right で調整済み */


/* --------------------------------------------------
   Single Post Title Tags Area
-------------------------------------------------- */
.c-postTitle__tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    padding: 0 5px;
}

/* カテゴリータグ (シングルページ用) */
.c-postTitle__tags .c-catTag {
    display: inline-block;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: bold;
    color: #30A4E3;
    background: #eef7fc;
    border: 1px solid #d0e8f6;
    border-radius: 4px;
    line-height: 1;
    margin-bottom: 5px;
}

/* ハッシュタグ */
.c-hashTag {
    display: inline-block;
    font-size: 13px;
    color: #666;
    background: transparent;
    padding: 2px 4px;
    border-radius: 4px;
    text-decoration: none;
    transition: color 0.2s;
}

.c-hashTag:hover {
    color: #30A4E3;
}

/* スマホ調整 */
@media screen and (max-width: 959px) {
    .c-postTitle__tags {
        padding: 0 16px;
        margin-bottom: 15px;
    }
}

/* --------------------------------------------------
   Front Page v3 Layout Adjustment
-------------------------------------------------- */
/* 2カラムレイアウト内のp-frontSecの上部余白を削除して、サイドバーと高さを合わせる */
.l-container--2col .l-main .p-frontSec {
    margin-top: 0;
}

/* スマホなどで隙間が空きすぎないように調整 */
@media screen and (max-width: 959px) {
    .l-container--2col .l-main .p-frontSec {
        margin-top: 0;
        margin-bottom: 40px;
    }
}

/* --------------------------------------------------
   Front Page FV Buttons (Vertical Layout)
-------------------------------------------------- */
.p-frontFV__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    /* ボタン間の間隔 */
    width: 100%;
}

/* サブボタン（無料記事はこちら）のデザイン調整 */
.p-frontFV__btn--sub {
    background: #fff;
    color: #5CAFE5;
    border: 2px solid #5CAFE5;
    /* メインボタンの青に合わせる */
}

.p-frontFV__btn--sub:hover {
    background: #eef7fc;
    opacity: 1;
    /* hover時の透明化を打ち消し */
}

/* --------------------------------------------------
   Utility Classes
-------------------------------------------------- */
@media screen and (min-width: 769px) {
    .u-sp-only {
        display: none !important;
    }
}

@media screen and (max-width: 768px) {
    .u-pc-only {
        display: none !important;
    }
}

/* --------------------------------------------------
   Fav Item Meta Refactor
-------------------------------------------------- */
.p-favItem__metaHeader {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 0;
}

.p-favItem__metaFooter {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Final Override for Mobile Meta Layout to remove gap */
@media (max-width: 768px) {
    body .p-postList--custom .p-favItem__meta {
        display: flex !important;
        flex-direction: column !important;
        /* Force vertical */
        align-items: stretch !important;
        /* Full width */
        gap: 0 !important;
        /* No gap */
        justify-content: flex-start !important;
    }

    body .p-postList--custom .p-favItem__metaHeader {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* --------------------------------------------------
   Mobile Adjustments & Front Page Sync
-------------------------------------------------- */
@media (max-width: 959px) {

    /* Archive Title Margin */
    .c-archiveTitle {
        margin-top: 20px !important;
    }

    /* Override Front Page Slider Styles to match Card Layout */
    .p-frontSlider .p-favItem {
        flex-direction: row !important;
        /* Revert to row (list style) */
        align-items: flex-start !important;
        border-bottom: 1px solid #eee !important;
        padding: 15px 0 !important;
        gap: 15px !important;
    }

    .p-frontSlider .p-favItem__thumb {
        width: 40px !important;
        height: 40px !important;
        flex: 0 0 40px !important;
        order: 1 !important;
        /* Image Left */
        margin: 0 !important;
        aspect-ratio: auto !important;
        /* Reset aspect ratio */
    }

    .p-frontSlider .p-favItem__body {
        width: auto !important;
        flex: 1 !important;
        order: 2 !important;
        /* Content Right */
    }

    .p-frontSlider .p-favItem__meta {
        /* Inherit the column layout from the main .p-favItem__meta rule */
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        gap: 0 !important;
    }

    /* Reset reordering */
    .p-frontSlider .p-favItem__author,
    .p-frontSlider .p-favItem__actions,
    .p-frontSlider .p-favItem__likes {
        order: initial !important;
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
    }

    /* Ensure likes align correctly in footer */
    .p-frontSlider .p-favItem__likes {
        margin-left: auto !important;
        width: auto !important;
    }
}

/* --------------------------------------------------
   Voicy List Refactor (Meta Layout)
-------------------------------------------------- */
.p-voicyList__meta {
    display: flex;
    flex-direction: column !important;
    /* Force 2-row layout */
    align-items: stretch;
    justify-content: flex-start;
    margin-top: auto;
    gap: 0 !important;
}

.p-voicyList__metaHeader {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 0;
    padding-bottom: 0px;
}

.p-voicyList__metaFooter {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* Date left aligned */
}

/* Ensure mobile overrides don't break this if they target generic meta */
@media (max-width: 959px) {
    .p-voicyList__meta {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
    }
}

/* 
   NOTE: p-voicyList styles have been superseded by p-favItem structure on Front Page.
   Existing p-voicyList styles can be removed in a future cleanup if confirmed unused elsewhere.
   For now, strictly relying on p-favItem styles which are already verified.
*/

/* Mobile Breadcrumb Padding */
@media (max-width: 959px) {

    .c-breadcrumb,
    .c-breadcrumbs {
        padding-left: 16px !important;
    }
}

/* Mobile Post List Padding */
@media (max-width: 959px) {
    .p-postList--custom {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* PC Default: Horizontal, Space Between */
.p-favItem__meta {
    display: flex;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 10px;
    width: 100%;
    margin-top: auto;
}

/* Mobile Override: Vertical Layout */
@media (max-width: 959px) {
    .p-favItem__meta {
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
    }

    .p-favItem__metaFooter {
        width: 100%;
        justify-content: space-between;
        margin-top: 4px;
    }
}

/* PC Specific: Force Footer to Right */
@media (min-width: 960px) {
    .p-favItem__meta .p-favItem__metaFooter {
        margin-left: auto !important;
        /* Pushes footer to the right */
    }
}

/* --------------------------------------------------
   A-3班：関連記事のテキスト表示化（サムネイル非表示）
-------------------------------------------------- */
.p-relatedPosts .p-postList__thumb {
    display: none !important;
}

.p-relatedPosts .p-postList__body {
    width: 100% !important;
    padding-left: 0 !important;
    max-width: none !important;
}

.p-relatedPosts .p-postList__item {
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

/* --------------------------------------------------
   A-2班：ログイン・パスワードリセット周りの調整
-------------------------------------------------- */
/* ログインモーダル内のリンク強調 */
.c-link--forgot {
    color: #30A4E3;
    text-decoration: underline;
    font-weight: bold;
    display: block;
    margin-top: 10px;
}

/* --------------------------------------------------
   A-3班 (Batch 2)：記事詳細デザイン修正
-------------------------------------------------- */
/* タグをBorderで囲み角丸に・SWELLスタイル上書き */
.c-postTitle__tagRow a.c-catTag,
.c-postTitle__tagRow a.c-hashTag {
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 4px 10px;
    background: #fff;
    color: #333;
    font-size: 13px;
    text-decoration: none;
    display: inline-block;
    margin-right: 5px;
    margin-bottom: 5px;
    transition: all 0.3s;
}

.c-postTitle__tagRow a.c-catTag:hover,
.c-postTitle__tagRow a.c-hashTag:hover {
    background: #f5f5f5;
    border-color: #999;
}

/* シンプルでおしゃれなデザインにするため、既存の装飾をリセット */
.c-postTitle {
    background: transparent !important;
    padding: 0 !important;
    margin-bottom: 40px !important;
    text-align: left !important;
}

.c-postTitle__title {
    font-size: 2rem !important;
    line-height: 1.4 !important;
    margin-bottom: 20px !important;
    color: #333 !important;
    border: none !important;
    padding: 0 !important;
    /* 下線を引くならここ */
    border-bottom: 1px solid #eee !important;
    padding-bottom: 20px !important;
}

.c-postTitle__tags {
    margin-bottom: 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

/* アイキャッチ（背景など）を無効化 */
.c-postTitle__bg {
    display: none !important;
}

/* メタ情報のレイアウト */
.c-postTitle__meta {
    margin-top: 10px;
    color: #999;
    font-size: 0.9rem;
}



/* ハッシュタグのみ楕円・小ぶりに */
.c-postTitle__tagRow a.c-hashTag {
    border-radius: 99px;
    font-size: 11px;
    padding: 3px 12px;
}

/* 記事本文内のH2デザイン変更：消えていく下線 */
.p-postContent h2 {
    position: relative;
    padding: 0.25em 0;
    background: none !important;
    /* 既存の背景装飾をリセット */
    border: none !important;
    /* 既存の枠線装飾をリセット */
}

.p-postContent h2::after {
    content: "";
    display: block;
    height: 4px;
    background: -webkit-linear-gradient(to right, rgb(230, 90, 90), transparent);
    background: linear-gradient(to right, rgb(230, 90, 90), transparent);
}

/* ==================================================
   Added styles from page-reset-password.php
   ================================================== */
/* ページ固有のスタイル（モダンなカードデザイン） */
body {
    background-color: #f7f9fb;
    /* 全体の背景色（薄いグレー） */
}

.l-reset-password-page {
    /* 親コンテナ(l-container)の幅制限を解除して全幅にする */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);

    min-height: calc(100vh - 160px);
    /* ヘッダー・フッター分を考慮して高さを確保 */
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 60px 20px;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
}

.p-reset-card {
    background-color: #ffffff;
    width: 100%;
    max-width: 520px;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    /* ふんわりしたリッチな影 */
    overflow: hidden;
    position: relative;
    border: 1px solid rgba(0, 0, 0, 0.02);
}

.p-reset-card__header {
    padding: 25px 30px;
    border-bottom: 1px solid #f0f0f0;
    text-align: center;
    background: #fff;
}

.p-reset-card__title {
    font-size: 20px;
    font-weight: 700;
    color: #333;
    margin: 0;
    line-height: 1.4;
}

.p-reset-card__body {
    padding: 35px 40px 40px;
}

.p-reset-form-group {
    margin-bottom: 24px;
    position: relative;
}

.p-reset-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
    font-size: 14px;
    color: #444;
}

.p-reset-input-wrapper {
    position: relative;
}

.p-reset-input {
    width: 100%;
    padding: 14px 16px;
    font-size: 16px;
    color: #333;
    border: 2px solid #eee;
    border-radius: 8px;
    background-color: #fcfcfc;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.p-reset-input:focus {
    outline: none;
    border-color: #11a0d2;
    /* SWELLブルー */
    background-color: #fff;
    box-shadow: 0 0 0 4px rgba(17, 160, 210, 0.1);
}

.p-reset-toggle-btn {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: #999;
    padding: 8px;
    line-height: 1;
    transition: color 0.2s;
}

.p-reset-toggle-btn:hover {
    color: #11a0d2;
}

.p-reset-toggle-btn .dashicons {
    font-size: 20px;
    width: 20px;
    height: 20px;
}

.p-reset-hint {
    font-size: 13px;
    color: #888;
    line-height: 1.6;
    margin-bottom: 24px;
    background: #f9f9f9;
    padding: 12px;
    border-radius: 6px;
}

.p-reset-actions {
    margin-top: 10px;
}

.p-reset-btn-main {
    display: block;
    width: 100%;
    padding: 16px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    background-color: #11a0d2;
    /* SWELLブルー */
    border: none;
    border-radius: 50px;
    /* 丸みのあるボタン */
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(17, 160, 210, 0.3);
}

.p-reset-btn-main:hover {
    background-color: #0d8ebc;
    box-shadow: 0 6px 16px rgba(17, 160, 210, 0.4);
    transform: translateY(-1px);
}

.p-reset-btn-sub {
    background: none;
    border: 1px solid #11a0d2;
    color: #11a0d2;
    font-size: 13px;
    font-weight: bold;
    padding: 8px 16px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s;
    float: right;
    margin-bottom: 10px;
}

.p-reset-btn-sub:hover {
    background-color: #ebf8fc;
}

.p-strength-meter {
    height: 4px;
    background: #eee;
    margin-top: 8px;
    border-radius: 2px;
    overflow: hidden;
    position: relative;
    display: none;
    /* 初期非表示 */
}

.p-strength-meter-bar {
    height: 100%;
    width: 0;
    transition: width 0.3s, background-color 0.3s;
}

/* モバイル対応 */
@media (max-width: 600px) {
    .p-reset-card {
        box-shadow: none;
        border: 1px solid #eee;
    }

    .l-reset-password-page {
        padding: 40px 16px;
    }
}

/* ==================================================
   Added styles from functions.php (Login Modal)
   ================================================== */
.p-loginModal__captchaInner {
    display: flex;
    gap: 10px;
    align-items: center;
}

@media screen and (max-width: 600px) {
    .p-loginModal {
        align-items: flex-start !important;
        padding-top: 40px;
        padding-bottom: 40px;
        overflow-y: auto;
    }

    .p-loginModal__content {
        padding: 20px !important;
        max-height: 480px;
        /* 400pxだとCAPTCHAありだと厳しい場合があるため少し余裕を持たせつつ調整可能に */
        overflow-y: auto;
        margin-bottom: 40px;
    }

    .p-loginModal__header {
        margin-bottom: 10px !important;
        padding-bottom: 5px !important;
    }

    .p-loginModal__title {
        font-size: 1.1rem !important;
    }

    .p-loginModal__body p {
        margin-bottom: 8px !important;
    }

    .p-loginModal__body label {
        font-size: 0.8rem !important;
        margin-bottom: 3px !important;
    }

    .p-loginModal__body input[type="text"],
    .p-loginModal__body input[type="password"] {
        padding: 8px 12px !important;
    }

    .p-loginModal__captcha {
        margin: 10px 0 !important;
    }

    .p-loginModal__captchaInner {
        flex-direction: column;
        align-items: stretch !important;
        gap: 10px;
    }

    #xo-security-captcha-img {
        width: 120px !important;
        height: 44px !important;
    }

    #xo_security_captcha {
        width: 100% !important;
        flex: none !important;
    }

    .p-loginModal__register {
        padding-top: 15px !important;
    }
}

/* Following the user request for mobile spacing adjustments */
@media (max-width: 768px) {
    .c-archiveTitle__title {
        margin-top: 15px !important;
    }

    .c-postTitle {
        margin-top: 15px !important;
    }

    .p-breadcrumb,
    .c-breadcrumb {
        padding-left: 20px !important;
    }

    .c-postTitle__newBadge {
        margin-top: 15px !important;
    }

    .p-mypage__title {
        margin-top: 10px;
    }
}

/* ====================================
   Q&A・退会ページのフッター位置調整
   ==================================== */
/* SWELLは body_class() を <body> ではなく #body_wrap に出力するため
   セレクタは #body_wrap.page-template-* を使用する */

/* #body_wrap をflex columnにしてフッターを最下部に固定 */
#body_wrap.page-template-page-qa,
#body_wrap.page-template-page-qa-php,
#body_wrap.page-template-page-unsubscribe,
#body_wrap.page-template-page-unsubscribe-php {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
}

/* flex column化による子要素の幅縮小を防止 */
#body_wrap.page-template-page-qa>*,
#body_wrap.page-template-page-qa-php>*,
#body_wrap.page-template-page-unsubscribe>*,
#body_wrap.page-template-page-unsubscribe-php>* {
    width: 100% !important;
}

/* メインコンテンツエリアを伸長させてフッターを押し下げる */
#body_wrap.page-template-page-qa>#content,
#body_wrap.page-template-page-qa-php>#content,
#body_wrap.page-template-page-unsubscribe>#content,
#body_wrap.page-template-page-unsubscribe-php>#content {
    flex: 1 1 auto !important;
}

.sp-br{
	display:none;
}

@media (max-width: 768px) {
	.sp-br{
		display:block;
	}
	.p-frontAbout{
		padding:20px;
	}
	.p-signupLp .l-container{
		padding-left:0px !important;
		padding-right:0px !important;
	}
	
	.p-signupLp__intro p{
		text-align:left;
	}
	.p-signupLp__pricing p{
		text-align:left;
	}
	.p-signupLp__profileDesc{
		text-align:left;
	}
}