@charset "UTF-8";
/* ===================================================================
   企業情報ページ
   共通トークンは style.css、見出し帯・セクション見出しは page.css を継承
   =================================================================== */

/* ============ 共通の小さなボタン ============ */
.page-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-width:210px;padding:12px 24px;
  border:1px solid var(--enji);color:var(--enji);background:#fff;
  font-family:var(--serif);font-size:14px;letter-spacing:.1em;
  transition:background .3s var(--ease),color .3s var(--ease);
}
.page-btn:hover{background:var(--enji);color:#fff;}

/* 原稿・写真がまだの「アタリ」部分の目印 */
.company-page .is-draft{color:#8d857a;}
.company-page .history li.is-draft .history__year,
.company-page .history li.is-draft .history__text{color:#a89f92;}
.draft-note{
  margin:26px 0 0;padding:10px 14px;
  background:#fdf9f2;border-left:3px solid var(--gold);
  font-size:12.5px;line-height:1.9;color:#7a6b4d;letter-spacing:.03em;
}

/* ============ 社長メッセージ ============ */
.msg{display:flex;align-items:flex-start;gap:clamp(28px,4vw,56px);}
.msg__pic{flex:0 0 clamp(220px,26%,300px);margin:0;}
.msg__pic img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--washi-deep);}
.msg__cap{margin-top:16px;text-align:center;}
.msg__role{display:block;font-size:11.5px;letter-spacing:.14em;color:var(--ink-soft);}
.msg__name{
  display:block;margin-top:6px;
  font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:.14em;color:var(--ink);
}
.msg__body{flex:1 1 auto;min-width:0;}
.msg__lead{
  margin:0 0 26px;font-family:var(--serif);font-weight:600;
  font-size:clamp(19px,2.1vw,26px);line-height:1.8;letter-spacing:.08em;color:var(--ink);
}
.msg__body p{margin:0 0 22px;font-size:14.5px;line-height:2.15;letter-spacing:.04em;}
.msg__sign{
  margin:32px 0 0 !important;text-align:right;
  font-family:var(--serif);font-size:14px;line-height:2;letter-spacing:.08em;color:var(--ink);
}

/* ============ 会社概要の表 ============ */
.outline{width:100%;border-collapse:collapse;border-top:1px solid var(--line);}
.outline th,.outline td{
  border-bottom:1px solid var(--line);
  padding:18px 16px;text-align:left;vertical-align:top;font-size:14.5px;line-height:1.9;
}
.outline th{
  width:210px;font-family:var(--serif);font-weight:600;letter-spacing:.1em;
  color:var(--ink);background:rgba(239,231,216,.42);white-space:nowrap;
}
.outline td{color:#2f2a22;}
.outline td b{font-weight:700;color:var(--enji);}
.outline__note{margin:14px 0 0;font-size:12px;color:var(--ink-soft);letter-spacing:.04em;}
.outline__link{margin:28px 0 0;}

/* ============ 沿革 ============ */
.history{list-style:none;margin:0;padding:0;border-left:1px solid var(--line);}
.history li{
  position:relative;display:flex;gap:clamp(16px,3vw,40px);
  padding:0 0 30px clamp(24px,3vw,38px);
}
.history li::before{
  content:"";position:absolute;left:-5px;top:9px;
  width:9px;height:9px;border-radius:50%;background:var(--gold);
}
.history li:last-child{padding-bottom:0;}
.history__year{
  flex:0 0 150px;font-family:var(--serif);font-weight:600;
  font-size:14.5px;letter-spacing:.08em;color:var(--enji);
}
.history__text{flex:1 1 auto;font-size:14.5px;line-height:1.95;letter-spacing:.03em;}

/* ============ アクセス ============ */
.access{display:flex;gap:clamp(24px,3.5vw,48px);align-items:stretch;}
.access__info{flex:0 0 clamp(220px,28%,320px);display:flex;flex-direction:column;justify-content:center;gap:24px;}
.access__addr{margin:0;font-family:var(--serif);font-size:16px;line-height:2;letter-spacing:.06em;color:var(--ink);}
.access__map{flex:1 1 auto;min-width:0;}
.access__map iframe{width:100%;height:100%;min-height:320px;border:1px solid var(--line);display:block;}

/* ============ スマホ ============ */
@media (max-width:768px){
  .msg{flex-direction:column;align-items:center;gap:26px;}
  .msg__pic{flex:none;width:min(220px,62%);}
  .msg__body p{font-size:14px;line-height:2.05;}
  .msg__sign{text-align:left;}

  .outline th,.outline td{display:block;width:auto;white-space:normal;}
  .outline th{border-bottom:0;padding:14px 14px 4px;}
  .outline td{padding:0 14px 16px;}

  .history li{flex-direction:column;gap:4px;padding-bottom:24px;}
  .history__year{flex:none;}

  .access{flex-direction:column;}
  .access__info{flex:none;}
  .access__map iframe{min-height:260px;}
  .page-btn{width:100%;}
}

/* ============ 企業理念 ============ */
.philo{display:flex;gap:clamp(28px,4vw,60px);align-items:flex-start;}
.philo__catch{
  flex:0 0 clamp(230px,32%,366px);margin:0;
  font-family:var(--serif);font-weight:600;
  font-size:clamp(22px,2.4vw,30px);line-height:1.8;letter-spacing:.08em;color:var(--enji);
  white-space:nowrap;   /* 「おいしいを届ける、」で折り返さないように */
}
.philo__body{flex:1 1 auto;min-width:0;}
.philo__body p{margin:0 0 22px;font-size:14.5px;line-height:2.15;letter-spacing:.04em;}
.philo__body p:last-child{margin-bottom:0;}

.values{
  list-style:none;margin:clamp(40px,5vw,64px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px);
}
.values li{
  background:#fff;border:1px solid var(--line);padding:28px 24px 26px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;
}
.values li:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(40,25,10,.10);border-color:var(--gold-soft);}
.values__num{
  display:block;font-family:var(--serif);font-size:13px;letter-spacing:.3em;color:var(--gold);
}
.values__title{
  margin:12px 0 14px;font-family:var(--serif);font-weight:700;
  font-size:18px;letter-spacing:.06em;line-height:1.6;color:var(--ink);
}
.values li p{margin:0;font-size:13.5px;line-height:2;letter-spacing:.03em;color:#4a443b;}

/* ============ 食の安全 ============ */
.safety__lead{
  margin:0 0 clamp(30px,4vw,44px);
  font-family:var(--serif);font-size:clamp(15px,1.5vw,18px);line-height:2.1;
  letter-spacing:.06em;color:var(--ink);
}
.safety{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px);}
.safety li{
  padding:24px 22px;background:rgba(255,255,255,.7);
  border-top:2px solid var(--navy);
}
.safety__title{
  margin:0 0 12px;font-family:var(--serif);font-weight:700;
  font-size:16.5px;letter-spacing:.05em;line-height:1.6;color:var(--navy);
}
.safety li p{margin:0;font-size:13.5px;line-height:2;letter-spacing:.03em;color:#4a443b;}

/* ============ 数字で見る ============ */
.numbers{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,24px);
}
.numbers li{
  text-align:center;padding:30px 16px 26px;
  background:#fff;border:1px solid var(--line);
}
.numbers__label{display:block;font-size:12px;letter-spacing:.16em;color:var(--ink-soft);}
.numbers__fig{
  display:block;margin:10px 0 8px;
  font-family:var(--serif);font-weight:700;font-size:clamp(38px,4.6vw,56px);
  line-height:1;letter-spacing:.02em;color:var(--enji);
}
.numbers__unit{font-size:.36em;letter-spacing:.1em;margin-left:.3em;color:var(--ink);}
.numbers__note{display:block;font-size:11.5px;letter-spacing:.04em;color:var(--ink-soft);}
.numbers__asof{margin:16px 0 0;font-size:12px;color:var(--ink-soft);letter-spacing:.04em;}

/* ============ スマホ ============ */
@media (max-width:1024px){
  .values,.safety{grid-template-columns:repeat(2,1fr);}
  .numbers{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .philo{flex-direction:column;gap:22px;}
  .philo__catch{flex:none;font-size:22px;white-space:normal;}
  .philo__body p{font-size:14px;line-height:2.05;}
  .values,.safety{grid-template-columns:1fr;}
  .values li{padding:22px 20px;}
  .safety__lead{font-size:14.5px;line-height:2;}
}

/* ============ 規約ページ（プライバシーポリシーなど） ============ */
.page-body--narrow{max-width:900px;}
.policy{padding-top:clamp(40px,5vw,56px);scroll-margin-top:calc(var(--header-h) + 20px);}
.policy__head{
  display:flex;align-items:baseline;gap:14px;margin:0 0 20px;
  font-family:var(--serif);font-weight:600;font-size:clamp(17px,1.9vw,21px);
  letter-spacing:.1em;line-height:1.6;color:var(--ink);
  border-bottom:1px solid var(--line);padding-bottom:12px;
}
.policy__num{
  flex:none;width:30px;height:30px;border-radius:50%;
  background:var(--enji);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:0;
  transform:translateY(-2px);
}
.policy p{margin:0 0 16px;font-size:14.5px;line-height:2.1;letter-spacing:.03em;color:#2f2a22;}
.policy p:last-child{margin-bottom:0;}
.policy__list{margin:0 0 16px;padding:0 0 0 1.2em;list-style:none;}
.policy__list li{
  position:relative;margin-bottom:8px;
  font-size:14.5px;line-height:2;letter-spacing:.03em;color:#2f2a22;
}
.policy__list li::before{
  content:"";position:absolute;left:-1.2em;top:.85em;
  width:6px;height:6px;border-radius:50%;background:var(--gold);
}
.policy__window{background:#fff;border:1px solid var(--line);padding:clamp(22px,3vw,30px);}
.policy__company{
  margin:0 0 16px !important;font-family:var(--serif);font-weight:700;
  font-size:17px;letter-spacing:.08em;color:var(--ink);
}
.policy__window dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:0 0 22px;}
.policy__window dt{
  font-size:12.5px;letter-spacing:.1em;color:var(--ink-soft);white-space:nowrap;padding-top:3px;
}
.policy__window dd{margin:0;font-size:14.5px;line-height:1.9;color:#2f2a22;}
.policy__window dd a{border-bottom:1px solid transparent;transition:border-color .25s;}
.policy__window dd a:hover{border-color:var(--enji);}
.policy__date{
  margin:clamp(40px,5vw,56px) 0 0;text-align:right;
  font-size:12.5px;line-height:2;color:var(--ink-soft);letter-spacing:.04em;
}
@media (max-width:768px){
  .policy__head{font-size:16px;gap:10px;}
  .policy__num{width:26px;height:26px;font-size:12px;}
  .policy p,.policy__list li{font-size:14px;line-height:2;}
  .policy__window dl{grid-template-columns:1fr;gap:2px;}
  .policy__window dt{padding-top:10px;}
  .policy__date{text-align:left;}
}
