@charset "UTF-8";
/* =====================================================
   JFC - 解体工事 (J・F・C / 摂津市・吹田市)
   ベース: 赤×黒 × 親しみやすさ
   ===================================================== */

/* =========================
   0. ROOT VARIABLES & FONTS
   ========================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;700;900&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=Bebas+Neue&display=swap');

:root {
    --jfc-red: #d12b36;
    --jfc-red-deep: #a31822;
    --jfc-red-bright: #e63946;
    --jfc-red-soft: #fce8ea;
    --jfc-black: #161616;
    --jfc-ink: #2b2b2b;
    --jfc-paper: #fafaf7;
    --jfc-cream: #f5f1ea;
    --jfc-line: #e8e4dc;
    --jfc-gray: #6b6b6b;
    --jfc-gray-light: #b8b8b8;
    --jfc-shadow: 0 12px 40px rgba(22, 22, 22, 0.08);
    --jfc-shadow-strong: 0 20px 60px rgba(22, 22, 22, 0.15);
    --jfc-shadow-red: 0 12px 40px rgba(209, 43, 54, 0.25);

    --serif: 'Noto Serif JP', "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", serif;
    --gothic: 'Zen Kaku Gothic New', "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", sans-serif;
    --en: 'Bebas Neue', sans-serif;
}

/* =========================
   1. RESET & BASE
   ========================= */
body {
    background: var(--jfc-paper);
    color: var(--jfc-ink);
    overflow-x: hidden;
    overflow-y: auto;
    font-family: var(--gothic);
    font-size: 16px;
    font-size: clamp(15px, 0.95vw, 17px);
    letter-spacing: .04em;
    line-height: 1.85;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    counter-reset: number 0 counter-reset1 counter-reset2;
}
a, .post-content a {
    color: var(--jfc-ink);
    transition: color .3s ease;
}
.font-type2, .headline-font-type {
    font-family: var(--gothic);
    font-feature-settings: "palt";
}
p, .post-content p {
    font-size: 0.95em;
    font-weight: 400;
    line-height: 2.0;
    letter-spacing: .04em;
}
.post-content ul {
    font-size: 0.95em;
    list-style: disc;
}

/* SP用改行 */
.sp_br { display: none; }
@media only screen and (max-width: 768px) {
    .sp_br { display: inline; }
}

/* =========================
   2. パンくず & 下層サイネージ
   ========================= */
.breadcrumb-wrapper {
    background: none;
}
.breadcrumb.inner {
    font-size: 0.78em;
    height: 40px;
    line-height: 40px;
    padding: 0;
    width: 88%;
    max-width: 1200px;
    color: var(--jfc-gray);
    letter-spacing: .06em;
}
.breadcrumb a:hover { color: var(--jfc-red); }

.signage {
    height: 320px;
    background-size: cover !important;
    background-position: center !important;
    position: relative;
    z-index: 0;
    overflow: hidden;
}
.signage::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(22,22,22,0.75) 0%, rgba(163,24,34,0.55) 100%);
    z-index: 0;
}
.signage::after {
    content: '';
    position: absolute;
    left: 0; bottom: 0;
    width: 100%;
    height: 90px;
    background: linear-gradient(to top, var(--jfc-paper), transparent);
    z-index: 1;
}
.signage-content {
    position: relative;
    z-index: 2;
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 110px;
}
.signage-title.headline-font-type {
    font-family: var(--serif) !important;
    font-size: 2.6em !important;
    font-weight: 900;
    color: #fff !important;
    text-align: left;
    text-shadow: 0 4px 30px rgba(0,0,0,0.3) !important;
    letter-spacing: .08em;
    margin: 0 0 12px;
    position: relative;
    padding-left: 24px;
}
.signage-title.headline-font-type::before {
    content: '';
    position: absolute;
    left: 0; top: 12%;
    width: 6px; height: 76%;
    background: var(--jfc-red);
    border-radius: 3px;
}
.signage-title-sub {
    color: rgba(255,255,255,0.85) !important;
    font-family: var(--en);
    letter-spacing: .25em !important;
    font-size: 0.95em !important;
    padding-left: 24px;
}

@media only screen and (max-width: 1200px) {
    p, .post-content p { line-height: 1.9; }
}
@media only screen and (max-width: 768px) {
    .signage { height: 220px; }
    .signage-content { padding-top: 80px; }
    .signage-title.headline-font-type {
        font-size: 1.8em !important;
        margin-bottom: 8px;
    }
}

/* =========================
   3. HEADER & GLOBAL NAV
   ========================= */
.home .header::after {
    content: none;
}
.header-bar {
    z-index: 50;
    box-shadow: none;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(232, 228, 220, 0.6);
    transition: all .4s ease;
}
.home .header-bar {
    background: #000;
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.home .header-bar.is-scrolled {
    background: rgba(250, 250, 247, 0.95) !important;
    border-bottom: 1px solid rgba(232, 228, 220, 0.6);
}
.home .header-bar.is-scrolled .global-nav > ul > li > a { color: var(--jfc-ink); }
.home .header-bar.is-scrolled .global-nav > ul > li > a:hover { color: var(--jfc-red) !important; }
.logo-image {
    top: 12px;
    width: 75px;
    height: auto;
    left: 32px;
    position: absolute;
    transition: transform .3s ease;
}

.scrolled .header-bar.header-bar-fixed{
    background: rgba(0,0,0,0.3);
}

.logo-image:hover { transform: scale(1.04); }
img.h_logo { width: 100%; }

.global-nav {
    padding-right: 24px;
    padding-left: 24px;
    height: 88px;
    background: transparent;
    border-radius: 0;
}
.header-bar-inner {
    width: 100%;
    max-width: unset;
    z-index: 100;
    padding: 0 32px;
    box-sizing: border-box;
}
.global-nav > ul > li > a {
    font-size: 15px;
    letter-spacing: .12em;
    font-weight: 700;
    line-height: 88px;
    padding: 0 18px;
    position: relative;
    text-align: center;
    transition: color .3s ease;
    color: var(--jfc-ink);
}
.home .global-nav > ul > li > a {
    color: #fff;
}
.global-nav a:hover { color: var(--jfc-red) !important; }

/* 下線アニメーション */
.global-nav > ul > li > a::before,
.global-nav .current-menu-item > a::before {
    content: "";
    background: var(--jfc-red);
    width: 0;
    height: 2px;
    left: 50%;
    bottom: 24px;
    border-radius: 0;
    position: absolute;
    transition: all .35s cubic-bezier(.4, 0, .2, 1);
    transform: translateX(-50%);
    z-index: 1;
}
.global-nav > ul > li > a:hover::before {
    width: 70%;
    bottom: 22px;
}
.global-nav .current-menu-item > a::before {
    width: 70%;
}

.global-nav .sub-menu a {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: var(--jfc-black) !important;
    transition: background .3s ease;
}
.global-nav .sub-menu li:last-of-type a { border-radius: 0 0 8px 8px; }
.global-nav .sub-menu a:hover {
    color: #fff !important;
    background: var(--jfc-red) !important;
}
.global-nav .sub-menu a::before {
    background-position: center right;
    left: auto;
    right: 15px;
}
.global-nav .current-menu-item > a { color: var(--jfc-red); }

@media only screen and (max-width: 1200px) {
    .logo-image {
        top: 0;
        width: 75px;
        left: 0;
    }
    .header-bar { border-bottom: 0; }
    .home .header-bar {
        background: rgba(22, 22, 22, 0.55);
    }
    .global-nav {
        padding: 0;
        border-radius: 0;
        height: auto;
    }
    .global-nav-button {
        border-left: 0px;
        background: var(--jfc-red);
        border-radius: 0 0 0 12px;
    }
    .global-nav-button:before { color: #fff; }
    .global-nav-button:hover:before { color: #fff; opacity: .8; }
    .global-nav > ul > li > a {
        line-height: 60px;
        background: var(--jfc-black);
        color: #fff !important;
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    .global-nav > ul > li > a:hover { background: var(--jfc-red); }
    .global-nav > ul > li > a::before { display: none; }
}

/* =========================
   4. HERO / FIRST VIEW (jfc-hero)
   ========================= */
.top-slider-wrapper.jfc-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 680px;
    max-height: 980px;
    overflow: hidden;
    background: #0a0a0a;
    isolation: isolate;
}

/* --- メディアレイヤー（動画 + 静止画フォールバック） --- */
.jfc-hero__media {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
}
.jfc-hero__video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover; /* PC: 全画面を埋める */
    transform: translate(-50%, -50%);
    z-index: 2;
    background: #0a0a0a;
    animation: heroBgFadeIn 1.6s ease-out both;
}

/* --- 背景画像レイヤー（動画ロード前 / 動画なし時のフォールバック） --- */
.jfc-hero__bg {
    position: absolute;
    inset: 0;
    background-color: #1a1a1a;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
    transform: scale(1.08);
    animation: heroBgZoom 18s ease-out forwards, heroBgFadeIn 1.6s ease-out both;
}
/* 背景未登録時のフォールバック：抽象的なグラデーション */
.jfc-hero__bg:not([style*="background-image"]) {
    background:
        radial-gradient(ellipse at 30% 20%, rgba(209,43,54,0.18) 0%, transparent 55%),
        radial-gradient(ellipse at 75% 75%, rgba(163,24,34,0.22) 0%, transparent 60%),
        linear-gradient(135deg, #0d0d0d 0%, #1c1010 50%, #0a0a0a 100%);
}
.jfc-hero__bg:not([style*="background-image"])::before {
    content: '';
    position: absolute;
    top: 12%; right: -8%;
    width: 60%; height: 76%;
    background:
        repeating-linear-gradient(45deg,
        rgba(209,43,54,0.04) 0px,
        rgba(209,43,54,0.04) 2px,
        transparent 2px,
        transparent 14px);
    transform: skewX(-12deg);
    opacity: .9;
}

/* --- オーバーレイ：ドラマチックな赤黒グラデーション --- */
.jfc-hero__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(110deg,
        rgba(10,10,10,0.92) 0%,
        rgba(10,10,10,0.78) 30%,
        rgba(22,22,22,0.5) 55%,
        rgba(163,24,34,0.45) 100%),
        linear-gradient(to top, rgba(10,10,10,0.9) 0%, transparent 35%);
    z-index: 2;
    pointer-events: none;
}

/* --- グレイン（フィルム感） --- */
.jfc-hero__grain {
    position: absolute;
    inset: -50%;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.45'/></svg>");
    background-size: 200px;
    opacity: .12;
    mix-blend-mode: overlay;
    pointer-events: none;
    z-index: 3;
    animation: grainShift 3s steps(6) infinite;
}

/* --- 装飾：右上の赤いライン --- */
.jfc-hero__deco-line {
    position: absolute;
    z-index: 4;
    pointer-events: none;
}
.jfc-hero__deco-line--top {
    top: 0;
    right: 9%;
    width: 1px;
    height: 32%;
    background: linear-gradient(to bottom, var(--jfc-red) 0%, var(--jfc-red) 60%, transparent 100%);
    transform-origin: top;
    animation: heroLineDrop 1.4s cubic-bezier(.2, .8, .2, 1) 1.1s both;
}
.jfc-hero__deco-line--top::before {
    content: '';
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 8px; height: 8px;
    background: var(--jfc-red);
    border-radius: 50%;
    box-shadow: 0 0 16px var(--jfc-red);
}

/* --- 装飾：左下ドット --- */
.jfc-hero__deco-dots {
    position: absolute;
    bottom: 10%;
    left: 4%;
    width: 90px;
    height: 90px;
    z-index: 4;
    pointer-events: none;
    background-image: radial-gradient(circle, rgba(255,255,255,0.18) 1.2px, transparent 1.2px);
    background-size: 14px 14px;
    opacity: 0;
    animation: heroFadeIn 1s ease-out 1.4s both;
}

/* --- 縦に流れる英字（左端） --- */
.jfc-hero__vertical {
    position: absolute;
    left: 36px;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    writing-mode: vertical-rl;
    z-index: 5;
    font-family: var(--en);
    font-size: 11px;
    letter-spacing: .55em;
    color: rgba(255,255,255,0.45);
    pointer-events: none;
    animation: heroFadeIn 1s ease-out 1s both;
}
.jfc-hero__vertical span { display: inline-block; }
.jfc-hero__vertical::before {
    content: '';
    display: block;
    width: 1px;
    height: 56px;
    background: rgba(255,255,255,0.4);
    margin: 0 auto 18px;
}

/* --- メインコンテンツ --- */
.jfc-hero__inner {
    position: absolute;
    left: 8%;
    top: 50%;
    transform: translateY(-50%);
    max-width: 760px;
    width: 88%;
    z-index: 10;
    color: #fff;
}

/* タグ */
.jfc-hero__tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 18px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 999px;
    font-family: var(--gothic);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .12em;
    color: rgba(255,255,255,0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    margin-bottom: 32px;
    opacity: 0;
    transform: translateY(20px);
    animation: heroSlideUp .9s cubic-bezier(.2, .8, .2, 1) .3s forwards;
}
.jfc-hero__tag-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--jfc-red);
    box-shadow: 0 0 0 0 rgba(209,43,54,0.6);
    animation: heroPulse 2s infinite;
}

/* メインタイトル */
.jfc-hero__title {
    font-family: var(--serif);
    font-weight: 900;
    font-size: clamp(36px, 6.4vw, 72px);
    line-height: 1.18;
    letter-spacing: .02em;
    color: #fff;
    margin: 0 0 32px;
    text-shadow: 0 4px 40px rgba(0,0,0,0.45);
}
/* PC/SPの出し分け */
.jfc-hero__title-pc { display: block; }
.jfc-hero__title-sp { display: none; }
.jfc-hero__title-line {
    display: block;
    overflow: hidden;
    line-height: 1.18;
}
.jfc-hero__title-line > span,
.jfc-hero__title-line > em {
    display: inline-block;
    transform: translateY(110%);
    opacity: 0;
}
.jfc-hero__title-line:nth-of-type(1) > span {
    animation: heroTitleReveal 1.1s cubic-bezier(.2, .8, .2, 1) .5s forwards;
}
.jfc-hero__title-line:nth-of-type(2) > span:nth-of-type(1) {
    animation: heroTitleReveal 1.1s cubic-bezier(.2, .8, .2, 1) .7s forwards;
}
.jfc-hero__title-line:nth-of-type(2) > em {
    animation: heroTitleReveal 1.1s cubic-bezier(.2, .8, .2, 1) .85s forwards;
}
.jfc-hero__title-line:nth-of-type(2) > span:nth-of-type(2) {
    animation: heroTitleReveal 1.1s cubic-bezier(.2, .8, .2, 1) 1s forwards;
}
.jfc-hero__title-accent {
    color: var(--jfc-red);
    font-style: normal;
    position: relative;
    margin: 0 .02em;
}
.jfc-hero__title-accent::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    bottom: 6%;
    height: 18%;
    background: rgba(209,43,54,0.22);
    z-index: -1;
    transform: scaleX(0);
    transform-origin: left;
    animation: heroAccentLine .8s cubic-bezier(.2, .8, .2, 1) 1.5s forwards;
}

/* リード文 */
.jfc-hero__lead {
    font-family: var(--gothic);
    font-size: clamp(13px, 1.05vw, 16px);
    line-height: 2.1;
    letter-spacing: .08em;
    color: rgba(255,255,255,0.88);
    max-width: 560px;
    margin: 0 0 44px;
    text-shadow: 0 2px 18px rgba(0,0,0,0.35);
    opacity: 0;
    transform: translateY(20px);
    animation: heroSlideUp .9s cubic-bezier(.2, .8, .2, 1) 1.4s forwards;
}

/* CTAボタン群 */
.jfc-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: stretch;
    margin-bottom: 40px;
    opacity: 0;
    transform: translateY(20px);
    animation: heroSlideUp .9s cubic-bezier(.2, .8, .2, 1) 1.6s forwards;
}
.jfc-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 18px 30px;
    border-radius: 999px;
    font-family: var(--gothic);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-decoration: none;
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    position: relative;
    overflow: hidden;
}
.jfc-hero__btn--primary {
    background: var(--jfc-red);
    color: #fff !important;
    box-shadow: 0 12px 36px rgba(209,43,54,0.4);
}
.jfc-hero__btn--primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--jfc-red-bright) 0%, var(--jfc-red) 100%);
    z-index: 0;
    transition: opacity .4s ease;
}
.jfc-hero__btn--primary > * { position: relative; z-index: 1; }
.jfc-hero__btn--primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 44px rgba(209,43,54,0.55);
}
.jfc-hero__btn--primary em {
    font-style: normal;
    font-family: var(--en);
    font-size: 18px;
    transition: transform .3s ease;
}
.jfc-hero__btn--primary:hover em {
    transform: translateX(6px);
}

.jfc-hero__btn--ghost {
    background: rgba(255,255,255,0.06);
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.22);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 14px 26px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 14px;
}
.jfc-hero__btn--ghost:hover {
    background: rgba(255,255,255,0.12);
    border-color: var(--jfc-red);
    transform: translateY(-3px);
}
.jfc-hero__btn--ghost > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
}
.jfc-hero__btn-icon {
    font-style: normal;
    font-size: 22px;
    color: var(--jfc-red);
    line-height: 1;
}
.jfc-hero__btn-tel {
    font-family: var(--en);
    font-size: 24px;
    letter-spacing: .04em;
    line-height: 1;
    color: #fff;
}
.jfc-hero__btn--ghost small {
    display: block;
    font-family: var(--gothic);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .1em;
    color: rgba(255,255,255,0.6);
    margin-top: 4px;
    line-height: 1.4;
}

/* サービスバッジ */
.jfc-hero__services {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    list-style: none;
    margin: 0;
    padding: 0;
    opacity: 0;
    transform: translateY(20px);
    animation: heroSlideUp .9s cubic-bezier(.2, .8, .2, 1) 1.8s forwards;
}
.jfc-hero__services li {
    font-family: var(--gothic);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    padding: 6px 14px;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 4px;
    color: rgba(255,255,255,0.78);
    background: rgba(255,255,255,0.03);
    backdrop-filter: blur(6px);
    transition: all .3s ease;
}
.jfc-hero__services li:hover {
    border-color: var(--jfc-red);
    color: #fff;
    background: rgba(209,43,54,0.18);
}

/* 右下：年数バッジ */
.jfc-hero__badge {
    position: absolute;
    right: 7%;
    bottom: 12%;
    z-index: 8;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 28px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 12px;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    opacity: 0;
    transform: translateY(20px);
    animation: heroSlideUp .9s cubic-bezier(.2, .8, .2, 1) 2s forwards;
}
.jfc-hero__badge-num {
    font-family: var(--en);
    font-size: 64px;
    line-height: .9;
    color: #fff;
    letter-spacing: -.02em;
    position: relative;
}
.jfc-hero__badge-num small {
    font-size: 26px;
    color: var(--jfc-red);
    margin-left: 2px;
    vertical-align: top;
}
.jfc-hero__badge-label {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    border-left: 1px solid rgba(255,255,255,0.22);
    padding-left: 18px;
}
.jfc-hero__badge-label small {
    font-family: var(--gothic);
    font-size: 11px;
    color: rgba(255,255,255,0.7);
    letter-spacing: .15em;
    margin-bottom: 4px;
}
.jfc-hero__badge-label span {
    font-family: var(--en);
    font-size: 14px;
    color: var(--jfc-red);
    letter-spacing: .25em;
}

/* スクロール誘導 */
.jfc-hero__scroll {
    position: absolute;
    right: 7%;
    bottom: 36px;
    z-index: 8;
    display: none; /* PCではbadgeと併存しないので非表示 */
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: rgba(255,255,255,0.7) !important;
    text-decoration: none;
}
.jfc-hero__scroll-text {
    font-family: var(--en);
    font-size: 11px;
    letter-spacing: .35em;
    writing-mode: vertical-rl;
}
.jfc-hero__scroll-line {
    display: block;
    width: 1px;
    height: 60px;
    background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.6), transparent);
    background-size: 100% 200%;
    animation: scrollFlow 2s ease-in-out infinite;
}

/* SP用スクロールヒント（PCでは非表示） */
.jfc-hero__scroll-sp {
    display: none;
}

/* SP用：FV下に表示する情報セクション（PCでは非表示） */
.jfc-hero-info {
    display: none;
}

/* --- 動画背景バリアント（既存テーマ仕様の維持） --- */
.header-video, .header-youtube {
    width: 100%;
    height: 100%;
    background-size: cover !important;
    background-position: center !important;
    position: relative;
}
.header-video-overlay, .header-youtube-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(125deg, rgba(22,22,22,0.7) 0%, rgba(163,24,34,0.5) 100%);
    z-index: 2;
}
/* 旧スライダー要素は使わないため非表示 */
.top-slider, .top-slider-item, .top-slider-content, .top-slider-nav { display: none !important; }

/* --- アニメーションキーフレーム --- */
@keyframes heroBgZoom {
    0%   { transform: scale(1.08); }
    100% { transform: scale(1.0);  }
}
@keyframes heroBgFadeIn {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}
@keyframes heroFadeIn {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}
@keyframes heroSlideUp {
    0%   { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0);    }
}
@keyframes heroTitleReveal {
    0%   { opacity: 0; transform: translateY(110%); }
    100% { opacity: 1; transform: translateY(0);    }
}
@keyframes heroLineDrop {
    0%   { transform: scaleY(0); }
    100% { transform: scaleY(1); }
}
@keyframes heroAccentLine {
    0%   { transform: scaleX(0); }
    100% { transform: scaleX(1); }
}
@keyframes heroPulse {
    0%   { box-shadow: 0 0 0 0 rgba(209,43,54,0.6); }
    70%  { box-shadow: 0 0 0 12px rgba(209,43,54,0); }
    100% { box-shadow: 0 0 0 0 rgba(209,43,54,0); }
}
@keyframes grainShift {
    0%   { transform: translate(0, 0); }
    20%  { transform: translate(-2%, -3%); }
    40%  { transform: translate(2%, 1%); }
    60%  { transform: translate(-1%, 2%); }
    80%  { transform: translate(3%, -1%); }
    100% { transform: translate(0, 0); }
}
@keyframes scrollFlow {
    0%, 100% { background-position: 0 -100%; }
    50%      { background-position: 0 100%;  }
}

/* --- レスポンシブ --- */
@media only screen and (max-width: 1200px) {
    .jfc-hero__inner { left: 6%; max-width: 640px; }
    .jfc-hero__badge { right: 5%; bottom: 8%; padding: 18px 22px; }
    .jfc-hero__badge-num { font-size: 52px; }
    .jfc-hero__vertical { left: 16px; font-size: 10px; }
}
@media only screen and (max-width: 992px) {
    .jfc-hero__badge { display: none; }
    .jfc-hero__deco-dots { display: none; }
}

/* ===========================
   SP: 横長レイアウト + 情報分離
   =========================== */
@media only screen and (max-width: 768px) {

    /* FVは横長16:9 → 動画の左右が切れない */
    .top-slider-wrapper.jfc-hero {
        height: auto;
        min-height: 0;
        max-height: none;
        aspect-ratio: 16 / 9;
        padding: 0;
        margin-top: 60px; /* ヘッダー分の余白 */
    }

    /* 動画は左右を切らずに見せる：containで全体表示 */
    .jfc-hero__video {
        object-fit: contain;
        background: #0a0a0a;
        width: 100%;
        height: 100%;
    }
    /* 背景フォールバック画像も同様 */
    .jfc-hero__bg {
        background-size: cover;
        background-color: #0a0a0a;
        animation: heroBgFadeIn 1.6s ease-out both; /* SPではズームをやめる */
        transform: none;
    }

    /* オーバーレイは弱めに（動画が見えるよう薄く） */
    .jfc-hero__overlay {
        background:
            linear-gradient(to top, rgba(10,10,10,0.7) 0%, rgba(10,10,10,0.0) 35%),
            linear-gradient(to bottom, rgba(10,10,10,0.5) 0%, rgba(10,10,10,0.0) 25%);
    }
    .jfc-hero__grain { opacity: .06; }

    /* PC専用装飾は全て非表示 */
    .jfc-hero__deco-line,
    .jfc-hero__deco-dots,
    .jfc-hero__vertical,
    .jfc-hero__badge,
    .jfc-hero__tag,
    .jfc-hero__lead,
    .jfc-hero__cta,
    .jfc-hero__services { display: none !important; }

    /* タイトルは下部に配置・短縮版を表示 */
    .jfc-hero__inner {
        position: absolute;
        top: auto;
        bottom: 16px;
        left: 16px;
        right: 16px;
        transform: none;
        max-width: none;
        width: auto;
        padding: 0;
    }
    .jfc-hero__title {
        margin: 0;
        font-size: 22px;
        line-height: 1.4;
        text-shadow: 0 2px 18px rgba(0,0,0,0.7);
    }
    .jfc-hero__title-pc { display: none; }
    .jfc-hero__title-sp { display: block; }
    .jfc-hero__title-sp .jfc-hero__title-line {
        display: block;
        line-height: 1.4;
    }
    .jfc-hero__title-sp .jfc-hero__title-line span,
    .jfc-hero__title-sp .jfc-hero__title-line em {
        transform: none;
        opacity: 1;
        animation: heroSlideUp 1s cubic-bezier(.2, .8, .2, 1) .8s both;
    }
    .jfc-hero__title-sp .jfc-hero__title-accent::after {
        bottom: 4%;
        height: 22%;
        animation: heroAccentLine .8s cubic-bezier(.2, .8, .2, 1) 1.6s forwards;
    }

    /* SP用スクロールヒント（小さな↓を中央下に） */
    .jfc-hero__scroll-sp {
        display: flex;
        position: absolute;
        bottom: 8px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 9;
        width: 28px;
        height: 28px;
        align-items: center;
        justify-content: center;
        opacity: .8;
        animation: scrollBounce 1.6s ease-in-out infinite;
    }
    .jfc-hero__scroll-sp span {
        display: block;
        width: 8px;
        height: 8px;
        border-right: 1.5px solid #fff;
        border-bottom: 1.5px solid #fff;
        transform: rotate(45deg);
    }

    /* === FV下の情報セクション（SPで表示） === */
    .jfc-hero-info {
        display: block;
        background: var(--jfc-black);
        color: #fff;
        padding: 36px 24px 44px;
        position: relative;
        overflow: hidden;
    }
    /* 上部の赤いアクセントライン */
    .jfc-hero-info::before {
        content: '';
        position: absolute;
        top: 0; left: 24px;
        width: 40px; height: 3px;
        background: var(--jfc-red);
    }
    /* 背景の薄い赤グロー */
    .jfc-hero-info::after {
        content: '';
        position: absolute;
        bottom: -100px; right: -100px;
        width: 280px; height: 280px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(209,43,54,0.18) 0%, transparent 70%);
        filter: blur(20px);
        z-index: 0;
    }
    .jfc-hero-info__inner {
        position: relative;
        z-index: 1;
    }
    .jfc-hero-info__tag {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-family: var(--gothic);
        font-size: 11px;
        font-weight: 600;
        letter-spacing: .1em;
        color: rgba(255,255,255,0.85);
        margin-bottom: 16px;
        padding: 6px 14px;
        background: rgba(255,255,255,0.06);
        border: 1px solid rgba(255,255,255,0.18);
        border-radius: 999px;
    }
    .jfc-hero-info__tag-dot {
        width: 6px; height: 6px;
        border-radius: 50%;
        background: var(--jfc-red);
        animation: heroPulse 2s infinite;
    }
    .jfc-hero-info__lead {
        font-family: var(--gothic);
        font-size: 13px;
        line-height: 2;
        letter-spacing: .04em;
        color: rgba(255,255,255,0.88);
        margin: 0 0 24px;
    }
    .jfc-hero-info__cta {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 24px;
    }
    .jfc-hero-info__cta .jfc-hero__btn {
        justify-content: center;
        padding: 16px 22px;
        width: 100%;
        box-sizing: border-box;
    }
    .jfc-hero-info__cta .jfc-hero__btn--ghost {
        padding: 12px 22px;
        gap: 12px;
    }
    .jfc-hero-info__services {
        display: flex;
        flex-wrap: wrap;
        gap: 6px 8px;
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .jfc-hero-info__services li {
        font-family: var(--gothic);
        font-size: 10px;
        font-weight: 600;
        letter-spacing: .1em;
        padding: 5px 12px;
        border: 1px solid rgba(255,255,255,0.22);
        border-radius: 4px;
        color: rgba(255,255,255,0.78);
        background: rgba(255,255,255,0.03);
    }
}

/* スクロールヒント用バウンスアニメ */
@keyframes scrollBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); opacity: .8; }
    50%      { transform: translateX(-50%) translateY(6px); opacity: .4; }
}

/* =========================
   5. INTRO セクション (front_original01)
   ========================= */
.front_original01 {
    background: var(--jfc-paper);
    padding: 120px 0 100px;
    position: relative;
    overflow: hidden;
}
/* 背景アクセント：薄い赤の円 */
.front_original01::before {
    content: '';
    position: absolute;
    top: -160px;
    right: -200px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.06) 0%, transparent 70%);
    z-index: 0;
}
/* 背景アクセント：英字 */
.front_original01::after {
    content: 'JFC';
    position: absolute;
    top: 80px;
    right: -40px;
    font-family: var(--en);
    font-size: clamp(180px, 22vw, 360px);
    color: rgba(22, 22, 22, 0.03);
    line-height: 1;
    letter-spacing: -0.02em;
    z-index: 0;
    pointer-events: none;
}

.front-original01-inner {
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 80px;
    align-items: flex-start;
    position: relative;
    z-index: 1;
}
.front-original01__title {
    flex: 0 0 38%;
    position: relative;
}
/* タイトル左の縦バー */
.front-original01__title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 4px;
    height: 64px;
    background: var(--jfc-red);
    border-radius: 2px;
}
.front-original01__title h2 {
    font-family: var(--serif);
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .04em;
    color: var(--jfc-black);
    padding-left: 24px;
    margin: 0;
}
.front-original01__title h2 span {
    display: inline-block;
    color: var(--jfc-red);
    position: relative;
    margin-top: 8px;
    font-size: 1.2em;
    letter-spacing: .06em;
}
.front-original01__title h2 span::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 8px;
    background: rgba(209, 43, 54, 0.12);
    z-index: -1;
}

.front-original01__text {
    flex: 1;
    padding-top: 12px;
}
.front-original01__text p {
    font-size: 0.96em;
    line-height: 2.1;
    margin-bottom: 22px;
    color: var(--jfc-ink);
}
.front-original01__text p:last-of-type {
    margin-bottom: 0;
}

/* =========================
   6. 3カラム CARDS (content02)
   ========================= */
.content02 {
    padding: 100px 0;
    background: linear-gradient(180deg, var(--jfc-paper) 0%, var(--jfc-cream) 100%);
    position: relative;
    overflow: hidden;
}
.content02::after {
    content: 'WHAT WE DO';
    position: absolute;
    top: 60px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
}
.content02::before {
    content: 'サービス';
    position: absolute;
    top: 88px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--serif);
    font-size: 36px;
    font-weight: 900;
    color: var(--jfc-black);
    letter-spacing: .08em;
}
.content02-inner {
    width: 95%;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 100px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
}
.content02-item {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--jfc-shadow);
    transition: all .5s cubic-bezier(.2, .8, .2, 1);
    position: relative;
}
.content02-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 0;
    height: 4px;
    background: var(--jfc-red);
    transition: width .5s cubic-bezier(.2, .8, .2, 1);
    z-index: 3;
}
.content02-item:hover {
    transform: translateY(-8px);
    box-shadow: var(--jfc-shadow-strong);
}
.content02-item:hover::before {
    width: 100%;
}
.content02-img {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 11;
}
.content02-img a {
    display: block;
    width: 100%;
    height: 100%;
}
.content02-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}
.content02-item:hover .content02-img img {
    transform: scale(1.08);
}
.content02-img-inner {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: 24px;
}
h2.content02-img_title {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 900;
    color: #fff;
    letter-spacing: .08em;
    margin: 0;
    text-shadow: 0 2px 16px rgba(0,0,0,0.4);
}
.content02-img .mask {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(22,22,22,0.85) 0%, rgba(22,22,22,0.1) 60%, transparent 100%);
    opacity: 1;
    transition: all .5s ease;
}
.content02-img:hover .mask {
    background: linear-gradient(to top, rgba(163,24,34,0.85) 0%, rgba(22,22,22,0.3) 60%, transparent 100%);
}
.content02-text__box {
    padding: 28px 28px 32px;
}
.content02-title {
    font-family: var(--serif);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .04em;
    color: var(--jfc-black);
    margin-bottom: 14px;
    min-height: 58px;
}
.content02-text {
    font-size: 0.88em !important;
    line-height: 1.95 !important;
    color: var(--jfc-gray);
    margin-bottom: 24px;
}
.content02-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--jfc-black) !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
    padding: 0;
    position: relative;
    background: none;
    border: none;
    transition: color .3s ease;
}
.content02-button span {
    position: relative;
    padding-bottom: 4px;
}
.content02-button span::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: var(--jfc-black);
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
}
.content02-button::after {
    content: '→';
    font-family: var(--en);
    font-size: 18px;
    transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}
.content02-button::before { display: none; }
.content02-button:hover {
    color: var(--jfc-red) !important;
}
.content02-button:hover span::after {
    background: var(--jfc-red);
}
.content02-button:hover::after {
    transform: translateX(8px);
    color: var(--jfc-red);
}

/* =========================
   7. メッセージ大セクション (front_original02)
   ========================= */
.front_original02 {
    background: var(--jfc-black);
    color: #fff;
    padding: 130px 0;
    position: relative;
    overflow: hidden;
}
.front_original02::before {
    content: '';
    position: absolute;
    top: -100px;
    left: -100px;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.18) 0%, transparent 70%);
    filter: blur(20px);
    z-index: 0;
}
.front_original02::after {
    content: '';
    position: absolute;
    bottom: -120px;
    right: -120px;
    width: 480px;
    height: 480px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.12) 0%, transparent 70%);
    filter: blur(30px);
    z-index: 0;
}
.front-original02-inner {
    width: 88%;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
}
.front-original02__title {
    margin-bottom: 48px;
    position: relative;
}
.front-original02__title::before {
    content: 'OUR PHILOSOPHY';
    display: block;
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin-bottom: 18px;
}
.front-original02__title h2 {
    font-family: var(--serif);
    font-size: clamp(24px, 2.6vw, 36px);
    font-weight: 900;
    line-height: 1.7;
    letter-spacing: .06em;
    color: #fff;
    margin: 0;
}
.front-original02__text p {
    color: rgba(255,255,255,0.82);
    font-size: 0.95em;
    line-height: 2.2;
    letter-spacing: .04em;
    margin-bottom: 24px;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
.front-original02__text p:last-of-type { margin-bottom: 0; }

/* =========================
   8. 3つの強み (front_original03 / third-box)
   ========================= */
.front_original03 {
    background: var(--jfc-paper);
    padding: 130px 0 110px;
    position: relative;
    overflow: hidden;
}
.front_original03::before {
    content: 'OUR STRENGTH';
    position: absolute;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
}
.front_original03::after {
    content: '選ばれる理由';
    position: absolute;
    top: 98px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--serif);
    font-size: 36px;
    font-weight: 900;
    color: var(--jfc-black);
    letter-spacing: .08em;
}
.front-original03-inner {
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 130px;
}
.third-box {
    margin-bottom: 100px;
    counter-increment: counter-reset1;
    position: relative;
}
.third-box:last-of-type { margin-bottom: 0; }

.third-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items: center;
}
.third-box:nth-of-type(even) .third-inner {
    direction: rtl;
}
.third-box:nth-of-type(even) .third-inner > * {
    direction: ltr;
}

.front-third-text {
    position: relative;
    padding: 0 16px;
}
.front-third-text::before {
    content: '0' counter(counter-reset1);
    display: block;
    font-family: var(--en);
    font-size: 96px;
    font-weight: 400;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1px var(--jfc-red);
    text-stroke: 1px var(--jfc-red);
    letter-spacing: .02em;
    margin-bottom: 18px;
    opacity: .85;
}
.third_title {
    font-family: var(--serif);
    font-size: clamp(22px, 1.8vw, 28px);
    font-weight: 900;
    line-height: 1.55;
    letter-spacing: .04em;
    color: var(--jfc-black);
    margin: 0 0 22px;
    position: relative;
    padding-left: 0;
}
.third_title::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin-top: 18px;
}
.front-third-text p {
    font-size: 0.95em;
    line-height: 2.1;
    color: var(--jfc-ink);
    margin: 0;
}

.front-third-img {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: var(--jfc-shadow);
}
.front-third-img::before {
    content: '';
    position: absolute;
    top: 16px;
    left: 16px;
    right: 16px;
    bottom: 16px;
    border: 1px solid rgba(255,255,255,0.4);
    z-index: 2;
    pointer-events: none;
    transition: all .4s ease;
}
.front-third-img:hover::before {
    inset: 24px;
}
.front-third-img img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 1s cubic-bezier(.2, .8, .2, 1);
}
.front-third-img:hover img { transform: scale(1.05); }

.third-box:nth-of-type(odd) .front-third-img img { /* keep */ }
.third-box:nth-of-type(even) .front-third-img img { /* keep */ }

/* =========================
   9. お知らせ (front_topics)
   ========================= */
.front_topics {
    background: var(--jfc-cream);
    padding: 110px 0 120px;
    position: relative;
    overflow: hidden;
}
.front_topics::before {
    content: 'NEWS & TOPICS';
    position: absolute;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
}
.front-topics-inner {
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 80px;
    text-align: center;
}
h2.front_topics_title {
    display: block;
    font-family: var(--serif);
    font-size: 36px;
    font-weight: 900;
    color: var(--jfc-black);
    letter-spacing: .08em;
    margin: 0 0 60px;
    text-align: center;
}
.headline-primary.headline-font-type {
    display: none; /* オリジナルが見出しを二重で出すため非表示 */
}

#index-news .top-news,
#index-blog .top-blog {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-bottom: 50px;
    text-align: left;
}

#infinitescroll .article03 {
    margin: 0 30px 30px 0;
    width: calc((100% - 90px) / 4);
}

#infinitescroll .article03:nth-of-type(4n) {
    margin-right: 0;
}

.article02, .article03 {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 4px 20px rgba(22,22,22,0.05);
}
.article02:hover, .article03:hover {
    transform: translateY(-6px);
    box-shadow: var(--jfc-shadow);
}
.article02-thumbnail, .article03-thumbnail {
    overflow: hidden;
    aspect-ratio: 16/14;
}
.article02-thumbnail img, .article03-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
}
.article02:hover .article02-thumbnail img,
.article03:hover .article03-thumbnail img {
    transform: scale(1.06);
}
.article02-content, .article03-content {
    padding: 22px 24px 26px;
}
.article02-date, .article03-date {
    font-family: var(--en);
    font-size: 14px;
    letter-spacing: .15em;
    color: var(--jfc-red);
    display: block;
    margin-bottom: 8px;
}
.article02-title, .article03-title {
    font-family: var(--serif);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: .03em;
    margin-bottom: 8px;
}
.article02-title a, .article03-title {
    color: var(--jfc-black);
}
.article02-text {
    font-size: 0.85em !important;
    line-height: 1.85 !important;
    color: var(--jfc-gray);
    margin: 0;
}
.article03-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.78em;
}
.article03-category-item {
    background: var(--jfc-red-soft);
    color: var(--jfc-red);
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 0.95em;
    font-weight: 600;
}

/* もっと見るボタン */
.front_topics .button {
    text-align: center;
    margin-top: 40px;
}
.front_topics .button a {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: var(--jfc-black);
    color: #fff !important;
    padding: 16px 42px;
    border-radius: 999px;
    font-family: var(--gothic);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .15em;
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 8px 24px rgba(22,22,22,0.18);
    position: relative;
    overflow: hidden;
}
.front_topics .button a::after {
    content: '→';
    font-family: var(--en);
    transition: transform .3s ease;
}
.front_topics .button a:hover {
    background: var(--jfc-red);
    box-shadow: var(--jfc-shadow-red);
    transform: translateY(-2px);
}
.front_topics .button a:hover::after {
    transform: translateX(4px);
}

/* =========================
   10. FOOTER
   ========================= */
.footer {
    background: var(--jfc-black);
    color: rgba(255,255,255,0.85);
    margin-top: 0;
}
.footer-gallery {
    display: none; /* JFC構築時はギャラリー非利用 */
}
.footer_contact_sec {
    background: var(--jfc-black);
    padding: 100px 0 80px;
    position: relative;
    overflow: hidden;
}
.footer_contact_sec::before {
    content: 'CONTACT';
    position: absolute;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
}
.footer_contact_sec::after {
    content: '';
    position: absolute;
    bottom: -200px;
    right: -200px;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.12) 0%, transparent 70%);
    filter: blur(30px);
    z-index: 0;
}
.footer_contact_inner {
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 80px;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 80px;
    align-items: flex-start;
    position: relative;
    z-index: 1;
}
.footer_contact_bg {
    color: #fff;
}
.footer_menu_bg {
    border-left: 1px solid rgba(255,255,255,0.1);
    padding-left: 60px;
}
h2.footer-logo-name {
    font-family: var(--serif);
    font-size: 42px;
    font-weight: 900;
    letter-spacing: .14em;
    color: #fff;
    margin: 0 0 32px;
    position: relative;
}
h2.footer-logo-name::after {
    content: '';
    display: block;
    width: 40px;
    height: 3px;
    background: var(--jfc-red);
    margin-top: 14px;
}
dl.address_body {
    display: flex;
    gap: 16px;
    margin-bottom: 14px;
    align-items: flex-start;
}
dl.address_body:last-of-type { margin-bottom: 22px; }
dt.address_title {
    color: var(--jfc-red);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .15em;
    flex: 0 0 80px;
    padding-top: 4px;
}
dd.address_text {
    font-size: 14px;
    line-height: 1.7;
    color: rgba(255,255,255,0.85);
    margin: 0;
    flex: 1;
}
address.footer_tel {
    font-style: normal;
    font-family: var(--en);
    font-size: 36px;
    letter-spacing: .04em;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 18px 0 6px;
    padding: 14px 0;
    border-top: 1px solid rgba(255,255,255,0.1);
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
address.footer_tel::before {
    content: '☎';
    font-family: var(--gothic);
    font-size: 22px;
    color: var(--jfc-red);
}
address.footer_tel a {
    color: #fff;
    text-decoration: none;
}
span.footer_tel_sub2 {
    font-family: var(--gothic);
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    letter-spacing: .12em;
    margin-left: 8px;
}
.footer-con-caution {
    font-size: 11px !important;
    color: rgba(255,255,255,0.5);
    letter-spacing: .08em;
    margin: 8px 0 24px;
    line-height: 1.6 !important;
}

ul.sns__links {
    display: flex;
    gap: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
}
li.sns__links-item { margin: 0; }
li.sns__links-item a.footer_sns {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--jfc-red);
    color: #fff !important;
    padding: 14px 28px;
    border-radius: 999px;
    font-family: var(--gothic);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .15em;
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 8px 24px rgba(209,43,54,0.3);
}
li.sns__links-item a.footer_sns::before {
    content: '✉';
    font-size: 14px;
}
li.sns__links-item a.footer_sns:hover {
    background: #fff;
    color: var(--jfc-red) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(255,255,255,0.2);
}

/* フッターメニュー */
.footer-content-list {
    display: flex;
    gap: 40px;
}
ul.footer-content-list-outer {
    list-style: none;
    padding: 0;
    margin: 0;
    flex: 1;
}
ul.footer-content-list-outer:last-child { /* keep */ }
ul.footer-content-list-outer li {
    margin-bottom: 16px;
    padding-left: 16px;
    position: relative;
    transition: padding .3s ease;
}
ul.footer-content-list-outer li:last-of-type { margin-bottom: 0; }
ul.footer-content-list-outer li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 1px;
    background: var(--jfc-red);
    transition: width .3s ease;
}
ul.footer-content-list-outer li:hover::before { width: 12px; }
ul.footer-content-list-outer li:hover { padding-left: 22px; }
ul.footer-content-list-outer li a {
    color: rgba(255,255,255,0.85);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .08em;
    transition: color .3s ease;
}
ul.footer-content-list-outer li a:hover { color: var(--jfc-red); }
.footer_but { color: rgba(255,255,255,0.85) !important; }

/* SNSナビ・コピーライト */
.footer-bar01 {
    background: #0c0c0c;
    padding: 26px 0;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.footer-bar01-inner {
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.social-nav {
    display: flex;
    gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.social-nav-item a {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .3s ease;
}
.social-nav-item a:hover {
    background: var(--jfc-red);
    border-color: var(--jfc-red);
}
.copyright {
    font-family: var(--en);
    font-size: 11px;
    letter-spacing: .25em;
    color: rgba(255,255,255,0.5);
    margin: 0;
}
.pagetop a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,0.7) !important;
    font-family: var(--en);
    font-size: 12px;
    letter-spacing: .25em;
    transition: color .3s ease;
}
.pagetop a:hover { color: var(--jfc-red) !important; }
.pagetop a::before { content: '↑'; }

/* =========================
   11. アニメーション (fade01 / fade02)
   既存テーマは「fade01」要素にスクロール時「fade02」クラスを追加する仕組み。
   それに加え、JSが効かないケースでもページ表示時にフェードインするフォールバック。
   ========================= */
.fade01 {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(.2, .8, .2, 1), transform 1s cubic-bezier(.2, .8, .2, 1);
    will-change: opacity, transform;
}
.fade01.fade02,
.fade01.active,
.fade01.is-active,
.fade01.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* JS無効・観測前のフォールバック（500ms後に強制フェードイン） */
@media (prefers-reduced-motion: no-preference) {
    @keyframes jfcFadeUpFallback {
        0%   { opacity: 0; transform: translateY(40px); }
        100% { opacity: 1; transform: translateY(0); }
    }
    .fade01 {
        animation: jfcFadeUpFallback 1.2s cubic-bezier(.2, .8, .2, 1) .3s 1 both;
    }
    /* 第3セクションは段階的に表示 */
    .front_original03 .third-box.fade01:nth-of-type(1) { animation-delay: .2s; }
    .front_original03 .third-box.fade01:nth-of-type(2) { animation-delay: .4s; }
    .front_original03 .third-box.fade01:nth-of-type(3) { animation-delay: .6s; }
}
@media (prefers-reduced-motion: reduce) {
    .fade01 { opacity: 1; transform: none; animation: none; }
}

/* =========================
   12. RESPONSIVE
   ========================= */
@media only screen and (max-width: 1200px) {
    .front_original01 { padding: 90px 0 70px; }
    .front-original01-inner { gap: 50px; }
    .front_original02 { padding: 90px 0; }
    .content02 { padding: 80px 0; }
    .front_original03 { padding: 100px 0 80px; }
    .front_topics { padding: 80px 0 90px; }
    .third-inner { gap: 40px; }
    .footer_contact_inner { gap: 50px; }
    .footer_menu_bg { padding-left: 40px; }
}
@media only screen and (max-width: 992px) {
    .content02-inner {
        grid-template-columns: repeat(2, 1fr);
    }
    #index-news .top-news,
    #index-blog .top-blog {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media only screen and (max-width: 768px) {
    body { font-size: 15px; }

    /* INTRO */
    .front_original01 {
        padding: 70px 0 50px;
    }
    .front-original01-inner {
        flex-direction: column;
        gap: 32px;
    }
    .front-original01__title {
        flex: 1 1 auto;
        width: 100%;
    }
    .front-original01__title h2 {
        font-size: 26px;
    }
    .front_original01::after { font-size: 120px; top: 30px; }

    /* CARDS */
    .content02 { padding: 70px 0; }
    .content02::before { font-size: 28px; top: 80px; }
    .content02-inner {
        grid-template-columns: 1fr;
        padding-top: 90px;
        gap: 24px;
    }
    .content02-text__box { padding: 22px 22px 26px; }

    /* MESSAGE */
    .front_original02 { padding: 80px 0; }
    .front-original02__title h2 { font-size: 22px; line-height: 1.8; }

    /* STRENGTH */
    .front_original03 { padding: 80px 0 60px; }
    .front_original03::after { font-size: 28px; top: 100px; }
    .front-original03-inner { padding-top: 130px; }
    .third-box { margin-bottom: 60px; }
    .third-inner {
        grid-template-columns: 1fr !important;
        direction: ltr !important;
        gap: 24px;
    }
    .front-third-text { padding: 0; }
    .front-third-text::before { font-size: 64px; margin-bottom: 8px; }
    .third_title { font-size: 20px; }

    /* TOPICS */
    .front_topics { padding: 70px 0 80px; }
    h2.front_topics_title { font-size: 28px; margin-bottom: 40px; }
    #index-news .top-news,
    #index-blog .top-blog {
        gap: 20px;
    }
    #infinitescroll .article03 {
        margin: 0 20px 20px 0;
        width: calc((100% - 20px) / 2);
    }
    #infinitescroll .article03:nth-of-type(even) {
        margin-right: 0;
    }
    #index-blog .top-blog .article03{
        width: 100%;
    }
    #index-blog .top-blog .article03-title, #infinitescroll .article03 .article03-title {
        height: 52px;
    }
    #index-blog .top-blog .article03-thumbnail{
        aspect-ratio: 16/14;
    }
    #index-blog .top-blog .article03-content{
        padding: 10px 15px;
    }

    /* FOOTER */
    .footer_contact_sec { padding: 70px 0 50px; }
    .footer_contact_inner {
        grid-template-columns: 1fr;
        padding-top: 80px;
        gap: 50px;
    }
    .footer_menu_bg {
        border-left: 0;
        border-top: 1px solid rgba(255,255,255,0.08);
        padding-left: 0;
        padding-top: 40px;
    }
    h2.footer-logo-name { font-size: 32px; }
    address.footer_tel { font-size: 28px; }
    .footer-content-list { gap: 30px; }
    .footer-bar01-inner {
        flex-direction: column;
        gap: 16px;
    }
}

/* =========================
   13. 互換用残存セレクタ
   ========================= */
/* 旧テンプレ由来のクラスがCSS側で必要な場合の保険 */
span.footer_tel_sub {
    display: none;
}
.contact_sec span.footer_tel_sub2 {
    color: rgba(255,255,255,0.6);
}

/* =========================
   14. 業務ページ (page-service)
   ========================= */

/* ページ全体 */
.jfc-svc-page {
    background: var(--jfc-paper);
    color: var(--jfc-ink);
}
.jfc-svc-page * { box-sizing: border-box; }

/* ----- ① ヒーロー ----- */
.jfc-svc-hero {
    position: relative;
    padding: 70px 0 50px;
    background: var(--jfc-paper);
    overflow: hidden;
}
.jfc-svc-hero::before {
    content: '';
    position: absolute;
    top: -160px;
    right: -200px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.06) 0%, transparent 70%);
    z-index: 0;
}
.jfc-svc-hero::after {
    content: 'SERVICE';
    position: absolute;
    top: 70px;
    right: -30px;
    font-family: var(--en);
    font-size: clamp(160px, 20vw, 320px);
    color: rgba(22,22,22,0.04);
    line-height: 1;
    letter-spacing: -.02em;
    pointer-events: none;
    z-index: 0;
}
.jfc-svc-hero__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}
.jfc-svc-hero__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 18px;
}
.jfc-svc-hero__ttl {
    font-family: var(--serif);
    font-size: clamp(28px, 3.4vw, 46px);
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .06em;
    color: var(--jfc-black);
    margin: 0 0 20px;
    position: relative;
    display: inline-block;
}
.jfc-svc-hero__ttl::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin: 16px auto 0;
}
.jfc-svc-hero__lead {
    font-family: var(--serif);
    font-size: clamp(16px, 1.4vw, 20px);
    font-weight: 700;
    line-height: 1.85;
    letter-spacing: .04em;
    color: var(--jfc-black);
    margin: 0 0 24px;
}
.jfc-svc-hero__text {
    max-width: 820px;
    margin: 0 auto;
    text-align: left;
}
.jfc-svc-hero__text p {
    font-size: 0.96em;
    line-height: 2.1;
    color: var(--jfc-ink);
    margin: 0 0 20px;
}
.jfc-svc-hero__text p:last-child { margin-bottom: 0; }

/* ----- ② サービスカード ----- */
.jfc-svc-list {
    background: linear-gradient(180deg, var(--jfc-paper) 0%, var(--jfc-cream) 100%);
    padding: 50px 0 60px;
    position: relative;
}
.jfc-svc-list__inner {
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

/* カード本体 */
.jfc-svc-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items: center;
    position: relative;
}
/* 偶数番目は画像を右へ */
.jfc-svc-card:nth-of-type(even) { direction: rtl; }
.jfc-svc-card:nth-of-type(even) > * { direction: ltr; }

/* 写真 */
.jfc-svc-card__photo {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--jfc-shadow);
    aspect-ratio: 4 / 3;
}
.jfc-svc-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s cubic-bezier(.2, .8, .2, 1);
}
.jfc-svc-card__photo:hover img { transform: scale(1.05); }
.jfc-svc-card__photo::before {
    content: '';
    position: absolute;
    inset: 16px;
    border: 1px solid rgba(255,255,255,0.4);
    z-index: 2;
    pointer-events: none;
    transition: inset .4s ease;
}
.jfc-svc-card__photo:hover::before { inset: 24px; }
/* ナンバーバッジ非表示 */
.jfc-svc-card__num { display: none; }

/* テキスト側 */
.jfc-svc-card__body { padding: 0 6px; }
.jfc-svc-card__cat {
    font-family: var(--en);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .3em;
    color: var(--jfc-red);
    margin: 0 0 10px;
    line-height: 1;
}
.jfc-svc-card__ttl {
    font-family: var(--serif);
    font-size: clamp(22px, 2vw, 30px);
    font-weight: 900;
    line-height: 1.55;
    letter-spacing: .04em;
    color: var(--jfc-black);
    margin: 0 0 18px;
    position: relative;
}
.jfc-svc-card__ttl::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin-top: 14px;
}
.jfc-svc-card__text {
    font-size: 0.95em;
    line-height: 2.1;
    color: var(--jfc-ink);
    margin: 0 0 22px;
}

/* POINTブロック */
.jfc-svc-point {
    background: #fff;
    border-left: 4px solid var(--jfc-red);
    border-radius: 0 12px 12px 0;
    padding: 22px 26px 24px;
    box-shadow: 0 4px 20px rgba(22,22,22,0.05);
}
.jfc-svc-point__label {
    margin: 0 0 12px;
}
.jfc-svc-point__label span {
    display: inline-block;
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .25em;
    color: #fff;
    background: var(--jfc-black);
    padding: 4px 14px 3px;
    border-radius: 3px;
}
.jfc-svc-point__list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.jfc-svc-point__list li {
    position: relative;
    padding-left: 22px;
    font-size: 0.92em;
    line-height: 1.9;
    color: var(--jfc-ink);
    margin-bottom: 6px;
}
.jfc-svc-point__list li:last-child { margin-bottom: 0; }
.jfc-svc-point__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.85em;
    width: 12px;
    height: 2px;
    background: var(--jfc-red);
}

/* ----- ③ CTA ----- */
.jfc-svc-cta {
    background: var(--jfc-black);
    color: #fff;
    padding: 60px 0;
    position: relative;
    overflow: hidden;
}
.jfc-svc-cta::before {
    content: '';
    position: absolute;
    top: -100px;
    left: -100px;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.18) 0%, transparent 70%);
    filter: blur(20px);
    z-index: 0;
}
.jfc-svc-cta::after {
    content: '';
    position: absolute;
    bottom: -120px;
    right: -120px;
    width: 480px;
    height: 480px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.12) 0%, transparent 70%);
    filter: blur(30px);
    z-index: 0;
}
.jfc-svc-cta__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}
.jfc-svc-cta__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 18px;
}
.jfc-svc-cta__ttl {
    font-family: var(--serif);
    font-size: clamp(22px, 2.4vw, 34px);
    font-weight: 900;
    line-height: 1.7;
    letter-spacing: .06em;
    color: #fff;
    margin: 0 0 20px;
}
.jfc-svc-cta__text {
    color: rgba(255,255,255,0.82);
    font-size: 0.95em;
    line-height: 2.1;
    margin: 0 0 28px;
}
.jfc-svc-cta__btn { margin: 0; }
.jfc-svc-cta__btn a {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: var(--jfc-red);
    color: #fff !important;
    padding: 18px 48px;
    border-radius: 999px;
    font-family: var(--gothic);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .15em;
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    box-shadow: var(--jfc-shadow-red);
}
.jfc-svc-cta__btn a::after {
    content: '→';
    font-family: var(--en);
    font-size: 18px;
    transition: transform .3s ease;
}
.jfc-svc-cta__btn a:hover {
    background: #fff;
    color: var(--jfc-red) !important;
    transform: translateY(-2px);
}
.jfc-svc-cta__btn a:hover::after { transform: translateX(6px); }

/* ----- レスポンシブ ----- */
@media only screen and (max-width: 900px) {
    .jfc-svc-hero { padding: 50px 0 40px; }
    .jfc-svc-list { padding: 40px 0 50px; }
    .jfc-svc-list__inner { gap: 45px; }

    .jfc-svc-card {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .jfc-svc-card:nth-of-type(even) { direction: ltr; }

    .jfc-svc-card__photo { aspect-ratio: 16 / 11; }
    .jfc-svc-card__body { padding: 0; }

    .jfc-svc-cta { padding: 50px 0; }
}

/* =========================
   15. 代表挨拶ページ (page-greeting)
   ========================= */

.jfc-grt-page {
    background: var(--jfc-paper);
    color: var(--jfc-ink);
}
.jfc-grt-page * { box-sizing: border-box; }

/* ----- ① ヒーロー（写真 ＋ 名前 ＋ 挨拶文） ----- */
.jfc-grt-hero {
    position: relative;
    padding: 70px 0 60px;
    background: var(--jfc-paper);
    overflow: hidden;
}
.jfc-grt-hero::before {
    content: '';
    position: absolute;
    top: -160px;
    right: -200px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.06) 0%, transparent 70%);
    z-index: 0;
}
.jfc-grt-hero::after {
    content: 'GREETING';
    position: absolute;
    top: 70px;
    right: -30px;
    font-family: var(--en);
    font-size: clamp(140px, 18vw, 280px);
    color: rgba(22,22,22,0.04);
    line-height: 1;
    letter-spacing: -.02em;
    pointer-events: none;
    z-index: 0;
}
.jfc-grt-hero__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 60px;
    align-items: center;
}

/* 左：写真＋名前 */
.jfc-grt-photo {
    position: relative;
}
.jfc-grt-photo__img {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: var(--jfc-shadow);
    aspect-ratio: 4 / 3;
}
.jfc-grt-photo__img::before {
    content: '';
    position: absolute;
    inset: 16px;
    border: 1px solid rgba(255,255,255,0.4);
    z-index: 2;
    pointer-events: none;
    transition: inset .4s ease;
}
.jfc-grt-photo__img:hover::before { inset: 24px; }
.jfc-grt-photo__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s cubic-bezier(.2, .8, .2, 1);
}
.jfc-grt-photo__img:hover img { transform: scale(1.05); }

.jfc-grt-photo__name {
    margin-top: 22px;
    text-align: center;
}
.jfc-grt-photo__role {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .35em;
    color: var(--jfc-red);
    margin: 0 0 6px;
    font-weight: 700;
}
.jfc-grt-photo__name h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 2vw, 28px);
    font-weight: 900;
    letter-spacing: .12em;
    color: var(--jfc-black);
    margin: 0;
    line-height: 1.4;
}
.jfc-grt-photo__name h2 small {
    display: block;
    font-size: 0.5em;
    color: var(--jfc-gray);
    letter-spacing: .25em;
    font-weight: 500;
    margin-top: 6px;
}

/* 右：見出し＋挨拶文 */
.jfc-grt-hero__body {}
.jfc-grt-hero__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 14px;
}
.jfc-grt-hero__ttl {
    font-family: var(--serif);
    font-size: clamp(24px, 2.6vw, 36px);
    font-weight: 900;
    line-height: 1.55;
    letter-spacing: .04em;
    color: var(--jfc-black);
    margin: 0 0 22px;
    position: relative;
}
.jfc-grt-hero__ttl::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin-top: 16px;
}
.jfc-grt-hero__text p {
    font-size: 0.95em;
    line-height: 2.1;
    color: var(--jfc-ink);
    margin: 0 0 18px;
}
.jfc-grt-hero__text p:last-child { margin-bottom: 0; }

/* ----- ② 信念ブロック（白カード／クリーム背景） ----- */
.jfc-grt-belief {
    background: linear-gradient(180deg, var(--jfc-paper) 0%, var(--jfc-cream) 100%);
    color: var(--jfc-ink);
    padding: 70px 0 90px;
    position: relative;
    overflow: hidden;
}
.jfc-grt-belief::before {
    content: 'OUR BELIEF';
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
}
.jfc-grt-belief::after {
    content: '私たちの信念';
    position: absolute;
    top: 76px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--serif);
    font-size: clamp(22px, 2.2vw, 30px);
    font-weight: 900;
    color: var(--jfc-black);
    letter-spacing: .08em;
    white-space: nowrap;
}
.jfc-grt-belief__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 1000px;
    margin: 0 auto;
    padding-top: 110px;
    text-align: center;
}
/* 旧見出し用クラスは見出しを二重で出すため非表示 */
.jfc-grt-belief__en,
.jfc-grt-belief__ttl {
    display: none;
}
.jfc-grt-belief__text {
    max-width: 880px;
    margin: 0 auto;
    text-align: left;
    background: #fff;
    border-radius: 12px;
    box-shadow: var(--jfc-shadow);
    padding: 40px 50px;
    border-left: 4px solid var(--jfc-red);
    position: relative;
}
.jfc-grt-belief__text p {
    color: var(--jfc-ink);
    font-size: 0.95em;
    line-height: 2.1;
    margin: 0 0 20px;
}
.jfc-grt-belief__text p:last-child { margin-bottom: 0; }

/* 信念ブロック内に見出しを残したい場合の追加（h3を使う構成用） */
.jfc-grt-belief__heading {
    font-family: var(--serif);
    font-size: clamp(20px, 1.8vw, 26px);
    font-weight: 900;
    line-height: 1.6;
    letter-spacing: .04em;
    color: var(--jfc-black);
    margin: 0 0 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--jfc-line);
    text-align: center;
}
.jfc-grt-belief__heading span {
    color: var(--jfc-red);
}

/* ----- レスポンシブ ----- */
@media only screen and (max-width: 900px) {
    .jfc-grt-hero { padding: 50px 0 40px; }
    .jfc-grt-hero__inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .jfc-grt-photo__img { aspect-ratio: 4 / 3; }
    .jfc-grt-belief { padding: 50px 0 70px; }
    .jfc-grt-belief__inner { padding-top: 90px; }
    .jfc-grt-belief__text { padding: 26px 22px; }
}

/* =========================
   16. Q&Aページ (page-faq)
   ========================= */

.jfc-faq-page {
    background: var(--jfc-paper);
    color: var(--jfc-ink);
}
.jfc-faq-page * { box-sizing: border-box; }

/* ----- ① ヒーロー ----- */
.jfc-faq-hero {
    position: relative;
    padding: 70px 0 50px;
    background: var(--jfc-paper);
    overflow: hidden;
    text-align: center;
}
.jfc-faq-hero::before {
    content: '';
    position: absolute;
    top: -160px;
    right: -200px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.06) 0%, transparent 70%);
    z-index: 0;
}
.jfc-faq-hero::after {
    content: 'FAQ';
    position: absolute;
    top: 70px;
    right: -30px;
    font-family: var(--en);
    font-size: clamp(160px, 20vw, 320px);
    color: rgba(22,22,22,0.04);
    line-height: 1;
    letter-spacing: -.02em;
    pointer-events: none;
    z-index: 0;
}
.jfc-faq-hero__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 1100px;
    margin: 0 auto;
}
.jfc-faq-hero__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 14px;
}
.jfc-faq-hero__ttl {
    font-family: var(--serif);
    font-size: clamp(28px, 3.4vw, 46px);
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .06em;
    color: var(--jfc-black);
    margin: 0 0 20px;
    display: inline-block;
}
.jfc-faq-hero__ttl::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin: 16px auto 0;
}
.jfc-faq-hero__lead {
    font-size: 0.95em;
    line-height: 2.0;
    color: var(--jfc-ink);
    margin: 0;
}

/* ----- ② FAQ本体 ----- */
.jfc-faq-list {
    background: linear-gradient(180deg, var(--jfc-paper) 0%, var(--jfc-cream) 100%);
    padding: 50px 0 90px;
    position: relative;
}
.jfc-faq-list__inner {
    width: 88%;
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* 各アイテム（detailsタグ） */
.jfc-faq-item {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(22,22,22,0.05);
    overflow: hidden;
    transition: box-shadow .4s ease, transform .4s ease;
    border-left: 4px solid transparent;
}
.jfc-faq-item[open] {
    box-shadow: var(--jfc-shadow);
    border-left-color: var(--jfc-red);
}
.jfc-faq-item:hover {
    transform: translateY(-2px);
}

/* 質問（summary） */
.jfc-faq-item > summary {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding: 22px 70px 22px 78px;
    font-family: var(--serif);
    font-size: clamp(15px, 1.1vw, 17px);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: .04em;
    color: var(--jfc-black);
    transition: color .3s ease;
}
.jfc-faq-item > summary::-webkit-details-marker { display: none; }
.jfc-faq-item > summary::marker { display: none; }
.jfc-faq-item > summary:hover {
    color: var(--jfc-red);
}

/* Q. アイコン */
.jfc-faq-item > summary::before {
    content: 'Q';
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--en);
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    background: var(--jfc-red);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0;
    box-shadow: 0 4px 14px rgba(209,43,54,.25);
}

/* 開閉アイコン（＋／−） */
.jfc-faq-item > summary::after {
    content: '';
    position: absolute;
    right: 28px;
    top: 50%;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    background-image:
        linear-gradient(var(--jfc-black), var(--jfc-black)),
        linear-gradient(var(--jfc-black), var(--jfc-black));
    background-size: 16px 2px, 2px 16px;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform .35s ease, background-size .35s ease;
}
.jfc-faq-item[open] > summary::after {
    background-size: 16px 2px, 0 16px;
    transform: translateY(-50%) rotate(180deg);
}
.jfc-faq-item[open] > summary {
    color: var(--jfc-red);
}

/* 回答 */
.jfc-faq-item__answer {
    position: relative;
    padding: 4px 28px 26px 78px;
    border-top: 1px dashed var(--jfc-line);
    margin: 0 28px;
}
.jfc-faq-item__answer p {
    position: relative;
    font-size: 0.93em;
    line-height: 2.0;
    color: var(--jfc-ink);
    margin: 18px 0 0;
    padding-left: 0;
}
/* A. アイコン */
.jfc-faq-item__answer::before {
    content: 'A';
    position: absolute;
    left: 0;
    top: 18px;
    font-family: var(--en);
    font-size: 22px;
    font-weight: 700;
    color: var(--jfc-red);
    background: var(--jfc-red-soft);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ----- レスポンシブ ----- */
@media only screen and (max-width: 768px) {
    .jfc-faq-hero { padding: 50px 0 35px; }
    .jfc-faq-list { padding: 35px 0 60px; }
    .jfc-faq-list__inner { gap: 14px; }

    .jfc-faq-item > summary {
        padding: 18px 50px 18px 62px;
        font-size: 14px;
        line-height: 1.65;
    }
    .jfc-faq-item > summary::before {
        left: 14px;
        width: 32px;
        height: 32px;
        font-size: 17px;
    }
    .jfc-faq-item > summary::after {
        right: 18px;
        width: 14px;
        height: 14px;
        background-size: 14px 2px, 2px 14px;
    }
    .jfc-faq-item[open] > summary::after {
        background-size: 14px 2px, 0 14px;
    }

    .jfc-faq-item__answer {
        padding: 4px 18px 22px 56px;
        margin: 0 14px;
    }
    .jfc-faq-item__answer::before {
        width: 32px;
        height: 32px;
        font-size: 17px;
        top: 16px;
    }
    .jfc-faq-item__answer p {
        font-size: 0.9em;
        margin-top: 14px;
    }
}

/* =========================
   17. 会社案内ページ (page-company)
   ========================= */

.jfc-cmp-page {
    background: var(--jfc-paper);
    color: var(--jfc-ink);
}
.jfc-cmp-page * { box-sizing: border-box; }

/* ----- ① ヒーロー ----- */
.jfc-cmp-hero {
    position: relative;
    padding: 70px 0 50px;
    background: var(--jfc-paper);
    overflow: hidden;
    text-align: center;
}
.jfc-cmp-hero::before {
    content: '';
    position: absolute;
    top: -160px;
    right: -200px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.06) 0%, transparent 70%);
    z-index: 0;
}
.jfc-cmp-hero::after {
    content: 'COMPANY';
    position: absolute;
    top: 70px;
    right: -30px;
    font-family: var(--en);
    font-size: clamp(140px, 18vw, 280px);
    color: rgba(22,22,22,0.04);
    line-height: 1;
    letter-spacing: -.02em;
    pointer-events: none;
    z-index: 0;
}
.jfc-cmp-hero__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 1100px;
    margin: 0 auto;
}
.jfc-cmp-hero__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 14px;
}
.jfc-cmp-hero__ttl {
    font-family: var(--serif);
    font-size: clamp(28px, 3.4vw, 46px);
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .06em;
    color: var(--jfc-black);
    margin: 0 0 20px;
    display: inline-block;
}
.jfc-cmp-hero__ttl::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin: 16px auto 0;
}
.jfc-cmp-hero__lead {
    font-size: 0.95em;
    line-height: 2.0;
    color: var(--jfc-ink);
    margin: 0;
}

/* ----- ② テーブル本体 ----- */
.jfc-cmp-info {
    background: linear-gradient(180deg, var(--jfc-paper) 0%, var(--jfc-cream) 100%);
    padding: 50px 0 90px;
    position: relative;
}
.jfc-cmp-info__inner {
    width: 88%;
    max-width: 900px;
    margin: 0 auto;
    background: #fff;
    box-shadow: var(--jfc-shadow);
    overflow: hidden;
}
.jfc-cmp-info__tbl {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}
.post-content table.jfc-cmp-info__tbl {
    margin: 0;
}
.jfc-cmp-info__tbl th,
.jfc-cmp-info__tbl td {
    padding: 22px 30px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid var(--jfc-line);
    font-size: 0.95em;
    line-height: 1.85;
    letter-spacing: .04em;
}
.jfc-cmp-info__tbl th {
    width: 220px;
    font-family: var(--gothic);
    font-weight: 700;
    color: var(--jfc-black);
    background: var(--jfc-cream);
    position: relative;
    padding-left: 44px;
}
.jfc-cmp-info__tbl th::before {
    content: '';
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 18px;
    background: var(--jfc-red);
    border-radius: 1px;
}
.jfc-cmp-info__tbl td {
    color: var(--jfc-ink);
    background: #fff;
}

/* 電話番号 */
.jfc-cmp-info__tel {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--en);
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 700;
    color: var(--jfc-red) !important;
    letter-spacing: .04em;
    line-height: 1;
    text-decoration: none;
    transition: color .3s ease;
}
.jfc-cmp-info__tel::before {
    content: '\260E';
    font-family: var(--gothic);
    font-size: 22px;
    color: var(--jfc-red);
}
.jfc-cmp-info__tel:hover { color: var(--jfc-red-deep) !important; }

.jfc-cmp-info__caution {
    display: block;
    margin-top: 6px;
    font-size: 0.78em;
    color: var(--jfc-gray);
    letter-spacing: .04em;
}

/* ----- レスポンシブ ----- */
@media only screen and (max-width: 768px) {
    .jfc-cmp-hero { padding: 50px 0 35px; }
    .jfc-cmp-info { padding: 35px 0 60px; }

    .jfc-cmp-info__tbl,
    .jfc-cmp-info__tbl tbody,
    .jfc-cmp-info__tbl tr,
    .jfc-cmp-info__tbl th,
    .jfc-cmp-info__tbl td {
        display: block;
        width: 100%;
    }
    .jfc-cmp-info__tbl th {
        padding: 14px 20px 14px 36px;
        font-size: 0.88em;
        border-bottom: none;
    }
    .jfc-cmp-info__tbl th::before {
        left: 18px;
        height: 14px;
    }
    .jfc-cmp-info__tbl td {
        padding: 14px 20px 18px;
        font-size: 0.92em;
        border-bottom: 1px solid var(--jfc-line);
    }
    .jfc-cmp-info__tbl tr:last-child td { border-bottom: none; }
}

/* =========================
   18. お問い合わせページ (page-contact)
   ========================= */

.jfc-ctc-page {
    background: var(--jfc-paper);
    color: var(--jfc-ink);
}
.jfc-ctc-page * { box-sizing: border-box; }

/* ----- ① ヒーロー ----- */
.jfc-ctc-hero {
    position: relative;
    padding: 70px 0 50px;
    background: var(--jfc-paper);
    overflow: hidden;
    text-align: center;
}
.jfc-ctc-hero::before {
    content: '';
    position: absolute;
    top: -160px;
    right: -200px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(209,43,54,0.06) 0%, transparent 70%);
    z-index: 0;
}
.jfc-ctc-hero::after {
    content: 'CONTACT';
    position: absolute;
    top: 70px;
    right: -30px;
    font-family: var(--en);
    font-size: clamp(140px, 18vw, 280px);
    color: rgba(22,22,22,0.04);
    line-height: 1;
    letter-spacing: -.02em;
    pointer-events: none;
    z-index: 0;
}
.jfc-ctc-hero__inner {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 1100px;
    margin: 0 auto;
}
.jfc-ctc-hero__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 14px;
}
.jfc-ctc-hero__ttl {
    font-family: var(--serif);
    font-size: clamp(28px, 3.4vw, 46px);
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .06em;
    color: var(--jfc-black);
    margin: 0 0 20px;
    display: inline-block;
}
.jfc-ctc-hero__ttl::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background: var(--jfc-red);
    margin: 16px auto 0;
}
.jfc-ctc-hero__lead {
    font-size: 0.95em;
    line-height: 2.0;
    color: var(--jfc-ink);
    margin: 0;
}

/* ----- 共通：セクション見出し ----- */
.jfc-ctc-shead {
    text-align: center;
    margin: 0 0 32px;
}
.jfc-ctc-shead__en {
    font-family: var(--en);
    font-size: 13px;
    letter-spacing: .55em;
    color: var(--jfc-red);
    margin: 0 0 10px;
    font-weight: 700;
}
.jfc-ctc-shead h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 2vw, 30px);
    font-weight: 900;
    letter-spacing: .06em;
    color: var(--jfc-black);
    margin: 0;
    line-height: 1.4;
    display: inline-block;
}
.jfc-ctc-shead h2::after {
    content: '';
    display: block;
    width: 48px;
    height: 3px;
    background: var(--jfc-red);
    margin: 14px auto 0;
}

/* ----- ② 電話セクション ----- */
.jfc-ctc-tel {
    background: linear-gradient(180deg, var(--jfc-paper) 0%, var(--jfc-cream) 100%);
    padding: 50px 0 70px;
}
.jfc-ctc-tel__inner {
    width: 88%;
    max-width: 800px;
    margin: 0 auto;
    background: #fff;
    box-shadow: var(--jfc-shadow);
    padding: 50px 40px;
    text-align: center;
}
.jfc-ctc-tel__num {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-family: var(--en);
    font-size: clamp(34px, 4.5vw, 56px);
    font-weight: 700;
    color: var(--jfc-red) !important;
    letter-spacing: .04em;
    line-height: 1;
    text-decoration: none;
    margin: 0 0 22px;
    transition: color .3s ease;
}
.jfc-ctc-tel__num::before {
    content: '\260E';
    font-family: var(--gothic);
    font-size: 0.7em;
    color: var(--jfc-red);
}
.jfc-ctc-tel__num small {
    font-family: var(--gothic);
    font-size: 0.32em;
    font-weight: 700;
    color: var(--jfc-gray);
    letter-spacing: .25em;
    margin-right: 8px;
}
.jfc-ctc-tel__num:hover { color: var(--jfc-red-deep) !important; }

.jfc-ctc-tel__hours {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
}
.jfc-ctc-tel__hours li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.92em;
    color: var(--jfc-ink);
    letter-spacing: .04em;
}
.jfc-ctc-tel__hours li span {
    background: var(--jfc-black);
    color: #fff;
    font-size: 0.82em;
    font-weight: 700;
    letter-spacing: .12em;
    padding: 4px 12px;
    border-radius: 0;
}
@media only screen and (max-width: 767px){
    .jfc-ctc-tel__hours li{
        width: 170px;
    }
    .jfc-ctc-tel__hours li span{
        width: 75px;
    }
}

.jfc-ctc-tel__caution {
    font-size: 0.85em;
    color: var(--jfc-gray);
    line-height: 1.85;
    margin: 0;
    padding-top: 22px;
    border-top: 1px dashed var(--jfc-line);
}
.jfc-ctc-tel__caution + .jfc-ctc-tel__caution {
    padding-top: 6px;
    border-top: none;
}

/* ----- ③ メールセクション ----- */
.jfc-ctc-mail {
    background: var(--jfc-cream);
    padding: 70px 0 90px;
}
.jfc-ctc-mail__inner {
    width: 88%;
    max-width: 900px;
    margin: 0 auto;
}

/* 注意ボックス */
.jfc-ctc-mail__notice {
    background: #fff;
    border-left: 4px solid var(--jfc-red);
    padding: 26px 32px;
    margin: 0 0 40px;
    box-shadow: 0 4px 20px rgba(22,22,22,0.05);
}
.jfc-ctc-mail__notice h3 {
    font-family: var(--serif);
    font-size: clamp(17px, 1.4vw, 19px);
    font-weight: 900;
    color: var(--jfc-black);
    margin: 0 0 14px;
    letter-spacing: .04em;
}
.jfc-ctc-mail__notice p {
    font-size: 0.9em;
    line-height: 1.95;
    color: var(--jfc-ink);
    margin: 0;
}

/* フォームラッパ */
.jfc-ctc-form {
    background: #fff;
    padding: 40px 44px;
    box-shadow: var(--jfc-shadow);
}

/* Contact Form 7 共通スタイル（このページ内に限定） */
.jfc-ctc-form .wpcf7-form p {
    margin: 0 0 22px;
    font-size: 0.92em;
    line-height: 1.85;
    color: var(--jfc-ink);
    font-weight: 700;
    letter-spacing: .04em;
}
.jfc-ctc-form .wpcf7-form input[type="text"],
.jfc-ctc-form .wpcf7-form input[type="email"],
.jfc-ctc-form .wpcf7-form input[type="tel"],
.jfc-ctc-form .wpcf7-form input[type="url"],
.jfc-ctc-form .wpcf7-form input[type="number"],
.jfc-ctc-form .wpcf7-form input[type="date"],
.jfc-ctc-form .wpcf7-form select,
.jfc-ctc-form .wpcf7-form textarea {
    width: 100%;
    padding: 14px 16px;
    margin-top: 8px;
    font-family: var(--gothic);
    font-size: 15px;
    font-weight: 400;
    color: var(--jfc-ink);
    background: var(--jfc-paper);
    border: 1px solid var(--jfc-line);
    border-radius: 0;
    box-shadow: none;
    outline: none;
    transition: border-color .3s ease, background .3s ease;
    letter-spacing: .04em;
}
.jfc-ctc-form .wpcf7-form textarea {
    min-height: 180px;
    line-height: 1.85;
    resize: vertical;
}
.jfc-ctc-form .wpcf7-form input:focus,
.jfc-ctc-form .wpcf7-form select:focus,
.jfc-ctc-form .wpcf7-form textarea:focus {
    border-color: var(--jfc-red);
    background: #fff;
}

/* 必須ラベル（spanで [必須] とテキストを書いている場合） */
.jfc-ctc-form .wpcf7-form .required,
.jfc-ctc-form .wpcf7-form .req {
    display: inline-block;
    background: var(--jfc-red);
    color: #fff;
    font-size: 0.7em;
    font-weight: 700;
    letter-spacing: .12em;
    padding: 3px 10px;
    margin-left: 8px;
    border-radius: 0;
    vertical-align: middle;
}

/* 送信ボタン */
.jfc-ctc-form .wpcf7-form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    background: var(--jfc-red);
    color: #fff;
    border: none;
    padding: 18px 60px;
    margin: 16px auto 0;
    font-family: var(--gothic);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .2em;
    cursor: pointer;
    border-radius: 0;
    box-shadow: var(--jfc-shadow-red);
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    width: auto;
    min-width: 280px;
    height: auto;
    line-height: 1;
}
.jfc-ctc-form .wpcf7-form input[type="submit"]:hover {
    background: var(--jfc-black);
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(22,22,22,0.25);
}
/* 送信ボタンを中央寄せ */
.jfc-ctc-form .wpcf7-form p:has(input[type="submit"]) {
    text-align: center;
    margin-top: 16px;
}

/* エラー・成功メッセージ */
.jfc-ctc-form .wpcf7-not-valid-tip {
    color: var(--jfc-red);
    font-size: 0.85em;
    margin-top: 6px;
    display: block;
    font-weight: 700;
}
.jfc-ctc-form .wpcf7-response-output {
    margin: 24px 0 0 !important;
    padding: 16px 20px !important;
    font-size: 0.9em;
    border-radius: 0 !important;
    border-width: 2px !important;
}

/* ----- レスポンシブ ----- */
@media only screen and (max-width: 768px) {
    .jfc-ctc-hero { padding: 50px 0 35px; }
    .jfc-ctc-tel { padding: 35px 0 50px; }
    .jfc-ctc-tel__inner { padding: 32px 22px; }
    .jfc-ctc-tel__num { font-size: 34px; gap: 10px; }
    .jfc-ctc-tel__hours { flex-direction: column; gap: 10px; align-items: center; }

    .jfc-ctc-mail { padding: 50px 0 60px; }
    .jfc-ctc-mail__notice { padding: 20px 22px; }
    .jfc-ctc-form { padding: 26px 20px; }
    .jfc-ctc-form .wpcf7-form input[type="submit"] {
        width: 100%;
        min-width: 0;
        padding: 16px 30px;
    }
}

.global-nav > ul > li > a span {
    position: relative;
    text-align: center;
    display: block;
    bottom: 27px;
    line-height: 1;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .05em;
    color: #646464;
    font-family: "Noto Sans JP", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}
ul.footer-content-list-outer li a span{
    display: none;
}

.post-content ul.jfc-svc-point__list {
    list-style: none;
    margin: 0;
}

.post-content p.jfc-svc-card__cat {
    font-size: 2rem;
    margin: 0;
}

@media only screen and (max-width: 1200px) {
    .header-bar-fixed .global-nav {
        left: 0;
    }
    .global-nav > ul > li > a{
        line-height: 45px;
    }
    .global-nav > ul > li > a span{
        margin-top: 15px;
    }
}