@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&display=swap');

/* ==========================================================================
   変数（エルプラス）
   ========================================================================== */
:root{
  --main-color: #ec6c00;   /* オレンジ */
  --main-dark: #a84a00;    /* 濃いオレンジ（小見出し・英字ラベル） */
  --ink: #231815;          /* 文字色・ダーク背景 */
  --paper: #fbfaf7;        /* 背景（生成り） */
  --beige: #f4f0e8;        /* 背景（ベージュ） */
  --line: #e9e1d4;         /* 罫線 */
  --gray: #756b65;         /* 補足テキスト */
  --font-sans: 'Noto Sans JP', sans-serif;
  --font-serif: 'Noto Serif JP', serif;
}

/* ==========================================================================
   共通設定として組み込むCSS（_common/共通設定として組み込むCSS.txt）
   ========================================================================== */
p,
h1, h2, h3, h4, h5, h6{
  margin: 0;
  /*letter-spacing: 0.075em;*/
  letter-spacing: inherit;
}
p{
  
}
h1, h2, h3, h4, h5, h6{
  line-height: 1.5;
}
 
a{
  color: inherit;
  transition: 0.3s;
}
a:hover{
  text-decoration: none;
  /*opacity: 0.7;*/
  /*color: inherit;*/
  color: var(--main-color);
}
img{
  max-width: 100%;
  width: auto;
}
 
ul, ol, li{
  margin: 0;
  padding: 0;
  list-style: none;
}
 
u{
  display: inline-block;
  text-decoration: none;
  font-style: normal;
}
 
 
.img_fit{
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.img_fit:before{
  content: "";
  display: block;
  padding-top: 100%;
}
.img_fit img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  font-family: 'object-fit: cover';
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
}
 
a.img_fit{
  display: block;
}
a .img.img_fit img{
  transition: 0.2s all;
}
a:hover .img.img_fit img{
  transform: scale(1.05);
}
 
/* 動画埋め込みのレスポンシブ対応 */
iframe{
  max-width: 100%;
}
.responsive_video {
  position: relative;
}
 
.responsive_video:before{
  content: "";
  display: block;
  padding-top:56.25%;
}
.responsive_video video,
.responsive_video iframe,
.responsive_video object,
.responsive_video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
 
.gjs-dashed .responsive_video:before{
  display: none;
}
.gjs-dashed .responsive_video [data-gjs-type="video"]:before{
  content: "";
  display: block;
  padding-top:56.25%;
  pointer-events: none;
}
 
 
/* 指定デバイスのみで表示するclass */
@media (min-width:1200px){
  .md:not(.pc){
    display: none!important;
  }
  .tb:not(.pc){
    display: none!important;
  }
  .sp:not(.pc){
    display: none!important;
  }
}
@media (min-width:1024px) and (max-width:1199px){
  .pc:not(.md){
    display: none!important;
  }
  .tb:not(.md){
    display: none!important;
  }
  .sp:not(.md){
    display: none!important;
  }
}
@media (min-width:768px) and (max-width:1023px){
  .pc:not(.tb){
    display: none!important;
  }
  .md:not(.tb){
    display: none!important;
  }
  .sp:not(.tb){
    display: none!important;
  }
}
@media (max-width:767px){
  .pc:not(.sp){
    display: none!important;
  }
  .md:not(.sp){
    display: none!important;
  }
  .tb:not(.sp){
    display: none!important;
  }
}
 
 
/* 指定デバイスで改行を消す */
@media (min-width:1720px){
  .fw_nobr br{
    display: none !important;
  }
}
@media (min-width:1520px){
  .lg_nobr br{
    display: none !important;
  }
}
@media (min-width:1200px){
  .pc_nobr br{
    display: none !important;
  }
}
 
@media (min-width:1024px) and (max-width:1199px){
  .md_nobr br{
    display: none !important;
  }
}
@media (min-width:768px) and (max-width:1023px){
  .tb_nobr br{
    display: none !important;
  }
}
@media (max-width:767px){
  .sp_nobr br{
    display: none !important;
  }
}
 
 
/* 指定した行数での切り取り */
.txt_ellipsis_line1,
.txt_ellipsis_line2,
.txt_ellipsis_line3,
.txt_ellipsis_line4,
.txt_ellipsis_line5,
.txt_ellipsis_line6,
.txt_ellipsis_line7,
.txt_ellipsis_line8,
.txt_ellipsis_line9,
.txt_ellipsis_line10{
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}
.txt_ellipsis_line1{
  -webkit-line-clamp: 1;
}
.txt_ellipsis_line2{
  -webkit-line-clamp: 2;
}
.txt_ellipsis_line3{
  -webkit-line-clamp: 3;
}
.txt_ellipsis_line4{
  -webkit-line-clamp: 4;
}
.txt_ellipsis_line5{
  -webkit-line-clamp: 5;
}

/* ==========================================================================
   ワイドコンテナ（_common/ワイドコンテナの仕様.txt）
   ========================================================================== */
/* ******************************
   コンテナ設定＋画面端までの距離
   ****************************** */
:root {
 
  /* 画面端までの距離（通常） */
  --margin-for-device-side: -15px;
 
  /* 画面端までの距離（ワイド） */
  --margin-for-device-side-w: -15px;
 
}
@media (min-width:768px){
  :root {
    --margin-for-device-side: calc(345px - 50vw);
    --margin-for-device-side-w: calc(345px - 50vw);
  }
}
@media (min-width:992px){
  :root {
    --margin-for-device-side: calc(465px - 50vw);
    --margin-for-device-side-w: calc(465px - 50vw);
  }
}
@media (min-width:1200px){
  :root {
    --margin-for-device-side: calc(555px - 50vw);
    --margin-for-device-side-w: calc(555px - 50vw);
  }
}
@media (min-width:1366px){
 
  /* コンテナサイズ:1286px */
  .container.wide{
    max-width: calc(1286px + 80px);
    padding-left: 40px;
    padding-right: 40px;
  }
 
  :root {
    --margin-for-device-side-w: calc(643px - 50vw);
  }
 
}
@media (min-width:1470px){
 
  /* コンテナサイズ:1370px */
  .container.wide{
    max-width: calc(1370px + 100px);
    padding-left: 50px;
    padding-right: 50px;
  }
  :root {
    --margin-for-device-side-w: calc(685px - 50vw);
  }
 
}
@media (min-width:1720px){
 
  /* コンテナサイズ:1520px */
  .container.wide{
    max-width: calc(1520px + 200px);
    padding-left: 100px;
    padding-right: 100px;
  }
  :root {
    --margin-for-device-side-w: calc(760px - 50vw);
  }
}


/* ==========================================================================
   ベース
   ========================================================================== */
body{
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
}
em{
  font-style: normal;
}
a:hover{
  color: var(--main-color);
}
.section{
  position: relative;
  z-index: 1;
}

/* ==========================================================================
   共通パーツ
   ========================================================================== */
/* ---------- セクションのラベル（罫線＋左右の小さな英字） ---------- */
.c_label{
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(35,24,21,.25);
}
.c_label_l,
.c_label_r{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .1em;
}
.c_label_r{
  display: none;
  text-align: right;
}
.c_label_white{
  border-color: rgba(255,255,255,.4);
}
@media (min-width:768px){
  .c_label{
    padding-top: 22px;
  }
  .c_label_l,
  .c_label_r{
    font-size: 11px;
  }
  .c_label_r{
    display: block;
  }
}

/* ---------- 本文 ---------- */
.c_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.c_txt > * + *{
  margin-top: 1em;
}
@media (min-width:768px){
  .c_txt > *{
    font-size: 15px;
  }
}

/* ---------- ボタン（↗付き） ---------- */
.c_btn{
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  min-width: 235px;
  padding: 19px 26px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #fff;
  text-decoration: none;
  transition: .3s;
}
.c_btn:after{
  content: "↗";
  font-size: 13px;
  line-height: 1;
}
.c_btn:hover{
  border-color: var(--main-color);
  background: var(--main-color);
  color: #fff;
  text-decoration: none;
}
.c_btn_txt{
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
}
/* 線のボタン */
.c_btn_line{
  border-color: rgba(35,24,21,.45);
  background: transparent;
  color: var(--ink);
}
/* 白のボタン（オレンジ背景用） */
.c_btn_white{
  border-color: #fff;
  background: #fff;
  color: var(--ink);
}
.c_btn_white:hover{
  border-color: var(--ink);
  background: var(--ink);
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
/* ヘッダーは画面上部に固定（スクロールで追従）。その分 body に上余白を取る */
.header{
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: 64px;
  padding: 0 15px;
  border-bottom: 1px solid rgba(35,24,21,.08);
  background: #fff;
}
.hdr_logo_link,
.gnav_logo_link,
.ftr_logo_link{
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  text-decoration: none;
}
.hdr_logo_link:hover,
.gnav_logo_link:hover,
.ftr_logo_link:hover{
  color: var(--ink);
  text-decoration: none;
}
.hdr_logo_img{
  width: 65px;
}
.hdr_logo_txt{
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.hdr_menu{
  display: flex;
  align-items: center;
  gap: 30px;
}
.hdr_cta{
  display: none;
  align-items: center;
  gap: 30px;
  padding: 15px 0;
  border-bottom: 1px solid var(--ink);
  color: var(--ink);
  text-decoration: none;
}
.hdr_cta:after{
  content: "↗";
  font-size: 13px;
  line-height: 1;
}
.hdr_cta_txt{
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}
.hdr_cta:hover{
  border-color: var(--main-color);
  text-decoration: none;
}
.hdr_menu_btn{
  position: relative;
  z-index: 2;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 56px;
  height: 56px;
  background: var(--ink);
  color: #fff;
  text-decoration: none;
}
.hdr_menu_btn:hover{
  background: var(--main-color);
  color: #fff;
}
.hdr_menu_btn i{
  font-size: 20px;
  line-height: 1;
}
.hdr_menu_btn_txt{
  font-size: 9px;
  line-height: 1;
  letter-spacing: .1em;
}
@media (min-width:768px){
  .header{
    height: 86px;
    padding: 0 3%;
  }
  .hdr_logo_img{
    width: 77px;
  }
  .hdr_logo_txt{
    font-size: 13px;
  }
  .hdr_cta{
    display: flex;
  }
  .hdr_menu_btn{
    display: flex;
  }
}
@media (min-width:1200px){
  .header{
    height: 116px;
    padding: 0 4%;
  }
  .hdr_logo_link{
    gap: 16px;
  }
  .hdr_logo_img{
    width: 87px;
  }
  .hdr_logo_txt{
    font-size: 14px;
  }
  .hdr_menu_btn{
    display: none;
  }
}

/* ---------- グローバルナビ（1200px未満：全画面メニュー／1200px以上：ヘッダー内に横並び） ---------- */
.gnav{
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  background: var(--ink);
  color: #fff;
  opacity: 0;
  visibility: hidden;
  transition: opacity .4s, visibility .4s;
}
.is_gnav_open .gnav{
  opacity: 1;
  visibility: visible;
}
.gnav_inner{
  display: flex;
  flex-direction: column-reverse;
  gap: 50px;
  min-height: 100%;
  padding: 50px 30px 110px;
}
.gnav_side{
  padding-top: 30px;
  border-top: 1px solid rgba(255,255,255,.3);
  text-align: center;
}
.gnav_logo_link{
  justify-content: center;
  color: #fff;
}
.gnav_logo_link:hover{
  color: #fff;
}
.gnav_logo_img{
  width: 77px;
}
.gnav_logo_txt{
  font-size: 14px;
  font-weight: 600;
}
.gnav_info{
  margin-top: 20px;
  font-size: 13px;
  line-height: 1.875;
}
.gnav_list{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px 24px;
  align-content: start;
}
.gnav_item{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.5);
  color: #fff;
  text-decoration: none;
}
.gnav_item:hover{
  border-color: var(--main-color);
  color: var(--main-color);
  text-decoration: none;
}
.gnav_en{
  display: none;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .05em;
}
.gnav_ja{
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}
@media (min-width:768px){
  .gnav_inner{
    flex-direction: row;
    gap: 0;
    padding: 130px 6% 80px;
  }
  .gnav_side{
    flex-shrink: 0;
    width: 240px;
    margin-right: 40px;
    padding: 0 30px 0 0;
    border-top: 0;
    border-right: 1px solid rgba(255,255,255,.3);
    text-align: left;
  }
  /* タブレット：ロゴと社名は縦並び（社名が折り返すため） */
  .gnav_logo_link{
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
  }
  /* タブレット：メニューは1列 */
  .gnav_list{
    flex-grow: 1;
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .gnav_en{
    display: block;
  }
  .gnav_ja{
    font-size: 12px;
  }
}
@media (min-width:1024px){
  .gnav_list{
    grid-template-columns: repeat(3, 1fr);
    gap: 60px 30px;
  }
  .gnav_logo_link{
    flex-direction: row;
    align-items: center;
  }
}
@media (min-width:1200px){
  .gnav{
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    background: none;
    color: var(--ink);
    opacity: 1;
    visibility: visible;
  }
  .gnav_inner{
    display: block;
    min-height: 0;
    padding: 0;
  }
  .gnav_list{
    display: flex;
    gap: 25px;
  }
  .gnav_item{
    padding: 0;
    border: 0;
    color: var(--ink);
  }
  .gnav_en{
    display: none;
  }
  .gnav_ja{
    font-size: 13px;
    font-weight: 400;
    white-space: nowrap;
  }
}

/* ==========================================================================
   フッター
   ========================================================================== */
/* ---------- CONTACT（全ページ共通） ---------- */
.ftr_contact{
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 65px 0 80px;
  background: var(--ink);
  color: #fff;
}
/* 背景の「＋」 */
.ftr_contact:before,
.ftr_contact:after{
  content: "";
  position: absolute;
  z-index: -1;
  background: rgba(255,255,255,.035);
}
.ftr_contact:before{
  top: 90px;
  right: 20px;
  width: 22px;
  height: 240px;
  margin-right: 109px;
}
.ftr_contact:after{
  top: 199px;
  right: 20px;
  width: 240px;
  height: 22px;
}
.ftr_contact .container{
  position: relative;
  z-index: 1;
}
.ftr_contact_ttl{
  margin: 40px 0 30px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: .01em;
}
.ftr_contact_bottom{
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding-top: 25px;
  border-top: 1px solid rgba(255,255,255,.21);
}
.ftr_contact_txt > *{
  color: #eee9e6;
}
.ftr_contact_link{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 80px;
  padding: 22px;
  background: var(--main-color);
  color: #fff;
  text-decoration: none;
}
.ftr_contact_link:after{
  content: "↗";
  font-size: 27px;
  line-height: 1;
}
.ftr_contact_link:hover{
  background: #d66000;
  color: #fff;
  text-decoration: none;
}
.ftr_contact_link_txt{
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}
@media (min-width:768px){
  .ftr_contact{
    padding: 85px 0 105px;
  }
  .ftr_contact:before{
    top: 60px;
    right: 7%;
    width: 44px;
    height: 490px;
    margin-right: 223px;
  }
  .ftr_contact:after{
    top: 283px;
    right: 7%;
    width: 490px;
    height: 44px;
  }
  .ftr_contact_ttl{
    margin: 69px 0 51px;
    font-size: clamp(32px, 3vw, 58px);
    letter-spacing: .045em;
  }
  .ftr_contact_bottom{
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr);
    gap: 50px;
    align-items: end;
    padding-top: 35px;
  }
  .ftr_contact_txt > *{
    line-height: 2.3;
  }
  .ftr_contact_txt > * + *{
    margin-top: 17px;
  }
  .ftr_contact_link{
    min-height: 94px;
    padding: 23px 25px;
  }
  .ftr_contact_link_txt{
    font-size: 15px;
  }
}
@media (min-width:1200px){
  .ftr_contact:before,
  .ftr_contact:after{
    right: calc(29.8% - 245px);
  }
  .ftr_contact:before{
    top: 151px;
  }
  .ftr_contact:after{
    top: 374px;
  }
  .ftr_contact_bottom{
    gap: 85px;
  }
}

/* ---------- 共通フッター ---------- */
.ftr_main{
  padding: 50px 0 25px;
  background: #fff;
}
.ftr_grid{
  display: grid;
  gap: 40px;
  padding-bottom: 40px;
}
.ftr_logo_link{
  gap: 16px;
}
.ftr_logo_img{
  width: 87px;
}
.ftr_logo_txt{
  font-size: 15px;
  font-weight: 600;
}
.ftr_address{
  margin-top: 25px;
  font-size: 13px;
  line-height: 2;
}
.ftr_nav{
  display: none;
  grid-template-columns: 1fr 1fr;
  gap: 20px 35px;
  align-content: start;
}
.ftr_nav_item{
  padding-bottom: 7px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink);
}
.ftr_nav_contact:after{
  content: " ↗";
}
.ftr_bottom{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 23px;
  border-top: 1px solid rgba(35,24,21,.125);
}
.ftr_copy,
.ftr_pagetop_txt{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .07em;
}
.ftr_pagetop{
  display: none;
  align-items: center;
  gap: 6px;
  color: var(--ink);
}
.ftr_pagetop:after{
  content: "↑";
  font-size: 10px;
  line-height: 1;
}
@media (min-width:768px){
  .ftr_main{
    padding: 70px 0 25px;
  }
  .ftr_grid{
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    padding-bottom: 60px;
  }
  .ftr_logo_link{
    gap: 20px;
  }
  .ftr_logo_img{
    width: 105px;
  }
  .ftr_logo_txt{
    font-size: 17px;
  }
  .ftr_nav{
    display: grid;
  }
  .ftr_pagetop{
    display: flex;
  }
}
@media (min-width:1200px){
  .ftr_grid{
    gap: 100px;
  }
}

/* ---------- ページトップ ---------- */
.pagetop_btn{
  position: fixed;
  z-index: 90;
  right: 15px;
  bottom: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  background: var(--ink);
  color: #fff;
  font-size: 24px;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s, background .3s;
}
.pagetop_btn.is_show{
  opacity: 1;
  visibility: visible;
}
.pagetop_btn:hover{
  background: var(--main-color);
  color: #fff;
  text-decoration: none;
}
@media (min-width:768px){
  .pagetop_btn{
    display: none;
  }
}

/* ---------- スマホ用 固定フッターメニュー ---------- */
.footer_fix{
  position: fixed;
  z-index: 120;
  left: 0;
  bottom: 0;
  display: flex;
  width: 100%;
  height: 60px;
}
.footer_fix a{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #fff;
  text-decoration: none;
}
.footer_fix a:hover{
  color: #fff;
  text-decoration: none;
}
.footer_fix i{
  font-size: 20px;
  line-height: 1;
}
.footer_fix_txt{
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .05em;
}
.footer_fix_item_1{
  flex-grow: 1;
  background: var(--main-color);
}
.footer_fix_item_2{
  width: 80px;
  background: var(--ink);
}
body{
  padding-top: 64px;
  padding-bottom: 60px;
}
/* ページ内リンク（#〇〇）で移動したとき、固定ヘッダーに隠れないようにする */
html{
  scroll-padding-top: 64px;
}
@media (min-width:768px){
  body{
    padding-top: 86px;
  }
  html{
    scroll-padding-top: 86px;
  }
}
@media (min-width:1200px){
  body{
    padding-top: 116px;
  }
  html{
    scroll-padding-top: 116px;
  }
}
@media (min-width:768px){
  .footer_fix{
    display: none;
  }
  body{
    padding-bottom: 0;
  }
}

/* ==========================================================================
   TOPページ
   ========================================================================== */
/* ---------- メインビジュアル（画面幅基準） ---------- */
.mv{
  position: relative;
  z-index: 1;
  padding: 0 6%;
}
.mv_inner{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  padding-bottom: 70px;
}
.mv_img{
  order: 1;
  margin-top: 25px;
  border-top: 8px solid var(--main-color);
  border-right: 8px solid var(--main-color);
}
.mv_img.img_fit:before{
  padding-top: 80%;
}
.mv_copy{
  position: relative;
  z-index: 2;
  padding-top: 40px;
}
.mv_eyebrow{
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .18em;
}
.mv_ttl{
  margin: 20px 0 22px;
  font-family: var(--font-serif);
  font-size: clamp(26px, 6.5vw, 53px);
  font-weight: 500;
  line-height: 1.65;
  white-space: nowrap;
}
.mv_ttl em{
  color: var(--main-color);
}
.mv_sub{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: .08em;
}
.mv_lead{
  margin-top: 16px;
}
.mv_lead_txt{
  font-size: 13px;
  line-height: 1.875;
}
.mv_btn{
  margin-top: 30px;
}
.mv_foot{
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 22px;
  display: flex;
  justify-content: space-between;
}
.mv_foot_txt{
  font-size: 9px;
  line-height: 1;
  letter-spacing: .15em;
}
@media (min-width:768px){
  .mv{
    padding: 0 4%;
  }
  .mv_inner{
    display: block;
    min-height: 680px;
    padding: 0;
    margin-top: 35px;
  }
  .mv_img{
    position: absolute;
    z-index: 1;
    top: 35px;
    right: 0;
    width: 56%;
    height: 560px;
    margin: 0;
    border-top-width: 14px;
    border-right-width: 14px;
  }
  .mv_img.img_fit:before{
    display: none;
  }
  .mv_copy{
    width: 43%;
    padding: 69px 0 100px 1%;
  }
  .mv_ttl{
    margin: 26px 0 26px;
    font-size: clamp(30px, 2.95vw, 57px);
  }
  .mv_sub{
    font-size: 14px;
    line-height: 2;
  }
  .mv_lead_txt{
    font-size: 13px;
    line-height: 2.2;
  }
  .mv_btn{
    margin-top: 32px;
  }
  .mv_foot{
    left: 3%;
    bottom: 27px;
  }
  .mv_foot_txt{
    font-size: 10px;
  }
}
@media (min-width:1024px){
  .mv_inner{
    min-height: 800px;
  }
  .mv_img{
    height: 680px;
  }
}
@media (min-width:1200px){
  .mv_inner{
    min-height: 940px;
  }
  .mv_img{
    height: 790px;
  }
  .mv_sub{
    font-size: 16px;
  }
  .mv_lead_txt{
    font-size: 14px;
  }
}
@media (min-width:1720px){
  .mv_inner{
    min-height: 990px;
  }
  .mv_img{
    height: 850px;
  }
}

/* ---------- 01 / ABOUT US ---------- */
.top_about{
  padding: 65px 0 90px;
  background: #fff;
}
.top_about_grid{
  display: grid;
  gap: 35px;
  margin-top: 40px;
}
.top_about_ttl{
  margin-bottom: 30px;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .06em;
}
.top_about_img.img_fit:before{
  padding-top: 52%;
}
.top_about_txt > * + *{
  margin-top: 20px;
}
.top_about_btn{
  margin-top: 40px;
}
@media (min-width:768px){
  .top_about{
    padding: 100px 0 150px;
  }
  .top_about_grid{
    grid-template-columns: 1fr 1fr;
    gap: 65px;
    margin-top: 71px;
  }
  .top_about_ttl{
    margin-bottom: 45px;
    font-size: clamp(34px, 3.2vw, 46px);
  }
  .top_about_img{
    width: 75%;
  }
  .top_about_body{
    padding-top: 15px;
  }
  .top_about_txt > *{
    line-height: 2.5;
  }
  .top_about_txt > * + *{
    margin-top: 25px;
  }
  .top_about_btn{
    margin-top: 47px;
  }
}
@media (min-width:1200px){
  .top_about_grid{
    gap: 110px;
  }
  .top_about_img.img_fit:before{
    padding-top: 56.1%;
  }
}

/* ---------- 02 / OUR SERVICES ---------- */
.top_service{
  padding: 65px 0 85px;
  background: #f7f5f0;
}
.top_service_intro{
  display: grid;
  gap: 30px;
  margin: 40px 0 65px;
}
.top_service_ttl{
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .04em;
}
.top_service_item{
  display: grid;
  gap: 30px;
  padding-bottom: 65px;
  margin-bottom: 65px;
  border-bottom: 1px solid rgba(35,24,21,.15);
}
.top_service_item:last-child{
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.top_service_photo{
  position: relative;
  z-index: 1;
}
.top_service_img.img_fit:before{
  padding-top: 76%;
}
.top_service_num{
  position: absolute;
  z-index: 2;
  top: -14px;
  left: 16px;
}
.top_service_num img{
  display: block;
  width: auto;
  height: 62px;
}
.top_service_en{
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .18em;
  color: #9b4900;
}
.top_service_name{
  margin: 15px 0 20px;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .05em;
  color: var(--main-color);
}
.top_service_catch{
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
}
.top_service_txt > * + *{
  margin-top: 10px;
}
.top_service_txt > *:nth-child(3){
  margin-top: 24px;
}
.top_service_btn{
  margin-top: 30px;
}
@media (min-width:768px){
  .top_service{
    padding: 100px 0 140px;
  }
  .top_service_intro{
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: end;
    margin: 65px 0 84px;
  }
  .top_service_ttl{
    margin-top: 6px;
    font-size: 30px; /* タブレットのみ30px（1024px以上は下で指定） */
  }
  .top_service_lead > *{
    line-height: 2.5;
  }
  .top_service_lead{
    margin-bottom: 9px;
  }
  .top_service_item{
    gap: 40px;
    padding-bottom: 95px;
    margin-bottom: 95px;
  }
  .top_service_item:last-child{
    padding-bottom: 60px;
    border-bottom: 1px solid rgba(35,24,21,.15);
  }
  .top_service_num{
    top: -20px;
    left: 22px;
  }
  .top_service_num img{
    height: 77px;
  }
  .top_service_name{
    margin: 15px 0 28px;
    font-size: clamp(32px, 2.8vw, 40px);
  }
  .top_service_catch{
    margin-bottom: 24px;
    font-size: 20px;
  }
  .top_service_txt > *{
    line-height: 2.2;
  }
  .top_service_btn{
    margin-top: 22px;
  }
}
@media (min-width:1024px){
  .top_service_ttl{
    font-size: clamp(34px, 3.2vw, 48px);
  }
  .top_service_item{
    grid-template-columns: 1.15fr 1fr;
    gap: 50px;
    align-items: center;
  }
  /* 偶数番目は写真を右に */
  .top_service_item:nth-child(even){
    grid-template-columns: 1fr 1.15fr;
  }
  .top_service_item:nth-child(even) .top_service_photo{
    order: 2;
  }
}
@media (min-width:1200px){
  .top_service_intro{
    gap: 110px;
  }
  .top_service_item{
    gap: 90px;
  }
}

/* ---------- 03 / OUR APPROACH ---------- */
.top_approach{
  padding: 65px 0 90px;
  background: var(--main-color);
  color: #fff;
}
.top_approach_intro{
  display: grid;
  gap: 30px;
  margin: 40px 0 45px;
}
.top_approach_ttl{
  font-family: var(--font-serif);
  font-size: clamp(26px, 6.7vw, 40px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: .02em;
  white-space: nowrap;
}
.top_approach_photo{
  position: relative;
  z-index: 1;
  margin-bottom: 40px;
}
.top_approach_img.img_fit:before{
  padding-top: 60%;
}
.top_approach_cap{
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: 0;
  padding: 12px 16px;
  background: #fff;
  color: var(--ink);
  font-size: 9px;
  line-height: 1;
  letter-spacing: .2em;
}
.top_approach_list{
  display: grid;
}
.top_approach_item{
  padding: 30px 0 40px;
  border-top: 1px solid rgba(255,255,255,.44);
}
.top_approach_index{
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 22px;
}
.top_approach_num img{
  display: block;
  width: auto;
  height: 40px;
}
.top_approach_en{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .1em;
}
.top_approach_name{
  margin-bottom: 20px;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.9;
}
.top_approach_btn{
  display: flex;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.4);
}
.top_approach_btn .c_btn{
  padding: 22px 30px;
}
@media (min-width:768px){
  .top_approach{
    padding: 100px 0 140px;
  }
  .top_approach_intro{
    grid-template-columns: 1.2fr 1fr;
    gap: 50px;
    align-items: end;
    margin: 60px 0 37px;
  }
  .top_approach_ttl{
    margin-top: 8px;
    font-size: clamp(32px, 3.5vw, 65px);
  }
  .top_approach_lead > *{
    line-height: 2.5;
  }
  .top_approach_lead{
    margin-bottom: 15px;
  }
  .top_approach_photo{
    margin-bottom: 65px;
  }
  .top_approach_img.img_fit:before{
    padding-top: 36.8%;
  }
  .top_approach_cap{
    padding: 17px 25px;
    font-size: 11px;
  }
  .top_approach_item{
    padding: 30px 0 45px;
  }
  .top_approach_index{
    margin-bottom: 28px;
  }
  .top_approach_num img{
    height: 46px;
  }
  .top_approach_name{
    font-size: clamp(19px, 1.8vw, 24px);
  }
  .top_approach_txt > *{
    line-height: 2.4;
  }
  .top_approach_btn{
    justify-content: center;
  }
}
@media (min-width:1024px){
  .top_approach_list{
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }
  .top_approach_btn{
    padding-top: 50px;
  }
  .top_approach_name{
    min-height: 95px;
  }
}
@media (min-width:1200px){
  .top_approach_intro{
    gap: 100px;
  }
  .top_approach_list{
    gap: 55px;
  }
}

/* ---------- 04 / LET'S TALK ---------- */
.top_consult{
  padding: 65px 0 90px;
  background: #faf8f3;
}
.top_consult_head{
  position: relative;
  z-index: 1;
  max-width: 900px;
  margin: 45px auto 50px;
  text-align: center;
}
/* 見出し左上の「＋」 */
.top_consult_head:before,
.top_consult_head:after{
  content: "";
  position: absolute;
  z-index: -1;
  background: rgba(236,108,0,.125);
}
.top_consult_head:before{
  top: 0;
  left: 26px;
  width: 8px;
  height: 60px;
}
.top_consult_head:after{
  top: 26px;
  left: 0;
  width: 60px;
  height: 8px;
}
.top_consult_ttl{
  margin-bottom: 25px;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .07em;
}
.top_consult_ttl em{
  color: var(--main-color);
}
.top_consult_lead{
  max-width: 730px;
  margin: 0 auto;
}
.top_consult_item{
  display: grid;
  grid-template-columns: 50px minmax(0,1fr);
  gap: 18px;
  align-items: start;
  padding: 30px 0;
  border-top: 1px solid rgba(35,24,21,.19);
}
.top_consult_item:last-child{
  border-bottom: 1px solid rgba(35,24,21,.19);
}
.top_consult_num{
  padding-top: 8px;
}
.top_consult_num img{
  display: block;
  width: auto;
  height: 36px;
}
.top_consult_name{
  margin-bottom: 16px;
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.85;
  letter-spacing: .025em;
}
.top_consult_txt > *{
  font-size: 14px;
}
.top_consult_btn{
  margin-top: 55px;
  text-align: center;
}
.top_consult_btn .c_btn{
  min-width: 260px;
}
@media (min-width:768px){
  .top_consult{
    padding: 100px 0 130px;
  }
  .top_consult_head{
    margin: 77px auto 80px;
  }
  .top_consult_head:before{
    top: 27px;
    left: 70px;
    width: 10px;
    height: 108px;
  }
  .top_consult_head:after{
    top: 76px;
    left: 21px;
    width: 108px;
    height: 10px;
  }
  .top_consult_ttl{
    margin-bottom: 30px;
    font-size: clamp(36px, 3.4vw, 54px);
  }
  .top_consult_lead > *{
    line-height: 2.5;
  }
  .top_consult_list{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 44px;
  }
  .top_consult_item{
    grid-template-columns: 56px minmax(0,1fr);
    padding: 38px 0 42px;
  }
  .top_consult_item:nth-last-child(-n+2){
    border-bottom: 1px solid rgba(35,24,21,.19);
  }
  .top_consult_num img{
    height: 40px;
  }
  .top_consult_name{
    margin-bottom: 20px;
    font-size: clamp(20px, 1.8vw, 23px);
  }
  .top_consult_txt > *{
    line-height: 2.3;
  }
  .top_consult_btn .c_btn{
    min-width: 300px;
  }
}
@media (min-width:1200px){
  .top_consult_list{
    column-gap: 72px;
  }
  .top_consult_item{
    grid-template-columns: 66px minmax(0,1fr);
    gap: 24px;
  }
  .top_consult_num{
    padding-top: 6px;
  }
  .top_consult_num img{
    height: 44px;
  }
}

/* ---------- NEWS ---------- */
.top_news{
  padding: 55px 0 65px;
  background: #fff;
}
.top_news_bar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 30px;
  padding-top: 22px;
  border-top: 1px solid rgba(35,24,21,.21);
}
.top_news_label{
  font-size: 12px;
  line-height: 1;
  letter-spacing: .16em;
}
.top_news_more{
  display: flex;
  align-items: center;
  gap: 30px;
  color: var(--ink);
  text-decoration: none;
}
.top_news_more:after{
  content: "↗";
  font-size: 12px;
  line-height: 1;
}
.top_news_more_txt{
  font-size: 12px;
  line-height: 1;
}
.top_news_list .webgene-blog{
  display: grid;
  gap: 35px;
}
.top_news_item{
  position: relative;
  z-index: 1;
  display: block;
  color: var(--ink);
  text-decoration: none;
}
.top_news_item:after{
  content: "↗";
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 2px;
  font-size: 18px;
  line-height: 1;
  color: var(--main-color);
}
.top_news_item:hover{
  color: var(--main-color);
  text-decoration: none;
}
.top_news_img{
  background: #f5f3ef;
}
.top_news_img.img_fit:before{
  padding-top: 57.1%;
}
.top_news_img img{
  transition: transform .3s;
}
.top_news_item:hover .top_news_img img{
  transform: scale(1.025);
}
.top_news_meta{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 15px 0 12px;
}
.top_news_date,
.top_news_cate{
  font-size: 11px;
  line-height: 1;
  color: var(--gray);
}
.top_news_cate{
  color: #a84b00;
}
.top_news_ttl{
  padding-right: 35px;
  font-size: 15px;
  line-height: 1.8;
}
@media (min-width:768px){
  .top_news{
    padding: 70px 0 95px;
  }
  .top_news_bar{
    margin-bottom: 42px;
  }
  .top_news_list .webgene-blog{
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  .top_news_img.img_fit:before{
    padding-top: 62.5%;
  }
  .top_news_meta{
    margin-top: 24px;
  }
}
@media (min-width:1200px){
  .top_news_list .webgene-blog{
    gap: 40px;
  }
}

/* ==========================================================================
   下層ページ共通
   ========================================================================== */
/* ---------- 写真＋タイトルのページヘッダー（お知らせ・お知らせ詳細・相談・見積り） ---------- */
.pg_header{
  position: relative;
  z-index: 1;
  height: 300px;
  overflow: hidden;
  color: #fff;
}
.pg_header:after{
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(35,24,21,.5);
}
.pg_header_img{
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.pg_header_img.img_fit:before{
  display: none;
}
.pg_header_inner{
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding-top: 10px;
}
.pg_header_en img{
  display: block;
  width: auto;
  height: 13px;
}
.pg_header_ttl{
  margin: 14px 0 18px;
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .1em;
}
.pg_header_txt > *{
  font-size: 12px;
  line-height: 1.875;
}
@media (min-width:768px){
  .pg_header{
    height: clamp(300px, 23.3vw, 420px);
  }
  .pg_header_en img{
    height: 14px;
  }
  .pg_header_ttl{
    margin: 14px 0 20px;
    font-size: 34px;
    letter-spacing: .18em;
  }
  .pg_header_txt > *{
    font-size: 14px;
    line-height: 2;
  }
}
@media (min-width:1200px){
  .pg_header_ttl{
    font-size: 38px;
  }
}

/* ==== 下層ページ（各ページ） ここから ==== */
/* ---------- 私たちについて ---------- */

/* ---------- 下層ページヘッダー（ページラベル＋タイトル＋写真） ---------- */
.about_hero{
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 40px 0 65px;
  background: #faf8f3;
}
/* 背景の大きな「＋」（縦棒・横棒） */
.about_hero:before,
.about_hero:after{
  content: "";
  position: absolute;
  z-index: 0;
  background: rgba(236,108,0,.08);
}
.about_hero:before{
  top: 139px;
  right: 70px;
  width: 20px;
  height: 218px;
}
.about_hero:after{
  top: 238px;
  right: -29px;
  width: 219px;
  height: 20px;
}
.about_hero .container{
  position: relative;
  z-index: 1;
}
.about_hero_label{
  display: flex;
  align-items: baseline;
  gap: 20px;
}
.about_hero_label_en{
  font-size: 11px;
  line-height: 1;
  letter-spacing: .15em;
}
.about_hero_label_ja{
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
}
.about_hero_grid{
  display: flex;
  flex-direction: column;
}
.about_hero_head{
  margin: 45px 0 30px;
}
.about_hero_eyebrow{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .16em;
}
.about_hero_ttl{
  margin-top: 20px;
  font-family: var(--font-serif);
  font-size: clamp(29px, 6.9vw, 48px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: .055em;
}
.about_hero_img{
  border-left: 8px solid var(--main-color);
}
.about_hero_img.img_fit:before{
  padding-top: 90%;
}
.about_hero_lead{
  margin-top: 30px;
}
.about_hero_lead > *{
  font-size: 14px;
  line-height: 1.875;
}
.about_hero_lead > * + *{
  margin-top: 8px;
}
.about_hero_lead > *:nth-child(2n+3){
  margin-top: 25px;
}
@media (min-width:768px){
  .about_hero{
    padding: 63px 0 95px;
  }
  .about_hero:before{
    top: 259px;
    right: auto;
    left: 153px;
    width: 34px;
    height: 363px;
  }
  .about_hero:after{
    top: 423px;
    right: auto;
    left: -13px;
    width: 365px;
    height: 34px;
  }
  .about_hero_label{
    gap: 25px;
  }
  .about_hero_label_en{
    font-size: 12px;
  }
  .about_hero_label_ja{
    font-size: 15px;
  }
  .about_hero_head{
    margin: 80px 0 40px;
  }
  .about_hero_ttl{
    margin-top: 26px;
  }
  .about_hero_img{
    border-left-width: 12px;
  }
  .about_hero_img.img_fit:before{
    padding-top: 60%;
  }
  .about_hero_lead{
    max-width: 580px;
    margin-top: 45px;
  }
  .about_hero_lead > *{
    font-size: 16px;
    line-height: 2.3;
  }
}
@media (min-width:1024px){
  .about_hero_grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto 1fr;
    column-gap: 45px;
  }
  .about_hero_head{
    grid-column: 1;
    grid-row: 1;
    margin: 113px 0 0;
  }
  .about_hero_ttl{
    font-size: clamp(38px, 3.2vw, 62px);
  }
  .about_hero_img{
    grid-column: 2;
    grid-row: 1 / 3;
    height: 620px;
    margin-top: 84px;
  }
  .about_hero_img.img_fit:before{
    display: none;
  }
  .about_hero_lead{
    grid-column: 1;
    grid-row: 2;
    margin-top: 80px;
  }
}
@media (min-width:1200px){
  .about_hero_grid{
    column-gap: 80px;
  }
  .about_hero_img{
    height: 740px;
  }
  .about_hero_lead{
    margin-top: 112px;
  }
}

/* ---------- 各セクション共通 ---------- */
.about_mind,
.about_strength,
.about_network,
.about_beyond{
  padding: 60px 0 70px;
}
/* セクションの日本語見出し（罫線の上） */
.about_sec_ttl{
  margin-bottom: 18px;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .06em;
}
/* 本文（16px・行間2.35） */
.about_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.about_txt > * + *{
  margin-top: 1.5em;
}
@media (min-width:768px){
  .about_mind,
  .about_strength,
  .about_network,
  .about_beyond{
    padding: 100px 0 115px;
  }
  .about_sec_ttl{
    margin-bottom: 22px;
    font-size: 28px;
  }
  .about_txt > *{
    font-size: 16px;
    line-height: 2.35;
  }
  .about_txt > * + *{
    margin-top: 23px;
  }
}

/* ---------- 私たちの想い（オレンジ背景） ---------- */
.about_mind{
  background: var(--main-color);
  color: #fff;
}
.about_mind .c_label{
  border-color: #fff;
}
.about_mind_grid{
  display: flex;
  flex-direction: column;
  gap: 35px;
  margin-top: 40px;
}
.about_mind_ttl{
  margin-bottom: 30px;
  font-family: var(--font-serif);
  font-size: clamp(24px, 6.4vw, 30px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .035em;
}
.about_mind_img img{
  filter: saturate(.8);
}
.about_mind_img.img_fit:before{
  padding-top: 61.25%;
}
@media (min-width:768px){
  .about_mind{
    padding-bottom: 120px;
  }
  .about_mind_grid{
    margin-top: 69px;
  }
  .about_mind_ttl{
    margin-bottom: 45px;
    font-size: 36px;
  }
}
@media (min-width:1024px){
  .about_mind_grid{
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 55px;
  }
}
@media (min-width:1200px){
  .about_mind_grid{
    gap: 100px;
  }
}
@media (min-width:1440px){
  .about_mind_ttl{
    font-size: 48px;
  }
}

/* ---------- エルプラスの強み（ベージュ背景） ---------- */
.about_strength{
  background: var(--beige);
}
.about_strength .c_label,
.about_beyond .c_label{
  border-color: var(--ink);
}
.about_strength_intro{
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: 40px 0 35px;
}
.about_strength_ttl,
.about_network_ttl{
  font-family: var(--font-serif);
  font-size: clamp(24px, 6.4vw, 30px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .035em;
}
.about_strength_lead > *{
  line-height: 1.875;
}
.about_strength_img img{
  object-position: center 55%;
}
.about_strength_img.img_fit:before{
  padding-top: 75%;
}
.about_strength_list{
  margin-top: 35px;
}
.about_strength_item{
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 35px 0;
  border-top: 1px solid rgba(35,24,21,.25);
}
.about_strength_item:last-child{
  border-bottom: 1px solid rgba(35,24,21,.25);
}
.about_strength_photo{
  order: 1;
}
.about_strength_photo.img_fit:before{
  padding-top: 67.27%;
}
.about_strength_body{
  display: contents;
}
.about_strength_label{
  order: 0;
  display: flex;
  align-items: flex-start;
  gap: 18px;
}
.about_strength_num img{
  display: block;
  width: auto;
  height: 38px;
}
.about_strength_name{
  margin-top: 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}
.about_strength_catch{
  order: 2;
  font-family: var(--font-serif);
  font-size: clamp(20px, 5.6vw, 24px);
  font-weight: 500;
  line-height: 1.8;
}
.about_strength_txt{
  order: 3;
}
/* サービスページへのリンク */
.about_links{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  margin-top: 35px;
}
.about_link{
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(35,24,21,.44);
  color: var(--ink);
  text-decoration: none;
}
.about_link:after{
  content: "↗";
  font-size: 13px;
  line-height: 1;
}
.about_link:hover{
  color: var(--main-color);
  text-decoration: none;
}
.about_link_txt{
  font-size: 13px;
  line-height: 1.45;
}
@media (min-width:768px){
  .about_strength_intro{
    margin: 62px 0 48px;
  }
  .about_strength_ttl,
  .about_network_ttl{
    font-size: 34px;
  }
  .about_strength_lead > *{
    line-height: 2.3;
  }
  .about_strength_img.img_fit:before{
    padding-top: 40%;
  }
  .about_strength_list{
    margin-top: 65px;
  }
  .about_strength_item{
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
    padding: 55px 0 78px;
  }
  .about_strength_item:nth-child(even){
    flex-direction: row-reverse;
  }
  .about_strength_photo{
    order: 0;
    flex-shrink: 0;
    width: calc((100% - 40px) * .4);
  }
  .about_strength_body{
    display: block;
    flex-grow: 1;
    min-width: 0;
  }
  .about_strength_label{
    gap: 22px;
    padding-top: 8px;
  }
  .about_strength_num img{
    height: 46px;
  }
  .about_strength_name{
    margin-top: 7px;
  }
  .about_strength_catch{
    margin-top: 20px;
    font-size: 24px;
  }
  .about_strength_txt{
    margin-top: 20px;
  }
  .about_links{
    flex-direction: row;
    gap: 30px;
  }
}
@media (min-width:1024px){
  .about_strength_intro{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    gap: 60px;
  }
}
@media (min-width:1200px){
  .about_strength_intro{
    gap: 100px;
  }
  .about_strength_img.img_fit:before{
    padding-top: 29.86%;
  }
  .about_strength_item{
    gap: 65px;
  }
  .about_strength_photo{
    width: calc((100% - 65px) * .4);
  }
  .about_strength_catch{
    font-size: 28px;
  }
}
@media (min-width:1440px){
  .about_strength_ttl,
  .about_network_ttl{
    font-size: 42px;
  }
}

/* ---------- 私たちの連携体制（オレンジ背景） ---------- */
.about_network{
  background: var(--main-color);
  color: #fff;
}
.about_network_head{
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: 40px 0;
}
.about_network_ttl{
  letter-spacing: 0;
}
/* 図：お客様 ↔ エルプラス ― 外部デザイナー・協力工場 */
.about_network_diagram{
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 45px;
}
.about_network_box{
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-height: 140px;
  padding: 20px 12px;
  border: 1px solid rgba(255,255,255,.61);
  text-align: center;
}
.about_network_center{
  border: 0;
  background: #fff;
  color: var(--ink);
}
.about_network_en{
  font-size: 8px;
  line-height: 1.4;
  letter-spacing: .08em;
}
.about_network_name{
  margin: 15px 0 12px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.4;
}
.about_network_txt{
  font-size: 11px;
  line-height: 1.9;
}
.about_network_bridge{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 55px;
  height: 55px;
}
.about_network_bridge:before{
  content: "↕";
  font-size: 30px;
  line-height: 1;
}
.about_network_branch{
  position: relative;
  z-index: 1;
  width: 0;
  height: 45px;
  border-left: 1px solid #fff;
}
.about_network_branch_txt{
  position: absolute;
  z-index: 1;
  top: 14px;
  left: 12px;
  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
}
.about_network_partners{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  width: 100%;
}
.about_network_partner{
  min-height: 150px;
}
/* 説明パネル */
.about_network_panels{
  display: grid;
  gap: 22px;
}
.about_network_panel{
  padding: 28px 24px 18px;
  border-top: 5px solid var(--ink);
  background: var(--beige);
  color: var(--ink);
}
.about_network_panel_ttl{
  margin-bottom: 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(35,24,21,.15);
  font-family: var(--font-serif);
  font-size: clamp(16px, 4.1vw, 23px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0;
}
.about_network_panel_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.about_network_panel_txt > * + *{
  margin-top: 20px;
}
@media (min-width:768px){
  .about_network_head{
    margin: 67px 0 65px;
  }
  .about_network_lead{
    padding-bottom: 8px;
  }
  .about_network_panel{
    padding: 32px 28px 42px;
  }
  .about_network_panel_txt > *{
    font-size: 16px;
    line-height: 2.2;
  }
}
@media (min-width:1024px){
  .about_network_head{
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    align-items: end;
    gap: 50px;
  }
  .about_network_diagram{
    display: grid;
    grid-template-columns: 1fr 40px 1.1fr 45px 1.1fr;
    align-items: center;
    padding: 35px 0 65px;
  }
  .about_network_box{
    min-height: 172px;
    padding: 25px 15px;
    text-align: left;
  }
  .about_network_center{
    min-height: 210px;
  }
  .about_network_partner{
    min-height: 150px;
  }
  .about_network_en{
    font-size: 9px;
  }
  .about_network_name{
    font-size: 22px;
  }
  .about_network_bridge{
    width: auto;
    height: auto;
  }
  .about_network_bridge:before{
    content: "↔";
  }
  .about_network_branch{
    width: auto;
    height: 195px;
    margin-left: 20px;
    border: 1px solid rgba(255,255,255,.63);
    border-right: 0;
  }
  .about_network_branch:before{
    content: "";
    position: absolute;
    z-index: 1;
    top: 50%;
    left: -20px;
    width: 20px;
    border-top: 1px solid rgba(255,255,255,.63);
  }
  .about_network_branch_txt{
    top: 44%;
    left: 8px;
  }
  .about_network_partners{
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .about_network_panels{
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .about_network_panel_ttl{
    margin-bottom: 26px;
    padding-bottom: 24px;
    font-size: clamp(18px, 1.4vw, 26px);
    white-space: nowrap;
  }
}
@media (min-width:1200px){
  .about_network_head{
    gap: 90px;
  }
  .about_network_diagram{
    grid-template-columns: 1fr 65px 1.15fr 70px 1.15fr;
  }
  .about_network_client,
  .about_network_center{
    padding: 33px 22px;
  }
  .about_network_partner{
    padding: 25px 22px;
  }
  .about_network_name{
    font-size: 26px;
  }
  .about_network_txt{
    font-size: 12px;
  }
  .about_network_branch{
    margin-left: 35px;
  }
  .about_network_branch:before{
    left: -35px;
    width: 35px;
  }
  .about_network_panels{
    gap: 30px;
  }
  .about_network_panel{
    padding: 42px 40px 50px;
  }
}

/* ---------- 印刷の、その先まで ---------- */
.about_beyond{
  background: #fff;
}
.about_beyond_grid{
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 40px;
}
.about_beyond_img.img_fit:before{
  padding-top: 84.44%;
}
.about_beyond_ttl{
  margin-bottom: 25px;
  font-family: var(--font-serif);
  font-size: clamp(22px, 6vw, 28px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .025em;
}
@media (min-width:768px){
  .about_beyond_grid{
    margin-top: 65px;
  }
  .about_beyond_ttl{
    margin-bottom: 32px;
    font-size: 31px;
  }
}
@media (min-width:1024px){
  .about_beyond_grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 50px;
  }
}
@media (min-width:1200px){
  .about_beyond_grid{
    gap: 90px;
  }
}
@media (min-width:1440px){
  .about_beyond_ttl{
    font-size: 38px;
  }
}

/* ---------- 製品ページ共通（ラベル印刷・フィルム印刷・パッケージ印刷・制作の流れで共通の部品。接頭辞 lp_） ---------- */
/* セクションの外枠（上下の余白）と背景色 */
.lp_sec{
  padding: 65px 0 75px;
}
.lp_bg_white{
  background: #fff;
}
.lp_bg_beige{
  background: var(--beige);
}
.lp_bg_dark{
  background: var(--ink);
  color: #fff;
}
.lp_bg_orange{
  background: var(--main-color);
  color: #fff;
}
@media (min-width:768px){
  .lp_sec{
    padding: 95px 0 110px;
  }
}

/* セクション名（罫線の上の日本語） */
.lp_ttl{
  margin: 0 0 15px;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .06em;
}
@media (min-width:768px){
  .lp_ttl{
    font-size: 28px;
    line-height: 1;
    margin-bottom: 24px;
    padding-top: 7px;
  }
}

/* セクションラベル（.c_label に追加。罫線を文字色に、文字を少し小さく） */
.c_label.lp_label{
  border-top-color: currentColor;
}
.lp_label .c_label_l,
.lp_label .c_label_r{
  font-size: 10px;
  letter-spacing: .14em;
}
@media (min-width:768px){
  .c_label.lp_label{
    padding-top: 20px;
  }
}

/* 大見出し＋リード文（PCは左右2列で最終行をそろえる） */
.lp_head{
  display: grid;
  gap: 26px;
  margin: 38px 0 35px;
}
.lp_head_ttl{
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.65;
  color: var(--main-color);
}
.lp_head_ttl em{
  color: var(--main-color);
}
@media (min-width:768px){
  .lp_head{
    margin: 50px 0 45px;
  }
  .lp_head_ttl{
    font-size: clamp(32px, 4.4vw, 44px);
  }
}
@media (min-width:1024px){
  .lp_head{
    grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);
    gap: 35px;
    align-items: last baseline;
    margin: 60px 0 55px;
  }
  .lp_head_ttl{
    font-size: clamp(32px, 3.4vw, 56px);
    line-height: 1.75;
  }
}
@media (min-width:1200px){
  .lp_head{
    gap: 65px;
  }
}

/* 本文（.c_txt に追加。PCは16px・行間2.3） */
.lp_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
@media (min-width:768px){
  .lp_txt > *{
    font-size: 16px;
    line-height: 2.3;
  }
  .lp_txt_s > *{
    font-size: 15px;
  }
}

/* 小さな英字ラベル（01 / HOW TO USE など） */
.lp_en{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .13em;
  color: var(--main-dark);
}

/* 注記（小さめの本文） */
.lp_note{
  margin-top: 30px;
}
.lp_note > *{
  font-size: 12px;
  line-height: 2.1;
}
@media (min-width:768px){
  .lp_note{
    margin-top: 35px;
  }
  .lp_note > *{
    font-size: 13px;
  }
}

/* 締めの一文（明朝・オレンジ） */
.lp_end{
  margin-top: 35px;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.9;
  color: var(--main-color);
}
@media (min-width:768px){
  .lp_end{
    margin-top: 55px;
    font-size: 26px;
  }
  .lp_end_right{
    margin-top: 45px;
    font-size: 27px;
    text-align: right;
  }
  .lp_end_center{
    text-align: center;
  }
}

/* 写真（コンテンツ幅いっぱい・横長） */
.lp_photo{
  margin-bottom: 35px;
}
.lp_photo.img_fit:before{
  padding-top: 66.7%;
}
@media (min-width:768px){
  .lp_photo{
    margin-bottom: 65px;
  }
  .lp_photo.img_fit:before{
    padding-top: 31.94%; /* 1440×460 */
  }
}

/* ---------- お悩みカード（黒背景：アイコン＋茶色の文字ボックス） ---------- */
.lp_qcard_list{
  display: grid;
  gap: 30px;
}
.lp_qcard{
  display: flex;
  flex-direction: column;
  padding-top: 25px;
  border-top: 1px solid rgba(255,255,255,.35);
}
.lp_qcard_icon{
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
}
.lp_qcard_icon img{
  display: block;
  width: 170px;
  max-width: 100%;
  height: auto;
}
.lp_qcard_body{
  flex-grow: 1;
  padding: 20px;
  background: #392e27;
  color: #fff;
}
.lp_qcard_ttl{
  margin-bottom: 15px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
.lp_qcard_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
@media (min-width:768px){
  .lp_qcard_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 20px;
  }
  .lp_qcard_icon{
    margin-bottom: 25px;
  }
  .lp_qcard_icon img{
    width: 240px;
  }
  .lp_qcard_body{
    padding: 26px 22px;
  }
  .lp_qcard_ttl{
    margin-bottom: 20px;
    font-size: clamp(18px, 1.9vw, 20px);
  }
  .lp_qcard_txt > *{
    font-size: 15px;
    line-height: 2.2;
  }
}
@media (min-width:1200px){
  .lp_qcard_list{
    gap: 36px;
  }
  .lp_qcard_ttl{
    font-size: 22px;
  }
}

/* ---------- エルプラスが選ばれる理由（オレンジ背景：見出し＋3列＋締め） ---------- */
.lp_reason .lp_head_ttl{
  font-size: 33px;
  color: #fff;
}
.lp_reason_list{
  display: grid;
  gap: 30px;
}
.lp_reason_item{
  padding-top: 25px;
  border-top: 1px solid rgba(255,255,255,.56);
}
.lp_reason_en{
  color: #fff;
  letter-spacing: .14em;
}
.lp_reason_name{
  margin: 18px 0;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.85;
}
.lp_reason_end{
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.56);
  line-height: 1.95;
  color: #fff;
}
@media (min-width:768px){
  .lp_reason .lp_head_ttl{
    font-size: clamp(36px, 4.6vw, 44px);
  }
  .lp_reason_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 28px;
  }
  .lp_reason_name{
    font-size: 19px; /* タブレットのみ19px（1024px以上は下で指定） */
  }
  .lp_reason_end{
    margin-top: 65px;
    padding-top: 38px;
  }
}
@media (min-width:1024px){
  .lp_reason .lp_head{
    grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);
    margin: 65px 0 75px;
  }
  .lp_reason .lp_head_ttl{
    font-size: clamp(36px, 3.9vw, 66px);
    line-height: 1.65;
  }
  .lp_reason_name{
    font-size: 21px;
  }
}
@media (min-width:1200px){
  .lp_reason .lp_head{
    gap: 80px;
  }
  .lp_reason_list{
    gap: 45px;
  }
  .lp_reason_name{
    margin: 26px 0;
    font-size: 25px;
  }
}

/* ---------- 製品詳細（白いカード：写真＋英字＋製品名＋説明＋外部リンク） ---------- */
.lp_detail_list{
  display: grid;
  gap: 30px;
}
.lp_detail_item{
  display: flex;
  flex-direction: column;
  background: #fff;
}
.lp_detail_img{
  background: #e9e1d4;
}
.lp_detail_img.img_fit:before{
  padding-top: 66.7%;
}
.lp_detail_body{
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 25px;
}
.lp_detail_en{
  letter-spacing: .14em;
  color: #a94c00;
}
.lp_detail_name{
  margin: 15px 0 18px;
  font-family: var(--font-serif);
  font-size: 27px;
  font-weight: 500;
  line-height: 1.5;
}
.lp_detail_txt{
  margin-bottom: 28px;
}
.lp_detail_link{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 23px;
  border-top: 1px solid rgba(35,24,21,.27);
  color: var(--ink);
  text-decoration: none;
}
.lp_detail_link:after{
  content: "↗";
  font-size: 25px;
  line-height: 1;
  color: var(--main-color);
}
.lp_detail_link:hover{
  color: #a94c00;
  text-decoration: none;
}
.lp_detail_link_txt{
  font-size: 14px;
  line-height: 1.6;
}
@media (min-width:768px){
  .lp_detail_list{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

/* ---------- ラベル印刷 ---------- */
/* ---------- ページ上部（ページラベル＋キャッチ＋写真。画面幅基準） ---------- */
.label_hero{
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 30px 6% 0;
  background: #f7f3ea;
}
.label_hero_label{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(35,24,21,.19);
}
.label_hero_en{
  font-size: 11px;
  line-height: 1;
  letter-spacing: .1em;
  color: var(--main-dark);
}
.label_hero_ttl{
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .06em;
}
.label_hero_layout{
  display: flex;
  flex-direction: column;
  margin-top: 30px;
}
.label_hero_kicker{
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .17em;
}
.label_hero_catch{
  margin: 20px 0 22px;
  font-family: var(--font-serif);
  font-size: clamp(30px, 8vw, 58px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .01em;
}
.label_hero_catch em{
  color: var(--main-color);
}
.label_hero_sub{
  margin-bottom: 20px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.875;
  letter-spacing: .01em;
}
.label_hero_lead > *{
  font-size: 14px;
}
.label_hero_lead > * + *{
  margin-top: 17px;
}
.label_hero_img{
  margin: 35px 0;
}
.label_hero_img.img_fit:before{
  padding-top: 75%;
}
.label_hero_img img{
  object-position: 65% center;
}
.label_hero_bottom{
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 30px;
  padding-bottom: 25px;
}
.label_hero_bottom_txt,
.label_hero_scroll_txt{
  font-size: 8px;
  line-height: 1;
  letter-spacing: .13em;
  white-space: nowrap;
}
.label_hero_scroll{
  color: var(--ink);
  text-decoration: none;
}
@media (min-width:768px){
  .label_hero{
    padding: 40px 4% 0;
  }
  .label_hero_label{
    flex-direction: row;
    align-items: center;
    gap: 30px;
    padding: 0 3% 22px;
  }
  .label_hero_ttl{
    font-size: clamp(22px, 2vw, 34px);
  }
  .label_hero_sub{
    margin-bottom: 26px;
    font-size: 15px;
    line-height: 2;
  }
  .label_hero_lead > *{
    line-height: 2.3;
  }
  .label_hero_img.img_fit:before{
    padding-top: 56%;
  }
  .label_hero_bottom{
    padding: 30px 3% 25px;
  }
  .label_hero_bottom_txt,
  .label_hero_scroll_txt{
    font-size: 10px;
  }
}
@media (min-width:1024px){
  .label_hero_bottom{
    padding-top: 0;
  }
}
@media (min-width:1024px){
  .label_hero_layout{
    position: relative;
    z-index: 1;
    display: block;
    min-height: clamp(570px, 44.8vw, 860px);
    margin-top: 25px;
  }
  .label_hero_copy{
    position: relative;
    z-index: 2;
    width: 56%;
    padding: 70px 0 80px 1%;
  }
  .label_hero_catch{
    margin: 30px 0;
    font-size: clamp(42px, 4.05vw, 78px);
  }
  .label_hero_lead{
    max-width: 430px;
    padding: 12px 20px 8px 0;
    background: #f7f3ea;
  }
  .label_hero_img{
    position: absolute;
    z-index: 1;
    top: 0;
    right: -5%;
    width: 65%;
    height: clamp(520px, 42.2vw, 810px);
    margin: 0;
  }
  .label_hero_img.img_fit:before{
    display: none;
  }
}
@media (min-width:1200px){
  .label_hero_copy{
    padding-left: 3%;
  }
  .label_hero_sub{
    max-width: 600px;
    font-size: 16px;
  }
  .label_hero_lead{
    max-width: 500px;
  }
  .label_hero_lead > *{
    font-size: 16px;
  }
}

/* ---------- 01 / QUESTION ---------- */
.label_question_head{
  display: grid;
  gap: 25px;
  margin: 38px 0 30px;
}
.label_question_ttl{
  font-family: var(--font-serif);
  font-size: 29px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .01em;
}
.label_question_ttl em{
  font-size: 52px;
  line-height: 1.7;
  color: var(--main-color);
}
.label_question_txt{
  display: grid;
  gap: 1em;
}
.label_qcard_list .lp_qcard_icon img{
  width: 170px;
}
@media (min-width:768px){
  .label_question{
    padding-bottom: 115px;
  }
  .label_question_head{
    gap: 40px;
    margin: 65px 0 70px;
  }
  .label_question_ttl{
    font-size: 43px;
  }
  .label_question_ttl em{
    font-size: 80px;
  }
  .label_question_txt{
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
  .label_qcard_list .lp_qcard{
    padding-top: 28px;
  }
  .label_qcard_list .lp_qcard_icon img{
    width: 240px;
  }
}
@media (min-width:1200px){
  .label_question_ttl{
    font-size: 56px;
  }
  .label_question_ttl em{
    font-size: 100px;
  }
  .label_question_txt{
    gap: 70px;
  }
}

/* ---------- 02 / WHY LABEL? ---------- */
.label_role_grid{
  display: grid;
  gap: 30px;
  margin-top: 40px;
}
.label_role_img.img_fit:before{
  padding-top: 75%;
}
.label_role_ttl{
  margin-bottom: 25px;
  font-family: var(--font-serif);
  font-size: 31px;
  font-weight: 500;
  line-height: 1.8;
}
.label_role_ttl em{
  font-size: .78em;
  color: var(--main-color);
}
@media (min-width:768px){
  .label_role_img.img_fit:before{
    padding-top: 60%;
  }
  .label_role_ttl{
    margin-bottom: 35px;
    font-size: 34px;
  }
  .label_role_txt > * + *{
    margin-top: 25px;
  }
}
@media (min-width:1024px){
  .label_role_grid{
    grid-template-columns: 1fr 1fr;
    gap: 55px;
    align-items: center;
    margin-top: 65px;
  }
  .label_role_img.img_fit:before{
    padding-top: 115.6%; /* 675×780 */
  }
}
@media (min-width:1200px){
  .label_role_grid{
    gap: 90px;
  }
  .label_role_ttl{
    font-size: 42px;
  }
}

/* ---------- 03 / LABEL VALUE・04 / CAKE PICK VALUE（番号＋見出し＋本文の2列リスト） ---------- */
.label_value_ttl{
  font-size: 38px;
  line-height: 1.55;
  letter-spacing: .01em;
  color: var(--ink);
}
.label_num_list{
  display: grid;
}
.label_num_item{
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  gap: 16px;
  align-items: start;
  padding: 30px 0 35px;
  border-top: 1px solid rgba(35,24,21,.21);
}
.label_num{
  padding-top: 5px;
}
.label_num img{
  display: block;
  width: auto;
  height: 36px;
}
.label_num_ttl{
  margin-bottom: 16px;
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.8;
}
.label_cake_img img{
  object-position: center 35%;
}
@media (min-width:768px){
  .label_value_ttl{
    font-size: 48px;
  }
  .label_num_list{
    grid-template-columns: 1fr 1fr;
    column-gap: 40px;
  }
  .label_num_item{
    grid-template-columns: 65px minmax(0,1fr);
    gap: 25px;
  }
  .label_num{
    padding-top: 6px;
  }
  .label_num img{
    height: 46px;
  }
  .label_num_ttl{
    margin-bottom: 20px;
  }
  .label_cake_list .label_num_item{
    grid-template-columns: 58px minmax(0,1fr);
    padding: 35px 0;
  }
  .label_cake_list .label_num_ttl{
    margin-bottom: 18px;
    font-size: 20px;
  }
}
@media (min-width:1024px){
  .label_value_head{
    grid-template-columns: 1fr 1fr;
    gap: 55px;
    margin: 52px 0 50px;
  }
  .label_cake_head{
    grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);
    gap: 40px;
    margin-top: 52px;
  }
  .label_cake_ttl{
    font-size: clamp(34px, 3vw, 56px);
    line-height: 1.65;
    letter-spacing: .025em;
  }
}
@media (min-width:1200px){
  .label_value_head{
    gap: 100px;
  }
  .label_value_ttl{
    font-size: 60px;
  }
  .label_num_list{
    column-gap: 75px;
  }
  .label_num_ttl{
    font-size: 21px;
  }
  .label_cake_head{
    gap: 85px;
  }
  .label_cake_list{
    column-gap: 70px;
  }
  .label_cake_list .label_num_item{
    gap: 25px;
  }
  .label_cake_list .label_num_ttl{
    font-size: 23px;
  }
}

/* ---------- 05 / MATERIAL, SHAPE & FINISH ---------- */
.label_select_item{
  display: grid;
  gap: 28px;
  align-items: center;
  padding: 30px 0;
  border-top: 1px solid rgba(35,24,21,.21);
}
.label_select_img.img_fit:before{
  padding-top: 41.02%; /* 646×265 */
}
.label_select_en{
  letter-spacing: .14em;
  color: #946749;
}
.label_select_name{
  margin: 14px 0 18px;
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.5;
}
@media (min-width:768px){
  .label_select_item{
    grid-template-columns: minmax(0,1fr) minmax(0,1.12fr);
    gap: 35px;
    padding: 42px 0;
  }
  .label_select_name{
    margin: 18px 0 23px;
    font-size: 29px;
  }
}
@media (min-width:1024px){
  .label_select_head{
    grid-template-columns: minmax(0,1.3fr) minmax(0,1fr);
    margin: 58px 0 65px;
  }
  .label_select_ttl{
    font-size: clamp(34px, 3.4vw, 58px);
    line-height: 1.65;
  }
}
@media (min-width:1200px){
  .label_select_head{
    gap: 60px;
  }
  .label_select_item{
    gap: 70px;
  }
}

/* ---------- 07 / LET'S TALK ---------- */
.label_consult_grid{
  display: grid;
  gap: 35px;
  margin-top: 38px;
}
.label_consult_ttl{
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--main-color);
}
.label_consult_img{
  margin-top: 28px;
  background: var(--beige);
}
.label_consult_img.img_fit:before{
  padding-top: 66.7%;
}
.label_consult_item{
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  gap: 14px;
  align-items: start;
  padding: 24px 0;
  border-top: 1px solid rgba(35,24,21,.19);
}
.label_consult_num{
  padding-top: 9px;
}
.label_consult_num img{
  display: block;
  width: auto;
  height: 22px;
}
.label_consult_name{
  margin-bottom: 14px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
.label_consult_remote{
  padding-top: 24px;
  border-top: 1px solid rgba(35,24,21,.19);
  font-size: 13px;
  line-height: 2;
}
@media (min-width:768px){
  .label_consult_ttl{
    font-size: clamp(30px, 2.8vw, 48px);
  }
  .label_consult_img{
    margin-top: 40px;
  }
  .label_consult_img.img_fit:before{
    padding-top: 75%;
  }
  .label_consult_item{
    grid-template-columns: 40px minmax(0,1fr);
    gap: 22px;
    padding: 27px 0;
  }
  .label_consult_num{
    padding-top: 10px;
  }
  .label_consult_num img{
    height: 25px;
  }
  .label_consult_remote{
    font-size: 14px;
  }
}
@media (min-width:1024px){
  .label_consult_grid{
    grid-template-columns: minmax(0,1fr) minmax(0,1.15fr);
    gap: 40px;
    margin-top: 65px;
  }
}
@media (min-width:1200px){
  .label_consult_grid{
    gap: 75px;
  }
  .label_consult_name{
    font-size: 22px;
  }
}

/* ---------- 08 / PRODUCT DETAILS（共通 .lp_detail の調整） ---------- */
.label_detail_list .lp_detail_img.img_fit:before{
  padding-top: 56.25%; /* 16:9 */
}
.label_detail_list .lp_detail_item:nth-child(2) .lp_detail_img img{
  object-position: center 35%;
}
@media (min-width:768px){
  .label_detail_list .lp_detail_body{
    padding: 32px 36px 36px;
  }
  .label_detail_list .lp_detail_name{
    font-size: 30px;
  }
}
@media (min-width:1024px){
  .label_detail .lp_head{
    grid-template-columns: 1fr 1fr;
    gap: 75px;
  }
  .label_detail .lp_head_ttl{
    font-size: clamp(34px, 3.2vw, 54px);
    line-height: 1.7;
  }
}
@media (min-width:1200px){
  .label_detail_list{
    gap: 45px;
  }
}

/* ---------- フィルム印刷 ---------- */
/* ---------- ページ上部（ページラベル＋キャッチ＋写真。画面幅基準・最大1800px） ---------- */
.film_hero{
  position: relative;
  z-index: 1;
  background: #f7f3ea;
}
.film_hero_inner{
  max-width: 1800px;
  margin: 0 auto;
  padding: 30px 6% 0;
}
.film_hero_label{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(35,24,21,.19);
}
.film_hero_en{
  font-size: 11px;
  line-height: 1;
  letter-spacing: .12em;
  color: var(--main-dark);
}
.film_hero_ttl{
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .06em;
}
.film_hero_grid{
  display: grid;
  gap: 20px;
  padding: 35px 0;
}
.film_hero_kicker{
  font-size: 9px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .12em;
}
.film_hero_catch{
  margin: 22px 0;
  font-family: var(--font-serif);
  font-size: clamp(30px, 8vw, 52px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .02em;
}
.film_hero_catch em{
  color: var(--main-color);
}
.film_hero_sub{
  margin-bottom: 22px;
  font-size: 14px;
  line-height: 1.875;
}
.film_hero_lead > *{
  font-size: 14px;
}
.film_hero_lead > * + *{
  margin-top: 18px;
}
.film_hero_img.img_fit:before{
  padding-top: 66.67%; /* 3:2 */
}
.film_hero_bottom{
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid rgba(35,24,21,.15);
}
.film_hero_bottom_txt,
.film_hero_scroll_txt{
  font-size: 8px;
  line-height: 1;
  letter-spacing: .12em;
}
.film_hero_scroll{
  flex-shrink: 0;
  color: var(--ink);
  text-decoration: none;
}
.film_hero_scroll_txt{
  white-space: nowrap;
}
@media (min-width:768px){
  .film_hero_inner{
    padding-top: 40px;
  }
  .film_hero_label{
    flex-direction: row;
    align-items: center;
    gap: 30px;
  }
  .film_hero_ttl{
    font-size: clamp(22px, 2vw, 34px);
  }
  .film_hero_kicker{
    font-size: 10px;
    line-height: 1;
  }
  .film_hero_catch{
    margin: 30px 0;
    font-size: 40px;
  }
  .film_hero_sub{
    margin-bottom: 28px;
    line-height: 2;
  }
  .film_hero_lead{
    max-width: 550px;
    padding-bottom: 18px;
  }
  .film_hero_lead > *{
    line-height: 2.2;
  }
  .film_hero_bottom_txt,
  .film_hero_scroll_txt{
    font-size: 9px;
  }
}
@media (min-width:1024px){
  .film_hero_grid{
    grid-template-columns: minmax(0,1fr) minmax(0,1.2fr);
    gap: 40px;
    align-items: center;
    padding: 58px 0 60px;
  }
  .film_hero_catch{
    font-size: clamp(38px, 3.8vw, 68px);
  }
  .film_hero_img{
    margin-top: 20px;
  }
}
@media (min-width:1200px){
  .film_hero_sub{
    font-size: 16px;
  }
}

/* ---------- 01 / QUESTION ---------- */
.film_question_head{
  margin: 38px 0 30px;
}
.film_question_ttl{
  margin-bottom: 20px;
  font-family: var(--font-serif);
  font-size: 29px;
  font-weight: 500;
  line-height: 1.75;
}
.film_qcard_list .lp_qcard_icon{
  height: 135px;
  margin-bottom: 20px;
}
.film_qcard_list .lp_qcard_icon img{
  width: auto;
  height: 130px;
}
@media (min-width:768px){
  .film_question{
    padding-bottom: 105px;
  }
  .film_question_head{
    margin: 60px 0 45px;
  }
  .film_question_ttl{
    margin-bottom: 30px;
    font-size: clamp(30px, 3.1vw, 52px);
  }
  .film_qcard_list .lp_qcard_icon{
    height: 165px;
    margin-bottom: 28px;
  }
  .film_qcard_list .lp_qcard_icon img{
    width: 240px;
    height: auto;
  }
  .film_question .lp_end{
    margin-top: 50px;
    line-height: 1.95;
  }
}

/* ---------- 共通：英字ラベル＋見出し＋本文（スパウト袋・仕様・シュリンク・クラフト） ---------- */
.film_point_name{
  margin: 15px 0;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.8;
}
.film_spout_list .film_point{
  padding: 28px 0;
  border-top: 1px solid rgba(35,24,21,.21);
}
.film_point_col2{
  display: grid;
  gap: 30px;
}
.film_point_col2 .film_point{
  padding-top: 26px;
  border-top: 1px solid rgba(35,24,21,.19);
}
@media (min-width:768px){
  .film_point_name{
    margin: 20px 0;
    font-size: 26px;
  }
  .film_point_col2{
    grid-template-columns: 1fr 1fr;
    gap: 35px;
  }
}
@media (min-width:1200px){
  .film_point_name{
    font-size: 29px;
  }
  .film_spout_list .film_point_name{
    font-size: 27px;
  }
  .film_point_col2{
    gap: 65px;
  }
}

/* ---------- 02 / ABOUT SPOUT POUCH ---------- */
.film_spout_grid{
  display: grid;
  gap: 30px;
}
.film_spout_diagram{
  padding: 20px 10px;
  background: #f7f3ea;
}
.film_spout_img img{
  display: block;
  width: 100%;
  height: auto;
}
.film_spout_cap{
  font-size: 10px;
  line-height: 1.8;
  text-align: center;
  color: #74675d;
}
@media (min-width:768px){
  .film_spout_diagram{
    padding: 30px 20px 22px;
  }
}
@media (min-width:1024px){
  .film_spout_head .lp_head_ttl{
    font-size: clamp(30px, 2.8vw, 48px);
    line-height: 1.8;
  }
  .film_spout_grid{
    grid-template-columns: minmax(0,1.05fr) minmax(0,1fr);
    gap: 35px;
    align-items: center;
  }
}
@media (min-width:1200px){
  .film_spout_grid{
    gap: 65px;
  }
}

/* ---------- 03 / SPOUT POUCH APPLICATIONS ---------- */
.film_target_list{
  display: grid;
  gap: 24px;
}
.film_target_item{
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 25px;
  background: #fff;
}
.film_target_top{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
}
.film_target_num{
  padding-top: 3px;
}
.film_target_num img{
  display: block;
  width: auto;
  height: 29px;
}
.film_target_icon img{
  display: block;
  width: 110px;
  height: auto;
}
.film_target_cate{
  padding-top: 20px;
  border-top: 1px solid rgba(35,24,21,.15);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .02em;
}
.film_target_name{
  margin: 20px 0;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.8;
}
.film_target_txt{
  margin-bottom: 25px;
}
.film_target_ex{
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(35,24,21,.125);
  font-size: 11px;
  line-height: 1.9;
  color: #94500e;
}
@media (min-width:768px){
  .film_target_list{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
  /* 奇数個のとき、最後の1枚は横いっぱい */
  .film_target_item:last-child:nth-child(odd){
    grid-column: 1 / -1;
  }
  .film_target_item{
    padding: 28px 30px 30px;
  }
  .film_target_icon img{
    width: 125px;
  }
  .film_target_txt > *{
    font-size: 14px;
    line-height: 2.2;
  }
}
@media (min-width:1024px){
  .film_target_head .lp_head_ttl{
    font-size: clamp(31px, 3vw, 52px);
    line-height: 1.8;
  }
  /* 1行目は3枚、2行目は2枚 */
  .film_target_list{
    grid-template-columns: repeat(6, minmax(0,1fr));
    gap: 28px;
  }
  .film_target_item,
  .film_target_item:last-child:nth-child(odd){
    grid-column: span 2;
  }
  .film_target_list .film_target_item:nth-child(n+4){
    grid-column: span 3;
  }
}
/* タブレットのみ21px */
@media (min-width:768px){
  .film_target_name{
    font-size: 21px;
  }
}
@media (min-width:1024px){
  .film_target_name{
    font-size: 23px;
  }
}
@media (min-width:1200px){
  .film_target_name{
    font-size: 25px;
  }
}

/* ---------- 04 / SPOUT POUCH VALUE ---------- */
.film_merit_item{
  display: grid;
  grid-template-columns: 75px minmax(0,1fr);
  gap: 20px;
  padding: 28px 0;
  border-top: 1px solid rgba(35,24,21,.21);
}
.film_merit_num img{
  display: block;
  width: auto;
  height: 26px;
}
.film_merit_icon{
  margin-top: 18px;
}
.film_merit_icon img{
  display: block;
  width: 75px;
  height: auto;
}
.film_merit_name{
  margin-bottom: 18px;
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.8;
}
@media (min-width:768px){
  .film_merit_list{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 35px;
  }
  .film_merit_item{
    grid-template-columns: 80px minmax(0,1fr);
    padding: 32px 0 38px;
  }
  .film_merit_num img{
    height: 31px;
  }
  .film_merit_icon img{
    width: 80px;
  }
  .film_merit_txt > *{
    line-height: 2.2;
  }
}
@media (min-width:1200px){
  .film_merit_list{
    column-gap: 65px;
  }
  .film_merit_item{
    grid-template-columns: 125px minmax(0,1fr);
    gap: 25px;
  }
  .film_merit_icon img{
    width: 125px;
  }
  .film_merit_name{
    font-size: 24px;
  }
}

/* ---------- 05 / FIND YOUR SPECIFICATION ---------- */
.film_spec_item{
  display: grid;
  gap: 26px;
  align-items: center;
  padding: 28px 0;
  border-top: 1px solid rgba(35,24,21,.19);
}
.film_spec_img{
  background: #e9e1d4;
}
.film_spec_img.img_fit:before{
  padding-top: 66.67%; /* 3:2 */
}
.film_spec_body .film_point_name{
  margin: 15px 0;
}
.film_spec_note{
  margin-top: 28px;
}
@media (min-width:768px){
  .film_spec_item{
    grid-template-columns: minmax(0,1fr) minmax(0,1.2fr);
    gap: 35px;
    padding: 32px 0;
  }
  .film_spec_body .film_point_name{
    margin: 17px 0 20px;
  }
}
@media (min-width:1200px){
  .film_spec_item{
    gap: 65px;
  }
}

/* ---------- 06 / WAYS TO CREATE ---------- */
.film_prod_list{
  display: grid;
  gap: 25px;
}
.film_prod_item{
  display: flex;
  flex-direction: column;
  padding: 28px 25px;
  border-top: 3px solid var(--main-color);
  background: var(--beige);
}
.film_prod_label{
  display: flex;
  align-items: center;
  gap: 25px;
}
.film_prod_num img{
  display: block;
  width: auto;
  height: 38px;
}
.film_prod_en{
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: .13em;
  color: var(--main-dark);
}
.film_prod_name{
  margin: 28px 0 22px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.8;
}
.film_prod_img{
  margin-bottom: 23px;
  background: #e9e1d4;
}
.film_prod_img.img_fit:before{
  padding-top: 66.67%; /* 3:2 */
}
.film_prod_txt{
  margin-bottom: 30px;
}
.film_prod_focus{
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid rgba(35,24,21,.19);
}
.film_prod_focus_ttl{
  font-family: var(--font-serif);
  font-size: 20px;
  line-height: 1.8;
  color: var(--main-dark);
}
.film_prod_focus_txt{
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.875;
}
.film_prod_fill{
  display: grid;
  gap: 24px;
  margin-top: 35px;
  padding-top: 28px;
  border-top: 1px solid rgba(35,24,21,.21);
}
.film_prod_fill_en{
  letter-spacing: .14em;
}
.film_prod_fill_ttl{
  margin-top: 15px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.8;
}
@media (min-width:768px){
  .film_prod_list{
    grid-template-columns: 1fr 1fr;
  }
  .film_prod_item{
    padding: 30px;
  }
  .film_prod_num img{
    height: 43px;
  }
  .film_prod_img{
    margin-bottom: 27px;
  }
  .film_prod_txt > *{
    line-height: 2.2;
  }
  .film_prod_focus_ttl{
    font-size: 21px;
  }
  .film_prod_focus_txt{
    line-height: 2.3;
  }
  .film_prod_fill{
    margin-top: 55px;
    padding-top: 32px;
  }
}
@media (min-width:1024px){
  .film_prod_fill{
    grid-template-columns: minmax(0,1fr) minmax(0,1.25fr);
    gap: 35px;
    align-items: last baseline;
  }
}
@media (min-width:1200px){
  .film_prod_list{
    gap: 35px;
  }
  .film_prod_item{
    padding: 35px 38px 38px;
  }
  .film_prod_name,
  .film_prod_fill_ttl{
    font-size: 28px;
  }
  .film_prod_fill{
    gap: 65px;
  }
}

/* ---------- 07 / SHRINK LABEL・08 / KRAFT BAG ---------- */
@media (min-width:768px){
  .film_shrink .lp_photo,
  .film_kraft .lp_photo{
    margin-bottom: 50px;
  }
}
.film_kraft_note{
  margin-top: 30px;
  padding: 20px;
  border-left: 2px solid var(--main-color);
  background: var(--beige);
}
.film_kraft_note_ttl{
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
}
.film_kraft_note_txt{
  margin-top: 12px;
}
.film_kraft_note_txt > *{
  font-size: 12px;
  line-height: 2.1;
}
@media (min-width:768px){
  .film_kraft_note{
    margin-top: 40px;
    padding: 23px 27px;
  }
  .film_kraft_note_txt > *{
    font-size: 13px;
  }
}

/* ---------- 10 / PRODUCT DETAILS（共通 .lp_detail の調整） ---------- */
.film_detail_list .lp_detail_img img{
  object-fit: contain;
}
.film_detail_list .lp_detail_name{
  margin: 17px 0 20px;
  line-height: 1.7;
}
.film_detail_list .lp_detail_txt{
  margin-bottom: 30px;
}
.film_detail_list .lp_detail_link{
  padding-top: 22px;
}
@media (min-width:768px){
  .film_detail_list .lp_detail_body{
    padding: 28px;
  }
}
@media (min-width:1024px){
  .film_detail_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  .film_detail_list .lp_detail_body{
    padding: 23px;
  }
  .film_detail_list .lp_detail_name{
    font-size: 23px;
  }
}
@media (min-width:1200px){
  .film_detail_list .lp_detail_body{
    padding: 28px;
  }
  .film_detail_list .lp_detail_name{
    font-size: 27px;
  }
}

/* ---------- パッケージ印刷・制作の流れ 共通（pf_） ---------- */
/* ページ上部のヒーロー（ページ名＋コピー＋写真）／セクションの日本語タイトル／見出し＋リード文 */

/* ---------- ヒーロー（画面幅基準） ---------- */
.pf_hero{
  position: relative;
  z-index: 1;
  background: #f7f3ea;
}
.pf_hero_inner{
  max-width: 1800px;
  margin: 0 auto;
  padding: 30px 6% 0;
}
.pf_hero_label{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(35,24,21,.19);
}
.pf_hero_label_en{
  font-size: 11px;
  line-height: 1;
  letter-spacing: .12em;
  color: var(--main-dark);
}
.pf_hero_label_ttl{
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .06em;
}
.pf_hero_grid{
  display: grid;
  gap: 25px;
  padding: 35px 0;
}
.pf_hero_kicker{
  font-size: 9px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .13em;
}
.pf_hero_ttl{
  margin: 22px 0;
  font-family: var(--font-serif);
  font-size: clamp(30px, 8vw, 52px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .02em;
}
.pf_hero_ttl em{
  color: var(--main-color);
}
.pf_hero_sub{
  margin-bottom: 28px;
  font-size: 14px;
  line-height: 2;
}
.pf_hero_lead > *{
  font-size: 14px;
  line-height: 1.875;
}
.pf_hero_lead > * + *{
  margin-top: 18px;
}
.pf_hero_img.img_fit:before{
  padding-top: 66.67%;
}
.pf_hero_bottom{
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid rgba(35,24,21,.15);
}
.pf_hero_bottom_txt{
  font-size: 8px;
  line-height: 1.4;
  letter-spacing: .12em;
}
.pf_hero_bottom_txt:last-child{
  white-space: nowrap;
}
@media (min-width:768px){
  .pf_hero_inner{
    padding-top: 40px;
  }
  .pf_hero_label{
    flex-direction: row;
    align-items: center;
    gap: 30px;
  }
  .pf_hero_label_ttl{
    font-size: clamp(22px, 2vw, 34px);
  }
  .pf_hero_grid{
    grid-template-columns: 1fr 1.2fr;
    align-items: center;
    padding: 58px 0 60px;
  }
  .pf_hero_kicker{
    font-size: 10px;
  }
  .pf_hero_ttl{
    margin: 30px 0;
    font-size: clamp(30px, 3.8vw, 68px);
  }
  .pf_hero_lead{
    max-width: 550px;
    padding-bottom: 18px;
  }
  .pf_hero_lead > *{
    line-height: 2.2;
  }
  .pf_hero_bottom_txt{
    font-size: 9px;
    line-height: 1;
  }
}
@media (min-width:1200px){
  .pf_hero_grid{
    gap: 40px;
  }
  .pf_hero_sub{
    font-size: 16px;
  }
}

/* ---------- セクションの日本語タイトル（罫線の上） ---------- */
.pf_sec_ttl{
  margin-bottom: 10px;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: .06em;
}
@media (min-width:768px){
  .pf_sec_ttl{
    font-size: 28px;
    line-height: 1.2;
    margin-bottom: 19px;
  }
}

/* ---------- セクションラベル（.c_label の上書き：罫線は文字色） ---------- */
.c_label.pf_label{
  padding-top: 20px;
  border-top: 1px solid currentColor;
}
.pf_label .c_label_l,
.pf_label .c_label_r{
  font-size: 10px;
  letter-spacing: .14em;
}

/* ---------- 見出し＋リード文（左右2列・最終行をそろえる） ---------- */
.pf_head{
  display: grid;
  gap: 25px;
  margin: 38px 0 35px;
}
.pf_head_ttl{
  font-family: var(--font-serif);
  font-size: clamp(27px, 6.5vw, 38px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: .01em;
}
.pf_head_ttl em{
  color: var(--main-color);
}
.pf_head_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
@media (min-width:768px){
  .pf_head{
    grid-template-columns: 1.1fr 1fr;
    gap: 35px;
    align-items: last baseline;
    margin: 60px 0 55px;
  }
  .pf_head > *{
    align-self: last baseline;
  }
  .pf_head_ttl{
    font-size: clamp(30px, 3.1vw, 52px);
  }
  .pf_head_txt > *{
    font-size: 16px;
    line-height: 2.3;
  }
}
@media (min-width:1200px){
  .pf_head{
    gap: 65px;
    margin-top: 45px;
  }
}

/* ---------- パッケージ印刷 ---------- */
/* ヒーロー・セクションタイトル・見出しは pf_common.css（pf_） */

/* ---------- セクション共通 ---------- */
.package_question,
.package_role,
.package_industry,
.package_reason,
.package_consult,
.package_detail{
  padding: 65px 0 75px;
}
.package_shape,
.package_finish,
.package_check,
.package_after{
  padding: 60px 0 65px;
}
.package_question{
  background: var(--ink);
  color: #fff;
}
.package_role,
.package_shape,
.package_check,
.package_consult{
  background: #fff;
}
.package_industry,
.package_finish,
.package_after,
.package_detail{
  background: var(--beige);
}
.package_reason{
  background: var(--main-color);
  color: #fff;
}
/* 見出しの余白が小さいセクション（04〜07） */
.package_head_s{
  margin: 35px 0 28px;
}
/* 本文のサイズ（カード内など） */
.package_question_txt > *,
.package_role_txt > *,
.package_industry_txt > *,
.package_reason_txt > *,
.package_consult_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.package_card_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
/* 注釈 */
.package_note{
  margin-top: 35px;
  padding-top: 22px;
  border-top: 1px solid rgba(35,24,21,.19);
}
.package_note > *{
  font-size: 12px;
  line-height: 2;
}
.package_note_s{
  margin-top: 30px;
  padding-top: 18px;
}
@media (min-width:768px){
  .package_question,
  .package_role,
  .package_industry{
    padding: 95px 0 105px;
  }
  .package_reason,
  .package_consult,
  .package_detail{
    padding: 95px 0 110px;
  }
  .package_shape,
  .package_finish,
  .package_check,
  .package_after{
    padding: 75px 0 80px;
  }
  .package_head_s{
    margin: 45px 0 35px;
  }
  .package_question_txt > *,
  .package_role_txt > *,
  .package_industry_txt > *,
  .package_reason_txt > *,
  .package_consult_txt > *{
    font-size: 15px;
    line-height: 2.2;
  }
  .package_card_txt > *{
    line-height: 2.1;
  }
  .package_note{
    margin-top: 45px;
  }
  .package_note_s{
    margin-top: 30px;
  }
}

/* ---------- 01 / QUESTION ---------- */
.package_question_head{
  margin: 38px 0 30px;
}
.package_question_ttl{
  margin-bottom: 25px;
  font-size: clamp(25px, 7vw, 29px);
}
.package_question_list{
  display: grid;
  gap: 30px;
}
.package_question_item{
  display: flex;
  flex-direction: column;
  padding-top: 25px;
  border-top: 1px solid rgba(255,255,255,.31);
}
.package_question_art{
  display: flex;
  justify-content: center;
  height: 135px;
  margin-bottom: 20px;
}
.package_question_art img{
  display: block;
  width: auto;
  max-width: 240px;
  height: 100%;
}
.package_question_body{
  flex-grow: 1;
  padding: 20px;
  background: #392e27;
}
.package_question_name{
  margin-bottom: 15px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
.package_question_end{
  margin-top: 35px;
  font-family: var(--font-serif);
  font-size: 16px;
  line-height: 1.875;
  color: var(--main-color);
}
@media (min-width:768px){
  .package_question_head{
    margin: 60px 0 45px;
  }
  .package_question_ttl{
    margin-bottom: 30px;
    font-size: clamp(30px, 3.1vw, 52px);
  }
  .package_question_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 25px;
  }
  .package_question_art{
    height: 165px;
    margin-bottom: 28px;
  }
  .package_question_body{
    padding: 26px 22px;
  }
  .package_question_name{
    margin-bottom: 20px;
  }
  .package_question_end{
    margin-top: 50px;
    font-size: 27px;
    line-height: 1.95;
    text-align: right;
  }
}
@media (min-width:1200px){
  .package_question_list{
    gap: 36px;
  }
  .package_question_name{
    font-size: 22px;
  }
}

/* ---------- 02 / THE ROLE OF PACKAGING ---------- */
.package_role_list{
  display: grid;
  gap: 35px;
}
.package_role_item{
  padding-top: 25px;
  border-top: 1px solid rgba(35,24,21,.21);
}
.package_role_img.img_fit:before{
  padding-top: 66.67%;
}
.package_role_num{
  margin: 35px 0 3px;
}
.package_role_num img{
  display: block;
  width: auto;
  height: 33px;
}
.package_role_name{
  margin-bottom: 10px;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.85;
}
@media (min-width:768px){
  .package_role_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 24px;
  }
  .package_role_num{
    margin: 42px 0 4px;
  }
  .package_role_num img{
    height: 46px;
  }
  .package_role_name{
    font-size: 19px;
  }
}
@media (min-width:1200px){
  .package_role_list{
    gap: 36px;
  }
  .package_role_name{
    font-size: clamp(20px, 1.65vw, 25px);
  }
}

/* ---------- 03 / FOR YOUR PRODUCTS ---------- */
.package_industry_list{
  display: grid;
  gap: 38px;
}
.package_industry_img.img_fit:before{
  padding-top: 66.67%;
}
.package_industry_body{
  padding-top: 20px;
}
.package_industry_cate{
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .07em;
  color: var(--main-dark);
}
.package_industry_name{
  margin-bottom: 20px;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.85;
}
@media (min-width:768px){
  .package_industry_list{
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 45px 28px;
  }
  .package_industry_body{
    padding-top: 25px;
  }
  .package_industry_name{
    font-size: clamp(21px, 2vw, 29px);
  }
}
@media (min-width:1200px){
  .package_industry_list{
    gap: 55px 40px;
  }
}

/* ---------- 04〜07 写真カード（箱のかたち・素材・確認・その先まで） ---------- */
.package_card_list{
  display: grid;
  gap: 30px;
}
.package_card_img{
  margin-bottom: 20px;
}
.package_card_img.img_fit:before{
  padding-top: 66.67%;
}
.package_card_cate{
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .03em;
  color: var(--main-dark);
}
.package_card_num{
  margin: 11px 0 4px;
}
.package_card_num img{
  display: block;
  width: auto;
  height: 35px;
}
.package_card_name{
  margin-bottom: 10px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0;
}
.package_after_end{
  margin-top: 30px;
  padding-top: 24px;
  border-top: 1px solid rgba(35,24,21,.19);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: var(--main-dark);
}
@media (min-width:768px){
  .package_card_list_4,
  .package_card_list_2{
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 35px 28px;
  }
  .package_card_list_3{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 35px 24px;
  }
  .package_card_img{
    margin-bottom: 24px;
  }
  .package_card_cate{
    font-size: 16px;
  }
  .package_after_end{
    margin-top: 35px;
    padding-top: 28px;
    font-size: 26px;
    line-height: 1.95;
    text-align: right;
  }
}
@media (min-width:1200px){
  .package_card_list_4{
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 26px;
  }
  .package_card_list_3{
    gap: 26px;
  }
  .package_card_list_2{
    gap: 36px;
  }
}

/* ---------- 08 / WHY L PLUS? ---------- */
.package_reason_head{
  gap: 28px;
  margin: 40px 0;
}
.package_reason_ttl{
  font-size: clamp(28px, 8.5vw, 33px);
  line-height: 1.65;
}
.package_reason_list{
  display: grid;
  gap: 30px;
}
.package_reason_item{
  padding-top: 25px;
  border-top: 1px solid rgba(255,255,255,.56);
}
.package_reason_en{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .14em;
}
.package_reason_name{
  margin: 15px 0 10px;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.85;
}
.package_reason_end{
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.56);
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.875;
}
@media (min-width:768px){
  .package_reason_head{
    grid-template-columns: 1.15fr 1fr;
    gap: 40px;
    margin: 65px 0;
  }
  .package_reason_ttl{
    font-size: clamp(36px, 3.9vw, 66px);
  }
  .package_reason_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 28px;
  }
  .package_reason_name{
    margin-top: 18px;
  }
  .package_reason_end{
    margin-top: 65px;
    padding-top: 38px;
    font-size: 26px;
    line-height: 1.95;
  }
}
@media (min-width:1200px){
  .package_reason_head{
    gap: 80px;
    margin-top: 49px;
  }
  .package_reason_list{
    gap: 45px;
  }
  .package_reason_name{
    font-size: 25px;
  }
}

/* ---------- 09 / LET’S TALK ---------- */
.package_consult_grid{
  display: grid;
  gap: 35px;
  margin-top: 38px;
}
.package_consult_ttl{
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--main-color);
}
.package_consult_img{
  margin-top: 28px;
  background: var(--beige);
}
.package_consult_img.img_fit:before{
  padding-top: 66.67%;
}
.package_consult_item{
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  gap: 14px;
  padding: 24px 0;
  border-top: 1px solid rgba(35,24,21,.19);
}
.package_consult_num{
  padding-top: 13px;
}
.package_consult_num img{
  display: block;
  width: auto;
  height: 22px;
}
.package_consult_name{
  margin-bottom: 10px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
.package_consult_remote{
  padding-top: 24px;
  border-top: 1px solid rgba(35,24,21,.19);
  font-size: 14px;
  line-height: 2;
}
@media (min-width:768px){
  .package_consult_grid{
    grid-template-columns: 1fr 1.15fr;
    gap: 40px;
    margin-top: 65px;
  }
  .package_consult_ttl{
    font-size: clamp(30px, 2.8vw, 48px);
  }
  .package_consult_img{
    margin-top: 40px;
  }
  .package_consult_item{
    grid-template-columns: 40px minmax(0,1fr);
    gap: 22px;
    padding: 27px 0;
  }
  .package_consult_num{
    padding-top: 15px;
  }
  .package_consult_num img{
    height: 25px;
  }
}
@media (min-width:1200px){
  .package_consult_grid{
    gap: 75px;
  }
  .package_consult_name{
    font-size: 22px;
  }
}

/* ---------- 10 / PRODUCT DETAILS ---------- */
.package_detail_head{
  gap: 28px;
}
.package_detail_ttl{
  font-size: 30px;
  line-height: 1.7;
  color: var(--main-color);
}
.package_detail_card{
  display: grid;
  background: #fff;
}
.package_detail_img.img_fit:before{
  padding-top: 66.67%;
}
.package_detail_body{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 25px;
}
.package_detail_en{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .14em;
  color: #a94c00;
}
.package_detail_name{
  margin: 15px 0 18px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.5;
}
.package_detail_txt{
  margin-bottom: 28px;
}
.package_detail_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.package_detail_link{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 23px;
  border-top: 1px solid rgba(35,24,21,.27);
  color: var(--ink);
  text-decoration: none;
}
.package_detail_link:after{
  content: "↗";
  font-size: 25px;
  line-height: 1;
  color: var(--main-color);
}
.package_detail_link:hover{
  color: #a94c00;
  text-decoration: none;
}
.package_detail_link_txt{
  font-size: 14px;
  line-height: 1.6;
}
@media (min-width:768px){
  .package_detail_head{
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
  .package_detail_ttl{
    font-size: clamp(34px, 3.2vw, 54px);
  }
  .package_detail_card{
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  }
  .package_detail_body{
    padding: 36px 42px;
  }
  .package_detail_name{
    font-size: 30px;
  }
  .package_detail_txt > *{
    font-size: 15px;
    line-height: 2.3;
  }
}
@media (min-width:1200px){
  .package_detail_head{
    gap: 75px;
  }
}

/* パッケージ印刷：見出しの余白が小さいセクションの上余白（PC。デザインに合わせて上に詰める） */
@media (min-width:1200px){
  .package_head_s{
    margin-top: 30px;
  }
}

/* ---------- 制作の流れ ---------- */
/* ヒーロー・セクションタイトル・見出しは pf_common.css（pf_） */

/* ---------- 各ステップ（01〜06） ---------- */
/* 背景：02以降は白とベージュを交互（.pg_flow の偶数番目が白） */
.flow_step{
  padding: 60px 0 65px;
  background: var(--beige);
}
.flow_step:nth-child(even){
  background: #fff;
}
.flow_step.flow_inquiry{
  background: var(--main-color);
  color: #fff;
}
.flow_step_head{
  margin: 35px 0 28px;
}
.flow_step_num{
  margin-bottom: 3px;
  padding-top: 11px;
}
.flow_step_num img{
  display: block;
  width: auto;
  height: 36px;
}
.flow_step_ttl{
  font-size: clamp(25px, 6vw, 36px);
  line-height: 1.8;
}
.flow_step_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.flow_step_txt > * + *{
  margin-top: 0;
}
@media (min-width:768px){
  .flow_step{
    padding: 75px 0 80px;
  }
  .flow_step_head{
    margin: 45px 0 35px;
  }
  .flow_step_num{
    margin-bottom: 4px;
    padding-top: 14px;
  }
  .flow_step_num img{
    height: 46px;
  }
  .flow_step_ttl{
    font-size: clamp(28px, 2.7vw, 45px);
  }
  .flow_step_txt > *{
    font-size: 15px;
    line-height: 2.2;
  }
}

/* ---------- 01 お問い合わせ：分かる範囲で、お聞かせください ---------- */
.flow_prep{
  padding: 22px;
  background: #fff2df;
  color: var(--ink);
}
.flow_prep_ttl{
  margin-bottom: 20px;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.8;
}
.flow_prep_list{
  display: grid;
  gap: 22px;
}
.flow_prep_item{
  padding-top: 18px;
  border-top: 1px solid rgba(35,24,21,.21);
}
.flow_prep_name{
  margin-bottom: 10px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
.flow_prep_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
.flow_prep_note{
  margin-top: 25px;
  font-size: 13px;
  line-height: 1.875;
  color: #76400e;
}
/* 相談・見積もりへのリンク */
.flow_inquiry_btn{
  display: flex;
  justify-content: flex-end;
  margin-top: 30px;
}
.flow_inquiry_link{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  width: 100%;
  padding: 15px 0;
  border-bottom: 1px solid rgba(255,255,255,.5);
  color: #fff;
  text-decoration: none;
}
.flow_inquiry_link:after{
  content: "↗";
  font-size: 25px;
  line-height: 1;
}
.flow_inquiry_link:hover{
  color: var(--ink);
  text-decoration: none;
}
.flow_inquiry_link_txt{
  font-size: 14px;
  line-height: 1.6;
}
@media (min-width:768px){
  .flow_prep{
    padding: 28px;
  }
  .flow_prep_ttl{
    margin-bottom: 25px;
    font-size: 23px;
  }
  .flow_prep_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  .flow_prep_name{
    font-size: 18px;
  }
  .flow_prep_txt > *{
    line-height: 2.1;
  }
  .flow_prep_note{
    line-height: 2;
  }
  .flow_inquiry_link{
    max-width: 340px;
  }
}
@media (min-width:1200px){
  .flow_prep_list{
    gap: 30px;
  }
  .flow_prep_name{
    font-size: 20px;
  }
}

/* ---------- 02〜06 確認する項目（3列） ---------- */
.flow_topic_list{
  display: grid;
  gap: 22px;
}
.flow_topic_item{
  min-width: 0;
  padding-top: 20px;
  border-top: 1px solid rgba(35,24,21,.21);
}
.flow_topic_en{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .14em;
  color: var(--main-dark);
}
.flow_topic_name{
  margin: 17px 0 10px;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
.flow_topic_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
/* 注釈 */
.flow_note{
  margin-top: 25px;
  padding-top: 20px;
  border-top: 1px solid rgba(35,24,21,.19);
}
.flow_note > *{
  font-size: 13px;
  line-height: 2;
}
@media (min-width:768px){
  .flow_topic_list{
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  .flow_topic_name{
    font-size: 18px;
  }
  .flow_topic_txt > *{
    line-height: 2.1;
  }
  .flow_note{
    margin-top: 30px;
  }
}
@media (min-width:1200px){
  .flow_topic_list{
    gap: 30px;
  }
  .flow_topic_name{
    font-size: 20px;
  }
}

/* ---------- 納品の、その先も ---------- */
.flow_closing{
  padding: 50px 0 60px;
  background: var(--beige);
}
.c_label.flow_closing_label{
  padding-top: 20px;
  border-top-color: rgba(35,24,21,.21);
}
.flow_closing_label .c_label_l{
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .1em;
}
.flow_closing_label .c_label_r{
  font-size: 10px;
  color: var(--main-dark);
}
.flow_closing_head{
  gap: 24px;
  margin: 30px 0 35px;
}
.flow_closing_ttl{
  font-size: clamp(25px, 6vw, 36px);
  line-height: 1.8;
  color: var(--main-dark);
}
.flow_closing_txt > *{
  font-size: 14px;
  line-height: 1.875;
}
/* スマホ：縦1列。線は左端の縦線、点はその上に置き、文字は右側 */
.flow_path{
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 0;
  padding-left: 12px;
}
.flow_path_item{
  position: relative;
  z-index: 1;
  padding: 0 0 22px 36px;
}
/* 点（文字1行目の中央に合わせる：18px × 行間1.8 ＝ 32.4px の中央） */
.flow_path_item:before{
  content: "";
  position: absolute;
  z-index: 2;
  top: 12px;
  left: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--main-dark);
}
/* 縦線：点の中央から次の項目の点の中央まで（途切れないように） */
.flow_path_item:after{
  content: "";
  position: absolute;
  z-index: 1;
  top: 16px;
  bottom: -16px;
  left: 0;
  width: 1px;
  background: rgba(35,24,21,.25);
}
.flow_path_item:last-child:after{
  display: none;
}
.flow_path_txt{
  padding-right: 10px;
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.8;
}
.flow_path_item:last-child{
  padding-bottom: 0;
  border-top-color: var(--main-color);
}
.flow_path_item:last-child:before{
  background: var(--main-color);
}
.flow_path_item:last-child .flow_path_txt{
  font-weight: 500;
  color: var(--main-dark);
}
@media (min-width:768px){
  .flow_closing{
    padding: 65px 0 75px;
  }
  .flow_closing_label .c_label_l{
    line-height: 1;
  }
  .flow_closing_head{
    grid-template-columns: 1.15fr 1fr;
    gap: 35px;
    margin: 38px 0 45px;
  }
  .flow_closing_ttl{
    font-size: clamp(28px, 3vw, 50px);
  }
  .flow_closing_txt > *{
    font-size: 15px;
    line-height: 2.2;
  }
  .flow_path{
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 0;
    padding-left: 0;
  }
  .flow_path_item,
  .flow_path_item:last-child{
    padding: 18px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(35,24,21,.25);
  }
  .flow_path_item:last-child{
    border-top-color: var(--main-color);
  }
  .flow_path_item:before{
    top: -4px;
    left: 0;
    width: 7px;
    height: 7px;
  }
  .flow_path_item:after{
    display: none;
  }
  .flow_path_txt{
    font-size: 16px;
  }
}
@media (min-width:1200px){
  .flow_closing_head{
    gap: 65px;
  }
  .flow_path_txt{
    font-size: 18px;
  }
}

/* 制作の流れ：デザインとの照合による調整（1920px） */
@media (min-width:768px){
  .flow_step{
    padding-top: 80px;
  }
  .flow_step_head{
    margin: 50px 0 44px;
  }
}

/* ---------- 会社概要 ---------- */
.pg_company{
  background: #fff;
}

/* ---------- ページヘッダー（写真＋COMPANY） ---------- */
.company_hero{
  position: relative;
  z-index: 1;
  height: 300px;
  overflow: hidden;
  color: #fff;
}
.company_hero:after{
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(35,24,21,.44) 0%, rgba(35,24,21,.15) 48%, rgba(35,24,21,0) 80%);
}
.company_hero_img{
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.company_hero_img.img_fit:before{
  display: none;
}
.company_hero_img img{
  object-position: 62% center;
}
.company_hero_inner{
  position: absolute;
  z-index: 2;
  top: 58%;
  left: 0;
  width: 100%;
  transform: translateY(-50%);
  text-shadow: 0 3px 5px rgba(35,24,21,.31);
}
.company_hero_en{
  margin-bottom: 12px;
  font-size: 38px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .01em;
}
.company_hero_ttl{
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .075em;
}
@media (min-width:768px){
  .company_hero{
    height: 400px;
  }
  .company_hero_img img{
    object-position: center;
  }
  .company_hero_en{
    font-size: 60px;
  }
  .company_hero_ttl{
    font-size: 30px;
  }
}
@media (min-width:1200px){
  .company_hero{
    height: 600px;
  }
  .company_hero_en{
    font-size: 82px;
  }
  .company_hero_ttl{
    font-size: 38px;
  }
}

/* ---------- 表（会社基本情報・沿革 共通） ---------- */
.company_table{
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}
.company_table .table_rows_tr{
  display: table-row;
}
.company_table .table_rows_th,
.company_table .table_rows_td{
  display: table-cell;
  padding: 14px 12px;
  border: 1px solid rgba(35,24,21,.19);
  vertical-align: middle;
  text-align: left;
}
.company_table .table_rows_th{
  width: 28%;
  background: #f7f3ea;
}
.company_table .table_rows_td{
  background: #fff;
}
/* 会社基本情報：スマホでは見出し・内容をそれぞれ横幅いっぱいに縦並び */
.company_profile .company_table,
.company_profile .company_table .table_rows_tr,
.company_profile .company_table .table_rows_th,
.company_profile .company_table .table_rows_td{
  display: block;
  width: 100%;
}
.company_profile .company_table .table_rows_tr + .table_rows_tr .table_rows_th,
.company_profile .company_table .table_rows_td{
  border-top: 0;
}
@media (min-width:768px){
  .company_profile .company_table{
    display: table;
  }
  .company_profile .company_table .table_rows_tr{
    display: table-row;
  }
  .company_profile .company_table .table_rows_th,
  .company_profile .company_table .table_rows_td{
    display: table-cell;
    width: auto;
  }
  .company_profile .company_table .table_rows_th{
    width: 25.68%;
  }
  .company_profile .company_table .table_rows_tr + .table_rows_tr .table_rows_th,
  .company_profile .company_table .table_rows_td{
    border-top: 1px solid rgba(35,24,21,.19);
  }
}
.company_table_th,
.company_table_td{
  font-size: 14px;
  font-weight: 400;
  line-height: 1.875;
  letter-spacing: .02em;
  color: var(--ink);
  overflow-wrap: anywhere;
}
@media (min-width:768px){
  .company_table .table_rows_th,
  .company_table .table_rows_td{
    padding: 18px 25px;
  }
  .company_table .table_rows_th{
    width: 25.68%;
  }
  .company_table_th,
  .company_table_td{
    font-size: 16px;
    line-height: 2;
    letter-spacing: .045em;
  }
}
@media (min-width:1200px){
  .company_table .table_rows_th,
  .company_table .table_rows_td{
    padding: 23px;
  }
  .company_table .table_rows_td{
    padding-left: 40px;
  }
}

/* ---------- 会社基本情報＋地図 ---------- */
.company_profile{
  padding: 55px 0;
}
.company_map{
  margin-top: 45px;
  background: #f7f3ea;
}
.company_map iframe{
  display: block;
  width: 100%;
  height: 280px;
  border: 0;
}
@media (min-width:768px){
  .company_profile{
    padding: 75px 0;
  }
  .company_map{
    margin-top: 75px;
  }
  .company_map iframe{
    height: 380px;
  }
}
@media (min-width:1200px){
  .company_profile{
    padding: 100px 0;
  }
}

/* ---------- 沿革 ---------- */
.company_history{
  padding: 0 0 55px;
}
.company_history_ttl{
  margin-bottom: 15px;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .06em;
}
.company_history_label{
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(35,24,21,.31);
}
.company_history_label_txt{
  font-size: 10px;
  line-height: 1;
  letter-spacing: .14em;
}
.company_history_table{
  margin-top: 28px;
}
.company_history_table .company_table_th{
  font-size: 12px;
  letter-spacing: 0;
}
@media (min-width:768px){
  .company_history{
    padding-bottom: 75px;
  }
  .company_history_ttl{
    font-size: 28px;
  }
  .company_history_table{
    margin-top: 35px;
  }
  .company_history_table .company_table_th{
    font-size: 16px;
    letter-spacing: .045em;
  }
}
@media (min-width:1200px){
  .company_history{
    padding-bottom: 100px;
  }
}

/* ---------- お知らせ（一覧・詳細 共通） ---------- */
.pg_news{
  background: #fff;
}
.news_sec{
  padding: 50px 0 75px;
}
@media (min-width:768px){
  .news_sec{
    padding: 75px 0 145px;
  }
}

/* ---------- 見出し（お知らせ一覧／NEWS） ---------- */
.news_heading{
  margin-bottom: 28px;
}
.news_heading_ttl{
  margin-bottom: 5px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .12em;
}
.news_heading_en img{
  display: block;
  width: auto;
  height: 15px;
}
@media (min-width:768px){
  .news_heading{
    margin-bottom: 38px;
  }
  .news_heading_ttl{
    font-size: 28px;
  }
}

/* ---------- 2カラム（記事＋サイドバー） ---------- */
.news_layout{
  display: grid;
  gap: 45px;
}
.news_main{
  min-width: 0;
}
@media (min-width:1024px){
  .news_layout{
    grid-template-columns: minmax(0,3.2fr) minmax(0,1fr);
    gap: 22px;
    align-items: start;
  }
}

/* ---------- 記事一覧 ---------- */
.news_list .webgene-blog{
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 28px 15px;
}
.news_list .webgene-item{
  min-width: 0;
}
.news_item{
  display: block;
  color: var(--ink);
  text-decoration: none;
}
.news_item:hover{
  color: var(--ink);
  text-decoration: none;
}
.news_item_img{
  background: #b6b6b6;
}
.news_item_img.img_fit:before{
  padding-top: 75%;
}
.news_item_img img{
  transition: transform .25s;
}
.news_item:hover .news_item_img img{
  transform: scale(1.035);
}
.news_item_meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 18px;
  margin: 20px 0 8px;
}
.news_item_date,
.news_item_cate{
  font-size: 11px;
  line-height: 1.5;
  color: var(--gray);
}
.news_item_cate{
  color: #a84b00;
  white-space: nowrap;
}
.news_item_ttl{
  font-size: 12px;
  font-weight: 400;
  line-height: 1.875;
  overflow-wrap: anywhere;
  transition: color .3s;
}
.news_item:hover .news_item_ttl{
  color: var(--main-dark);
}
@media (min-width:768px){
  .news_list .webgene-blog{
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 30px 15px;
  }
  .news_item_meta{
    flex-wrap: nowrap;
    margin-bottom: 12px;
  }
  .news_item_ttl{
    font-size: 13px;
    line-height: 2;
  }
}
@media (min-width:1200px){
  .news_list .webgene-blog{
    gap: 35px 18px;
  }
}

/* ---------- ページ送り（CMSが出力） ---------- */
.news_list .webgene-pagination{
  grid-column: 1 / -1;
  margin-top: 12px;
}
.news_list .webgene-pagination ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.news_list .webgene-pagination a{
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 35px;
  height: 35px;
  padding: 0 5px;
  color: var(--ink);
  font-family: Georgia, serif;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  transition: background .3s;
}
.news_list .webgene-pagination a:hover{
  background: #f7f3ea;
  color: var(--ink);
}
.news_list .webgene-pagination .selected a,
.news_list .webgene-pagination .selected a:hover{
  background: var(--main-color);
  color: var(--ink);
}
@media (min-width:768px){
  .news_list .webgene-pagination{
    margin-top: 10px;
  }
}
@media (min-width:1200px){
  .news_list .webgene-pagination{
    margin-top: 5px;
  }
}

/* ---------- サイドバー（カテゴリ・月別アーカイブ） ---------- */
.news_side{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-items: start;
}
.news_side_ttl{
  margin-bottom: 12px;
  padding: 11px 8px;
  background: var(--ink);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}
/* 絞り込みリンク（CMSが出力。「すべて」はJSで先頭に追加） */
.news_side_list .webgene-item a{
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 3px 0;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.7;
  text-decoration: none;
}
.news_side_list .webgene-item a:before{
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  background: currentColor;
}
.news_side_list .webgene-item a:hover,
.news_side_list .webgene-item a.on{
  color: var(--main-dark);
}
@media (min-width:768px){
  .news_side{
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width:1024px){
  .news_side{
    display: block;
  }
  .news_side_box + .news_side_box{
    margin-top: 35px;
  }
}

/* ==========================================================================
   お知らせ詳細
   ========================================================================== */
.news_detail_sec{
  padding: 45px 0 75px;
}
.news_detail_head{
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(35,24,21,.25);
}
.news_detail_meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 18px;
  margin-bottom: 12px;
}
.news_detail_cate,
.news_detail_date{
  font-size: 11px;
  line-height: 1.5;
  color: var(--gray);
}
.news_detail_cate{
  color: #a84b00;
  white-space: nowrap;
}
.news_detail_ttl{
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  letter-spacing: .06em;
  overflow-wrap: anywhere;
}
.news_detail_img{
  width: 100%;
  margin: 24px 0 0;
  background: #b6b6b6;
}
.news_detail_img.img_fit:before{
  padding-top: 66.666%;
}
/* 画像が未登録のときは枠ごと非表示 */
.news_detail_img:not(:has(img)){
  display: none;
}
/* 本文（CMSのリッチテキストが入る） */
.news_detail_body{
  margin-top: 26px;
  overflow-wrap: anywhere;
}
.news_detail_body > *{
  font-size: 12px;
  line-height: 1.875;
  margin: 0 0 22px;
}
.news_detail_body > *:last-child{
  margin-bottom: 0;
}
.news_detail_body img{
  max-width: 100%;
  height: auto;
}
.news_detail_body a{
  color: var(--main-dark);
  text-decoration: underline;
}

/* ---------- PDF資料リンク ---------- */
.post_pdf{
  margin-top: 30px;
}
.post_pdf a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.6;
  text-decoration: none;
}
.post_pdf a:before{
  content: "\f1c1";
  font-family: FontAwesome;
  font-size: 15px;
  line-height: 1;
  color: var(--main-color);
}
.post_pdf a:hover{
  color: var(--main-dark);
  text-decoration: none;
}
/* PDFが未登録のときは非表示 */
.post_pdf:has(a[href=""]), .post_pdf:has(a:not([href])), .post_pdf a[href=""]{
  display: none;
}

/* ---------- 一覧に戻る ---------- */
.news_back{
  margin-top: 35px;
  padding-top: 28px;
  border-top: 1px solid rgba(35,24,21,.5);
}
.news_back_link{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 75%;
  min-height: 50px;
  margin: 0 auto;
  border: 1px solid rgba(35,24,21,.5);
  color: var(--ink);
  text-decoration: none;
  transition: background .2s;
}
.news_back_link:before{
  content: "←";
  font-size: 12px;
  line-height: 1;
}
.news_back_link:hover{
  background: #f7f3ea;
  color: var(--ink);
  text-decoration: none;
}
.news_back_txt{
  font-size: 12px;
  line-height: 1.6;
}
@media (min-width:768px){
  .news_detail_sec{
    padding: 60px 0 135px;
  }
  .news_detail_img{
    width: 72.5%;
    margin-top: 28px;
  }
  .news_detail_ttl{
    line-height: 1.9;
  }
  .news_detail_body > *{
    line-height: 2.3;
  }
  .news_back{
    margin-top: 50px;
    padding-top: 38px;
  }
  .news_back_link{
    width: 51%;
  }
}

/* ---------- 相談・見積り ---------- */
.pg_contact{
  background: #fff;
}
/* このページはフォームがあるため、フッターのCONTACT（黒背景）は表示しない（デザインどおり） */
body:has(.pg_contact) .ftr_contact{
  display: none;
}

/* ---------- フォームのセクション ---------- */
.contact_form{
  padding: 50px 0 65px;
}
.contact_ttl{
  margin-bottom: 15px;
  font-family: var(--font-serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .06em;
}
.contact_label{
  margin-bottom: 28px;
  padding-top: 20px;
  border-top-color: var(--ink);
}
.contact_intro{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 35px;
}
.contact_intro_ttl{
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .06em;
}
.contact_intro_txt > *{
  font-size: 13px;
  line-height: 1.875;
}
.contact_intro_txt > * + *{
  margin-top: 0;
}
.contact_guide{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
}
.contact_guide_badge,
.contact_form .requiredText{
  flex: none;
  margin: 0;
  padding: 6px 10px;
  background: var(--main-color);
  color: #fff;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
}
.contact_form .requiredText.nini{
  background: #ede9e2;
  color: var(--gray);
}
.contact_guide_txt{
  font-size: 12px;
  line-height: 2.3;
}

/* ---------- フォームの表（_common のフォーム規格） ---------- */
.contact_form .formTbl .container{
  max-width: none;
  padding: 0;
}
.contact_form .formRow{
  margin: 0;
  padding: 23px 0;
  border-top: 1px solid rgba(35,24,21,.19);
}
.contact_form .formRow:last-child{
  border-bottom: 1px solid rgba(35,24,21,.19);
}
.contact_form .formTh{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
  margin-bottom: 14px;
  padding: 0;
}
.contact_form .formTd{
  min-width: 0;
  padding: 0;
}
.contact_form .label{
  margin: 0;
}
.contact_form .labelText01{
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}

/* 入力欄 */
.contact_form .input,
.contact_form .select,
.contact_form .textarea{
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px;
  border: 1px solid rgba(35,24,21,.125);
  border-radius: 0;
  background: #f7f3ea;
  color: var(--ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  box-shadow: none;
}
.contact_form .textarea{
  min-height: 190px;
  resize: vertical;
}
.contact_form .input::placeholder,
.contact_form .textarea::placeholder{
  color: #8b837c;
  opacity: 1;
}
.contact_form .input:focus,
.contact_form .select:focus,
.contact_form .textarea:focus{
  outline: 2px solid var(--main-color);
  outline-offset: 3px;
}

/* ラジオボタン・チェックボックス */
.contact_form .radioArea{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 10px;
}
.contact_form .radio,
.contact_form .checkbox{
  position: relative;
  z-index: 1;
  top: 3px;
  width: 18px;
  height: 18px;
  margin: 0 10px 0 0;
  accent-color: var(--main-color);
  cursor: pointer;
}
.contact_form .radioArea .labelText02{
  display: inline;
  font-size: 12px;
  line-height: 1.8;
  cursor: pointer;
}

/* 住所 */
.contact_form .addArea{
  display: flex;
  align-items: center;
}
.contact_form .addArea + .addArea{
  margin-top: 12px;
}
.contact_form .addArea .labelText02{
  flex: 0 0 78px;
  margin-right: 12px;
  font-size: 12px;
  line-height: 1.6;
}
.contact_form .addArea .formInput{
  flex: 1 1 auto;
}
.contact_form .zipcode_i{
  margin-right: 10px;
  font-size: 14px;
}
.contact_form .zipcode_hyphen{
  margin: 0 8px;
  font-size: 14px;
}
.contact_form .zipInput{
  flex: 0 1 90px;
  width: 90px;
}
.contact_form .addArea .select{
  flex: 0 1 280px;
  max-width: 280px;
}

/* 同意チェック */
.contact_agree{
  margin: 28px 0 28px;
}
.contact_form .privacyLabel{
  font-size: 13px;
  line-height: 1.8;
  cursor: pointer;
}
.contact_form .checkbox{
  margin-right: 12px;
}
.contact_form .privacyLabel a{
  color: #a84b00;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.contact_form .privacyLabel a:hover{
  color: var(--main-color);
}

/* 送信ボタン（サイトのボタン .c_btn 風） */
.contact_form .formSend{
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  width: 350px;
  max-width: 100%;
  margin: 0 auto;
  padding: 22px 28px;
  border: 1px solid var(--main-color);
  border-radius: 0;
  background: var(--main-color);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  transition: .3s;
}
.contact_form .formSend:after{
  content: "→";
  font-size: 15px;
  line-height: 1;
}
.contact_form .formSend:hover{
  border-color: var(--ink);
  background: var(--ink);
}

@media (min-width:768px){
  .contact_form{
    padding: 75px 0 100px;
  }
  .contact_ttl{
    font-size: 28px;
  }
  .contact_label{
    margin-bottom: 38px;
  }
  .contact_label .c_label_l,
  .contact_label .c_label_r{
    font-size: 10px;
    letter-spacing: .14em;
  }
  .contact_intro{
    margin-bottom: 55px;
  }
  .contact_intro_ttl{
    font-size: 32px;
  }
  .contact_intro_txt > *{
    font-size: 14px;
    line-height: 2.1;
  }
  .contact_form .formRow{
    padding: 30px 0;
  }
  .contact_form .formTh{
    flex: 0 0 calc(28% + 30px);
    max-width: calc(28% + 30px);
    align-items: center;
    align-self: flex-start;
    justify-content: space-between;
    margin-bottom: 0;
    padding: 12px 30px 0 0;
  }
  .contact_form .formTd{
    flex: 1 1 0;
    max-width: none;
  }
  .contact_form .input,
  .contact_form .select,
  .contact_form .textarea{
    padding: 13px 16px;
    font-size: 14px;
  }
  .contact_form .radioArea{
    gap: 16px 20px;
    padding: 10px 0;
  }
  .contact_form .radioArea .labelText02{
    font-size: 14px;
  }
  .contact_form .addArea + .addArea{
    margin-top: 14px;
  }
  .contact_form .addArea .labelText02{
    flex: 0 0 100px;
    margin-right: 18px;
  }
  .contact_form .zipInput{
    flex-basis: 100px;
    width: 100px;
  }
  .contact_agree{
    margin: 40px 0 28px;
  }
  .contact_form .privacyLabel{
    font-size: 14px;
  }
  .contact_form .formSend{
    font-size: 15px;
  }
}
@media (min-width:1024px){
  .contact_intro{
    grid-template-columns: 1fr 1.2fr;
    gap: 50px;
    align-items: last baseline;
  }
}

/* ---------- プライバシーポリシー ---------- */
.contact_privacy{
  padding: 35px 0 55px;
  background: #f7f3ea;
}
.contact_privacy_box{
  height: 300px;
  padding: 24px 20px;
  overflow-y: auto;
  border: 1px solid rgba(35,24,21,.125);
  background: #fff;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #bcafa2 #f4f0e8;
}
.contact_privacy_ttl{
  margin-bottom: 24px;
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .12em;
  text-align: center;
}
.contact_privacy .privacy_item + .privacy_item{
  margin-top: 24px;
}
.contact_privacy .privacy_ttl{
  margin-bottom: 12px;
  padding-left: 14px;
  border-left: 3px solid var(--main-color);
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.8;
}
/* 本文（サンプル由来の p / ol / li 構造） */
.contact_privacy .privacy_txt{
  overflow-wrap: anywhere;
}
.contact_privacy .privacy_txt > *,
.contact_privacy .privacy_txt li{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: .05em;
}
.contact_privacy .privacy_txt ol{
  margin: 6px 0;
}
.contact_privacy .privacy_txt a{
  color: #a84b00;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.contact_privacy .privacy_txt a:hover{
  color: var(--main-color);
}
.contact_privacy .privacy_date .privacy_txt > *{
  text-align: right;
}
@media (min-width:768px){
  .contact_privacy{
    padding: 50px 0 75px;
  }
  .contact_privacy_box{
    height: 400px;
    padding: 34px 50px 34px 28px;
  }
  .contact_privacy_ttl{
    margin-bottom: 32px;
    font-size: 21px;
  }
  .contact_privacy .privacy_item + .privacy_item{
    margin-top: 32px;
  }
  .contact_privacy .privacy_ttl{
    font-size: 17px;
  }
  .contact_privacy .privacy_txt > *,
  .contact_privacy .privacy_txt li{
    font-size: 15px;
    line-height: 2;
  }
}

/* ---------- CMS管理画面：プライバシーポリシーは全文を表示して編集しやすくする ---------- */
.gjs-dashed .contact_privacy_box{
  height: auto;
  overflow: visible;
}

/* ---------- 送信完了（thanks） ---------- */
.thanks_text{
  margin-top: 30px;
}
@media (min-width:1024px){
  .thanks_text{
    text-align: center;
  }
}

/* ==== 下層ページ（各ページ） ここまで ==== */

/* ==========================================================================
   ヒーロー：1列で表示する幅では、写真を文字より上にする（2026-10-20指示）
   ========================================================================== */
.mv_img,
.about_hero_img,
.label_hero_img,
.film_hero_img,
.pf_hero_img{
  order: -1;
}
.mv_copy{
  padding-top: 32px;
}
.about_hero_img{
  margin-top: 30px;
}
.about_hero_head{
  margin: 35px 0 25px;
}
.label_hero_img{
  margin: 0 0 30px;
}
@media (min-width:768px){
  .mv_copy{
    padding-top: 69px;
  }
  .pf_hero_img{
    order: 0;
  }
  .about_hero_img{
    margin-top: 40px;
  }
  .about_hero_head{
    margin: 50px 0 35px;
  }
}
@media (min-width:1024px){
  .about_hero_img,
  .film_hero_img{
    order: 0;
  }
  .about_hero_img{
    margin-top: 84px;
  }
  .about_hero_head{
    margin: 113px 0 0;
  }
}

/* ==========================================================================
   スマホの調整（2026-10-20指示）
   ========================================================================== */
/* ボタンはスマホでは中央寄せ */
.c_btn{
  display: flex;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
/* ハンバーガーメニューの各項目の右側に矢印（Font Awesome 4.7 angle-right） */
.gnav_item:after{
  content: "\f105";
  font-family: FontAwesome;
  font-size: 16px;
  line-height: 1;
  color: var(--main-color);
}
@media (min-width:768px){
  .c_btn{
    display: inline-flex;
    margin-left: 0;
    margin-right: 0;
  }
  .gnav_item:after{
    display: none;
  }
}

/* 私たちについて「エルプラスの強み」下部のリンクボタンはスマホでは中央寄せ */
.about_links{
  align-items: center;
}
@media (min-width:768px){
  .about_links{
    align-items: flex-start;
  }
}
/* フッター（ロゴ・住所・コピーライト）はスマホでは中央寄せ */
.ftr_company{
  text-align: center;
}
.ftr_logo_link{
  justify-content: center;
}
.ftr_bottom{
  justify-content: center;
}
@media (min-width:768px){
  .ftr_company{
    text-align: left;
  }
  .ftr_logo_link{
    justify-content: flex-start;
  }
  .ftr_bottom{
    justify-content: space-between;
  }
}

/* ==========================================================================
   アニメーション（クラスは animation.js で付与。管理画面では付与しないので常に表示）
   ========================================================================== */
/* ---------- スクロールで表示：文字（下からぼかしを解きながら） ---------- */
.js_fade{
  opacity: 0;
  transform: translateY(24px);
  filter: blur(6px);
}
.js_fade.is_inview{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition: opacity .9s ease-out, transform 1s cubic-bezier(.22, 1, .36, 1), filter .9s ease-out;
  transition-delay: var(--delay, 0s);
}
/* ---------- スクロールで表示：写真（下から開きつつズームアウト） ---------- */
.js_reveal{
  clip-path: inset(100% 0 0 0);
}
.js_reveal.is_inview{
  clip-path: inset(0 0 0 0);
  transition: clip-path 1.1s cubic-bezier(.76, 0, .24, 1);
  transition-delay: var(--delay, 0s);
}
.js_reveal img{
  transform: scale(1.12);
}
.js_reveal.is_inview img{
  transform: scale(1);
  transition: transform 1.6s cubic-bezier(.22, 1, .36, 1);
  transition-delay: var(--delay, 0s);
}

/* ---------- TOPのメインビジュアル ---------- */
.js_mv .mv_copy > *,
.js_mv .mv_foot{
  opacity: 0;
  transform: translateY(24px);
  filter: blur(6px);
}
.js_mv.is_loaded .mv_copy > *,
.js_mv.is_loaded .mv_foot{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition: opacity 1s ease-out, transform 1.1s cubic-bezier(.22, 1, .36, 1), filter 1s ease-out;
  transition-delay: var(--delay, 0s);
}
.js_mv .mv_img{
  clip-path: inset(0 0 0 100%);
}
.js_mv.is_loaded .mv_img{
  clip-path: inset(0 0 0 0);
  transition: clip-path 1.4s cubic-bezier(.76, 0, .24, 1);
}
.js_mv .mv_img img{
  transform: scale(1.15);
}
.js_mv.is_loaded .mv_img img{
  transform: scale(1);
  transition: transform 2.4s cubic-bezier(.22, 1, .36, 1);
}

/* ---------- 写真＋タイトルのページヘッダー ---------- */
.js_pg_header .pg_header_img img{
  transform: scale(1.1);
}
.js_pg_header.is_loaded .pg_header_img img{
  transform: scale(1);
  transition: transform 2.4s cubic-bezier(.22, 1, .36, 1);
}
.js_pg_header .pg_header_inner .container > *{
  opacity: 0;
  transform: translateY(20px);
  filter: blur(6px);
}
.js_pg_header.is_loaded .pg_header_inner .container > *{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition: opacity .9s ease-out, transform 1s cubic-bezier(.22, 1, .36, 1), filter .9s ease-out;
  transition-delay: var(--delay, 0s);
}

/* ---------- ボタン・リンクの矢印（ホバーで右上へ少し動く） ---------- */
.c_btn:after,
.hdr_cta:after,
.top_news_more:after,
.ftr_contact_link:after,
.top_news_item:after{
  transition: transform .4s cubic-bezier(.22, 1, .36, 1);
}
.c_btn:hover:after,
.hdr_cta:hover:after,
.top_news_more:hover:after,
.ftr_contact_link:hover:after,
.top_news_item:hover:after{
  transform: translate(3px, -3px);
}

/* ==========================================================================
   CMS管理画面（編集ページ）用：body.gjs-dashed
   ========================================================================== */
.gjs-dashed .gnav{
  position: relative;
  height: auto;
  opacity: 1;
  visibility: visible;
}
.gjs-dashed .pagetop_btn{
  opacity: 1;
  visibility: visible;
}
.gjs-dashed .footer_fix{
  position: relative;
}
/* 固定ヘッダーは管理画面ではその場に置く（編集の邪魔にならないように） */
.gjs-dashed .header{
  position: relative;
}
body.gjs-dashed{
  padding-top: 0;
}
@media (max-width:1199px){
  .gjs-dashed .header{
    flex-wrap: wrap;
    height: auto;
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .gjs-dashed .hdr_menu{
    flex-wrap: wrap;
    width: 100%;
  }
  .gjs-dashed .gnav{
    order: 3;
    width: 100%;
    margin-top: 15px;
  }
}
