﻿/* Large income property + hotel-ryokan + CTA consistency (from partial pack 20260630) */
/* Cross-page readability and CTA consistency fixes */
.ninbai-page .fadeInUp {
    opacity: 1 !important;
    transform: none !important;
}

.ninbai-simulator .ninbai-sim_head,
.ninbai-simulator .ninbai-sim_head h2,
.ninbai-simulator .ninbai-sim_head p,
.ninbai-simulator .ninbai-section_label,
.ninbai-negotiation .ninbai-negotiation_head,
.ninbai-negotiation .ninbai-negotiation_head h2,
.ninbai-negotiation .ninbai-negotiation_head p,
.ninbai-documents .ninbai-documents_text,
.ninbai-documents .ninbai-documents_text h2,
.ninbai-documents .ninbai-documents_text p,
.ninbai-story,
.ninbai-story h2,
.ninbai-story p {
    color: #fff !important;
}

.ninbai-simulator .ninbai-section_label,
.ninbai-negotiation .ninbai-section_label,
.ninbai-documents .ninbai-section_label,
.ninbai-story .ninbai-section_label {
    color: var(--jr-light-gold) !important;
}

.ninbai-hub_detail {
    color: #fff !important;
    background: linear-gradient(135deg, #0b1f3a 0%, #173b66 58%, #102d52 100%) !important;
    border: 1px solid rgba(226, 196, 125, 0.52);
    border-left: 5px solid var(--jr-gold);
}

.ninbai-hub_detail span {
    color: var(--jr-light-gold) !important;
}

.ninbai-hub_detail strong {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
}

.ninbai-hub_detail em {
    color: rgba(255, 255, 255, 0.86) !important;
}

.ninbai-hub_block:not(.is-dark) {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), #fffaf2);
}

.ninbai-hub_block.is-dark .ninbai-hub_grid article {
    background: rgba(255, 255, 255, 0.96);
}

.ninbai-hub_block.is-dark .ninbai-hub_grid span,
.ninbai-hub_block.is-dark .ninbai-hub_grid p {
    color: var(--jr-deep) !important;
}

.ninbai-hub_related a {
    color: var(--jr-deep) !important;
    background: #fffaf2;
    border-color: rgba(200, 155, 75, 0.34);
}

.ninbai-hub_block.is-dark .ninbai-hub_related a {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(226, 196, 125, 0.34);
}

.ninbai-hub_actions a:nth-child(3),
.ninbai-hub_actions a[href*="page.line.me"],
.ninbai-btn_line,
.ninbai-fixed_line {
    color: #fff !important;
    background: linear-gradient(180deg, #31d66b 0%, #16a34a 100%) !important;
    border-color: rgba(226, 196, 125, 0.48) !important;
}

.ninbai-hub_actions a:nth-child(1) {
    color: #fff !important;
    background: linear-gradient(180deg, #173b66, #0b1f3a);
    border-color: rgba(226, 196, 125, 0.38);
}

.ninbai-hub_actions a:nth-child(2) {
    color: #0b1f3a !important;
    background: linear-gradient(180deg, #f3d98f, #c89b4b 58%, #a8792f);
    border-color: rgba(255, 240, 190, 0.8);
}

.ninbai-card_list li,
.ninbai-risk_list li,
.ninbai-sim_result_box,
.ninbai-negotiation_card,
.ninbai-documents_box,
.ninbai-support_list li {
    color: var(--jr-ink) !important;
    background: linear-gradient(180deg, #fff, #fffaf2) !important;
}

.ninbai-card_list li > span,
.ninbai-risk_list li > span,
.ninbai-card_list h3,
.ninbai-risk_list h3,
.ninbai-sim_result_box h4,
.ninbai-negotiation_card h3,
.ninbai-documents_box h3,
.ninbai-support_list h3 {
    color: var(--jr-deep) !important;
}

.ninbai-card_list p,
.ninbai-risk_list p,
.ninbai-sim_result_box li,
.ninbai-sim_result_box p,
.ninbai-negotiation_card li,
.ninbai-documents_box li,
.ninbai-support_list p {
    color: #263142 !important;
}

.ninbai-sim_result,
.ninbai-sim_result_head h3,
.ninbai-sim_result_head p:not(.en),
.ninbai-sim_meter p,
.ninbai-sim_form,
.ninbai-sim_form label,
.ninbai-sim_label_line,
.ninbai-sim_consent,
.ninbai-sim_disclaimer {
    color: var(--jr-deep) !important;
}

.ninbai-sim_form input,
.ninbai-sim_form textarea {
    color: var(--jr-ink) !important;
    background: #f8fafc !important;
}

.ninbai-merits,
.ninbai-merits_copy,
.ninbai-merits_copy h2,
.ninbai-merits_copy p,
.ninbai-merits .ninbai-section_label {
    color: var(--jr-deep) !important;
}

.ninbai-merits .ninbai-section_label {
    color: var(--jr-antique) !important;
}

.ninbai-leaseback {
    color: #fff;
    background: linear-gradient(180deg, rgba(11, 31, 58, 0.96), rgba(16, 45, 82, 0.94));
    border: 1px solid rgba(226, 196, 125, 0.42);
}

.ninbai-leaseback h3,
.ninbai-leaseback p {
    color: #fff !important;
}

.ninbai-leaseback .ninbai-mini_note {
    color: rgba(255, 255, 255, 0.78) !important;
}

/* Hero copy and guide heading fit */
.ninbai-hero_title {
    max-width: 840px;
    font-size: clamp(4.25rem, 3.35vw, 4.65rem) !important;
    line-height: 1.22 !important;
    letter-spacing: 0.01em !important;
}

.ninbai-hero_title span {
    display: block;
    white-space: nowrap;
}

.ninbai-hero_guides_head h2 {
    display: block !important;
    max-width: 430px;
    font-size: 2.95rem;
    line-height: 1.42;
    word-break: keep-all;
    overflow-wrap: normal;
}

.ninbai-hero_guides_head h2 span {
    display: block;
    white-space: nowrap;
}

@media all and (max-width: 896px) {
    .ninbai-hero_title {
        font-size: clamp(2.82rem, 8.2vw, 3.45rem) !important;
        line-height: 1.24 !important;
    }

    .ninbai-hero_title span {
        white-space: normal;
    }

    .ninbai-hero_guides_head h2 {
        max-width: none;
        font-size: 2.5rem;
    }

    .ninbai-hero_guides_head h2 span {
        white-space: normal;
    }
}

/* Light card readability inside dark sections */
.ninbai-one-window_points article,
.ninbai-story .ninbai-story_card {
    color: var(--jr-ink) !important;
    background: linear-gradient(180deg, #fff, #fffaf2) !important;
}

.ninbai-one-window_points article span,
.ninbai-one-window_points article h3,
.ninbai-story .ninbai-story_card h3 {
    color: var(--jr-deep) !important;
}

.ninbai-story .ninbai-story_card span {
    color: var(--jr-antique) !important;
}

.ninbai-one-window_points article p,
.ninbai-story .ninbai-story_card p {
    color: #263142 !important;
}

/* Saiken large income property / hotel ryokan additions */
.saiken-large-property {
    padding: 82px 0 88px;
    background: linear-gradient(180deg, #fffaf2 0%, #f7f2e8 100%);
    color: var(--jr-deep);
    position: relative;
    overflow: hidden;
}

.saiken-large-property::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(115deg, rgba(8, 31, 59, 0.05), rgba(200, 155, 75, 0.08)),
        radial-gradient(circle at 82% 18%, rgba(200, 155, 75, 0.12), transparent 34%);
    pointer-events: none;
}

.saiken-large-property .content {
    position: relative;
    z-index: 1;
}

.saiken-large-property_head {
    max-width: 930px;
    margin: 0 auto 32px;
    text-align: center;
}

.saiken-large-property_head .ninbai-section_label,
.saiken-hotel .ninbai-section_label {
    color: var(--jr-antique) !important;
}

.saiken-large-property_head h2,
.saiken-hotel h1,
.saiken-hotel h2 {
    color: var(--jr-deep);
    line-height: 1.45;
}

.saiken-large-property_head h2 {
    font-size: clamp(3.2rem, 3vw, 4.6rem);
    margin-bottom: 18px;
}

.saiken-large-property_head p {
    color: #253246;
    font-size: 1.62rem;
    line-height: 2;
}

.saiken-large-property_grid,
.saiken-hotel_cards,
.saiken-hotel_terms_grid,
.saiken-hotel_steps,
.saiken-hotel_support_grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.saiken-large-property_grid article,
.saiken-hotel_cards article,
.saiken-hotel_terms_grid article,
.saiken-hotel_steps article,
.saiken-hotel_support_grid article {
    background: linear-gradient(180deg, #fff, #fffaf2);
    border: 1px solid rgba(200, 155, 75, 0.34);
    border-top: 4px solid var(--jr-gold);
    padding: 26px;
    box-shadow: 0 16px 38px rgba(8, 31, 59, 0.08);
}

.saiken-large-property_grid span,
.saiken-hotel_steps span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 14px;
    border: 1px solid rgba(200, 155, 75, 0.55);
    border-radius: 50%;
    color: var(--jr-antique);
    font-family: var(--jr-serif);
    font-size: 1.45rem;
}

.saiken-large-property_grid h3,
.saiken-hotel_cards span,
.saiken-hotel_terms_grid h3,
.saiken-hotel_steps h3,
.saiken-hotel_support_grid h3 {
    display: block;
    color: var(--jr-deep);
    font-size: 2rem;
    line-height: 1.5;
    margin-bottom: 10px;
    font-weight: 700;
}

.saiken-large-property_grid p,
.saiken-hotel_cards p,
.saiken-hotel_terms_grid p,
.saiken-hotel_steps p,
.saiken-hotel_support_grid p {
    color: #263142;
    line-height: 1.9;
}

.saiken-hotel_case_notice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    max-width: 960px;
    margin: 28px auto 0;
    padding: 20px 24px;
    background: #fff;
    border: 1px solid rgba(200, 155, 75, 0.42);
    border-left: 5px solid var(--jr-gold);
    box-shadow: 0 18px 44px rgba(8, 31, 59, 0.08);
    text-align: left;
}

.saiken-hotel_case_notice > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    padding: 8px 12px;
    color: #fff;
    background: var(--jr-deep);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.saiken-hotel_case_notice h3 {
    margin: 0 0 6px;
    color: var(--jr-deep);
    font-size: 1.72rem;
    line-height: 1.6;
}

.saiken-hotel_case_notice p {
    margin: 0;
    color: #263142;
    line-height: 1.85;
}

.saiken-hotel_case_notice a {
    color: var(--jr-deep);
    border: 1px solid rgba(200, 155, 75, 0.72);
    padding: 10px 14px;
    font-weight: 700;
    white-space: nowrap;
}

.saiken-hotel_cases_lead {
    max-width: 850px;
    margin: -2px auto 28px;
    color: #263142;
    line-height: 2;
    text-align: center;
}

.saiken-large-property_routes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
}

.saiken-large-property_routes a {
    display: block;
    min-height: 130px;
    padding: 22px;
    color: #fff;
    background: linear-gradient(135deg, #0b1f3a 0%, #173b66 70%, #0d2c52 100%);
    border: 1px solid rgba(226, 196, 125, 0.52);
    border-left: 5px solid var(--jr-gold);
    box-shadow: 0 14px 30px rgba(8, 31, 59, 0.16);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.saiken-large-property_routes a:hover,
.saiken-large-property_routes a:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(8, 31, 59, 0.24);
}

.saiken-large-property_routes span {
    display: block;
    color: var(--jr-light-gold);
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 12px;
}

.saiken-large-property_routes strong {
    color: #fff;
    font-size: 1.66rem;
    line-height: 1.65;
}

.saiken-large-property_cta,
.saiken-hotel_hero_cta,
.saiken-hotel_final_actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 30px;
}

.saiken-hotel_hero_cta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 680px;
}

.saiken-hotel_hero_cta .ninbai-btn {
    width: 100%;
    min-width: 0;
    min-height: 66px;
    padding: 0 18px;
    line-height: 1.45;
    text-align: center;
    letter-spacing: 0.04em;
    white-space: normal;
}

.saiken-hotel_hero_cta .ninbai-btn:first-child {
    grid-column: 1 / -1;
}

.saiken-hotel_hero_cta .ninbai-btn:nth-child(2) {
    grid-column: 1 / -1;
}

.saiken-hotel_final_actions .ninbai-btn {
    min-width: 0;
    white-space: nowrap;
    letter-spacing: 0.04em;
}

.saiken-hotel {
    background: #fffaf2;
    color: var(--jr-deep);
}

.saiken-hotel_hero {
    position: relative;
    overflow: hidden;
    padding: 128px 0 92px;
    color: #fff;
    background: linear-gradient(110deg, rgba(8, 31, 59, 0.97) 0%, rgba(11, 48, 86, 0.9) 52%, rgba(8, 31, 59, 0.78) 100%);
}

.saiken-hotel_hero .saiken-hero_bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 42%;
    z-index: 0;
}

.saiken-hotel_hero_grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 780px);
    gap: 0;
    align-items: center;
}

.saiken-hotel_hero_text h1 {
    color: #fff;
    font-size: clamp(4.3rem, 5.1vw, 6.6rem);
    line-height: 1.22;
    margin: 0 0 22px;
}

.saiken-hotel_hero_text p {
    color: rgba(255, 255, 255, 0.92);
    line-height: 2;
    font-weight: 600;
}

.saiken-hotel_hero_text .saiken-hotel_hero_sub {
    color: #f0d79b;
    font-size: 1.82rem;
    line-height: 1.8;
}

.saiken-hotel_hero_image {
    border: 8px solid rgba(226, 196, 125, 0.35);
    box-shadow: 0 24px 54px rgba(0, 0, 0, 0.28);
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.1);
}

.saiken-hotel_hero_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.saiken-hotel_intro,
.saiken-hotel_support-system,
.saiken-hotel_creditors,
.saiken-hotel_dd,
.saiken-hotel_stops,
.saiken-hotel_terms,
.saiken-hotel_process,
.saiken-hotel_cases,
.saiken-hotel_related,
.saiken-hotel_final_cta {
    padding: 78px 0;
}

.saiken-hotel_reason,
.saiken-hotel_support,
.saiken-hotel_faq {
    padding: 78px 0;
    background: linear-gradient(180deg, #0b1f3a, #173b66);
    color: #fff;
}

.saiken-hotel_reason h2,
.saiken-hotel_support h2,
.saiken-hotel_faq h2 {
    color: #fff;
}

.saiken-hotel_lead {
    max-width: 950px;
    margin: 0 auto 34px;
    text-align: center;
}

.saiken-hotel_lead h2,
.saiken-hotel_support-system h2,
.saiken-hotel_creditors h2,
.saiken-hotel_dd h2,
.saiken-hotel_stops h2,
.saiken-hotel_terms h2,
.saiken-hotel_process h2,
.saiken-hotel_cases h2,
.saiken-hotel_related h2,
.saiken-hotel_final_cta h2,
.saiken-hotel_reason h2,
.saiken-hotel_support h2,
.saiken-hotel_faq h2 {
    font-size: clamp(3rem, 3.1vw, 4.8rem);
    margin-bottom: 20px;
}

.saiken-hotel_balanced-title span {
    display: block;
}

.saiken-hotel_lead p,
.saiken-hotel_section_lead,
.saiken-hotel_expert_note,
.saiken-hotel_split p,
.saiken-hotel_final_cta p {
    color: #263142;
    line-height: 2;
}

.saiken-hotel_support-system,
.saiken-hotel_dd {
    background: #fff;
}

.saiken-hotel_stops {
    background: linear-gradient(180deg, #fffaf2, #fff);
}

.saiken-hotel_reason p,
.saiken-hotel_support p,
.saiken-hotel_faq p {
    color: rgba(255, 255, 255, 0.9);
}

.saiken-hotel_support_grid article h3 {
    color: var(--jr-deep) !important;
}

.saiken-hotel_support_grid article p {
    color: #263142 !important;
}

.saiken-hotel_split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
    gap: 42px;
    align-items: start;
}

.saiken-hotel_checklist,
.saiken-hotel_list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.saiken-hotel_checklist li,
.saiken-hotel_list li {
    position: relative;
    padding: 16px 18px 16px 34px;
    border-bottom: 1px solid rgba(226, 196, 125, 0.22);
    line-height: 1.8;
}

.saiken-hotel_checklist li {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.saiken-hotel_list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
}

.saiken-hotel_list li {
    color: var(--jr-deep);
    background: #fff;
    border: 1px solid rgba(200, 155, 75, 0.28);
}

.saiken-hotel_checklist li::before,
.saiken-hotel_list li::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 26px;
    width: 6px;
    height: 6px;
    background: var(--jr-gold);
}

.saiken-hotel_terms_grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.saiken-hotel_steps {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.saiken-hotel_stat_grid,
.saiken-hotel_record_grid,
.saiken-hotel_dd_grid {
    display: grid;
    gap: 18px;
}

.saiken-hotel_stat_grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 26px 0;
}

.saiken-hotel_record_grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.saiken-hotel_dd_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.saiken-hotel_stat_grid article,
.saiken-hotel_record_grid article,
.saiken-hotel_dd_grid article {
    background: #fff;
    border: 1px solid rgba(200, 155, 75, 0.34);
    border-top: 4px solid var(--jr-gold);
    box-shadow: 0 16px 40px rgba(8, 31, 59, 0.08);
    padding: 24px;
}

.saiken-hotel_stat_grid span,
.saiken-hotel_record_label {
    display: block;
    color: var(--jr-antique);
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.6;
}

.saiken-hotel_stat_grid strong {
    display: block;
    margin: 6px 0 10px;
    color: var(--jr-deep);
    font-family: var(--jr-serif);
    font-size: 2.35rem;
    line-height: 1.35;
}

.saiken-hotel_record_grid h3,
.saiken-hotel_dd_grid h3 {
    color: var(--jr-deep);
    font-size: 2rem;
    line-height: 1.55;
    margin-bottom: 12px;
}

.saiken-hotel_record_grid dl {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px 12px;
    margin: 14px 0;
    padding: 14px;
    background: #f7f9fb;
}

.saiken-hotel_record_grid dt {
    color: var(--jr-antique);
    font-weight: 700;
}

.saiken-hotel_record_grid dd {
    color: #263142;
}

.saiken-hotel_record_grid ul {
    margin-top: 16px;
    padding: 0;
    list-style: none;
}

.saiken-hotel_record_grid li {
    position: relative;
    padding-left: 18px;
    color: #263142;
    line-height: 1.8;
}

.saiken-hotel_record_grid li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.85em;
    width: 6px;
    height: 6px;
    background: var(--jr-gold);
}

.saiken-hotel_track_note,
.saiken-hotel_expert_note {
    margin-top: 22px;
    padding: 18px 22px;
    color: #263142;
    background: #fffaf0;
    border: 1px solid rgba(200, 155, 75, 0.36);
    line-height: 1.9;
}

.saiken-hotel_faq_list {
    display: grid;
    gap: 12px;
}

.saiken-hotel_faq_list details {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(226, 196, 125, 0.32);
    color: var(--jr-deep);
}

.saiken-hotel_faq_list summary {
    cursor: pointer;
    padding: 20px 24px;
    color: var(--jr-deep);
    font-weight: 700;
    line-height: 1.6;
}

.saiken-hotel_faq_list details p {
    color: #263142;
    padding: 0 24px 22px;
    line-height: 1.9;
}

.saiken-hotel_final_cta {
    text-align: center;
    background: linear-gradient(180deg, #fffaf2, #fff);
}

.saiken-hotel_final_cta .content {
    max-width: 1080px;
}

.saiken-hotel_disclaimer {
    margin-top: 26px;
    padding: 18px 22px;
    color: #263142;
    background: #fff;
    border: 1px solid rgba(200, 155, 75, 0.28);
    text-align: left;
    font-size: 1.36rem;
    line-height: 1.9;
}

.saiken-article-panel {
    padding: 30px;
    background: linear-gradient(180deg, #fffaf2, #fff);
    border: 1px solid rgba(200, 155, 75, 0.36);
}

.saiken-article-panel_grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}

.saiken-article-panel_grid article {
    background: #fff;
    border-left: 4px solid var(--jr-gold);
    padding: 18px;
}

.saiken-article-panel_grid span {
    display: block;
    color: var(--jr-antique);
    font-weight: 700;
    margin-bottom: 8px;
}

.saiken-article-panel_links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.saiken-article-panel_links a {
    color: #fff;
    background: #0b1f3a;
    border: 1px solid rgba(226, 196, 125, 0.42);
    padding: 10px 14px;
}

@media all and (max-width: 896px) {
    .saiken-large-property,
    .saiken-hotel_intro,
    .saiken-hotel_support-system,
    .saiken-hotel_creditors,
    .saiken-hotel_dd,
    .saiken-hotel_stops,
    .saiken-hotel_reason,
    .saiken-hotel_terms,
    .saiken-hotel_process,
    .saiken-hotel_support,
    .saiken-hotel_cases,
    .saiken-hotel_related,
    .saiken-hotel_faq,
    .saiken-hotel_final_cta {
        padding: 56px 0;
    }

    .saiken-large-property_head {
        text-align: left;
    }

    .saiken-large-property_head h2,
    .saiken-hotel_lead h2,
    .saiken-hotel_support-system h2,
    .saiken-hotel_creditors h2,
    .saiken-hotel_dd h2,
    .saiken-hotel_stops h2,
    .saiken-hotel_terms h2,
    .saiken-hotel_process h2,
    .saiken-hotel_cases h2,
    .saiken-hotel_related h2,
    .saiken-hotel_final_cta h2,
    .saiken-hotel_reason h2,
    .saiken-hotel_support h2,
    .saiken-hotel_faq h2 {
        font-size: 2.75rem;
    }

    .saiken-large-property_grid,
    .saiken-large-property_routes,
    .saiken-large-property_cta,
    .saiken-hotel_hero_grid,
    .saiken-hotel_hero_cta,
    .saiken-hotel_cards,
    .saiken-hotel_terms_grid,
    .saiken-hotel_steps,
    .saiken-hotel_stat_grid,
    .saiken-hotel_record_grid,
    .saiken-hotel_dd_grid,
    .saiken-hotel_support_grid,
    .saiken-hotel_split,
    .saiken-hotel_list,
    .saiken-hotel_final_actions,
    .saiken-article-panel_grid {
        grid-template-columns: 1fr;
    }

    .saiken-hotel_hero {
        padding: calc(var(--saiken-header-clearance, 88px) + 16px) 0 40px;
    }

    .saiken-hotel_case_notice {
        grid-template-columns: 1fr;
        align-items: start;
        padding: 18px;
    }

    .saiken-hotel_case_notice > span,
    .saiken-hotel_case_notice a {
        justify-self: start;
    }

    .saiken-hotel_hero_text h1 {
        font-size: clamp(22px, 6.2vw, 28px);
        line-height: 1.4;
    }

    .saiken-hotel_hero_image {
        display: none;
    }

    .saiken-large-property_routes a {
        min-height: auto;
    }

    .saiken-article-panel {
        padding: 22px;
    }
}

/* 電話・診断・LINEボタンの色をページ横断で統一 */
.ninbai-fixed-cta .ninbai-fixed_sim,
.saiken-large-property_cta .ninbai-btn_sim,
.saiken-hotel_final_actions .ninbai-btn_sim,
.saiken-hotel_hero_cta .ninbai-btn_sim,
.ninbai-knowledge_cta div a[href*="simulator"] {
    color: #fff !important;
    background: linear-gradient(180deg, #173b66, #0b1f3a) !important;
    border-color: rgba(226, 196, 125, 0.58) !important;
}

.ninbai-fixed-cta .ninbai-fixed_tel,
.saiken-large-property_cta .ninbai-btn_tel,
.saiken-hotel_final_actions .ninbai-btn_tel,
.saiken-hotel_hero_cta .ninbai-btn_tel,
.ninbai-knowledge_cta div a[href^="tel:"] {
    color: #0b1f3a !important;
    background: linear-gradient(180deg, #f3d98f, #c89b4b 58%, #a8792f) !important;
    border-color: rgba(255, 240, 190, 0.8) !important;
}

.ninbai-fixed-cta .ninbai-fixed_line,
.saiken-large-property_cta .ninbai-btn_line,
.saiken-hotel_final_actions .ninbai-btn_line,
.saiken-hotel_hero_cta .ninbai-btn_line,
.ninbai-knowledge_cta div a[href*="page.line.me"] {
    color: #fff !important;
    background: linear-gradient(180deg, #31d66b 0%, #16a34a 100%) !important;
    border-color: rgba(226, 196, 125, 0.48) !important;
}

.saiken-hotel_hero_cta .ninbai-btn_primary {
    color: #fff !important;
    background: linear-gradient(135deg, #0c4f7c 0%, #176b9d 58%, #0d4162 100%) !important;
}
