/*
Theme Name: YS FOOD Toyokawa
Description: 株式会社ワイエスフード（仕出し・お弁当・給食委託）コーポレートサイト。テンプレ※（c8-1）をベースに弁当・給食用途へ再構成。
Author: PEEES
Version: 1.0.0
Text Domain: ysfood-toyokawa
*/

/* =========================================================
   株式会社ワイエスフード テーマ
   ベース（リセット／カラー変数／タイポ／共通パーツ）
   ※プレーンCSSで記述（sass未使用環境でも style.css に連結可能）
   ========================================================= */
:root{
  --c-sky:#3aa6d6;        /* メイン水色 */
  --c-sky-deep:#1f7fae;   /* 濃い水色（締め色） */
  --c-sky-pale:#eaf6fb;   /* 淡い水色（背景） */
  --c-navy:#274156;       /* テキスト用の落ち着いた紺 */
  --c-yellow:#f3c218;     /* アクセント黄 */
  --c-yellow-soft:#fdf3d0;/* 淡い黄 */
  --c-text:#33424d;
  --c-sub:#6b7a85;
  --c-line:#e2e8ec;
  --c-bg:#ffffff;
  --c-bg-tint:#f7fafb;
  --radius:14px;
  --shadow:0 8px 30px rgba(39,65,86,.08);
  --shadow-sm:0 4px 16px rgba(39,65,86,.06);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--c-text);
  line-height:1.8;
  background:var(--c-bg);
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
.font-round{font-family:"Zen Maru Gothic",sans-serif;letter-spacing:.01em;}
.br_sp{display:none;} /* スマホのみ改行（PC非表示）。.br_pc はPCのみ改行（SP非表示） */

/* ===== フォールバック背景（画像未設定時：仮プレースホルダー画像で埋める） ===== */
/* FV・下層FVの背景：淡い水色＋YS FOODウォーターマーク（テキストが乗るので控えめ） */
.fv-bg-fallback,
.lower-fv-fallback{
  background:#cfe6f0 url(img/ph-fv.svg) center/cover no-repeat;
}
/* テーマに合わせたイラスト（実画像が入るまでの暫定。各エリアの内容に合わせて差し替え） */
.biz-img-fallback{        /* TOP事業紹介：お弁当 */
  background:#f0e1c2 url(img/ph-bento.svg) center/cover no-repeat;
}
.catering-hero-fallback{  /* 給食委託：定食（給食・介護食） */
  background:#f0e1c2 url(img/ph-meal.svg) center/cover no-repeat;
}
.greet-photo-fallback{    /* TOPあいさつ：調理スタッフ */
  background:#d4ecf5 url(img/ph-chef.svg) center/cover no-repeat;
}
.target-img-fallback{     /* 対応施設：施設＋ケア */
  background:#f0e1c2 url(img/ph-facility.svg) center/cover no-repeat;
}
/* 地図：水色背景＋ピンアイコン */
.area-map-fallback,
.map-fallback{
  background:#d4e9f2 url(img/ph-map.svg) center/auto 50% no-repeat;
}

/* ===== 簡易ライトボックス ===== */
.lightbox-ov{position:fixed;inset:0;z-index:12000;background:rgba(0,0,0,.86);display:none;align-items:center;justify-content:center;padding:2rem;cursor:zoom-out;}
.lightbox-ov.active{display:flex;}
.lightbox-ov img{max-width:100%;max-height:90vh;width:auto;height:auto;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5);cursor:default;}
.lightbox-close{position:absolute;top:1rem;right:1.4rem;background:none;border:none;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer;padding:.2rem .6rem;}

/* ===== ローディング ===== */
.loading{
  position:fixed;inset:0;z-index:11000;background:var(--c-sky-deep);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .6s,visibility .6s;
}
.loading:not(.active){opacity:0;visibility:hidden;pointer-events:none;}
.loading .loading_text{text-align:center;color:#fff;}
.loadingText{font-size:1.6rem;letter-spacing:.15em;margin-bottom:1rem;}
.pulse-container{display:flex;gap:.6rem;justify-content:center;}
.pulse-bubble{width:14px;height:14px;border-radius:50%;background:#fff;animation:pulse 1.2s infinite ease-in-out;}
.pulse-bubble-2{animation-delay:.2s;}
.pulse-bubble-3{animation-delay:.4s;}
@keyframes pulse{0%,80%,100%{transform:scale(.5);opacity:.4;}40%{transform:scale(1);opacity:1;}}

/* ===== ボタン ===== */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:1rem 2rem;border-radius:50px;font-weight:700;font-size:1rem;
  transition:.3s;font-family:"Zen Maru Gothic",sans-serif;cursor:pointer;border:none;
}
.btn-y{background:var(--c-yellow);color:var(--c-navy);box-shadow:0 8px 24px rgba(243,194,24,.4);}
.btn-y:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(243,194,24,.5);}
.btn-line{background:rgba(255,255,255,.15);color:#fff;border:2px solid rgba(255,255,255,.6);}
.btn-line:hover{background:#fff;color:var(--c-sky-deep);}
.btn-sky{background:var(--c-sky);color:#fff;box-shadow:0 8px 24px rgba(58,166,214,.3);}
.btn-sky:hover{background:var(--c-sky-deep);transform:translateY(-3px);}

/* ===== セクション共通 ===== */
.sec{padding:6rem 0;}
.sec.tint{background:var(--c-bg-tint);}
.sec.sky{background:var(--c-sky-pale);}
.wrap{width:92%;max-width:1180px;margin:0 auto;}
.sec-head{margin-bottom:1rem;}
.sec-head.center{text-align:center;}
.sec-head .en{
  font-family:"Zen Maru Gothic",sans-serif;color:var(--c-sky);font-weight:700;
  font-size:2.4rem;line-height:1;letter-spacing:.02em;
}
.sec-head .jp{
  display:inline-block;color:var(--c-sub);font-size:.95rem;font-weight:600;margin-top:.6rem;
}
.sec-head.center .en{font-size:2.8rem;}
.sec-head .jp::before{content:"";display:inline-block;width:24px;height:2px;background:var(--c-yellow);vertical-align:middle;margin-right:.5rem;}
.sec-head.center .jp::before{display:none;}
.sec-head.center .jp{display:block;}
.sec-foot-note{text-align:center;margin-top:2rem;color:var(--c-sub);font-size:.9rem;}

/* ===== 下層FV ===== */
.lower-fv{position:relative;height:42vh;min-height:300px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.lower-fv-bg{position:absolute;inset:0;width:100%;height:100%;background-position:center;background-size:cover;}
.lower-fv::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(31,127,174,.72),rgba(58,166,214,.4));}
.lower-fv-text{position:relative;top:2.4rem;z-index:5;text-align:center;color:#fff;}
.lower-fv-text .en{font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(2rem,5vw,3rem);font-weight:700;text-shadow:0 4px 18px rgba(0,0,0,.2);}
.lower-fv-text .jp{font-size:1rem;letter-spacing:.15em;margin-top:.3rem;font-weight:500;}
.breadcrumb{width:92%;max-width:1180px;margin:1.2rem auto 0;font-size:.8rem;color:var(--c-sub);}
.breadcrumb a:hover{color:var(--c-sky);}

/* ===== フェードイン ===== */
.fade-in{opacity:0;transform:translateY(40px);transition:opacity .7s,transform .7s;}
.fade-in.scroll-in{opacity:1;transform:translateY(0);}

/* ===== トップへ戻る ===== */
.to-top{position:fixed;right:1.5rem;bottom:1.5rem;width:50px;height:50px;border-radius:50%;background:var(--c-sky-deep);color:#fff;display:flex;align-items:center;justify-content:center;z-index:8000;opacity:0;visibility:hidden;transition:.3s;cursor:pointer;box-shadow:var(--shadow);}
.to-top.show{opacity:1;visibility:visible;}
.to-top:hover{background:var(--c-yellow);color:var(--c-navy);transform:translateY(-4px);}

/* ===== レスポンシブ：共通 ===== */
@media(max-width:1024px){
  .sec{padding:4.5rem 0;}
}
@media(max-width:768px){
  body{font-size:15px;}
  .sec{padding:3.5rem 0;}
  .sec-head .en{font-size:2rem;line-height:1.1;}
  .sec-head.center .en{font-size:2rem;line-height:1.1;}
  .sec-head .jp{font-size:.88rem;}
  .font-round{letter-spacing:0;text-align:center;}
  .br_pc{display:none;}
  .br_sp{display:inline;}
  .sec-foot-note{text-align:left;}
  .lower-fv-text .en{font-size:2rem;}
  .lower-fv-text .jp{font-size:.9rem;}
}

/* =========================================================
   ヘッダー
   ========================================================= */
header#header{
  position:fixed;top:0;left:0;width:100%;z-index:10002;transition:.4s;
}
.head-inner{
  display:flex;justify-content:space-between;align-items:center;
  width:92%;max-width:1280px;margin:0 auto;padding:.8rem 0;
}
.logo{display:flex;align-items:center;gap:.6rem;transition:.3s;}
/* 正方形ロゴ対応：白い角丸下地で透過ヘッダー上でも視認性を確保 */
.logo .logo-img{height:100px;width:auto;max-width:none;background:#fff;padding:.3rem .5rem;border-radius:10px;}
.logo-mark{
  width:54px;height:54px;border-radius:12px;
  background:linear-gradient(135deg,var(--c-sky),var(--c-sky-deep));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:1.2rem;
  box-shadow:var(--shadow-sm);flex-shrink:0;
}
.logo-mark span{color:var(--c-yellow);}
.logo-text b{display:block;font-size:1.05rem;color:var(--c-navy);line-height:1.3;}
.logo-text small{font-size:.68rem;color:var(--c-sub);letter-spacing:.12em;}

header#header.scrolled{background:#fff;box-shadow:0 4px 20px rgba(39,65,86,.08);}

.gnav ul{display:flex;align-items:center;gap:.3rem;}
.gnav a{
  display:block;padding:.6rem .95rem;font-size:.92rem;font-weight:500;
  color:#fff;border-radius:8px;transition:.3s;position:relative;
}
header#header.scrolled .gnav a{color:var(--c-navy);}
.gnav a:hover{color:var(--c-yellow);}
header#header.scrolled .gnav a:hover{color:var(--c-sky);}
.gnav a.active{color:var(--c-yellow);}
header#header.scrolled .gnav a.active{color:var(--c-sky);}
.gnav .nav-cta a{
  background:var(--c-yellow);color:var(--c-navy);font-weight:700;
  padding:.6rem 1.3rem;box-shadow:var(--shadow-sm);
}
.gnav .nav-cta a:hover{background:#fff;color:var(--c-sky-deep);transform:translateY(-2px);}
header#header.scrolled .gnav .nav-cta a{background:var(--c-sky);color:#fff;}
header#header.scrolled .gnav .nav-cta a:hover{background:var(--c-yellow);color:var(--c-navy);}

/* ハンバーガー */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:10001;width:46px;height:46px;border-radius:10px;background:var(--c-sky-deep);align-items:center;justify-content:center;}
.hamburger span{width:24px;height:2px;background:#fff;transition:.3s;}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* SPメニュー展開中はヘッダー背景・ロゴを隠し、×だけ前面に残す */
body.menu-open header#header{background:transparent !important;box-shadow:none !important;}
body.menu-open header#header .logo{opacity:0;visibility:hidden;}
body.menu-open .hamburger{background:transparent;}

.sp-menu{
  position:fixed;inset:0;background:rgba(31,127,174,.97);z-index:10000;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;
  opacity:0;visibility:hidden;transition:.4s;
}
.sp-menu.active{opacity:1;visibility:visible;}
.sp-menu a{color:#fff;font-size:1.15rem;padding:.7rem 2rem;font-family:"Zen Maru Gothic",sans-serif;}
.sp-menu a:hover{color:var(--c-yellow);}
.sp-sns{display:flex;gap:1.2rem;margin-top:1.5rem;}
.sp-sns a{font-size:1.4rem;padding:0;}

@media(max-width:768px){
  .gnav{display:none;}
  .hamburger{display:flex;}
  .head-inner{padding:.6rem 0;}
  .logo .logo-img{height:46px;padding:.25rem .4rem;}
  .logo-mark{width:46px;height:46px;font-size:1rem;}
  .logo-text b{font-size:.92rem;color:var(--c-navy);}
  .logo-text small{font-size:.6rem;}
  header#header{background:#fff;box-shadow:0 2px 12px rgba(39,65,86,.08);}
}

/* =========================================================
   TOP（front-page）
   ========================================================= */
/* ===== FV ===== */
.fv{position:relative;height:100vh;min-height:600px;overflow:hidden;display:flex;align-items:center;}
.fv-bg{position:absolute;inset:0;}
.fv-bg::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(120deg,rgba(31,127,174,.78),rgba(58,166,214,.45) 60%,rgba(58,166,214,.15));}
.fv-slider,.fv-slider .slick-list,.fv-slider .slick-track,.fv-slide{height:100vh;min-height:600px;}
.fv-slide-img{height:100vh;min-height:600px;background-position:center;background-size:cover;}
.fv-bg-fallback{position:absolute;inset:0;}
.fv-inner{position:relative;z-index:5;width:92%;max-width:1280px;margin:0 auto;color:#fff;}
.fv-tag{
  display:inline-block;background:var(--c-yellow);color:var(--c-navy);
  font-weight:700;font-size:.85rem;padding:.4rem 1.1rem;border-radius:30px;margin-bottom:1.4rem;
  box-shadow:var(--shadow-sm);white-space:nowrap;
}
.fv-tag .sp{display:none;}
.fv-tag .pc{display:inline;}
.fv h1{
  font-size:clamp(2rem,5vw,3.6rem);line-height:1.35;
  font-weight:700;text-shadow:0 4px 20px rgba(0,0,0,.2);margin-bottom:1.2rem;
}
.fv h1 em{font-style:normal;color:var(--c-yellow);}
.fv p.lead{font-size:clamp(1rem,1.8vw,1.2rem);text-shadow:0 2px 12px rgba(0,0,0,.25);max-width:560px;font-weight:500;}
.fv-btns{display:flex;gap:1rem;margin-top:2.2rem;flex-wrap:wrap;}
.fv-scroll{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:6;color:#fff;font-size:.7rem;letter-spacing:.2em;text-align:center;}
.fv-scroll span{display:block;width:1px;height:40px;background:#fff;margin:.5rem auto 0;animation:scrolly 1.8s infinite;}
@keyframes scrolly{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}51%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

/* ===== 強み 3カード ===== */
.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.strength-card{
  background:#fff;border-radius:var(--radius);padding:2.4rem 1.8rem;text-align:center;
  box-shadow:var(--shadow);transition:.35s;border-top:4px solid var(--c-sky);
}
.strength-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(39,65,86,.13);}
.strength-card .ico{
  width:74px;height:74px;border-radius:50%;margin:0 auto 1.3rem;
  background:var(--c-sky-pale);color:var(--c-sky);
  display:flex;align-items:center;justify-content:center;font-size:1.9rem;
}
.strength-card:nth-child(2) .ico{background:var(--c-yellow-soft);color:#d9a400;}
.strength-card:nth-child(2){border-top-color:var(--c-yellow);}
.strength-card h3{font-size:1.25rem;color:var(--c-navy);margin-bottom:.8rem;}
.strength-card p{font-size:.92rem;color:var(--c-sub);line-height:1.9;text-align:left;}

/* ===== ご挨拶 ===== */
.greet{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;}
.greet-photo{aspect-ratio:4/3;border-radius:var(--radius);box-shadow:var(--shadow);background-position:center;background-size:cover;}
.greet-body h2{font-size:1.9rem;color:var(--c-navy);line-height:1.5;margin-bottom:1.4rem;}
.greet-body h2 em{font-style:normal;color:var(--c-sky);}
.greet-body p{color:var(--c-text);margin-bottom:1rem;font-size:.97rem;}

/* ===== 事業バナー ===== */
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.biz-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--shadow);display:block;}
.biz-card .biz-img{position:absolute;inset:0;width:100%;height:100%;background-position:center;background-size:cover;transition:.5s;}
.biz-card:hover .biz-img{transform:scale(1.08);}
.biz-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(31,65,86,.85),rgba(31,65,86,.1) 60%);}
.biz-card .label{position:absolute;left:0;bottom:0;z-index:3;padding:1.6rem;color:#fff;width:100%;}
.biz-card .label .en{font-size:1.6rem;font-weight:700;}
.biz-card .label .jp{font-size:.9rem;font-weight:500;}
.biz-card .arrow{
  position:absolute;right:1.2rem;bottom:1.4rem;z-index:4;width:42px;height:42px;border-radius:50%;
  background:var(--c-yellow);color:var(--c-navy);display:flex;align-items:center;justify-content:center;transition:.3s;
}
.biz-card:hover .arrow{background:#fff;transform:translateX(4px);}

@media(max-width:1024px){
  .strength-grid{grid-template-columns:repeat(2,1fr);}
  .biz-grid{grid-template-columns:repeat(3,1fr);gap:1rem;}
}
/* タブレット：3カラムのまま高さを短く（正方形）し、ラベルも調整 */
@media(min-width:769px) and (max-width:1024px){
  .biz-card{aspect-ratio:1/1;}
  .biz-card .label{padding:1.1rem;}
  .biz-card .label .en{font-size:1.25rem;}
  .biz-card .label .jp{font-size:.8rem;}
}
@media(max-width:768px){
  .fv{height:88vh;min-height:520px;}
  .strength-grid,.biz-grid,.greet{grid-template-columns:1fr;}
  .greet{gap:2rem;}
  .greet-body{text-align:center;}
  .greet-body p{text-align:left;}
  .greet-body .sec-head .jp::before{display:none;}
  .greet-body .sec-head .jp{display:block;}
  .fv h1,.greet-body h2{line-height:1.55;}
  .greet-body h2{font-size:1.45rem;line-height:1.6;}
  .strength-card h3{font-size:1.15rem;line-height:1.5;}
  .biz-card .label .en{font-size:1.5rem;}
  .biz-card .label .jp{font-size:.92rem;}
  .fv-inner{text-align:center;}
  .fv-tag{font-size:.78rem;margin-bottom:.9rem;}
  .fv-tag .pc{display:none;}
  .fv-tag .sp{display:inline;}
  .fv h1{font-size:1.7rem;line-height:1.5;margin-bottom:.8rem;}
  .fv p.lead{font-size:.9rem;margin-left:auto;margin-right:auto;}
  .fv-btns{margin-top:1.5rem;gap:.7rem;flex-direction:column;align-items:center;}
  .fv-btns .btn{width:100%;max-width:300px;justify-content:center;}
  .fv-scroll{display:none;}
}

/* =========================================================
   お弁当（page-menu）
   ========================================================= */
/* 「メニュー（文字）」と「画像」の境界＝中央にラベルを乗せた区切り線 */
.menu-imgs-lead{display:flex;align-items:center;text-align:center;gap:1rem;margin:4rem 0 0;}
.menu-imgs-lead::before,.menu-imgs-lead::after{content:"";flex:1;height:1px;background:var(--c-line);}
.menu-imgs-lead span{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.02rem;color:var(--c-navy);white-space:nowrap;}
.menu-imgs-lead span i{color:var(--c-sky);}
.menu-imgs-lead + .menu-group{margin-top:1.8rem;}

/* 追加画像を見出し付き3グループで表示（新メニュー／とよかわ大葉／メニュー・クリックで拡大） */
.menu-group{margin-top:3.6rem;}
.menu-group-title{text-align:center;font-size:1.5rem;color:var(--c-navy);margin-bottom:1.5rem;}
.menu-group-title::after{content:"";display:block;width:46px;height:3px;background:var(--c-sky);border-radius:2px;margin:.7rem auto 0;}
.menu-group-imgs{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;}
.menu-group-imgs .menu-add{flex:1 1 260px;max-width:380px;}
.menu-add{display:block;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.3s;cursor:zoom-in;background:#fff;}
.menu-add:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.menu-add img{display:block;width:100%;height:auto;}

.menu-intro{text-align:center;max-width:none;margin:0 auto 3.5rem;color:var(--c-sub);}
.menu-tabs{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:3rem;}
.menu-tab{padding:.6rem 1.5rem;border-radius:50px;background:#fff;border:2px solid var(--c-line);font-weight:600;font-size:.9rem;cursor:pointer;transition:.3s;color:var(--c-sub);}
.menu-tab.active,.menu-tab:hover{background:var(--c-sky);border-color:var(--c-sky);color:#fff;}
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;}
.menu-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:.35s;}
.menu-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.menu-card .menu-img{aspect-ratio:4/3;background-position:center;background-size:cover;}
.menu-card .body{padding:1.3rem;}
.menu-card .body .row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;}
.menu-card h3{font-size:1.15rem;color:var(--c-navy);}
.menu-card .price{color:var(--c-sky-deep);font-weight:700;font-size:1.2rem;white-space:nowrap;}
.menu-card .price small{font-size:.7rem;color:var(--c-sub);font-weight:500;}
.menu-card p{font-size:.85rem;color:var(--c-sub);margin-top:.5rem;}
.menu-card .tag{display:inline-block;background:var(--c-yellow-soft);color:#bb8e00;font-size:.7rem;font-weight:700;padding:.1rem .6rem;border-radius:20px;margin-top:.7rem;}
.menu-note{background:#fff;border-radius:var(--radius);padding:2rem;margin-top:3rem;box-shadow:var(--shadow-sm);border-left:5px solid var(--c-yellow);}
.menu-note h4{color:var(--c-navy);margin-bottom:.6rem;font-size:1.1rem;}
.menu-note h4 i{color:var(--c-yellow);margin-right:.5rem;}
.menu-note p{font-size:.9rem;color:var(--c-sub);}
.menu-note a{color:var(--c-sky);font-weight:600;}

@media(max-width:1024px){
  .menu-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  .menu-group{margin-top:2.6rem;}
  .menu-group-imgs{gap:.8rem;}
  .menu-group-imgs .menu-add{flex:1 1 44%;}
  .menu-grid{grid-template-columns:1fr;}
  .menu-intro{text-align:left;text-wrap:balance;}
  .menu-note p{text-align:left;}
  .menu-tabs{gap:.4rem;}
  .menu-tab{padding:.5rem 1.1rem;font-size:.82rem;}
  .menu-card h3{font-size:1.15rem;line-height:1.5;}
}

/* =========================================================
   配達について（page-delivery）
   ========================================================= */
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;counter-reset:step;}
.flow-step{background:#fff;border-radius:var(--radius);padding:2rem 1.3rem;text-align:center;box-shadow:var(--shadow-sm);position:relative;}
.flow-step .num{
  counter-increment:step;width:46px;height:46px;border-radius:50%;
  background:var(--c-sky);color:#fff;font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;
}
.flow-step .num::before{content:counter(step);}
.flow-step .ico{font-size:1.8rem;color:var(--c-sky);margin-bottom:.6rem;}
.flow-step h3{font-size:1rem;color:var(--c-navy);margin-bottom:.4rem;}
.flow-step p{font-size:.82rem;color:var(--c-sub);text-align:left;}

.area-box{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;margin-top:1rem;}
.area-map .area-map-fallback{aspect-ratio:4/3;border-radius:var(--radius);box-shadow:var(--shadow);}
.area-map-embed{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;}
.area-map-embed iframe{width:100%;height:100%;border:0;display:block;}
.area-body h3{font-size:1.5rem;color:var(--c-navy);margin-bottom:1rem;}
.area-body .badge{display:inline-block;background:var(--c-yellow);color:var(--c-navy);font-weight:700;padding:.3rem 1.2rem;border-radius:30px;font-size:.9rem;margin-bottom:1.2rem;}
.area-list li{display:flex;gap:.7rem;padding:.6rem 0;border-bottom:1px dashed var(--c-line);font-size:.93rem;}
.area-list li i{color:var(--c-sky);margin-top:.3rem;}
.area-note{margin-top:1rem;font-size:.9rem;color:var(--c-sub);}

.delivery-cond{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1rem;}
.cond-card{background:#fff;border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-sm);text-align:center;border-top:4px solid var(--c-sky);}
.cond-card .big{font-size:2.2rem;color:var(--c-sky-deep);font-weight:700;line-height:1.2;}
.cond-card .big small{font-size:1rem;}
.cond-card h4{font-size:1rem;color:var(--c-navy);margin:.5rem 0;}
.cond-card p{font-size:.85rem;color:var(--c-sub);}

@media(max-width:1024px){
  .flow-steps,.delivery-cond{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  .flow-steps,.delivery-cond,.area-box{grid-template-columns:1fr;}
  .area-box{gap:2rem;}
  .area-body h3{font-size:1.3rem;line-height:1.6;}
  .flow-step h3{font-size:1.15rem;line-height:1.5;}
  .cond-card .big{font-size:2rem;white-space:nowrap;}
  .cond-card h4{font-size:1.05rem;line-height:1.5;}
  .cond-card p{text-align:left;}
}

/* =========================================================
   給食委託（page-catering）
   ========================================================= */
.catering-hero{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.catering-hero .catering-hero-img{aspect-ratio:4/3;border-radius:var(--radius);box-shadow:var(--shadow);background-position:center;background-size:cover;}
.catering-hero h2{font-size:1.8rem;color:var(--c-navy);line-height:1.5;margin-bottom:1.2rem;}
.catering-hero h2 em{font-style:normal;color:var(--c-sky);}
.catering-hero p{color:var(--c-text);margin-bottom:1rem;font-size:.96rem;}

.service-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;}
.service-item{text-align:center;padding:1.5rem 1rem;}
.service-item .ico{width:70px;height:70px;border-radius:18px;background:var(--c-sky-pale);color:var(--c-sky);display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin:0 auto 1rem;}
.service-item h4{color:var(--c-navy);margin-bottom:.4rem;font-size:1.05rem;}
.service-item p{font-size:.85rem;color:var(--c-sub);}

/* 料金プラン */
.plan-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;align-items:stretch;}
.plan-card{position:relative;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:2rem 1.5rem;display:flex;flex-direction:column;}
.plan-card.is-featured{border:2px solid var(--c-sky);box-shadow:var(--shadow);}
.plan-badge{position:absolute;top:-.85rem;left:50%;transform:translateX(-50%);background:var(--c-sky);color:#fff;font-size:.8rem;padding:.25rem 1rem;border-radius:999px;white-space:nowrap;}
.plan-card h4{color:var(--c-navy);font-size:1.1rem;line-height:1.5;margin-bottom:1rem;min-height:3rem;display:flex;align-items:center;justify-content:center;text-align:center;}
.plan-price{text-align:center;color:var(--c-sky-deep);margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px dashed var(--c-line);}
.plan-price .num{font-size:2.6rem;line-height:1;margin:0 .15rem;}
.plan-price small{display:block;font-size:.82rem;color:var(--c-sub);margin-top:.4rem;}
.plan-desc{font-size:.9rem;color:var(--c-sub);text-align:center;}
.plan-event{display:flex;align-items:center;justify-content:center;gap:.6rem;background:var(--c-yellow-soft);color:var(--c-navy);font-weight:700;border-radius:var(--radius);padding:1rem 1.4rem;margin-top:1.8rem;text-align:center;}
.plan-event i{color:var(--c-yellow);}

/* 給食委託 専用連絡先 */
.catering-contact{display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;align-items:center;}
.catering-contact-lead h2{font-size:1.7rem;color:var(--c-navy);line-height:1.5;margin:.6rem 0 1rem;}
.catering-contact-lead p{color:var(--c-text);font-size:.96rem;}
.catering-contact-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;text-align:center;}
.catering-contact-card .cc-name{color:var(--c-sub);font-size:.9rem;margin-bottom:.4rem;}
.catering-contact-card .cc-tel{display:inline-flex;align-items:center;gap:.6rem;font-size:2rem;color:var(--c-sky-deep);margin-bottom:1.2rem;letter-spacing:.02em;}
.catering-contact-card .cc-tel i{font-size:1.4rem;}
.catering-contact-card .btn{width:100%;justify-content:center;}

/* 献立の一例 */
.menu-plan-lead{text-align:center;max-width:720px;margin:0 auto 1.6rem;color:var(--c-sub);font-size:.96rem;}
.menu-plan{text-align:center;}
.menu-plan-img{display:inline-block;position:relative;max-width:600px;width:100%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff;line-height:0;}
.menu-plan-img img{width:100%;display:block;}
.menu-plan-img .zoom{position:absolute;right:.8rem;bottom:.8rem;background:rgba(39,65,86,.82);color:#fff;font-size:.8rem;line-height:1;padding:.4rem .85rem;border-radius:20px;display:inline-flex;align-items:center;gap:.4rem;}
.menu-plan-fallback{aspect-ratio:4/3;max-width:900px;width:100%;margin:0 auto;background:#f0e1c2 url(img/ph-meal.svg) center/cover no-repeat;}
.menu-plan-actions{margin-top:1.4rem;}

.target-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
.target-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.target-card .target-img{aspect-ratio:16/10;background-position:center;background-size:cover;}
.target-card .body{padding:1.3rem;}
.target-card h4{color:var(--c-navy);font-size:1.05rem;margin-bottom:.4rem;}
.target-card p{font-size:.85rem;color:var(--c-sub);}

@media(max-width:1024px){
  .service-row,.target-list{grid-template-columns:repeat(2,1fr);}
  .plan-row{grid-template-columns:1fr;}
  .plan-card h4{min-height:0;}
  .catering-contact{grid-template-columns:1fr;gap:1.6rem;}
}
@media(max-width:768px){
  .service-row,.target-list,.catering-hero{grid-template-columns:1fr;}
  .catering-hero{gap:2rem;}
  .catering-hero > div:last-child{text-align:center;}
  .catering-hero > div:last-child p{text-align:left;}
  .catering-hero .sec-head .jp::before{display:none;}
  .catering-hero .sec-head .jp{display:block;}
  .catering-hero h2{font-size:1.45rem;line-height:1.6;}
  .service-item h4,.target-card h4{font-size:1.05rem;line-height:1.5;}
  .catering-contact-lead h2{font-size:1.35rem;}
  .catering-contact-card .cc-tel{font-size:1.6rem;}
  .plan-desc{text-align:left;}
  .menu-plan-lead{text-align:left;}
  .plan-event{flex-direction:column;gap:.3rem;align-items:flex-start;text-align:left;}
}

/* =========================================================
   会社概要（page-company）
   ========================================================= */
.philosophy{text-align:center;max-width:760px;margin:0 auto 4rem;}
.philosophy p{color:var(--c-text);font-size:1rem;line-height:2;}

.company-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.company-table th,.company-table td{padding:1.3rem 1.6rem;text-align:left;border-bottom:1px solid var(--c-line);font-size:.95rem;}
.company-table th{background:var(--c-sky-pale);color:var(--c-navy);font-weight:700;width:28%;white-space:nowrap;}
.company-table tr:last-child th,.company-table tr:last-child td{border-bottom:none;}

.access-add{text-align:center;color:var(--c-navy);font-weight:700;margin-bottom:1.4rem;}
.access-add i{color:var(--c-sky);margin-right:.5rem;}
.map-box{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.map-box iframe{width:100%;aspect-ratio:21/9;border:0;display:block;}
.map-fallback{aspect-ratio:21/9;}

/* 本社・事務所の2拠点マップ（2カラム／スマホは1カラム） */
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.map-card .access-add{text-align:left;font-size:.92rem;margin-bottom:.8rem;}
.map-card .access-add b{color:var(--c-sky-deep);margin-right:.4em;}
/* 貼り付けたiframeは固定width/heightを持つので、枠を4:3にしてiframeを全面フィット */
.map-grid .map-box{aspect-ratio:4/3;}
.map-grid .map-box iframe,
.map-grid .map-box .map-fallback{width:100%!important;height:100%!important;aspect-ratio:auto;border:0;display:block;}

.sales-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.sales-list li{background:#fff;border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow-sm);border-top:4px solid var(--c-sky);}
.sales-list .sales_name h4{color:var(--c-navy);font-size:1.15rem;margin-bottom:.6rem;}
.sales-list .sales_contents p{font-size:.9rem;color:var(--c-sub);margin-bottom:.3rem;}
.sales-list .sales_contents .tel i{color:var(--c-sky);margin-right:.4rem;}

.history-table th{width:22%;}

@media(max-width:768px){
  .sales-list{grid-template-columns:1fr;}
  .company-table th,.company-table td{display:block;width:100%;}
  .company-table th{border-bottom:none;}
  .map-grid{grid-template-columns:1fr;}
}

/* =========================================================
   お問い合わせ（page-contact）
   ========================================================= */
.contact-lead{text-align:center;max-width:680px;margin:0 auto 3rem;color:var(--c-sub);}

.contact-ways{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3.5rem;}
.way-card{background:#fff;border-radius:var(--radius);padding:2.2rem 1.5rem;text-align:center;box-shadow:var(--shadow-sm);transition:.3s;}
.way-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);}
.way-card .ico{width:64px;height:64px;border-radius:50%;background:var(--c-sky);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 1rem;}
.way-card:nth-child(2) .ico{background:var(--c-yellow);color:var(--c-navy);}
.way-card:nth-child(3) .ico{background:#06c755;}
.way-card h3{color:var(--c-navy);font-size:1.1rem;margin-bottom:.4rem;}
.way-card .big{font-size:1.4rem;font-weight:700;color:var(--c-sky-deep);font-family:"Zen Maru Gothic",sans-serif;white-space:nowrap;}
.way-card .big.big-sns{font-size:1.1rem;}
.way-card p{font-size:.82rem;color:var(--c-sub);margin-top:.3rem;}

/* ===== フォーム（CF7） ===== */
.form-box{background:#fff;border-radius:var(--radius);padding:3rem;box-shadow:var(--shadow);max-width:760px;margin:0 auto;}
.form-box .sec-head{margin-bottom:2rem;}
.form-box .form p{font-size:.95rem;}
.form-box label{display:block;font-weight:700;color:var(--c-navy);margin-bottom:.5rem;font-size:.92rem;}
/* 必須／任意ラベル（CF7内の span.red / span.blue） */
.form-box .red,
.form-box .blue,
.wpcf7 .red,
.wpcf7 .blue{
  display:inline-block;margin-left:.5em;padding:.16em .6em;border-radius:4px;
  font-size:.72rem;font-weight:700;line-height:1.3;color:#fff;vertical-align:.1em;
}
.form-box .red,
.wpcf7 .red{background:#e0383e;}   /* 必須＝赤 */
.form-box .blue,
.wpcf7 .blue{background:#3a8fcf;}  /* 任意＝青 */
.form-box input[type="text"],
.form-box input[type="email"],
.form-box input[type="tel"],
.form-box input[type="number"],
.form-box input[type="url"],
.form-box textarea,
.form-box select{
  width:100%;padding:.9rem 1rem;border:1px solid var(--c-line);border-radius:8px;font-size:.95rem;font-family:inherit;background:var(--c-bg-tint);transition:.3s;margin-bottom:1rem;
}
.form-box input:focus,.form-box textarea:focus,.form-box select:focus{outline:none;border-color:var(--c-sky);background:#fff;box-shadow:0 0 0 3px rgba(58,166,214,.12);}
.form-box textarea{height:150px;resize:vertical;}

.wpcf7 .wpcf7-list-item{margin-left:0;}
.wpcf7-submit,
.form-box input[type="submit"],
.form-box button{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:1rem 2.4rem;border-radius:50px;font-weight:700;font-size:1rem;border:none;cursor:pointer;
  font-family:"Zen Maru Gothic",sans-serif;
  background:var(--c-sky);color:#fff;box-shadow:0 8px 24px rgba(58,166,214,.3);transition:.3s;
  margin-top:1rem;width:auto;
}
.wpcf7-submit:hover,.form-box input[type="submit"]:hover,.form-box button:hover{background:var(--c-sky-deep);transform:translateY(-3px);}
.form-submit{text-align:center;margin-top:2rem;}

.thanks{text-align:center;font-size:1.05rem;color:var(--c-navy);line-height:2;}

@media(max-width:768px){
  .contact-ways{grid-template-columns:1fr;}
  .form-box{padding:1.8rem 1.2rem;}
  .contact-lead{text-align:left;text-wrap:balance;}
  .way-card h3{font-size:1.05rem;line-height:1.5;}
  .way-card .big{font-size:1.25rem;white-space:nowrap;}
}

/* =========================================================
   プライバシーポリシー（page-policy）
   ========================================================= */
#policy h2{font-family:"Zen Maru Gothic",sans-serif;font-size:1.2rem;color:var(--c-navy);margin:2rem 0 .8rem;padding-left:.8rem;border-left:4px solid var(--c-sky);}
#policy h2:first-child{margin-top:0;}
#policy p{font-size:.92rem;color:var(--c-text);margin-bottom:1.5rem;line-height:1.9;}
@media(max-width:768px){
  #policy h2{font-size:1.05rem;}
  #policy p{font-size:.86rem;}
}

/* =========================================================
   フッター
   ========================================================= */
footer{background:var(--c-navy);color:#fff;}
.foot-cta{background:linear-gradient(120deg,var(--c-sky-deep),var(--c-sky));text-align:center;padding:4rem 0;}
.foot-cta h2{font-size:1.9rem;margin-bottom:.6rem;}
.foot-cta p{margin-bottom:1.8rem;opacity:.95;}
.foot-cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
/* SNSバナーがある時は 左：見出し＋ボタン／右：SNSバナー の2カラムで横幅を埋める */
.foot-cta-inner.has-sns{display:flex;align-items:center;justify-content:space-between;gap:2.5rem 4rem;flex-wrap:wrap;text-align:left;}
.foot-cta-inner.has-sns .foot-cta-main{flex:1 1 320px;}
.foot-cta-inner.has-sns .foot-cta-btns{justify-content:flex-start;}
.foot-cta-inner.has-sns .foot-cta-sns{flex:0 0 auto;}

.foot-main{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;padding:4rem 0 2.5rem;}
.foot-logo{display:flex;align-items:center;gap:.7rem;margin-bottom:1.2rem;}
.foot-logo .logo-mark{box-shadow:none;}
.foot-logo .logo-img{height:100px;width:auto;max-width:none;background:#fff;padding:.4rem .55rem;border-radius:10px;}
.foot-logo b{font-size:1.1rem;}
.foot-logo small{opacity:.7;}
.foot-info p{font-size:.85rem;opacity:.85;margin-bottom:.4rem;display:flex;gap:.6rem;align-items:flex-start;}
.foot-info p i{color:var(--c-yellow);margin-top:.3rem;width:16px;}
.foot-sns{display:flex;gap:.8rem;margin-top:1.3rem;}
.foot-sns a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:.3s;}
.foot-sns a:hover{background:var(--c-yellow);color:var(--c-navy);}
/* SNSバナー（クリックで各SNSへ） */
.foot-cta-sns{margin-top:0;}
.foot-cta-sns-lead{font-size:.9rem;margin-bottom:1rem;opacity:.95;line-height:1.6;}
.foot-cta-sns-lead i{margin-right:.4rem;color:var(--c-yellow);}
.foot-sns-banners{display:flex;flex-direction:column;gap:.8rem;}
.sns-banner{display:flex;align-items:center;gap:.9rem;width:300px;max-width:100%;padding:.85rem 1.1rem;border-radius:12px;background:#fff;color:var(--c-navy);box-shadow:0 6px 18px rgba(39,65,86,.18);transition:.3s;}
.sns-banner:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(39,65,86,.28);}
.sns-banner > i:first-child{font-size:1.7rem;flex-shrink:0;width:1.9rem;text-align:center;}
.sns-banner-txt{display:flex;flex-direction:column;line-height:1.3;flex:1;}
.sns-banner-txt b{font-size:1rem;font-weight:700;}
.sns-banner-txt small{font-size:.72rem;opacity:.7;}
.sns-banner-arrow{font-size:.85rem;opacity:.5;flex-shrink:0;transition:.3s;}
.sns-banner:hover .sns-banner-arrow{opacity:1;transform:translateX(3px);}
.sns-banner-line > i:first-child{color:#06c755;}
.sns-banner-insta > i:first-child{color:#e1306c;}
/* 画像バナー（管理画面で差替）：画像があればボタン風の代わりにこちらを表示 */
.sns-banner-img{display:block;width:300px;max-width:100%;border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(39,65,86,.18);transition:.3s;line-height:0;}
.sns-banner-img:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(39,65,86,.28);}
.sns-banner-img img{width:100%;height:auto;display:block;}
.foot-nav h4{font-size:1rem;margin-bottom:1.2rem;color:var(--c-yellow);}
.foot-nav ul li{margin-bottom:.7rem;}
.foot-nav ul li a{font-size:.88rem;opacity:.85;transition:.3s;}
.foot-nav ul li a:hover{opacity:1;color:var(--c-yellow);padding-left:.3rem;}
.copyright{text-align:center;padding:1.5rem 0;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem;opacity:.7;}

@media(max-width:900px){
  .foot-cta-inner.has-sns{justify-content:center;text-align:center;}
  .foot-cta-inner.has-sns .foot-cta-btns{justify-content:center;}
  .foot-cta-sns-lead{text-align:center;}
  .foot-sns-banners{align-items:center;}
}
@media(max-width:768px){
  .foot-main{grid-template-columns:1fr;gap:2rem;}
  .foot-cta h2{font-size:1.4rem;line-height:1.5;}
  .foot-cta p{text-align:left;}
}
