/* =========================================================
   DAIICHI BUSSAN / FOOD v107
   BUSINESS詳細ページ
   ========================================================= */

.food-page .sub-hero::before{
  z-index:0;
  background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 38%,rgba(255,255,255,.58) 68%,rgba(255,255,255,.42) 100%);
}
.food-hero-photo{
  position:absolute;
  z-index:-2;
  inset:0 14.8vw 0 0;
  background:url("assets/business/food.webp") center/cover no-repeat;
  filter:grayscale(1) contrast(.82) brightness(1.08);
  opacity:.42;
}
.food-page .sub-hero-bgword{
  z-index:1;
  top:43%;
  font-size:clamp(115px,15vw,250px);
  color:rgba(15,15,15,.40);
}
.food-page .sub-hero-inner{z-index:4}
.food-page .sub-hero-red{z-index:2}
.food-page .sub-hero-mark{z-index:3}

/* BUSINESS detail nav */
.business-detail-nav{
  position:relative;
  z-index:10;
  width:min(100% - 9vw,1280px);
  margin:-1px auto 0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  background:#fff;
  box-shadow:0 16px 45px rgba(0,0,0,.09);
}
.business-detail-nav a{
  position:relative;
  min-height:112px;
  padding:27px 64px 24px 72px;
  border-right:1px solid #ddd;
  display:grid;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  align-content:center;
  transition:.25s ease;
}
.business-detail-nav a:last-child{border-right:0}
.business-detail-nav a::after{
  content:"↗"; position:absolute; right:24px; top:25px;
  color:#aaa; font-size:16px; transition:.25s ease;
}
.business-detail-nav a:hover{background:#f7f7f5}
.business-detail-nav a:hover::after{color:var(--omega-red);transform:translate(3px,-3px)}
.business-detail-nav a.is-active{background:#f5f5f3}
.business-detail-nav a.is-active::after{color:var(--omega-red)}
.business-detail-nav span{grid-row:1/3;color:#aaa;font-size:9px;font-weight:800;letter-spacing:.12em;padding-top:3px}
.business-detail-nav b{font-size:clamp(18px,1.45vw,24px);letter-spacing:.025em}
.business-detail-nav small{margin-top:5px;color:#777;font-size:10px}

/* Intro */
.food-intro{padding-top:clamp(95px,9vw,150px);padding-bottom:clamp(105px,10vw,165px)}
.food-intro-grid{
  display:grid;grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);
  gap:clamp(55px,9vw,145px);align-items:end;
}
.food-intro-title>p,
.food-roots-copy>p,
.food-brands-heading>p,
.food-scenes-heading>p,
.food-message-title>p{
  margin:0 0 20px;color:var(--omega-red);font-size:9px;font-weight:850;letter-spacing:.24em;
}
.food-intro-title h2,
.food-roots-copy h2,
.food-scenes-heading h2,
.food-message-title h2{
  margin:0;font-size:clamp(42px,4.3vw,72px);line-height:1.24;letter-spacing:-.045em;font-weight:900;
}
.food-intro-copy{border-top:2px solid var(--omega-red);padding-top:24px}
.food-intro-copy p,
.food-roots-text p,
.food-message-copy p{
  margin:0 0 18px;color:#555;font-size:clamp(15px,1.05vw,18px);line-height:2.05;
}

/* Main visual */
.food-main-visual{
  position:relative;width:min(100% - 6vw,1720px);height:clamp(390px,40vw,650px);
  margin:0 auto;overflow:hidden;background:#111;
}
.food-main-visual img{width:100%;height:100%;object-fit:cover;display:block}
.food-main-visual::after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.58) 100%);
}
.food-main-label{
  position:absolute;z-index:2;left:clamp(28px,4vw,72px);bottom:clamp(28px,4vw,62px);color:#fff;
}
.food-main-label span{display:block;font-size:clamp(46px,5.4vw,88px);line-height:.9;font-weight:950;letter-spacing:.04em}
.food-main-label small{display:block;margin-top:14px;font-size:9px;font-weight:800;letter-spacing:.24em;opacity:.75}

/* Roots */
.food-roots{background:#f5f5f3}
.food-roots-inner{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);
  gap:clamp(60px,9vw,145px);align-items:center;
  padding-top:clamp(105px,10vw,165px);padding-bottom:clamp(105px,10vw,165px);
}
.food-roots-text{margin-top:clamp(40px,5vw,70px);padding-top:23px;border-top:1px solid #202020;max-width:720px}
.food-roots-visual{
  position:relative;min-height:520px;background:#fff;display:flex;align-items:center;justify-content:center;padding:42px;overflow:hidden;
}
.food-roots-visual>img{width:100%;height:auto;object-fit:contain}
.food-roots-logo{
  position:absolute;left:24px;right:24px;bottom:24px;min-height:92px;background:rgba(255,255,255,.94);
  display:flex;align-items:center;justify-content:center;padding:14px 26px;border:1px solid rgba(0,0,0,.08);
}
.food-roots-logo img{max-width:270px;max-height:66px;object-fit:contain}

/* Brands */
.food-brands{background:#fff}
.food-brands-inner{padding-top:clamp(105px,10vw,165px);padding-bottom:clamp(105px,10vw,165px)}
.food-brands-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:clamp(52px,6vw,86px)}
.food-brands-heading h2{margin:0;font-size:clamp(42px,4.3vw,72px);line-height:1.15;letter-spacing:-.045em}
.food-brand-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #202020;border-left:1px solid #ddd}
.food-brand-card{
  min-height:270px;padding:38px 38px 34px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;
  display:grid;grid-template-columns:180px minmax(0,1fr);gap:36px;align-items:center;
}
.food-brand-card-large{grid-column:1/-1;grid-template-columns:270px minmax(0,1fr);min-height:300px}
.food-brand-logo{display:flex;align-items:center;justify-content:center;min-height:120px;padding:18px;background:#fff}
.food-brand-logo img{max-width:100%;max-height:92px;object-fit:contain}
.food-brand-logo-text{flex-direction:column;gap:6px;color:#111}
.food-brand-logo-text strong{font-size:32px;letter-spacing:.12em}
.food-brand-logo-text span{font-size:9px;letter-spacing:.28em;color:#888}
.food-brand-meta small{display:block;margin-bottom:12px;color:var(--omega-red);font-size:8px;font-weight:850;letter-spacing:.22em}
.food-brand-meta h3{margin:0 0 15px;font-size:clamp(23px,1.9vw,32px);line-height:1.35}
.food-brand-meta p{margin:0;color:#666;font-size:13px;line-height:1.85}


.food-section-store-link{
  display:flex;
  justify-content:flex-end;
  margin-top:-42px;
  margin-bottom:clamp(46px,5vw,74px);
}
.food-section-store-link .detail-office-link{margin-top:0}

/* Scene */
.food-scenes{background:#f5f5f3}
.food-scenes-inner{padding-top:clamp(105px,10vw,165px);padding-bottom:clamp(105px,10vw,165px)}
.food-scenes-heading{margin-bottom:clamp(52px,6vw,86px)}
.food-scenes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.food-scene{margin:0;background:#fff;border:1px solid #dededb;overflow:hidden}
.food-scene>div{height:clamp(250px,26vw,410px);display:flex;align-items:center;justify-content:center;padding:22px;background:#fff}
.food-scene img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .5s ease}
.food-scene:hover img{transform:scale(1.04)}
.food-scene figcaption{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-top:1px solid #ddd}
.food-scene strong{font-size:16px;letter-spacing:.1em}
.food-scene span{color:#888;font-size:11px}


/* Online Shop */
.food-online{
  background:#fff;
}
.food-online-inner{
  padding-top:clamp(88px,8vw,135px);
  padding-bottom:clamp(92px,9vw,145px);
}
.food-online-heading{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(330px,1.1fr);
  gap:clamp(52px,8vw,125px);
  align-items:end;
  margin-bottom:clamp(48px,5vw,74px);
}
.food-online-heading>div>p{
  margin:0 0 18px;
  color:var(--omega-red);
  font-size:9px;
  font-weight:850;
  letter-spacing:.24em;
}
.food-online-heading h2{
  margin:0;
  font-size:clamp(42px,4.3vw,72px);
  line-height:1.16;
  letter-spacing:-.045em;
  font-weight:900;
}
.food-online-lead{
  margin:0;
  padding-top:22px;
  border-top:1px solid #202020;
  color:#555;
  font-size:clamp(14px,1vw,17px);
  line-height:2;
}
.food-online-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(22px,2.5vw,38px);
}
.food-online-card{
  min-width:0;
  border:1px solid #ddd;
  background:#fafaf8;
  overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.food-online-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.08);
  border-color:#cfcfcd;
}
.food-online-visual{
  height:clamp(220px,22vw,345px);
  margin:0;
  overflow:hidden;
  background:#eee;
}
.food-online-visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.25,1);
}
.food-online-card:hover .food-online-visual img{
  transform:scale(1.025);
}
.food-online-body{
  min-height:330px;
  padding:clamp(28px,3vw,42px);
  display:flex;
  flex-direction:column;
}
.food-online-brand{
  height:58px;
  margin-bottom:22px;
  display:flex;
  align-items:center;
}
.food-online-brand img{
  display:block;
  max-width:190px;
  max-height:58px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.food-online-brand-pegopa img{
  max-width:115px;
  max-height:54px;
}
.food-online-body>small{
  display:block;
  margin-bottom:12px;
  color:var(--omega-red);
  font-size:8px;
  font-weight:850;
  letter-spacing:.22em;
}
.food-online-body h3{
  margin:0 0 18px;
  font-size:clamp(25px,2vw,34px);
  line-height:1.35;
  letter-spacing:-.02em;
}
.food-online-body>p{
  margin:0;
  max-width:620px;
  color:#5b5b5b;
  font-size:13px;
  line-height:1.9;
}
.food-online-link{
  width:max-content;
  margin-top:auto;
  padding-top:26px;
  padding-bottom:7px;
  display:flex;
  align-items:center;
  gap:26px;
  border-bottom:1px solid #202020;
  color:#202020;
  font-size:9px;
  font-weight:850;
  letter-spacing:.2em;
  transition:.25s ease;
}
.food-online-link b{
  font-size:14px;
  font-weight:400;
  transition:transform .25s ease;
}
.food-online-card:hover .food-online-link{
  color:var(--omega-red);
  border-bottom-color:var(--omega-red);
}
.food-online-card:hover .food-online-link b{
  transform:translate(3px,-3px);
}

/* Message */
.food-message{background:#fff}
.food-message-inner{
  padding-top:clamp(105px,10vw,165px);padding-bottom:clamp(105px,10vw,165px);
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(55px,9vw,145px);align-items:end;
}
.food-message-copy{border-top:1px solid #202020;padding-top:24px}
.food-message-copy p{margin-bottom:0}

/* Next */
.business-detail-next{
  display:grid;grid-template-columns:repeat(2,1fr);width:min(100% - 9vw,1540px);margin:0 auto;
  border-left:1px solid #ddd;border-right:1px solid #ddd;border-top:1px solid #ddd;
}
.business-detail-next-card{
  position:relative;min-height:180px;padding:40px 52px;display:grid;grid-template-columns:62px 1fr auto;
  align-items:center;border-right:1px solid #ddd;overflow:hidden;
}
.business-detail-next-card:last-child{border-right:0}
.business-detail-next-card::before{
  content:"";position:absolute;inset:0;background:var(--omega-red);transform:translateY(101%);
  transition:transform .38s cubic-bezier(.2,.7,.25,1);
}
.business-detail-next-card:hover::before{transform:none}
.business-detail-next-card>*{position:relative;z-index:2;transition:color .25s ease}
.business-detail-next-card:hover>*{color:#fff}
.business-detail-next-card>span{color:var(--omega-red);font-size:8px;font-weight:850;letter-spacing:.18em}
.business-detail-next-card small{display:block;margin-bottom:8px;color:#888;font-size:9px;font-weight:800;letter-spacing:.18em}
.business-detail-next-card strong{font-size:clamp(22px,1.8vw,31px)}
.business-detail-next-card b{font-size:22px;font-weight:400}

@media(max-width:980px){
  .food-intro-grid,.food-roots-inner,.food-online-heading,.food-message-inner{grid-template-columns:1fr;gap:42px}
  .food-roots-visual{min-height:420px}
  .food-brand-list{grid-template-columns:1fr}
  .food-brand-card-large{grid-column:auto}
  .food-brand-card,.food-brand-card-large{grid-template-columns:180px 1fr}
  .food-scenes-grid,.food-online-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .food-hero-photo{inset:0 19vw 0 0}
  .food-page .sub-hero-bgword{font-size:24vw}
  .business-detail-nav{width:calc(100% - 24px);grid-template-columns:1fr}
  .business-detail-nav a{min-height:76px;padding:17px 42px 14px 50px;border-right:0;border-bottom:1px solid #e5e5e5;grid-template-columns:34px 1fr}
  .business-detail-nav a:last-child{border-bottom:0}
  .business-detail-nav a::after{right:16px;top:18px}
  .food-intro{padding-top:76px;padding-bottom:92px}
  .food-intro-title h2,.food-roots-copy h2,.food-scenes-heading h2,.food-online-heading h2,.food-message-title h2{font-size:35px}
  .food-main-visual{width:calc(100% - 24px);height:310px}
  .food-roots-inner,.food-brands-inner,.food-scenes-inner,.food-online-inner,.food-message-inner{padding-top:78px;padding-bottom:92px}
  .food-roots-visual{min-height:330px;padding:25px}
  .food-roots-logo{left:14px;right:14px;bottom:14px}

  .food-section-store-link{
    justify-content:flex-start;
    margin-top:-18px;
    margin-bottom:38px;
  }

  .food-brands-heading{display:block}
  .food-brand-card,.food-brand-card-large{grid-template-columns:1fr;gap:20px;padding:28px 24px}
  .food-brand-logo{min-height:100px}
  .food-scenes-grid{gap:18px}

  .food-online-heading{margin-bottom:34px}
  .food-online-visual{height:235px}
  .food-online-body{min-height:0;padding:26px 24px 28px}
  .food-online-brand{height:48px;margin-bottom:18px}
  .food-online-brand img{max-height:48px}
  .food-online-brand-pegopa img{max-height:44px}
  .food-online-link{margin-top:28px}
  .food-scene>div{height:280px}
  .business-detail-next{width:calc(100% - 24px);grid-template-columns:1fr}
  .business-detail-next-card{min-height:140px;padding:30px 24px;grid-template-columns:52px 1fr auto;border-right:0;border-bottom:1px solid #ddd}
  .business-detail-next-card:last-child{border-bottom:0}
}

/* v235: remove the thin black band previously visible at the top of the Nandaimon online-shop visual */
.food-online-card-nandaimon .food-online-visual img{
  object-fit:cover;
  object-position:center center;
  background:transparent;
}
