.elementor-33 .elementor-element.elementor-element-57a18e7{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--overlay-opacity:0.5;--overlay-mix-blend-mode:lighten;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--z-index:2;}.elementor-33 .elementor-element.elementor-element-57a18e7::before, .elementor-33 .elementor-element.elementor-element-57a18e7 > .elementor-background-video-container::before, .elementor-33 .elementor-element.elementor-element-57a18e7 > .e-con-inner > .elementor-background-video-container::before, .elementor-33 .elementor-element.elementor-element-57a18e7 > .elementor-background-slideshow::before, .elementor-33 .elementor-element.elementor-element-57a18e7 > .e-con-inner > .elementor-background-slideshow::before, .elementor-33 .elementor-element.elementor-element-57a18e7 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#FFFFFF;--background-overlay:'';}.elementor-33 .elementor-element.elementor-element-8aeb8cf{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--overlay-opacity:0.36;--border-radius:20px 20px 20px 20px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-8aeb8cf::before, .elementor-33 .elementor-element.elementor-element-8aeb8cf > .elementor-background-video-container::before, .elementor-33 .elementor-element.elementor-element-8aeb8cf > .e-con-inner > .elementor-background-video-container::before, .elementor-33 .elementor-element.elementor-element-8aeb8cf > .elementor-background-slideshow::before, .elementor-33 .elementor-element.elementor-element-8aeb8cf > .e-con-inner > .elementor-background-slideshow::before, .elementor-33 .elementor-element.elementor-element-8aeb8cf > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-33 .elementor-element.elementor-element-421fdfd{width:100%;max-width:100%;}.elementor-33 .elementor-element.elementor-element-29221c7{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:40px 40px;--row-gap:40px;--column-gap:40px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:100px;--padding-bottom:100px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-5321506{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:40px 40px;--row-gap:40px;--column-gap:40px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-5321506.e-con{--align-self:center;}.elementor-33 .elementor-element.elementor-element-4d43cb2{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-4d43cb2.e-con{--align-self:center;}.elementor-33 .elementor-element.elementor-element-3473b22{width:100%;max-width:100%;}.elementor-33 .elementor-element.elementor-element-3473b22 img{width:100%;}.elementor-33 .elementor-element.elementor-element-3250811{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-3250811.e-con{--align-self:center;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu .elementor-item{font-family:"Noto Sans JP", Sans-serif;font-size:16px;letter-spacing:1px;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main .elementor-item{color:#FFFFFF;fill:#FFFFFF;padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main .elementor-item:hover,
					.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main .elementor-item:focus{color:#4A91D3;fill:#4A91D3;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#DFDFDF;}.elementor-33 .elementor-element.elementor-element-f479134{--e-nav-menu-horizontal-menu-item-margin:calc( 20px / 2 );}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child){margin-bottom:20px;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a, .elementor-33 .elementor-element.elementor-element-f479134 .elementor-menu-toggle{color:#FFFFFF;fill:#FFFFFF;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown{background-color:#02010100;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a:hover,
					.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a:focus,
					.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a.highlighted{background-color:#4479C6;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a.elementor-item-active{background-color:#35759B;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown .elementor-item, .elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:"Noto Sans JP", Sans-serif;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown li:not(:last-child){border-style:dashed;border-color:#E3E3E3;border-bottom-width:1px;}.elementor-33 .elementor-element.elementor-element-a76d5e0{width:100%;max-width:100%;}.elementor-33 .elementor-element.elementor-element-2d808fa{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-b499dc7{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-2260bba{--display:flex;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-e7dd089 .elementor-heading-title{font-family:"Noto Sans JP", Sans-serif;letter-spacing:1px;color:#FFFFFF;}.elementor-33 .elementor-element.elementor-element-09658ed{font-family:"Noto Sans JP", Sans-serif;font-size:16px;letter-spacing:1px;color:#FFFFFF;}.elementor-33 .elementor-element.elementor-element-bf4bafb{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-33 .elementor-element.elementor-element-6eb0b21 .elementor-button{background-color:#02010100;font-family:"Noto Sans JP", Sans-serif;letter-spacing:1px;fill:#FFFFFF;color:#FFFFFF;border-radius:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-33 .elementor-element.elementor-element-6eb0b21 .elementor-button:hover, .elementor-33 .elementor-element.elementor-element-6eb0b21 .elementor-button:focus{color:#4A91D3;}.elementor-33 .elementor-element.elementor-element-6eb0b21 .elementor-button:hover svg, .elementor-33 .elementor-element.elementor-element-6eb0b21 .elementor-button:focus svg{fill:#4A91D3;}.elementor-33 .elementor-element.elementor-element-91f6fa0{font-family:"Noto Sans JP", Sans-serif;color:#FFFFFF;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-33 .elementor-element.elementor-element-5321506{--width:1000px;}.elementor-33 .elementor-element.elementor-element-4d43cb2{--width:400px;}.elementor-33 .elementor-element.elementor-element-2d808fa{--width:400px;}.elementor-33 .elementor-element.elementor-element-2260bba{--width:400px;}.elementor-33 .elementor-element.elementor-element-bf4bafb{--width:800px;}}@media(max-width:767px){.elementor-33 .elementor-element.elementor-element-29221c7{--padding-top:40px;--padding-bottom:40px;--padding-left:20px;--padding-right:20px;}.elementor-33 .elementor-element.elementor-element-3473b22{width:var( --container-widget-width, 220px );max-width:220px;--container-widget-width:220px;--container-widget-flex-grow:0;}.elementor-33 .elementor-element.elementor-element-3473b22.elementor-element{--align-self:center;}.elementor-33 .elementor-element.elementor-element-f479134{width:100%;max-width:100%;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--dropdown a{padding-left:0px;padding-right:0px;padding-top:20px;padding-bottom:20px;}.elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-33 .elementor-element.elementor-element-f479134 .elementor-nav-menu__container.elementor-nav-menu--dropdown{margin-top:0px !important;}.elementor-33 .elementor-element.elementor-element-e7dd089 .elementor-heading-title{font-size:20px;}.elementor-33 .elementor-element.elementor-element-09658ed{font-size:14px;}.elementor-33 .elementor-element.elementor-element-bf4bafb{--justify-content:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-33 .elementor-element.elementor-element-6eb0b21 .elementor-button{font-size:12px;}.elementor-33 .elementor-element.elementor-element-91f6fa0{font-size:12px;}}/* Start custom CSS for html, class: .elementor-element-421fdfd *//* ==========================================================================
   1. PC版：背景画像セクション（常に表示・レイアウト固定）
   ========================================================================== */
.ct-contact-section {
    position: relative;
    padding: 100px 20px;
    background: url('/wp-content/uploads/2026/01/img_18.jpg') no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
}

/* 背景オーバーレイ（白50%） */
.ct-contact-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.50);
    z-index: 1;
}

.ct-contact-wrapper {
    position: relative;
    z-index: 2;
    max-width: 1100px;
    margin: 0 auto;
}

/* タイトル周り */
.ct-header { text-align: center; margin-bottom: 50px; }
.ct-title { font-size: 56px; color: #1342b5; font-weight: bold; letter-spacing: 0.1em; margin: 0 0 10px; }
.ct-subtitle { font-size: 16px; color: #333; }

/* PC版コンテンツ（横並び） */
.ct-content {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 30px;
    max-width: 840px;
    margin: 0 auto;
}

.ct-btn-box, .ct-tel-box { flex: 1; width: 100%; }

/* メールボタン：PC版 */
.ct-email-link {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1342b5;
    color: #fff !important;
    text-decoration: none;
    padding: 40px 20px;
    border-radius: 8px;
    height: 100%;
    transition: 0.3s;
}
.ct-email-link:hover { transform: translateY(-3px); opacity: 0.9; }

.ct-flex-inner { display: flex; align-items: center; gap: 20px; }
.ct-icon-mail { width: 45px; filter: brightness(0) invert(1); flex-shrink: 0; }
.ct-main { font-size: 20px; font-weight: bold; line-height: 1.4; display: block; }
.ct-sub { font-size: 13px; opacity: 0.8; display: block; margin-top: 4px; }

/* 電話ボックス：PC版 */
.ct-tel-inner {
    background: #fff;
    border: 2px solid #1342b5;
    padding: 30px 20px;
    border-radius: 8px;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.ct-tel-label { font-size: 14px; color: #1342b5; font-weight: bold; margin-bottom: 5px; }
.ct-tel-number { display: flex; align-items: center; justify-content: center; gap: 12px; }
.ct-tel-number a { font-size: 32px; font-weight: bold; color: #1342b5; text-decoration: none; }
.ct-icon-tel { width: 28px; }
.ct-tel-time { font-size: 13px; color: #666; margin-top: 5px; }

/* ==========================================================================
   2. スマホ版：フローティング制御（左固定・アイコン化・中央寄せ調整）
   ========================================================================== */
@media screen and (max-width: 767px) {
    /* PCの背景セクション設定を解除 */
    .ct-contact-section { padding: 0 !important; background: none !important; }
    .ct-contact-section::before, .ct-header { display: none !important; }

    /* 全体コンテナを左下に固定 */
    .ct-content {
        position: fixed !important;
        bottom: 20px;
        left: 20px;
        z-index: 99999;
        flex-direction: column !important;
        gap: 12px !important;
        margin: 0 !important;
        width: auto !important;
        
        /* 初期状態（JS発火まで非表示） */
        opacity: 0;
        visibility: hidden;
        transform: translateY(30px);
        transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s;
    }

    /* JSで付与される表示クラス */
    .ct-content.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    /* アイコン共通：強制的に完璧な円形と中央揃え */
    .ct-email-link, .ct-tel-inner {
        width: 65px !important;
        height: 65px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.2) !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        border: none !important;
    }

    /* メール（青）と電話（白）の個別背景 */
    .ct-email-link { background: #1342b5 !important; }
    .ct-tel-inner { 
        background: #fff !important; 
        border: 2px solid #1342b5 !important; 
    }

    /* 不要なテキストや余白をスマホ時は徹底削除 */
    .ct-text, .ct-tel-label, .ct-tel-time { display: none !important; }
    .ct-tel-number a { font-size: 0 !important; margin: 0 !important; }
    
    /* 中間要素の配置をリセット */
    .ct-flex-inner, .ct-tel-number {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* アイコンサイズ・位置の最終調整 */
    .ct-icon-mail { width: 30px !important; margin: 0 !important; }
    .ct-icon-tel { 
        width: 28px !important; 
        height: auto !important; 
        margin: 0 !important;
        display: block !important;
        /* 電話アイコンが左に寄って見える場合の微調整（右へ2px） */
        transform: translateX(4px) !important; 
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-a76d5e0 *//* 横線のみのスタイル */
.elementor-33 .elementor-element.elementor-element-a76d5e0 .custom-horizontal-line {
    width: 100%;            /* 横幅いっぱい */
    height: 1px;            /* 線の太さ */
    background-color: #ffffff; /* 線の色（白） */
    margin: 0px 0;         /* 上下の余白（適宜調整してください） */
    border: none;           /* 余計な枠線を消去 */
    opacity: 0.6;           /* 少し透かせると背景に馴染みます。不要なら削除 */
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-552ef0f *//* 親コンテナ */
.banner-flex-container {
    display: flex;
    gap: 28px;
    width: 100%;
}

.custom-banner-card {
    flex: 1;
    text-decoration: none !important;
    display: block;
    transition: transform 0.3s ease;
}

.custom-banner-card:hover {
    transform: translateY(-3px);
}

/* ラッパー */
.banner-image-wrap {
    position: relative;
    background-color: #fff;
    padding: 45px 30px 35px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 120px;
    box-sizing: border-box;
}

/* ロゴの上のテキスト */
.banner-label {
    position: absolute;
    top: 20px;
    left: 40px;
    font-size: 18px;
    color: #333;
    font-weight: 500;
    letter-spacing: 0.05em;
}

/* ロゴ画像 */
.banner-image-wrap img {
    max-width: 80%; /* 矢印との干渉を防ぐため少し絞る */
    height: auto;
    display: block;
}

/* 右側の丸矢印 */
.banner-arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    background-color: #174cae;
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transition: transform 0.3s ease;
}

/* ホバー時に矢印も少し動かす */
.custom-banner-card:hover .banner-arrow {
    transform: translateY(-50%) translateX(5px);
}

/* --- レスポンシブ調整 --- */

@media screen and (max-width: 767px) {
    .banner-flex-container {
        flex-direction: column;
        gap: 15px; /* カード同士の間隔を少し詰める */
    }

    .banner-image-wrap {
        padding: 40px 20px 30px; /* 余白をスマホ用にスリム化 */
        min-height: 100px; /* 高さを少し抑える */
    }

    .banner-label {
        top: 15px;
        left: 20px; /* paddingに合わせて左に寄せる */
        font-size: 15px; /* 文字を少し小さく */
    }

    .banner-image-wrap img {
        max-width: 70%; /* スマホではロゴをさらに少し小さくして矢印との衝突回避 */
    }

    .banner-arrow {
        right: 15px;
        width: 32px; /* 矢印ボタンを少しコンパクトに */
        height: 32px;
        font-size: 14px;
    }
}

/* 超小型スマホ (375px以下) */
@media screen and (max-width: 375px) {
    .banner-label {
        font-size: 14px;
    }
    .banner-image-wrap img {
        max-width: 65%;
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-c23e908 *//* Back to top button */
.btt{
  --ink:#333333;
  display:inline-flex;
  align-items:center;
  gap:10px;
  border-radius:6px;
  color:var(--ink);
  text-decoration:none;
  transition: color .2s ease;
  font-family:"Afacad", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:transparent;
}

/* 右下固定＋最初は非表示 */
.btt--fixed{
  position:fixed;
  right:20px;
  bottom:24px;
  z-index:999;
  opacity:0;
  pointer-events:none;
  transform: translateY(10px);
  transition:
    opacity .25s ease,
    transform .25s ease;
}

/* スクロールしたら表示用クラス */
.btt--fixed.is-visible{
  opacity:1;
  pointer-events:auto;
  transform: translateY(0);
}

/* テキスト */
.btt__text{
  font-weight:600;
  font-size:14px;
  line-height:1;
  color:var(--ink);
  letter-spacing:0.12em;
  transition: color .2s ease;
}

/* アイコン */
.btt__icon{
  width:22px;
  height:22px;
  display:inline-block;
  color:var(--ink);
  transition: color .2s ease;
}

/* 矢印アニメーション */
.btt__arrow{
  width:100%;
  height:100%;
  display:block;
  transform: translateY(0);
  transition: transform .22s cubic-bezier(.22,1,.36,1);
}

/* hoverで矢印だけ上に */
.btt:hover .btt__arrow,
.btt:focus-visible .btt__arrow{
  transform: translateY(-3px);
}

/* hover時：文字＆アイコンを少しグレーに */
.btt:hover,
.btt:hover .btt__text,
.btt:hover .btt__icon{
  color:#4A91D3 !important;
}

/* focus時リング */
.btt:focus-visible{
  outline:2px solid rgba(0,0,0,.35);
  outline-offset:2px;
}

/* 省モーション対応 */
@media (prefers-reduced-motion:reduce){
  .btt__arrow{ transition:none; transform:none; }
}/* End custom CSS */