@charset "utf-8";

/* ==========================================================================
   index.html
   ========================================================================== */
main section[id]{scroll-margin-top:var(--header-h-sp);}

/* ==========================================================================
   Hero（メインビジュアル）
   ========================================================================== */
.p-hero{
  margin-top:var(--header-h-sp);
  position:relative;
  background:
    radial-gradient(ellipse 120% 90% at 50% 30%, #2a2018 0%, #14100b 60%, #0d0b09 100%);
  color:var(--color-text-light);
  overflow:hidden;
  padding:10px 0 0;
}
.p-hero__inner{
  position:relative;z-index:1;
  padding:0 20px;
  text-align:center;
}
.p-hero__tagline{
  display:block;
  font-family:var(--font-serif);
  font-size:1.125rem;
  letter-spacing:0.3em;
  text-indent:0.3em;
  margin-bottom:24px;
  color:#fff;
}
.p-hero__logo{
  width:min(72%, 300px);
  margin:0 auto;
}
.p-hero__logo img{width:100%;height:auto;padding-right:1.5em;}

.p-hero__nav-list{
  display:flex;
  margin-top:20px;
  border-top:1px solid rgba(243,234,217,0.18);
}
.p-hero__nav-item{
  flex:1 1 0;
  min-width:0;
}
.p-hero__nav-item + .p-hero__nav-item{
  border-left:1px solid rgba(243,234,217,0.3);
}
.p-hero__nav-link{
  display:flex;flex-direction:column;align-items:center;
  padding: 15px 4px 10px;
}
.p-hero__nav-icon{
  width:26px;height:26px;
  color:var(--color-text-light);
  /* margin-bottom:10px; */
}
.p-hero__nav-icon svg,.p-hero__nav-icon img{width:100%;height:100%;}
.p-hero__nav-title{
  align-self:stretch;
  font-family:var(--font-serif);
  font-weight:700;
  font-size:1rem;
  letter-spacing:0.02em;
  text-align:center;
  color: #dec561;
}
.p-hero__nav-sub{display:none;align-self:stretch;text-align:center;}
.p-hero__nav-scroll{display:none;align-self:stretch;text-align:center;}
.p-hero__nav-chevron{
  margin-top:-6px;
  width:16px;height:16px;
  color:rgba(243,234,217,0.75);
  animation:heroChevron 1.8s ease-in-out infinite;
}
.p-hero__nav-chevron svg{width:100%;height:100%;}
@keyframes heroChevron{
  0%,100%{transform:translateY(0);opacity:0.7;}
  50%{transform:translateY(4px);opacity:1;}
}

/* ==========================================================================
   フォトストリップ
   ========================================================================== */
.p-photostrip__list{
  display:flex;
}
.p-photostrip__item{
  flex:1 1 0;
  aspect-ratio:480/310;
  overflow:hidden;
}
.p-photostrip__item a{
  display:block;width:100%;height:100%;
}
.p-photostrip__item img{
  width:100%;height:100%;object-fit:cover;
}
.p-photostrip__item--pc-only{display:none;}

/* ==========================================================================
   お知らせ / タブ
   ========================================================================== */
.p-news{background:var(--color-bg);padding:48px 0 56px;}

.p-news__tabs{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:20px;
  border-bottom:1px solid var(--color-gold);
  /* margin-bottom:32px; */
}
.p-news__tab{
  display:inline-flex;align-items:center;gap:6px;
  white-space:nowrap;
  font-family:var(--font-sans);
  font-size:0.8125rem;
  color:var(--color-text-sub);
  letter-spacing:0.02em;
  padding:8px 2px 12px 2px;
  margin-bottom:-1px;
  /* border-bottom:1px solid var(--color-border); */
  transition:color var(--transition);
  font-weight:500;
}
.p-news__tab:hover{color:var(--color-gold);}
.p-news__tab-icon{
  flex:none;width:26px;height:26px;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
}
.p-news__tab-icon--news{-webkit-mask-image:url(../img/index/icon-news.svg);mask-image:url(../img/index/icon-news.svg);}
.p-news__tab-icon--product{-webkit-mask-image:url(../img/index/icon-product.svg);mask-image:url(../img/index/icon-product.svg);}
.p-news__tab-icon--recipe{-webkit-mask-image:url(../img/index/icon-recipe.svg);mask-image:url(../img/index/icon-recipe.svg);}
.p-news__tab.is-active{
  position:relative;
  padding:10px 12px;
  color:var(--color-gold);
  background:var(--color-bg);
  border:1px solid var(--color-gold);
  border-bottom:1px solid var(--color-bg);
  border-radius:8px 8px 0 0;
}
.p-news__tab.is-active .p-news__tab-icon{width:26px;height:26px;}

.p-news__list{margin-top:8px;}
.p-news__item{
  display:flex;flex-wrap:wrap;
  align-items:baseline;
  column-gap:16px;row-gap:6px;
  padding:18px 0;
  border-bottom:1px solid var(--color-border);
}
.p-news__tag{
  flex:none;
  display:inline-block;
  padding:4px 10px;
  border-radius:2px;
  background:var(--color-tag-dark);
  color:#fff;
  font-size:0.6875rem;
  letter-spacing:0.04em;
  line-height:1.4;
}
.p-news__tag--event{background:var(--color-tag-event);}
.p-news__tag--gift{background:var(--color-gold);}
.p-news__tag--media{background:#4a7ca6;}
.p-news__tag--kura{background:#6e4a36;}
.p-news__date{
  flex:none;
  font-size:0.75rem;
  color:var(--color-text-sub);
  letter-spacing:0.03em;
}
.p-news__text{
  flex-basis:100%;
  font-size:0.875rem;
  line-height:1.7;
  color:var(--color-text);
}

.p-news__more{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:24px;
  padding:14px 30px;
  border:1px solid var(--color-gold);
  color:var(--color-gold);
  font-family:var(--font-serif);
  font-size:0.875rem;
  letter-spacing:0.06em;
  border-radius:2px;
  transition:background var(--transition), color var(--transition);
}
.p-news__more:hover{background:var(--color-gold);color:#fff;}
.p-news__more-wrap{text-align:center;}

.p-preview{padding:48px 0 56px;}
.p-preview--roast{background:var(--color-bg);}
.p-preview--mekiki{background:#ffffff;}
.p-preview--aeru{background:var(--color-bg-dark);color:var(--color-text-light);}

.p-preview__head{
  position:relative;
  display:flex;align-items:center;gap:14px;
  padding-bottom:20px;
  margin-bottom:28px;
}
.p-preview__head::after{
  content:'';
  position:absolute;left:0;bottom:0;
  width:100%;height:1px;
  background:linear-gradient(to right, var(--color-border), transparent);
}
.p-preview--aeru .p-preview__head::after{
  background:linear-gradient(to right, rgba(243,234,217,0.35), transparent);
}
.p-preview__icon{
  flex:none;width:30px;height:30px;
  background-color:var(--color-gold);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
}
.p-preview__icon--baisen{-webkit-mask-image:url(../img/common/icon_baisen.svg);mask-image:url(../img/common/icon_baisen.svg);}
.p-preview__icon--mekiki{-webkit-mask-image:url(../img/common/icon_mekiki.svg);mask-image:url(../img/common/icon_mekiki.svg);}
.p-preview__icon--aeru{-webkit-mask-image:url(../img/common/icon_aeru.svg);mask-image:url(../img/common/icon_aeru.svg);}
.p-preview__heading{
  font-family:var(--font-serif);
  font-size:1.625rem;
  font-weight:700;
  letter-spacing:0.08em;
  color:var(--color-gold);
}

.p-preview__figure{margin-bottom:28px;}
.p-preview__figure img{width:100%;border-radius:2px;}

.p-preview__eyebrow{
  display:block;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.1em;
  color:var(--color-gold);
  margin-bottom:12px;
}
.p-preview__title{
  font-family:var(--font-serif);
  font-size:1.5rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:0.03em;
  margin-bottom:18px;
}
.p-preview__text{
  font-size:0.875rem;
  line-height:1.9;
  margin-bottom:24px;
}
.p-preview--aeru .p-preview__text{color:rgba(243,234,217,0.85);}

.p-preview__more{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 30px;
  border:1px solid var(--color-gold);
  color:var(--color-gold);
  font-family:var(--font-serif);
  font-size:0.875rem;
  letter-spacing:0.06em;
  border-radius:2px;
  transition:background var(--transition), color var(--transition);
}
.p-preview__more:hover{background:var(--color-gold);color:#fff;}

.p-iruaeru{
  display:block;
  margin-top:28px;
  overflow:hidden;
  border-radius:2px;
  transition:opacity var(--transition);
}
.p-iruaeru:hover{opacity:0.9;}
.p-iruaeru img{width:100%;}
.p-recipe{
  position:relative;
  background:var(--color-bg-warm);
  padding:48px 0 56px;
  overflow:hidden;
}
.p-recipe__deco{
  position:absolute;
  top:0;right:0;
  width:220px;
  opacity:0.9;
  pointer-events:none;
}
.p-recipe__seed-deco{
  position:absolute;
  bottom:0;left:0;
  width:200px;
  opacity:0.9;
  pointer-events:none;
}
.p-recipe__inner{position:relative;z-index:1;}
.p-recipe__head{margin-bottom:28px;}
.p-recipe__en{
  display:block;
  font-size:0.6875rem;
  letter-spacing:0.2em;
  color:var(--color-gold);
  margin-bottom:10px;
}
.p-recipe__title{
  font-family:var(--font-serif);
  font-size:1.75rem;
  font-weight:700;
  letter-spacing:0.06em;
  margin-bottom:14px;
}
.p-recipe__lead{
  font-size:0.875rem;
  color:var(--color-text-sub);
  line-height:1.8;
}
.p-recipe__list{
  display:flex;flex-direction:column;gap:20px;
  margin-bottom:28px;
}
.p-recipe__card{
  display:flex;
  background:#fff;
  border:1px solid var(--color-border);
  transition:border-color var(--transition), transform var(--transition);
}
.p-recipe__card:hover{border-color:var(--color-gold);transform:translateY(-2px);}
/* .js-reveal の .is-inview（同じプロパティtransformを使用）より詳細度を上げ、表示後もhoverが効くようにする */
.p-recipe__card.js-reveal.is-inview:hover{transform:translateY(-2px);}
.p-recipe__card-figure{flex:0 0 42%;aspect-ratio:306/196;position:relative;overflow:hidden;}
.p-recipe__card-figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.p-recipe__card-body{
  flex:1 1 0;min-width:0;
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;
  padding:0 20px;
  font-family:var(--font-serif);
  font-size:1rem;
  letter-spacing:0.03em;
  color:var(--color-text);
}
.p-recipe__card-arrow{flex:none;color:var(--color-text-sub);}

.p-recipe__more{
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:18px;
  background:var(--color-gold-btn);
  color:#fff;
  font-family:var(--font-serif);
  font-size:1rem;
  letter-spacing:0.08em;
  transition:opacity var(--transition);
}
.p-recipe__more:hover{opacity:0.85;}

.p-shop{position:relative;background:#ffffff;padding:48px 0 56px;text-align:center;overflow:hidden;}
.p-shop .l-container{position:relative;z-index:1;}
.p-shop__deco{
  position:absolute;
  width:220px;
  pointer-events:none;
}
.p-shop__deco--left{top:0;left:0;transform:scaleX(-1);}
.p-shop__deco--right{bottom:0;right:0;}
.p-shop__logo{height:77px;margin:0 auto 20px;}
.p-shop__title{
  font-family:var(--font-serif);
  font-size:1.75rem;
  font-weight:700;
  letter-spacing:0.06em;
  margin-bottom:14px;
}
.p-shop__title-accent{color:var(--color-red);}
.p-shop__lead{
  font-size:0.875rem;
  color:var(--color-text-sub);
  line-height:1.8;
  margin-bottom:32px;
}
.p-shop__list{
  display:flex;flex-direction:column;gap:20px;
  max-width:80%;
  margin-inline:auto;
  margin-bottom:28px;
}
.p-shop__card a{
  display:block;
  padding:32px 20px;
  border:1px solid var(--color-gold);
  transition:transform var(--transition);
}
.p-shop__card a:hover{transform:translateY(-2px);}
.p-shop__icon{
  display:block;
  width:90px;height:90px;
  margin:0 auto;
}
.p-shop__icon img{width:100%;height:100%;}
.p-shop__label{
  position:relative;
  display:block;
  text-align:center;
  font-family:var(--font-serif);
  font-size:1.0625rem;
  font-weight:600;
  letter-spacing:0.04em;
  color:var(--color-text);
}
.p-shop__arrow{
  position:absolute;
  top:50%;
  right:0;
  transform:translateY(-50%);
}

.p-shop__more{
  display:block;
  padding:20px;
  background:var(--color-red);
  color:#fff;
  font-family:var(--font-serif);
  font-size:1rem;
  letter-spacing:0.1em;
  transition:opacity var(--transition);
}
.p-shop__more:hover{opacity:0.85;}

/* ==========================================================================
   Tablet（768px〜）
   ========================================================================== */
@media (min-width:768px){
  .p-hero__logo{width:min(60%, 340px);}
  .p-hero__nav-title{font-size:1.625rem;}
}

/* ==========================================================================
   PC（1024px〜）
   ========================================================================== */
@media (min-width:1024px){
  main section[id]{scroll-margin-top:var(--header-h-pc);}

  .p-hero{margin-top:var(--header-h-pc);padding:64px 0 0;}
  .p-hero__tagline{
    display:block;
    font-family:var(--font-serif);
    font-size:clamp(1.75rem, 2.6vw, 2.25rem);
    letter-spacing:0.5em;
    text-indent:0.5em;
    margin-bottom:48px;
  }
  .p-hero__logo{width:min(28%, 460px);}
  .p-hero__nav-list{
    max-width:720px;
    margin:64px auto 0;
  }
  .p-hero__nav-link{padding:28px 8px 32px;}
  .p-hero__nav-icon{width:44px;height:44px;margin-bottom:16px;}
  .p-hero__nav-title{font-size:1.75rem;}
  .p-hero__nav-sub{
    display:block;
    margin-top:10px;
    font-size:0.8125rem;
    color:rgba(243,234,217,0.75);
    letter-spacing:0.04em;
  }
  .p-hero__nav-scroll{
    display:block;
    margin-top:22px;
    font-size:0.6875rem;
    letter-spacing:0.15em;
    color:rgba(243,234,217,0.55);
  }
  .p-hero__nav-chevron{margin-top:6px;}

  .p-photostrip__item--pc-only{display:block;}

  .p-news{padding:64px 0 72px;}
  .p-news__tabs{gap:40px;overflow-x:visible;}
  .p-news__tab{font-size:1rem;letter-spacing:0.04em;}
  .p-news__item{flex-wrap:nowrap;column-gap:24px;padding:20px 0;}
  .p-news__text{flex:1 1 0;min-width:0;flex-basis:auto;}
  .p-news__more-wrap{text-align:left;}

  .p-preview{padding:80px 0;}
  .p-preview__head{margin-bottom:40px;}
  .p-preview__head::after{
    width:420px;
    background:linear-gradient(to right, var(--color-border), transparent);
  }
  .p-preview--aeru .p-preview__head::after{
    background:linear-gradient(to right, rgba(243,234,217,0.35), transparent);
  }
  .p-preview__icon{width:36px;height:36px;}
  .p-preview__heading{font-size:2rem;}
  .p-preview__inner{display:flex;gap:64px;align-items:center;}
  .p-preview__inner.is-reverse{flex-direction:row-reverse;}
  .p-preview__body{flex:1 1 0;min-width:0;}
  .p-preview__figure{flex:0 0 420px;margin-bottom:0;}
  .p-preview__title{font-size:1.875rem;}
  .p-preview__text{font-size:0.9375rem;}

  .p-recipe{padding:80px 0;}
  .p-recipe__deco{width:340px;}
  .p-recipe__seed-deco{width:320px;}
  .p-recipe__head{text-align:center;margin-bottom:40px;}
  .p-recipe__title{font-size:2rem;}
  .p-recipe__lead{font-size:0.9375rem;}
  .p-recipe__list{
    flex-direction:row;
    max-width:900px;
    margin-inline:auto;
    margin-bottom:36px;
  }
  .p-recipe__card{flex:1 1 0;min-width:0;flex-direction:column;}
  .p-recipe__card-figure{flex:none;aspect-ratio:306/196;}
  .p-recipe__card-body{padding:16px 18px;font-size:0.9375rem;}
  .p-recipe__more{max-width:340px;margin-inline:auto;}

  .p-shop{padding:88px 0;}
  .p-shop__title{font-size:2.25rem;}
  .p-shop__lead{margin-bottom:44px;}
  .p-shop__list{
    flex-direction:row;
    max-width:820px;
    margin-inline:auto;
    margin-bottom:36px;
  }
  .p-shop__card{flex:1 1 0;min-width:0;}
  .p-shop__more{max-width:420px;margin-inline:auto;}
  .p-shop__deco{width:340px;}
}

/* ==========================================================================
   ユーティリティ（表示切替）
   カスケード最後尾に置き、コンポーネント側のdisplay指定より確実に優先させる。
   非該当幅では宣言自体が存在しないため、要素本来のdisplay値はそのまま活きる。
   ========================================================================== */
@media (max-width:1023.98px){
  .u-hide-sp{display:none;}
}
@media (min-width:1024px){
  .u-hide-pc{display:none;}
}

/* ==========================================================================
   baisenryoku.html
   ========================================================================== */
/* ==========================================================================
   Page header（中ページ見出し）
   ========================================================================== */
.p-page-head{
  margin-top:var(--header-h-sp);
  position:relative;
  background:var(--color-bg-dark);
  color:var(--color-text-light);
  overflow:hidden;
}
.p-page-head__bg{
  position:absolute;inset:0;
  background-image:url('../img/baisenryoku/roast-master.jpg');
  background-size:cover;background-position:center;
  /* opacity:0.35; */
  opacity:0.5;
}
.p-page-head__inner{
  position:relative;z-index:1;
  padding:48px 20px 64px;
  text-align:center;
}
.p-page-head__en{
  display:block;font-size:0.6875rem;letter-spacing:0.2em;color:rgba(243,234,217,0.75);margin-bottom:10px;
}
.p-page-head__title{
  font-family:var(--font-serif);
  font-size:2rem;font-weight:700;letter-spacing:0.1em;
}
.p-breadcrumb-bar{background:var(--color-bg);padding:18px 0;}
.p-breadcrumb-bar--top{margin-top:var(--header-h-sp);}
.p-breadcrumb{
  font-size:0.6875rem;color:var(--color-text-sub);
  text-align:center;
}
.p-breadcrumb a{color:var(--color-text);}
.p-breadcrumb a:hover{color:var(--color-red);}

@media (min-width:1024px){
  .p-breadcrumb-bar--top{margin-top:var(--header-h-pc);}
}

/* ==========================================================================
   Lead
   ========================================================================== */
.p-lead{
  background:var(--color-bg);
  padding:40px 0 8px;
}
.p-lead__text{
  font-size:0.9375rem;
  line-height:2;
  color:var(--color-text);
}

/* ==========================================================================
   Section 共通
   ========================================================================== */
.p-section{padding:48px 0;}
.p-section--dark{
  background:var(--color-bg-dark);
  color:var(--color-text-light);
}
.p-section__head{margin-bottom:24px;}
.p-section__num{
  display:block;
  font-family:var(--font-serif);
  font-size:0.75rem;
  color:var(--color-gold);
  letter-spacing:0.15em;
  margin-bottom:8px;
}
.p-section__title{
  font-family:var(--font-serif);
  font-size:1.375rem;
  font-weight:700;
  letter-spacing:0.04em;
  line-height:1.6;
  position:relative;
  padding-bottom:14px;
}
.p-section__title::after{
  content:'';position:absolute;left:0;bottom:0;width:36px;height:2px;background:var(--color-red);
}
.p-section--dark .p-section__title::after{background:var(--color-gold);}

.p-section__body p{
  font-size:0.875rem;
  line-height:2;
  margin-bottom:1.2em;
}
.p-section__body p:last-child{margin-bottom:0;}

/* 本文中のリンクバナー（例：国産ごまプロジェクトの「ごま栽培」バナー） */
.p-section__banner{
  display:block;
  margin-top:28px;
  box-shadow:0 4px 16px rgba(0,0,0,0.12);
  transition:opacity var(--transition),transform var(--transition);
}
.p-section__banner:hover{opacity:0.85;transform:translateY(-2px);}
.p-section__banner img{display:block;width:100%;height:auto;}
/* PCでは本文幅いっぱいだと大きすぎるため6割程度に */
@media (min-width:1024px){
  .p-section__banner{width:60%;}
}

.p-section__figure{margin-top:24px;}
.p-section__img{
  width:100%;
  /* border-radius:4px; */
  /* box-shadow:0 8px 24px rgba(0,0,0,0.15); */
}
.p-section__img--crop{
  aspect-ratio:3/4;
  object-fit:cover;
  height:100%;
}
.p-section__caption{
  font-size:0.75rem;
  color:var(--color-text-sub);
  margin-top:10px;
  text-align:center;
}
.p-section--dark .p-section__caption{color:#bdb0a0;}

/* ==========================================================================
   Next links（目利き力・和える力への入口）
   ========================================================================== */
.p-nextlinks{
  background:var(--color-bg-dark);
  padding:56px 0 48px;
}
.p-nextlinks__head{
  text-align:center;
  margin-bottom:32px;
}
.p-nextlinks__en{
  display:block;font-size:0.6875rem;letter-spacing:0.2em;color:var(--color-gold);margin-bottom:10px;
}
.p-nextlinks__title{
  font-family:var(--font-serif);
  font-size:1.25rem;
  font-weight:700;
  letter-spacing:0.06em;
  color:var(--color-text-light);
}
.p-nextlinks__grid{
  display:flex;
  border-top:1px solid rgba(255,255,255,0.15);
}
.p-nextlinks__card{
  flex:1 1 0;
  min-width:0;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
  padding:28px 8px 32px;
  transition:opacity var(--transition);
}
.p-nextlinks__card + .p-nextlinks__card{border-left:1px solid rgba(255,255,255,0.3);}
.p-nextlinks__card:hover{opacity:0.8;}
.p-nextlinks__icon{
  width:40px;height:40px;
  margin-bottom:14px;
}
.p-nextlinks__icon img{width:100%;height:100%;}
.p-nextlinks__num{
  font-family:var(--font-serif);
  font-size:1.0625rem;
  font-weight:700;
  color:var(--color-text-light);
  letter-spacing:0.06em;
}
.p-nextlinks__lead{
  display:none;
  font-size:0.8125rem;
  color:#bdb0a0;
  margin-top:8px;
}
.p-nextlinks__more{
  display:inline-block;
  margin-top:12px;
  font-family:var(--font-serif);
  font-size:0.75rem;
  color:var(--color-gold);
  letter-spacing:0.06em;
}

/* ==========================================================================
   ごま一筋の専門店
   ========================================================================== */
.p-shop{position:relative;background:#ffffff;padding:48px 0 56px;text-align:center;overflow:hidden;}
.p-shop .l-container{position:relative;z-index:1;}
.p-shop__deco{
  position:absolute;
  width:220px;
  pointer-events:none;
}
.p-shop__deco--left{top:0;left:0;transform:scaleX(-1);}
.p-shop__deco--right{bottom:0;right:0;}
.p-shop__logo{height:77px;margin:0 auto 20px;}
.p-shop__title{
  font-family:var(--font-serif);
  font-size:1.75rem;
  font-weight:700;
  letter-spacing:0.06em;
  margin-bottom:14px;
}
.p-shop__title-accent{color:var(--color-red);}
.p-shop__lead{
  font-size:0.875rem;
  color:var(--color-text-sub);
  line-height:1.8;
  margin-bottom:32px;
}
.p-shop__list{
  display:flex;flex-direction:column;gap:20px;
  max-width:80%;
  margin-inline:auto;
  margin-bottom:28px;
}
.p-shop__card a{
  display:block;
  padding:32px 20px;
  border:1px solid var(--color-gold);
  transition:transform var(--transition);
}
.p-shop__card a:hover{transform:translateY(-2px);}
.p-shop__icon{
  display:block;
  width:90px;height:90px;
  margin:0 auto;
}
.p-shop__icon img{width:100%;height:100%;}
.p-shop__label{
  position:relative;
  display:block;
  text-align:center;
  font-family:var(--font-serif);
  font-size:1.0625rem;
  font-weight:600;
  letter-spacing:0.04em;
  color:var(--color-text);
}
.p-shop__arrow{
  position:absolute;
  top:50%;
  right:0;
  transform:translateY(-50%);
}

.p-shop__more{
  display:block;
  padding:20px;
  background:var(--color-red);
  color:#fff;
  font-family:var(--font-serif);
  font-size:1rem;
  letter-spacing:0.1em;
  transition:opacity var(--transition);
}
.p-shop__more:hover{opacity:0.85;}

/* ==========================================================================
   Tablet（768px〜）
   ========================================================================== */
@media (min-width:768px){
  .p-page-head__title{font-size:2.5rem;}
  .p-lead__text{font-size:1rem;}
  .p-section__title{font-size:1.625rem;}
  .p-section__body p{font-size:0.9375rem;}
  .p-nextlinks__title{font-size:1.5rem;}
}

/* ==========================================================================
   PC（1024px〜）
   ========================================================================== */
@media (min-width:1024px){
  .p-page-head{margin-top:var(--header-h-pc);}
  .p-page-head__inner{padding:80px 20px 84px;}
  .p-page-head__title{font-size:3rem;}

  .p-section{padding:80px 0;}
  .p-section__inner{
    display:flex;
    gap:56px;
    align-items:flex-start;
  }
  .p-section__inner.is-reverse{flex-direction:row-reverse;}
  .p-section__head-body{flex:1 1 0;min-width:0;}
  .p-section__figure{
    flex:0 0 380px;
    margin-top:0;
  }
  .p-section__title{font-size:1.75rem;}
  .p-section__body p{font-size:0.9375rem;}

  .p-nextlinks{padding:80px 0 72px;}
  .p-nextlinks__head{margin-bottom:44px;}
  .p-nextlinks__title{font-size:1.75rem;}
  .p-nextlinks__grid{max-width:720px;margin-inline:auto;}
  .p-nextlinks__card{padding:8px 24px 12px;}
  .p-nextlinks__icon{width:48px;height:48px;margin-bottom:18px;}
  .p-nextlinks__num{font-size:1.25rem;}
  .p-nextlinks__lead{display:block;font-size:0.875rem;}
  .p-nextlinks__more{margin-top:16px;}

  .p-shop{padding:88px 0;}
  .p-shop__title{font-size:2.25rem;}
  .p-shop__lead{margin-bottom:44px;}
  .p-shop__list{
    flex-direction:row;
    max-width:820px;
    margin-inline:auto;
    margin-bottom:36px;
  }
  .p-shop__card{flex:1 1 0;min-width:0;}
  .p-shop__more{max-width:420px;margin-inline:auto;}
  .p-shop__deco{width:340px;}
}

/* ==========================================================================
   company.html
   ========================================================================== */
.p-page-head__bg--company{background-image:url('../img/company/company-building.jpg');}
.p-section--white{background:#fff;}

/* 世界中に本当のおいしさを届ける */
.p-story{position:relative;overflow:hidden;background:var(--color-bg);padding:56px 0 64px;}
.p-story__inner{position:relative;z-index:1;}
.p-story__body{position:relative;}
.p-story__catch{
  position:relative;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  font-style:italic;
  letter-spacing:0.06em;
  color:var(--color-gold);
  padding-bottom:16px;
  margin-bottom:24px;
  border-bottom:1px solid var(--color-border);
}
.p-story__title{
  font-family:var(--font-serif);
  font-size:1.875rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:0.02em;
  color:var(--color-text);
  margin-bottom:24px;
}
.p-story__accent{color:var(--color-gold);}
.p-story__text{
  font-size:0.875rem;
  line-height:2.1;
  color:var(--color-text-sub);
}

.p-story__gallery{
  margin-top:40px;
  aspect-ratio:1138/941;
  background-image:url('../img/company/company-gaikan.png');
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* 会社概要テーブル */
.p-info-table{border-top:1px solid var(--color-border);}
.p-info-table__row{
  padding:16px 0;
  border-bottom:1px solid var(--color-border);
}
.p-info-table__row dt{
  font-family:var(--font-serif);
  font-size:0.8125rem;
  font-weight:700;
  color:var(--color-gold);
  letter-spacing:0.04em;
  margin-bottom:6px;
}
.p-info-table__row dd{
  font-size:0.875rem;
  line-height:1.9;
  color:var(--color-text);
}

/* アクセス */
.p-access{background:#fff;padding:48px 0 56px;}
.p-access__head{margin-bottom:28px;}
.p-access__grid{display:flex;flex-direction:column;gap:28px;}
.p-access__card{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  overflow:hidden;
}
.p-access__name{
  display:flex;flex-direction:column;gap:4px;
  padding:18px 20px;
  font-family:var(--font-serif);
  font-size:1.0625rem;
  font-weight:700;
  color:var(--color-text);
  border-bottom:1px solid var(--color-border);
}
.p-access__addr{
  font-family:var(--font-sans);
  font-size:0.75rem;
  font-weight:400;
  color:var(--color-text-sub);
  letter-spacing:0.02em;
}
.p-access__photo{aspect-ratio:450/306;overflow:hidden;background:var(--color-border);}
.p-access__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.p-access__map{aspect-ratio:16/10;background:var(--color-border);}
.p-access__map iframe{width:100%;height:100%;border:0;display:block;}
.p-access__info{padding:20px;display:flex;flex-direction:column;gap:20px;}
.p-access__label{
  display:block;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  font-weight:700;
  color:var(--color-gold);
  letter-spacing:0.04em;
  margin-bottom:10px;
}
.p-access__list li{
  position:relative;
  padding-left:1em;
  font-size:0.8125rem;
  line-height:1.9;
  color:var(--color-text);
}
.p-access__list li::before{
  content:'';
  position:absolute;left:2px;top:0.85em;
  width:5px;height:1px;
  background:var(--color-gold);
}
.p-access__list li + li{margin-top:8px;}

@media (min-width:768px){
  .p-story__title{font-size:2.25rem;}
  .p-info-table__row dt{font-size:0.875rem;}
  .p-info-table__row dd{font-size:0.9375rem;}
  .p-access__name{font-size:1.1875rem;}
}

@media (min-width:1024px){
  .p-story{padding:88px 0;}
  .p-story__inner{position:relative;}
  .p-story__body{position:relative;z-index:1;width:56%;}
  .p-story__title{font-size:2.5rem;}
  .p-story__gallery{
    position:absolute;
    top:50%;right:-20px;
    transform:translateY(-50%);
    width:72%;
    height:148%;
    aspect-ratio:auto;
    margin-top:0;
    background-position:center right;
    z-index:0;
  }

  .p-info-table__row{
    display:flex;
    gap:32px;
    padding:20px 0;
  }
  .p-info-table__row dt{flex:0 0 180px;margin-bottom:0;}
  .p-info-table__row dd{flex:1 1 0;min-width:0;}

  .p-access{padding:80px 0;}
  .p-access__head{margin-bottom:40px;}
  .p-access__grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:32px;}
  .p-access__card{display:flex;flex-direction:column;}
  .p-access__info{flex:1 1 auto;flex-direction:row;gap:28px;}
  .p-access__block{flex:1 1 0;min-width:0;}
}

/* スクロールリビールのずらし（同時に並ぶカード群） */
.p-access__card.js-reveal:nth-child(2){transition-delay:.12s;}
.p-access__card.js-reveal:nth-child(3){transition-delay:.24s;}
.p-kura-features__item.js-reveal:nth-child(2){transition-delay:.12s;}
.p-kura-features__item.js-reveal:nth-child(3){transition-delay:.24s;}
.p-cert-item.js-reveal:nth-child(2){transition-delay:.12s;}
.p-cert-item.js-reveal:nth-child(3){transition-delay:.24s;}
.p-nextlinks__card.js-reveal:nth-child(2){transition-delay:.12s;}
.p-nextlinks__card.js-reveal:nth-child(3){transition-delay:.24s;}
.p-recipe__card.js-reveal:nth-child(2){transition-delay:.12s;}
.p-recipe__card.js-reveal:nth-child(3){transition-delay:.24s;}
.p-shop__card.js-reveal:nth-child(2){transition-delay:.12s;}
.p-shop__card.js-reveal:nth-child(3){transition-delay:.24s;}

/* ページ内リンク（タブ） */
.p-page-nav{background:#fff;border-bottom:1px solid var(--color-border);}
.p-page-nav__list{
  display:flex;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.p-page-nav__link{
  flex:none;
  display:block;
  padding:16px 18px;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  letter-spacing:0.02em;
  color:var(--color-text-sub);
  white-space:nowrap;
  border-bottom:2px solid transparent;
  transition:color var(--transition), border-color var(--transition);
}
.p-page-nav__link:hover{color:var(--color-gold);border-color:var(--color-gold);}

@media (min-width:1024px){
  .p-page-nav__list{overflow-x:visible;justify-content:center;gap:8px;}
  .p-page-nav__link{padding:20px 28px;font-size:0.9375rem;}
}

/* 和田萬の歴史 */
.p-history{background:var(--color-bg);padding:48px 0 56px;}
.p-history__list{
  position:relative;
  margin-top:24px;
  padding-left:24px;
  border-left:1px solid var(--color-border);
}
.p-history__item{position:relative;padding-bottom:24px;}
.p-history__item:last-child{padding-bottom:0;}
.p-history__marker{
  position:absolute;left:-28px;top:0.4em;
  width:9px;height:9px;
  border-radius:50%;
  background:var(--color-gold);
}
.p-history__year{
  display:flex;align-items:baseline;gap:10px;
  font-family:var(--font-serif);
  font-size:1.25rem;
  font-weight:700;
  color:var(--color-gold);
  margin-bottom:4px;
}
.p-history__era{font-family:var(--font-sans);font-size:0.75rem;font-weight:400;color:var(--color-text-sub);}
.p-history__text{font-size:0.875rem;line-height:1.8;color:var(--color-text);}
.p-history__figures{
  display:flex;flex-wrap:wrap;gap:6px;
  margin-top:10px;
}
.p-history__figures img{
  height:150px;width:auto;max-width:100%;
  object-fit:contain;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  padding:4px;
}

@media (min-width:768px){
  .p-history__figures img{height:170px;}
}

@media (min-width:1024px){
  .p-history{padding:80px 0;}
  .p-history__list{
    margin-top:40px;
    padding-left:0;
    border-left:none;
  }
  .p-history__list::before{
    content:'';
    position:absolute;left:50%;top:0;bottom:0;
    width:1px;
    background:var(--color-border);
    transform:translateX(-50%);
  }
  .p-history__item{padding-bottom:36px;}
  .p-history__marker{
    left:50%;top:0.3em;
    width:11px;height:11px;
    transform:translateX(-50%);
    z-index:1;
  }
  .p-history__content{width:calc(50% - 40px);}
  .p-history__item:nth-child(odd) .p-history__content{margin-right:auto;text-align:right;}
  .p-history__item:nth-child(even) .p-history__content{margin-left:auto;text-align:left;}
  .p-history__item:nth-child(odd) .p-history__year{justify-content:flex-end;}
  .p-history__item:nth-child(odd) .p-history__figures{justify-content:flex-end;}
  .p-history__text{font-size:0.9375rem;}
  .p-history__figures img{height:190px;}
}

/* 萬次郎蔵 */
.p-kura-inset{margin-top:32px;}
.p-kura-inset__img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:2px;
  display:block;
}

.p-kura-features__list{
  display:flex;flex-direction:column;gap:24px;
  margin-top:40px;
}
.p-kura-features__item{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  overflow:hidden;
}
.p-kura-features__figure{aspect-ratio:4/3;overflow:hidden;}
.p-kura-features__figure img{width:100%;height:100%;object-fit:cover;display:block;}
.p-kura-features__title{
  font-family:var(--font-serif);
  font-size:1rem;
  font-weight:700;
  line-height:1.5;
  color:var(--color-text);
  padding:18px 18px 8px;
}
.p-kura-features__text{
  font-size:0.8125rem;
  line-height:1.9;
  color:var(--color-text-sub);
  padding:0 18px 20px;
}

@media (min-width:1024px){
  .p-kura-features__list{flex-direction:row;margin-top:56px;}
  .p-kura-features__item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;}
  .p-kura-features__title{font-size:1.0625rem;}
  .p-kura-features__text{font-size:0.8125rem;flex:1 1 auto;}
}

/* 認証・調査証明書 */
.p-cert-list{
  display:flex;flex-direction:column;gap:24px;
  margin-top:40px;
}
.p-cert-item{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  padding:32px 24px;
  text-align:center;
}
.p-cert-item__logo{
  display:flex;align-items:center;justify-content:center;
  height:120px;
  margin:0 auto;
}
.p-cert-item__logo img{max-width:100%;max-height:100%;object-fit:contain;display:block;}
.p-cert-item__title{
  font-family:var(--font-serif);
  font-size:1rem;
  font-weight:700;
  line-height:1.5;
  color:var(--color-text);
  margin-top:20px;
}
.p-cert-item__text{
  font-size:0.8125rem;
  line-height:1.9;
  color:var(--color-text-sub);
  text-align:left;
  margin-top:12px;
}

@media (min-width:1024px){
  .p-cert-list{flex-direction:row;margin-top:56px;}
  .p-cert-item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;}
  .p-cert-item__title{font-size:1.0625rem;}
  .p-cert-item__text{font-size:0.8125rem;flex:1 1 auto;}
}

/* ==========================================================================
   recruit.html
   ========================================================================== */
.p-page-head__bg--recruit{background-image:url('../img/recruit/recruit-team.jpg');}

.p-jobs{background:var(--color-bg);padding:16px 0 56px;}
.p-jobs__list{
  display:flex;flex-direction:column;gap:28px;
  margin-top:24px;
}

.p-job-card{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  padding:24px 20px;
}
.p-job-card__head{
  display:flex;align-items:flex-start;gap:12px;
  margin-bottom:20px;
  padding-bottom:20px;
  border-bottom:1px solid var(--color-border);
}
.p-job-card__badge{
  flex:none;
  display:inline-block;
  padding:4px 10px;
  background:var(--color-red);
  color:#fff;
  font-size:0.6875rem;
  font-weight:700;
  letter-spacing:0.04em;
  border-radius:2px;
  line-height:1.4;
}
.p-job-card__type{
  display:block;
  font-size:0.75rem;
  font-weight:700;
  color:var(--color-gold);
  letter-spacing:0.04em;
  margin-bottom:6px;
}
.p-job-card__title{
  font-family:var(--font-serif);
  font-size:1.125rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:0.02em;
  color:var(--color-text);
}
.p-job-card__entry{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:24px;
  padding:16px;
  background:var(--color-red);
  color:#fff;
  font-family:var(--font-serif);
  font-size:0.9375rem;
  letter-spacing:0.06em;
  border-radius:2px;
  transition:opacity var(--transition);
}
.p-job-card__entry:hover{opacity:0.85;}

@media (min-width:768px){
  .p-job-card{padding:32px;}
  .p-job-card__title{font-size:1.25rem;}
}

@media (min-width:1024px){
  .p-jobs{padding:24px 0 80px;}
  .p-jobs__list{margin-top:40px;}
  .p-job-card{padding:40px 44px;}
  .p-job-card__entry{max-width:320px;margin-inline:auto;margin-top:32px;}
}

/* ==========================================================================
   nutrition.html
   ========================================================================== */
.p-page-head__bg--nutrition{background-image:url('../img/nutrition/nutrition-seeds.jpg');}

/* 見出し内の強調文字（下線と同じ朱色で大きく） */
.p-section__title-char{
  display:inline-block;
  font-size:1.7em;
  line-height:0.7;
  color:var(--color-red);
  vertical-align:-0.15em;
}

.p-nutrition-highlight{
  position:relative;
  margin:28px 0;
  padding:20px;
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:2px;
}
.p-nutrition-highlight__title{
  display:block;
  font-family:var(--font-serif);
  font-size:0.9375rem;
  font-weight:700;
  color:var(--color-text);
  margin-bottom:8px;
}
.p-nutrition-highlight .p-info-table{border-top:none;margin-top:4px;}
.p-nutrition-highlight__mascot{
  position:absolute;
  top:-26px;right:-10px;
  width:56px;height:auto;
  pointer-events:none;
}

@media (min-width:1024px){
  .p-nutrition-highlight{padding:28px 32px;}
  .p-nutrition-highlight__mascot{width:76px;top:-32px;right:-16px;}
}

/* ==========================================================================
   products.html
   ========================================================================== */
.p-page-head__bg--products{background-image:url('../img/products/products-hero.jpg');}

.p-section--warm{background:var(--color-bg-warm);}
.p-products-gift{text-align:center;}

.p-products__head{text-align:center;margin-bottom:28px;}
.p-products__en{
  display:block;
  font-size:0.6875rem;
  letter-spacing:0.2em;
  color:var(--color-gold);
  margin-bottom:10px;
}
.p-products__title{
  font-family:var(--font-serif);
  font-size:1.375rem;
  font-weight:700;
  letter-spacing:0.06em;
  color:var(--color-text);
}
.p-products__lead{
  margin-top:10px;
  font-size:0.875rem;
  color:var(--color-text-sub);
}

/* 商品カテゴリー */
.p-category-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
}
.p-category-card{
  display:block;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  overflow:hidden;
  transition:border-color var(--transition), transform var(--transition);
}
.p-category-card:hover{border-color:var(--color-gold);transform:translateY(-2px);}
.p-category-card__thumb{
  aspect-ratio:4/3;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--color-bg-warm);
}
.p-category-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-category-card__thumb--text{
  font-family:var(--font-serif);
  font-size:1.75rem;
  font-weight:700;
  color:var(--color-gold);
}
.p-category-card__body{display:block;padding:14px 16px 18px;}
.p-category-card__name{
  display:block;
  font-family:var(--font-serif);
  font-size:0.9375rem;
  font-weight:700;
  color:var(--color-text);
  margin-bottom:6px;
}
.p-category-card__desc{
  display:block;
  font-size:0.75rem;
  color:var(--color-text-sub);
  line-height:1.7;
  margin-bottom:10px;
}
/* 使い方 */
.p-usage-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
  margin-bottom:28px;
}
.p-usage-card{
  display:block;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  overflow:hidden;
  transition:border-color var(--transition), transform var(--transition);
}
.p-usage-card:hover{border-color:var(--color-gold);transform:translateY(-2px);}
.p-usage-card__thumb{
  display:block;
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--color-bg-warm);
}
.p-usage-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-usage-card__num{
  position:absolute;
  top:8px;left:8px;
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;
  background:rgba(24,18,16,0.72);
  color:var(--color-text-light);
  font-family:var(--font-serif);
  font-size:0.6875rem;
  letter-spacing:0.02em;
  border-radius:50%;
}
.p-usage-card__body{display:block;padding:14px 16px 18px;text-align:center;}
.p-usage-card__title{
  display:block;
  font-family:var(--font-serif);
  font-size:0.875rem;
  font-weight:700;
  color:var(--color-text);
  margin-bottom:6px;
}
.p-usage-card__desc{
  display:block;
  font-size:0.75rem;
  color:var(--color-text-sub);
  line-height:1.7;
}

@media (min-width:768px){
  .p-products__title{font-size:1.625rem;}
  .p-category-grid{grid-template-columns:repeat(3, 1fr);}
  .p-usage-grid{grid-template-columns:repeat(4, 1fr);}
}

@media (min-width:1024px){
  .p-products__head{margin-bottom:44px;}
  .p-products__title{font-size:1.75rem;}
  .p-category-grid{grid-template-columns:repeat(4, 1fr);gap:24px;}
  .p-usage-grid{gap:24px;margin-bottom:40px;}
}

/* ==========================================================================
   policy.html
   ========================================================================== */
.p-policy{
  max-width:720px;
  margin-inline:auto;
}
.p-policy__block{
  padding:28px 0;
  border-bottom:1px solid var(--color-border);
}
.p-policy__block:first-child{padding-top:0;}
.p-policy__block:last-child{border-bottom:none;padding-bottom:0;}
.p-policy__title{
  font-family:var(--font-serif);
  font-size:1.0625rem;
  font-weight:700;
  letter-spacing:0.04em;
  color:var(--color-text);
  margin-bottom:14px;
}
.p-policy__text{
  font-size:0.875rem;
  line-height:2;
  color:var(--color-text);
  margin-bottom:1em;
}
.p-policy__text:last-child{margin-bottom:0;}
.p-policy__contact{
  font-size:0.875rem;
  line-height:2;
  color:var(--color-text);
  margin-top:14px;
}
.p-policy .p-access__list{margin-top:14px;}

@media (min-width:1024px){
  .p-policy__block{padding:36px 0;}
  .p-policy__title{font-size:1.1875rem;}
  .p-policy__text,
  .p-policy__contact{font-size:0.9375rem;}
}

/* ==========================================================================
   single.html（お知らせ記事）
   ========================================================================== */
.p-article{background:#fff;padding:32px 0 56px;}
.p-article--top{margin-top:var(--header-h-sp);}
.p-article__head{
  max-width:720px;
  margin-inline:auto;
  margin-bottom:24px;
}
.p-article__meta{
  display:flex;align-items:center;gap:14px;
  margin-bottom:14px;
}
.p-article__tag{
  display:inline-block;
  padding:4px 10px;
  background:var(--color-tag-dark);
  color:#fff;
  font-size:0.6875rem;
  letter-spacing:0.04em;
  border-radius:2px;
  line-height:1.4;
}
.p-article__tag--event{background:var(--color-tag-event);}
.p-article__tag--gift{background:var(--color-gold);}
.p-article__tag--media{background:#4a7ca6;}
.p-article__tag--kura{background:#6e4a36;}
.p-article__date{
  font-size:0.75rem;
  color:var(--color-text-sub);
  letter-spacing:0.03em;
}
.p-article__title{
  font-family:var(--font-serif);
  font-size:1.375rem;
  font-weight:700;
  line-height:1.6;
  letter-spacing:0.02em;
  color:var(--color-text);
}

.p-article__figure{
  max-width:840px;
  margin:0 auto 32px;
}
.p-article__figure img{width:100%;border-radius:2px;}

.p-article__body{
  max-width:720px;
  margin-inline:auto;
  font-size:0.875rem;
  line-height:2;
  color:var(--color-text);
}
.p-article__body p{margin-bottom:1.4em;}
.p-article__body h2{
  font-family:var(--font-serif);
  font-size:1.125rem;
  font-weight:700;
  letter-spacing:0.03em;
  color:var(--color-text);
  margin:2em 0 0.9em;
  padding-bottom:10px;
  border-bottom:2px solid var(--color-gold);
}
.p-article__body h2:first-child{margin-top:0;}
.p-article__body h3{
  font-family:var(--font-serif);
  font-size:0.9375rem;
  font-weight:700;
  color:var(--color-gold);
  margin:1.6em 0 0.8em;
}
.p-article__body ul{margin:0 0 1.4em;}
.p-article__body li{
  position:relative;
  padding-left:1.1em;
  margin-bottom:0.6em;
  line-height:1.8;
}
.p-article__body li::before{
  content:'';
  position:absolute;left:0;top:0.75em;
  width:6px;height:1px;
  background:var(--color-gold);
}
.p-article__body a{color:var(--color-gold);text-decoration:underline;text-underline-offset:2px;}
.p-article__body a:hover{color:var(--color-red);}

.p-article__foot{
  max-width:720px;
  margin:0 auto;
  padding-top:24px;
  border-top:1px solid var(--color-border);
}
.p-article__back{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  color:var(--color-text-sub);
}
.p-article__back:hover{color:var(--color-gold);}

.p-article__pager{
  max-width:720px;
  margin:24px auto 0;
  display:flex;flex-direction:column;
  border-top:1px solid var(--color-border);
}
.p-article__pager-link{
  display:flex;flex-direction:column;gap:4px;
  padding:16px 0;
  border-bottom:1px solid var(--color-border);
}
.p-article__pager-link--next{align-items:flex-end;text-align:right;}
.p-article__pager-label{
  font-size:0.6875rem;
  letter-spacing:0.1em;
  color:var(--color-gold);
}
.p-article__pager-title{
  font-size:0.8125rem;
  color:var(--color-text);
  transition:color var(--transition);
}
.p-article__pager-link:hover .p-article__pager-title{color:var(--color-gold);}

@media (min-width:1024px){
  .p-article{padding:48px 0 80px;}
  .p-article--top{margin-top:var(--header-h-pc);}
  .p-article__title{font-size:1.75rem;}
  .p-article__body{font-size:0.9375rem;}
  .p-article__body h2{font-size:1.3125rem;}
  .p-article__pager{flex-direction:row;gap:24px;}
  .p-article__pager-link{flex:1 1 0;min-width:0;border-bottom:none;}
}

/* ==========================================================================
   recipe-single.html（レシピ記事）
   ========================================================================== */
.p-article--recipe .p-article__body h2{border-bottom-color:var(--color-recipe-accent);}
.p-article__tag--recipe{background:var(--color-recipe-accent);}

.p-article__head .p-article__tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:0.4em 1.2em;
  margin:12px 0 0;
  padding:0;
  list-style:none;
}
.p-article__head .p-recipe-tag{
  display:inline-flex;
  text-decoration:none;
  color:var(--color-text-sub);
}
.p-article__head .p-recipe-tag:hover{color:var(--color-recipe-accent);}

/* 材料／調味料の上に固定表示するバナー（全レシピ共通・ACF入力なし） */
.p-recipe-ingredients-banner{
  margin:0 0 1.4em;
}
.p-recipe-ingredients-banner img{
  display:block;
  width:100%;
  height:auto;
  border-radius:4px;
}

/* 材料リスト */
.p-recipe-ingredients{
  margin:0 0 1.4em;
  padding:20px;
  background:var(--color-bg-warm);
  border-radius:4px;
}
.p-recipe-ingredients__row{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--color-border);
  font-size:0.875rem;
}
.p-recipe-ingredients__name{flex:1 1 auto;min-width:0;color:var(--color-text);}
.p-recipe-ingredients__amount{flex:none;color:var(--color-text-sub);}

/* 作り方ステップ */
.p-article__body .p-recipe-steps{
  margin:0 0 1.4em;
  padding:0;
  counter-reset:recipe-step;
}
.p-article__body .p-recipe-steps li{
  position:relative;
  list-style:none;
  padding:2px 0 0 40px;
  margin-bottom:1.2em;
  min-height:26px;
}
.p-article__body .p-recipe-steps li::before{
  content:counter(recipe-step);
  counter-increment:recipe-step;
  position:absolute;left:0;top:0;
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;
  border-radius:50%;
  background:var(--color-recipe-accent);
  color:#fff;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  line-height:1;
}

/* 手順内バナー */
.p-article__body .p-recipe-banner{
  display:flex;align-items:center;gap:14px;
  margin-top:12px;
  padding:14px 18px;
  background:var(--color-bg-warm);
  border:1px solid var(--color-recipe-accent);
  border-radius:4px;
  text-decoration:none;
  transition:background var(--transition);
}
.p-article__body .p-recipe-banner:hover{background:#fff;}
.p-recipe-banner__label{
  flex:none;
  padding:4px 10px;
  background:var(--color-recipe-accent);
  color:#fff;
  font-size:0.6875rem;
  letter-spacing:0.04em;
  border-radius:2px;
}
.p-recipe-banner__text{
  flex:1 1 0;min-width:0;
  font-size:0.8125rem;
  color:var(--color-text);
}
.p-recipe-banner__arrow{flex:none;color:var(--color-recipe-accent);}

/* 使用商品カード */
.p-recipe-product{
  display:flex;gap:16px;
  margin-bottom:1em;
  padding:16px;
  background:var(--color-bg-warm);
  border-radius:4px;
}
.p-recipe-product__thumb{
  flex:0 0 96px;
  align-self:flex-start;
  aspect-ratio:1/1;
  border-radius:2px;
  overflow:hidden;
  background:#fff;
}
.p-recipe-product__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-recipe-product__body{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:10px;}
.p-article__body .p-recipe-product__body p{margin-bottom:0;}
.p-recipe-product__name{font-size:0.875rem;color:var(--color-text);}
.p-recipe-product__price{font-size:0.8125rem;color:var(--color-text-sub);}
.p-article__body .p-recipe-product__buy{
  display:inline-flex;align-items:center;gap:8px;
  align-self:flex-start;
  padding:8px 18px;
  border:1px solid var(--color-recipe-accent);
  border-radius:2px;
  color:var(--color-recipe-accent);
  font-family:var(--font-serif);
  font-size:0.8125rem;
  text-decoration:none;
  transition:background var(--transition), color var(--transition);
}
.p-article__body .p-recipe-product__buy:hover{background:var(--color-recipe-accent);color:#fff;}

@media (min-width:1024px){
  .p-recipe-ingredients{padding:28px;}
  .p-recipe-product__thumb{flex-basis:120px;}
}

/* 贈り物セクション（recipe-single.htmlのみ背景色を変更。products.htmlの同セクションには影響させない） */
.p-section.p-products-gift--recipe{background:var(--color-bg);}
.p-products-gift--recipe .p-shop__card a{background:#fff;}

/* ==========================================================================
   news.html（お知らせ一覧）
   ========================================================================== */
.p-news-list-section{background:#fff;padding:40px 0 24px;}
.p-news-list{
  max-width:820px;
  margin-inline:auto;
}
.p-news-list__item{border-bottom:1px solid var(--color-border);}
.p-news-list__empty{
  max-width:820px;
  margin-inline:auto;
  padding:40px 0;
  color:var(--color-text-sub);
  text-align:center;
}
.p-news-list__link{
  display:flex;gap:16px;
  padding:18px 0;
  transition:opacity var(--transition);
}
.p-news-list__link:hover{opacity:0.7;}
.p-news-list__thumb{
  flex:0 0 96px;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:2px;
  background:var(--color-bg-warm);
}
.p-news-list__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-news-list__body{
  flex:1 1 0;min-width:0;
  display:flex;flex-direction:column;justify-content:center;
}
.p-news-list__meta{
  display:flex;align-items:center;gap:12px;
  margin-bottom:8px;
}
.p-news-list__title{
  font-size:0.875rem;
  line-height:1.6;
  color:var(--color-text);
}

/* ページネーション */
.p-pager{
  display:flex;align-items:center;justify-content:center;
  gap:16px;
  max-width:820px;
  margin:32px auto 0;
  padding-top:24px;
}
.p-pager__list{display:flex;align-items:center;gap:6px;}
.p-pager__num{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  color:var(--color-text-sub);
  border-radius:50%;
  transition:background var(--transition), color var(--transition);
}
.p-pager__num:hover{background:var(--color-bg-warm);}
.p-pager__num.is-current{background:var(--color-gold);color:#fff;}
.p-pager__link{
  display:flex;align-items:center;gap:6px;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  color:var(--color-text-sub);
}
.p-pager__link:hover{color:var(--color-gold);}
.p-pager__link.is-disabled{opacity:0.35;pointer-events:none;}
#recipe-list .p-pager__num.is-current{background:var(--color-recipe-accent);}
#recipe-list .p-pager__link:hover{color:var(--color-recipe-accent);}

@media (min-width:1024px){
  .p-news-list-section{padding:56px 0 32px;}
  .p-news-list__thumb{flex-basis:160px;}
  .p-news-list__title{font-size:0.9375rem;}
}

/* media.html（メディア掲載・タイル形式） */
.p-page-head__bg--media{background-image:url('../img/media/media-hero.jpg');}
.p-page-head__bg--gift{background-image:url('../img/index/top-photo-2.jpg');}

.p-media-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
}
.p-media-card{}
.p-media-card__link{
  display:block;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  overflow:hidden;
  transition:border-color var(--transition), transform var(--transition);
}
.p-media-card__link:hover{border-color:var(--color-gold);transform:translateY(-2px);}
.p-media-card__thumb{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--color-bg-warm);}
.p-media-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-media-card__body{display:block;padding:14px 16px 18px;}
.p-media-card__body .p-news__date{display:block;margin-bottom:8px;}
.p-media-card__title{
  display:block;
  font-size:0.8125rem;
  line-height:1.7;
  color:var(--color-text);
}

@media (min-width:768px){
  .p-media-grid{grid-template-columns:repeat(3, 1fr);}
}

@media (min-width:1024px){
  .p-media-grid{grid-template-columns:repeat(3, 1fr);gap:24px;}
  .p-media-card__title{font-size:0.875rem;}
}

/* ==========================================================================
   recipe.html（ごまのレシピ一覧・タイル形式）
   ========================================================================== */
.p-page-head__bg--recipe{background-image:url('../img/recipe/recipe_ohitashi.jpg');}
.p-page-head--recipe .p-page-head__en{color:var(--color-recipe-accent);}

.p-recipe-list__heading{
  font-family:var(--font-serif);
  font-size:1.125rem;
  color:var(--color-text);
  padding-bottom:14px;
  margin-bottom:20px;
  border-bottom:1px solid var(--color-border);
}

.p-recipe-tile-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
}
.p-recipe-tile-card{}
.p-recipe-tile-card__link{
  display:block;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  overflow:hidden;
  transition:border-color var(--transition), transform var(--transition);
}
.p-recipe-tile-card__link:hover{border-color:var(--color-recipe-accent);transform:translateY(-2px);}
.p-recipe-tile-card__thumb{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--color-bg-warm);}
.p-recipe-tile-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-recipe-tile-card__category{
  position:absolute;top:0;left:0;z-index:1;
  display:inline-block;
  padding:5px 14px;
  background:var(--color-recipe-accent);
  color:#fff;
  font-family:var(--font-serif);
  font-size:0.6875rem;
  letter-spacing:0.04em;
  line-height:1.4;
  border-radius:0 0 4px 0;
}
/* カテゴリー別カラー（製品カテゴリーの配色を継承） */
.p-recipe-tile-card__category--irigoma{background:#a6905c;}
.p-recipe-tile-card__category--surigoma{background:#a97b5c;}
.p-recipe-tile-card__category--paste{background:#b96b7a;}
.p-recipe-tile-card__category--kingoma{background:#ddb93a;}
.p-recipe-tile-card__category--kurogoma{background:#201f1c;}
.p-recipe-tile-card__category--shirogoma{background:#ece5d6;color:var(--color-text);}
.p-recipe-tile-card__category--oil{background:#6e4a36;}
.p-recipe-tile-card__category--chomiryo{background:#87905f;}
.p-recipe-tile-card__category--furikake{background:#4a7ca6;}
.p-recipe-tile-card__body{display:block;padding:14px 16px 18px;}
.p-recipe-tile-card__title{
  display:block;
  font-size:0.8125rem;
  line-height:1.7;
  color:var(--color-text);
}

@media (min-width:768px){
  .p-recipe-tile-grid{grid-template-columns:repeat(3, 1fr);}
}

@media (min-width:1024px){
  .p-recipe-list__heading{font-size:1.25rem;margin-bottom:28px;}
  .p-recipe-tile-grid{grid-template-columns:repeat(3, 1fr);gap:24px;}
  .p-recipe-tile-card__title{font-size:0.875rem;}
}

/* recipe.html（カテゴリー・タグ） */
.p-recipe-filter{background:var(--color-bg-warm);padding:32px 0;}
.p-recipe-filter__block{margin-bottom:28px;}
.p-recipe-filter__block:last-child{margin-bottom:0;}
.p-recipe-filter__head{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:10px;
  margin-bottom:14px;
}
.p-recipe-filter__heading{
  display:flex;align-items:center;gap:8px;
  font-family:var(--font-serif);
  font-size:0.875rem;
  color:var(--color-text);
}
.p-recipe-filter__heading-icon{
  display:inline-flex;flex:none;
  width:20px;height:20px;
  color:var(--color-recipe-accent);
}
.p-recipe-filter__heading-icon svg{width:100%;height:100%;}

/* カテゴリーカード */
.p-recipe-cat-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}
.p-recipe-cat-card{}
.p-recipe-cat-card__btn{
  position:relative;
  display:block;width:100%;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:4px;
  overflow:hidden;
  padding:0 0 10px;
  text-align:center;
  cursor:pointer;
  transition:border-color var(--transition), box-shadow var(--transition);
}
.p-recipe-cat-card__btn:hover{border-color:var(--color-recipe-accent);}
.p-recipe-cat-card__btn.is-active{border-color:var(--color-recipe-accent);box-shadow:0 0 0 1px var(--color-recipe-accent);}
.p-recipe-cat-card__check{
  position:absolute;top:6px;left:6px;z-index:1;
  display:flex;align-items:center;justify-content:center;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--color-recipe-accent);
  color:#fff;
  font-size:0.6875rem;line-height:1;
  opacity:0;transform:scale(0.6);
  transition:opacity var(--transition), transform var(--transition);
}
.p-recipe-cat-card__btn.is-active .p-recipe-cat-card__check{opacity:1;transform:scale(1);}
.p-recipe-cat-card__thumb{
  display:block;aspect-ratio:1/1;overflow:hidden;
  background:var(--color-bg-warm);
  margin-bottom:10px;
}
.p-recipe-cat-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.p-recipe-cat-card__name{
  display:block;
  font-family:var(--font-serif);
  font-size:0.8125rem;
  color:var(--color-text);
}
.p-recipe-cat-card__arrow{
  display:flex;align-items:center;justify-content:center;
  margin:2px auto 0;
  width:16px;height:16px;
  color:var(--color-recipe-accent);
}
.p-recipe-cat-card__arrow svg{width:100%;height:100%;}

/* タグ */
.p-recipe-tag-list{display:flex;flex-wrap:wrap;gap:8px;}
.p-recipe-tag{
  display:inline-flex;align-items:center;
  padding:8px 16px;
  border:1px solid var(--color-border);
  border-radius:999px;
  background:#fff;
  color:var(--color-text-sub);
  font-size:0.75rem;
  cursor:pointer;
  transition:background var(--transition), color var(--transition), border-color var(--transition);
}
.p-recipe-tag:hover{border-color:var(--color-recipe-accent);color:var(--color-recipe-accent);}
.p-recipe-tag.is-active{background:var(--color-recipe-accent);border-color:var(--color-recipe-accent);color:#fff;}

@media (min-width:1024px){
  .p-recipe-filter{padding:48px 0;}
  .p-recipe-filter__heading{font-size:1rem;}
  .p-recipe-cat-grid{grid-template-columns:repeat(9, 1fr);gap:12px;}
  .p-recipe-cat-card__name{font-size:0.8125rem;}
}

/* ==========================================================================
   organic.html
   ========================================================================== */
.p-page-head__bg--organic{background-image:url('../img/organic/organic-hero.jpg');}
.p-page-head__bg--contact{background-image:url('../img/contact/contact_image.jpg');}

.p-organic-badges{
  display:flex;flex-wrap:wrap;gap:10px;
  margin-top:24px;
}
.p-organic-badges__item{
  display:inline-flex;align-items:center;
  padding:8px 16px;
  border:1px solid var(--color-gold);
  color:var(--color-gold);
  font-family:var(--font-serif);
  font-size:0.75rem;
  letter-spacing:0.06em;
  border-radius:999px;
}

/* ==========================================================================
   お問い合わせフォーム（contact/）
   contact/index.php・tmpl/form.php・tmpl/check.php・thanks.php で使用。
   ========================================================================== */
.l-container--narrow{max-width:720px;}
.p-contact-section{background:#fff;padding:40px 0 80px;}
.p-contact-form__lead{
  margin:0 0 32px;
  font-size:0.875rem;
  line-height:1.8;
  color:var(--color-text-sub);
}
.p-contact-form__required{
  display:inline-block;
  margin-left:0.3em;
  color:var(--color-red);
}
.p-contact-form__error-summary{
  margin:0 0 32px;
  padding:1.25em 1.5em;
  border:1px solid var(--color-red);
  border-radius:4px;
  background:#fdf0ef;
  color:var(--color-red);
  font-size:0.875rem;
  line-height:1.7;
}
.p-contact-form__list{margin:0;padding:0;}
.p-contact-form__list--confirm{margin-bottom:40px;border-top:1px solid var(--color-border);}
.p-contact-form__list--confirm .p-contact-form__label{
  margin:0;
  padding:20px 0 6px;
  font-family:var(--font-sans);
  font-size:0.8125rem;
  font-weight:400;
  color:var(--color-text-sub);
}
.p-contact-form__list--confirm .p-contact-form__field{
  margin:0;
  padding:0 0 20px;
  border-bottom:1px solid var(--color-border);
  font-size:1rem;
  font-weight:500;
  color:var(--color-text);
}
.p-contact-form__label{
  margin:0 0 10px;
  padding:0;
  font-family:var(--font-serif);
  font-size:0.9375rem;
  font-weight:500;
  color:var(--color-text);
}
.p-contact-form__field{
  margin:0 0 28px;
  padding:0;
}
.p-contact-form__field.is-error{
  padding:14px 16px;
  border-radius:4px;
  background:#fdf0ef;
}
.p-contact-form__error{
  display:block;
  margin:0 0 6px;
  font-size:0.8125rem;
  color:var(--color-red);
}
.p-contact-form__input,
.p-contact-form__textarea{
  display:block;
  width:100%;
  padding:12px 14px;
  border:1px solid var(--color-border);
  border-radius:4px;
  background:#fff;
  color:var(--color-text);
  font-family:var(--font-sans);
  font-size:0.9375rem;
  line-height:1.6;
}
.p-contact-form__input:focus,
.p-contact-form__textarea:focus{
  outline:none;
  border-color:var(--color-gold);
}
.p-contact-form__textarea{resize:vertical;}
.p-contact-form__hint{
  display:block;
  margin-top:8px;
  font-size:0.8125rem;
  color:var(--color-text-sub);
}
.p-contact-form__agree{
  margin:8px 0 40px;
  padding-top:24px;
  border-top:1px solid var(--color-border);
  text-align:center;
}
.p-contact-form__agree.is-error{
  padding:16px;
  border:1px solid var(--color-red);
  border-radius:4px;
  background:#fdf0ef;
}
.p-contact-form__agree-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:0.9375rem;
  color:var(--color-text);
  cursor:pointer;
}
.p-contact-form__agree-label input{
  width:18px;height:18px;
  accent-color:var(--color-red);
}
.p-contact-form__policy-link{
  display:block;
  margin-top:10px;
  font-size:0.8125rem;
  color:var(--color-text-sub);
  text-decoration:underline;
}
.p-contact-form__policy-link:hover{color:var(--color-red);}
.p-contact-form__submit-wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin:0;
  padding:0;
  text-align:center;
}
.p-contact-form__submit-wrap--confirm{flex-direction:row-reverse;}
.p-contact-form__submit,
.p-contact-form__back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:240px;
  height:56px;
  padding:0 32px;
  border:none;
  border-radius:4px;
  font-family:var(--font-sans);
  font-size:0.9375rem;
  letter-spacing:0.08em;
  cursor:pointer;
  transition:opacity 0.3s ease,background-color 0.3s ease;
  text-decoration:none;
}
.p-contact-form__submit{background:var(--color-red);color:#fff;}
.p-contact-form__submit:hover{background:#a41219;}
.p-contact-form__submit:disabled{
  background:var(--color-border);
  color:var(--color-text-sub);
  cursor:not-allowed;
}
.p-contact-form__back{background:var(--color-bg-warm);color:var(--color-text);}
.p-contact-form__back:hover{background:var(--color-border);}
@media screen and (max-width:640px){
  .p-contact-form__submit,
  .p-contact-form__back{min-width:0;width:100%;}
}

/* reCAPTCHA：右下のバッジは他の固定ボタンと重なるため非表示にし、送信ボタン下に表記を出す。
   display:none にするとreCAPTCHAが動かなくなるため visibility:hidden で隠す */
.grecaptcha-badge{visibility:hidden;}
.p-contact-form__recaptcha-note{
  margin-top:20px;
  font-size:0.6875rem;
  line-height:1.8;
  color:var(--color-text-sub);
  text-align:center;
}
.p-contact-form__recaptcha-note a{color:inherit;text-decoration:underline;}
.p-contact-form__recaptcha-note a:hover{color:var(--color-red);}

/* ==========================================================================
   ユーティリティ（表示切替）
   カスケード最後尾に置き、コンポーネント側のdisplay指定より確実に優先させる。
   非該当幅では宣言自体が存在しないため、要素本来のdisplay値はそのまま活きる。
   ========================================================================== */
@media (max-width:1023.98px){
  .u-hide-sp{display:none;}
}
@media (min-width:1024px){
  .u-hide-pc{display:none;}
}
