/*

Theme Name: foodie-buddy

Theme URI:

Template: swell

Description:

Author:

Tags:

Version: 0.6.1

*/

div#content {
    padding-top: 0!important;
}

/* PC表示のみ：ヘッダーをカプセル型にして浮かせる */
@media (min-width: 960px) {
  
  /* ヘッダー本体の配置と形状 */
  #header {
    position: absolute;           /* コンテンツの上に重ねる */
    top: 38px;                    /* 上端からの距離（好みで調整） */
    left: 50%;                    /* 左右中央寄せの基準 */
    transform: translateX(-50%);  /* 真ん中に配置 */
    width: 94%;                   /* 横幅（画面に対する割合） */
    max-width: 1400px;            /* 横幅の最大値 */
    background-color: #fff !important; /* 背景色を白に固定 */
    border-radius: 60px;          /* 角を丸くする（カプセル型） */
    box-shadow: 0 4px 20px rgba(0,0,0,0.1); /* 影をつけて浮いている感を出す */
    padding: 0 30px;              /* ヘッダー内の左右余白 */
    z-index: 999;                 /* 最前面に表示 */
    border-bottom: none !important; /* 元の線を消す */
  }

  /* ヘッダー内部の高さ調整 */
  .l-header__inner {
    height: 70px !important;      /* ヘッダーの高さ（好みで調整） */
    width: 100% !important;
    max-width: none !important;
  }

  /* ロゴ周りの余白調整 */
  .head_logo {
    margin: 0;
  }

  /* --- メニューのデザイン調整（ご希望の画像に近づける） --- */
  
  /* メニュー文字の設定 */
  .c-gnav > li > a {
    font-size: 13px;       /* 文字サイズ */
    font-weight: 700;      /* 太字 */
    color: #333 !important;/* 文字色（黒） */
    padding-left: 15px;    /* メニュー間の間隔調整 */
    padding-right: 15px;
  }
  
  /* メニューホバー時の背景を消す（SWELL標準のグレー背景などを無効化） */
  .c-gnav > li > a:hover {
    background: none !important;
    opacity: 0.7;
  }

 
}



p.fb-title {
    font-size: clamp(24px, 10vw, 46px);
    color: #FFFFFF;
    font-weight: 600;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
    /* text-align: center; */
    margin: 0!important;
    padding: 0;
}



.fb-content-wrap {
    width: 40%;
    max-width: 650px;
    text-align: right;
    position: absolute;
    bottom: 60px;
    z-index: 99;
}

.fb-tagline {
  display: inline-block;
  background-color: #3b5998;
  color: #fff;
  padding: 5px 20px;
  font-size: 22px;
  font-weight: bold;
  width: 100%;
  text-align: right;
}

.fb-line {
  width: 100%;
  height: 1px;
  background-color: #3b5998;
  margin: 15px 0 20px;
}

.fb-logo-title img {
    max-width: 350px;
    height: auto;
    display: block;
    padding: 5px 20px;
    background-color: #ffffff45;
}

.fb-subtitle {
    color: #fff;
    font-size: 14px;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8);
    text-align: left;
    margin-bottom: 0;
}
.fb-logo-title {
    display: flex;
    justify-content: end;
    margin-bottom: 0;
    padding: 0;
}
.top-img{min-height: 80vh;}



.main-p{
    margin-bottom: 0;
}


.fb-banner-wrap.alignfull {
    position: relative;
    margin: 0;
}

.top-img {
    margin-bottom: 0;
}

/* --- 画面いっぱいレイアウト（左テキスト・右画像） --- */


    
    .full-screen-split {
        padding: 0 !important; /* 余計な余白を消す */
        overflow: hidden;      /* はみ出し防止 */
    }

    /* カラムブロック自体の設定 */
    .full-screen-split > .wp-block-columns {
        margin-bottom: 0 !important;
        gap: 0 !important;      /* カラム間の隙間をなくす */
        align-items: stretch;   /* 高さを揃える */
    }



.top-content-text-left {
  
    /* background: linear-gradient(to bottom, #f0f2f5 60%, transparent 60%); */
    
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 80px;
    padding-bottom: 80px;
    padding-left: calc(50vw - 650px);
}

.top-content-text-right {
    
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 80px;
    padding-bottom: 80px;
    padding-right: calc(50vw - 650px);
}






      
    

    /* --- 右カラム：画像 --- */
    .full-screen-split .wp-block-column:last-child {
        margin: 0 !important;
    }

    /* 画像をエリアいっぱいに広げてトリミング */
    .full-screen-split .wp-block-column:last-child figure,
    .full-screen-split .wp-block-column:last-child img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;      /* 枠に合わせてトリミング */
        vertical-align: bottom; /* 下の隙間消し */
        
    }




.gap-0 {
    gap: 0!important;
}

/* 左線付きの見出しデザイン */
.c-section-title {
    border-left: 5px solid #4a6fa5; /* 左側の線の太さと色 */
    padding-left: 15px;             /* 線と文字の隙間 */
    margin-bottom: 30px;            /* 下のコンテンツとの余白 */
    line-height: 1;                 /* 行の高さを詰める */
}

.c-section-title .title-en {
    color: #466496;
    font-size: 1.8rem;
    font-weight: 700;
    margin: 0 0 5px 0 !important;
    line-height: 1;
    font-family: "Helvetica Neue", Arial, sans-serif;
    border: none !important;
    padding: 0 !important;
    background: none !important;
}

/* SWELLの擬似要素（吹き出し等）を念のため消す */
.c-section-title .title-en::before,
.c-section-title .title-en::after {
    display: none !important;
}

/* 日本語サブタイトル (会社案内) */
.c-section-title .title-ja {
    display: block;                 /* 改行させる */
    color: #333;                    /* 黒っぽい文字色 */
    font-size: 0.9rem;              /* 小さめの文字サイズ */
    font-weight: 500;
    line-height: 1.2;
}

.gray-half{
           background: linear-gradient(to bottom, 
        transparent 20%, 
        #f0f2f5 20%, 
        #f0f2f5 60%, 
        transparent 60%
    );
}

.gray-half-mid { 
  background: linear-gradient(
    to bottom, 
    transparent 0%, 
    transparent 13%, 
    #f0f2f5 13%, 
    #f0f2f5 48%, 
    transparent 48%
  ); 
}



/* radius-left の中にある figure（枠）を丸くして、はみ出しをカットする */
.radius-left{
    border-radius: 30px 0 0 30px;
    overflow: hidden; 
}

.radius-right {
    border-radius: 0 30px 30px 0;
    overflow: hidden; 
}

.swell-block-button {
    margin: inherit;
}


.gap-5em{gap:5em!important;}


@media screen and (max-width: 1350px) {
    .gap-5em{gap:0em!important;}
    

.top-content-text-left {
    padding-left: 2em;
    padding-top: 0em;
}

.top-content-text-right {
    padding-right: 2em;
    padding-top: 0em;
}

}

ul.top-news-white {
    list-style: none;
}

.top-news-white .taxonomy-category {
    background-color: #dae0ea;
    padding: 0px;
    width: 60px;
    font-size: 11px;
    text-align: center;
    border-radius: 20px;
}

/* --- ニュースリスト右端ボタン風カスタマイズ（完成版） --- */

/* 1. タイトルが入っているカラムを右端まで強制的に伸ばす */
/* .custom-news-list > .wp-block-column:last-child {
    flex-grow: 1;
} */

/* 2. タイトルのリンクを横並びレイアウトに変更 */
.custom-news-list a {
    display: flex;
    justify-content: space-between; /* 文字は左、アイコンは右へ */
    align-items: center;            /* 上下中央揃え */
    width: 100%;                    /* 横幅いっぱい使う */
    text-decoration: none;          /* 下線を消す */
    gap: 1em;                       /* 文字とボタンの間隔を確保 */
}

/* 3. 右端に「▶アイコン」を作る */
.custom-news-list a::after {
    content: "\25B6";
    display: flex;
    justify-content: center;
    align-items: center;
    width: 20px;
    height: 20px;
    background-color: #4b6cb7;
    color: #fff;
    border-radius: 50%;
    font-size: 10px;
    flex-shrink: 0;
    margin-left: auto;
    transition: 0.3s;
    padding-left: 2px;
}

/* ホバー時の動き */
.custom-news-list a:hover::after {
    background-color: #3b5998;
    transform: translateX(3px);
}

.padding-top-0 {
    padding-top: 0;
}

.top-content-text-right-padding-right{
    padding-right: calc(50vw - 650px)!important;
    border-radius:20px 0 0 20px;
}

.top-news-white hr{margin:10px;}


/* --- フッターメニュー完成版（位置ズレ修正＋アニメーション） --- */

/* 1. リスト全体の設定 */
.menu-footer-menu-container ul.menu {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end;
    list-style: none !important;
    padding: 0 !important;
    margin: 30px 0 ;
    gap: 0 !important;
    border: none !important;
}

/* 2. 各項目の設定 */
.menu-footer-menu-container ul.menu li {
    border-left: 1px solid #5d7090 !important;
    padding: 0 15px !important;
    margin: 0;
    width: auto !important;
    background: none !important;
    display: flex !important;
    align-items: center !important;
}

/* 一番最後の項目（注文）の右余白削除 */
.menu-footer-menu-container ul.menu li:last-child {
    padding-right: 0 !important;
    border-right: none !important;
}

/* 不要な装飾削除 */
.menu-footer-menu-container ul.menu li::before,
.menu-footer-menu-container ul.menu li::after {
    content: none !important;
    display: none !important;
}

/* 3. リンク文字の設定 */
.menu-footer-menu-container ul.menu li a {
    text-decoration: none !important;
    border-bottom: none !important;
    background: none !important;
    color: #333 !important;
    font-weight: 500;
    font-size: 13px;
    
    /* 上下中央揃えの基準 */
    display: flex !important;
    align-items: center !important; 
    
    /* 高さのズレを防ぐために行間を固定 */
    line-height: 1 !important; 
    height: 100% !important;
    
    gap: 8px !important; 
    padding: 0 !important; 
    margin: 0 !important;
}

.menu-footer-menu-container ul.menu li:last-child a {
    padding-right: 0 !important;
    margin-right: 0 !important;
}

/* 4. 文字の前の「▶」の設定（★位置ズレ修正のキモ） */
.menu-footer-menu-container ul.menu li a::before {
    content: "\25B6" !important;
    font-family: Arial, sans-serif;
    font-size: 8px !important;
    color: #555 !important;
    
    position: static !important; 
    display: inline-block !important;
    
    /* ★ここ！三角が「上」に見えるなら正の数、「下」に見えるなら負の数を入れます */
    /* 今回は「ほんの少し下」に下げて、文字の中心に合わせます */
    margin-top: 0px !important; 
    
    margin-bottom: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;

    /* アニメーション設定 */
    transition: transform 0.3s ease !important;
    transform: translateX(0) !important;
}

/* ホバー時に三角を右に動かす */
.menu-footer-menu-container ul.menu li a:hover::before {
    transform: translateX(5px) !important;
    color: #4b6cb7 !important;
}

/* 5. 注文の後のアイコン調整 */
/* .menu-footer-menu-container ul.menu li a i {
    display: none !important;
}
.menu-footer-menu-container ul.menu li:last-child a::after {
    content: "\2750" !important;
    font-family: Arial, sans-serif;
    font-size: 14px !important;
    color: #555 !important;
    line-height: 1 !important;
    display: inline-block !important;
    position: static !important;
    margin-left: 2px !important;
    
 
    margin-top: -2px !important;
} */

/* --- プライバシーポリシー --- */
#block-10 p {
    text-align: right !important;
    font-size: 12px;
    margin-top: 20px;
    color: #333;
}
#block-10 p a {
    text-decoration: none !important;
    border: none !important;
    color: #333 !important;
    display: inline-flex !important; /* ここもFlexにして揃える */
    align-items: center !important;
    gap: 5px !important;
}
#block-10 p a::before {
    content: "\25B6";
    font-family: Arial, sans-serif;
    font-size: 8px;
    color: #555;
    display: inline-block;
    position: static !important;
    
    /* 上と同じ調整値 */
    margin-top: 2px !important;
    
    transition: transform 0.3s ease !important;
}
#block-10 p a:hover::before {
    transform: translateX(5px) !important;
}
/* --- 青背景セクション全体 --- */
.blue-cta-section {
    background-color: #466496;
    color: #fff;
    padding: 60px 20px;
    width: 100%;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
}

/* コンテンツ幅の制限 */
.cta-inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- 3カラムレイアウト --- */
.service-row {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 50px;
}

.service-col {
    flex: 1; /* 3等分 */
    display: flex;
    flex-direction: column;
}

/* 縦線（左に線を入れるスタイル） */
.service-col.bordered {
    border-left: 1px solid rgba(255, 255, 255, 0.4);
    padding-left: 30px;
}

/* 見出し */
.service-col h4 {
    display: flex;
    align-items: center;
    font-size: 20px;
    margin-bottom: 15px;
    color: #fff;
}
.service-col h4 img {
    width: 40px;
    height: auto;
    margin-right: 10px;
}

/* 本文 */
.service-col p {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 20px;
    flex-grow: 1; /* ボタンの高さを揃えるために伸ばす */
}

/* --- ボタンデザイン --- */
.cta-btn {
    display: block;
    background: #fff;
    color: #4b6cb7; /* 文字色（青） */
    text-align: center;
    padding: 12px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    font-size: 14px;
    transition: 0.3s;
}
.cta-btn:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}
.cta-btn i {
    margin-right: 5px;
}
.cta-btn .small-icon {
    margin-left: 5px;
    font-size: 12px;
}

/* 黄色っぽいボタン（仕入購入） */
.cta-btn.yellow-btn {
    background: #fef9c3; /* 薄い黄色 */
    color: #333;
}

/* --- 会社情報エリア（右寄せ・グリッド） --- */
.company-info-area {
    max-width: 350px;
    margin-left: auto; /* 右寄せ */
    text-align: left;
}

.company-name {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
}

/* 住所と電話番号の横並び設定 */
.info-grid {
    display: flex;
    justify-content: space-between;
    align-items: flex-end; /* 下揃え */
    margin-bottom: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.1); /* 薄い区切り線 */
    padding-bottom: 10px;
}

.info-label {
    font-size: 12px;
    line-height: 1.4;
}
.info-label strong {
    font-size: 13px;
    display: inline-block;
    margin-bottom: 3px;
}

.info-tel {
    font-size: 13px;
    white-space: nowrap; /* 電話番号を折り返さない */
    margin-left: 20px;
}

/* --- スマホ対応 --- */
@media (max-width: 768px) {
    .service-row {
        flex-direction: column; /* 縦積みに */
        gap: 40px;
    }


}

/* --- コピーライトエリアのフルワイド化（位置ズレ修正版） --- */
.l-footer__foot {
    width: 100vw !important;
    position: relative !important;
    left: 50% !important;
    margin-left: -50vw !important;
    background-color: #6b83ab !important;
    color: #ffffff !important;
    padding: 15px 0 !important;
    margin-bottom: 0 !important;
    margin-top: 0 !important;
}

/* 中の文字を中央に保つ */
.l-footer__foot .l-container {
    max-width: 1000px !important; /* 必要なら文字の広がりを抑える */
    margin: 0 auto !important;
}

.l-footer__foot .copyright {
    margin: 0 !important;
    font-size: 12px !important;
    text-align: center !important;
}

.main-p {
    height: 80vh;
}
@media (max-width: 900px) {
    .main-p {
    height: 60vh;}

.fb-content-wrap {
    width: 50%;
}
}


.dispaly-sp {
    display: none;
}

.wp-block-column.has-white-background-color.has-background::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -100vw;   /* 右に画面分伸ばす */
  width: 100vw;
  background: #fff;
  z-index: -1;     /* 背景に回す */
}
.wp-block-column.has-white-background-color.has-background {
  position: relative;
  overflow: visible; /* はみ出し許可 */
}




/* スマホ用 */
@media screen and (max-width: 782px) {

    .c-section-title.dispaly-pc {
    display: none;
}

.c-section-title.dispaly-sp {
    display: block;
     margin-left: 20px;
}




p.fb-title {
    text-align: left;
    /* color: #3b5998; */
    /* text-shadow: none; */
}
.fb-tagline {
    font-size: 18px;
}
/* p.fb-title {
   font-size: 1.4em;
} */
.top-img{min-height: 40vh;
}

.fb-content-wrap {
    width: 100vw;
    position: initial;
}


.fb-tagline {
    width: 100vw;
    text-align: left;}

.top-img {position:relative;
}

.fb-logo-title {
    width: 100vw;
    /* text-align: left; */
    position: absolute;
    padding: 0 0 0 20px;
    justify-content: flex-start;
    z-index: 99;
}

p.fb-title {
    text-align: left;
}



.fb-logo-title > div {
  display: inline-block;
  position: relative;
  z-index: 1;
}

.fb-title {
  font-size: 2.5em;
  font-weight: bold;
  margin: 0 0 5px 0;
  color: #333;
}

.fb-subtitle {
    font-size: 14px;
    margin: 0;
    color: #333333;
    text-shadow: none;
    margin-top: -5px!important;
}

.column-reverse {
        display: flex !important;
        flex-direction: column-reverse !important;
    }


    .wp-block-column.is-vertically-aligned-center.radius-left img{width:100%;
                                                             height:auto;}


/* .wp-block-column.is-vertically-aligned-center.radius-left {padding-left:20px;
position: relative;}


.top-content-text-left .c-section-title {position:absolute;top:-80px;} */

.gap-5em.column-reverse {
    gap: 0!important;
}

.gray-half {
    padding-top: 0px!important;
}
.wp-block-columns.are-vertically-aligned-top {
    display: block;
}

.top-content-text-left {position:relative;}

.gray-half,.gray-half-mid {
    background: none;
}

.top-content-text-left::before {
  content: "";
  position: absolute;
  width: 180px;   /* 四角の大きさ */
  height: 180px;
  background: #ecefef;
  top: 80px;
  left: 0px;
  z-index: -1; /* 背景に回す */
}

.top-content-text-right::before {
    content: "";
    position: absolute;
    width: 200px;
    height: 200px;
    background: #ecefef;
    top: 290px;
    right: 0px;
    z-index: -1;
}

.radius-left {
    margin-left: 20px;
}

.radius-right {
    margin-right: 20px;
}

.top-content-text-left,.top-content-text-right {
    padding: 20px;
}

.margin-s {
    margin-left: 20px;

}

ul#menu-footer-menu {
    justify-content: flex-start;
}

ul#menu-footer-menu li {
    margin-bottom: 8px;
    width:30%!important;
}
.service-col.bordered {
    padding: 0;
    border: none;
}

.top-news-white.wp-block-post-template{
    padding-left: 0;
}

}



/* 帯のテキスト要素自体への指定 */
.main-p .wp-block-column p.has-background {
    position: relative; /* 疑似要素の基準点にする */
    overflow: visible;  /* はみ出しを許可する */
}

/* 疑似要素で左に背景を伸ばす */
.main-p .wp-block-column p.has-background::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;       /* 本体の左端にくっつける */
    width: 100vw;      /* 画面幅いっぱいに伸ばす（十分な長さがあればOK） */
    background-color: inherit; /* 本体の背景色を引き継ぐ */
    pointer-events: none; /* 誤クリック防止 */
}

.main-p .swell-block-fullWide__inner.l-container {
    padding: 0;
}

p.has-text-align-left.main-title-01.has-swl-main-background-color.has-background {
    padding: 5px;
    font-size: 25px;
}

p.has-text-align-left.fb-tagline {
        padding-left: var(--swl-pad_container, 0);
        padding-top: 10px;
        padding-bottom:10px;
        padding-right: 10px;

    text-align: left;
}

p.fb-title  {
     padding-left: var(--swl-pad_container, 0);
}

.fb-subtitle {
     padding-left: var(--swl-pad_container, 0);
}

@media screen and (max-width: 958px) {
    .sp_only.main-title-sp ::before {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    background: #ecefef;
    top: 50px;
    right: 0px;
    z-index: -1;
}
}

/* ここから下層ページ */

.page-main-title-area {
    position: relative;
}

.page-main-title {
    position: absolute;
    top: -300px;
}

.drop-shadow {
    background-color: #ffffff;
    padding: 60px;
    border-radius: 30px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

.wp-block-column.has-swl-gray-background-color.has-background {
    position: relative;
    z-index: 1;
    overflow: visible;
}

/* ① 勝手についている不要な背景色を消す */
.page-main-title-area .wp-block-column.has-background {
    background-color: transparent !important;
}

/* ② 基準を「中身の枠（インナー）」に設定する */
.page-main-title-area .swell-block-fullWide__inner {
    position: relative;
    z-index: 2; /* 中身（COMPANYの箱）を手前に出す */
}

.page-main-title-area .swell-block-fullWide__inner::before {
    content: "";
    display: block;
    position: absolute;
    background-color: #ecefef;
    top: 0;
    bottom: 0;
    right: 0;
    width: 100vw;
    z-index: -1;
}


#gnav .c-gnav .menu-item .ttl::before {
  content: "▶";
  font-size: 0.6em;
  margin-right: 0.4em;
}

/* --- 追従バナーCSS (アニメーション機能追加版) --- */

/* バナー全体の枠組み */
.float-banner-container {
  position: fixed !important;
  bottom: 150px;
  right: 20px;
  width: 280px;
  background-color: #4b6cb7;
  border-radius: 10px;
  padding: 15px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  z-index: 2147483647;
  font-family: sans-serif;
  box-sizing: border-box;
  text-align: left;

  /* ▼▼▼ 追加したアニメーション設定 ▼▼▼ */
  opacity: 0;                  /* 最初は透明 */
  visibility: hidden;          /* 最初は存在しない状態 */
  transform: translateY(20px); /* 少し下に沈めておく */
  transition: opacity 0.5s, transform 0.5s, visibility 0.5s; /* ふわっと動く設定 */
}

/* ▼▼▼ 表示された時の状態（JSでこのクラスがつくと現れる） ▼▼▼ */
.float-banner-container.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ヘッダー */
.float-banner-header {
  color: #fff;
  text-align: center;
  font-size: 13px;
  font-weight: bold;
  margin-bottom: 12px;
  display: block;
}

/* --- ボタン共通スタイル --- */
.float-btn {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  background: #fff;
  color: #4b6cb7;
  padding: 12px;
  margin-bottom: 10px;
  border-radius: 50px;
  text-decoration: none !important;
  font-weight: bold;
  font-size: 14px;
  transition: 0.3s;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  box-sizing: border-box;
  border: none;
  line-height: 1.4;
}

.float-btn:last-child {
  margin-bottom: 0;
}

.float-btn:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}

/* --- 色設定 --- */
.btn-white {
  background: #fff !important;
  color: #4b6cb7 !important;
}

.btn-yellow {
  background: #fef9c3 !important;
  color: #333 !important;
}

/* --- アイコン設定 --- */
.btn-white .icon-play {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 5px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%234b6cb7' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.btn-yellow .icon-play {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 5px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23333333' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.icon-external {
  margin-left: auto;
  padding-left: 5px;
}
.icon-external::after {
  content: "\2750" !important;
  font-size: 14px;
  color: #333;
  display: inline-block;
  line-height: 1;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
  .float-banner-container {
     display:none !important;
  }
}

.gray-square::before {
    content: "";
    position: absolute;
    bottom: -50px;
    right: 0;
    width: 40%;
    height: 200px;
    background-color: #f2f2f2;
    z-index: -1;
}

.drop-shadow {
    max-width: 600px;
    position: absolute;
    left: 50%;
    width: 90%;
    transform: translateX(-50%);
    top: -300px;
}

.page-main-title-area {
    margin: 0!important;
}



.about-line {
    border-top: 1px solid #ccc;
    padding-top: 40px;
    padding-bottom: 40px;
    gap: 5%!important;
    margin-bottom: 0!important;
}

/* 2. 一番最後の greeting-column だけ「下」にも線を引く */
.about-line:last-of-type {
    border-bottom: 1px solid #ccc;
}
/* .greeting-column {
    gap: 5%!important;
} */

.greeting-column img {
    padding: 20px;
}
/* デフォルトの・を消して、余白をリセット */
ul.wp-block-list {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

/* リストアイテムの設定 */
ul.wp-block-list li {
    position: relative; /* アイコンの位置の基準点 */
    padding-left: 1.8em; /* アイコン＋隙間分のスペースを空ける */
    margin-bottom: 0.5em; /* 行間（お好みで調整） */
    line-height: 1.5; /* 文章の行間 */
}

/* アイコンの設定 */
ul.wp-block-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.2em; /* テキストとの縦位置調整（微調整してください） */
    width: 1.2em; /* アイコンの幅 */
    height: 1.2em; /* アイコンの高さ */
    background-image: url('https://foodie-buddy.com/wp-content/uploads/2026/01/sns-service-List-icon.webp');
    background-size: contain; /* 画像全体を表示 */
    background-repeat: no-repeat;
    background-position: center;
}

@media screen and (max-width: 768px) {
.greeting-column img {
    padding: 10px 60px 40px;
}

}

/* fvサイトタイトル */
/* フルワイドブロック全体 */
.main-p {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    padding: 0 !important;
    min-height: 80vh !important; /* 2枚目の高さに合わせるため少し調整 */
}

/* 中のコンテナ（ここが重要！） */
.main-p .swell-block-fullWide__inner {
    /* 左端固定をやめて、中央に配置（これでロゴのラインに揃います） */
    margin-left: auto !important;
    margin-right: auto !important;
    
    /* サイトの最大幅を設定（SWELLのデフォルトは1200px程度） */
    max-width: 1500px !important; 
    
    /* ロゴの端っこにピッタリ合わせるための左右余白 */
    /* SWELLの「サイト幅」の設定に合わせて微調整してください */
    padding-left: 40px !important; 
    padding-right: 40px !important;
    
    padding-bottom: 30px !important; /* 下から30px */
    width: 100% !important;
}

/* テキストエリアを左寄せに固定 */
.main-p .company-name {
    margin-left: 0 !important;
    text-align: left !important;
}

/* ここから投稿ページ */
/* 投稿ページのメインコンテンツとサイドバーに一括で余白を入れる */

@media screen and (min-width: 960px) {
  .single article.l-mainContent__inner,
  .archive article.l-mainContent__inner,
  .category article.l-mainContent__inner,
  .tag article.l-mainContent__inner,
  .date article.l-mainContent__inner,
  .author article.l-mainContent__inner,
  .search article.l-mainContent__inner,
  .blog article.l-mainContent__inner,
  .single aside#sidebar,
  .archive aside#sidebar,
  .category aside#sidebar,
  .tag aside#sidebar,
  .date aside#sidebar,
  .author aside#sidebar,
  .search aside#sidebar,
  .blog aside#sidebar {
    padding-top: 7em;
  }
}

/* 関連記事のアイキャッチ画像を非表示にする */
.p-relatedPosts .p-postList__thumb {
    display: none;
}

/* 画像が消えた分、テキストエリアを横幅いっぱいに広げる */
.p-relatedPosts .p-postList__body {
    width: 100%;
}

/*ContactFormカスタマイズ*/
.cf7__list {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 60px;
}

.cf7__list dt:nth-of-type(n + 2),
.cf7__list dd:nth-of-type(n + 2) {
  margin-top: 30px;
}

.cf7__list dt {
  width: 35%;
  padding-top: 15px;
}

.cf7__list dd {
  width: 65%;
}

/* 必須・任意 */
.cf7__required,
.cf7__optional {
  margin-right: 15px;
  padding: 6px 14px;
  color: #fff;
  font-size: 12px;
  vertical-align: 1px;
}

.cf7__required {
  background: #BE1D1D;
}

.cf7__optional {
  background: #878D8E;
}

/* input・textarea */
.cf7__list dd input[type="text"],
.cf7__list dd input[type="tel"],
.cf7__list dd input[type="email"],
.cf7__list dd textarea {
  width: 100%;
  padding: 15px 20px;
  background: #F4F4F4;
}

/* ドロップダウンメニュー */
.cf7__select {
  position: relative;
}

.cf7__select:before {
  position: absolute;
  top: 50%;
  right: 20px;
  z-index: 10;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 8px solid #000;
  border-right: 6px solid transparent;
  border-left: 6px solid transparent;
  pointer-events: none;
  content: '';
}

.cf7__select select {
  width: 100%;
  padding: 19px 20px;
  background: #F4F4F4;
  color: #a5a5a5;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

/* チェックボックス・ラジオボタン */
.cf7__list dd .wpcf7-checkbox,
.cf7__list dd .wpcf7-radio {
  display: block;
  padding: 15px 0 10px;
}

/* 縦並び（チェックボックス・ラジオボタン） */
.cf7__list dd .wpcf7-list-item {
  display: block;
  margin: 0;
}

.cf7__list dd .wpcf7-list-item:nth-child(n + 2) {
  margin-top: 18px;
}

/* マウスカーソル（チェックボックス・ラジオボタン） */
.cf7__list dd .wpcf7-list-item label {
  cursor: pointer;
}

/* チェックボックス・ラジオボタン */
input[type="checkbox"],
input[type="radio"] {
  position: relative;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  border: 1px solid #bcbcbc;
  vertical-align: -3px;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

/* チェックボックス */
input[type="checkbox"]:checked {
  border: 1px solid #000;
  background: #000;
}

input[type="checkbox"]:checked:before {
  position: absolute;
  top: 2px;
  left: 5px;
  transform: rotate(50deg);
  width: 6px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: '';
}

/* ラジオボタン */
input[type="radio"] {
  border-radius: 50%;
}

input[type="radio"]:checked:before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #000;
  content: '';
}

/* プレースホルダー */
/* Google Chrome / Safari / Mozilla Firefox / Opera */
.cf7__list dd input[type="text"]::placeholder,
.cf7__list dd input[type="tel"]::placeholder,
.cf7__list dd input[type="email"]::placeholder,
.cf7__list dd textarea::placeholder {
  color: #a5a5a5;
}

/* Microsoft Edge */
.cf7__list dd input[type="text"]::-ms-input-placeholder,
.cf7__list dd input[type="tel"]::-ms-input-placeholder,
.cf7__list dd input[type="email"]::-ms-input-placeholder,
.cf7__list dd textarea::-ms-input-placeholder {
  color: #a5a5a5;
}

/* Internet Explorer */
.cf7__list dd input[type="text"]:-ms-input-placeholder,
.cf7__list dd input[type="tel"]:-ms-input-placeholder,
.cf7__list dd input[type="email"]:-ms-input-placeholder,
.cf7__list dd textarea:-ms-input-placeholder {
  color: #a5a5a5;
}

/* 送信ボタン */
.cf7__button {
  padding-left: 72px;
  text-align: center;
}

input[type="submit"] {
  width: 260px;
  height: 60px;
  background: #000;
  color: #fff;
  transition: opacity .6s;
}

input[type="submit"]:hover {
  opacity: .6;
}

/* ajax-loader */
.wpcf7-spinner {
  vertical-align: middle;
}

dl.cf7__list {
    max-width: 800px;
    margin: auto;
}

dl.cf7__list {
    margin-bottom: 3em;
}

/* reCAPTCHAバッジを非表示 */
.grecaptcha-badge {
    visibility: hidden;
}

.recaptcha-text {
    font-size: 0.85rem;
    color: #666;
    margin: 1em auto;
    line-height: 1.6;
    text-align:center;
}

.recaptcha-text a {
    color: #0066cc;
    text-decoration: underline;
}

.recaptcha-text a:hover {
    text-decoration: none;
}

/* Contact Form 7 送信完了メッセージを非表示 */
.wpcf7-mail-sent-ok {
    display: none !important;
}

/* 送信中のスピナーも非表示にする場合 */
/* .wpcf7-spinner {
    display: none !important;
} */

.fooer-info {
    display: flex;
}

.footer-logo {
    display: flex;
    gap:10px;
}

.footer-logo a {width:100%;max-width:200px;}
.footer-logo a img {width:100%;}


@media screen and (max-width: 767px) {

    .fooer-info {
    display: block;

}

.company-info-area {
    margin-left: inherit;
    margin-top: 30px;
}

  .cf7__list dt {
    width: 100%;
    margin-bottom: 15px;
    padding-top: 0;
  }

  .cf7__list dd {
    width: 100%;
  }

  .cf7__list dd:nth-of-type(n + 2) {
    margin-top: 0;
  }

  .cf7__list dd .wpcf7-checkbox,
  .cf7__list dd .wpcf7-radio {
    padding: 15px 0 0;
  }

  /* 送信ボタン */
  input[type="submit"] {
    width: 180px;
    height: 56px;
  }

  .recaptcha-text {
    text-align:left;
}

}


/* 20260210fvにイラストと四角追加 */
/* 20260210fv - 修正版 */

/* --- 1. 全体の背景エリア --- */
.fm-hero-section {
    background-image: url('https://foodie-buddy.com/wp-content/uploads/2025/10/AdobeStock_295578210.webp');
    background-size: cover;
    background-position: center;
    width: 100%;
    /* 高さを強制確保 */
    height: 85vh !important;
    min-height: 700px !important;
    position: relative !important;
    overflow: hidden;
    /* 全幅確保 */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    box-sizing: border-box;
    margin-bottom: 0;
}

/* --- 2. 中央のリンクエリア --- */
.fm-center-link {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: 600px;
  height: 500px;
  text-decoration: none;
  z-index: 10;
  transition: transform 0.3s ease;
  pointer-events: none;
}
.fm-center-link:hover {
  transform: translate(-50%, -50%) scale(1.02);
}

/* --- 3. 白い四角 --- */
.fm-white-card {
    pointer-events: auto;
    background: #fff;
    width: 400px;
    height: 400px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 15px 40px rgba(0,0,0,0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.fm-white-card::before {
  content: '';
  position: absolute;
  top: 15px; left: 15px; right: 15px; bottom: 15px;
  border: 6px solid #e1e1de;
  pointer-events: none;
}
.fm-sub-text { font-size: 16px; font-weight: bold; color: #333; display: block; margin-bottom: 10px; line-height: 1.2; }
.fm-logo-img { width: 300px; margin-bottom: 10px; height: auto; display: block; }
.fm-kana-text { font-size: 11px; color: #555; display: block; margin-bottom: 20px; }
.fm-copy { font-size: 14px; font-weight: bold; color: #222; display: block; margin-bottom: 15px; }
.fm-btn {
    background: linear-gradient(180deg, #e63946 0%, #c1121f 100%);
    color: #fff;
    padding: 10px 0;
    border-radius: 50px;
    /* width: 260px; */
    margin: 0 auto;
    display: block;
    max-width: 300px;
    width: 90%;
    font-weight: bold;
    font-size: 20px;
    box-shadow: 0 4px 10px rgba(191,0,0,0.3);
    text-shadow: 0 -1px 0 rgba(0,0,0,0.2);
}

/* --- 4. 飾りイラスト --- */
.fm-deco {
  position: absolute;
  pointer-events: auto; 
  filter: drop-shadow(0 5px 15px rgba(0,0,0,0.2));
}
.d-lobster { width: 300px; bottom: -86px; right: -129px; z-index: 6; }
.d-caviar { width: 179px; top: -14px; left: 0px; z-index: 6; }
.d-shrimp { width: 90px; top: 100px; right: 80px; z-index: 5; transform: rotate(20deg); }
.d-oyster { width: 100px; bottom: 60px; left: 130px; z-index: 20; }
.d-salmo {
    width: 193px;
    bottom: 40px;
    left: -36px;
    z-index: -1;
    transform: rotate(-10deg);
}
.d-bei { width: 150px; top: 110px; left: -80px; z-index: 4; }
.d-fes {
    width: 200px;
    top: 0px;
    right: 20px;
    z-index: 5;
}
.d-marufu { width: 150px; top: -34px; left: -268px; z-index: 4; }


/* --- 5. 左下の固定エリア（ここを大幅修正！） --- */

/* エリア全体を「画面中央の最大幅1200px」の中に配置 */
.fm-bottom-area {
  position: absolute;
  bottom: 40px !important;
  left: 50% !important; /* 画面の真ん中を基準に */
  transform: translateX(-50%); /* 真ん中に戻す */
  
  width: 100%;
  max-width: 1280px; /* ★ここでコンテンツ幅を制限！画面が広くてもこれ以上広がらない */
  
  padding-left: 20px; /* 画面端ギリギリにならないための保険 */
  z-index: 20; 
  pointer-events: none;
}

/* 青い帯 */
.fm-blue-ribbon {
    position: relative;
    background: #405d96;
    color: #fff;
    display: inline-block;
    font-size: 20px;
    font-weight: bold;
    padding: 5px 0px;
    margin-bottom: 15px;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    width: 360px;
}

/* ★「青い帯」を左画面端まで延長する魔法（疑似要素） */
.fm-blue-ribbon::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%; /* 本体の左端からスタート */
    width: 100vw; /* 画面幅分だけ左に伸ばす（十分長い距離） */
    background: #405d96; /* 本体と同じ色 */
    box-shadow: -2px 2px 5px rgba(0,0,0,0.2); /* 影も伸ばす */
}


/* 左下の小さい文字 */
.fm-bottom-logo {
    display: block;
    width: 360px;
    margin-left: 0;
    filter: drop-shadow(0 4px 5px rgb(0 0 0 / 47%));
    margin-bottom:5px;
}



/* --- スマホ対応 --- */
/* @media (max-width: 768px) {


  .fm-hero-section { height: 550px !important; min-height: 550px !important; }
  .fm-center-link:hover { transform: translate(-50%, -50%) scale(1); } 
  
  .fm-white-card { width: 280px; height: 280px; padding: 20px; }
  .fm-white-card::before { top: 10px; left: 10px; right: 10px; bottom: 10px; border-width: 4px; }
  
  .fm-logo-img { width: 170px; }
  .fm-sub-text { font-size: 11px; }
  .fm-copy { font-size: 11px; margin-bottom: 10px; }
  .fm-btn { width: 200px; font-size: 13px; padding: 10px 0; }
  
  .d-lobster { width: 130px; bottom: 60px; right: 0px; }
  .d-caviar { width: 100px; top: 40px; left: 0px; }
  .d-salmo { width: 100px; bottom: 80px; left: -10px; }
  .d-oyster { width: 70px; bottom: 60px; left: 60px; } 
  .d-shrimp, .d-bei, .d-fes, .d-marufu { display: none; }

} */

@media screen and (max-width: 1100px) {
        /* .fm-white-card {
    height: 300px;
    width: 300px;
} */
}

@media screen and (max-width: 960px) {
.fm-bottom-area {
    display: none;
}
        .fm-white-card {
    height: 300px;
    width: 300px;
}

.fm-logo-img {
    width: 180px;
}
.fm-kana-text {
    margin-bottom: 0px;
}


.d-lobster {
    width: 200px;
    bottom: -85px;
    right: 60px;
}
.d-caviar {
    width: 140px;
    top: 0px;
    left: 100px;
    z-index: 6;
}
.d-salmo {
    width: 150px;
    bottom: 120px;
    z-index: 6;
    left: 50px;
}
.d-shrimp {
    width: 80px;
    top: 170px;
    right: 120px;
}
.d-fes {
    width: 180px;
    top: 50px;
    right: 110px;
}

.d-oyster {
    width: 100px;
    bottom: 46px;
    left: 130px;
    z-index: 20;
}

.d-marufu {
    width: 85px;
    left: 90px;
    top: 110px;
    z-index: 30;
}
}