/* 司法書士ページ専用スタイル */
.pcshow {
    display: block !important;
}

.spshow {
    display: none !important;
}

section.superiority .main .items .item .text p span {
    background-color: initial;
}

.item-margin-left {
    margin-left: 82px;
}

.w-50 {
    width: 50%;
}

.c-shiho-btn-container-padding-initial {
    padding: 8px 0px 10px !important;
}

@media (min-width: 1024px) {
    section.superiority .main .items .item:nth-child(2n) .text p {
        margin-left: initial;
    }
}

@media (max-width: 1000px) {
    .cta-section {
        padding: initial;
        width: initial;
    }
}

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

    .spshow {
        display: block !important;
    }

    .webtitle-type1 .subtitle {
        font-size: 11px;
        font-weight: 600;
    }

    .faq .webtitle-type1 h2 {
        font-size: 24px;
    }

    section.slogan .main {
        padding: 0 10px 88px !important;
    }

    section.superiority {
        padding: 0px 16px !important;
        background: #fff4f5;
    }

    .webtitle-type1 h2 {
        font-size: 0.7em !important;
    }

    section.superiority .main {
        padding: 0 0px !important;
    }

    .superiority .item-header h3 {
        font-size: 24px !important;
    }

    section.superiority .items .item .text {
        padding: 24px 0 !important;
    }

    .item-margin-left {
        margin-left: initial;
    }

    .w-50 {
        width: 100%;
    }
}

@media (max-width: 1200px) {
    section.banner .banner-img img {
        content: initial;
    }
}

.p-hero-sp {
    display: none;
}

.banner-img img {
    min-height: initial;
    object-fit: cover;
}

@media screen and (max-width: 768px) {
    .p-hero-sp {
        display: block;
        position: absolute;
        top: 30px;
        left: 0;
        right: 0;
        z-index: 5;
        text-align: center;
        padding: 0 16px;
    }

    .p-hero-sp__label {
        font-size: 16px;
        font-weight: 500;
        color: #444;
        margin-bottom: 8px;
        letter-spacing: -0.03em;
    }

    .p-hero-sp__catch {
        font-weight: 900;
        line-height: 1.4;
        margin-bottom: 8px;
        color: #121212;
    }

    .p-hero-sp__catch-row1 {
        font-size: 24px;
    }

    .p-hero-sp__catch-red {
        font-size: 32px;
        background: linear-gradient(90deg, #b21019 0%, #e51520 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .p-hero-sp__catch-medium {
        font-size: 28px;
    }

    .p-hero-sp__catch-small {
        font-size: 20px;
    }

    .p-hero-sp__brand {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px;
        margin-bottom: 12px;
    }

    .p-hero-sp__logo {
        width: 32px;
        height: auto;
    }

    .p-hero-sp__mitsupro {
        font-size: 56px;
        font-weight: 900;
        color: #121212;
        margin: 0;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .p-hero-sp__desc {
        font-size: 14px;
        font-weight: bold;
        color: #444;
        line-height: 1.6;
        max-width: 358px;
        margin: 0 auto;
        letter-spacing: -0.03em;
    }

    section.banner .banner-slogan {
        top: 72% !important;
        /* ボタンの位置を少し下に調整 */
    }
}



/* ヘッダーレイアウト */
header .layout {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

header .link {
    display: flex;
    gap: 16px;
    align-items: center;
}

/* ヘッダー専用ボタン */
.c-shiho-header-btn-wrap {
    display: flex;
    align-items: center;
}

.c-shiho-header-btn--red,
.c-shiho-header-btn--white {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 40px 0 16px;
    height: 52px;
    text-decoration: none !important;
    font-weight: bold;
    font-size: 16px;
    transition: opacity 0.3s, transform 0.1s;
}

.c-shiho-header-btn--red {
    width: 250px;
    background: linear-gradient(90deg, #e51520 0%, #7f0c12 100%);
    color: #fff !important;
    border-radius: 40px;
    border: none;
}

.c-shiho-header-btn--white {
    width: 240px;
    background: #fff;
    border: 2px solid #e51520;
    border-radius: 50px;
}

.c-shiho-header-btn--white span {
    background: linear-gradient(90deg, #e51520 0%, #7f0c12 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* 矢印アイコン */
.c-shiho-header-btn--red .arrow,
.c-shiho-header-btn--white .arrow {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 7px;
    height: 7px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}

.c-shiho-header-btn--white .arrow {
    border-top-color: #e95513;
    border-right-color: #e95513;
}

.c-shiho-header-btn--red:hover,
.c-shiho-header-btn--white:hover {
    opacity: 0.8;
}

.c-shiho-header-btn--red:active,
.c-shiho-header-btn--white:active {
    transform: translateY(1px);
}

@media screen and (max-width: 1024px) {

    .c-shiho-header-btn--red,
    .c-shiho-header-btn--white {
        width: auto;
        padding: 0 30px 0 12px;
        font-size: 14px;
        height: 44px;
    }

    .c-shiho-header-btn--red .arrow,
    .c-shiho-header-btn--white .arrow {
        right: 12px;
    }
}

.c-shiho-btn-container {
    display: flex;
    gap: 16px;
    align-items: flex-end;
    justify-content: center;
}

@media screen and (max-width: 768px) {
    .c-shiho-btn-container {
        flex-direction: row;
        /* 横並びに固定 */
        align-items: end;
        /* Figma: items-start */
        gap: 8px;
        /* Figma 指定 */
        padding: 8px 16px 10px;
        /* Figma: pt-8, px-16 */
    }
}

/* ボタン1: 赤グラデーション */
.c-shiho-btn-red {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 40px;
    border-radius: 4px;
    background: linear-gradient(90deg, #e51520 0%, #7f0c12 100%);
    box-shadow: 0px 4px 0px 0px #ad1018;
    /* Figma I3698:8465;3698:8445 */
    color: #fff !important;
    font-weight: bold;
    font-size: 18px;
    line-height: 1.4;
    transition: transform 0.1s, box-shadow 0.1s;
    text-decoration: none !important;
    white-space: nowrap;
    border: none;
    cursor: pointer;
}

.c-shiho-btn-red:hover {
    opacity: 0.9;
    transform: translateY(2px);
    box-shadow: 0px 2px 0px 0px #ad1018;
}

/* ボタン2: 白背景・赤枠・グラデーション文字 */
.c-shiho-btn-white-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.c-shiho-btn-white-wrap__tip {
    font-size: 12px;
    font-weight: bold;
    color: #444;
    line-height: 1.4;
    text-align: center;
    margin-bottom: 0;
}

.c-shiho-btn-white {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 33px;
    width: auto !important;
    min-width: 259px;
    padding-left: 40px;
    padding-right: 40px;
    border-radius: 4px;
    background-color: #fff;
    border: 1px solid #e51520;
    box-shadow: 0px 4px 0px 0px #ad1018;
    text-decoration: none !important;
    transition: transform 0.1s, box-shadow 0.1s;
    cursor: pointer;
}

@media screen and (max-width: 768px) {

    .c-shiho-btn-red,
    .c-shiho-btn-white-wrap {
        flex: 1;
        /* 50/50 分割 */
        min-width: 0;
    }

    .c-shiho-btn-red,
    .c-shiho-btn-white {
        width: 100% !important;
        max-width: none;
        min-width: 0;
        padding: 14px 10px;
        /* 横幅に収めるためパディング縮小 */
        font-size: 14px;
        /* Figma指定 */
    }

    .c-shiho-btn-white-wrap__tip {
        font-size: 10px;
        /* 窮屈なため少し小さく調整 */
        white-space: nowrap;
        transform: scale(0.9);
        /* さらに縮小 */
    }
}

.c-shiho-btn-white span {
    font-weight: bold;
    font-size: 18px;
    line-height: 1.4;
    background: linear-gradient(90deg, #e51520 0%, #7f0c12 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    white-space: nowrap;
}

@media screen and (max-width: 768px) {
    .c-shiho-btn-white span {
        font-size: 13px;
        /* Figma指定 */
    }
}

.c-shiho-btn-white:hover {
    opacity: 0.9;
    transform: translateY(2px);
    box-shadow: 0px 2px 0px 0px #ad1018;
}

/* ヒーローセクションのレイアウト調整 */
section.banner .banner-slogan {
    top: 77% !important;
    /* ボタンを少し下に下げる */
}

section.slogan .main {
    text-align: center;
    padding: 0 0 88px;
    margin-bottom: 0;
}

section.superiority {
    padding: 0px 20px;
    background: #fff4f5;
}

section.superiority .main .box {
    width: 100%;
    max-width: 1178px;
    margin: 0 auto;
}

@media (max-width: 1200px) {
    section.superiority .main .items .item {
        width: initial;
    }
}

.superiority .webtitle-type1 h2 {
    color: #000 !important;
    font-weight: bold !important;
}

.superiority .webtitle-type1 h2 span {
    color: #B21019 !important;
    font-weight: bold !important;
}

.superiority .webtitle-type1 h2 span em {
    font-style: normal;
}

section.superiority .main {
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
    padding: 0px 40px;
}

section.superiority .main .items .item::after {
    content: initial;
    display: initial;
    display: initial;
    -webkit-box-align: initial;
    -ms-flex-align: initial;
    align-items: initial;
    -webkit-box-pack: initial;
    -ms-flex-pack: initial;
    justify-content: initial;
    position: initial;
    width: initial;
    height: initial;
    background-color: initial;
    color: initial;
    left: initial;
    top: initial;
    border-radius: initial;
    font-size: initial;
    line-height: initial;
    font-family: initial;
}

@media screen and (max-width: 768px) {
    section.banner .banner-slogan {
        top: 60% !important;
    }
}

.hero-cta-section {
    max-width: 800px !important;
    /* ボタンが2列に並ぶように幅を広げる */
}

/* フォームへのスムーススクロール対応などのため */
section.contact {
    scroll-margin-top: 100px;
}

/* FAQセクションの見出しスタイル調整 */
.faq .webtitle-type1 .subtitle {
    font-weight: bold !important;
}

.faq .webtitle-type1 h2 {
    color: #000 !important;
    font-weight: bold !important;
}

.faq .webtitle-type1 h2 span {
    color: #B21019 !important;
    font-weight: bold !important;
}

/* FAQセクション内の項目（予算等）の配色微調整 */
.faq .main ul li p {
    color: #B21019 !important;
    font-weight: bold;
    display: initial;
}

.faq .main ul li .text {
    color: #000 !important;
}

.faq .main ul li .text span {
    color: #B21019 !important;
    font-weight: bold;
}

/* スローガンセクションの刷新 */
section.slogan {
    position: relative;
    padding: 60px 0 100px;
    background: #fff;
    overflow: hidden;
    text-align: center;
}

.slogan-bg-left,
.slogan-bg-right {
    position: absolute;
    bottom: -100px;
    width: 150%;
    height: 300px;
    background: #fff4f5;
    z-index: 1;
}

.slogan-bg-left {
    left: -75%;
    transform: rotate(6deg);
}

.slogan-bg-right {
    right: -75%;
    transform: rotate(-6deg);
}

section.slogan .layout {
    position: relative;
    z-index: 2;
}

.slogan-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
}

.slogan-label p {
    font-size: 14px;
    font-weight: 900;
    color: #121212;
    letter-spacing: 0.03em;
    margin: 0;
}

.slogan-line {
    width: 80px;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(90deg, #e51520 0%, #7f0c12 100%);
}

.slogan-title {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.5;
    margin-bottom: 24px;
    background: linear-gradient(90deg, #b21019 0%, #e51520 50%, #7f0c12 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    display: inline-block;
}

.slogan-desc {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: #121212;
    letter-spacing: -0.02em;
}

@media screen and (max-width: 768px) {
    section.slogan {
        padding: 40px 0 80px;
    }

    .slogan-title {
        font-size: 20px;
    }

    .slogan-desc {
        font-size: 14px;
        line-height: 1.6;
    }

    .slogan-bg-left,
    .slogan-bg-right {
        height: 200px;
        bottom: -60px;
    }

    .faq .main ul li p {
        display: none;
    }
}

/* 強みセクションのアイテム刷新 */
section.superiority .items {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin-top: 48px;
}

section.superiority .items .item {
    display: flex;
    align-items: stretch;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0px 4px 20px 0px rgba(0, 0, 0, 0.1);
    min-height: 396px;
}

section.superiority .items .item:nth-child(even) {
    flex-direction: row-reverse;
}

section.superiority .items .item .text {
    flex: 1;
    padding: 32px;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* テキスト部分のパディング調整（Figma準拠） */
section.superiority .items .item:nth-child(odd) .text {
    padding-right: 56px;
}

section.superiority .items .item:nth-child(even) .text {
    padding-left: 56px;
}

.superiority .item-header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.superiority .item-header h3 {
    font-size: 32px;
    font-weight: bold !important;
    color: #b21019 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    text-indent: 0 !important;
    text-align: start !important;
}

.superiority .item-header .sub {
    font-size: 16px;
    color: #444;
    line-height: 1.6;
    margin: 0;
}

.superiority .item-body {
    border-top: 1px solid #e51520;
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.superiority .item-body p {
    font-size: 16px;
    line-height: 1.8;
    color: #000;
    margin: 0;
}

.superiority .item-body p span {
    font-weight: bold;
}

section.superiority .items .item .pic {
    flex: 1;
    position: relative;
    width: auto;
    height: auto;
}

section.superiority .items .item .pic img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (max-width: 768px) {
    section.superiority .items {
        display: flex;
        flex-direction: column;
        gap: 0px;
        margin-top: 48px;
    }

    section.superiority .items .item {
        flex-direction: column !important;
        min-height: auto;
    }

    section.superiority .items .item .text {
        padding: 24px;
    }

    .superiority .item-header h3 {
        font-size: 24px;
    }

    section.superiority .items .item .pic {
        height: 240px;
    }

    section.superiority .items .item .pic img {
        position: static;
    }
}

/* 実績セクション */
.p-achievement {
    background-color: #F9F8F8;
    padding: 80px 20px;
    color: #121212;
}

.p-achievement__flex {
    display: flex;
    justify-content: space-between;
    max-width: 1178px;
    margin: 0 auto;
}

.p-achievement__left {
    flex: 0 0 318px;
}

.p-achievement__we-are {
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 8px;
}

.p-achievement__title {
    font-size: 40px;
    line-height: 1.4;
    margin-bottom: 40px;
}

.p-achievement__title--bold {
    font-weight: 900;
}

.p-achievement__notes {
    font-size: 12px;
    color: #666;
    line-height: 1.6;
}

.p-achievement__notes p {
    margin: 0;
}

.p-achievement__right {
    flex: 1;
}

.p-achievement__stats {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 40px;
}

.p-achievement__stats-row {
    display: contents;
}

.stat-item {
    text-align: center;
    flex: 1;
}

.stat-item__label {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 8px;
}

.stat-item__value {
    font-size: 20px;
    font-weight: bold;
}

.stat-item__value span {
    font-size: 48px;
    color: #C92121;
    margin-right: 4px;
}

.p-achievement__logos {
    border-radius: 8px;
}

.logo-row {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.logo-row.row-2 {
    margin-bottom: 0;
}

.logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 100px;
    background: #fff;
    border-radius: 4px;
    padding: 10px;
}

.logo-item img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: 0.3s;
}

.logo-item img:hover {
    opacity: 0.8;
}

@media screen and (max-width: 768px) {
    .p-achievement__flex {
        flex-direction: column;
        gap: 40px;
    }

    .p-achievement__left {
        flex: none;
    }

    .p-achievement__title {
        font-size: 24px;
        margin-bottom: 5px;
    }
}

@media screen and (max-width: 768px) {
    .p-achievement {
        padding: 60px 20px;
    }

    .p-achievement__stats {
        display: flex;
        flex-direction: column;
        gap: 32px;
        align-items: center;
    }

    .p-achievement__stats-row {
        width: 100%;
        display: flex;
        justify-content: center;
        gap: 8px;
    }

    .p-achievement__stats-row.--primary .stat-item {
        width: calc(50% - 4px);
    }

    .p-achievement__stats-row.--secondary .stat-item {
        width: 100%;
    }

    .stat-item {
        text-align: center;
    }

    .stat-item__value span {
        font-size: 36px;
    }

    .stat-item.--large .stat-item__value span {
        font-size: 48px;
    }

    .logo-row {
        gap: 12px;
        margin-bottom: 12px;
    }

    .logo-row {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        margin-bottom: 8px;
    }

    .logo-item {
        width: calc(25% - 8px);
        height: 60px;
        padding: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #fff;
        border-radius: 4px;
    }

    .logo-item img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

    .p-achievement__logos {
        padding: 20px 0;
    }
}

/* プランセクション刷新 */
.p-plan {
    padding: 100px 20px;
    background-color: #fff;
}

.p-plan-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.p-plan-header {
    text-align: center;
    margin-bottom: 60px;
}

.p-plan-header__label {
    display: inline-block;
    font-size: 16px;
    font-weight: bold;
    color: #666;
    margin-bottom: 12px;
    position: relative;
    padding-bottom: 4px;
}

.p-plan-header__label::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #ddd;
}

.p-plan-header__title {
    font-size: 40px;
    font-weight: 900;
    color: #121212;
}

.p-plan-header__title span {
    color: #F06E00;
}

.p-plan-cards {
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

.p-plan-card {
    flex: 1;
    border-radius: 12px;
    padding: 60px 40px 40px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.p-plan-card.--gold {
    background-color: #FFF9E5;
}

.p-plan-card.--pink {
    background-color: #FFF0ED;
}

.p-plan-card__number {
    position: absolute;
    top: -10px;
    left: 20px;
    font-size: 80px;
    font-weight: 900;
    color: #FEE7D7;
    line-height: 1;
    z-index: 1;
}

.p-plan-card__title {
    font-size: 28px;
    font-weight: 900;
    margin-bottom: 24px;
    position: relative;
    z-index: 2;
}

.p-plan-card__thumb {
    width: 160px;
    margin-bottom: 24px;
}

.p-plan-card__thumb img {
    width: 100%;
    height: auto;
}

.p-plan-card__desc {
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 32px;
    color: #333;
}

.p-plan-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left;
    display: inline-block;
}

.p-plan-card__list li {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 12px;
    padding-left: 28px;
    position: relative;
}

.p-plan-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 20px;
    height: 20px;
    background-color: #F06E00;
    border-radius: 50%;
}

.p-plan-card__list li::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 6px;
    width: 10px;
    height: 6px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
}

@media screen and (max-width: 1024px) {
    .p-plan {
        padding: 80px 20px;
    }

    .p-plan-header__title {
        font-size: 32px;
    }

    .p-plan-cards {
        gap: 20px;
    }

    .p-plan-card {
        padding: 50px 24px 32px;
    }

    .p-plan-card__title {
        font-size: 24px;
    }
}

@media screen and (max-width: 768px) {
    .p-plan-cards {
        flex-direction: column;
        gap: 32px;
    }

    .p-plan-card {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }

    .p-plan-header {
        margin-bottom: 40px;
    }

    .p-plan-header__title {
        font-size: 28px;
    }
}

.p-plan-cta {
    margin-top: 48px;
    display: flex;
    justify-content: center;
}

/* 比較セクションの配色調整 */
.offers .webtitle-type1 .subtitle {
    color: #000 !important;
}

.offers .webtitle-type1 h2 {
    color: #B21019 !important;
}

/* 導入事例セクション刷新 */
.p-case {
    background-color: #fff;
    padding: 64px 0 0px;
}

.p-case-banner {
    background-image: url(../img/shiho-shoshi/Section2.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #FFF4F5;
    padding: 80px 20px;
    text-align: center;
    clip-path: polygon(0 0, 100% 0, 100% 90%, 50% 100%, 0 90%);
}

.p-case-banner__inner p {
    color: #444;
    font-size: 30px;
    font-weight: bold;
    line-height: 1.8;
    letter-spacing: 2px;
    margin: 0;
}

.p-case-banner__inner p span {
    color: #e95513;
    font-size: 42px;
    margin: 0 4px;
}

section.contact .title {
    padding: 0px 20px 0px;
    background-color: #fff !important;
}

section.contact .title .subtitle {
    color: #000 !important;
}

section.contact .title h2 {
    color: #B21019 !important;
}

@media screen and (max-width: 768px) {
    .p-case-banner {
        padding: 40px 20px;
    }

    .p-case-banner__inner p {
        font-size: 20px;
        line-height: 1.6;
        letter-spacing: 1px;
    }

    .p-case-banner__inner p span {
        font-size: 28px;
    }
}

.p-case-inner {
    max-width: 1100px;
    margin: 60px auto 0;
    padding: 0 20px;
}

.p-case-header {
    text-align: center;
    margin-bottom: 40px;
}

.p-case-header__title-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-bottom: 10px;
}

.p-case-header__icon {
    width: 40px;
}

.p-case-header__title {
    font-size: 32px;
    font-weight: 700;
    color: #1A2B4C;
}

.p-case-header__sub {
    font-size: 18px;
    color: #666;
}

.p-case-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
}

.p-case-card {
    background: #F9F8F8;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.p-case-card__header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
    border-bottom: 1px solid #ddd;
    padding-bottom: 15px;
}

.p-case-card__logo {
    width: 60px;
    height: 60px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
    overflow: hidden;
}

.p-case-card__logo img {
    max-width: 100%;
    height: auto;
}

.p-case-card__office-name {
    font-size: 20px;
    font-weight: 700;
    color: #333;
}

.p-case-card__comparison {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 25px;
}

.p-case-card__before,
.p-case-card__after {
    text-align: center;
    flex: 1;
}

.p-case-card__comparison .label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 5px;
}

.p-case-card__before .label {
    color: #888;
}

.p-case-card__after .label {
    color: #E63946;
}

.p-case-card__comparison .val {
    font-size: 18px;
    font-weight: 700;
}

.p-case-card__comparison .val span {
    font-size: 28px;
    color: #E63946;
}

.p-case-card__arrow {
    font-size: 24px;
    color: #ddd;
    padding: 0 10px;
}

.p-case-card__comment {
    display: flex;
    gap: 15px;
}

.p-case-card__face {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
}

.p-case-card__face img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-case-card__bubble {
    position: relative;
    background: #fff;
    border-radius: 12px;
    padding: 15px;
    flex: 1;
}

.p-case-card__bubble::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 20px;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-right: 15px solid #fff;
}

.p-case-card__bubble p {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
}

@media screen and (max-width: 1024px) {
    .p-case-banner__inner p {
        font-size: 18px;
    }

    .p-case-banner__inner p span {
        font-size: 32px;
    }

    .p-case-inner {
        margin-top: 40px;
    }

    .p-case-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media screen and (max-width: 768px) {
    .p-case-banner__inner p {
        text-align: center;
    }

    .p-case-header__title {
        font-size: 24px;
    }

    .p-case-header__sub {
        font-size: 14px;
    }

    .p-case-card {
        padding: 20px;
    }
}

.webtitle-type1 {
    text-align: center;
    font-size: 34px;
    margin-bottom: 0px;
}

.webtitle-type1 h2 {
    font-size: 1em;
    color: #B21019;
    letter-spacing: 2px;
}

/* ご利用の流れ セクション 配色のみ修正 */
section.step .layout .main .item:nth-child(1) {
    background-color: #D86E74 !important;
}

section.step .layout .main .item:nth-child(1) .icon::after {
    border-top-color: #D86E74 !important;
}

section.step .layout .main .item:nth-child(2) {
    background-color: #BB4E54 !important;
}

section.step .layout .main .item:nth-child(2) .icon::after {
    border-top-color: #BB4E54 !important;
}

section.step .layout .main .item:nth-child(3) {
    background-color: #9E2D34 !important;
}

section.step .layout .main .item:nth-child(3) .icon::after {
    border-top-color: #9E2D34 !important;
}

section.step .layout .main .item:nth-child(4) {
    background-color: #7F0C12 !important;
}

/* ------------------------------------------------------------
 * CTAセクション
 * ------------------------------------------------------------ */
.p-cta {
    padding: 100px 20px;
    background-image: url(../img/shiho-shoshi/back-black.png);
    background-size: cover;
    background-position: center;
    color: #fff;
    text-align: center;
    margin-bottom: 56px;
}

.p-cta-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.p-cta__title {
    font-size: 36px;
    font-weight: bold;
    margin-bottom: 24px;
    line-height: 1.4;
}

.p-cta__desc-group {
    margin-bottom: 48px;
}

.p-cta__desc {
    font-size: 20px;
    color: #ddd;
    line-height: 1.6;
    margin: 0;
}

.p-cta__desc.--large {
    font-size: 24px;
    margin-top: 8px;
}

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

.p-cta-features {
    display: flex;
    justify-content: center;
    gap: 32px;
}

.p-cta-features-row {
    display: contents;
}

.p-cta-features span {
    font-size: 18px;
    font-weight: bold;
    position: relative;
    padding-left: 20px;
}

@media screen and (max-width: 768px) {
    .p-cta {
        background-image: url(../img/shiho-shoshi/back-black-sp.png);
    }

    .p-cta__title {
        font-size: 24px;
    }

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

    .p-cta__desc.--large {
        font-size: 20px;
    }

    .p-cta-btns {
        flex-direction: row;
        justify-content: center;
        gap: 6px;
    }

    .p-cta-btns a {
        padding: 0;
        font-size: 12px;
        min-height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .p-cta-btns a:nth-child(1) {
        width: 188px;
        flex-shrink: 0;
    }

    .p-cta-btns a:nth-child(2) {
        flex: 1;
    }

    .p-cta-features {
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }

    .p-cta-features-row {
        display: flex;
        gap: 24px;
        justify-content: center;
    }

    .p-cta-features span {
        font-size: 14px;
        padding-left: 16px;
    }
}


/* 比較表SP横スクロールレイアウト */
.p-comparison-sp {
    display: none;
}

@media screen and (max-width: 768px) {
    .p-table-inner {
        width: initial;
    }

    .p-comparison-sp {
        display: block;
        margin-top: 32px;
        width: 100vw;
        /* margin-left: calc(-1 * (100vw - 100%) / 2); */
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .p-comparison-inner {
        display: flex;
        width: max-content;
        padding: 0 20px;
    }

    .p-comparison-fixed {
        position: sticky;
        left: 0;
        z-index: 10;
        width: 136px;
        flex-shrink: 0;
        background: #fff;
        filter: drop-shadow(4px 0 4px rgba(0, 0, 0, 0.05));
    }

    .p-comparison-scroll {
        display: flex;
    }

    .p-table-body {
        display: flex;
    }

    .p-comparison-column {
        width: 224px;
        flex-shrink: 0;
    }

    .p-comparison-cell {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 16px;
        text-align: center;
        font-size: 14px;
        line-height: 1.5;
        border-right: 2px solid #fff;
    }

    .p-comparison-cell.--head {
        height: 120px;
        background: #444;
        color: #fff;
        font-weight: bold;
    }

    .p-comparison-fixed .p-comparison-cell.--head {
        opacity: 0;
        /* Figma: 隠しセル */
    }

    .p-comparison-cell.--label,
    .p-comparison-cell.--content {
        height: 160px;
        border-top: 2px solid #fff;
    }

    /* 大手人材紹介行 */
    .p-comparison-cell.--major {
        background: #F3F4F6;
        color: #4A5565;
    }

    .p-comparison-fixed .p-comparison-cell.--label.--major {
        font-weight: bold;
    }

    /* ミツプロ行 */
    .p-comparison-cell.--mitsukaru {
        background: #B21019;
        color: #fff;
        font-weight: bold;
    }

    .p-comparison-fixed .p-comparison-cell.--label.--mitsukaru {
        font-size: 18px;
        background: #B21019;
        color: #fff;
        border: 2px solid #B21019;
        border-right: none;
        border-radius: 8px 0 0 8px;
    }

    .p-comparison-scroll .p-comparison-cell.--content.--mitsukaru {
        background: #fff;
        color: #121212;
        border: 2px solid #B21019;
        border-left: none;
        font-weight: 500;
    }

    /* ミツプロ行の最初のセルのボーダー調整 */
    .p-comparison-column:first-child .p-comparison-cell.--content.--mitsukaru {
        border-left: 2px solid #B21019;
    }

    /* ミツプロ行の最後のセルの角丸調整 */
    .p-comparison-column:last-child .p-comparison-cell.--content.--mitsukaru {
        border-radius: 0 8px 8px 0;
    }
}