/*
Theme Name: Toyokita Original
Theme URI: 
Author: Your Name
Author URI: 
Description: Original WordPress theme for Toyokita project
Version: 1.0
*/

:root {
    --color-navy: #1f2f46;
    --color-navy-deep: #18263a;
    --color-accent: #d97a2b;
    --color-accent-soft: #f5f0e9;
    --color-bg: #faf7f2;
    --color-border: #ddd8cf;
    --color-text: #1e2939;
    --color-text-sub: #4a5565;
    --color-footer: #1f1f22;
    --color-white: #ffffff;
}

body {
    margin: 0;
    font-family: sans-serif;
    color: #333;
    line-height: 1.7;
}

.inner {
    width: min(1088px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header,
.site-footer {
    padding: 20px 0;
    background: #f5f5f5;
}

.fv {
    padding: 80px 0;
    background: #faf7f0;
}

section {
    padding: 60px 0;
}
*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: sans-serif;
    color: #333;
    line-height: 1.7;
    background: #fff;
}

a {
    color: inherit;
    text-decoration: none;
}

.inner {
    width: min(1088px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header,
.site-footer {
    padding: 20px 0;
    background: #f5f5f5;
}

.site-title {
    margin: 0;
    font-size: 20px;
    font-weight: bold;
}

.section {
    padding: 80px 0;
}

.section-label {
    margin: 0 0 12px;
    text-align: center;
    font-size: 14px;
    color: #a06a3b;
    font-weight: bold;
}

.section-title {
    margin: 0 0 40px;
    text-align: center;
    font-size: 32px;
    line-height: 1.4;
}

.fv {
    padding: 100px 0;
    background: #f8f3ea;
}

.fv-title {
    margin: 0 0 20px;
    font-size: 40px;
    text-align: center;
    line-height: 1.4;
}

.fv-text {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.content-box {
    margin-top: 32px;
    padding: 32px;
    border: 1px solid #ddd;
    background: #fff;
}

.content-box h3,
.content-box h4 {
    margin-top: 0;
}

.simple-table {
    width: 100%;
    border: 1px solid #ddd;
}

.table-row {
    display: grid;
    grid-template-columns: 180px 1fr 1fr 1fr;
}

.table-head {
    background: #f3efe8;
    font-weight: bold;
}

.table-cell {
    padding: 16px;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    font-size: 14px;
}

.table-row .table-cell:last-child {
    border-right: none;
}

.point-card {
    padding: 28px;
    margin-top: 24px;
    border: 1px solid #ddd;
    background: #fafafa;
}

.company-block {
    margin-top: 56px;
}

.company-name {
    margin: 0 0 24px;
    font-size: 28px;
    padding-bottom: 12px;
    border-bottom: 2px solid #333;
}

.faq-item {
    padding: 24px;
    margin-top: 20px;
    border: 1px solid #ddd;
    background: #fff;
}

.faq-item h3 {
    margin-top: 0;
    font-size: 20px;
}

.card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.company-card,
.column-card {
    padding: 24px;
    border: 1px solid #ddd;
    background: #fff;
}

.column-date {
    margin-top: 0;
    font-size: 13px;
    color: #777;
}

.site-footer p {
    margin: 0;
    text-align: center;
}

/* スマホ対応 */
@media (max-width: 767px) {
    .section {
        padding: 56px 0;
    }

    .section-title {
        font-size: 24px;
    }

    .fv {
        padding: 72px 0;
    }

    .fv-title {
        font-size: 30px;
    }

    .content-box {
        padding: 20px;
    }

    .table-row {
        grid-template-columns: 1fr;
    }

    .table-cell {
        border-right: none;
    }

    .card-grid {
        grid-template-columns: 1fr;
    }

    .company-name {
        font-size: 24px;
    }
}
html {
    scroll-behavior: smooth;
}

body {
    padding-top: 72px;
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    z-index: 999;
}

.header-inner {
    width: min(1280px, calc(100% - 32px));
    height: 72px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header-logo a {
    display: inline-block;
    font-size: 20px;
    font-weight: 700;
    color: #2d2d2d;
    text-decoration: none;
    line-height: 1.2;
}

.header-nav {
    display: block;
}

.header-menu {
    display: flex;
    align-items: center;
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.header-menu li a {
    position: relative;
    display: inline-block;
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-decoration: none;
    padding: 4px 0;
    transition: opacity 0.3s;
}

.header-menu li a:hover {
    opacity: 0.7;
}

.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    margin: 5px auto;
    background: #333;
}

/* スマホ */
@media (max-width: 767px) {
    body {
        padding-top: 64px;
    }

    .site-header {
        height: 64px;
    }

    .header-inner {
        height: 64px;
    }

    .header-logo a {
        font-size: 16px;
    }

    .header-nav {
        display: none;
    }

    .menu-toggle {
        display: block;
    }
}
.fv {
    padding: 0 0 80px;
    background: #f8f3ea;
}

.fv-image {
    width: 100%;
    height: 420px;
    overflow: hidden;
}

.fv-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fv-content {
    max-width: 960px;
    margin: -40px auto 0;
    padding: 40px;
    background: #fff;
    position: relative;
    z-index: 2;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.fv-title {
    margin: 0 0 20px;
    font-size: 38px;
    line-height: 1.5;
    text-align: center;
    color: #2d2d2d;
}

.fv-text {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
    font-size: 16px;
    color: #555;
}

.fv-buttons {
    margin-top: 32px;
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 240px;
    min-height: 56px;
    padding: 14px 24px;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.3s, transform 0.3s;
}

.btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

.btn-primary {
    background: #d97a2b;
    color: #fff;
}

.btn-secondary {
    background: #fff;
    color: #d97a2b;
    border: 2px solid #d97a2b;
}

@media (max-width: 767px) {
    .fv {
        padding: 0 0 56px;
    }

    .fv-image {
        height: 240px;
    }

    .fv-content {
        margin-top: -24px;
        padding: 24px 20px;
    }

    .fv-title {
        font-size: 26px;
        text-align: left;
    }

    .fv-text {
        font-size: 14px;
        text-align: left;
    }

    .fv-buttons {
        margin-top: 24px;
        flex-direction: column;
    }

    .btn {
        width: 100%;
        min-width: auto;
        min-height: 52px;
        font-size: 15px;
    }
}
/* ▼ FV調整 */
.fv-image {
    height: clamp(220px, 35vw, 380px);
}

/* ===== Compare Section ===== */

.narrow-inner {
    width: min(1088px, calc(100% - 32px));
}

.compare-section {
    padding: 110px 0 100px;
    background: #fff;
}

.section-heading {
    text-align: center;
    margin-bottom: 56px;
}

.section-line {
    display: block;
    width: 64px;
    height: 2px;
    background: #d97a2b;
    margin: 20px auto 0;
}

.text-block {
    margin-bottom: 48px;
}

.block-title {
    position: relative;
    margin: 0 0 24px;
    padding-left: 18px;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 700;
    color: #2d2d2d;
}

.block-title::before {
    content: "";
    position: absolute;
    top: 0.35em;
    left: 0;
    width: 6px;
    height: 1.2em;
    background: #d97a2b;
    border-radius: 999px;
}

.text-block p {
    margin: 0 0 18px;
    font-size: 16px;
    line-height: 2;
    color: #444;
}

.compare-table-wrap {
    margin-top: 40px;
}

.compare-table {
    border-top: 1px solid #d9d2c7;
    border-left: 1px solid #d9d2c7;
    background: #fff;
}

.compare-row {
    display: grid;
    grid-template-columns: 180px 1fr 1fr 1fr;
}

.compare-head {
    background: #f5f0e9;
}

.compare-cell {
    padding: 24px 20px;
    border-right: 1px solid #d9d2c7;
    border-bottom: 1px solid #d9d2c7;
    font-size: 15px;
    line-height: 1.9;
    color: #333;
}

.compare-head .compare-cell {
    text-align: center;
    font-size: 20px;
    font-weight: 700;
}

.compare-item {
    background: #faf7f2;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

.compare-cell ul {
    margin: 0;
    padding-left: 1.2em;
}

.compare-cell li + li {
    margin-top: 8px;
}

.section-cta {
    margin-top: 40px;
    text-align: center;
}

@media (max-width: 767px) {
    .compare-section {
        padding: 72px 0;
    }

    .section-heading {
        margin-bottom: 40px;
    }

    .block-title {
        font-size: 22px;
        padding-left: 14px;
    }

    .text-block p {
        font-size: 14px;
        line-height: 1.9;
    }

    .compare-table {
        border: none;
    }

    .compare-row {
        display: block;
        margin-bottom: 16px;
        border: 1px solid #d9d2c7;
        background: #fff;
    }

    .compare-head {
        display: none;
    }

    .compare-cell {
        border: none;
        border-bottom: 1px solid #eee;
        padding: 16px;
    }

    .compare-cell:last-child {
        border-bottom: none;
    }

    .compare-item {
        background: #f5f0e9;
        text-align: left;
    }
}
/* ===== Recommend Section ===== */

.recommend-section {
    padding: 110px 0 100px;
    background: #faf7f2;
}

.recommend-table-wrap {
    margin-top: 48px;
}

.recommend-table {
    border-top: 1px solid #d9d2c7;
    border-left: 1px solid #d9d2c7;
    background: #fff;
}

.recommend-row {
    display: grid;
    grid-template-columns: 160px 1fr 1fr 1fr;
}

.recommend-cell {
    padding: 24px 20px;
    border-right: 1px solid #d9d2c7;
    border-bottom: 1px solid #d9d2c7;
    font-size: 15px;
    line-height: 1.9;
    color: #333;
    background: #fff;
}

.recommend-head .recommend-cell {
    background: #f5f0e9;
    text-align: center;
}

.recommend-label {
    background: #faf7f2;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

.recommend-label span {
    font-size: 13px;
    font-weight: 400;
}

.recommend-catch {
    margin: 0 0 12px;
    font-size: 13px;
    line-height: 1.6;
    color: #8a5a33;
    font-weight: 700;
}

.recommend-company {
    margin: 0;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 700;
    color: #2d2d2d;
}

.recommend-company span {
    font-size: 18px;
    font-weight: 700;
}

.recommend-score {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    color: #d97a2b;
}

.recommend-price {
    text-align: center;
    font-size: 22px;
    font-weight: 700;
}

.recommend-list {
    margin: 0;
    padding-left: 1.2em;
}

.recommend-list li + li {
    margin-top: 8px;
}

.recommend-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 36px;
}

.recommend-button-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.recommend-button-group .btn {
    min-width: auto;
    width: 100%;
    min-height: 58px;
    padding: 14px 18px;
    font-size: 15px;
    text-align: center;
}

@media (max-width: 767px) {
    .recommend-section {
        padding: 72px 0;
    }

    .recommend-row {
        display: block;
        margin-bottom: 16px;
        border: 1px solid #d9d2c7;
    }

    .recommend-head {
        border: none;
        margin-bottom: 24px;
    }

    .recommend-cell {
        border: none;
        border-bottom: 1px solid #eee;
        padding: 16px;
    }

    .recommend-cell:last-child {
        border-bottom: none;
    }

    .recommend-company {
        font-size: 24px;
    }

    .recommend-company span {
        font-size: 16px;
    }

    .recommend-score {
        font-size: 24px;
    }

    .recommend-price {
        font-size: 20px;
    }

    .recommend-buttons {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ===== Company Detail Section ===== */

.company-detail-section {
    padding: 110px 0 100px;
    background: #fff;
}

.company-block {
    margin-top: 72px;
}

.company-block:first-of-type {
    margin-top: 48px;
}

.company-block-head {
    margin-bottom: 28px;
    padding: 24px 28px;
    background: #f7f3ed;
    border-left: 6px solid #d97a2b;
}

.company-main-title {
    margin: 0;
    font-size: 34px;
    line-height: 1.5;
    font-weight: 700;
    color: #2d2d2d;
}

.company-card-section {
    margin-top: 24px;
    padding: 32px;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.company-sub-title {
    position: relative;
    margin: 0 0 20px;
    padding-left: 18px;
    font-size: 24px;
    line-height: 1.5;
    font-weight: 700;
    color: #2d2d2d;
}

.company-sub-title::before {
    content: "";
    position: absolute;
    top: 0.35em;
    left: 0;
    width: 6px;
    height: 1.2em;
    background: #d97a2b;
    border-radius: 999px;
}

.company-feature-list {
    margin: 0;
    padding-left: 1.2em;
}

.company-feature-list li {
    font-size: 16px;
    line-height: 2;
    color: #444;
}

.company-feature-list li + li {
    margin-top: 8px;
}

.company-gallery-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 260px;
    background: #f6f6f6;
    border: 1px dashed #cfc7bc;
    color: #777;
    text-align: center;
}

.review-box {
    padding: 24px;
    background: #faf7f2;
    border: 1px solid #e6ded2;
}

.review-box + .review-box {
    margin-top: 16px;
}

.review-score {
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 700;
    color: #d97a2b;
}

.review-box p:last-child {
    margin-bottom: 0;
    line-height: 1.9;
    color: #444;
}

.company-info-table {
    border-top: 1px solid #ddd8cf;
    border-left: 1px solid #ddd8cf;
}

.company-info-row {
    display: grid;
    grid-template-columns: 220px 1fr;
}

.company-info-label,
.company-info-value {
    padding: 16px 18px;
    border-right: 1px solid #ddd8cf;
    border-bottom: 1px solid #ddd8cf;
    font-size: 15px;
    line-height: 1.8;
}

.company-info-label {
    background: #f7f3ed;
    font-weight: 700;
}

.company-info-value {
    background: #fff;
    word-break: break-word;
}

@media (max-width: 767px) {
    .company-detail-section {
        padding: 72px 0;
    }

    .company-block {
        margin-top: 48px;
    }

    .company-block-head {
        padding: 18px 16px;
        margin-bottom: 20px;
    }

    .company-main-title {
        font-size: 26px;
    }

    .company-card-section {
        padding: 20px;
    }

    .company-sub-title {
        font-size: 20px;
        padding-left: 14px;
    }

    .company-feature-list li {
        font-size: 14px;
        line-height: 1.9;
    }

    .company-gallery-placeholder {
        min-height: 180px;
    }

    .company-info-row {
        grid-template-columns: 1fr;
    }

    .company-info-label,
    .company-info-value {
        font-size: 14px;
        padding: 14px;
    }
}

/* ===== Company List Auto Cards ===== */

.company-list-section {
    padding: 110px 0 100px;
    background: #faf7f2;
}

.company-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.company-card {
    padding: 24px;
    border: 1px solid #ddd8cf;
    background: #fff;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.company-card-title {
    margin: 0 0 16px;
    font-size: 24px;
    line-height: 1.5;
    color: #2d2d2d;
}

.company-card-desc {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.9;
    color: #444;
}

.company-card-meta {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 1.8;
    color: #555;
}

.company-card-map {
    margin-top: 16px;
    border: 1px solid #ddd;
    overflow: hidden;
    background: #f5f5f5;
}

.company-card-map iframe {
    display: block;
}

.company-card-link-wrap {
    margin-top: 16px;
}

.company-card-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    padding: 12px 16px;
    background: #fff;
    border: 2px solid #d97a2b;
    color: #d97a2b;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 1024px) {
    .company-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .company-list-section {
        padding: 72px 0;
    }

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

    .company-card {
        padding: 20px;
    }

    .company-card-title {
        font-size: 20px;
    }

    .company-card-desc,
    .company-card-meta {
        font-size: 14px;
    }

    .company-card-map iframe {
        height: 200px;
    }
}
/* ===== FAQ Auto Section ===== */

.faq-section {
    padding: 110px 0 100px;
    background: #faf7f2;
}

.faq-list {
    margin-top: 48px;
}

.faq-item {
    border: 1px solid #ddd8cf;
    background: #fff;
    overflow: hidden;
}

.faq-item + .faq-item {
    margin-top: 16px;
}

.faq-question,
.faq-answer {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 0;
    align-items: start;
    padding: 24px;
}

.faq-question {
    border-bottom: 1px solid #eee;
}

.faq-q,
.faq-a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    margin-top: 2px;
}

.faq-q {
    background: #d97a2b;
    color: #fff;
}

.faq-a {
    background: #f5f0e9;
    color: #8a5a33;
}

.faq-question h3 {
    margin: 0;
    font-size: 22px;
    line-height: 1.7;
    color: #2d2d2d;
}

.faq-answer p {
    margin: 0;
    font-size: 15px;
    line-height: 1.9;
    color: #444;
}

@media (max-width: 767px) {
    .faq-section {
        padding: 72px 0;
    }

    .faq-list {
        margin-top: 32px;
    }

    .faq-question,
    .faq-answer {
        grid-template-columns: 40px 1fr;
        padding: 18px 16px;
    }

    .faq-q,
    .faq-a {
        width: 28px;
        height: 28px;
        font-size: 14px;
    }

    .faq-question h3 {
        font-size: 18px;
        line-height: 1.7;
    }

    .faq-answer p {
        font-size: 14px;
        line-height: 1.9;
    }
}
/* ===== FAQ Accordion ===== */

.faq-item {
    border: 1px solid #ddd8cf;
    background: #fff;
    overflow: hidden;
}

.faq-item + .faq-item {
    margin-top: 16px;
}

.faq-question {
    width: 100%;
    display: grid;
    grid-template-columns: 56px 1fr 32px;
    align-items: center;
    gap: 0;
    padding: 24px;
    border: none;
    background: #fff;
    cursor: pointer;
    text-align: left;
}

.faq-question-text {
    font-size: 22px;
    line-height: 1.7;
    font-weight: 700;
    color: #2d2d2d;
}

.faq-toggle-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    line-height: 1;
    color: #d97a2b;
    font-weight: 400;
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
    border-top: 1px solid transparent;
}

.faq-answer-inner {
    display: grid;
    grid-template-columns: 56px 1fr;
    padding: 24px;
    align-items: start;
}

.faq-item.is-open .faq-answer {
    border-top: 1px solid #eee;
}

.faq-item.is-open .faq-toggle-icon {
    content: "-";
}

.faq-item.is-open .faq-toggle-icon {
    font-size: 32px;
}

.faq-item.is-open .faq-toggle-icon::before {
    content: "−";
}

.faq-toggle-icon::before {
    content: "+";
}

.faq-toggle-icon {
    font-size: 0;
}

@media (max-width: 767px) {
    .faq-question {
        grid-template-columns: 40px 1fr 24px;
        padding: 18px 16px;
    }

    .faq-question-text {
        font-size: 18px;
        line-height: 1.7;
    }

    .faq-answer-inner {
        grid-template-columns: 40px 1fr;
        padding: 18px 16px;
    }
}
/* ===== FAQテキスト修正 ===== */

.faq-answer-inner p {
    white-space: normal;
    word-break: break-word;
}

.faq-answer-inner {
    align-items: start;
}

.faq-answer-inner p {
    width: 100%;
}
.faq-answer {
    width: 100%;
}

.faq-answer-inner {
    width: 100%;
    display: grid;
    grid-template-columns: 56px 1fr;
}

.faq-answer-inner > * {
    min-width: 0;
}

/* ===== FAQ回答欄 強制修正 ===== */

.faq-answer-inner {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
    padding: 24px !important;
    box-sizing: border-box !important;
}

.faq-a {
    flex: 0 0 32px !important;
}

.faq-answer-inner p {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.9 !important;
}
@media (max-width: 767px) {
    .faq-answer-inner {
        padding: 18px 16px !important;
        gap: 12px !important;
    }

    .faq-a {
        flex: 0 0 28px !important;
    }
}

/* ===== FAQアコーディオン 崩れ修正 ===== */

.faq-answer {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border-top: 1px solid transparent;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.faq-item.is-open .faq-answer {
    border-top: 1px solid #eee !important;
}

.faq-answer-inner {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
    padding: 24px !important;
    box-sizing: border-box !important;
}

.faq-a {
    flex: 0 0 32px !important;
}

.faq-answer-inner p {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.9 !important;
}

@media (max-width: 767px) {
    .faq-answer-inner {
        padding: 18px 16px !important;
        gap: 12px !important;
    }

    .faq-a {
        flex: 0 0 28px !important;
    }
}
/* ===== Case Slider ===== */

.case-block {
    margin-top: 32px;
}

.case-block-title {
    margin: 0 0 16px;
    font-size: 24px;
    line-height: 1.5;
    color: #1e2939;
}

.case-slider {
    display: grid;
    grid-template-columns: 1fr 176px;
    gap: 12px;
    align-items: start;
}

.case-main {
    border: 1px solid #d1d5dc;
    background: #f9fafb;
    overflow: hidden;
}

.case-main-image {
    display: block;
    width: 100%;
    aspect-ratio: 832 / 554;
    object-fit: cover;
}

.case-thumbs {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.case-thumb {
    display: block;
    padding: 0;
    border: 1px solid #d1d5dc;
    background: #f9fafb;
    cursor: pointer;
    overflow: hidden;
    transition: opacity 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.case-thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 174 / 116;
    object-fit: cover;
}

.case-thumb:hover {
    opacity: 0.9;
}

.case-thumb.is-active {
    border-color: #cf4b00;
}

.case-source {
    margin: 12px 0 0;
    font-size: 12px;
    line-height: 1.6;
    text-align: right;
}

.case-source a {
    color: #6a7282;
    text-decoration: underline;
}

@media (max-width: 767px) {
    .case-block-title {
        font-size: 18px;
    }

    .case-slider {
        grid-template-columns: 1fr;
    }

    .case-thumbs {
        flex-direction: row;
    }

    .case-thumb {
        flex: 1 1 0;
    }
}
/* ===== Company Detail ACF ===== */

.company-hero {
    margin: 24px 0;
    border: 1px solid #d1d5dc;
    background: #f9fafb;
    overflow: hidden;
}

.company-hero img {
    display: block;
    width: 100%;
    height: auto;
}

.company-feature-list-detail li {
    border-left: 2px solid #99a1af;
    padding-left: 14px;
}

.company-feature-list-detail li + li {
    margin-top: 14px;
}

.company-cta-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 24px 0 32px;
}

.company-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    border: 2px solid #1e2939;
}

.company-cta-btn-primary {
    background: #cf4b00;
    border-color: #cf4b00;
    color: #fff;
}

.company-cta-btn-secondary {
    background: #fff;
    color: #1e2939;
}

.company-review-note {
    margin: 0 0 20px;
    font-size: 14px;
    color: #4a5565;
}

.review-box-detail {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 24px;
    border: 1px solid #e5e7eb;
    background: #fff;
}

.review-box-detail + .review-box-detail {
    margin-top: 16px;
}

.review-box-icon {
    width: 64px;
    height: 64px;
    background: #f9fafb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    flex: 0 0 64px;
}

.review-box-content {
    flex: 1 1 auto;
    min-width: 0;
}

.review-source {
    margin-top: 12px;
    font-size: 12px;
}

.review-source a {
    color: #6a7282;
    text-decoration: underline;
}

.company-summary-section {
    margin-top: 32px;
}

.company-summary-heading {
    text-align: center;
    margin-bottom: 24px;
}

.company-summary-title {
    margin: 0;
    font-size: 18px;
    line-height: 1.5;
}

.company-summary-body {
    display: grid;
    grid-template-columns: 1fr 256px;
    gap: 24px;
    align-items: start;
}

.company-info-table-wrap {
    min-width: 0;
}

.company-info-value a {
    color: #364153;
    text-decoration: underline;
    word-break: break-all;
}

.company-map-wrap {
    border: 1px solid #d1d5dc;
    background: #deded1;
    overflow: hidden;
}

.company-map-wrap iframe {
    display: block;
}

@media (max-width: 767px) {
    .company-cta-row {
        grid-template-columns: 1fr;
    }

    .review-box-detail {
        flex-direction: column;
    }

    .company-summary-body {
        grid-template-columns: 1fr;
    }
}
/* ===== Case Slider Reverse ===== */

.case-slider.is-reverse {
    grid-template-columns: 176px 1fr;
}


@media (max-width: 767px) {
    .case-slider.is-reverse {
        grid-template-columns: 1fr;
    }

    .case-slider.is-reverse .case-main,
    .case-slider.is-reverse .case-thumbs {
        order: initial;
    }
}
/* ===== Company List More Button ===== */

.company-card.is-hidden {
    display: none;
}

.company-grid.is-expanded .company-card.is-hidden {
    display: flex;
}

.company-more-wrap {
    margin-top: 32px;
    text-align: center;
}

.company-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 52px;
    padding: 12px 24px;
    border: 2px solid #1e2939;
    background: #fff;
    color: #1e2939;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}

/* ===== Column Section ===== */

.column-section {
    padding: 110px 0 100px;
    background: #faf7f2;
}

.column-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.column-card {
    border: 1px solid #ddd8cf;
    background: #fff;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.column-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.column-card-link {
    display: block;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.column-thumb {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f5f5f5;
}

.column-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.column-card:hover .column-thumb img {
    transform: scale(1.05);
}

.column-card-body {
    padding: 24px;
}

.column-category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 14px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    color: #8a5a33;
    background: #f5f0e9;
    border-radius: 999px;
}

.column-date {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.6;
    color: #777;
}

.column-title {
    margin: 0 0 16px;
    font-size: 22px;
    line-height: 1.6;
    color: #1e2939;
}

.column-excerpt {
    margin: 0;
    font-size: 15px;
    line-height: 1.9;
    color: #444;
}

.column-more-wrap {
    margin-top: 40px;
    text-align: center;
}

.column-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 260px;
    min-height: 56px;
    padding: 14px 28px;
    border: 2px solid #1e2939;
    background: #fff;
    color: #1e2939;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.column-more-btn:hover {
    background: #1e2939;
    color: #fff;
    transform: translateY(-2px);
}

@media (max-width: 1024px) {
    .column-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .column-section {
        padding: 72px 0;
    }

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

    .column-card-body {
        padding: 20px;
    }

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

    .column-excerpt {
        font-size: 14px;
    }

    .column-more-wrap {
        margin-top: 32px;
    }

    .column-more-btn {
        width: 100%;
        min-width: auto;
    }
}

/* ===== Footer ===== */

.site-footer {
    margin-top: 0;
    padding: 28px 0;
    background: #f3f5f7;
    border-top: 1px solid #e2e8f0;
}

.site-footer-inner {
    width: min(1088px, calc(100% - 32px));
    margin: 0 auto;
    text-align: center;
}

.site-footer-copy {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #1e2939;
}

@media (max-width: 767px) {
    .site-footer {
        padding: 22px 0;
    }

    .site-footer-copy {
        font-size: 13px;
    }
}

/* ===== Footer ===== */

.site-footer {
    margin-top: 0;
    padding: 40px 0 24px;
    background: #364153;
    color: #fff;
}

.site-footer-inner {
    width: min(1088px, calc(100% - 32px));
    margin: 0 auto;
}

.site-footer-top {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 48px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.site-footer-title {
    margin: 0 0 12px;
    font-size: 20px;
    line-height: 1.5;
    font-weight: 700;
    color: #fff;
}

.site-footer-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.8);
}

.site-footer-heading {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 700;
    color: #fff;
}

.site-footer-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer-list li + li {
    margin-top: 10px;
}

.site-footer-list a {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    font-size: 13px;
    line-height: 1.8;
    transition: opacity 0.2s ease;
}

.site-footer-list a:hover {
    opacity: 0.75;
}

.site-footer-notice {
    padding: 18px 0 0;
}

.site-footer-notice p {
    margin: 0;
    font-size: 12px;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.78);
}

.site-footer-bottom {
    padding-top: 18px;
    text-align: center;
}

.site-footer-copy {
    margin: 0;
    font-size: 11px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.62);
}

@media (max-width: 767px) {
    .site-footer {
        padding: 32px 0 22px;
    }

    .site-footer-top {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .site-footer-title {
        font-size: 18px;
    }

    .site-footer-text,
    .site-footer-list a,
    .site-footer-notice p {
        font-size: 12px;
    }
}
/* ===== Article Archive ===== */

.article-archive-section {
    padding: 110px 0 100px;
    background: #faf7f2;
}

.article-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
}

.article-pagination {
    margin-top: 40px;
    text-align: center;
}

.article-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    margin: 0 4px;
    padding: 0 12px;
    border: 1px solid #ddd8cf;
    background: #fff;
    color: #1e2939;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
}

.article-pagination .page-numbers.current {
    background: #1e2939;
    color: #fff;
    border-color: #1e2939;
}

@media (max-width: 1024px) {
    .article-archive-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .article-archive-section {
        padding: 72px 0;
    }

    .article-archive-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 32px;
    }
}

/* ===== Single Post ===== */

.single-post-section {
    padding: 80px 0 100px;
    background: #faf7f2;
}

.single-post-header {
    margin-bottom: 32px;
}

.single-post-date {
    margin: 0 0 16px;
    font-size: 14px;
    color: #777;
}

.single-post-title {
    margin: 0;
    font-size: 40px;
    line-height: 1.5;
    color: #1e2939;
}

.single-post-thumb {
    margin-bottom: 32px;
    overflow: hidden;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.single-post-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.single-post-content {
    padding: 32px;
    border: 1px solid #ddd8cf;
    background: #fff;
    font-size: 16px;
    line-height: 2;
    color: #333;
}

.single-post-content h2,
.single-post-content h3,
.single-post-content h4 {
    margin-top: 2em;
    margin-bottom: 0.8em;
    line-height: 1.5;
    color: #1e2939;
}

.single-post-content p {
    margin: 0 0 1.5em;
}

.single-post-content ul,
.single-post-content ol {
    margin: 0 0 1.5em 1.5em;
}

.single-post-content img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    .single-post-section {
        padding: 56px 0 72px;
    }

    .single-post-title {
        font-size: 28px;
    }

    .single-post-content {
        padding: 20px;
        font-size: 15px;
    }
}

/* ===== Single Post Content Design ===== */

.single-post-content {
    padding: 40px;
    border: 1px solid #ddd8cf;
    background: #fff;
    font-size: 16px;
    line-height: 2;
    color: #333;
}

.single-post-content > *:first-child {
    margin-top: 0;
}

.single-post-content > *:last-child {
    margin-bottom: 0;
}

.single-post-content h2 {
    margin: 2.4em 0 1em;
    padding: 18px 22px;
    background: #f5f0e9;
    border-left: 6px solid #d97a2b;
    font-size: 30px;
    line-height: 1.5;
    font-weight: 700;
    color: #1e2939;
}

.single-post-content h3 {
    margin: 2em 0 0.9em;
    padding-left: 16px;
    border-left: 4px solid #d97a2b;
    font-size: 24px;
    line-height: 1.6;
    font-weight: 700;
    color: #1e2939;
}

.single-post-content h4 {
    margin: 1.8em 0 0.8em;
    font-size: 20px;
    line-height: 1.6;
    font-weight: 700;
    color: #1e2939;
    padding-bottom: 8px;
    border-bottom: 1px solid #ddd8cf;
}

.single-post-content p {
    margin: 0 0 1.5em;
}

.single-post-content ul,
.single-post-content ol {
    margin: 0 0 1.5em 1.5em;
    padding: 0;
}

.single-post-content li {
    margin-bottom: 0.7em;
}

.single-post-content blockquote {
    margin: 2em 0;
    padding: 20px 24px;
    background: #faf7f2;
    border-left: 4px solid #d97a2b;
    color: #555;
}

.single-post-content a {
    color: #8a5a33;
    text-decoration: underline;
}

.single-post-content strong {
    background: linear-gradient(transparent 60%, #fff0cc 60%);
    font-weight: 700;
}

.single-post-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 2em 0;
    font-size: 15px;
}

.single-post-content th,
.single-post-content td {
    border: 1px solid #ddd8cf;
    padding: 12px 14px;
    text-align: left;
    line-height: 1.8;
}

.single-post-content th {
    background: #f5f0e9;
    font-weight: 700;
}

.single-post-content img {
    max-width: 100%;
    height: auto;
    margin: 2em 0;
    display: block;
}

.single-post-content hr {
    margin: 2.5em 0;
    border: 0;
    border-top: 1px solid #ddd8cf;
}

@media (max-width: 767px) {
    .single-post-content {
        padding: 22px;
        font-size: 15px;
        line-height: 1.9;
    }

    .single-post-content h2 {
        padding: 14px 16px;
        font-size: 24px;
    }

    .single-post-content h3 {
        font-size: 20px;
        padding-left: 12px;
    }

    .single-post-content h4 {
        font-size: 18px;
    }

    .single-post-content table {
        font-size: 14px;
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* ===== Single Post Navigation ===== */

.single-post-navigation {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #ddd8cf;
}

.single-post-nav-prev,
.single-post-nav-next {
    min-width: 0;
}

.single-post-nav-prev a,
.single-post-nav-next a {
    display: block;
    padding: 18px 20px;
    border: 1px solid #ddd8cf;
    background: #fff;
    color: #1e2939;
    text-decoration: none;
    font-size: 15px;
    line-height: 1.8;
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.single-post-nav-prev a:hover,
.single-post-nav-next a:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.06);
}

.single-post-nav-next {
    text-align: right;
}

@media (max-width: 767px) {
    .single-post-navigation {
        grid-template-columns: 1fr;
    }

    .single-post-nav-next {
        text-align: left;
    }

    .single-post-nav-prev a,
    .single-post-nav-next a {
        font-size: 14px;
        padding: 16px;
    }
}

/* ===== Table of Contents Accordion ===== */

.post-toc {
    margin: 2em 0 2.4em;
    border: 1px solid #ddd8cf;
    background: #faf7f2;
    overflow: hidden;
}

.post-toc-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.post-toc-title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    color: #1e2939;
}

.post-toc-icon {
    position: relative;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.post-toc-icon::before,
.post-toc-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: #1e2939;
    transform: translate(-50%, -50%);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.post-toc-icon::before {
    width: 16px;
    height: 2px;
}

.post-toc-icon::after {
    width: 2px;
    height: 16px;
}

.post-toc.is-open .post-toc-icon::after {
    opacity: 0;
}

.post-toc-body {
    padding: 0 24px 20px;
}

.post-toc-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.post-toc-item + .post-toc-item {
    margin-top: 10px;
}

.post-toc-item a {
    color: #364153;
    text-decoration: none;
    line-height: 1.8;
}

.post-toc-item a:hover {
    text-decoration: underline;
}

.post-toc-level-3 {
    padding-left: 16px;
    font-size: 14px;
}

.post-toc:not(.is-open) .post-toc-body {
    display: none;
}

@media (max-width: 767px) {
    .post-toc-toggle {
        padding: 16px;
    }

    .post-toc-body {
        padding: 0 16px 16px;
    }

    .post-toc-title {
        font-size: 16px;
    }

    .post-toc-level-3 {
        padding-left: 12px;
        font-size: 13px;
    }
}

/* ===== Single Post Layout ===== */

.single-post-section {
    padding: 80px 0 100px;
    background: #faf7f2;
}

.single-post-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
    align-items: start;
}

.single-post-main {
    min-width: 0;
}

.single-post-article {
    min-width: 0;
}

.single-post-header {
    margin-bottom: 32px;
}

.single-post-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 0 0 16px;
}

.single-post-date {
    margin: 0;
    font-size: 14px;
    color: #777;
}

.single-post-title {
    margin: 0;
    font-size: 40px;
    line-height: 1.5;
    color: #1e2939;
}

.single-post-thumb {
    margin-bottom: 32px;
    overflow: hidden;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.single-post-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.single-post-content {
    padding: 40px;
    border: 1px solid #ddd8cf;
    background: #fff;
    font-size: 16px;
    line-height: 2;
    color: #333;
}

.single-post-content > *:first-child {
    margin-top: 0;
}

.single-post-content > *:last-child {
    margin-bottom: 0;
}

.single-post-content h2 {
    margin: 2.4em 0 1em;
    padding: 18px 22px;
    background: #f5f0e9;
    border-left: 6px solid #d97a2b;
    font-size: 30px;
    line-height: 1.5;
    font-weight: 700;
    color: #1e2939;
}

.single-post-content h3 {
    margin: 2em 0 0.9em;
    padding-left: 16px;
    border-left: 4px solid #d97a2b;
    font-size: 24px;
    line-height: 1.6;
    font-weight: 700;
    color: #1e2939;
}

.single-post-content h4 {
    margin: 1.8em 0 0.8em;
    font-size: 20px;
    line-height: 1.6;
    font-weight: 700;
    color: #1e2939;
    padding-bottom: 8px;
    border-bottom: 1px solid #ddd8cf;
}

.single-post-content p {
    margin: 0 0 1.5em;
}

.single-post-content ul,
.single-post-content ol {
    margin: 0 0 1.5em 1.5em;
    padding: 0;
}

.single-post-content li {
    margin-bottom: 0.7em;
}

.single-post-content blockquote {
    margin: 2em 0;
    padding: 20px 24px;
    background: #faf7f2;
    border-left: 4px solid #d97a2b;
    color: #555;
}

.single-post-content a {
    color: #8a5a33;
    text-decoration: underline;
}

.single-post-content strong {
    background: linear-gradient(transparent 60%, #fff0cc 60%);
    font-weight: 700;
}

.single-post-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 2em 0;
    font-size: 15px;
}

.single-post-content th,
.single-post-content td {
    border: 1px solid #ddd8cf;
    padding: 12px 14px;
    text-align: left;
    line-height: 1.8;
}

.single-post-content th {
    background: #f5f0e9;
    font-weight: 700;
}

.single-post-content img {
    max-width: 100%;
    height: auto;
    margin: 2em 0;
    display: block;
}

.single-post-content hr {
    margin: 2.5em 0;
    border: 0;
    border-top: 1px solid #ddd8cf;
}

/* ===== Single Post Navigation ===== */

.single-post-navigation {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #ddd8cf;
}

.single-post-nav-prev,
.single-post-nav-next {
    min-width: 0;
}

.single-post-nav-prev a,
.single-post-nav-next a {
    display: block;
    padding: 18px 20px;
    border: 1px solid #ddd8cf;
    background: #fff;
    color: #1e2939;
    text-decoration: none;
    font-size: 15px;
    line-height: 1.8;
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.single-post-nav-prev a:hover,
.single-post-nav-next a:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.06);
}

.single-post-nav-next {
    text-align: right;
}

/* ===== Table of Contents Accordion ===== */

.post-toc {
    margin: 2em 0 2.4em;
    border: 1px solid #ddd8cf;
    background: #faf7f2;
    overflow: hidden;
}

.post-toc-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.post-toc-title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    color: #1e2939;
}

.post-toc-icon {
    position: relative;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.post-toc-icon::before,
.post-toc-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: #1e2939;
    transform: translate(-50%, -50%);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.post-toc-icon::before {
    width: 16px;
    height: 2px;
}

.post-toc-icon::after {
    width: 2px;
    height: 16px;
}

.post-toc.is-open .post-toc-icon::after {
    opacity: 0;
}

.post-toc-body {
    padding: 0 24px 20px;
}

.post-toc-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.post-toc-item + .post-toc-item {
    margin-top: 10px;
}

.post-toc-item a {
    color: #364153;
    text-decoration: none;
    line-height: 1.8;
}

.post-toc-item a:hover {
    text-decoration: underline;
}

.post-toc-level-3 {
    padding-left: 16px;
    font-size: 14px;
}

.post-toc:not(.is-open) .post-toc-body {
    display: none;
}

/* ===== Sidebar ===== */

.single-post-sidebar {
    position: static;
    top: auto;
    align-self: start;
}
.sidebar-block {
    padding: 20px;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.sidebar-block + .sidebar-block {
    margin-top: 20px;
}

.sidebar-title {
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #f0e3d0;
    font-size: 18px;
    line-height: 1.5;
    color: #1e2939;
}

.sidebar-post-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-post-item + .sidebar-post-item {
    margin-top: 14px;
}

.sidebar-post-item a {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 12px;
    text-decoration: none;
    color: inherit;
}

.sidebar-post-thumb {
    display: block;
    overflow: hidden;
    background: #f5f5f5;
}

.sidebar-post-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.sidebar-post-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.sidebar-post-date {
    font-size: 12px;
    line-height: 1.5;
    color: #777;
}

.sidebar-post-title {
    font-size: 14px;
    line-height: 1.7;
    font-weight: 700;
    color: #1e2939;
}

@media (max-width: 1024px) {
    .single-post-layout {
        grid-template-columns: 1fr;
    }

    .single-post-sidebar {
        position: static;
    }
}

@media (max-width: 767px) {
    .single-post-section {
        padding: 56px 0 72px;
    }

    .single-post-title {
        font-size: 28px;
    }

    .single-post-content {
        padding: 22px;
        font-size: 15px;
        line-height: 1.9;
    }

    .single-post-content h2 {
        padding: 14px 16px;
        font-size: 24px;
    }

    .single-post-content h3 {
        font-size: 20px;
        padding-left: 12px;
    }

    .single-post-content h4 {
        font-size: 18px;
    }

    .single-post-content table {
        font-size: 14px;
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .single-post-navigation {
        grid-template-columns: 1fr;
    }

    .single-post-nav-next {
        text-align: left;
    }

    .single-post-nav-prev a,
    .single-post-nav-next a {
        font-size: 14px;
        padding: 16px;
    }

    .post-toc-toggle {
        padding: 16px;
    }

    .post-toc-body {
        padding: 0 16px 16px;
    }

    .post-toc-title {
        font-size: 16px;
    }

    .post-toc-level-3 {
        padding-left: 12px;
        font-size: 13px;
    }

    .sidebar-post-item a {
        grid-template-columns: 72px 1fr;
    }
}

/* ===== Single Post Sidebar Image Style ===== */

.single-post-sidebar {
    position: static;
    top: auto;
    align-self: start;
}

.sidebar-block {
    padding: 20px;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.sidebar-block + .sidebar-block {
    margin-top: 24px;
}

.sidebar-title {
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 3px solid #1db4a5;
    font-size: 28px;
    line-height: 1.4;
    color: #1e2939;
    font-weight: 700;
}

.sidebar-featured-post a {
    display: block;
    text-decoration: none;
    color: inherit;
}

.sidebar-featured-thumb {
    margin-bottom: 16px;
    overflow: hidden;
    background: #f5f5f5;
    border: 1px solid #ddd8cf;
}

.sidebar-featured-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.sidebar-featured-title {
    margin: 0 0 14px;
    font-size: 22px;
    line-height: 1.6;
    color: #1e2939;
    font-weight: 700;
}

.sidebar-featured-excerpt {
    margin: 0;
    font-size: 15px;
    line-height: 1.9;
    color: #333;
}

.sidebar-simple-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-simple-item {
    padding: 0 0 14px;
    border-bottom: 1px solid #ddd8cf;
}

.sidebar-simple-item + .sidebar-simple-item {
    margin-top: 14px;
}

.sidebar-simple-item a {
    color: #1e2939;
    text-decoration: none;
    font-size: 17px;
    line-height: 1.7;
    font-weight: 700;
}

.sidebar-simple-item a:hover {
    opacity: 0.8;
}

/* ===== Footer Image Style ===== */

.site-footer {
    margin-top: 0;
    padding: 48px 0 28px;
    background: #1f1f22;
    color: #fff;
}

.site-footer-inner {
    width: min(1088px, calc(100% - 32px));
    margin: 0 auto;
}

.site-footer-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.site-footer-col {
    min-width: 0;
}

.site-footer-heading {
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 18px;
    line-height: 1.5;
    font-weight: 700;
    color: #fff;
}

.site-footer-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer-list li + li {
    margin-top: 10px;
}

.site-footer-list a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.8;
}

.site-footer-list a:hover {
    opacity: 0.8;
}

.site-footer-notice {
    padding: 28px 0;
}

.site-footer-notice p {
    margin: 0;
    font-size: 14px;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 700;
}

.site-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.site-footer-bottom-links {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 40px;
}

.site-footer-bottom-links a {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
}

.site-footer-bottom-links a:hover {
    opacity: 0.8;
}

.site-footer-copy {
    margin: 0;
    font-size: 14px;
    color: #fff;
    font-weight: 700;
}

@media (max-width: 1024px) {
    .single-post-layout {
        grid-template-columns: 1fr;
    }

    .single-post-sidebar {
        position: static;
    }
}

@media (max-width: 767px) {
    .sidebar-title {
        font-size: 22px;
    }

    .sidebar-featured-title {
        font-size: 18px;
    }

    .sidebar-simple-item a {
        font-size: 16px;
    }

    .site-footer {
        padding: 36px 0 24px;
    }

    .site-footer-top {
        grid-template-columns: 1fr;
    }

    .site-footer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }

    .site-footer-bottom-links {
        gap: 16px 24px;
    }
}

/* ===== Fixed Page ===== */

.page-content-section {
    padding: 80px 0 100px;
    background: #faf7f2;
}

.page-content-article {
    padding: 40px;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.page-content-title {
    margin: 0 0 24px;
    font-size: 40px;
    line-height: 1.5;
    color: #1e2939;
}

.page-content-body {
    font-size: 16px;
    line-height: 2;
    color: #333;
}

.page-content-body p {
    margin: 0 0 1.5em;
}

.page-content-body h2 {
    margin: 2em 0 1em;
    padding: 16px 20px;
    background: #f5f0e9;
    border-left: 6px solid #d97a2b;
    font-size: 28px;
    line-height: 1.5;
    color: #1e2939;
}

.page-content-body h3 {
    margin: 1.8em 0 0.8em;
    padding-left: 14px;
    border-left: 4px solid #d97a2b;
    font-size: 22px;
    line-height: 1.6;
    color: #1e2939;
}

.page-content-body ul,
.page-content-body ol {
    margin: 0 0 1.5em 1.5em;
}

.page-content-body img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 2em 0;
}

@media (max-width: 767px) {
    .page-content-section {
        padding: 56px 0 72px;
    }

    .page-content-article {
        padding: 22px;
    }

    .page-content-title {
        font-size: 28px;
    }

    .page-content-body {
        font-size: 15px;
        line-height: 1.9;
    }

    .page-content-body h2 {
        font-size: 22px;
        padding: 12px 14px;
    }

    .page-content-body h3 {
        font-size: 18px;
        padding-left: 10px;
    }
}

/* ===== Sitemap ===== */

.sitemap-section {
    padding: 80px 0 100px;
    background: #faf7f2;
}

.sitemap-article {
    padding: 40px;
    border: 1px solid #ddd8cf;
    background: #fff;
}

.sitemap-title {
    margin: 0 0 32px;
    font-size: 40px;
    line-height: 1.5;
    color: #1e2939;
}

.sitemap-block + .sitemap-block {
    margin-top: 36px;
}

.sitemap-heading {
    margin: 0 0 16px;
    padding: 14px 18px;
    background: #f5f0e9;
    border-left: 6px solid #d97a2b;
    font-size: 24px;
    line-height: 1.5;
    color: #1e2939;
}

.sitemap-list {
    margin: 0;
    padding-left: 20px;
}

.sitemap-list li + li {
    margin-top: 10px;
}

.sitemap-list a {
    color: #364153;
    text-decoration: underline;
    line-height: 1.8;
}

@media (max-width: 767px) {
    .sitemap-section {
        padding: 56px 0 72px;
    }

    .sitemap-article {
        padding: 22px;
    }

    .sitemap-title {
        font-size: 28px;
    }

    .sitemap-heading {
        padding: 12px 14px;
        font-size: 20px;
    }
}

.sitemap-child-list {
    margin-top: 8px;
}

.sitemap-empty {
    margin: 0;
    color: #666;
    line-height: 1.8;
}

.sitemap-heading-link {
    color: inherit;
    text-decoration: none;
    display: block;
}

.sitemap-heading-link:hover {
    opacity: 0.85;
}

.column-card-body {
    padding: 24px;
}

.column-title {
    margin: 0;
    font-size: 22px;
    line-height: 1.6;
    color: #1e2939;
}

/* ===== Figma Color Tuning ===== */

body {
    color: var(--color-text);
    background: var(--color-bg);
}

.section-title,
.company-main-title,
.company-sub-title,
.single-post-title,
.page-content-title,
.sitemap-title,
.column-title,
.sidebar-title,
.sidebar-featured-title,
.faq-question h3 {
    color: var(--color-text);
}

.section-label,
.column-date,
.single-post-date,
.sidebar-post-date,
.site-footer-notice p {
    color: var(--color-text-sub);
}

.company-info-label,
.single-post-content th {
    background: var(--color-navy);
    color: var(--color-white);
}

.single-post-content h2,
.sitemap-heading,
.company-sub-title {
    border-left-color: var(--color-accent);
}

.single-post-content h2,
.sitemap-heading,
.post-toc,
.faq-section,
.column-section,
.company-list-section,
.page-content-section,
.sitemap-section {
    background-color: var(--color-bg);
}

.company-card,
.column-card,
.review-box-detail,
.sidebar-block,
.page-content-article,
.sitemap-article,
.single-post-content,
.single-post-thumb {
    border-color: var(--color-border);
    background: var(--color-white);
}

.company-cta-btn-primary,
.faq-q,
.header-cta,
.hero-btn-primary {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-white);
}

.company-cta-btn-secondary,
.hero-btn-secondary,
.column-more-btn,
.company-more-btn {
    background: var(--color-white);
    border-color: var(--color-navy);
    color: var(--color-navy);
}

.site-footer {
    background: var(--color-footer);
    color: var(--color-white);
}

.site-header,
.company-summary-section,
.company-map-wrap,
.case-main,
.case-thumb,
.faq-item,
.post-toc,
.sitemap-article {
    border-color: var(--color-border);
}

.company-info-label {
    background: var(--color-navy) !important;
    color: var(--color-white) !important;
}

.single-post-content th {
    background: var(--color-navy) !important;
    color: var(--color-white) !important;
}

/* =========================================================
   FIGMA寄せ 上書き
   比較して理解する / おすすめ3社 / 失敗しない3つのポイント
========================================================= */

/* 共通 */
.section {
    background: #faf7f2;
}

.section-label {
    margin: 0 0 24px;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.02em;
    color: #1f2f46;
}

.section-title {
    margin: 0;
    text-align: center;
    font-size: 32px;
    line-height: 1.55;
    font-weight: 700;
    color: #1f2f46;
}

.section-line {
    display: block;
    width: 64px;
    height: 2px;
    margin: 18px auto 0;
    background: #1f2f46;
}

/* =========================================
   比較して理解する
========================================= */
.compare-section {
    padding: 120px 0 104px;
    background: #faf7f2;
}

.compare-section .inner {
    max-width: 1088px;
}

.compare-section .section-heading,
.recommend-section .section-heading,
.points-section .section-heading {
    margin-bottom: 56px;
}

.compare-section .content-box,
.compare-section .compare-box {
    background: transparent;
    border: 0;
    padding: 0;
}

.compare-section h3,
.compare-section .compare-sub-title {
    margin: 56px 0 20px;
    padding-left: 14px;
    border-left: 2px solid #1f2f46;
    font-size: 24px;
    line-height: 1.4;
    font-weight: 700;
    color: #1f2f46;
}

.compare-section p {
    color: #333b48;
    line-height: 1.95;
    font-size: 14px;
}

.compare-table-wrap {
    margin-top: 32px;
    border: 1px solid #b9b29f;
    overflow: hidden;
    background: #fff;
}

.compare-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 14px;
    color: #333b48;
}

.compare-table th,
.compare-table td {
    border: 1px solid #b9b29f;
    padding: 20px 18px;
    vertical-align: top;
    line-height: 1.8;
    background: #fff;
}

.compare-table thead th {
    background: #e8e2d7;
    color: #1f2f46;
    text-align: center;
    font-weight: 700;
    font-size: 15px;
}

.compare-table tbody th {
    width: 112px;
    background: #f2eee6;
    text-align: center;
    color: #1f2f46;
    font-weight: 700;
}

.compare-table ul {
    margin: 0;
    padding-left: 1.2em;
}

.compare-table li + li {
    margin-top: 6px;
}

.compare-section .compare-cta-wrap {
    margin-top: 32px;
    text-align: center;
}

.compare-section .compare-cta,
.compare-section .section-bottom-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 456px;
    min-height: 48px;
    padding: 12px 28px;
    background: #1f2f46;
    border: 1px solid #1f2f46;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    border-radius: 0;
}

/* =========================================
   おすすめ3社 比較表
========================================= */
.recommend-section {
    padding: 120px 0 96px;
    background: #faf7f2;
}

.recommend-section .inner {
    max-width: 1088px;
}

.recommend-table-wrap {
    margin-top: 24px;
    border: 1px solid #1f2f46;
    overflow: hidden;
    background: #fff;
}

.recommend-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.recommend-table th,
.recommend-table td {
    border: 1px solid #1f2f46;
    vertical-align: top;
    background: #fff;
}

.recommend-table thead th {
    padding: 14px 12px;
    background: #1f2f46;
    color: #fff;
    text-align: center;
}

.recommend-table thead th:first-child {
    width: 160px;
}

.recommend-table .recommend-catch {
    display: block;
    margin-bottom: 10px;
    font-size: 10px;
    line-height: 1.6;
    font-weight: 500;
    color: #d9dfeb;
}

.recommend-table .recommend-company {
    display: block;
    font-size: 20px;
    line-height: 1.5;
    font-weight: 700;
    color: #fff;
}

.recommend-table .recommend-image-cell {
    padding: 0;
    background: #fff;
}

.recommend-table .recommend-image-cell img {
    display: block;
    width: 100%;
    height: 147px;
    object-fit: cover;
}

.recommend-table .recommend-label {
    width: 160px;
    padding: 18px 14px;
    background: #1f2f46;
    color: #fff;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    vertical-align: middle;
}

.recommend-table .recommend-score {
    padding: 14px 12px;
    text-align: center;
    color: #d97a2b;
    font-size: 22px;
    font-weight: 700;
}

.recommend-table .recommend-score::before {
    content: "★ ";
    font-size: 18px;
    vertical-align: middle;
}

.recommend-table .recommend-feature,
.recommend-table .recommend-price {
    padding: 16px 14px;
    font-size: 13px;
    line-height: 1.8;
    color: #333b48;
}

.recommend-table .recommend-price {
    text-align: center;
    font-weight: 700;
    color: #1f2f46;
}

/* 3社比較表下のボタン */
.recommend-table-buttons {
    display: grid;
    grid-template-columns: 160px 1fr 1fr 1fr;
    gap: 0;
    margin-top: 0;
}

.recommend-table-buttons .spacer {
    background: transparent;
}

.recommend-table-buttons .company-btn-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 10px 0;
}

.recommend-table-buttons .company-btn-primary,
.recommend-table-buttons .company-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 8px 14px;
    text-align: center;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 700;
    border-radius: 0;
}

.recommend-table-buttons .company-btn-primary {
    background: #d97a2b;
    border: 1px solid #d97a2b;
    color: #fff;
}

.recommend-table-buttons .company-btn-secondary {
    background: #fff;
    border: 1px solid #d97a2b;
    color: #d97a2b;
}

/* =========================================
   失敗しない3つのポイント
========================================= */
.points-section {
    padding: 120px 0 96px;
    background: #faf7f2;
}

.points-section .inner {
    max-width: 1088px;
}

.points-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 32px;
}

.point-card {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 24px;
    padding: 32px;
    background: #d7d3c8;
    border: 0;
}

.point-number {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background: #1f2f46;
    color: #fff;
    font-weight: 700;
    line-height: 1;
}

.point-number .en {
    display: block;
    font-size: 12px;
    margin-bottom: 6px;
    letter-spacing: 0.02em;
}

.point-number .num {
    display: block;
    font-size: 30px;
}

.point-body h3 {
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 22px;
    line-height: 1.5;
    font-weight: 700;
    color: #1f2f46;
}

.point-body h3::before {
    content: "✦";
    font-size: 15px;
    color: #1f2f46;
}

.point-body p {
    margin: 0;
    font-size: 14px;
    line-height: 1.95;
    color: #333b48;
}

/* =========================================
   会社概要テーブル（表の紺色）
========================================= */
.company-summary-section .company-summary-title,
.company-summary-heading h4 {
    color: #1f2f46;
}

.company-info-table,
.company-info-table * {
    box-sizing: border-box;
}

.company-info-row {
    display: grid;
    grid-template-columns: 144px 1fr;
    border: 1px solid #b9b29f;
    border-top: 0;
}

.company-info-row:first-child {
    border-top: 1px solid #b9b29f;
}

.company-info-label {
    display: flex;
    align-items: center;
    padding: 14px 12px;
    background: #1f2f46 !important;
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

.company-info-value {
    display: flex;
    align-items: center;
    padding: 14px 12px;
    background: #fff;
    color: #1e2939;
    font-size: 14px;
    line-height: 1.7;
}

.company-info-value a {
    color: #1e2939;
    text-decoration: underline;
    word-break: break-all;
}

/* =========================================
   スマホ
========================================= */
@media (max-width: 767px) {
    .section-title {
        font-size: 24px;
        line-height: 1.5;
    }

    .compare-section,
    .recommend-section,
    .points-section {
        padding: 72px 0;
    }

    .compare-section h3,
    .compare-section .compare-sub-title {
        margin: 40px 0 16px;
        font-size: 20px;
    }

    .compare-section .compare-cta,
    .compare-section .section-bottom-btn {
        min-width: 100%;
    }

    .recommend-table-wrap {
        overflow-x: auto;
    }

    .recommend-table {
        min-width: 980px;
    }

    .recommend-table-buttons {
        min-width: 980px;
    }

    .points-list {
        gap: 16px;
    }

    .point-card {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 20px;
    }

    .point-number {
        width: 72px;
        height: 72px;
    }

    .point-body h3 {
        font-size: 18px;
    }

    .company-info-row {
        grid-template-columns: 1fr;
    }
}

/* =========================================
   微調整：Figmaとの差分修正
========================================= */

/* 全体の見出し回り */
.recommend-section .section-label,
.points-section .section-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 20px;
    background: #1f2f46;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    margin: 0 auto 24px;
}

.recommend-section .section-heading,
.points-section .section-heading {
    text-align: center;
    margin-bottom: 28px;
}

.recommend-section .section-title,
.points-section .section-title {
    font-size: 28px;
    line-height: 1.55;
    letter-spacing: 0;
}

.recommend-section .section-line,
.points-section .section-line {
    width: 64px;
    height: 2px;
    margin-top: 18px;
    background: #1f2f46;
}

/* =========================================
   おすすめ3社：表の見た目微調整
========================================= */
.recommend-section {
    padding-top: 96px;
    padding-bottom: 88px;
}

.recommend-table-wrap {
    margin-top: 22px;
    border: 1px solid #1f2f46;
    background: #ffffff;
}

.recommend-table thead th {
    background: #2f3f78;
    color: #ffffff;
    padding: 14px 10px 16px;
}

.recommend-table .recommend-label {
    background: #2f3f78;
    color: #ffffff;
    width: 150px;
    font-size: 14px;
    line-height: 1.4;
}

.recommend-table .recommend-company {
    font-size: 18px;
    line-height: 1.45;
}

.recommend-table .recommend-catch {
    font-size: 11px;
    line-height: 1.5;
    margin-bottom: 8px;
    color: #eef2ff;
}

.recommend-table .recommend-image-cell img {
    height: 138px;
    object-fit: cover;
}

.recommend-table .recommend-score {
    font-size: 18px;
    line-height: 1;
    padding: 14px 12px;
}

.recommend-table .recommend-feature,
.recommend-table .recommend-price {
    font-size: 12px;
    line-height: 1.75;
}

.recommend-table .recommend-price {
    font-size: 14px;
    font-weight: 700;
}

/* 表下ボタン：位置と大きさ */
.recommend-table-buttons {
    width: 100%;
    grid-template-columns: 150px repeat(3, 1fr);
    column-gap: 0;
    row-gap: 0;
    margin-top: 18px;
}

.recommend-table-buttons .company-btn-group {
    padding: 0 18px;
    gap: 10px;
}

.recommend-table-buttons .company-btn-primary,
.recommend-table-buttons .company-btn-secondary {
    width: 100%;
    min-height: 56px;
    padding: 10px 12px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 0;
}

.recommend-table-buttons .company-btn-primary {
    background: #d66a00;
    border: 1px solid #d66a00;
    color: #ffffff;
}

.recommend-table-buttons .company-btn-secondary {
    background: #ffffff;
    border: 2px solid #2f3f78;
    color: #2f3f78;
}

/* =========================================
   失敗しない3つのポイント：ここが一番ズレている
========================================= */
.points-section {
    padding-top: 96px;
    padding-bottom: 96px;
}

.points-section .inner {
    max-width: 1088px;
}

.points-section .section-heading {
    margin-bottom: 34px;
}

.points-list {
    gap: 24px;
    margin-top: 0;
}

.point-card {
    display: grid;
    grid-template-columns: 80px 1fr;
    align-items: start;
    gap: 24px;
    padding: 32px 28px;
    background: #d8d3c7;
    border: none;
}

.point-number {
    width: 56px;
    height: 56px;
    background: #2f3f78;
    color: #ffffff;
    align-items: center;
    justify-content: center;
    padding: 8px 0;
}

.point-number .en {
    font-size: 10px;
    margin-bottom: 4px;
    line-height: 1;
}

.point-number .num {
    font-size: 24px;
    line-height: 1;
}

.point-body h3 {
    margin: 0 0 12px;
    font-size: 20px;
    line-height: 1.5;
    color: #1f2f46;
}

.point-body h3::before {
    content: "✦";
    margin-right: 2px;
    font-size: 12px;
    color: #1f2f46;
}

.point-body p {
    font-size: 13px;
    line-height: 1.95;
    color: #333b48;
}

/* もし本文が縦に崩れる場合の保険 */
.point-body,
.point-body * {
    word-break: break-word;
}

/* =========================================
   比較して理解する：ボタンだけ少し修正
========================================= */
.compare-section .compare-cta,
.compare-section .section-bottom-btn {
    min-width: 420px;
    min-height: 48px;
    padding: 12px 24px;
    background: #1f2f46;
    border: 1px solid #1f2f46;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-section .section-title,
    .points-section .section-title {
        font-size: 24px;
    }

    .point-card {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 20px;
    }

    .recommend-table-buttons {
        min-width: 980px;
    }
}

/* =========================================
   失敗しない3つのポイント - Figma寄せ
========================================= */
.points-section {
    padding: 112px 0 96px;
    background: #faf7f2;
}

.points-section .inner {
    max-width: 1088px;
}

.points-section .section-heading {
    margin-bottom: 32px;
    text-align: center;
}

.points-section .section-title {
    margin: 0;
    font-size: 30px;
    line-height: 1.6;
    font-weight: 700;
    color: #1f2f46;
}

.points-section .section-line {
    display: block;
    width: 64px;
    height: 2px;
    margin: 18px auto 0;
    background: #1f2f46;
}

.points-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 0;
}

.point-card {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 24px;
    align-items: start;
    padding: 32px;
    background: #d8d3c7;
    border: none;
}

.point-number {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: #2f3f78;
    color: #ffffff;
    text-align: center;
    font-weight: 700;
    line-height: 1;
}

.point-number .en {
    display: block;
    margin-bottom: 4px;
    font-size: 10px;
    line-height: 1;
}

.point-number .num {
    display: block;
    font-size: 24px;
    line-height: 1;
}

.point-body h3 {
    margin: 0 0 12px;
    font-size: 20px;
    line-height: 1.5;
    font-weight: 700;
    color: #1f2f46;
}

.point-body h3::before {
    content: "✦";
    display: inline-block;
    margin-right: 6px;
    font-size: 12px;
    color: #1f2f46;
    vertical-align: middle;
}

.point-body p {
    margin: 0;
    font-size: 14px;
    line-height: 1.95;
    color: #333b48;
}

@media (max-width: 767px) {
    .points-section {
        padding: 72px 0;
    }

    .points-section .section-title {
        font-size: 24px;
    }

    .point-card {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 20px;
    }

    .point-number {
        width: 56px;
        height: 56px;
    }

    .point-body h3 {
        font-size: 18px;
    }

    .point-body p {
        font-size: 13px;
    }
}
/* =========================================
   おすすめ3社 比較表 - 色だけFigma寄せ
========================================= */

.recommend-table-wrap {
    border: 1px solid #2f3f78;
    background: #f4f1ea;
}

.recommend-table {
    background: #f4f1ea;
}

.recommend-table th,
.recommend-table td {
    border: 1px solid #2f3f78;
}

/* 上部ヘッダー */
.recommend-table thead th {
    background: #2f3f78 !important;
    color: #ffffff !important;
}

/* 左の見出し列 */
.recommend-table .recommend-label {
    background: #2f3f78 !important;
    color: #ffffff !important;
}

/* 会社画像の行 */
.recommend-table .recommend-image-cell {
    background: #ffffff !important;
}

/* 口コミ評価・特徴・坪単価セル */
.recommend-table .recommend-score,
.recommend-table .recommend-feature,
.recommend-table .recommend-price {
    background: #f4f1ea !important;
    color: #1f2f46;
}

/* 口コミ評価の数値 */
.recommend-table .recommend-score {
    color: #d97a2b !important;
    font-weight: 700;
}

/* 坪単価の色 */
.recommend-table .recommend-price {
    color: #1f2f46 !important;
    font-weight: 700;
}

/* 特徴の本文 */
.recommend-table .recommend-feature {
    color: #333b48 !important;
}

/* 会社名セル内テキスト */
.recommend-table .recommend-catch {
    color: #eef2ff !important;
}

.recommend-table .recommend-company {
    color: #ffffff !important;
}

/* =========================================
   おすすめ3社（div構造版）- Figma寄せ
========================================= */

.recommend-section {
    padding: 96px 0 88px;
    background: #faf7f2;
}

.recommend-section .inner.narrow-inner {
    width: min(1088px, calc(100% - 32px));
    max-width: 1088px;
    margin: 0 auto;
}

.recommend-section .section-heading {
    text-align: center;
    margin-bottom: 28px;
}

.recommend-section .section-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 20px;
    background: #1f2f46;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    margin: 0 auto 24px;
}

.recommend-section .section-title {
    margin: 0;
    font-size: 30px;
    line-height: 1.5;
    font-weight: 700;
    color: #1f2f46;
    letter-spacing: 0;
}

.recommend-section .section-line {
    display: block;
    width: 64px;
    height: 2px;
    margin: 18px auto 0;
    background: #1f2f46;
}

/* 表全体 */
.recommend-table-wrap {
    margin-top: 24px;
    border: 1px solid #2f3f78;
    background: #f4f1ea;
}

.recommend-table {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.recommend-row {
    display: grid;
    grid-template-columns: 130px repeat(3, 1fr);
}

.recommend-cell {
    box-sizing: border-box;
    padding: 16px 14px;
    border-right: 1px solid #2f3f78;
    border-bottom: 1px solid #2f3f78;
    background: #f4f1ea;
    color: #1f2f46;
    font-size: 13px;
    line-height: 1.8;
}

.recommend-row:last-child .recommend-cell {
    border-bottom: 0;
}

.recommend-row .recommend-cell:last-child {
    border-right: 0;
}

/* ヘッダー行 */
.recommend-row.recommend-head .recommend-cell {
    min-height: 112px;
    padding: 16px 12px 18px;
    background: #2f3f78;
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.recommend-row.recommend-head .recommend-label {
    background: #2f3f78;
}

.recommend-catch {
    margin: 0 0 8px;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 500;
    color: #e7ecff;
}

.recommend-company {
    margin: 0;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 700;
    color: #ffffff;
}

.recommend-company span {
    display: inline;
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
}

/* 左ラベル列 */
.recommend-label {
    background: #2f3f78 !important;
    color: #ffffff !important;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 78px;
}

.recommend-label span {
    font-size: 13px;
    font-weight: 700;
}

/* スコア行 */
.recommend-score {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    background: #f4f1ea;
    color: #d97a2b;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}

.recommend-score::before {
    content: "★ ";
    font-size: 16px;
    margin-right: 2px;
}

/* 特徴行 */
.recommend-row:nth-child(3) .recommend-cell:not(.recommend-label) {
    min-height: 210px;
    background: #f4f1ea;
    vertical-align: top;
}

.recommend-list {
    margin: 0;
    padding-left: 1.2em;
}

.recommend-list li {
    margin: 0;
    color: #333b48;
    font-size: 13px;
    line-height: 1.85;
}

.recommend-list li + li {
    margin-top: 6px;
}

/* 坪単価行 */
.recommend-price {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 68px;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 700;
    color: #1f2f46;
    text-align: center;
    background: #f4f1ea;
}

/* ボタン群 */
.recommend-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 22px;
}

.recommend-button-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.recommend-button-group .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 10px 14px;
    text-align: center;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 700;
    border-radius: 999px;
    box-sizing: border-box;
}

.recommend-button-group .btn-primary {
    background: #d97a2b;
    border: 1px solid #d97a2b;
    color: #ffffff;
}

.recommend-button-group .btn-secondary {
    background: #ffffff;
    border: 2px solid #d97a2b;
    color: #d97a2b;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-section {
        padding: 72px 0;
    }

    .recommend-section .section-title {
        font-size: 24px;
    }

    .recommend-table-wrap {
        overflow-x: auto;
    }

    .recommend-table {
        min-width: 930px;
    }

    .recommend-buttons {
        grid-template-columns: repeat(3, 1fr);
        min-width: 930px;
        gap: 20px;
    }
}

/* =========================================
   おすすめ3社 微調整
========================================= */

/* 表本体の幅 */
.recommend-table-wrap {
    max-width: 930px;
    margin: 24px auto 0;
    border: 1px solid #2f3f78;
    background: #ffffff;
}

.recommend-table {
    width: 100%;
    background: #ffffff;
}

/* 各行 */
.recommend-row {
    display: grid;
    grid-template-columns: 115px repeat(3, 1fr);
}

/* 通常セルは白 */
.recommend-cell {
    background: #ffffff;
    border-right: 1px solid #2f3f78;
    border-bottom: 1px solid #2f3f78;
    color: #1f2f46;
    box-sizing: border-box;
}

/* 上ヘッダーだけ紺 */
.recommend-row.recommend-head .recommend-cell {
    background: #2f3f78;
    color: #ffffff;
    min-height: 96px;
    padding: 14px 10px;
}

/* 左ラベル列 */
.recommend-label {
    background: #2f3f78 !important;
    color: #ffffff !important;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    padding: 10px 8px;
}

.recommend-row.recommend-head .recommend-label {
    min-height: 96px;
}

/* ヘッダーテキスト */
.recommend-catch {
    margin: 0 0 6px;
    font-size: 10px;
    line-height: 1.5;
    font-weight: 500;
    color: #eef2ff;
}

.recommend-company {
    margin: 0;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 700;
    color: #ffffff;
}

.recommend-company span {
    font-size: 15px;
    color: #ffffff;
}

/* 口コミ評価 */
.recommend-score {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 700;
    background: #ffffff;
    color: #1f2f46;
}

/* トヨキタだけ黄色＋★ */
.recommend-row:nth-child(2) .recommend-cell:nth-child(2) {
    color: #f0b323;
}

/* 特徴セル */
.recommend-row:nth-child(3) .recommend-cell:not(.recommend-label) {
    min-height: 156px;
    padding: 14px 16px;
    background: #ffffff;
}

.recommend-list {
    margin: 0;
    padding-left: 1em;
}

.recommend-list li {
    font-size: 12px;
    line-height: 1.9;
    color: #1f2f46;
    margin: 0;
}

.recommend-list li + li {
    margin-top: 4px;
}

/* 坪単価 */
.recommend-price {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    color: #1f2f46;
    background: #ffffff;
}

/* ボタンエリアも表幅に合わせる */
.recommend-buttons {
    max-width: 930px;
    margin: 14px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.recommend-button-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ボタン幅と形 */
.recommend-button-group .btn {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 700;
    box-sizing: border-box;
}

.recommend-button-group .btn-primary {
    background: #d97a2b;
    border: 1px solid #d97a2b;
    color: #ffffff;
    border-radius: 999px;
}

.recommend-button-group .btn-secondary {
    background: #ffffff;
    border: 2px solid #d97a2b;
    color: #d97a2b;
    border-radius: 999px;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-table-wrap {
        overflow-x: auto;
    }

    .recommend-table {
        min-width: 930px;
    }

    .recommend-buttons {
        min-width: 930px;
    }
}

/* =========================================
   おすすめ3社 - Figma最終寄せ
========================================= */

.recommend-table-wrap {
    max-width: 930px;
    margin: 24px auto 0;
    border: 1px solid #2f3f78;
    background: #ffffff;
}

.recommend-table {
    width: 100%;
    background: #ffffff;
}

.recommend-row {
    display: grid;
    grid-template-columns: 150px repeat(3, 1fr);
}

.recommend-cell {
    box-sizing: border-box;
    padding: 16px 14px;
    border-right: 1px solid #2f3f78;
    border-bottom: 1px solid #2f3f78;
    background: #ffffff;
    color: #1f2f46;
    font-size: 13px;
    line-height: 1.8;
}

.recommend-row .recommend-cell:last-child {
    border-right: 0;
}

.recommend-row:last-child .recommend-cell {
    border-bottom: 0;
}

/* 上部ヘッダー */
.recommend-row.recommend-head .recommend-cell {
    min-height: 92px;
    padding: 14px 12px;
    background: #2f3f78;
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.recommend-row.recommend-head .recommend-label {
    background: #2f3f78;
}

/* 左ラベル列 */
.recommend-label {
    background: #2f3f78 !important;
    color: #ffffff !important;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    padding: 12px 10px;
    word-break: keep-all;
}

.recommend-label span {
    display: inline;
    font-size: 13px;
    font-weight: 700;
}

/* ヘッダー内テキスト */
.recommend-catch {
    margin: 0 0 6px;
    font-size: 10px;
    line-height: 1.45;
    font-weight: 500;
    color: #eef2ff;
}

.recommend-company {
    margin: 0;
    font-size: 17px;
    line-height: 1.4;
    font-weight: 700;
    color: #ffffff;
}

.recommend-company span {
    font-size: 15px;
    font-weight: 700;
    color: #ffffff;
}

/* 口コミ評価 */
.recommend-score {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    color: #1f2f46;
}

/* トヨキタだけ黄色＋★ */
.recommend-row:nth-child(2) .recommend-cell:nth-child(2) {
    color: #f0b323;
}

.recommend-row:nth-child(2) .recommend-cell:nth-child(2)::before {
    content: "★ ";
    color: #f0b323;
    font-size: 15px;
    margin-right: 2px;
}

/* 日興・一条は星なし、黒字 */
.recommend-row:nth-child(2) .recommend-cell:nth-child(3),
.recommend-row:nth-child(2) .recommend-cell:nth-child(4) {
    color: #1f2f46;
}

.recommend-row:nth-child(2) .recommend-cell:nth-child(3)::before,
.recommend-row:nth-child(2) .recommend-cell:nth-child(4)::before {
    content: "";
}

/* 特徴 */
.recommend-row:nth-child(3) .recommend-cell:not(.recommend-label) {
    min-height: 150px;
    padding: 14px 14px 12px;
    background: #ffffff;
}

.recommend-list {
    margin: 0;
    padding-left: 1em;
}

.recommend-list li {
    margin: 0;
    color: #1f2f46;
    font-size: 12px;
    line-height: 1.9;
}

.recommend-list li + li {
    margin-top: 4px;
}

/* 坪単価 */
.recommend-price {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    color: #1f2f46;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
}

/* トヨキタだけ黄色 */
.recommend-row:nth-child(4) .recommend-cell:nth-child(2) {
    color: #f0b323;
}

/* ボタン */
.recommend-buttons {
    max-width: 930px;
    margin: 16px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.recommend-button-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.recommend-button-group .btn {
    width: 100%;
    min-height: 40px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
    box-sizing: border-box;
    border-radius: 0;
}

.recommend-button-group .btn-primary {
    background: #d66a00;
    border: 1px solid #d66a00;
    color: #ffffff;
}

.recommend-button-group .btn-secondary {
    background: #ffffff;
    border: 2px solid #2f3f78;
    color: #2f3f78;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-table-wrap {
        overflow-x: auto;
    }

    .recommend-table {
        min-width: 930px;
    }

    .recommend-buttons {
        min-width: 930px;
    }
}
/* =========================================
   おすすめ3社 最終微調整
========================================= */

/* 表全体 */
.recommend-table-wrap {
    width: 930px;
    max-width: 930px;
    margin: 24px auto 0;
    border: 1px solid #2f3f78;
    background: #ffffff !important;
}

.recommend-table {
    width: 100%;
    background: #ffffff !important;
}

/* 各行幅 */
.recommend-row {
    display: grid;
    grid-template-columns: 150px repeat(3, 260px);
}

/* すべての通常セルを白背景に */
.recommend-cell {
    background: #ffffff !important;
    color: #1f2f46 !important;
    border-right: 1px solid #2f3f78;
    border-bottom: 1px solid #2f3f78;
    box-sizing: border-box;
}

/* ヘッダー行のみ紺 */
.recommend-row.recommend-head .recommend-cell {
    background: #2f3f78 !important;
    color: #ffffff !important;
}

/* 左列ラベル */
.recommend-label {
    background: #2f3f78 !important;
    color: #ffffff !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 10px;
    word-break: keep-all;
}

/* ヘッダー内文字 */
.recommend-catch {
    color: #eef2ff !important;
}

.recommend-company,
.recommend-company span {
    color: #ffffff !important;
}

/* 口コミ評価 */
.recommend-score {
    background: #ffffff !important;
    color: #1f2f46 !important;
    font-size: 17px;
    font-weight: 700;
}

/* トヨキタだけ黄色＋星 */
.recommend-row:nth-child(2) .recommend-cell:nth-child(2) {
    color: #f0b323 !important;
}

.recommend-row:nth-child(2) .recommend-cell:nth-child(2)::before {
    content: "★ ";
    color: #f0b323;
    font-size: 15px;
    margin-right: 2px;
}

/* 日興・一条は星なし・黒 */
.recommend-row:nth-child(2) .recommend-cell:nth-child(3),
.recommend-row:nth-child(2) .recommend-cell:nth-child(4) {
    color: #1f2f46 !important;
}

.recommend-row:nth-child(2) .recommend-cell:nth-child(3)::before,
.recommend-row:nth-child(2) .recommend-cell:nth-child(4)::before {
    content: "";
}

/* 特徴本文 */
.recommend-row:nth-child(3) .recommend-cell:not(.recommend-label) {
    background: #ffffff !important;
    color: #1f2f46 !important;
}

.recommend-list li {
    color: #1f2f46 !important;
}

/* 坪単価 */
.recommend-price {
    background: #ffffff !important;
    color: #1f2f46 !important;
    font-weight: 700;
}

/* トヨキタだけ黄色 */
.recommend-row:nth-child(4) .recommend-cell:nth-child(2) {
    color: #f0b323 !important;
}

/* ボタンエリア：表幅と完全に合わせる */
.recommend-buttons {
    width: 930px;
    max-width: 930px;
    margin: 16px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 260px);
    justify-content: start;
    column-gap: 0;
    row-gap: 0;
}

.recommend-button-group {
    width: 260px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.recommend-button-group .btn {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 12px;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
    border-radius: 0;
}

.recommend-button-group .btn-primary {
    background: #d66a00;
    border: 1px solid #d66a00;
    color: #ffffff;
}

.recommend-button-group .btn-secondary {
    background: #ffffff;
    border: 2px solid #2f3f78;
    color: #2f3f78;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-table-wrap {
        width: auto;
        max-width: none;
        overflow-x: auto;
    }

    .recommend-table {
        min-width: 930px;
    }

    .recommend-buttons {
        width: 930px;
        max-width: none;
    }
}

/* =========================================
   おすすめ3社 最終位置調整
========================================= */

/* 表の幅と列幅を固定 */
.recommend-table-wrap {
    width: 930px;
    max-width: 930px;
    margin: 24px auto 0;
    background: #ffffff !important;
}

.recommend-row {
    display: grid;
    grid-template-columns: 150px repeat(3, 260px);
}

/* 表の中身セルは全部白 */
.recommend-row:nth-child(2) .recommend-cell:not(.recommend-label),
.recommend-row:nth-child(3) .recommend-cell:not(.recommend-label),
.recommend-row:nth-child(4) .recommend-cell:not(.recommend-label) {
    background: #ffffff !important;
    color: #1f2f46 !important;
}

/* 口コミ評価 */
.recommend-score {
    background: #ffffff !important;
    color: #1f2f46 !important;
}

/* トヨキタだけ黄色＋★ */
.recommend-row:nth-child(2) .recommend-cell:nth-child(2) {
    color: #f0b323 !important;
}

.recommend-row:nth-child(2) .recommend-cell:nth-child(2)::before {
    content: "★ ";
    color: #f0b323;
    font-size: 15px;
    margin-right: 2px;
}

/* 他2社は星なし黒字 */
.recommend-row:nth-child(2) .recommend-cell:nth-child(3)::before,
.recommend-row:nth-child(2) .recommend-cell:nth-child(4)::before {
    content: "";
}

.recommend-row:nth-child(2) .recommend-cell:nth-child(3),
.recommend-row:nth-child(2) .recommend-cell:nth-child(4) {
    color: #1f2f46 !important;
}

/* 特徴の本文色 */
.recommend-list li {
    color: #1f2f46 !important;
}

/* 坪単価 */
.recommend-price {
    background: #ffffff !important;
    color: #1f2f46 !important;
}

.recommend-row:nth-child(4) .recommend-cell:nth-child(2) {
    color: #f0b323 !important;
}

/* -----------------------------------------
   ボタン位置
   左ラベル列 150px を避けて、3社列に揃える
----------------------------------------- */
.recommend-buttons {
    width: 780px;              /* 260px × 3列 */
    max-width: 780px;
    margin: 16px auto 0;
    margin-left: calc(50% - 390px + 150px); /* 中央配置 + 左ラベル列ぶん右へ */
    display: grid;
    grid-template-columns: repeat(3, 260px);
    column-gap: 0;
    row-gap: 0;
}

.recommend-button-group {
    width: 260px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 14px; /* ボタン同士をくっつけない */
    box-sizing: border-box;
}

/* ボタン */
.recommend-button-group .btn {
    width: 100%;
    min-height: 40px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
    box-sizing: border-box;
    border-radius: 0;
}

.recommend-button-group .btn-primary {
    background: #d66a00;
    border: 1px solid #d66a00;
    color: #ffffff;
}

.recommend-button-group .btn-secondary {
    background: #ffffff;
    border: 2px solid #2f3f78;
    color: #2f3f78;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-buttons {
        width: 780px;
        max-width: none;
        margin-left: 150px;
    }
}
/* =========================================
   おすすめ3社 画像行あり最終版
========================================= */

.recommend-table-wrap {
    width: 930px;
    max-width: 930px;
    margin: 24px auto 0;
    border: 1px solid #2f3f78;
    background: #ffffff;
}

.recommend-table {
    width: 100%;
    background: #ffffff;
}

.recommend-row {
    display: grid;
    grid-template-columns: 150px repeat(3, 260px);
}

.recommend-cell {
    box-sizing: border-box;
    padding: 16px 14px;
    border-right: 1px solid #2f3f78;
    border-bottom: 1px solid #2f3f78;
    background: #ffffff !important;
    color: #1f2f46 !important;
}

.recommend-row .recommend-cell:last-child {
    border-right: 0;
}

.recommend-row:last-child .recommend-cell {
    border-bottom: 0;
}

/* ヘッダー */
.recommend-row.recommend-head .recommend-cell {
    min-height: 92px;
    padding: 14px 12px;
    background: #2f3f78 !important;
    color: #ffffff !important;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.recommend-row.recommend-head .recommend-label {
    background: #2f3f78 !important;
}

/* 左ラベル列 */
.recommend-label {
    background: #2f3f78 !important;
    color: #ffffff !important;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    padding: 12px 10px;
    word-break: keep-all;
}

.recommend-catch {
    margin: 0 0 6px;
    font-size: 10px;
    line-height: 1.45;
    font-weight: 500;
    color: #eef2ff !important;
}

.recommend-company,
.recommend-company span {
    color: #ffffff !important;
}

.recommend-company {
    margin: 0;
    font-size: 17px;
    line-height: 1.4;
    font-weight: 700;
}

/* 画像行 */
.recommend-image-row .recommend-cell {
    padding: 0;
    background: #ffffff !important;
}

.recommend-image-row .recommend-label {
    background: #2f3f78 !important;
}

.recommend-image-cell img {
    display: block;
    width: 100%;
    height: 96px;
    object-fit: cover;
}

/* 口コミ評価 */
.recommend-score {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff !important;
    color: #1f2f46 !important;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
}

.recommend-row:nth-child(3) .recommend-cell:nth-child(2) {
    color: #f0b323 !important;
}

.recommend-row:nth-child(3) .recommend-cell:nth-child(2)::before {
    content: "★ ";
    color: #f0b323;
    font-size: 15px;
    margin-right: 2px;
}

.recommend-row:nth-child(3) .recommend-cell:nth-child(3)::before,
.recommend-row:nth-child(3) .recommend-cell:nth-child(4)::before {
    content: "★ ";
    color: #1f2f46;
    font-size: 15px;
    margin-right: 2px;
}

/* 特徴 */
.recommend-row:nth-child(4) .recommend-cell:not(.recommend-label) {
    min-height: 150px;
    padding: 14px 14px 12px;
    background: #ffffff !important;
}

.recommend-list {
    margin: 0;
    padding-left: 1em;
}

.recommend-list li {
    margin: 0;
    color: #1f2f46 !important;
    font-size: 12px;
    line-height: 1.9;
}

.recommend-list li + li {
    margin-top: 4px;
}

/* 坪単価 */
.recommend-price {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff !important;
    color: #1f2f46 !important;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
}

.recommend-row:nth-child(5) .recommend-cell:nth-child(2) {
    color: #f0b323 !important;
}

/* ボタン：左ラベル列を避けて3社列に合わせる */
.recommend-buttons {
    width: 780px;
    max-width: 780px;
    margin: 18px auto 0;
    margin-left: calc(50% - 390px + 150px);
    display: grid;
    grid-template-columns: repeat(3, 220px);
    justify-content: space-between;
    gap: 0;
}

.recommend-button-group {
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.recommend-button-group .btn {
    width: 100%;
    min-height: 56px;
    padding: 8px 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 700;
    box-sizing: border-box;
    border-radius: 0;
}

.recommend-button-group .btn-primary {
    background: #d66a00;
    border: 1px solid #d66a00;
    color: #ffffff;
}

.recommend-button-group .btn-secondary {
    background: #ffffff;
    border: 2px solid #2f3f78;
    color: #2f3f78;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-table-wrap {
        width: auto;
        max-width: none;
        overflow-x: auto;
    }

    .recommend-table {
        min-width: 930px;
    }

    .recommend-buttons {
        width: 780px;
        max-width: none;
        margin-left: 150px;
    }
}

/* =========================================
   おすすめ3社 ボタン位置最終調整
========================================= */

.recommend-buttons {
    width: 780px;
    max-width: 780px;
    margin-top: 18px;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: calc(50% - 390px + 150px);
    display: grid;
    grid-template-columns: repeat(3, 220px);
    justify-content: space-between;
    align-items: start;
    column-gap: 0;
    row-gap: 0;
}

.recommend-button-group {
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.recommend-button-group .btn {
    width: 100%;
    min-height: 56px;
    padding: 8px 10px;
    box-sizing: border-box;
    text-align: center;
    justify-content: center;
    align-items: center;
    line-height: 1.45;
}

/* 画像の高さもFigma寄せ */
.recommend-image-cell img {
    display: block;
    width: 100%;
    height: 96px;
    object-fit: cover;
}

/* 口コミ評価の縦幅を少し低く */
.recommend-score {
    min-height: 50px;
}

@media (max-width: 767px) {
    .recommend-buttons {
        width: 780px;
        max-width: none;
        margin-left: 150px;
    }
}

/* =========================================
   おすすめ3社 最終仕上げ
========================================= */

/* 表の中身を全部白に固定 */
.recommend-row:nth-child(3) .recommend-cell:not(.recommend-label),
.recommend-row:nth-child(4) .recommend-cell:not(.recommend-label),
.recommend-row:nth-child(5) .recommend-cell:not(.recommend-label),
.recommend-score,
.recommend-price {
    background: #ffffff !important;
}

/* Google口コミの高さを少し低く */
.recommend-score {
    min-height: 42px !important;
    padding-top: 6px;
    padding-bottom: 6px;
}

/* ボタン位置を表の3列にぴったり合わせる */
.recommend-buttons-wrap {
    width: 930px;
    max-width: 930px;
    margin: 18px auto 0;
    padding-left: 150px; /* 左ラベル列ぶん */
    box-sizing: border-box;
}

.recommend-buttons {
    width: 780px;
    display: grid;
    grid-template-columns: repeat(3, 220px);
    justify-content: space-between;
    align-items: start;
    gap: 0;
    margin: 0;
}

.recommend-button-group {
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ボタンサイズ維持 */
.recommend-button-group .btn {
    width: 100%;
    min-height: 56px;
    padding: 8px 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
    box-sizing: border-box;
    border-radius: 0;
}

/* スマホ */
@media (max-width: 767px) {
    .recommend-buttons-wrap {
        width: 930px;
        max-width: none;
        margin-left: 0;
        padding-left: 150px;
    }

    .recommend-buttons {
        width: 780px;
    }
}

/* =========================================
   比較して理解する - Figma寄せ
========================================= */

.compare-section {
    padding: 110px 0 96px;
    background: #ffffff;
}

.compare-section .section-heading {
    text-align: center;
    margin-bottom: 46px;
}

.compare-section .section-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 18px;
    background: #1f2f46;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    margin: 0 auto 22px;
}

.compare-section .section-title {
    margin: 0;
    font-size: 30px;
    line-height: 1.55;
    font-weight: 700;
    color: #1f2f46;
}

.compare-section .section-line {
    display: block;
    width: 64px;
    height: 2px;
    margin: 18px auto 0;
    background: #1f2f46;
}

/* 上の説明文 */
.compare-lead {
    margin-bottom: 44px;
}

.compare-lead-title,
.compare-sub-title {
    margin: 0 0 20px;
    padding-left: 14px;
    border-left: 4px solid #d97a2b;
    font-size: 18px;
    line-height: 1.5;
    font-weight: 700;
    color: #1f2f46;
}

.compare-lead p {
    margin: 0 0 18px;
    font-size: 16px;
    line-height: 2;
    color: #333b48;
}

.text-accent {
    color: #d97a2b;
    font-weight: 700;
}

/* 比較表 */
.compare-box {
    margin-top: 24px;
}

.compare-table-wrap {
    border: 1px solid #7d7d7d;
    background: #ffffff;
    overflow: hidden;
}

.compare-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    background: #ffffff;
}

.compare-table th,
.compare-table td {
    border: 1px solid #7d7d7d;
    padding: 16px 14px;
    vertical-align: top;
    background: #ffffff;
    color: #1f2f46;
    font-size: 14px;
    line-height: 1.85;
}

.compare-table thead th {
    background: #cfcfb3;
    text-align: center;
    font-weight: 700;
    color: #111111;
}

.compare-table thead th:first-child {
    width: 130px;
}

.compare-table tbody th {
    background: #cfcfb3;
    text-align: center;
    font-weight: 700;
    color: #111111;
    vertical-align: middle;
}

/* 箇条書き */
.compare-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.compare-list li {
    position: relative;
    padding-left: 1.5em;
    margin: 0;
}

.compare-list li + li {
    margin-top: 8px;
}

.compare-list-merit li::before {
    content: "◉";
    position: absolute;
    left: 0;
    top: 0;
    color: #14a44d;
    font-size: 14px;
    line-height: 1.8;
}

.compare-list-demerit li::before {
    content: "✕";
    position: absolute;
    left: 0;
    top: 0;
    color: #e74c3c;
    font-size: 14px;
    line-height: 1.8;
}

/* CTA */
.compare-cta-wrap {
    margin-top: 30px;
    text-align: center;
}

.compare-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 420px;
    min-height: 48px;
    padding: 12px 28px;
    background: #1f2f46;
    border: 1px solid #1f2f46;
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 700;
}

/* スマホ */
@media (max-width: 767px) {
    .compare-section {
        padding: 72px 0;
    }

    .compare-section .section-title {
        font-size: 24px;
    }

    .compare-lead p {
        font-size: 15px;
        line-height: 1.9;
    }

    .compare-table-wrap {
        overflow-x: auto;
    }

    .compare-table {
        min-width: 920px;
    }

    .compare-cta {
        min-width: 100%;
    }
}

/* =========================================
   FV - Figma寄せ
========================================= */

.hero-section {
    position: relative;
    background: #ffffff;
    padding-bottom: 76px;
}

.hero-visual {
    position: relative;
    width: 100%;
    height: 560px;
    overflow: hidden;
}

.hero-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
}

.hero-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 文字を画像に重ねる */
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.hero-content {
    width: min(1088px, calc(100% - 48px));
    margin: 0 auto;
    padding-top: 92px;
    color: #ffffff;
    pointer-events: auto;
}

.hero-site-label {
    margin: 0 0 16px;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 500;
    color: #ffffff;
}

.hero-title {
    margin: 0 0 18px;
    max-width: 860px;
    font-size: 34px;
    line-height: 1.55;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.hero-text {
    margin: 0 0 34px;
    max-width: 760px;
    font-size: 15px;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.95);
}

.hero-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 340px;
    min-height: 76px;
    padding: 16px 32px;
    background: #d66a00;
    color: #ffffff;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
}

.hero-main-btn::after {
    content: " >";
    font-size: 34px;
    line-height: 1;
    margin-left: 14px;
    font-weight: 700;
}

/* 下の小ラベル */
.hero-bottom-label-wrap {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 3;
}

.hero-bottom-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    min-height: 42px;
    padding: 10px 18px;
    background: #1f2f46;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
}

/* スマホ */
@media (max-width: 767px) {
    .hero-section {
        padding-bottom: 64px;
    }

    .hero-visual {
        height: 460px;
    }

    .hero-content {
        width: calc(100% - 32px);
        padding-top: 72px;
    }

    .hero-site-label {
        font-size: 12px;
        margin-bottom: 12px;
    }

    .hero-title {
        font-size: 26px;
        line-height: 1.5;
        margin-bottom: 14px;
    }

    .hero-text {
        font-size: 14px;
        line-height: 1.8;
        margin-bottom: 26px;
    }

    .hero-main-btn {
        min-width: 100%;
        min-height: 62px;
        font-size: 20px;
        padding: 14px 18px;
    }

    .hero-main-btn::after {
        font-size: 28px;
        margin-left: 10px;
    }

    .hero-bottom-label {
        min-width: 150px;
        min-height: 40px;
        font-size: 12px;
    }
}

/* =========================================
   FV 配置最終調整
========================================= */

.hero-section {
    position: relative;
    background: #ffffff;
    padding-bottom: 76px;
}

.hero-visual {
    position: relative;
    width: 100%;
    height: 470px;
    overflow: hidden;
}

.hero-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.16);
}

.hero-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.hero-content {
    position: relative;
    width: min(1088px, calc(100% - 48px));
    height: 100%;
    margin: 0 auto;
    pointer-events: auto;
}

/* Figma寄せ位置 */
.hero-site-label {
    position: absolute;
    top: 84px;
    left: 245px;
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 500;
    color: #ffffff;
}

.hero-title {
    position: absolute;
    top: 118px;
    left: 245px;
    margin: 0;
    max-width: 760px;
    font-size: 28px;
    line-height: 1.55;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}

.hero-title span {
    color: #ffffff;
}

.hero-text {
    position: absolute;
    top: 236px;
    left: 245px;
    margin: 0;
    max-width: 620px;
    font-size: 13px;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.95);
}

.hero-main-btn-wrap {
    position: absolute;
    top: 286px;
    left: 245px;
}

.hero-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 340px;
    min-height: 76px;
    padding: 16px 28px;
    background: #d66a00;
    color: #ffffff;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
}

.hero-main-btn::after {
    content: " >";
    font-size: 34px;
    line-height: 1;
    margin-left: 14px;
    font-weight: 700;
}

.hero-bottom-label-wrap {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 3;
}

.hero-bottom-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    min-height: 42px;
    padding: 10px 18px;
    background: #1f2f46;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
}

/* 重複ボタン防止 */
.hero-section .hero-bottom-label-wrap + .hero-bottom-label-wrap {
    display: none;
}

/* スマホ */
@media (max-width: 767px) {
    .hero-section {
        padding-bottom: 64px;
    }

    .hero-visual {
        height: 460px;
    }

    .hero-content {
        width: calc(100% - 32px);
    }

    .hero-site-label {
        top: 56px;
        left: 16px;
        font-size: 12px;
    }

    .hero-title {
        top: 88px;
        left: 16px;
        right: 16px;
        max-width: none;
        font-size: 24px;
        line-height: 1.5;
    }

    .hero-text {
        top: 200px;
        left: 16px;
        right: 16px;
        max-width: none;
        font-size: 13px;
        line-height: 1.8;
    }

    .hero-main-btn-wrap {
        top: 274px;
        left: 16px;
        right: 16px;
    }

    .hero-main-btn {
        width: 100%;
        min-height: 62px;
        font-size: 20px;
        padding: 14px 18px;
    }

    .hero-main-btn::after {
        font-size: 28px;
        margin-left: 10px;
    }

    .hero-bottom-label {
        min-width: 150px;
        min-height: 40px;
        font-size: 12px;
    }
}

/* =========================================
   FV 最終版 - Figma寄せ
========================================= */

.hero-section {
    position: relative;
    background: #ffffff;
    padding-bottom: 76px;
}

.hero-visual {
    position: relative;
    width: 100%;
    height: 470px;
    overflow: hidden;
}

.hero-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
}

.hero-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.hero-content {
    position: relative;
    width: min(1088px, calc(100% - 48px));
    height: 100%;
    margin: 0 auto;
    pointer-events: auto;
}

/* 文字は中央寄せのブロック */
.hero-site-label {
    position: absolute;
    top: 96px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 500;
    color: #ffffff;
    text-align: center;
    white-space: nowrap;
}

.hero-title {
    position: absolute;
    top: 132px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 100%;
    max-width: 980px;
    font-size: 34px;
    line-height: 1.45;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}

.hero-subtitle {
    position: absolute;
    top: 188px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 100%;
    max-width: 980px;
    font-size: 19px;
    line-height: 1.6;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.hero-text {
    position: absolute;
    top: 246px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 100%;
    max-width: 760px;
    font-size: 13px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.95);
    text-align: center;
}

.hero-main-btn-wrap {
    position: absolute;
    top: 304px;
    left: 50%;
    transform: translateX(-50%);
}

.hero-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 380px;
    min-height: 78px;
    padding: 16px 34px;
    background: #d66a00;
    color: #ffffff;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
}

.hero-main-btn::after {
    content: " >";
    font-size: 34px;
    line-height: 1;
    margin-left: 14px;
    font-weight: 700;
}

.hero-bottom-label-wrap {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 3;
}

.hero-bottom-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    min-height: 42px;
    padding: 10px 18px;
    background: #1f2f46;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
}

/* スマホ */
@media (max-width: 767px) {
    .hero-section {
        padding-bottom: 64px;
    }

    .hero-visual {
        height: 500px;
    }

    .hero-content {
        width: calc(100% - 32px);
    }

    .hero-site-label {
        top: 56px;
        width: calc(100% - 32px);
        font-size: 12px;
        white-space: normal;
    }

    .hero-title {
        top: 92px;
        max-width: none;
        width: calc(100% - 32px);
        font-size: 26px;
        line-height: 1.45;
    }

    .hero-subtitle {
        top: 150px;
        max-width: none;
        width: calc(100% - 32px);
        font-size: 17px;
        line-height: 1.55;
    }

    .hero-text {
        top: 220px;
        max-width: none;
        width: calc(100% - 32px);
        font-size: 13px;
        line-height: 1.8;
    }

    .hero-main-btn-wrap {
        top: 296px;
        width: calc(100% - 32px);
    }

    .hero-main-btn {
        width: 100%;
        min-width: 0;
        min-height: 64px;
        font-size: 20px;
        padding: 14px 18px;
    }

    .hero-main-btn::after {
        font-size: 28px;
        margin-left: 10px;
    }

    .hero-bottom-label {
        min-width: 150px;
        min-height: 40px;
        font-size: 12px;
    }
}

/* =========================================
   FV 最終上書き
========================================= */

/* ヘッダー直下の余白を消す */
.hero-section {
    position: relative;
    background: #ffffff;
    padding-top: 0 !important;
    margin-top: 0 !important;
    padding-bottom: 76px;
}

.hero-section + * {
    margin-top: 0 !important;
}

/* FV画像 */
.hero-visual {
    position: relative;
    width: 100%;
    height: 470px;
    margin-top: 0 !important;
    overflow: hidden;
}

.hero-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
}

.hero-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 文字載せ */
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.hero-content {
    position: relative;
    width: min(1088px, calc(100% - 48px));
    height: 100%;
    margin: 0 auto;
    pointer-events: auto;
}

/* 中央寄せ */
.hero-site-label {
    position: absolute;
    top: 92px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 500;
    color: #ffffff;
    text-align: center;
    white-space: nowrap;
}

.hero-title {
    position: absolute;
    top: 130px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 100%;
    max-width: 980px;
    font-size: 32px;
    line-height: 1.4;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}

.hero-subtitle {
    position: absolute;
    top: 186px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 100%;
    max-width: 980px;
    font-size: 18px;
    line-height: 1.55;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.hero-text {
    position: absolute;
    top: 238px;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    width: 100%;
    max-width: 760px;
    font-size: 13px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.95);
    text-align: center;
}

/* ボタンはもっと下 */
.hero-main-btn-wrap {
    position: absolute;
    left: 50%;
    bottom: 56px;
    transform: translateX(-50%);
}

.hero-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 380px;
    min-height: 76px;
    padding: 16px 34px;
    background: #d66a00;
    color: #ffffff;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
}

.hero-main-btn::after {
    content: " >";
    font-size: 34px;
    line-height: 1;
    margin-left: 14px;
    font-weight: 700;
}

/* 比較して理解する は1つだけ */
.hero-bottom-label-wrap {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 3;
}

.hero-bottom-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    min-height: 42px;
    padding: 10px 18px;
    background: #1f2f46;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
}

/* もし重複があっても2個目以降を消す */
.hero-section .hero-bottom-label-wrap ~ .hero-bottom-label-wrap {
    display: none !important;
}

/* 旧FVカードを無効化 */
.hero-card,
.hero-box,
.hero-inner-card,
.hero-copy-box {
    display: none !important;
}

/* スマホ */
@media (max-width: 767px) {
    .hero-section {
        padding-bottom: 64px;
    }

    .hero-visual {
        height: 500px;
    }

    .hero-content {
        width: calc(100% - 32px);
    }

    .hero-site-label {
        top: 54px;
        width: calc(100% - 32px);
        font-size: 12px;
        white-space: normal;
    }

    .hero-title {
        top: 92px;
        max-width: none;
        width: calc(100% - 32px);
        font-size: 26px;
        line-height: 1.45;
    }

    .hero-subtitle {
        top: 146px;
        max-width: none;
        width: calc(100% - 32px);
        font-size: 17px;
        line-height: 1.55;
    }

    .hero-text {
        top: 214px;
        max-width: none;
        width: calc(100% - 32px);
        font-size: 13px;
        line-height: 1.8;
    }

    .hero-main-btn-wrap {
        left: 50%;
        right: auto;
        bottom: 58px;
        width: calc(100% - 32px);
        transform: translateX(-50%);
    }

    .hero-main-btn {
        width: 100%;
        min-width: 0;
        min-height: 64px;
        font-size: 20px;
        padding: 14px 18px;
    }

    .hero-main-btn::after {
        font-size: 28px;
        margin-left: 10px;
    }

    .hero-bottom-label {
        min-width: 150px;
        min-height: 40px;
        font-size: 12px;
    }
}

/* FV 文言をFigma合わせ */
.hero-title {
    top: 138px;
    font-size: 24px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0;
    max-width: 980px;
    text-align: center;
}

.hero-subtitle {
    top: 182px;
    font-size: 15px;
    line-height: 1.7;
    font-weight: 700;
    max-width: 980px;
    text-align: center;
}

.hero-text {
    top: 222px;
    font-size: 12px;
    line-height: 1.8;
    max-width: 720px;
    text-align: center;
}

.hero-main-btn-wrap {
    bottom: 42px;
}

@media (max-width: 767px) {
    .hero-title {
        top: 92px;
        font-size: 22px;
        line-height: 1.5;
    }

    .hero-subtitle {
        top: 142px;
        font-size: 15px;
        line-height: 1.65;
    }

    .hero-text {
        top: 198px;
        font-size: 12px;
        line-height: 1.8;
    }

    .hero-main-btn-wrap {
        bottom: 44px;
    }
}

/* おすすめ3社以降の主要セクションを白背景に */
.points-section,
.company-detail-section,
.column-section,
.compare-section {
    background: #ffffff !important;
}

/* =========================================
   FV さらに大きく調整
========================================= */

.hero-visual {
    height: 620px !important;
}

.hero-site-label {
    top: 110px !important;
    font-size: 14px !important;
}

.hero-title {
    top: 156px !important;
    font-size: 34px !important;
    line-height: 1.45 !important;
}

.hero-subtitle {
    top: 222px !important;
    font-size: 20px !important;
    line-height: 1.6 !important;
}

.hero-text {
    top: 294px !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
}

.hero-main-btn-wrap {
    bottom: 42px !important;
}

@media (max-width: 767px) {
    .hero-visual {
        height: 560px !important;
    }

    .hero-site-label {
        top: 60px !important;
        font-size: 13px !important;
    }

    .hero-title {
        top: 102px !important;
        font-size: 28px !important;
        line-height: 1.45 !important;
    }

    .hero-subtitle {
        top: 170px !important;
        font-size: 18px !important;
        line-height: 1.6 !important;
    }

    .hero-text {
        top: 244px !important;
        font-size: 13px !important;
        line-height: 1.85 !important;
    }

    .hero-main-btn-wrap {
        bottom: 44px !important;
    }
}

/* =========================================
   FV ボタン位置と下余白の微調整
========================================= */

/* オレンジボタンをもう少し下へ */
.hero-main-btn-wrap {
    bottom: 4px !important;
}

/* FV画像の下余白を狭く */
.hero-section {
    padding-bottom: 42px !important;
}

/* 下の比較して理解するボタン位置も少し上へ */
.hero-bottom-label-wrap {
    bottom: -6px !important;
}

/* =========================================
   FVボタンを確実に下へ移動
========================================= */

.hero-content {
    position: relative !important;
    height: 100% !important;
}

.hero-main-btn-wrap {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    bottom: 33px !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
}

.hero-main-btn {
    min-width: 320px !important;
    min-height: 74px !important;
}

.hero-section {
    padding-bottom: 34px !important;
}

.hero-bottom-label-wrap {
    bottom: -2px !important;
}

.hero-section + section {
    margin-top: 0 !important;
    padding-top: 32px !important;
}

.case-slider {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.case-main {
    flex: 1;
}

.case-main-image {
    display: block;
    width: 100%;
    height: auto;
}

.case-thumbs {
    width: 160px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.case-thumb-image {
    display: block;
    width: 100%;
    height: auto;
    cursor: pointer;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.case-thumb-image.is-active {
    border-color: #d66a00;
}

.case-slider {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.case-slider.is-reverse {
    flex-direction: row-reverse;
}

.case-main {
    flex: 1;
}

.case-main-image {
    display: block;
    width: 100%;
    height: auto;
}

.case-thumbs {
    width: 160px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.case-thumb-image {
    display: block;
    width: 100%;
    height: auto;
    cursor: pointer;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.case-thumb-image.is-active {
    border-color: #d66a00;
}

/* =========================================
   事例スライダー 左右固定版
========================================= */

.case-slider {
    display: grid !important;
    grid-template-columns: 1fr 160px !important;
    gap: 16px !important;
    align-items: start !important;
}

.case-slider .case-main {
    grid-column: 1 !important;
}

.case-slider .case-thumbs {
    grid-column: 2 !important;
    width: 160px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

/* 逆並び */
.case-slider.is-reverse {
    grid-template-columns: 160px 1fr !important;
}

.case-slider.is-reverse .case-thumbs {
    grid-column: 1 !important;
}

.case-slider.is-reverse .case-main {
    grid-column: 2 !important;
}

/* 画像 */
.case-main-image {
    display: block;
    width: 100%;
    height: auto;
}

.case-thumb-image {
    display: block;
    width: 100%;
    height: auto;
    cursor: pointer;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.case-thumb-image.is-active {
    border-color: #d66a00;
}

/* =========================================
   事例スライダー 左右固定 最終版
========================================= */

.case-slider {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 140px !important;
    gap: 16px !important;
    align-items: start !important;
}

.case-slider .case-main {
    grid-column: 1 !important;
    min-width: 0 !important;
}

.case-slider .case-thumbs {
    grid-column: 2 !important;
    width: 140px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-self: start !important;
}

/* 偶数番目は左右反転 */
.case-slider.is-reverse {
    grid-template-columns: 140px minmax(0, 1fr) !important;
}

.case-slider.is-reverse .case-thumbs {
    grid-column: 1 !important;
}

.case-slider.is-reverse .case-main {
    grid-column: 2 !important;
}

/* 画像 */
.case-main-image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

.case-thumb-image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    cursor: pointer;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.case-thumb-image.is-active {
    border-color: #d66a00;
}

/* スマホでは縦並び */
@media (max-width: 767px) {
    .case-slider,
    .case-slider.is-reverse {
        grid-template-columns: 1fr !important;
    }

    .case-slider .case-main,
    .case-slider .case-thumbs,
    .case-slider.is-reverse .case-main,
    .case-slider.is-reverse .case-thumbs {
        grid-column: auto !important;
    }

    .case-slider .case-thumbs {
        width: 100% !important;
        flex-direction: row !important;
    }

    .case-thumb-image {
        width: calc(33.333% - 8px) !important;
    }
}

/* 事例スライダー 左右の上端をきっちり揃える */
.case-block {
    margin-bottom: 40px;
}

.case-block-title {
    margin: 0 0 16px !important;
}

.case-slider {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 140px !important;
    gap: 16px !important;
    align-items: start !important;
}

.case-slider .case-main {
    grid-column: 1 !important;
    align-self: start !important;
}

.case-slider .case-thumbs {
    grid-column: 2 !important;
    width: 140px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-self: start !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.case-slider.is-reverse {
    grid-template-columns: 140px minmax(0, 1fr) !important;
}

.case-slider.is-reverse .case-thumbs {
    grid-column: 1 !important;
    align-self: start !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.case-slider.is-reverse .case-main {
    grid-column: 2 !important;
    align-self: start !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.case-main-image,
.case-thumb-image {
    display: block !important;
}

.case-main-image {
    width: 100% !important;
    height: auto !important;
}

.case-thumb-image {
    width: 100% !important;
    height: auto !important;
    border: 2px solid transparent;
    box-sizing: border-box;
    cursor: pointer;
}

.case-thumb-image.is-active {
    border-color: #d66a00;
}

/* =========================================
   事例スライダー 完全上書き
========================================= */

.company-card-section .case-block {
    margin-top: 32px;
}

.company-card-section .case-block-title {
    margin: 0 0 16px !important;
    font-size: 24px;
    line-height: 1.5;
    color: #1e2939;
}

.company-card-section .case-slider {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 140px !important;
    gap: 12px !important;
    align-items: start !important;
}

.company-card-section .case-slider .case-main {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    align-self: start !important;
    margin: 0 !important;
}

.company-card-section .case-slider .case-thumbs {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 140px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-self: start !important;
    margin: 0 !important;
    padding: 0 !important;
}

.company-card-section .case-slider.is-reverse {
    grid-template-columns: 140px minmax(0, 1fr) !important;
}

.company-card-section .case-slider.is-reverse .case-thumbs {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 140px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: start !important;
}

.company-card-section .case-slider.is-reverse .case-main {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: start !important;
}

/* 画像枠 */
.company-card-section .case-main {
    border: 1px solid #d1d5dc;
    background: #f9fafb;
    overflow: hidden;
}

.company-card-section .case-main-image {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 832 / 554;
    object-fit: cover;
}

.company-card-section .case-thumb-image,
.company-card-section .case-thumbs img,
.company-card-section .case-thumb img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 174 / 116;
    object-fit: cover;
    cursor: pointer;
    border: 2px solid transparent;
    box-sizing: border-box;
    background: #f9fafb;
}

.company-card-section .case-thumb-image.is-active,
.company-card-section .case-thumbs img.is-active,
.company-card-section .case-thumb.is-active {
    border-color: #cf4b00 !important;
}

/* スマホ */
@media (max-width: 767px) {
    .company-card-section .case-slider,
    .company-card-section .case-slider.is-reverse {
        grid-template-columns: 1fr !important;
    }

    .company-card-section .case-slider .case-main,
    .company-card-section .case-slider .case-thumbs,
    .company-card-section .case-slider.is-reverse .case-main,
    .company-card-section .case-slider.is-reverse .case-thumbs {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
    }

    .company-card-section .case-slider .case-thumbs {
        flex-direction: row !important;
        gap: 8px !important;
    }

    .company-card-section .case-thumb-image,
    .company-card-section .case-thumbs img,
    .company-card-section .case-thumb img {
        width: calc(33.333% - 6px) !important;
    }
}

.floating-banner {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 9999;
    width: min(420px, calc(100% - 24px));
}

.floating-banner-link {
    display: block;
}

.floating-banner-link img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.floating-banner-close {
    position: absolute;
    top: -10px;
    right: -10px;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 999px;
    background: #1f2f46;
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    line-height: 1;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

@media (max-width: 767px) {
    .floating-banner {
        right: 12px;
        left: 12px;
        bottom: 12px;
        width: auto;
    }

    .floating-banner-close {
        top: -8px;
        right: -4px;
    }
}

/* =========================================
   失敗しない3つのポイント
========================================= */

.points-section {
    background: #ffffff;
    padding: 96px 0;
}

.point-card {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 20px;
    align-items: start;
    background: #e7e4da;
    padding: 24px 28px;
    margin-top: 24px;
}

.point-card-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    background: #223555;
    color: #ffffff;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
}

.point-card-content h3 {
    margin: 0 0 12px;
    font-size: 24px;
    line-height: 1.5;
    font-weight: 700;
    color: #1e2939;
}

.point-card-content p {
    margin: 0;
    font-size: 14px;
    line-height: 2;
    color: #333333;
}

@media (max-width: 767px) {
    .points-section {
        padding: 64px 0;
    }

    .point-card {
        grid-template-columns: 56px 1fr;
        gap: 16px;
        padding: 18px 16px;
        margin-top: 16px;
    }

    .point-card-number {
        min-height: 56px;
        font-size: 11px;
    }

    .point-card-content h3 {
        font-size: 18px;
        margin-bottom: 10px;
    }

    .point-card-content p {
        font-size: 13px;
        line-height: 1.9;
    }
}


/* =========================================
   会社詳細 見出しデザイン修正
========================================= */

/* 会社詳細ブロック内の見出し帯 */
.company-detail-section .company-card-section .company-sub-title {
    position: relative !important;
    display: block !important;
    margin: 0 0 24px !important;
    padding: 16px 20px 16px 22px !important;
    background: #f3f0e6 !important;
    color: #111827 !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
    border: none !important;
}

/* 左のオレンジ線 */
.company-detail-section .company-card-section .company-sub-title::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    width: 3px !important;
    height: 28px !important;
    background: #d86f1f !important;
    transform: translateY(-50%) !important;
}

/* 事例タイトルは白背景のまま */
.company-detail-section .case-block-title {
    margin: 0 0 16px !important;
    padding: 0 !important;
    background: transparent !important;
    color: #1e2939 !important;
    font-size: 24px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
}

/* 特徴と強みのリストは白背景のまま */
.company-detail-section .company-feature-list-detail {
    background: #ffffff !important;
}

/* =========================================
   会社概要テーブル Figma寄せ
========================================= */

.company-summary-section {
    margin-top: 40px;
}

.company-summary-heading {
    margin-bottom: 18px;
}

.company-summary-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 22px;
    line-height: 1.5;
    font-weight: 700;
    color: #1e2939;
}

.company-summary-title::before {
    content: "▣";
    font-size: 16px;
    color: #1e2939;
}

.company-summary-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 24px;
    align-items: start;
}

.company-info-table-detail {
    border-top: 1px solid #5c5c5c;
    border-left: 1px solid #5c5c5c;
}

.company-info-table-detail .company-info-row {
    display: grid;
    grid-template-columns: 128px 1fr;
}

.company-info-table-detail .company-info-label,
.company-info-table-detail .company-info-value {
    min-height: 46px;
    padding: 12px 16px;
    border-right: 1px solid #5c5c5c;
    border-bottom: 1px solid #5c5c5c;
    box-sizing: border-box;
    display: flex;
    align-items: center;
}

.company-info-table-detail .company-info-label {
    gap: 8px;
    background: #e7e4d8;
    color: #111827;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 700;
}

.company-info-table-detail .company-info-value {
    background: #ffffff;
    color: #111827;
    font-size: 14px;
    line-height: 1.7;
    font-weight: 400;
    word-break: break-word;
}

.company-info-table-detail .company-info-value a {
    color: #415e9b;
    text-decoration: underline;
}

.company-info-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    font-size: 13px;
    line-height: 1;
    color: #4b5563;
    flex-shrink: 0;
}

.company-map-wrap iframe {
    display: block;
    width: 100%;
    height: 230px;
    border: 1px solid #d0d5dd;
}

@media (max-width: 767px) {
    .company-summary-body {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .company-info-table-detail .company-info-row {
        grid-template-columns: 108px 1fr;
    }

    .company-info-table-detail .company-info-label,
    .company-info-table-detail .company-info-value {
        min-height: 44px;
        padding: 10px 12px;
        font-size: 13px;
    }
}
<div class="company-info-table company-info-table-detail">
    <?php if ($company_brand_name) : ?>
        <div class="company-info-row">
            <div class="company-info-label">
                <span class="company-info-icon">🏠</span>
                <span>屋号</span>
            </div>
            <div class="company-info-value"><?php echo esc_html($company_brand_name); ?></div>
        </div>
    <?php endif; ?>

    <?php if ($company_name) : ?>
        <div class="company-info-row">
            <div class="company-info-label">
                <span class="company-info-icon">🏢</span>
                <span>会社名</span>
            </div>
            <div class="company-info-value"><?php echo esc_html($company_name); ?></div>
        </div>
    <?php endif; ?>

    <?php if ($company_address) : ?>
        <div class="company-info-row">
            <div class="company-info-label">
                <span class="company-info-icon">📍</span>
                <span>住所</span>
            </div>
            <div class="company-info-value"><?php echo esc_html($company_address); ?></div>
        </div>
    <?php endif; ?>

    <?php if ($company_phone) : ?>
        <div class="company-info-row">
            <div class="company-info-label">
                <span class="company-info-icon">📞</span>
                <span>電話番号</span>
            </div>
            <div class="company-info-value"><?php echo esc_html($company_phone); ?></div>
        </div>
    <?php endif; ?>

    <?php if ($company_official_url) : ?>
        <div class="company-info-row">
            <div class="company-info-label">
                <span class="company-info-icon">↗</span>
                <span>公式サイトURL</span>
            </div>
            <div class="company-info-value">
                <a href="<?php echo esc_url($company_official_url); ?>" target="_blank" rel="noopener noreferrer">
                    <?php echo esc_html($company_official_url); ?>
                </a>
            </div>
        </div>
    <?php endif; ?>
</div>

/* 会社概要テーブル 最終上書き */
.company-detail-section .company-info-table.company-info-table-detail {
    width: 100% !important;
    border-top: 1px solid #6b6b6b !important;
    border-left: 1px solid #6b6b6b !important;
    background: #ffffff !important;
}

.company-detail-section .company-info-table.company-info-table-detail .company-info-row {
    display: grid !important;
    grid-template-columns: 128px 1fr !important;
    margin: 0 !important;
}

.company-detail-section .company-info-table.company-info-table-detail .company-info-label,
.company-detail-section .company-info-table.company-info-table-detail .company-info-value {
    min-height: 46px !important;
    padding: 12px 16px !important;
    border-right: 1px solid #6b6b6b !important;
    border-bottom: 1px solid #6b6b6b !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
}

.company-detail-section .company-info-table.company-info-table-detail .company-info-label {
    background: #e8e5d9 !important;
    color: #111827 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
    gap: 8px !important;
}

.company-detail-section .company-info-table.company-info-table-detail .company-info-value {
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    font-weight: 400 !important;
    word-break: break-word !important;
}

.company-detail-section .company-info-table.company-info-table-detail .company-info-value a {
    color: #536f9f !important;
    text-decoration: underline !important;
}

.company-detail-section .company-info-icon {
    width: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    font-size: 14px !important;
    line-height: 1 !important;
}