/*!
Template:rishun
Theme Name: rishun_child
Theme URI: https://rishuntrading.co.jp
Description: Rishun is a very simple & easy to customize theme which is based on the Bootstrap. It is also very friendly with custom post types and custom taxonomies. When you add a new one, the breadcrumbs will be adjusted and posts will look beautifully without editing or adding a template files.
Author: RishunTrading Limited.
Author URI: https://rishuntrading.co.jp
Version: 1.0.0
Requires at least: 1.0
Tested up to: 1.0.0
Requires PHP: 5.6.0
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Rishun WordPress theme, Copyright (C) 2022 RishunTrading Limited.
Rishun WordPress theme is licensed under the GPL.
Update Author:RishunTrading Limited
Update Author URI:https://rishuntrading.co.jp/
Version:1.0.0
*/
@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

/************************************************************/
:root {
    /*--navy: #001A3F;
    --navy-dark: #000F26;
    --navy-light: #002A5C;*/
    --navy: #004080;
    --navy-dark: #002757;
    --navy-light: #0059b3;
    --white: #FFFFFF;
    --gold: #D4AF37;
    --gold-light: #E8CC6E;
    --gold-dark: #B8960E;
    --sky-clear: #E0F2F1;
    --text-muted: rgba(255, 255, 255, 0.6);
    --font-serif: 'Noto Serif JP', 'Yu Mincho', serif;
    --font-sans: 'Noto Sans JP', 'Hiragino Sans', sans-serif;
    --font-en: 'Cormorant Garamond', serif;
}

/*==========================================================*/
/* defalt define                            */
/*==========================================================*/
body {
    background-color: var(--navy);
}

body,
p {
    font-size: 17px;
    font-family: var(--font-serif);
    color: var(--white);
}

a {
    color: var(--gold);
    text-decoration: none;
    transition: color .3s;
}

a:hover {
    color: var(--gold-light);
}

.nodata {
    color: #ff0000;
}

img {
    width: 100%;
    height: auto;
}

.entry-body img {
    display: unset;
    width: auto;
    height: auto;
    max-width: 100%;
}

@media print {
    #mobile-menu {
        display: none !important;
    }
}

/*==========================================================*/
/* セクション共通                                             */
/*==========================================================*/
.section-label {
    font-family: var(--font-en);
    font-size: .85rem;
    letter-spacing: 4px;
    color: var(--gold);
    text-transform: uppercase;
    margin-bottom: 8px;
    display: block;
}

.section-title {
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 40px;
}

.section-title .gold {
    color: var(--gold);
}

.divider-gold {
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--gold), transparent);
    margin-bottom: 30px;
}

/* スクロールアニメーション */
.fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity .8s ease-out, transform .8s ease-out;
}

.fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/*==========================================================*/
/* Header                                                    */
/*==========================================================*/
.front-page .site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: transparent;
    transition: background .4s, box-shadow .4s;
}

.front-page .site-header-wrap {
    box-shadow: none;
    background-color: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.scrolled.front-page .site-header-wrap {
    background-color: var(--header-bk-color);
    box-shadow: 0 2px 2px rgba(220, 220, 220, 0.6);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.site-header-logo a {
    color: var(--logo-gradient2);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1rem;
    font-weight: 700;
    font-family: var(--font-serif);
}

.site-header-logo a:hover {
    color: var(--menu-gradient2);
}

.site-header-logo a img {
    width: 50px;
    height: auto;
    object-fit: contain;
}

.site-header-logo .logo-ttl {
    font-size: 1.1rem;
}

/* PC版ナビ */
.site-header-nav {
    display: flex;
    align-items: center;
}

.site-header-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    /* iOS Safari 14.5以上対応 */
}
.site-header-menu li a{
    font-family: var(--font-serif)!important;
}
.site-header-menu li a::before {
    display: none;
}

/* iOS Safari 14.4以前のgapフォールバック */
.site-header-menu .menu-item+.menu-item {
    margin-left: 6px;
}

.site-header-menu .menu-item a {
    font-size: 1rem;
    letter-spacing: 0;
    font-weight: 500;
    padding: 5px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    position: relative;
    transition: color .3s;
}

.site-header-menu .menu-item a:hover {
    color: var(--gold);
}

/* CTAボタン */
.contact-btn>div>a{
    width:33.333%;
    line-height:1.2;
    transition:all 0.3s;
    position:relative;
    padding-left:1em;
}
.contact-btn .maillink {
    color: var(--navy);
}
.contact-btn .maillink:hover {
    color: var(--navy);
}
.contact-btn .maillink.last_maillink{
    background:var(--navy);
    color:var(--gold);
}
.contact-btn>div>a>i {
    font-size: 20px;
    position:absolute;
    top:50%;
    left:10px;
    translate:0 -50%;
}
/* ハンバーガーボタン */
.mobile-navi-btn {
    cursor: pointer;
    width: 45px;
    height: 45px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7px;
    background: var(--burger-bkcolor);
    border-radius: 4px;
    transition: background .3s, border-color .3s;
}

.mobile-navi-btn:hover {
    border: 1px solid var(--gold);
}

.mobile-navi-btn span {
    display: block;
    width: 23px;
    height: 2px;
    background: var(--gold);
    transition: transform .35s ease, opacity .25s ease;
    transform-origin: center center;
}

/* メニュー展開時：×形に変形（親テーマが .mobile-navi-open を付与） */
.mobile-navi-btn.mobile-navi-open span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
}

.mobile-navi-btn.mobile-navi-open span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.mobile-navi-btn.mobile-navi-open span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
}

/* モバイルメニュー */
.mobile-menu-slide {
    width: 80%;
    max-width: 360px;
    height: 100vh;
    /* フォールバック */
    height: 100svh;
    /* iOS Safariのアドレスバー問題を回避 */
    padding: 80px 24px 24px;
    overflow-y: auto;
}

.mobile-menu-slide.open {
    right: 0;
}

.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .5);
    z-index: 998;
    display: none;
    opacity: 0;
    transition: opacity .3s;
}

.mobile-menu-overlay.show {
    display: block;
    opacity: 1;
}
.site-mobile-nav{
    padding:0;
}
.site-mobile-nav>div {
    background: transparent;
}

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

.site-mobile-menu li a {
    display: block;
    padding: 16px 0;
    color: var(--white);
    font-size: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    font-family: var(--font-serif);
}

.site-mobile-menu li a:hover {
    color: var(--gold);
}

@media(max-width:599px) {
    .site-header-inner {
        justify-content: flex-start;
    }
}

@media (max-width: 991px) {
    .site-header-nav {
        display: none;
    }

    .mobile-navi-btn {
        display: flex;
    }
}
@media(min-width:768px){
    .contact-btn>div>a{
        padding:0;
    }
    .contact-btn>div>a>i {
        font-size: 20px;
        position:static;
        top:unset;
        left:unset;
        translate:unset;
    }
}
@media(min-width:992px) {
    .site-header-logo .logo-ttl {
        font-size: 1.5rem;
    }

    /* CTAボタン */
    .container.site-header-container {
        grid-template-columns: 1fr 1.3fr;
    }
    .contact-btn>div>a {
        border-radius: 4px;
        padding: 10px;
    }
    .contact-btn>div>a br{
        display:none;
    }
    .contact-btn{
        grid-row:1/2;
        grid-column:2/3;
    }
    .site-header-nav{
        grid-row:2/3;
        grid-column:1/3;
    }
    .contact-btn .maillink.last_maillink{
        margin-left:5px;
    }
}

/*==========================================================*/
/* Page Header
/*==========================================================*/
.page-header {
    background-color: #001A3F;
}

.page-header .page-header-ttl {
    line-height: 1.4;
}

.page-header .page-header-ttl .jp {
    font-family: var(--font-serif);
    font-weight: 500;
    letter-spacing: 0.15em;
}

.page-header .page-header-ttl .en {
    font-family: var(--font-en);
    color: #D4AF37;
    font-weight: 400;
    letter-spacing: 0.25em;
    margin-top: 10px;
    opacity: 0.9;
}

/*==========================================================*/
/* Breadcrumb (Child Theme Customization)
/*==========================================================*/
.section.breadSection {
    background-color: #00122E;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.breadSection .breadcrumb a,
.breadSection .breadcrumb span {
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
    letter-spacing: 0.05em;
}

.ol_rishun-breadcrumb>li:last-child>span {
    color: #FFFFFF;
}

.breadSection .breadcrumb a:hover span {
    color: #D4AF37;
    opacity: 1;
    text-decoration: none;
}

.ol_rishun-breadcrumb>li:nth-of-type(n+2):after {
    color: rgba(255, 255, 255, 0.3);
    font-size: 10px;
    left: -14px;
}

/* トップページ       */
/*==========================================================*/
/* Hero セクション                                           */
/*==========================================================*/
:root {
    --new-hero-overlay-color: rgba(0, 26, 63, 0.85); 
    --hero-gold: #D4AF37;
}

/* --- Base (Mobile First) --- */
.new_hero_sec {
    position: relative;
    min-height: 100vh;
    min-height: 100svh; /* スマホのアドレスバー対策 */
    overflow: hidden;
    color: #ffffff;
    padding-top: calc(var(--sp-header-height, 60px) + 20px);
    padding-bottom: 40px;
    display: flex;
    align-items: center;
}

/* 背景画像制御 */
.new-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}
.new-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.new-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--new-hero-overlay-color);
    z-index: 0;
}
.hero-decor {
    position: absolute;
    z-index: 1;
    pointer-events: none;
    display: flex;
    opacity: 0.5; /* 目立たないよう透過 */
}
.hero-decor-left {
    top: calc(var(--sp-header-height) + 6%);
    left: 4%;
    align-items: flex-start;
}
.hero-decor-right {
    bottom: 5%;
    right: 4%;
    align-items: center; /* 右寄せ */
}

/* 鍵カッコの図形（CSSボーダーで極細に作成） */
.decor-bracket {
    width: 30px;
    height: 30px;
    border-color: var(--hero-gold);
    border-style: solid;
}
.decor-bracket-tl {
    border-width: 1px 0 0 1px; /* 上と左（「） */
}
.decor-bracket-br {
    border-width: 0 1px 1px 0; /* 下と右（」） */
    margin-top: 15px;
}

.decor-text {
    font-family: var(--font-serif, serif);
    color: #ffffff;
    font-size: 0.85rem;
    line-height: 1.3;
    letter-spacing: 2px;
}

/* バッジ */
.hero-badge {
    display: inline-block;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 50px;
    padding: 6px 12px;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.hero-badge i {
    color: var(--hero-gold);
    margin-right: 4px;
}

/* メインキャッチ */
.hero-main-catch {
    line-height: 1.3;
    margin-bottom: 25px;
}
.hero-main-catch .catch-small {
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 2px;
}
.hero-main-catch .catch-large {
    font-size: 2.8rem;
    font-weight: 700;
    color: var(--hero-gold);
    font-family: var(--font-serif, serif);
    font-style: italic; /* 画像の筆記体・明朝のニュアンスを再現 */
    letter-spacing: 1px;
}
.hero-main-catch .catch-medium {
    font-size: 1.5rem;
    font-weight: 700;
}
.hero-main-catch-line{
    opacity: 0.6;
    height: 1px;
    width: 90px;
    margin:22px auto 0;
    background: var(--gold-light);
}
/* 3つの特徴ボックス（スマホ横並び対応） */
.hero-features {
    max-width: 1000px;
    margin: 0 auto;
}
.feature-box {
    border: 1px solid rgba(212, 175, 55, 0.6);
    border-radius: 6px;
    padding: 12px 2px;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.feature-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(212, 175, 55, 0.15);
    color: var(--hero-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    margin-bottom: 8px;
}
.feature-title {
    font-size: 0.8rem;
    font-weight: 700;
    margin-bottom: 6px;
    letter-spacing: 0px;
}
.feature-text {
    font-size: 0.7rem; /* スマホで3列収めるための極小サイズ */
    line-height: 1.4;
    margin: 0;
    opacity: 0.9;
}

/* --- Tablet (768px以上) --- */
@media (min-width: 768px) {
    .new_hero_sec{
        padding-bottom: 140px;
    }
    .hero-decor { opacity: 0.6; }
    .hero-decor-left { top: calc(var(--sp-header-height) + 6%); left: 6%; }
    .hero-decor-right { bottom: 4%; right: 6%; }
    .decor-bracket {
        width: 60px; height: 60px;
    }
    .decor-bracket-tl { border-width: 1px 0 0 1px; }
    .decor-bracket-br { border-width: 0 1px 1px 0; }
    .decor-text {
        font-size: 1.1rem;
    }
    .hero-badge {
        font-size: 1.1rem;
        padding: 8px 25px;
        margin-bottom: 30px;
    }
    .hero-main-catch .catch-small {
        font-size: 1.5rem;
    }
    .hero-main-catch .catch-large {
        font-size: 4.5rem;
    }
    .hero-main-catch .catch-medium {
        font-size: 2.2rem;
    }
    .feature-box {
        padding: 25px 15px;
        border-radius: 10px;
    }
    .feature-icon {
        width: 55px;
        height: 55px;
        font-size: 1.6rem;
        margin-bottom: 15px;
    }
    .feature-title {
        font-size: 1rem;
        margin-bottom: 10px;
    }
    .feature-text {
        font-size: 0.75rem;
        line-height: 1.6;
    }
}

/* --- PC (992px以上) --- */
@media (min-width: 992px) {
    .new_hero_sec {
        padding-top: calc(var(--pc-header-height, 90px) + 40px);
    }
    .hero-decor-left { top: calc(var(--pc-header-height)); }
    .hero-decor-right { bottom: 6%;}
    .decor-bracket {
        width: 90px; height: 90px;
    }
    .decor-text {
        font-size: 1.3rem;
    }
    .hero-main-catch {
        margin-bottom: 50px;
    }
    .hero-main-catch .catch-large {
        font-size: 5.5rem;
    }
    .hero-main-catch .catch-medium {
        font-size: 2.8rem;
    }
    .feature-box {
        padding: 30px 20px;
    }
    .feature-icon {
        width: 65px;
        height: 65px;
        font-size: 1.8rem;
    }
    .feature-title {
        font-size: 1.2rem;
    }
    .feature-text {
        font-size: 0.95rem;
    }
}

.top_hero_sec {
    position: relative;
    overflow: hidden;
}

.top_hero_sec .contains-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation: kenBurns 20s ease-in-out infinite alternate;
}

.hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@keyframes kenBurns {
    0% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1.0);
    }
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 88, 176, .6) 0%, rgba(0, 30, 75, 0.8) 100%);
}

.hero-catch2-wrap {
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
    width: clamp(280px, 45vw, 440px);
    height: clamp(280px, 45vw, 440px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    padding: 30px;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    background: rgba(0, 26, 63, .3);
}

.hero-catch2 {
    font-size: clamp(1.05rem, 2.2vw, 1.3rem);
    line-height: 2;
    font-weight: 500;
}

.hero-catch2 .partner {
    color: var(--gold);
    font-family: var(--font-en);
    font-size: 1.4em;
    font-weight: 700;
    font-style: italic;
}

/* スクロールダウンインジケーター */
.scroll-indicator {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    /* iOS Safari 14.5以上対応 */
    row-gap: 8px;
    /* フォールバック */
}

.scroll-indicator span {
    font-family: var(--font-en);
    font-size: .7rem;
    letter-spacing: 3px;
    color: var(--text-muted);
}

.scroll-indicator .scroll-line {
    width: 1px;
    height: 50px;
    background: linear-gradient(180deg, var(--gold), transparent);
    animation: scrollAnim 2s ease-in-out infinite;
}

/* transform-originはSafariで@keyframes内変化が崩れるため要素側に固定し、translateYで代替 */
.scroll-indicator .scroll-line {
    transform-origin: top center;
}

@keyframes scrollAnim {
    0% {
        opacity: 0;
        transform: scaleY(0) translateY(0);
    }

    49% {
        opacity: 1;
        transform: scaleY(1) translateY(0);
    }

    50% {
        opacity: 1;
        transform: scaleY(1) translateY(0);
    }

    100% {
        opacity: 0;
        transform: scaleY(1) translateY(50px);
    }
}

/*==========================================================*/
/* トップページ：ヒーローセクション & 画像セクション            */
/*==========================================================*/

/* --- #hero --- */
.hero-content {
    padding-top: 20px;
    padding-bottom: 80px;
    position: relative;
    z-index: 2;
    max-width: 900px;
}
.hero-catch1 {
    font-size: 1.4rem;
    line-height: 1.6;
    font-weight: 700;
    margin-bottom: 40px;
    letter-spacing: 2px;
}
.hero-subtext-wrap {
    margin-top: 1.5rem;
}
.hero-subtext {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom:40px;
    font-weight: 500;
}
.hero-list {
    font-size: 1.1rem;
    line-height: 1.8;
}
.hero-list li {
    margin-bottom: 10px;
    font-weight: 700;
}
.gold-text {
    color: var(--gold);
    font-weight: 700;
}

/* --- #hero-images --- */
.top_hero_images_sec {
    background: var(--navy);
    padding: 0;
}
.top_hero_images_sec .contains-frm {
    max-width: 100%;
}
.hero-img-col {
    margin-bottom: 5px;
}
.hero-img-col:last-child {
    margin-bottom: 0;
}
.hero-img-item {
    position: relative;
    overflow: hidden;
}
.hero-img-item img {
    aspect-ratio: 16 / 9;
}

/* --- Media Queries --- */
@media(min-width: 768px) {
    /* hero */
    .hero-content {
        padding-top: 0;
        padding-bottom: 0;
    }
    .hero-catch1 {
        font-size: 2.2rem;
    }
    .hero-subtext {
        font-size: 1.25rem;
    }
    .hero-list {
        font-size: 1.15rem;
    }
    
    /* hero-images */
    .top_hero_images_sec {
        padding: 60px 0;
    }
    .top_hero_images_sec .contains-frm {
        max-width: 1200px;
    }
    .hero-img-col {
        margin-bottom: 0;
    }
    .hero-img-item {
        border-radius: 8px;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    }
    .hero-img-item img {
        aspect-ratio: 4 / 3;
    }
}

@media(min-width: 992px) {
    /* hero */
    .hero-catch1 {
        font-size: 2.8rem;
    }
    .hero-content{
        text-align: center;
    }
    .hero-subtext {
        font-size: 1.4rem;
    }
    .hero-list {
        font-size: 1.25rem;
    }
    
    /* hero-images */
    .top_hero_images_sec {
        padding: 80px 0;
    }
}

@media(min-width: 1200px) {
    /* hero-images */
    .top_hero_images_sec {
        padding: 100px 0;
    }
}

@media(min-width: 1400px) {
    /* hero-images */
    .top_hero_images_sec {
        padding: 120px 0;
    }
}

/* --- Vision --- */
.top_vision_sec {
    background: var(--navy);
}

.vision-text h3 {
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    font-weight: 700;
    line-height: 1.8;
    margin-bottom: 10px;
}
.kumoto_sign img{
    filter: invert(100%);
    height: clamp(1.3rem, 2vw, 1.6rem);
    width: auto;
}
.vision-text p {
    font-size: .95rem;
    line-height: 2.2;
    margin-bottom: 30px;
}

.vision-img-wrap {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 20px 20px 60px rgba(0, 0, 0, .4);
}

.vision-img-wrap::before {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    width: calc(100% + 20px);
    height: calc(100% + 20px);
    border: 1px solid var(--gold);
    border-radius: 12px;
    z-index: -1;
    opacity: .3;
}

/* 共通ボタン：ゴールドアウトライン */
.btn-gold {
    display: inline-block;
    padding: 14px 36px;
    background: transparent;
    border: 1px solid var(--gold);
    color: var(--gold);
    font-weight: 500;
    border-radius: 2px;
    transition: all .4s;
    letter-spacing: 1px;
}

.btn-gold:hover {
    background: var(--gold);
    color: var(--navy);
    box-shadow: 0 4px 20px rgba(212, 175, 55, .3);
}


/* --- Difference（選ばれる理由）3段パネル --- */
.top_difference_sec {
    background: var(--navy-dark);
    /* page-sectionの上下paddingをリセットして詰める */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* section-title部分のみ上下パディングを手動付与 */
.diff-header {
    padding: 60px 0 40px;
}

/* パネルコンテナ */
.diff-panels {
    width: 100%;
}

/* 各パネル */
.diff-panel {
    position: relative;
    width: 100%;
    min-height: 340px;
    overflow: hidden;
    display: flex;
    align-items: center;
}

@media(min-width: 768px) {
    .diff-panel {
        min-height: 400px;
    }
}

@media(min-width: 1200px) {
    .diff-panel {
        min-height: 460px;
    }
}

/* 背景画像（Ken Burns対象 / inset:0 → top/right/bottom/left:0 にSafari対応） */
.diff-panel-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transform: scale(1.08);
    transition: transform 8s ease-out;
    /* Ken Burns トランジション */
}

.diff-panel-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* パネルがis-visibleになったときKen Burns発動 */
.diff-panel.is-visible .diff-panel-bg {
    transform: scale(1.0);
}

/* ダークオーバーレイ（可読性確保 / inset:0 → Safari対応に展開） */
.diff-panel-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(105deg, rgba(0, 23, 94, 0.82) 0%, rgba(2, 58, 110, 0.65) 55%, rgba(0, 119, 191, 0.6) 100%);
}

/* パネル2は左右反転オーバーレイ（テキストが右寄り） */
#diff-panel-2 .diff-panel-overlay {
    background: linear-gradient(255deg, rgba(0, 23, 94, 0.82) 0%, rgba(2, 58, 110, 0.65) 55%, rgba(0, 119, 191, 0.6) 100%);
}

/* テキストコンテナ（フルワイド内にmax-width制限） */
.diff-panel-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 50px 24px;
}

/* テキストブロック（デフォルト：左寄せ） */
.diff-panel-content {
    max-width: 680px;
}

/* パネル2のみ右寄せ */
.diff-panel-content--right {
    margin-left: auto;
    margin-right: 0;
}

/* ナンバー */
.diff-panel-num {
    font-family: var(--font-en);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
    color: var(--gold);
    opacity: .25;
    line-height: 1;
    display: block;
    margin-bottom: -10px;
    letter-spacing: -2px;
}

/* パネルタイトル */
.diff-panel-title {
    font-size: clamp(1.15rem, 2.8vw, 1.9rem);
    font-weight: 700;
    line-height: 1.65;
    margin-bottom: 20px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .6);
}

/* ゴールドの仕切り線 */
.diff-panel-divider {
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, var(--gold), transparent);
    margin-bottom: 20px;
}

/* テキスト説明文 */
.diff-panel-body p,
.diff-panel-body ul {
    color: #fff;
    font-size: clamp(.85rem, 1.6vw, 1rem);
    line-height: 1.85;
    margin-bottom: 10px;
}
.diff-panel-body p{
    font-weight: 700;
}

/* リスト */
.diff-panel-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.diff-panel-list li {
    padding-left: 1.2em;
    position: relative;
    margin-bottom: 8px;
    color: rgba(255, 255, 255, .85);
    font-size: clamp(.85rem, 1.6vw, 1rem);
    line-height: 1.7;
}

.diff-panel-list li::before {
    content: '―';
    position: absolute;
    left: 0;
    color: var(--gold);
    font-size: .75em;
    top: .35em;
}

/* CTAボタン用の上余白 */
.top_difference_sec>.contains-frm:last-child {
    padding: 50px 0 60px;
}
.diff_list{
    list-style: none;
    padding-left: 0;
}
.diff_list li{
    padding-left: 1.6em;
    position: relative;
    margin-bottom: 12px;
    line-height: 1.6;
    font-weight: 700;
}
.diff_list li::before{
    content: '\f00c';
    font-family: 'Font Awesome 7 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--gold);
}


/* --- Flow（ご購入の流れ） --- */
.top_flow_sec {
    background: var(--navy);
}

.flow-card {
    text-align: center;
    padding: 36px 24px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 8px;
    transition: all .4s;
    height: 100%;
}

.flow-card:hover {
    border-color: var(--gold);
    transform: translateY(-4px);
}

.flow-card .step-num {
    font-family: var(--font-en);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 16px;
}

.flow-card h4 {
    font-size: 1rem;
    margin-bottom: 12px;
}

.flow-card p {
    font-size: .9rem;
    text-align: left;
    line-height: 1.7;
}

/* --- Profile（エージェント紹介） --- */
.top_profile_sec {
    background: linear-gradient(180deg, var(--navy-dark) 0%, var(--navy) 100%);
}

.profile-card {
    display: flex;
    gap: 40px;
    align-items: center;
    padding: 40px 20px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(212, 175, 55, .15);
    border-radius: 8px;
    flex-direction: column;
    text-align: center;
}
.profile-card.add-profile-card{
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom:0;
}
.profile-card img {
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid var(--gold);
}

.profile-name {
    font-size: 1.3rem;
    margin-bottom: 4px;
}

.profile-position {
    font-size: .85rem;
    color: var(--gold);
    margin-bottom: 12px;
}

.profile-desc {
    font-size: .95rem;
    color: rgba(255, 255, 255, .8);
    line-height: 1.8;
    margin-bottom: 12px;
    text-align: left;
}

.profile-card .badge-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}

.profile-card .badge-list span {
    font-size: .75rem;
    padding: 4px 12px;
    border: 1px solid var(--gold);
    color: var(--gold);
    border-radius: 20px;
}

@media(min-width:768px) {
    .profile-card {
        padding: 40px;
        flex-direction: row;
        text-align: left;
    }

    .profile-card .badge-list {
        justify-content: flex-start;
    }
}
/*==================================================
  動画紹介セクション (Movie Section)
==================================================*/
.top_movie_sec {
    background-color: #ffffff;
    padding-top: 60px;
    padding-bottom: 60px;
}
.top_movie_sec .section-label {
    color: var(--navy-light);
}
.top_movie_sec .section-title {
    color: var(--navy);
}
.movie-wrapper {
    border-radius: 12px;
    padding: 6px;
    background-color: #f8f9fa;
    border: 2px solid var(--gold);
}
.movie-wrapper .ratio {
    border-radius: 6px;
    overflow: hidden;
}
.movie-text p {
    line-height: 1.8;
    color: #333333;
    font-weight: 500;
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .top_movie_sec {
        padding-top: 80px;
        padding-bottom: 80px;
    }
    .movie-wrapper {
        padding: 8px;
    }
    .movie-text p {
        font-size: 1.05rem;
        text-align: center;
    }
}
/* --- News（お知らせ） --- */
.top_news_sec {
    background: var(--navy);
}

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

.news-card-link:hover {
    color: inherit;
}

.news-card {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 8px;
    overflow: hidden;
    transition: all .4s;
    height: 100%;
}

.news-card:hover {
    border-color: var(--gold);
    transform: translateY(-4px);
}

.news-card .news-thumb {
    width: 100%;
    height: 180px;
    object-fit: cover;
}

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

.news-card .news-date {
    font-family: var(--font-en);
    color: var(--gold);
    margin-bottom: 8px;
}

.news-card .news-title {
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.6;
}

/* --- CTA（お問い合わせ導線） --- */
.top_cta_sec {
    position: relative;
    overflow: hidden;
    background: url(./img/buildings_and_bluesky.jpg)no-repeat center center/cover;
}
.top_cta_sec::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:var(--navy);
    opacity: 0.8;
}

.cta-inner {
    padding: 30px;
    border: 1px solid rgba(212, 175, 55, .3);
    border-radius: 8px;
    background: rgba(212, 175, 55, .03);
}

.cta-inner h2 {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    font-weight: 700;
    margin-bottom: 16px;
    line-height: 1.8;
}

.cta-sub-text {
    font-size: .7em;
}

.cta-inner p {
    margin-bottom: 30px;
    font-size: .9rem;
}

@media(min-width:768px) {
    .cta-inner {
        text-align: center;
    }
}

/* 共通ボタン：ゴールドCTA */
.btn-cta {
    text-align: center;
    display: block;
    padding: 18px 30px;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color: var(--navy);
    font-size: 1rem;
    font-weight: 700;
    border-radius: 4px;
    border: none;
    transition: all .4s;
    letter-spacing: 2px;
}

.btn-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(212, 175, 55, .4);
    color: var(--navy);
}
.top_hero_sec .btn-cta{
    padding: 18px 20px;
    font-weight: 900;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}
@media(min-width:768px){
    .top_cta_sec .btn-cta{
        display: inline-block;
    }
}
/*==========================================================*/
/* Footer                                                    */
/*==========================================================*/
.site-footer {
    border-top: 1px solid rgba(255, 255, 255, .05);
}

.site-footer-wrap {
    padding: 60px 0 30px;
}

/* ロゴ＋店舗名 横並び */
.footer-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.footer-logo {
    flex-shrink: 0;
}

.footer-logo img {
    width: 50px;
    height: auto;
    display: block;
}

.footer-brand-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* .site-header-logo .logo-ttl と同じ書体・サイズ */
.footer-brand-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--footer-font-color);
    line-height: 1.2;
}

.footer-brand-sub {
    font-family: var(--font-en);
    font-size: .85rem;
    color: var(--text-muted);
    letter-spacing: 1px;
    line-height: 1.4;
}

.footer-info {
    font-size: .82rem;
    color: var(--footer-font-color);
    line-height: 1.9;
    margin-top: 4px;
}

.footer-nav-title {
    font-family: var(--font-en);
    font-size: .8rem;
    color: var(--gold);
    letter-spacing: 2px;
    margin-bottom: 16px;
    text-transform: uppercase;
}

.site-footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 8px 16px;
}

.site-footer-menu li {
    padding: 0;
    /* 親テーマの余白をリセット */
    display: block;
}

.site-footer-menu li a {
    font-size: 1rem;
    padding: 4px 0;
    display: block;
    transition: color .3s;
}

.site-footer-menu li a:hover {
    color: var(--gold);
}

.footer-sns {
    display: flex;
    gap: 16px;
    margin-top: 20px;
}

.footer-sns a {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 50%;
    color: var(--white);
    font-size: 1rem;
    transition: all .3s;
}

.footer-sns a:hover {
    border-color: var(--gold);
    color: var(--gold);
    background: rgba(212, 175, 55, .1);
}

.copyright {
    text-align: center;
    padding-top: 30px;
    margin-top: 40px;
    border-top: 1px solid rgba(255, 255, 255, .05);
    font-size: .78rem;
    color: var(--text-muted);
}

.footerwidget {
    margin-bottom: 30px;
}

@media(min-width:768px) {
    .footer-info .tellink {
        pointer-events: none;
        color: var(--footer-font-color);
    }
}

@media(min-width:992px) {
    .site-footer .container {
        flex-wrap: wrap;
    }

    .footerwidget {
        margin-bottom: 0;
    }

    .site-footer .copyright {
        width: 100%;
    }

    .footerwidget {
        width: 41.66666667%;
    }
}

/*==========================================================*/
/* 下層ページ：理念と強み（Strengths）                        */
/*==========================================================*/

/* --- Introセクション（3つの柱） --- */
.strengths_intro_sec {
    background: var(--navy);
}

.pillar-card {
    background: rgba(255, 255, 255, .02);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 8px;
    padding: 40px 30px;
    height: 100%;
    text-align: center;
    transition: all .4s;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
}

.pillar-card:hover {
    border-color: var(--gold);
    transform: translateY(-5px);
    background: rgba(255, 255, 255, .04);
}

.pillar-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(212, 175, 55, .1);
    border-radius: 50%;
}

.pillar-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

.pillar-title {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 16px;
    color: var(--gold);
    line-height: 1.4;
}

.pillar-desc {
    font-size: .95rem;
    color: rgba(255, 255, 255, .8);
    line-height: 1.8;
    margin: 0;
}

/* --- 11の強みセクション --- */
.strengths_list_sec {
    background: var(--navy-dark);
}

.strength-category {
    margin-bottom: 60px;
}

.strength-category:last-child {
    margin-bottom: 0;
}

.strength-category-title {
    font-size: clamp(1.3rem, 2.5vw, 1.6rem);
    font-weight: 700;
    color: var(--white);
    margin-bottom: 30px;
    border-bottom: 1px solid rgba(212, 175, 55, .3);
    padding-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.category-label {
    font-family: var(--font-en);
    font-size: .85rem;
    letter-spacing: 2px;
    color: var(--navy);
    background: var(--gold);
    padding: 4px 12px;
    border-radius: 2px;
    font-weight: 600;
}

.strength-card {
    background: rgba(255, 255, 255, .03);
    border-left: 3px solid var(--gold);
    padding: 30px;
    height: 100%;
    transition: all .3s;
}

.strength-card:hover {
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 5px 20px rgba(0, 0, 0, .25);
}

.strength-num {
    font-family: var(--font-en);
    font-size: 3rem;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 15px;
    font-weight: 700;
    letter-spacing: -1px;
}

.strength-text {
    font-size: .95rem;
    line-height: 1.9;
    color: rgba(255, 255, 255, .85);
    margin: 0;
}

/*==========================================================*/
/* 下層ページ：ご購入の流れ（Flow）                           */
/*==========================================================*/

.flow_intro_sec {
    background: var(--navy);
    padding-bottom: 0;
}

.flow-lead {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(212, 175, 55, .2);
    padding: 30px;
    border-radius: 8px;
    max-width: 800px;
    margin: 0 auto;
}

.flow-lead p {
    margin: 0;
    line-height: 1.9;
    font-size: 1.05rem;
}

.flow_timeline_sec {
    background: var(--navy);
}

.timeline-container {
    position: relative;
    max-width: 860px;
    margin: 0 auto;
}

/* Phase Header */
.timeline-phase {
    margin-bottom: 60px;
}

.timeline-phase:last-child {
    margin-bottom: 0;
}

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

.phase-label {
    display: inline-block;
    font-family: var(--font-en);
    color: var(--navy);
    background: var(--gold);
    padding: 6px 18px;
    border-radius: 30px;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 16px;
}

.phase-title {
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
    font-weight: 700;
    color: var(--white);
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

.phase-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

/* Timeline Items Container */
.timeline-items {
    position: relative;
    padding-left: 30px;
}

@media (min-width: 768px) {
    .timeline-items {
        padding-left: 50px;
    }
}

/* 線 */
.timeline-items::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 20px;
    width: 2px;
    background: linear-gradient(180deg, var(--gold) 0%, rgba(212, 175, 55, 0.2) 100%);
    z-index: 1;
}
.timeline-phase:last-child .timeline-items::before{
    height: calc(100% - 190px);
}
@media(min-width:435px){
    .timeline-phase:last-child .timeline-items::before{
        height: calc(100% - 130px);
    }
}
@media (min-width: 768px) {
    .timeline-items::before {
        left: 40px;
    }
}
@media(min-width:992px){
    .timeline-phase:last-child .timeline-items::before{
        height: calc(100% - 100px);
    }
}

/* 各ステップ */
.timeline-item {
    position: relative;
    margin-bottom: 30px;
    padding-left: 30px;
}

@media (min-width: 768px) {
    .timeline-item {
        padding-left: 50px;
    }
}

.timeline-item:last-child {
    margin-bottom: 0;
}

/* 円マーカー */
.timeline-marker {
    position: absolute;
    left: -10px;
    top: 5px;
    width: 40px;
    height: 40px;
    background: var(--navy-dark);
    border: 2px solid var(--gold);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    box-shadow: 0 0 0 6px var(--navy);
}

@media (min-width: 768px) {
    .timeline-marker {
        left: -10px;
        width: 46px;
        height: 46px;
    }
}

.timeline-num {
    font-family: var(--font-en);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gold);
}

@media (min-width: 768px) {
    .timeline-num {
        font-size: 1.3rem;
    }
}

/* コンテンツ枠 */
.timeline-content {
    background: rgba(255, 255, 255, .02);
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 8px;
    padding: 24px 30px;
    transition: all .3s;
}

.timeline-item:hover .timeline-content {
    background: rgba(255, 255, 255, .05);
    border-color: rgba(212, 175, 55, .4);
    box-shadow: 0 4px 15px rgba(0, 0, 0, .2);
}

.timeline-content p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.9;
    color: rgba(255, 255, 255, .85);
}

/*==========================================================*/
/* 下層ページ：当社のコンサルティング方針（Policy）                 */
/*==========================================================*/

/* --- 1. 物件の判断基準 --- */
.policy_judgment_sec {
    background: var(--navy);
}

.policy-lead {
    background: rgba(255, 255, 255, .02);
    border-radius: 8px;
    padding: 30px;
    max-width: 900px;
    margin: 0 auto;
}

.policy-lead p {
    font-size: 1.05rem;
    line-height: 2;
    margin: 0;
}

.risk-card {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 8px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
    text-align: center;
    height: 100%;
    transition: all .3s;
}

.risk-card:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, .25);
    border-color: rgba(212, 175, 55, .4);
    background: rgba(255, 255, 255, .05);
}

.risk-icon {
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    background: rgba(212, 175, 55, .1);
    color: var(--gold);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
}

.risk-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--gold);
}

.risk-desc {
    font-size: .95rem;
    color: rgba(255, 255, 255, .8);
    line-height: 1.8;
    margin: 0;
}

/* --- 2. 3つの価格算出式 --- */
.policy_valuation_sec {
    background: var(--navy-dark);
}

.valuation-card {
    background: rgba(255, 255, 255, .02);
    border-top: 4px solid var(--gold);
    border-radius: 4px;
    padding: 40px 30px;
    text-align: left;
    position: relative;
    height: 100%;
    transition: all .3s;
}

.valuation-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, .04);
}

.valuation-num {
    font-family: var(--font-en);
    font-size: 5rem;
    color: var(--gold);
    opacity: .15;
    position: absolute;
    top: 5px;
    right: 20px;
    line-height: 1;
    font-weight: 700;
}

.valuation-title {
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 24px;
    color: var(--gold);
    position: relative;
    z-index: 1;
}

.valuation-title .sub {
    font-size: 1rem;
    color: var(--white);
    font-weight: 400;
    display: block;
    margin-top: 8px;
}

.valuation-list {
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
    z-index: 1;
}

.valuation-list li {
    padding-left: 1.6em;
    position: relative;
    margin-bottom: 12px;
    font-size: .95rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .9);
}

.valuation-list li::before {
    content: '\f00c';
    font-family: 'Font Awesome 7 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--gold);
    font-size: .85rem;
}

/* --- 3. 2つの約束（アラートボックス等） --- */
.policy_promise_sec {
    background: var(--navy);
}

/* Promise 1: 比較パネル付き */
.promise-box {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 8px;
    padding: 30px 20px;
    margin-bottom: 40px;
}

.promise-header {
    border-bottom: 1px solid rgba(212, 175, 55, .3);
    padding-bottom: 20px;
    margin-bottom: 30px;
}

.promise-num {
    display: inline-block;
    background: var(--gold);
    color: var(--navy);
    padding: 6px 18px;
    border-radius: 30px;
    font-family: var(--font-en);
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: 2px;
    margin-bottom: 15px;
}

.promise-title {
    font-size: clamp(1.4rem, 2.5vw, 1.6rem);
    font-weight: 700;
    color: var(--white);
    line-height: 1.5;
    margin: 0;
}

.promise-text {
    font-size: 1rem;
    line-height: 1.9;
    color: rgba(255, 255, 255, .85);
    margin-bottom: 30px;
}

.promise-compare {
    display: flex;
    flex-direction: column;
    gap: 20px;
    flex-wrap: wrap;
}

.compare-card {
    flex: 1;
    min-width: 250px;
    background: rgba(0, 15, 38, .5);
    border: 1px solid rgba(255, 255, 255, .08);
    padding: 24px;
    border-radius: 6px;
}

.compare-title {
    font-size: 1.15rem;
    color: var(--gold);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px dashed rgba(255, 255, 255, .2);
    padding-bottom: 12px;
}

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

.compare-list li {
    font-size: .95rem;
    color: rgba(255, 255, 255, .85);
    position: relative;
    padding-left: 1.2em;
    margin-bottom: 10px;
    line-height: 1.6;
}

.compare-list li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: rgba(255, 255, 255, .5);
}

/* Promise 2: アラートボックス */
.alert-box {
    background: rgba(30, 0, 10, .6);
    border: 2px solid #b83b3b;
    border-radius: 8px;
    padding: 30px 20px;
    position: relative;
    overflow: hidden;
}

.alert-box::before {
    content: '\f071';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 12rem;
    position: absolute;
    right: -20px;
    bottom: -40px;
    color: #b83b3b;
    opacity: .05;
    z-index: 0;
}

.alert-header {
    border-bottom: 1px solid rgba(184, 59, 59, .4);
    padding-bottom: 20px;
    margin-bottom: 30px;
    position: relative;
    z-index: 1;
}

.alert-num {
    display: inline-block;
    background: #b83b3b;
    color: var(--white);
    padding: 6px 18px;
    border-radius: 30px;
    font-family: var(--font-en);
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: 2px;
    margin-bottom: 15px;
}

.alert-title {
    font-size: clamp(1.3rem, 2.5vw, 1.5rem);
    font-weight: 700;
    color: #ffcccc;
    line-height: 1.5;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.alert-title i {
    color: #ff4d4d;
}

.alert-text {
    position: relative;
    z-index: 1;
}

.alert-text p {
    font-size: 1rem;
    line-height: 1.9;
    color: rgba(255, 255, 255, .9);
    margin-bottom: 20px;
}

.alert-form-list {
    background: rgba(0, 0, 0, .3);
    padding: 25px;
    border-radius: 6px;
    list-style: none;
    margin: 0;
}

.alert-form-list li {
    position: relative;
    padding-left: 2em;
    margin-bottom: 15px;
    font-size: .95rem;
    color: rgba(255, 255, 255, .9);
    line-height: 1.6;
}

.alert-form-list li:last-child {
    margin-bottom: 0;
}

.alert-form-list li::before {
    content: '\f00d';
    font-family: 'Font Awesome 7 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 2px;
    color: #ff4d4d;
    font-size: 1.1rem;
}

@media(min-width:768px) {
    .risk-card {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
    }

    .promise-box,
    .alert-box {
        padding: 40px;
    }

    .promise-compare {
        flex-direction: row;
    }
}

/*==========================================================*/
/* 下層ページ：エージェント紹介（Profile）                      */
/*==========================================================*/

/* --- 1. ご挨拶とプロフィール画像 --- */
.profile_message_sec {
    background: var(--navy);
}

.profile-portrait {
    max-width: 250px;
    margin: 0 auto;
    border-radius: 4px;
    overflow: hidden;
    border: 2px solid var(--gold);
    background: var(--white);
    padding: 6px;
    aspect-ratio: 3/4;
}

.profile-portrait img {
    border-radius: 2px;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.profile-message-box {
    background: var(--white);
    color: var(--navy);
    padding: 30px;
    border-radius: 4px;
    border-left: 6px solid var(--gold);
    font-size: 1rem;
    line-height: 1.9;
    position: relative;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .1);
}

.profile-message-box p {
    color: var(--navy);
    margin: 0;
}

/* --- 2. プロフィール詳細（会社概要風テーブル） --- */
.profile_details_sec {
    background: var(--navy-dark);
}

.profile-table-wrap {
    max-width: 900px;
    margin: 0 auto;
    background: var(--white);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .1);
}

.profile-table {
    width: 100%;
    border-collapse: collapse;
}

.profile-table th,
.profile-table td {
    padding: 24px;
    border-bottom: 1px solid #e0e0e0;
}

.profile-table tr:last-child th,
.profile-table tr:last-child td {
    border-bottom: none;
}

.profile-table th {
    width: 25%;
    background: var(--navy);
    color: var(--white);
    font-weight: 500;
    text-align: left;
    vertical-align: top;
    font-size: 1rem;
}

.profile-table td {
    width: 75%;
    color: var(--navy);
    font-size: .95rem;
    line-height: 1.8;
}
.top-profile-table-wrap{
    padding:0 20px 40px 20px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(212, 175, 55, .15);
    border-top:0;
    border-bottom-right-radius:8px;
    border-bottom-left-radius:8px;
}
.profile-table.top-profile-table th{
    background:var(--navy-dark);
    border-bottom:none;
}
.profile-table.top-profile-table td{
    border-bottom:none;
    background:var(--white);
    text-align:left;
}
.profile-table.top-profile-table .profile-history-list li{
    text-align:left;
}
.profile-history-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.profile-history-list li {
    position: relative;
    padding-left: 1.2em;
    margin-bottom: 8px;
}

.profile-history-list li:last-child {
    margin-bottom: 0;
}

.profile-history-list li::before {
    content: '■';
    position: absolute;
    left: 0;
    top: 1px;
    color: var(--gold);
    font-size: .8rem;
}

/* --- 3. プロフィール専用CTA --- */
.profile-cta {
    max-width: 900px;
    margin: 0 auto;
}

.cta-direct-box {
    background: var(--white);
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    height: 100%;
}

.cta-direct-box i {
    font-size: 2rem;
    color: var(--navy);
    width: 40px;
    text-align: center;
}

.cta-direct-info {
    display: flex;
    flex-direction: column;
}

.cta-direct-label {
    font-size: .85rem;
    font-weight: 700;
    color: #666;
    margin-bottom: 2px;
}

.cta-direct-value {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--navy);
    line-height: 1.2;
}

a.cta-direct-value:hover {
    color: var(--gold);
}

.btn-profile-line,
.btn-profile-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 350px;
    padding: 16px 20px;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 4px;
    transition: all .3s;
    text-decoration: none;
}

.btn-profile-line {
    background: #06C755;
    color: #FFFFFF !important;
    border: 1px solid #06C755;
}

.btn-profile-line:hover {
    background: #05b34c;
    color: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(6, 199, 85, .3);
}

.btn-profile-contact {
    background: var(--gold);
    color: var(--navy) !important;
    border: 1px solid var(--gold);
}

.btn-profile-contact:hover {
    background: var(--gold-light);
    color: var(--navy);
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(212, 175, 55, .3);
}

.access-wrap{
    width:100%;
}
.access-wrap p>i{
    margin-right:5px;
}
.access-wrap .map{
    width:100%;
    padding-top:100%;
    position:relative;
    margin-bottom:20px;
}
.access-wrap .map iframe{
    width:100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
}


@media (max-width: 767px) {

    .profile-table th,
    .profile-table td {
        display: block;
        width: 100%;
        padding: 12px 20px;
    }

    .profile-table th {
        border-bottom: none;
    }

    .profile-message-box {
        text-align: left;
    }
}
@media(min-width:768px){
    .profile-table.top-profile-table th{
        border-bottom: 1px solid #e0e0e0;

    }
    .profile-table.top-profile-table td{
        border-bottom: 1px solid #e0e0e0;
    }
    .access-wrap .map{
        width:100%;
        padding-top:500px;
    }
    .br_zipcode, .br_add{
        display:none;
    }
}
/*==========================================================*/
/* 下層ページ：お問い合わせ（Contact）                            */
/*==========================================================*/

.contact_sec {
    background: var(--navy);
}

/* --- リード文パネル --- */
.contact-lead-box {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 8px;
    padding: 30px;
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--white);
}

/* --- 情報パネル（査定と売却活動） --- */
.contact-info-panel,
.contact-alert-panel {
    background: rgba(0, 15, 38, .6);
    border: 1px solid rgba(212, 175, 55, .3);
    border-radius: 8px;
    padding: 30px;
    color: rgba(255, 255, 255, .85);
    line-height: 1.8;
}
.contact-info-panel .text-muted{
    color: rgba(224, 225, 226, 0.9)!important;
}
.contact-alert-panel {
    border-color: rgba(220, 53, 69, .4);
    background: rgba(40, 0, 10, .5);
}

.contact-info-panel .panel-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gold);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.contact-alert-panel .panel-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 20px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.4;
}

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

.advice-list li {
    margin-bottom: 15px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.advice-list li .gold {
    color: var(--gold);
    margin-top: 5px;
}

/* --- お問い合わせフォームラッパー --- */
.contact-form-wrapper {
    background: rgba(255, 255, 255, .02);
    border: 1px solid rgba(255, 255, 255, .05);
    border-radius: 8px;
    padding: 25px 15px;
    max-width: 900px;
    margin: 0 auto;
}

/* --- フォーム各要素（CF7 Bootstrap連携用） --- */
.contact_sec .form-label {
    color: var(--white);
    font-family: var(--font-serif);
    margin-bottom: 8px;
}

.form-zipcode{
    display:flex;
    flex-flow:row nowrap;
    align-items:center;
    justify-content:flex-start;
    margin-bottom:10px;
}
.form-zipcode>span:first-of-type{
    width:40px;
    font-size:24px;
}
.cl_zip{
    width:150px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .2);
    color: var(--white);
    border-radius: 4px;
    padding: 12px 16px;
    transition: all .3s;
    font-family: var(--font-sans);
}
.cl_zip:focus{
    background: rgba(255, 255, 255, .1);
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, .25);
    color: var(--white);
    outline: none;
}
#id_address{
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .2);
    color: var(--white);
    border-radius: 4px;
    padding: 12px 16px;
    transition: all .3s;
    font-family: var(--font-sans);
    max-width:100%;
}
#id_address:focus{
    background: rgba(255, 255, 255, .1);
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, .25);
    color: var(--white);
    outline: none;
}
.contact_sec .form-control-sel {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .2);
    padding: 12px 16px;
    transition: all .3s;
    font-family: var(--font-sans);
    color:var(--white);
}
.contact_sec .form-control {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .2);
    color: var(--white);
    border-radius: 4px;
    padding: 12px 16px;
    transition: all .3s;
    font-family: var(--font-sans);
}
.contact_sec .form-text p{
    font-size: 15px;
    font-family: var(--font-sans);
}

.contact_sec .form-control::placeholder {
    color: rgba(255, 255, 255, .3);
    font-family: var(--font-sans);
}
.contact_sec .form-control:focus {
    background: rgba(255, 255, 255, .1);
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, .25);
    color: var(--white);
    outline: none;
}

.contact_sec input[type="file"].form-control {
    padding: 10px 16px;
    line-height: 1.5;
}

/* --- CF7 ラジオボタンの崩れ防止と整列 --- */
.cf7-radio-wrap .wpcf7-form-control.wpcf7-radio {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 10px;
}

.cf7-radio-wrap .wpcf7-list-item {
    margin: 0;
    display: flex;
    align-items: center;
}

.cf7-radio-wrap label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: var(--white);
    font-family: var(--font-sans);
    font-size: .95rem;
}
.cf7-radio-wrap input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-radius: 50%;
    margin: 0;
    position: relative;
    cursor: pointer;
    transition: all .2s;
}

.cf7-radio-wrap input[type="radio"]:checked {
    border-color: var(--gold);
}

.cf7-radio-wrap input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    background: var(--gold);
    border-radius: 50%;
}

@media(min-width:768px) {
    .contact-form-wrapper {
        padding: 40px;
    }

    .contact-lead-box {
        text-align: center;
    }

    .cf7-radio-wrap .wpcf7-form-control.wpcf7-radio {
        flex-direction: row;
        gap: 15px;
    }
}

/*==========================================================*/
/* プライバシーポリシー（Privacy Policy）                  */
/*==========================================================*/

.policy_sec {
    background: var(--white);
    padding: 80px 0;
}

.policy_sec .section-title.text-navy {
    color: var(--navy);
}

.policy-content {
    max-width: 800px;
    margin: 0 auto;
    color: #333333;
    font-size: 1rem;
    line-height: 1.85;
}

.policy-content p {
    color: #333333;
    margin-bottom: 35px;
}

.policy-heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--navy);
    border-left: 5px solid var(--navy);
    padding-left: 15px;
    margin-top: 50px;
    margin-bottom: 20px;
    line-height: 1.4;
}

.policy-content>p:first-of-type {
    margin-bottom: 45px;
}

.policy-list {
    margin-top: -20px;
    margin-bottom: 35px;
    padding-left: 1.5em;
    color: #333333;
    line-height: 1.8;
}

.policy-list li {
    margin-bottom: 12px;
}

.policy-list li:last-child {
    margin-bottom: 0;
}

.policy-content a {
    color: #0d6efd;
    text-decoration: underline;
    font-weight: 500;
    transition: color .3s;
}

.policy-content a:hover {
    color: var(--gold);
}

/*==========================================================*/
/* アーカイブページ（お知らせ一覧表示等）                      */
/*==========================================================*/

/* --- カテゴリー & タグリスト --- */
.archive-terms-wrap {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 8px;
    padding: 24px 30px;
}

.archive-cat-list,
.archive-tag-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.tag-label {
    font-weight: 700;
    color: var(--gold);
    font-family: var(--font-en);
    font-size: 1rem;
    margin-right: 5px;
}

.term-link {
    display: inline-block;
    padding: 6px 16px;
    font-size: .9rem;
    color: var(--white);
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 30px;
    transition: all .3s;
}

.term-link:hover {
    background: rgba(212, 175, 55, .15);
    border-color: var(--gold);
    color: var(--gold);
}

.term-link.current-term {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--navy);
    font-weight: 700;
    pointer-events: none;
}

/* --- カード内バッジ（トップと流用しつつアーカイブ用調整） --- */
.news-thumb-wrap {
    position: relative;
    overflow: hidden;
}

.news-cat-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--navy);
    color: var(--gold);
    border: 1px solid var(--gold);
    padding: 4px 12px;
    font-size: .75rem;
    font-weight: 700;
    border-radius: 2px;
    z-index: 2;
}

/* --- ページネーション（親テーマスタイルを調整） --- */
.navigation.pagination {
    margin-top: 50px;
}

.nav-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    font-family: var(--font-en);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 4px;
    transition: all .3s;
    text-decoration: none;
}

.page-numbers:hover {
    border-color: var(--gold);
    color: var(--gold);
}

.page-numbers.current {
    color: var(--navy);
    pointer-events: none;
}

.page-numbers.dots {
    background: transparent;
    border-color: transparent;
    color: var(--text-muted);
    min-width: auto;
    pointer-events: none;
}

.page-numbers span {
    font-family: var(--font-sans);
    font-size: .95rem;
}

/*==========================================================*/
/* 投稿詳細ページ（single.php）                               */
/*==========================================================*/

.single-article-wrap {
    max-width: 900px;
    margin: 0 auto;
    background: transparent;
}

/* --- タイトルエリア・メタ情報 --- */
.single-article-wrap .page-ttl .jp {
    font-size: 1.8rem;
    line-height: 1.5;
}

.single-meta {
    margin-top: 15px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.single-meta-top {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.single-date {
    font-family: var(--font-en);
    font-size: 1.1rem;
    color: var(--white);
    letter-spacing: 1px;
}

.single-cats {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.single-cat-label {
    background: var(--navy-dark);
    color: var(--gold);
    border: 1px solid var(--gold);
    padding: 2px 12px;
    font-size: .8rem;
    font-weight: 700;
    border-radius: 30px;
    text-decoration: none;
    transition: all .3s;
}

.single-cat-label:hover {
    background: var(--gold);
    color: var(--navy-dark);
}

.single-tag-list {
    font-size: .85rem;
    color: var(--gold);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.single-tag-link {
    color: rgba(255, 255, 255, .7);
    text-decoration: none;
    transition: color .3s;
}

.single-tag-link:hover {
    color: var(--gold);
}

/* --- アイキャッチ画像 --- */
.single-thumbnail {
    margin: 30px 0 40px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
    border: 1px solid rgba(212, 175, 55, .3);
}

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

/* --- 本文（entry-body）のダークテーマ・高級感調整 --- */
.entry-body {
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.9;
    font-size: 1.05rem;
}

.entry-body p {
    margin-bottom: 30px;
}

.entry-body a {
    color: var(--gold);
    text-decoration: underline;
    transition: all .3s;
}

.entry-body a:hover {
    opacity: 0.7;
    text-decoration: none;
}

.entry-body img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    margin: 30px 0;
}

.entry-body ul,
.entry-body ol {
    margin-bottom: 30px;
    padding-left: 1.5em;
}

.entry-body li {
    margin-bottom: 10px;
}

/* 見出しのデザインリセット＆再構築 */
.entry-body h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--white);
    margin: 50px 0 30px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--gold);
    line-height: 1.4;
}

.entry-body h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--white);
    margin: 40px 0 20px;
    padding-left: 14px;
    border-left: 4px solid var(--gold);
    line-height: 1.4;
}

.entry-body h4 {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--gold);
    margin: 30px 0 15px;
    line-height: 1.4;
}

/* 引用 */
.entry-body blockquote {
    background: rgba(255, 255, 255, .05);
    border-left: 4px solid var(--gold);
    padding: 20px;
    margin: 30px 0;
    font-style: italic;
    color: rgba(255, 255, 255, .7);
}

/* テーブル */
.entry-body table {
    width: 100%;
    margin-bottom: 30px;
    border-collapse: collapse;
}

.entry-body th,
.entry-body td {
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, .2);
}

.entry-body th {
    background: rgba(255, 255, 255, .1);
    color: var(--white);
    font-weight: 500;
}

/* --- 戻るボタン --- */
.btn-back-list {
    display: inline-block;
    padding: 14px 40px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--gold);
    background: transparent;
    border: 1px solid var(--gold);
    border-radius: 4px;
    text-decoration: none;
    transition: all .3s;
    letter-spacing: 1px;
}

.btn-back-list:hover {
    background: var(--gold);
    color: var(--navy-dark);
    box-shadow: 0 4px 15px rgba(212, 175, 55, .4);
}

@media (max-width: 767px) {
    .single-article-wrap .page-ttl .jp {
        font-size: 1.4rem;
    }

    .entry-body {
        font-size: 1rem;
    }

    .entry-body h2 {
        font-size: 1.3rem;
    }

    .entry-body h3 {
        font-size: 1.15rem;
    }
}

/*==========================================================*/
/* 九本の不動産仲介の強み（Strengths）                        */
/*==========================================================*/

.strength_sec {
    background: var(--white);
    color: var(--navy);
    padding: 80px 0;
}

.strength-sec-heading {
    text-align: center;
    margin-bottom: 60px;
}

.strength-sec-heading .section-title {
    color: var(--navy);
    display: inline-block;
    border-bottom: 3px solid var(--gold);
    padding-bottom: 12px;
    font-size: 1.8rem;
    font-weight: 700;
}

@media(min-width:768px) {
    .strength-sec-heading .section-title {
        font-size: 2.2rem;
    }
}

/* --- ジグザグレイアウト --- */
.strength-row {
    margin-bottom: 70px;
    align-items: center;
}

.strength-row:last-of-type {
    margin-bottom: 80px;
}

@media(min-width:768px) {
    .strength-row {
        margin-bottom: 100px;
    }
}

.strength-img-wrap {
    position: relative;
    border: 2px solid var(--gold);
    padding: 8px;
    background: var(--white);
}

.strength-img-wrap img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    aspect-ratio: 4 / 3;
}

.strength-text-wrap {
    padding: 0;
    margin-top: 25px;
}

@media(min-width:768px) {
    .strength-text-wrap {
        padding: 20px 15px;
        margin-top: 0;
    }
}

@media(min-width:992px) {
    .strength-text-wrap {
        padding: 20px 40px;
    }
}

.strength-num {
    display: inline-block;
    background: var(--navy);
    color: var(--gold);
    font-weight: 700;
    font-family: var(--font-en);
    padding: 4px 16px 8px;
    border: 1px solid var(--gold);
    margin-bottom: 20px;
    letter-spacing: 1px;
    font-size: 2rem;
}

.strength-title {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 25px;
    color: var(--navy);
}

@media(min-width:768px) {
    .strength-title {
        font-size: 1.5rem;
    }
}

@media(min-width:992px) {
    .strength-title {
        font-size: 1.7rem;
    }
}

.strength-desc {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #333333;
}

/* --- アコーディオン --- */
.strength-accordion-wrap {
    max-width: 900px;
    margin: 0 auto;
}

.strength-accordion .accordion-item {
    border: 2px solid var(--navy);
    background-color: var(--white);
    border-radius: 0;
    margin-bottom: 20px;
}

.strength-accordion .accordion-button {
    background-color: var(--navy);
    color: var(--white);
    font-weight: 700;
    font-size: 1rem;
    padding: 18px 15px;
    box-shadow: none;
    border-radius: 0 !important;
}

@media(min-width:768px) {
    .strength-accordion .accordion-button {
        padding: 24px;
        font-size: 1.15rem;
    }
}

.strength-accordion .accordion-button:not(.collapsed) {
    background-color: var(--navy);
    color: var(--gold);
}

.strength-accordion .accordion-button::after {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.strength-accordion .accordion-button:not(.collapsed)::after {
    filter: invert(72%) sepia(21%) saturate(1412%) hue-rotate(5deg) brightness(97%) contrast(85%);
}

.strength-accordion .accordion-body {
    padding: 30px;
    background-color: var(--white);
    color: #333333;
    line-height: 1.8;
}

.strength-detail-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

.strength-detail-list li {
    position: relative;
    padding-left: 1.5em;
    margin-bottom: 15px;
    font-weight: 500;
}

.strength-detail-list li:last-child {
    margin-bottom: 0;
}

.strength-detail-list li::before {
    content: '■';
    color: var(--gold);
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 0.9rem;
}
/*============================
 sns-floating-links 
=============================*/
.sns-floating-links {
  position: fixed;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 15px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s, transform 0.3s, box-shadow 0.3s;
}
.sns-floating-links.is-active {
  opacity: 1;
  pointer-events: auto;
}
.sns-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: clamp(45px, 5vw, 55px);
  height: clamp(45px, 5vw, 55px);
  border-radius: 50%;
  overflow: hidden;
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.sns-link img {
  max-width: 100%;
  height: auto;
  display: block;
}
.sns-link.instagram{
    background: #fff;
}
.sns-link.instagram img {
  width: 70%;
  height: auto;
  object-fit: contain;
}
.sns-link:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
@media (min-width: 768px) {
  .sns-floating-links {
    gap: 20px;
    right: 20px;
  }
}