/**
 * Global Styles
 * サイト全体共通スタイル（ヘッダー、フッター等）
 */

/* ========================================
 * コンテンツ
 * ======================================== */
.l-content {
    margin: 0 auto;
}

/* ========================================
 * ヘッダー
 * ======================================== */
 .header__contact {
    display: flex;
    align-items: center;
    gap: 20px;
}
.header__phone {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    font-weight: 600;
    color: #1a3a5c;
    white-space: nowrap;
}
.header__phone-icon {
    width: 25px;
    height: 25px;
    flex-shrink: 0;
}
.header__line-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #06c755;
    color: #fff;
    padding: 10px 20px;
    border-radius: 25px;
    font-size: 14px;
    font-weight: 600;
}
.l-fixHeader .l-container, .l-header .l-container {
    max-width: initial;
}
.l-fixHeader__gnav, .l-header__gnav {
    flex: 1;
}
.l-fixHeader__gnav > .c-gnav, .l-header__gnav > .c-gnav {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
@media (width < 1200px) {
    .header__phone {
        display: none;
    }
    :is(#sp_menu) .header__contact {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }
    :is(#sp_menu) .header__phone {
        display: flex;
    }
}


/* ========================================
 * フッター
 * ======================================== */


/* ========================================
 * Flexbox縦軸配置の修正
 * WordPressコアで is-vertically-aligned-* のスタイルが不足しているため追加
 * ======================================== */

 footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #c9a959, #c53d43, #c9a959);
}

/* 横並びFlex（is-row）の縦軸配置 */
.is-layout-flex.is-vertically-aligned-top {
    align-items: flex-start;
}

.is-layout-flex.is-vertically-aligned-center {
    align-items: center;
}

.is-layout-flex.is-vertically-aligned-bottom {
    align-items: flex-end;
}

/* 縦並びFlex（is-vertical/is-stack）の横軸配置 */
.is-layout-flex.is-vertical.is-vertically-aligned-top,
.is-layout-flex.is-stack.is-vertically-aligned-top {
    justify-content: flex-start;
}

.is-layout-flex.is-vertical.is-vertically-aligned-bottom,
.is-layout-flex.is-stack.is-vertically-aligned-bottom {
    justify-content: flex-end;
}

/* フッターは独自実装するため非表示 */
.l-footer__foot {
    display: none;
}

/* ========================================
 * cta
 * ======================================== */

.-contact-cta {
  background: linear-gradient(135deg, #1a3a5c 0%, #2d5a87 100%);
  background-attachment: fixed;
  position: relative;
  overflow: hidden;
}
.-contact-cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.03' fill-rule='evenodd'/%3E%3C/svg%3E");
  pointer-events: none;
}

.-contact-cta::after {
  content: '';
  position: absolute;
  top: -150px;
  right: -150px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(201, 169, 89, 0.2) 0%, transparent 60%);
  border-radius: 50%;
}