/*
 * components.css — 自作コンポーネント（方針書 Layer 4 / 原則1）
 * ボタン・リンク・ナビ・フッターなど、全ページ共通の部品。kc- 名前空間。
 */

/* ===== ボタン ===== */
.kc-btn-primary {
    display: inline-block;
    background: var(--kc-grad-signature);
    color: #fff;
    padding: 16px 34px;
    border-radius: var(--kc-radius-button);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: transform .2s, filter .2s;
}
.kc-btn-primary:hover { transform: translateY(-1px); filter: brightness(1.1); }

.kc-btn-ghost {
    display: inline-block;
    color: var(--kc-green-deep);
    padding: 15px 30px;
    border-radius: var(--kc-radius-button);
    font-size: 15px;
    font-weight: 500;
    border: 1.5px solid var(--kc-sand);
    background: rgba(255, 255, 255, .5);
    text-decoration: none;
}

/* 深緑背景上のCTAボタン：白抜き（白地＋深緑文字）。
   ホバーでシグネチャーグラデ緑＋白文字へ「ゆっくり」反転する。
   ※CSSはグラデーションを補間できず background 直接指定だと瞬間切替になるため、
     グラデは疑似要素(::before)の opacity をフェードさせて滑らかに変化させる。 */
.kc-btn-on-dark {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #fff;
    color: var(--kc-green-deep);
    font-weight: 700;
    transition: color .6s ease, box-shadow .6s ease, transform .3s ease;
}
.kc-btn-on-dark::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;                 /* 白背景の上・文字の下に敷く */
    background: var(--kc-grad-signature);
    opacity: 0;
    transition: opacity .6s ease;
}
.kc-btn-on-dark:hover {
    color: #fff;
    filter: none;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .55);
}
.kc-btn-on-dark:hover::before { opacity: 1; }

/* ===== 矢印リンク ===== */
.kc-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--kc-green-leaf-dark);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.kc-link-arrow svg { transition: transform .2s; }
.kc-link-arrow:hover svg { transform: translateX(4px); }

/* ===== ヘッダー / ナビ ===== */
.kc-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 28px;
    max-width: var(--kc-wrap-max);
    margin-inline: auto;
    position: relative;
    z-index: 5;
}
.kc-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 16px;
    color: var(--kc-ink);
}
.kc-brand .kc-leaf { width: 26px; height: 26px; }
/* グローバルナビ項目の文字サイズ・ホバー演出（拡大＋グラデ）は SWELL の
   .c-gnav 構造に依存するため overrides.css に集約（方針書 原則2）。
   ここ components.css には SWELL内部クラス非依存の CTA(.kc-nav-cta) のみ置く。 */

/* グローバルナビのCTA「無料相談」。
   SWELL はメニュー項目のCSSクラスを <li> に付与し、中は <a><span class="ttl"> 構造。
   さらに SWELL は `.c-gnav>.menu-item>a{height:100%;padding:0 12px}`（特異度0,2,1）で
   リンクをバー全高に伸ばすため、ボタンを同特異度 `.kc-nav-cta.menu-item>a`（後読み込みで勝つ）で
   上書きしてコンパクトなボタンにし、li は中央寄せラッパーにする。
   `.menu-item` は WordPress 標準クラス（SWELL内部クラスではない）。 */
.kc-nav-cta {
    display: flex;
    align-items: center;
    /* 直前の通常項目（会社案内）とボタンの間に余白を作る。
       会社案内の a 右padding(18px) ＋ この margin で見た目 約40px の間隔。 */
    margin-left: 22px;
}
.kc-nav-cta.menu-item > a {
    display: inline-flex;
    align-items: center;
    height: auto;
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    /* 主CTAの色を .kc-btn-primary と統一（深緑ベタ→シグネチャーグラデ）。design-review 指摘3。 */
    background: var(--kc-grad-signature);
    padding: 13px 26px;
    border-radius: var(--kc-radius-button);
    line-height: 1.4;
    text-decoration: none;
    /* 他ボタン（.kc-btn-primary）と同じホバー：軽く浮く＋明るくなる */
    transition: transform .2s, filter .2s;
}
.kc-nav-cta.menu-item > a:hover {
    transform: translateY(-1px);
    filter: brightness(1.1);
    color: #fff;
}
/* SWELL gnav のホバー下線（a::after）を打ち消す */
.kc-nav-cta.menu-item > a::after { display: none; content: none; }

/* ===== フッター ===== */
.kc-footer {
    background: var(--kc-green-deep2);
    color: rgba(255, 255, 255, .7);
    padding: 54px 0 34px;
}
.kc-footer .kc-wrap { display: flex; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.kc-footer .kc-fbrand { color: #fff; font-weight: 700; font-size: 15px; margin-bottom: 10px; }
.kc-footer a {
    color: rgba(255, 255, 255, .7);
    text-decoration: none;
    font-size: 13px;
    display: block;
    margin-bottom: 7px;
}
.kc-footer a:hover { color: #fff; }
.kc-footer .kc-fcol h4 {
    font-size: 12px;
    color: rgba(255, 255, 255, .5);
    letter-spacing: .08em;
    margin-bottom: 12px;
    font-family: var(--kc-font-en);
}
.kc-footer .kc-copy { margin-top: 30px; font-size: 12px; color: rgba(255, 255, 255, .4); }

/* ===== 共通CTAセクション（深緑） ===== */
.kc-cta {
    background: linear-gradient(165deg, #0A1A12 0%, #102619 45%, #1B3A28 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.kc-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .5;
    background: radial-gradient(circle at 82% 20%, rgba(91, 138, 60, .28), transparent 46%);
    pointer-events: none;
}
/* 左右パディングを共通ラッパー(.kc-wrap)と揃える。これが無いとモバイルで本文が画面端に貼り付く。 */
.kc-cta .kc-cta-inner { position: relative; z-index: 2; text-align: center; max-width: 680px; margin: 0 auto; padding-inline: var(--kc-wrap-pad); }
.kc-cta .kc-eyebrow { justify-content: center; color: var(--kc-green-pale); }
.kc-cta .kc-eyebrow::before { background: var(--kc-green-pale); }
.kc-cta h2 { font-size: clamp(24px, 3.4vw, 36px); font-weight: 700; margin-bottom: 18px; color: #fff; }
.kc-cta p { color: rgba(255, 255, 255, .8); margin-bottom: 32px; line-height: 2; }
