/* ==========================================================================
   COMESTA 72 — Prima Pasta 業務用ページ
   ========================================================================== */

:root{
  --ink:        #211B14;
  --ink-soft:   #3B3226;
  --paper:      #F7F2E8;
  --paper-deep: #EFE6D3;
  --bronze:     #B8873C;
  --bronze-dark:#8E6529;
  --brick:      #A8412C;
  --line:       rgba(33,27,20,.14);
  --line-on-dark: rgba(247,242,232,.22);

  --serif-jp:  "Shippori Mincho", "Noto Serif JP", serif;
  --serif-en:  "Cormorant Garamond", "EB Garamond", serif;
  --sans-jp:   "Noto Sans JP", "Hiragino Sans", sans-serif;

  --max: 1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; }

body.prima-site{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans-jp);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}

.prima-site img{ max-width:100%; display:block; }

.prima-site .wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 28px;
}

.prima-site a{ text-decoration:none; }
/* Only the plain inline text links (footer nav list) should inherit the
   surrounding paragraph color. Buttons and the nav CTA set their own
   color explicitly further down and must NOT be touched by this rule -
   scoping it narrowly avoids a specificity clash that previously made
   button labels invisible against their own background. */

/* -------------------------------------------------- eyebrow / labels */
.prima-site .eyebrow{
  font-family:var(--serif-en);
  font-size:14px;
  letter-spacing:.14em;
  color:var(--bronze-dark);
  font-style:italic;
  margin:0 0 10px;
}

.prima-site .rule{
  width:44px;
  height:2px;
  background:var(--bronze);
  margin:0 0 22px;
}

/* -------------------------------------------------- top nav (shared) */
.c-nav{
  position:sticky; top:0; z-index:50;
  background:var(--ink);
  border-bottom:1px solid rgba(184,135,60,.45);
}
.c-nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:24px; }
.c-nav__brand{ display:flex; align-items:center; flex-shrink:0; }
.c-nav__brand img{ height:34px; width:auto; }
.c-nav__menu{ display:flex; align-items:center; gap:6px; list-style:none; margin:0; padding:0; }
.c-nav__menu a{
  display:block; padding:10px 16px;
  font-family:var(--serif-jp); font-size:14.5px; letter-spacing:.06em;
  color:#E8DFCD; border-bottom:2px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.c-nav__menu a:hover{ color:#fff; border-bottom-color:var(--bronze); }
.c-nav__menu a[aria-current="page"]{ color:var(--bronze); border-bottom-color:var(--bronze); }
.c-nav__menu .is-soon{ color:#8A8272; cursor:default; pointer-events:none; }
.c-nav__menu .is-soon small{
  font-family:var(--serif-en); font-style:italic; font-size:11px; letter-spacing:.04em;
  margin-left:6px; padding:2px 7px; border:1px solid rgba(184,135,60,.5); border-radius:999px; color:var(--bronze);
}
.c-nav__cta{
  font-family:var(--serif-jp); font-size:14px; letter-spacing:.04em;
  color:#211B14; background:var(--bronze);
  padding:11px 22px; border-radius:2px; white-space:nowrap;
  transition:background .2s ease;
}
.c-nav__cta:hover{ background:#CC9A4B; }
.c-nav__menu .only-sp{ display:none; }
.c-nav__toggle{
  display:none; width:44px; height:44px; background:none; border:1px solid rgba(247,242,232,.3);
  border-radius:2px; cursor:pointer; position:relative; flex-shrink:0;
}
.c-nav__toggle span, .c-nav__toggle span::before, .c-nav__toggle span::after{
  content:""; position:absolute; left:11px; width:20px; height:2px; background:#F7F2E8;
  transition:transform .25s ease, opacity .2s ease;
}
.c-nav__toggle span{ top:21px; }
.c-nav__toggle span::before{ left:0; top:-6px; }
.c-nav__toggle span::after{ left:0; top:6px; }
.c-nav.is-open .c-nav__toggle span{ background:transparent; }
.c-nav.is-open .c-nav__toggle span::before{ transform:translateY(6px) rotate(45deg); }
.c-nav.is-open .c-nav__toggle span::after{ transform:translateY(-6px) rotate(-45deg); }

/* -------------------------------------------------- hero */
.c-hero{
  position:relative;
  min-height:640px;
  display:flex;
  align-items:flex-end;
  background:#151109;
  overflow:hidden;
}
.c-hero__bg{
  position:absolute; inset:0;
  background-image:url("../images/hero-bg.jpg");
  background-size:cover;
  background-position:center 30%;
  filter:saturate(.9) brightness(.62);
  transform:scale(1.02);
}
.c-hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(21,17,9,.35) 0%, rgba(21,17,9,.55) 55%, rgba(21,17,9,.92) 100%);
}
.c-hero__inner{
  position:relative;
  width:100%;
  padding:120px 0 68px;
  color:var(--paper);
}
.c-hero__top{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:56px;
}
.c-hero__badge{
  font-family:var(--serif-en);
  font-size:12.5px;
  letter-spacing:.16em;
  color:var(--paper);
  border:1px solid var(--line-on-dark);
  padding:7px 16px;
  border-radius:999px;
}
.c-hero__number{ display:flex; align-items:baseline; gap:12px; }
.c-hero__number .num{
  font-family:var(--serif-en);
  font-weight:600;
  font-size:56px;
  color:var(--bronze);
  line-height:1;
}
.c-hero__number .label{
  font-family:var(--serif-jp);
  font-size:14px;
  color:var(--paper);
  line-height:1.6;
  border-left:1px solid var(--line-on-dark);
  padding-left:12px;
}
.c-hero__grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:56px;
  align-items:center;
}
.c-hero__eyebrow{
  font-family:var(--serif-en);
  font-style:italic;
  letter-spacing:.1em;
  color:#D9C79B;
  font-size:15px;
  margin:0 0 18px;
}
.c-hero h1{
  font-family:var(--serif-jp);
  font-weight:600;
  font-size:clamp(34px, 5.4vw, 60px);
  line-height:1.35;
  margin:0 0 26px;
  max-width:15ch;
}
.c-hero h1 em{
  font-style:normal;
  color:var(--bronze);
}
.c-hero__lede{
  font-size:18px;
  line-height:1.95;
  color:#EDE4D2;
  max-width:46ch;
  margin:0 0 40px;
}
.c-hero__actions{ display:flex; gap:16px; flex-wrap:wrap; }
.btn{
  display:inline-block;
  font-family:var(--serif-en);
  font-size:16px;
  letter-spacing:.02em;
  text-decoration:none;
  padding:15px 34px;
  border-radius:2px;
  transition:all .2s ease;
}
.btn--primary{ background:var(--bronze); color:#211B14; }
.btn--primary:hover{ background:#CC9A4B; }
.btn--ghost{ border:1px solid var(--line-on-dark); color:var(--paper); }
.btn--ghost:hover{ border-color:var(--paper); }

/* -------------------------------------------------- hero visual (eye-catch) */
.c-hero__visual{
  position:relative;
  justify-self:center;
}
.c-hero__frame{
  width:100%;
  max-width:380px;
  aspect-ratio:4/5;
  padding:10px;
  background:rgba(247,242,232,.92);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.55);
  transform:rotate(1.5deg);
}
.c-hero__frame img{
  width:100%; height:100%;
  object-fit:cover;
}
.c-hero__visual-tag{
  position:absolute;
  bottom:-16px; left:24px;
  background:var(--bronze);
  color:var(--ink);
  font-family:var(--serif-en);
  font-style:italic;
  font-size:12.5px;
  letter-spacing:.03em;
  padding:7px 16px;
  transform:rotate(1.5deg);
  box-shadow:0 8px 20px -6px rgba(0,0,0,.5);
}

/* -------------------------------------------------- lede section */
.c-lede{
  padding:96px 0 88px;
  border-bottom:1px solid var(--line);
}
.c-lede .wrap{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:64px;
  align-items:start;
}
.c-lede h2{
  font-family:var(--serif-jp);
  font-weight:600;
  font-size:30px;
  line-height:1.7;
  margin:0;
  color:var(--ink);
}
.c-lede h2 span{ color:var(--bronze-dark); }
.c-lede p{
  margin:0 0 18px;
  color:var(--ink-soft);
  font-size:15.5px;
}
.c-lede p:last-child{ margin-bottom:0; }

/* -------------------------------------------------- features */
.c-features{ padding:96px 0; }
.c-features__head{
  max-width:640px;
  margin:0 0 56px;
}
.c-features__head h2{
  font-family:var(--serif-jp);
  font-weight:600;
  font-size:32px;
  margin:0;
}
.c-features__body{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}
.c-features__photo{
  position:relative;
  border-radius:2px;
  overflow:hidden;
}
.c-features__photo img{
  width:100%; height:560px; object-fit:cover;
}
.c-features__photo figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:18px 22px;
  background:linear-gradient(0deg, rgba(21,17,9,.72), transparent);
  color:var(--paper);
  font-family:var(--serif-en);
  font-size:13px;
  letter-spacing:.06em;
  font-style:italic;
}
.c-feature-list{
  display:flex;
  flex-direction:column;
}
.c-feature{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:20px;
  padding:26px 0;
  border-top:1px solid var(--line);
}
.c-feature:last-child{ border-bottom:1px solid var(--line); }
.c-feature__icon{
  width:48px; height:48px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--paper-deep);
}
.c-feature__icon img{ width:22px; height:22px; }
.c-feature h3{
  font-family:var(--serif-jp);
  font-size:17px;
  font-weight:600;
  margin:2px 0 8px;
  color:var(--ink);
}
.c-feature p{
  margin:0;
  font-size:14.5px;
  color:var(--ink-soft);
  line-height:1.85;
}
.c-feature__tag{
  display:inline-block;
  margin-top:10px;
  font-size:11.5px;
  letter-spacing:.04em;
  color:var(--brick);
  border:1px solid rgba(168,65,44,.35);
  padding:3px 10px;
  border-radius:999px;
}

/* -------------------------------------------------- scenes */
.c-scenes{
  padding:96px 0;
  background:var(--paper-deep);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.c-scenes__head{ max-width:640px; margin:0 0 48px; }
.c-scenes__head h2{
  font-family:var(--serif-jp);
  font-size:32px; font-weight:600; margin:0;
}
.c-scene-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.c-scene{
  background:var(--paper-deep);
  display:flex;
  flex-direction:column;
}
.c-scene__img{ height:200px; overflow:hidden; }
.c-scene__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.c-scene:hover .c-scene__img img{ transform:scale(1.05); }
.c-scene__body{ padding:22px 20px 26px; }
.c-scene__num{
  font-family:var(--serif-en);
  font-size:12px;
  color:var(--bronze-dark);
  letter-spacing:.08em;
}
.c-scene h3{
  font-family:var(--serif-jp);
  font-size:16px;
  margin:8px 0 10px;
}
.c-scene p{
  margin:0;
  font-size:13.5px;
  color:var(--ink-soft);
  line-height:1.8;
}

/* -------------------------------------------------- lineup */
.c-lineup{ padding:96px 0; }
.c-lineup__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:24px; flex-wrap:wrap;
  margin:0 0 48px;
}
.c-lineup__head h2{
  font-family:var(--serif-jp);
  font-size:32px; font-weight:600; margin:0;
}
.c-lineup__head p{
  margin:0; max-width:38ch;
  color:var(--ink-soft); font-size:14.5px;
}
.c-lineup-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.c-lineup-card{
  border:1px solid var(--line);
}
.c-lineup-card__img{ height:230px; overflow:hidden; }
.c-lineup-card__img img{ width:100%; height:100%; object-fit:cover; }
.c-lineup-card__body{ padding:26px 24px 30px; }
.c-lineup-card__time{
  display:inline-flex; align-items:baseline; gap:6px;
  font-family:var(--serif-en);
  color:var(--bronze-dark);
  font-size:13px;
  letter-spacing:.04em;
  margin-bottom:14px;
}
.c-lineup-card__time strong{ font-size:20px; }
.c-lineup-card h3{
  font-family:var(--serif-jp);
  font-size:20px;
  margin:0 0 10px;
}
.c-lineup-card p{
  margin:0;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.85;
}

/* -------------------------------------------------- evidence */
.c-evidence{
  padding:96px 0;
  background:var(--ink);
  color:var(--paper);
}
.c-evidence .wrap{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:64px;
  align-items:center;
}
.c-evidence .eyebrow{ color:#D9C79B; }
.c-evidence h2{
  font-family:var(--serif-jp);
  font-size:30px; font-weight:600;
  line-height:1.6;
  margin:0 0 22px;
}
.c-evidence p{
  color:#D8CFBE;
  font-size:15px;
  margin:0 0 16px;
}
.c-evidence__figure{
  background:var(--paper);
  padding:22px;
  border-radius:2px;
}
.c-evidence__figure img{ width:100%; }
.c-evidence__note{
  margin-top:22px;
  padding-top:22px;
  border-top:1px solid var(--line-on-dark);
  font-size:13.5px;
  color:#B9AF9C;
}

/* -------------------------------------------------- CTA / contact */
.c-cta{
  padding:96px 0;
  text-align:center;
}
.c-cta .eyebrow{ justify-content:center; text-align:center; }
.c-cta h2{
  font-family:var(--serif-jp);
  font-size:clamp(26px,3.4vw,36px);
  font-weight:600;
  max-width:20ch;
  margin:0 auto 20px;
}
.c-cta p{
  max-width:44ch;
  margin:0 auto 36px;
  color:var(--ink-soft);
  font-size:15px;
}
.c-cta .btn--primary{ background:var(--brick); color:var(--paper); }
.c-cta .btn--primary:hover{ background:#8C3221; }

/* -------------------------------------------------- footer (shared) */
.c-footer{ background:var(--ink); color:#B9AF9C; padding:64px 0 0; border-top:3px solid var(--bronze); }
.c-footer .wrap{ display:grid; grid-template-columns:1.5fr 1fr 1.2fr; gap:48px; }
.c-footer__logo img{ height:38px; margin-bottom:18px; }
.c-footer h4{ font-family:var(--serif-jp); color:var(--paper); font-size:15px; margin:0 0 16px; font-weight:600; letter-spacing:.06em; }
.c-footer p, .c-footer address{ font-size:13.5px; line-height:1.95; margin:0; font-style:normal; }
.c-footer ul{ list-style:none; margin:0; padding:0; font-size:13.5px; line-height:2.1; }
.c-footer a{ color:inherit; text-decoration:none; }
.c-footer a:hover{ color:var(--paper); text-decoration:underline; text-underline-offset:3px; }
.c-footer__tel{ font-family:var(--serif-en); font-size:26px; color:var(--bronze); letter-spacing:.03em; display:block; margin:4px 0 2px; }
.c-footer__bottom{
  max-width:var(--max); margin:52px auto 0; padding:22px 28px 26px;
  border-top:1px solid var(--line-on-dark);
  font-size:12px; color:#8A8272; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}

/* -------------------------------------------------- responsive */
@media (max-width: 900px){
  .c-hero__grid{ grid-template-columns:1fr; gap:36px; }
  .c-hero__visual{ justify-self:flex-start; order:-1; }
  .c-hero__frame{ max-width:260px; }
  .c-lede .wrap{ grid-template-columns:1fr; gap:28px; }
  .c-features__body{ grid-template-columns:1fr; }
  .c-features__photo img{ height:340px; }
  .c-scene-grid{ grid-template-columns:repeat(2, 1fr); }
  .c-lineup-grid{ grid-template-columns:1fr; }
  .c-evidence .wrap{ grid-template-columns:1fr; }
  .c-footer .wrap{ grid-template-columns:1fr; gap:30px; }
  .c-nav__brand span{ display:none; }
}
@media (max-width: 560px){
  .c-hero__inner{ padding:96px 0 48px; }
  .c-hero__top{ flex-direction:column; align-items:flex-start; gap:18px; margin-bottom:40px; }
  .c-scene-grid{ grid-template-columns:1fr; }
  .c-lede h2{ font-size:24px; }
  .c-features__head h2, .c-scenes__head h2, .c-lineup__head h2{ font-size:26px; }
}


/* ==========================================================================
   SITE-WIDE COMPONENTS (top page / 業務用生パスタ page)
   ========================================================================== */

/* hero padding fix: .wrap's padding shorthand was overriding the hero's vertical padding */
.prima-site .c-hero__inner{ padding-top:120px; padding-bottom:72px; }

/* ---------- section scaffolding */
.section{ padding:96px 0; }
.section--deep{ background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section--dark{ background:var(--ink); color:var(--paper); }
.sec-head{ max-width:700px; margin:0 0 52px; }
.sec-head h2{ font-family:var(--serif-jp); font-weight:600; font-size:32px; line-height:1.55; margin:0; }
.sec-head__lead{ margin:18px 0 0; color:var(--ink-soft); font-size:15px; }
.section--dark .sec-head__lead{ color:#D8CFBE; }
.section--dark .eyebrow{ color:#D9C79B; }
.sec-head--center{ margin-left:auto; margin-right:auto; text-align:center; }
.sec-head--center .rule{ margin-left:auto; margin-right:auto; }

/* ---------- hero variants */
.c-hero--top{ min-height:720px; align-items:center; }
.c-hero--top .c-hero__bg{ filter:brightness(.95); background-position:center; }
.c-hero--top .c-hero__scrim{ background:linear-gradient(90deg, rgba(21,17,9,.9) 0%, rgba(21,17,9,.55) 42%, rgba(21,17,9,.05) 100%); }
.prima-site .c-hero--top .c-hero__inner{ padding-top:96px; padding-bottom:96px; }
.c-hero__content--narrow{ max-width:620px; }
.c-hero--top h1{ max-width:none; }
.c-hero--page{ min-height:440px; }
.c-hero--page .c-hero__bg{ filter:brightness(.55) saturate(.9); background-position:center 55%; }
.c-hero--page h1{ max-width:none; margin-bottom:20px; }
.c-hero--page .c-hero__lede{ margin-bottom:34px; }
.crumb{ font-family:var(--serif-en); font-size:13px; letter-spacing:.08em; color:#CDBF9F; margin:0 0 26px; }
.crumb a:hover{ color:#fff; }
.crumb span{ margin:0 8px; opacity:.6; }

/* ---------- stats strip */
.stats{ background:var(--paper); border-bottom:1px solid var(--line); }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stats__item{ padding:44px 20px; text-align:center; border-left:1px solid var(--line); }
.stats__item:first-child{ border-left:0; }
.stats__num{ font-family:var(--serif-en); font-weight:600; font-size:52px; line-height:1; color:var(--bronze-dark); }
.stats__num small{ font-family:var(--serif-jp); font-size:18px; font-weight:600; color:var(--ink); margin-left:4px; }
.stats__label{ margin:12px 0 0; font-size:13.5px; color:var(--ink-soft); line-height:1.7; }

/* ---------- promo (コメスタ) */
.promo{ display:grid; grid-template-columns:1.05fr .95fr; background:var(--ink); color:var(--paper); overflow:hidden; }
.promo__media{ position:relative; min-height:460px; }
.promo__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.promo__ribbon{ position:absolute; top:22px; left:22px; background:var(--ink); color:var(--paper); font-family:var(--serif-en); font-size:12.5px; letter-spacing:.14em; padding:7px 16px; border:1px solid var(--line-on-dark); border-radius:999px; }
.promo__body{ padding:60px 54px; display:flex; flex-direction:column; justify-content:center; }
.promo__num{ display:flex; align-items:baseline; gap:14px; margin-bottom:20px; }
.promo__num b{ font-family:var(--serif-en); font-weight:600; font-size:76px; line-height:.9; color:var(--bronze); }
.promo__num span{ font-family:var(--serif-jp); font-size:15px; line-height:1.6; border-left:1px solid var(--line-on-dark); padding-left:14px; }
.promo h2{ font-family:var(--serif-jp); font-weight:600; font-size:28px; line-height:1.6; margin:0 0 18px; }
.promo p{ margin:0 0 24px; color:#D8CFBE; font-size:14.5px; line-height:1.95; }
.chips{ list-style:none; margin:0 0 30px; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.chips li{ font-size:12.5px; border:1px solid var(--line-on-dark); border-radius:999px; padding:6px 14px; color:#EDE4D2; }
.chips strong{ color:var(--bronze); font-weight:700; }
.promo .btn{ align-self:flex-start; }

/* ---------- entry cards */
.entry-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.entry{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); color:var(--ink); transition:transform .3s ease, box-shadow .3s ease; }
.entry:hover{ transform:translateY(-4px); box-shadow:0 22px 40px -26px rgba(33,27,20,.45); }
.entry__img{ height:210px; overflow:hidden; position:relative; }
.entry__img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.entry:hover .entry__img img{ transform:scale(1.05); }
.entry__body{ padding:26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.entry__en{ font-family:var(--serif-en); font-style:italic; font-size:13px; color:var(--bronze-dark); letter-spacing:.08em; }
.entry h3{ font-family:var(--serif-jp); font-size:21px; margin:6px 0 10px; }
.entry p{ margin:0 0 22px; font-size:14px; color:var(--ink-soft); line-height:1.85; }
.entry__more{ margin-top:auto; align-self:flex-start; font-family:var(--serif-en); font-size:15px; letter-spacing:.04em; border-bottom:1px solid var(--bronze); padding-bottom:2px; }
.entry__more::after{ content:" →"; }
.entry__badge{ position:absolute; top:14px; left:14px; background:var(--ink); color:var(--bronze); font-family:var(--serif-en); font-style:italic; font-size:12.5px; letter-spacing:.08em; padding:5px 14px; border-radius:999px; }
.entry--soon{ cursor:default; }
.entry--soon:hover{ transform:none; box-shadow:none; }
.entry--soon .entry__img img{ filter:grayscale(.55) brightness(.75); }
.entry--soon:hover .entry__img img{ transform:none; }
.entry--soon .entry__more{ border-bottom-color:transparent; color:var(--ink-soft); }
.entry--soon .entry__more::after{ content:""; }

/* ---------- craft */
.craft{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.craft__list{ list-style:none; margin:0; padding:0; }
.craft__item{ display:grid; grid-template-columns:64px 1fr; gap:20px; padding:28px 0; border-top:1px solid var(--line); }
.craft__item:last-child{ border-bottom:1px solid var(--line); }
.craft__no{ font-family:var(--serif-en); font-size:34px; color:var(--bronze); line-height:1; }
.craft__item h3{ font-family:var(--serif-jp); font-size:19px; margin:0 0 8px; }
.craft__item p{ margin:0; font-size:14.5px; color:var(--ink-soft); }
.craft__media{ position:relative; padding-bottom:64px; }
.craft__media .big{ width:100%; height:460px; object-fit:cover; }
.craft__media .small{ position:absolute; right:-18px; bottom:0; width:52%; height:210px; object-fit:cover; border:8px solid var(--paper); box-shadow:0 20px 40px -20px rgba(33,27,20,.5); }

/* ---------- story */
.story{ display:grid; grid-template-columns:.9fr 1.1fr; background:#fff; border:1px solid var(--line); }
.story__img{ position:relative; min-height:440px; }
.story__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story__body{ padding:56px 52px; display:flex; flex-direction:column; justify-content:center; }
.story__lead{ margin:0 0 20px; font-family:var(--serif-jp); font-size:22px; line-height:1.9; font-weight:600; }
.story__lead em{ font-style:normal; color:var(--bronze-dark); }
.story p{ margin:0 0 14px; font-size:14.5px; color:var(--ink-soft); }
.story__cite{ margin-top:10px !important; font-family:var(--serif-jp); color:var(--ink) !important; }


/* ---------- company */
.company{ display:grid; grid-template-columns:1.2fr .8fr; gap:56px; align-items:start; }
.dl{ margin:0; display:grid; grid-template-columns:150px 1fr; border-top:1px solid var(--line); }
.dl dt, .dl dd{ padding:16px 0; border-bottom:1px solid var(--line); margin:0; font-size:14.5px; }
.dl dt{ font-family:var(--serif-jp); font-weight:600; }
.company__box{ background:var(--ink); color:var(--paper); padding:40px 36px; }
.company__box h3{ font-family:var(--serif-jp); font-size:20px; margin:0 0 12px; font-weight:600; }
.company__box p{ margin:0 0 22px; font-size:14px; color:#D8CFBE; }
.company__tel{ display:block; font-family:var(--serif-en); font-size:30px; color:var(--bronze); margin:0 0 4px; letter-spacing:.03em; }
.company__hours{ font-size:12.5px; color:#B9AF9C; margin:0 0 24px !important; }

/* ==========================================================================
   業務用生パスタ page
   ========================================================================== */
.spec-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.spec{ background:#fff; border:1px solid var(--line); padding:30px 28px 28px; }
.spec__label{ font-family:var(--serif-en); font-style:italic; font-size:13px; color:var(--bronze-dark); letter-spacing:.08em; }
.spec h3{ font-family:var(--serif-jp); font-size:19px; margin:4px 0 16px; }
.spec__value{ font-family:var(--serif-en); font-weight:600; font-size:34px; line-height:1.1; margin:0 0 6px; }
.spec__value small{ font-family:var(--serif-jp); font-size:14px; font-weight:500; color:var(--ink-soft); margin-left:4px; }
.spec p{ margin:0; font-size:13.5px; color:var(--ink-soft); }
.widths{ list-style:none; margin:4px 0 12px; padding:0; display:flex; align-items:flex-end; gap:12px; height:92px; }
.widths li{ display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px; font-family:var(--serif-en); font-size:13px; color:var(--ink-soft); }
.widths i{ display:block; height:64px; background:linear-gradient(180deg,#D4A557,var(--bronze)); border-radius:1px; }
.spec-note{ margin:22px 0 0; font-size:13px; color:var(--ink-soft); }
.kv-bar{ margin-top:24px; display:grid; grid-template-columns:repeat(3,1fr); background:var(--ink); color:var(--paper); }
.kv-bar div{ padding:26px 28px; border-left:1px solid var(--line-on-dark); }
.kv-bar div:first-child{ border-left:0; }
.kv-bar dt{ font-family:var(--serif-en); font-style:italic; font-size:13px; letter-spacing:.08em; color:#D9C79B; margin:0 0 6px; }
.kv-bar dd{ margin:0; font-size:14px; line-height:1.8; }
.kv-bar dd strong{ font-family:var(--serif-en); font-size:20px; color:var(--bronze); font-weight:600; }

.class-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:24px; }
.class-card{ grid-column:span 2; background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; }
.class-card:nth-child(n+4){ grid-column:span 3; }
.class-card__img{ height:200px; overflow:hidden; }
.class-card:nth-child(n+4) .class-card__img{ height:230px; }
.class-card__img img{ width:100%; height:100%; object-fit:cover; }
.class-card__body{ padding:24px 26px 28px; }
.class-card__en{ font-family:var(--serif-en); font-style:italic; font-size:13px; color:var(--bronze-dark); letter-spacing:.08em; }
.class-card h3{ font-family:var(--serif-jp); font-size:20px; margin:4px 0 10px; }
.class-card p{ margin:0; font-size:14px; color:var(--ink-soft); line-height:1.85; }
.class-card__price{ margin-top:14px !important; padding-top:12px; border-top:1px solid var(--line); font-size:13px !important; }
.class-card__price b{ font-family:var(--serif-en); font-size:20px; color:var(--bronze-dark); font-weight:600; margin:0 2px; }

.table-wrap{ overflow-x:auto; border:1px solid var(--line); background:#fff; -webkit-overflow-scrolling:touch; }
.price{ width:100%; border-collapse:collapse; min-width:700px; }
.price th, .price td{ padding:14px 16px; text-align:right; border-bottom:1px solid var(--line); white-space:nowrap; }
.price thead th{ background:var(--ink); color:var(--paper); font-family:var(--serif-jp); font-weight:600; letter-spacing:.04em; font-size:14px; }
.price thead th:first-child, .price tbody th{ text-align:left; }
.price tbody th{ font-family:var(--serif-jp); font-weight:600; font-size:14.5px; background:var(--paper-deep); }
.price tbody tr:last-child th, .price tbody tr:last-child td{ border-bottom:0; }
.price td{ font-family:var(--serif-en); font-size:18px; font-weight:600; }
.price td small{ font-family:var(--serif-jp); font-size:12px; font-weight:500; color:var(--ink-soft); margin-left:1px; }
.price-note{ margin:16px 0 0; font-size:12.5px; color:var(--ink-soft); }

.flavor-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.flavor{ position:relative; overflow:hidden; aspect-ratio:4/3; background:#fff; margin:0; }
.flavor img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.flavor:hover img{ transform:scale(1.06); }
.flavor figcaption{ position:absolute; left:0; right:0; bottom:0; padding:30px 16px 12px; background:linear-gradient(0deg,rgba(21,17,9,.78),transparent); color:var(--paper); font-family:var(--serif-jp); font-size:15px; letter-spacing:.06em; }
.flavor figcaption small{ display:block; font-family:var(--serif-en); font-style:italic; font-size:12px; color:#D9C79B; letter-spacing:.06em; }

.roll{ display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:24px; align-items:center; margin-top:56px; padding-top:56px; border-top:1px solid var(--line); }
.roll img{ width:100%; height:200px; object-fit:cover; }
.roll h3{ font-family:var(--serif-jp); font-size:20px; margin:0 0 10px; }
.roll p{ margin:0; font-size:14px; color:var(--ink-soft); }

.dish-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px 18px; }
.dish{ margin:0; }
.dish img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.dish figcaption{ padding-top:10px; font-size:13px; color:var(--ink-soft); line-height:1.6; }
.dish-note{ margin:26px 0 0; font-size:12.5px; color:var(--ink-soft); }

.flow{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.flow li{ position:relative; padding:28px 24px; background:#fff; border:1px solid var(--line); }
.flow li:not(:last-child)::after{ content:""; position:absolute; top:50%; right:-17px; width:10px; height:10px; border-top:2px solid var(--bronze); border-right:2px solid var(--bronze); transform:translateY(-50%) rotate(45deg); }
.flow__no{ font-family:var(--serif-en); font-size:36px; color:var(--bronze); line-height:1; }
.flow h3{ font-family:var(--serif-jp); font-size:17px; margin:12px 0 8px; }
.flow p{ margin:0; font-size:13.5px; color:var(--ink-soft); line-height:1.8; }

.faq{ max-width:860px; margin:0 auto; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:22px 48px 22px 0; position:relative; font-family:var(--serif-jp); font-weight:600; font-size:16.5px; line-height:1.7; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::before{ content:"Q."; font-family:var(--serif-en); color:var(--bronze); margin-right:12px; font-size:20px; }
.faq summary::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:24px; color:var(--bronze-dark); font-weight:300; }
.faq details[open] summary::after{ content:"–"; }
.faq__a{ padding:0 48px 26px 34px; margin:0; font-size:14.5px; color:var(--ink-soft); line-height:1.95; }

.sample{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:start; }
.sample__info h2{ font-family:var(--serif-jp); font-weight:600; font-size:30px; line-height:1.6; margin:0 0 18px; }
.sample__info p{ margin:0 0 16px; color:var(--ink-soft); font-size:14.5px; }
.note-box{ border-left:3px solid var(--bronze); background:var(--paper-deep); padding:16px 20px; font-size:13.5px; color:var(--ink-soft); margin:0 0 22px; }
.note-box strong{ color:var(--ink); font-family:var(--serif-en); font-size:18px; }
.tel-block{ margin-top:30px; padding-top:24px; border-top:1px solid var(--line); }
.tel-block__label{ font-size:13px; color:var(--ink-soft); margin:0 0 4px !important; }
.tel-block__num{ font-family:var(--serif-en); font-size:34px; font-weight:600; color:var(--ink); letter-spacing:.03em; display:block; line-height:1.2; }
.tel-block__hours{ font-size:12.5px !important; margin:4px 0 0 !important; }
.form{ background:#fff; border:1px solid var(--line); padding:40px 38px 36px; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.field{ margin:0 0 20px; border:0; padding:0; min-width:0; }
.field label, .field legend{ display:block; font-size:13.5px; font-weight:700; margin-bottom:7px; padding:0; }
.req{ color:var(--brick); font-size:11px; margin-left:8px; font-weight:700; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea, .field select{
  width:100%; padding:12px 14px; border:1px solid rgba(33,27,20,.28); border-radius:2px;
  background:#FDFBF6; font:inherit; font-size:16px; color:var(--ink);
}
.field textarea{ min-height:130px; resize:vertical; line-height:1.7; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:2px solid var(--bronze); outline-offset:1px; border-color:var(--bronze); }
.checks{ display:flex; flex-wrap:wrap; gap:10px 20px; }
.checks label{ display:flex; align-items:center; gap:8px; font-weight:400; font-size:14px; margin:0; cursor:pointer; }
.checks input{ width:18px; height:18px; accent-color:var(--bronze-dark); }
.form__agree{ margin:6px 0 24px; font-size:13px; color:var(--ink-soft); }
.form__agree label{ display:flex; gap:10px; align-items:flex-start; font-weight:400; cursor:pointer; }
.form__agree input{ width:18px; height:18px; margin-top:3px; accent-color:var(--bronze-dark); }
.form button{ width:100%; border:0; cursor:pointer; background:var(--brick); color:var(--paper); font-family:var(--serif-jp); font-size:16px; letter-spacing:.08em; padding:17px 24px; border-radius:2px; transition:background .2s ease; }
.form button:hover{ background:#8C3221; }
.form__msg{ display:none; margin:18px 0 0; padding:14px 16px; background:var(--paper-deep); border-left:3px solid var(--bronze); font-size:13.5px; }
.form__msg.is-show{ display:block; }

/* ---------- CTA band (comesta page re-use) */
.c-cta__tel{ margin-top:22px !important; font-size:13.5px !important; }
.c-cta__tel b{ font-family:var(--serif-en); font-size:22px; color:var(--ink); margin:0 4px; }

/* ==========================================================================
   Responsive (site-wide)
   ========================================================================== */
@media (max-width:1040px){
  .flavor-grid, .dish-grid{ grid-template-columns:repeat(3,1fr); }
  .flow{ grid-template-columns:repeat(2,1fr); }
  .flow li:nth-child(2)::after{ display:none; }
}
@media (max-width:960px){
  .c-nav__toggle{ display:block; }
  .c-nav__cta{ display:none; }
  .c-nav__menu{
    position:absolute; top:72px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
    background:var(--ink); border-bottom:1px solid rgba(184,135,60,.45);
    padding:8px 28px 22px; display:none;
  }
  .c-nav.is-open .c-nav__menu{ display:flex; }
  .c-nav__menu a{ padding:16px 0; border-bottom:1px solid rgba(247,242,232,.12); }
  .c-nav__menu a:hover{ border-bottom-color:rgba(247,242,232,.12); }
  .c-nav__menu .is-soon{ padding:16px 0; }
  .c-nav__menu .only-sp{ display:block; }
  .c-nav__menu .only-sp a{ color:var(--bronze); border-bottom:0; }
  .c-hero--top{ min-height:620px; }
  .c-hero--top .c-hero__scrim{ background:linear-gradient(180deg, rgba(21,17,9,.55) 0%, rgba(21,17,9,.82) 100%); }
  .stats__grid{ grid-template-columns:repeat(2,1fr); }
  .stats__item:nth-child(3){ border-left:0; }
  .stats__item:nth-child(n+3){ border-top:1px solid var(--line); }
  .promo{ grid-template-columns:1fr; }
  .promo__media{ min-height:280px; }
  .promo__body{ padding:40px 28px; }
  .entry-grid{ grid-template-columns:1fr; }
  .entry{ flex-direction:row; }
  .entry__img{ width:42%; height:auto; min-height:190px; flex-shrink:0; }
  .craft{ grid-template-columns:1fr; gap:44px; }
  .craft__media .small{ right:0; }
  .story{ grid-template-columns:1fr; }
  .story__img{ min-height:260px; }
  .story__body{ padding:36px 28px; }
  .company{ grid-template-columns:1fr; gap:36px; }
  .spec-grid{ grid-template-columns:1fr; }
  .kv-bar{ grid-template-columns:1fr; }
  .kv-bar div{ border-left:0; border-top:1px solid var(--line-on-dark); }
  .kv-bar div:first-child{ border-top:0; }
  .class-grid{ grid-template-columns:1fr 1fr; }
  .class-card, .class-card:nth-child(n+4){ grid-column:span 1; }
  .class-card:last-child{ grid-column:span 2; }
  .roll{ grid-template-columns:1fr 1fr; }
  .roll > div{ grid-column:1 / -1; }
  .sample{ grid-template-columns:1fr; gap:36px; }
  .c-footer__bottom{ margin-top:36px; }
}
@media (max-width:620px){
  .section{ padding:68px 0; }
  .sec-head{ margin-bottom:38px; }
  .sec-head h2, .sample__info h2{ font-size:26px; }
  .entry{ flex-direction:column; }
  .entry__img{ width:100%; height:190px; }
  .stats__num{ font-size:40px; }
  .stats__item{ padding:32px 12px; }
  .flavor-grid, .dish-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .flavor figcaption{ font-size:13.5px; padding:22px 10px 8px; }
  .flow{ grid-template-columns:1fr; }
  .flow li::after{ display:none !important; }
  .class-grid{ grid-template-columns:1fr; }
  .class-card:last-child{ grid-column:span 1; }
  .form{ padding:28px 20px 26px; }
  .form__row{ grid-template-columns:1fr; }
  .dl{ grid-template-columns:104px 1fr; }
  .story__lead{ font-size:19px; }
  .promo h2{ font-size:23px; }
  .craft__media .big{ height:300px; }
  .craft__media .small{ height:150px; }
  .roll{ grid-template-columns:1fr; }
  .c-footer .wrap{ gap:30px; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; }
}

/* ==========================================================================
   Refinements after visual check
   ========================================================================== */
/* Japanese line breaking: break at phrase boundaries where supported */
.prima-site{ word-break:auto-phrase; line-break:strict; }
.prima-site h1, .prima-site h2, .prima-site h3{ text-wrap:balance; }
.prima-site p{ text-wrap:pretty; }

/* top hero headline */
.c-hero--top .c-hero__content--narrow{ max-width:680px; }
.prima-site .c-hero--top h1{ font-size:clamp(34px, 4.6vw, 58px); line-height:1.38; }
.c-hero--top .c-hero__lede{ max-width:34em; }

/* stats: keep numeral + unit on one line */
.stats__num{ white-space:nowrap; font-size:clamp(34px, 3.7vw, 48px); }
.stats__item{ padding:44px 12px; }

/* promo */
.promo{ grid-template-columns:1fr 1fr; }
.promo__body{ padding:52px 48px; }

/* story: .story p was out-ranking the lead style */
.story p.story__lead{ font-family:var(--serif-jp); font-size:22px; line-height:1.9; font-weight:600; color:var(--ink); margin:0 0 20px; }
.story p.story__lead em{ font-style:normal; color:var(--bronze-dark); }
@media (max-width:620px){ .story p.story__lead{ font-size:19px; } }

/* clients */

/* footer bottom rule aligned to content width */
.c-footer__bottom{ border-top:0; position:relative; }
.c-footer__bottom::before{ content:""; position:absolute; top:0; left:28px; right:28px; border-top:1px solid var(--line-on-dark); }

/* fixes found in visual check (pasta page) */
.crumb a{ color:inherit; }
.spec p.spec__value{ font-family:var(--serif-en); font-weight:600; font-size:36px; line-height:1.1; color:var(--ink); margin:0 0 10px; }
.spec p.spec__value small{ font-family:var(--serif-jp); font-size:14px; font-weight:500; color:var(--ink-soft); margin-left:4px; }
.stats__num{ margin:0; }
.class-card__body{ display:flex; flex-direction:column; flex:1; }
.class-card__price{ margin-top:auto !important; }
.class-card__body p:not(.class-card__price){ margin-bottom:16px; }

/* mobile overrides that must come after the refinements above */
@media (max-width:960px){
  .promo{ grid-template-columns:1fr; }
  .promo__body{ padding:38px 26px; }
  .promo__media{ min-height:260px; }
}
@media (max-width:620px){
}

/* browsers give <figure> a default 40px side margin */
.prima-site figure{ margin:0; }


/* ==========================================================================
   Update: hero image position, text-stat, form parts
   ========================================================================== */
.c-hero--top .c-hero__bg{ background-position:right center; filter:none; }
.c-hero--top .c-hero__scrim{ background:linear-gradient(90deg, rgba(21,17,9,.78) 0%, rgba(21,17,9,.4) 46%, rgba(21,17,9,0) 100%); }
@media (max-width:960px){
  .c-hero--top .c-hero__bg{ background-position:72% center; }
  .c-hero--top .c-hero__scrim{ background:linear-gradient(180deg, rgba(21,17,9,.6) 0%, rgba(21,17,9,.86) 100%); }
}
.stats__num--text{ font-family:var(--serif-jp); font-size:clamp(26px, 2.9vw, 36px); line-height:1.4; padding:5px 0 3px; }

.radios{ display:flex; flex-wrap:wrap; gap:10px 12px; }
.radios label{ display:flex; align-items:center; gap:8px; font-weight:500; font-size:14.5px; margin:0; cursor:pointer;
  padding:10px 18px; border:1px solid rgba(33,27,20,.28); border-radius:999px; background:#FDFBF6; }
.radios input{ width:17px; height:17px; accent-color:var(--bronze-dark); margin:0; }
.radios label:has(input:checked){ border-color:var(--bronze); background:#F6E9D0; }
.field[hidden]{ display:none; }
.hp{ position:absolute !important; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.form__msg.is-error{ border-left-color:var(--brick); background:#FBEDEA; color:#6E2618; }
.form button[disabled]{ opacity:.6; cursor:wait; }
.form__done{ text-align:center; padding:36px 10px; }
.form__done h3{ font-family:var(--serif-jp); font-size:24px; margin:0 0 14px; }
.form__done p{ margin:0 0 8px; font-size:14.5px; color:var(--ink-soft); }
.c-hero--top .c-hero__lede{ max-width:25.5em; }
.flavor figcaption{ padding-top:46px; background:linear-gradient(0deg, rgba(21,17,9,.88) 0%, rgba(21,17,9,.62) 55%, rgba(21,17,9,0) 100%); text-shadow:0 1px 3px rgba(0,0,0,.45); }
.widths{ gap:10px; }
.nw{ white-space:nowrap; }

/* ---------- privacy policy page */
.c-hero--slim{ min-height:300px; }
.prima-site .c-hero--slim .c-hero__inner{ padding-top:84px; padding-bottom:52px; }
.c-hero--slim h1{ margin-bottom:0; }
.policy{ max-width:820px; margin:0 auto; }
.policy__lead{ margin:0 0 8px; font-size:15.5px; color:var(--ink-soft); line-height:2; }
.policy h2{ font-family:var(--serif-jp); font-size:19px; font-weight:600; line-height:1.5; margin:46px 0 14px; padding-left:14px; border-left:3px solid var(--bronze); }
.policy p{ margin:0 0 12px; font-size:15px; color:var(--ink-soft); line-height:1.95; }
.policy ul{ margin:0 0 14px; padding-left:1.4em; font-size:15px; color:var(--ink-soft); line-height:1.95; }
.policy a{ color:var(--bronze-dark); text-decoration:underline; text-underline-offset:3px; }
.policy .dl{ margin-top:6px; }
.policy__date{ margin-top:52px !important; text-align:right; font-size:14px !important; color:var(--ink) !important; }
.form__agree a{ color:var(--bronze-dark); text-decoration:underline; text-underline-offset:3px; }
