@charset "UTF-8";

/* =========================================================
   ベーススタイル・ユーティリティ・透過対策
========================================================= */
header, #header-wrapper, .header, .pane-topic-path {
    background-color: #ffffff !important;
    position: relative !important;
    z-index: 9999 !important;
}
.pane-topic-path { display: block !important; margin: 0 !important; padding: 12px 0 !important; border: none !important; }
.pane-main, .generous_main { background-color: transparent !important; margin-top: 0 !important; padding-top: 0 !important; }
main.generous_main ~ *:not(#lip_care_bg), #footer, .footer-wrapper { background-color: #ffffff !important; position: relative !important; z-index: 10 !important; }

/* ページ大枠の設定（背景を完全に透明化） */
.generous_main {
  font-family: "Jost", "秀英角ゴシック銀 L", "dnp-shuei-gothic-gin-std", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "Noto Sans JP", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  color: #211815;
  background: transparent !important;
  background-color: transparent !important;
  overflow: visible !important;
  position: relative;
  z-index: 1;
  padding-bottom: 0;
}

.generous_main * {
  font-feature-settings: "palt";
  box-sizing: border-box;
}

@media screen and (max-width: 900px) {
  .generous_main .isPc { display: none !important; }
}
@media screen and (min-width: 901px) {
  .generous_main .isSp { display: none !important; }
}

.generous_main .main_width {
  display: block;
  margin: 0 auto;
  max-width: 996px;
  padding: 0;
}
@media screen and (max-width: 1100px) {
  .generous_main .main_width { max-width: 100%; padding: 0 4.727vw; }
}
@media screen and (max-width: 900px) {
  .generous_main .main_width { padding: 0 5.866vw; }
}

/* 共通：h2, h3内のspan強制リセット (base.cssの巨大化対策) */
.generous_main h2 span,
.generous_main h3 span {
    font-size: inherit !important;
    line-height: inherit !important;
}

.generous_main a:visited, .generous_main a:link, .generous_main a:hover, .generous_main a:active {
  color: #211815;
}

.generous_main span.sup,
.generous_main sup {
  display: inline-block;
  font-size: 60%;
  position: relative;
  top: 0.1em;
  padding-left: 1px;
}
.generous_main span.sup { font-size: 0.6em; vertical-align: top; letter-spacing: -0.05em; margin: auto 0.15em auto auto; }

.generous_main .text-justify, 
.generous_main .text-justify p {
  display: block;
  text-align: justify;
  text-justify: inter-character;
}

/* セクション共通パディング */
@media only screen and (min-width: 900.1px) {
  .generous_main .lp_section { position: relative; width: 100%; padding-top: 48px; margin-top: -48px; }
  .generous_main .section_inr { padding: 80px 0 100px; }
}
@media only screen and (max-width: 900px) {
  .generous_main .lp_section { position: relative; width: 100%; padding-top: 0; margin-top: 0; }
}

/* 共通セクションタイトル */
.generous_main .section_ttl { text-align: center; }
.generous_main .section_ttl .en { font-size: 20px; line-height: 1em; margin-bottom: 1.5em; font-weight: 400; }
.generous_main .section_ttl .ja { font-size: 17px; line-height: 1.5; font-weight: 500; letter-spacing: 0.06em; margin: 0; }
.generous_main .section_ttl .ja > span { display: inline-block; padding: 0 0 0.3em; position: relative; }
.generous_main .section_ttl .ja > span::before { position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; content: ""; background: #211815; opacity: 0.5; }
@media only screen and (max-width: 900px) {
  .generous_main .section_ttl .en { font-size: 4.8vw; margin-bottom: 0.5em; }
  .generous_main .section_ttl .ja { font-size: 3.733vw; line-height: 1.3; }
  .generous_main .section_ttl .ja > span { padding: 0; }
}

/* 共通リンクボタン */
.generous_main .link_btn { width: 373px; height: 64px; display: flex; justify-content: center; align-items: center; border: solid 1px #fff; text-decoration: none; }
.generous_main .link_btn > span { font-size: 14px; font-weight: 400; color: #fff; display: inline-block; padding: 0 2em 0 0; letter-spacing: 0.2em; position: relative; }
.generous_main .link_btn > span:after { display: block; content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 6.22px; height: 6.22px; background: url("/img/usr/freepage/generous/arrow-forward_white.png") center/contain no-repeat; }
@media (hover: hover) { .generous_main .link_btn { transition: opacity 0.5s; } .generous_main .link_btn:hover { opacity: 0.7; } }

/* 共通スクロールバー (Simplebar) */
.generous_main .simplebar-track.simplebar-horizontal { height: 2px; background: #E6E6E2; border-radius: 1.5px; max-width: 69.6vw; margin: 0 auto; }
.generous_main .simplebar-scrollbar { height: 2px; background: #83786E; border-radius: 1.5px; top: 0; }



/* =========================================================
   ナビゲーション (content_nav)
========================================================= */
body .generous_main #content_nav { left: 0; width: 100%; position: absolute; opacity: 1; z-index: 2; }
body .generous_main #content_nav ul { display: flex; position: relative; width: 100%; height: 100%; overflow: hidden; backdrop-filter: blur(10px); background: rgba(0, 0, 0, 0.2); padding: 0; margin: 0; list-style: none; }
body .generous_main #content_nav a { position: relative; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; text-decoration: none; }
body .generous_main #content_nav a > span { color: #fff; line-height: 1em; z-index: 1; }

@media (hover: hover) {
  body .generous_main #content_nav a::before { display: block; content: ""; position: absolute; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.5); transition: opacity 0.5s; opacity: 0; }
  body .generous_main #content_nav a:hover::before { opacity: 1; }
}
@media only screen and (min-width: 900.1px) {
  body .generous_main #content_nav { 
    position: fixed !important;
    top: 0 !important; 
    /*display: block !important; 
    opacity: 1 !important; 
    visibility: visible !important; */
    z-index: 1000 !important; 
  }
  body .generous_main #content_nav .content_nav_ttl { display: none; }
  body .generous_main #content_nav li { position: relative; width: 14.2857%; height: 40px; }
  body .generous_main #content_nav li::before { position: absolute; width: 1px; height: 100%; top: 0; left: -1px; display: block; content: ""; background: #E6E6E2; opacity: 0.3; }
}
@media only screen and (max-width: 900px) {
  body .generous_main #content_nav {
    display: none !important;
  }
  body .generous_main #main_visual::before {
    display: none !important;
    content: none !important;
    height: 0 !important;
  }
  body .generous_main #content_nav { position: fixed; bottom: 0; overflow: visible; z-index: 1002; }
  body .generous_main #content_nav .content_nav_ttl { width: 100%; height: 42px; backdrop-filter: blur(10px); background: rgba(0, 0, 0, 0.3); position: relative; }
  body .generous_main #content_nav .content_nav_ttl > span { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 12px; line-height: 1em; color: #fff; display: block; width: 9em; text-align: center; transition: opacity 0.5s; }
  body .generous_main #content_nav .content_nav_ttl > span::before { position: absolute; right: 0; top: 0; content: ""; width: 1em; height: 100%; background-position: center; background-repeat: no-repeat; }
  body .generous_main #content_nav .content_nav_ttl > span.open::before { background-image: url("/img/usr/freepage/generous/content_nav_arr.png"); }
  body .generous_main #content_nav .content_nav_ttl > span.closed { opacity: 0; }
  body .generous_main #content_nav .content_nav_ttl > span.closed::before { background-image: url("/img/usr/freepage/generous/content_nav_closed.png"); }
  body .generous_main #content_nav .content_nav_ttl.is-open { display: flex; }
  body .generous_main #content_nav .content_nav_ttl.is-open > span.open { opacity: 0; }
  body .generous_main #content_nav .content_nav_ttl.is-open > span.closed { opacity: 1; }
  body .generous_main #content_nav ul { display: none; opacity: 0; transition: opacity 0.5s; position: absolute; left: 0; bottom: 42px; backdrop-filter: blur(10px); background: rgba(0, 0, 0, 0.2); flex-wrap: wrap; height: 110px; }
  body .generous_main #content_nav ul.is-open { display: flex; }
  body .generous_main #content_nav ul.is-fadein { opacity: 1; }
  body .generous_main #content_nav ul li { position: relative; width: 33.3333%; height: 35px; }
  body .generous_main #content_nav ul li a { text-shadow: #000 1px 0 3px; }
  body .generous_main #content_nav ul li.sp-wide { width: 100%; }
  body .generous_main #content_nav ul li.sp-wide::after { display: none; }
  body .generous_main #content_nav ul li::before, body .generous_main #content_nav ul li::after { position: absolute; display: block; content: ""; background: #E6E6E2; opacity: 0.3; }
  body .generous_main #content_nav ul li::before { width: 1px; height: calc(100% + 1px); top: -1px; left: -1px; }
  body .generous_main #content_nav ul li::after { width: 100%; height: 1px; bottom: -1px; left: 0; }
}


/* =========================================================
   メインビジュアル (KV)
========================================================= */
body .generous_main #main_visual { margin-bottom: 0; position: relative; background-color: #fff !important; z-index: 10; height: calc(100vh - 152px); min-height: 797px; }
body .generous_main #main_visual::before { position: absolute; left: 0; top: 0; width: 100%; height: 200px; display: block; content: ""; background: #fff; transform: translateY(-90%); }
body .generous_main #main_visual .kv_img { position: absolute; width: 100%; height: 100%; bottom: 0; left: 0; overflow: hidden; }
body .generous_main #main_visual .kv_img img { object-fit: cover; object-position: center bottom; position: absolute; width: 100%; height: 100%; bottom: -1px; left: 0; }
body .generous_main #main_visual .kv_txt { position: absolute; margin: 0; }
body .generous_main #main_visual .kv_txt .kv_txt_h1 img { width: 100%; height: auto; }
@media only screen and (min-width: 900.1px) {
  body .generous_main #main_visual { min-height: 62.265vw; }
  body .generous_main #main_visual .kv_txt { left: 9.453vw; top: 10.781vw; }
  body .generous_main #main_visual .kv_txt .kv_txt_h1 { width: 20.859vw; margin: 0; }
}
@media only screen and (max-width: 900px) {
  body .generous_main #main_visual { height: auto; min-height: 0; }
  body .generous_main #main_visual .kv_img { position: static; width: auto; height: auto; }
  body .generous_main #main_visual .kv_img img { position: static; }
  body .generous_main #main_visual .kv_txt { left: 8.226vw; top: 23.066vw; }
  body .generous_main #main_visual .kv_txt .kv_txt_h1 { display: none; }
}


/* =========================================================
   CONCEPT (白背景で隠す)
========================================================= */
body .generous_main #concept { color: #FFFEFD; position: relative; background-color: #fff !important; z-index: 10; }
@media only screen and (min-width: 900.1px) {
  body .generous_main #concept .section_inr { padding: 0; background: #797169; }
  body .generous_main #concept:before { position: absolute; display: block; content: ""; top: 0; left: 50%; width: calc(100% - 483px); height: 100%; background: url("/img/usr/freepage/generous/concept_image.jpg") right center/cover no-repeat; }
  body .generous_main #concept .concept_txt { width: 483px; max-width: 50%; padding: 125px 10px 148px 10px; position: relative; }
}
body .generous_main #concept .concept_ttl { font-size: 20px; line-height: 1.8; margin-bottom: 2.3em; font-weight: 400; }
body .generous_main #concept p { letter-spacing: 0.18em; font-size: 16px; line-height: 1.8; font-weight: 400; margin: 0; }
body .generous_main #concept p + p { margin-top: 1.75em; }
body .generous_main #concept p.concept_catch { font-size: 18px; padding-bottom: 0.5em; }
body .generous_main #concept p.concept_figure { width: 100%; display: flex; justify-content: center; padding: 60px 100px 0 0; }
body .generous_main #concept p.concept_figure img { width: 266px; height: auto; display: block; }
body .generous_main #concept p.concept_figure_caution { font-size: 10px; position: absolute; bottom: 42px; left: -25px; }
@media only screen and (max-width: 1100px) {
  body .generous_main #concept p.concept_figure { padding: 0 9.09vw 0 0; }
}
@media only screen and (max-width: 900px) {
  body .generous_main #concept .section_inr { text-align: center; padding: 36.266vw 0 41.6vw; background: url("/img/usr/freepage/generous/concept_image.jpg") center/cover no-repeat; }
  body .generous_main #concept .concept_ttl { font-size: 4.8vw; margin-bottom: 1.05em; }
  body .generous_main #concept p { font-size: 3.333vw; line-height: 2; }
  body .generous_main #concept p + p { margin-top: 2.2em; }
  body .generous_main #concept p.concept_catch { font-size: 4.666vw; padding-bottom: 0.65em; text-indent: 0.5em; }
  body .generous_main #concept p.concept_figure { padding: 9.333vw 0 0; }
  body .generous_main #concept p.concept_figure img { width: 73.6vw; }
  body .generous_main #concept p.concept_figure_caution { font-size: 2.666vw; bottom: 6.933vw; left: 13.333vw; }
}

/* =========================================================
   STEP (白背景で隠す)
========================================================= */
body .generous_main #step { background-color: #fff !important; position: relative; z-index: 10; }
body .generous_main #step .section_inr { background: #fff; }
body .generous_main #step .step_wrap { width: 1030px; max-width: 100%; margin: 77px auto 0; }
body .generous_main #step .step_wrap_inr { display: flex; }
body .generous_main #step .step_item { text-align: center; position: relative; width: 20%; }
body .generous_main #step .step_item a { text-decoration: none; display: block; }
body .generous_main #step .step_item:nth-of-type(n+2) .item_img::before, 
body .generous_main #step .step_item:nth-of-type(n+2) .item_img:after { display: block; content: ""; position: absolute; z-index: 1; left: 0; top: 50%; transform: translate(-50%, -50%); }
body .generous_main #step .step_item:nth-of-type(n+2) .item_img::before { width: 39px; height: 39px; border-radius: 50%; border: solid 1px #211815; background: #fff; }
body .generous_main #step .step_item:nth-of-type(n+2) .item_img:after { width: 6.22px; height: 6.22px; background: url("/img/usr/freepage/generous/arrow-forward.png") center/contain no-repeat; }
body .generous_main #step .item_detail { position: relative; padding-top: 35px; }
body .generous_main #step .icon_new { position: absolute; left: 50%; top: 0; transform: translateX(-50%); font-size: 10px; color: #83786E; border: solid 1px #83786E; width: 3.3em; display: flex; justify-content: center; align-items: center; line-height: 1em; padding: 0.25em 0.15em 0.15em; margin-bottom: 0.75em; }
body .generous_main #step .item_count { line-height: 1em; font-size: 13px; letter-spacing: 0.025em; margin: 0 0 10px 0; color: #211815; }
body .generous_main #step .item_img { position: relative; height: 280px; }
body .generous_main #step .item_img img { width: auto; max-width: 280px; max-height: 100%; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); }
body .generous_main #step .item_ttl { font-size: 14px; margin: 0 auto 0.15em; letter-spacing: 0.125em; line-height: 1.4; font-weight: 500; color: #211815; }
body .generous_main #step .item_ttl_sub { display: flex; flex-wrap: wrap; justify-content: center; font-size: 12px; padding: 0; list-style: none; margin: 0; color: #211815; }
body .generous_main #step .item_ttl_sub li { letter-spacing: 0.05em; margin: auto 0.3em; }
body .generous_main #step .item_ttl_sub li.price { width: 100%; font-size: 10px; letter-spacing: 0.08em; }
@media only screen and (max-width: 900px) {
  body .generous_main #step .section_inr { text-align: center; padding: 16vw 0 13.333vw; }
  body .generous_main #step .step_wrap { width: calc(100% + 15.2vw); margin: 10.666vw -5.866vw 0 0; overflow-y: visible; overflow-x: auto; }
  body .generous_main #step .step_wrap_inr { width: 337.6vw; padding-bottom: 10.666vw; padding-left: 15.2vw; padding-right: 15.2vw; }
  body .generous_main #step .step_item:nth-of-type(n+2) .item_img::before { width: 10.4vw; height: 10.4vw; }
  body .generous_main #step .step_item:nth-of-type(n+2) .item_img:after { width: 1.658vw; height: 1.658vw; }
  body .generous_main #step .icon_new { font-size: 2.666vw; }
  body .generous_main #step .item_count { font-size: 3.2vw; }
  body .generous_main #step .item_img { height: 74.666vw; max-height: 74.666vw; }
  body .generous_main #step .item_img img { width: 74.666vw; max-width: 74.666vw; }
  body .generous_main #step .item_img img.ge_repaircleansing { width: 53.333vw; }
  body .generous_main #step .item_img img.ge_repairwash { width: 26.666vw; }
  body .generous_main #step .item_img img.ge_advantageconc { width: 33.866vw; }
  body .generous_main #step .item_ttl { font-size: 3.733vw; margin: 0 auto 0.5em; line-height: 1.3; }
  body .generous_main #step .item_ttl_sub { font-size: 2.666vw; }
  body .generous_main #step .item_ttl_sub li.price { font-size: 2.133vw; }
}


/* =========================================================
   PROJECT (ここだけ背景を透けさせる)
========================================================= */
body .generous_main #project { position: relative; overflow: hidden; background-color: transparent !important; z-index: 10; }
body .generous_main #project .section_inr { padding: 295px 0 192px; background-color: rgba(0, 0, 0, 0.5) !important; }
body .generous_main #project .project_inr { position: relative; z-index: 1; }
body .generous_main #project .project_cont { color: #fff; position: relative; z-index: 2; }
body .generous_main #project .project_ttl h2.en { transform: translateX(-23px); font-size: 32px; font-weight: 400; line-height: 1.06; letter-spacing: 0.03em; margin: 0; }
body .generous_main #project .project_detail { padding: 0 0 0 20px; }
body .generous_main #project .project_detail .project_catch { font-size: 18px; font-weight: 400; margin-bottom: 4.2em; letter-spacing: 0.15em; margin-top: 0; }
body .generous_main #project .project_detail p { font-size: 14px; line-height: 2.14; letter-spacing: 0.175em; margin: 0; }
body .generous_main #project .project_detail p + p { margin-top: 2.35em; }
body .generous_main #project .project_detail .detail_link { margin-top: 85px; }
@media only screen and (min-width: 900.1px) {
  body .generous_main #project .project_cont { display: flex; }
  body .generous_main #project .project_cont > div { width: 50%; }
}
@media only screen and (max-width: 900px) {
  body .generous_main #project .section_inr { padding: 64vw 0 33.6vw; }
  body .generous_main #project .project_ttl h2.en { transform: none; font-size: 6.933vw; margin-bottom: 36.266vw; }
  body .generous_main #project .project_detail { padding: 0; }
  body .generous_main #project .project_detail .project_catch { font-size: 4.266vw; margin-bottom: 3em; }
  body .generous_main #project .project_detail p { font-size: 3.466vw; line-height: 2; }
  body .generous_main #project .project_detail p + p { margin-top: 1.5em; }
  body .generous_main #project .project_detail .detail_link { margin-top: 18.666vw; }
  body .generous_main #project .detail_link_btn { width: 100%; height: 16vw; border: solid 0.266vw #fff; }
  body .generous_main #project .detail_link_btn > span { font-size: 3.466vw; }
  body .generous_main #project .detail_link_btn > span:after { width: 1.658vw; height: 1.658vw; }
}


/* =========================================================
   PROJECT DETAILS (白背景で隠す)
========================================================= */
body .generous_main #project-detial { background-color: #fff !important; position: relative; z-index: 10; }
body .generous_main #project-detial .section_inr { background: #F5F5F5; }
body .generous_main #project-detial .project_power-3 { width: 450px; margin: 90px auto 73px; display: flex; justify-content: center; }
body .generous_main #project-detial .item_power-3 { width: 33.3333%; padding: 161px 0 0; position: relative; }
body .generous_main #project-detial .item_power-3:nth-of-type(1) .power-3_ttl { left: 0; }
body .generous_main #project-detial .item_power-3:nth-of-type(2) .power-3_ttl { left: 50%; transform: translateX(-50%); }
body .generous_main #project-detial .item_power-3:nth-of-type(3) .power-3_ttl { right: 0; }
body .generous_main #project-detial .power-3_ttl { position: absolute; top: 0; width: 161px; height: 161px; border-radius: 50%; border: solid 1px rgba(33, 24, 21, 0.5); display: flex; justify-content: center; align-items: center; font-size: 14px; line-height: 1.143; letter-spacing: 0.05em; text-align: center; margin: 0; background: #F5F5F5; }
body .generous_main #project-detial .power-3_person { display: flex; justify-content: center; align-items: center; padding: 18px 0 0; }
body .generous_main #project-detial .person_photo { width: 58px; min-width: 58px; height: 58px; border-radius: 50%; overflow: hidden; }
body .generous_main #project-detial .person_photo img { width: 100%; height: auto; }
body .generous_main #project-detial .parson_name { font-size: 13px; line-height: 1.5; padding: 0 0 0 0.5em; letter-spacing: 0.1em; margin: 0; }
body .generous_main #project-detial .parson_name > span { font-size: 10px; display: block; }
body .generous_main #project-detial .project_flow { background: #fff; }
body .generous_main #project-detial .project_flow_wrap { padding: 50px 20px 33px; }
body .generous_main #project-detial .project_flow_inr { margin: auto; max-width: 818px; }
body .generous_main #project-detial .flow_dl { display: flex; flex-wrap: wrap; margin-left: -6px; margin-bottom: 0; }
body .generous_main #project-detial .flow_dl:nth-of-type(n+2) { margin-top: 30px; }
body .generous_main #project-detial .flow_dl dt { width: 100%; }
body .generous_main #project-detial .flow_dl dt > span { display: inline-block; line-height: 1em; letter-spacing: 0.15em; font-size: 14px; color: #fff; height: 21px; width: auto; background: #83786E; border-radius: 10px; padding: 0.25em 1.25em 0; margin: 0 auto 1em 0; }
body .generous_main #project-detial .flow_dl dd { padding-left: 6px; width: 160px; width: 20%; position: relative; margin: 0; }
body .generous_main #project-detial .flow_dl dd::before { position: absolute; display: block; content: ""; left: 26px; top: 12px; border-top: solid 1px rgba(61, 58, 58, 0.3); width: calc(100% - 26px + 7px); height: 1px; }
body .generous_main #project-detial .flow_dl dd:last-child::before { display: none; }
body .generous_main #project-detial .flow_num { font-size: 10px; width: 26px; height: 26px; display: flex; justify-content: center; align-items: center; line-height: 1em; border-radius: 50%; border: solid 1px rgba(61, 58, 58, 0.5); margin: 0 auto 0.8em 0; background: #fff; position: relative; z-index: 1; }
body .generous_main #project-detial .flow_img { margin: 0; }
body .generous_main #project-detial .flow_img img { width: 100%; height: auto; }
body .generous_main #project-detial .flow_caption { font-size: 12px; font-weight: 400; margin: 0.4em 0 0; letter-spacing: 0.15em; text-align: center; }
body .generous_main #project-detial .project_prof { margin: 25px auto 0; padding: 20px 10px; border: solid 1px #000000; }
body .generous_main #project-detial .project_prof_inr { display: flex; }
body .generous_main #project-detial .prof_dl { width: 50%; padding: 0 50px 0 35px; margin: 0; position: relative; }
@media only screen and (min-width: 900.1px) {
  body .generous_main #project-detial .prof_dl:nth-of-type(n+2)::before { position: absolute; left: 0; top: 0; display: block; content: ""; width: 1px; height: 100%; background: #707070; }
}
body .generous_main #project-detial .prof_dl dt { font-size: 13px; letter-spacing: 0.01em; margin: 0 0 0.25em; font-weight: bold; }
body .generous_main #project-detial .prof_dl dd { margin: 0; }
body .generous_main #project-detial .prof_dl dd p { letter-spacing: 0.03em; font-size: 11px; line-height: 1.7; margin: 0; }
@media only screen and (max-width: 900px) {
  body .generous_main #project-detial .section_inr { padding: 14.4vw 0 10.08vw; }
  body .generous_main #project-detial .project_power-3 { width: 81.6vw; margin: 14.4vw auto; }
  body .generous_main #project-detial .item_power-3 { padding: 29.333vw 0 0; }
  body .generous_main #project-detial .power-3_ttl { width: 29.333vw; height: 29.333vw; font-size: 2.933vw; }
  body .generous_main #project-detial .power-3_person { flex-direction: column; padding: 3.36vw 0 0; }
  body .generous_main #project-detial .person_photo { width: 15.466vw; min-width: 15.466vw; height: 15.466vw; }
  body .generous_main #project-detial .parson_name { text-align: center; font-size: 2.933vw; margin-top: 0.5em; padding: 0; }
  body .generous_main #project-detial .parson_name > span { font-size: 2.4vw; }
  body .generous_main #project-detial .project_flow { padding: 9.066vw 0; }
  body .generous_main #project-detial .project_flow_wrap { padding: 0 11.093vw; }
  body .generous_main #project-detial .project_flow_inr { width: 155.093vw; padding-right: 11.093vw; max-width: 165.333vw; padding-bottom: 5.333vw; }
  body .generous_main #project-detial .flow_dl { margin-left: -0.533vw; }
  body .generous_main #project-detial .flow_dl:nth-of-type(n+2) { margin-top: 8.96vw; }
  body .generous_main #project-detial .flow_dl dt { padding-left: 0.533vw; }
  body .generous_main #project-detial .flow_dl dt > span { font-size: 3.2vw; height: 5.6vw; border-radius: 2.666vw; padding-top: 0.4em; }
  body .generous_main #project-detial .flow_dl dd { padding-left: 0.533vw; width: 20%; }
  body .generous_main #project-detial .flow_dl dd::before { left: 4.533vw; top: 2.133vw; width: calc(100% - 4.533vw + 7px); }
  body .generous_main #project-detial .flow_num { font-size: 2.133vw; width: 4.533vw; height: 4.533vw; }
  body .generous_main #project-detial .flow_caption { font-size: 2.933vw; }
  body .generous_main #project-detial .project_prof { margin: 8.4vw auto 0; padding: 0; width: calc(100% - 11.733vw); }
  body .generous_main #project-detial .project_prof_inr { flex-direction: column; padding: 6.4vw 6.933vw; }
  body .generous_main #project-detial .prof_dl { width: 100%; padding: 0; }
  body .generous_main #project-detial .prof_dl:nth-of-type(n+2) { margin-top: 5.333vw; }
  body .generous_main #project-detial .prof_dl dt { font-size: 3.466vw; margin: 0 0 0.25em; }
  body .generous_main #project-detial .prof_dl dd p { font-size: 2.933vw; }
}


/* =========================================================
   INGREDIENTS (背景塗りつぶし)
========================================================= */
body .generous_main #ingredients { background-color: transparent !important; position: relative; z-index: 10; }
body .generous_main #ingredients .section_inr { background-color: #E6E6E2 !important; }
body .generous_main #ingredients .ingredients_ttl { text-align: center; font-size: 16px; margin: 0 auto 1.5em; letter-spacing: 0.1em; font-weight: bold; }
body .generous_main #ingredients .ingredients_flex { max-width: 100%; margin: 86px auto 27px; position: relative; }
body .generous_main #ingredients .ingredients_flex + .ingredients_flex { margin: 38px auto 27px; padding-top: 36px; }
body .generous_main #ingredients .ingredients_flex + .ingredients_flex::before { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 87.187vw; min-width: 100%; max-width: 1116px; display: block; content: ""; border-top: solid 1px #3D3A3A; }
body .generous_main #ingredients .ingredients_flex_inr { display: flex; flex-wrap: wrap; justify-content: center; margin: -10px; }
body .generous_main #ingredients .ingredients_item { padding: 10px; }
body .generous_main #ingredients .ingredients_flex.cell-2 { width: 684px; }
body .generous_main #ingredients .ingredients_flex.cell-2 .ingredients_item { width: 50%; }
body .generous_main #ingredients .ingredients_flex.cell-3 { width: 820px; }
body .generous_main #ingredients .ingredients_flex.cell-3 .ingredients_item { width: 33.3333%; }
body .generous_main #ingredients .ingredients_flex.cell-4 { width: 1100px; }
body .generous_main #ingredients .ingredients_flex.cell-4 .ingredients_item { width: 25%; }
body .generous_main #ingredients .item_thumb img { width: 100%; height: auto; display: block; }
body .generous_main #ingredients .item_detail { margin: 1em 0 0; }
body .generous_main #ingredients .item_detail:nth-of-type(n+2) { margin: 1.5em 0 0; }
body .generous_main #ingredients .item_ttl { font-size: 14px; letter-spacing: 0.1em; line-height: 1.5; margin: 0 0 0.5em 0; font-weight: bold; }
body .generous_main #ingredients .item_ttl > span { display: block; font-size: 12px; margin: 0 0 0.1em 0; font-weight: normal; }
body .generous_main #ingredients .item_ttl .sp_small { display: inline; font-weight: normal; }
body .generous_main #ingredients .item_detail p { font-size: 12px; line-height: 1.6; letter-spacing: 0.11em; margin: 0; }
body .generous_main #ingredients .item_detail p + .item_ttl { margin-top: 0.2em; }
body .generous_main #ingredients .ingredients_cautions { width: 750px; margin: 30px auto 0; max-width: 100%; }
body .generous_main #ingredients .ingredients_cautions ul { font-size: 10px; text-indent: -0.5em; list-style: none; padding: 0; margin: 0; }
body .generous_main #ingredients .ingredients_cautions ul li { display: inline; font-size: 100%; margin-left: 0.5em; }
@media only screen and (max-width: 900px) {
  body .generous_main #ingredients .section_inr { padding: 14.4vw 0 8vw; }
  body .generous_main #ingredients .ingredients_ttl { font-size: 4vw; margin: 0 auto 0.95em; }
  body .generous_main #ingredients .item_detail { margin: 0.5em 0 0; }
  body .generous_main #ingredients .item_detail:nth-of-type(n+2) { margin: 1em 0 0; }
  body .generous_main #ingredients .item_ttl { font-size: 3.466vw; margin-bottom: 0.65em; margin-right: -1em; }
  body .generous_main #ingredients .item_ttl > span { font-size: 2.133vw; margin: 0 0 0.25em 0; }
  body .generous_main #ingredients .item_detail p { font-size: 2.933vw; }
  body .generous_main #ingredients .ingredients_flex { margin: 13.333vw auto 0; }
  body .generous_main #ingredients .ingredients_flex + .ingredients_flex { margin: 13.333vw auto 0; padding-top: 8vw; }
  body .generous_main #ingredients .ingredients_flex_inr { justify-content: flex-start; }
  body .generous_main #ingredients .ingredients_flex.cell-2 .ingredients_flex_inr { width: 100%; margin: -3.2vw auto; }
  body .generous_main #ingredients .ingredients_flex.cell-2 .ingredients_item { padding: 3.2vw 0; width: 100%; }
  body .generous_main #ingredients .ingredients_flex.cell-3 .ingredients_flex_inr, 
  body .generous_main #ingredients .ingredients_flex.cell-4 .ingredients_flex_inr { width: 88vw; margin: -2.133vw auto; }
  body .generous_main #ingredients .ingredients_flex.cell-3 .ingredients_item, 
  body .generous_main #ingredients .ingredients_flex.cell-4 .ingredients_item { padding: 2.133vw 0 2.133vw 2.666vw; width: 50%; }
  body .generous_main #ingredients .ingredients_flex.cell-3 .ingredients_item:nth-child(odd), 
  body .generous_main #ingredients .ingredients_flex.cell-4 .ingredients_item:nth-child(odd) { padding: 2.133vw 2.666vw 2.133vw 0; }
  body .generous_main #ingredients .item_ttl { margin-bottom: 0.25em; letter-spacing: 0.035em; }
  body .generous_main #ingredients .item_ttl .sp_small { font-size: 2.666vw; }
  body .generous_main #ingredients .ingredients_cautions { margin: 5.333vw auto 0; }
  body .generous_main #ingredients .ingredients_cautions ul { font-size: 2.666vw; }
}

/* =========================================================
   FREE & FRAGRANCE (背景塗りつぶし)
========================================================= */
body .generous_main #free-fragrance { color: #fff; background-color: transparent !important; position: relative; z-index: 10; }
body .generous_main #free-fragrance .section_inr { background-color: #726B64 !important; }
body .generous_main #free-fragrance .inr-section { max-width: 820px; margin: auto auto 58px; position: relative; }
body .generous_main #free-fragrance .inr-section + .inr-section { margin: 64px auto 0; padding-top: 85px; }
body .generous_main #free-fragrance .inr-section + .inr-section::before { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 87.187vw; min-width: 100%; max-width: 1116px; display: block; content: ""; border-top: solid 1px #FFFEFD; opacity: 0.5; }
body .generous_main #free-fragrance .section_ttl .ja > span::before { background: #fff; }
@media only screen and (max-width: 900px) {
  body .generous_main #free-fragrance .section_inr { padding: 4vw 0 16vw; }
  body .generous_main #free-fragrance .inr-section { max-width: 100%; margin: auto auto 9.6vw; }
  body .generous_main #free-fragrance .inr-section + .inr-section { margin: 9.6vw 0 0; padding-top: 16vw; }
  body .generous_main #free-fragrance .inr-section + .inr-section::before { border-top: solid 1px #A8A293; }
}

/* 4FREE */
@media only screen and (min-width: 900.1px) {
  body .generous_main .fourfree #fourfree { padding-top: 160px; margin-top: -160px; }
}
@media only screen and (max-width: 900px) {
  body .generous_main .fourfree #fourfree { padding-top: 60px; margin-top: -60px; }
}
body .generous_main .fourfree .fourfree_catch { font-size: 14px; text-align: center; line-height: 1.8; font-weight: 400; margin: 1.4em auto 2em; letter-spacing: 0.215em; }
body .generous_main .fourfree .fourfree_catch > span { display: inline-block; }
body .generous_main .fourfree .fourfree_icons { display: flex; justify-content: center; width: 100%; max-width: 836px; margin: auto; list-style: none; padding: 0; }
body .generous_main .fourfree .fourfree_icons li { width: 25%; padding: 0 10px; }
body .generous_main .fourfree .fourfree_icons li .icon_parts { display: flex; justify-content: center; align-items: center; background: #8a847a; width: 100%; height: 36px; }
body .generous_main .fourfree .fourfree_icons li .icon_parts > span { line-height: 1em; color: #fff; font-size: 14px; letter-spacing: 0.05em; }
body .generous_main .fourfree .fourfree_cautions { font-size: 10px; margin: 1em auto 0; }
body .generous_main .fourfree .fourfree_cautions ul { font-size: 100%; padding-left: 10px; margin-left: -0.5em; list-style: none; }
body .generous_main .fourfree .fourfree_cautions ul li { display: inline; font-size: 100%; margin-left: 0.5em; letter-spacing: 0.115em; }
@media only screen and (max-width: 900px) {
  body .generous_main .fourfree .fourfree_catch { font-size: 3.2vw; margin: 0.5em -1em 2.85em; letter-spacing: 0.125em; }
  body .generous_main .fourfree .fourfree_icons { flex-wrap: wrap; max-width: 100%; margin: -1.066vw -0.666vw -2.666vw; }
  body .generous_main .fourfree .fourfree_icons li { width: 50%; padding: 1.066vw 0.666vw; }
  body .generous_main .fourfree .fourfree_icons li .icon_parts { height: 8.533vw; }
  body .generous_main .fourfree .fourfree_icons li .icon_parts > span { font-size: 3.466vw; margin: auto -1em; }
  body .generous_main .fourfree .fourfree_cautions { font-size: 2.666vw; margin: 1.25em auto 0; }
  body .generous_main .fourfree .fourfree_cautions ul { padding-left: 0; }
}

/* FRAGRANCE */
@media only screen and (min-width: 900.1px) {
  body .generous_main .fragrance #fragrance { padding-top: 160px; margin-top: -160px; }
}
@media only screen and (max-width: 900px) {
  body .generous_main .fragrance #fragrance { padding-top: 60px; margin-top: -60px; }
}
body .generous_main .fragrance .fragrance_wrap { display: flex; margin: 24px auto 0; justify-content: space-between; }
body .generous_main .fragrance .fragrance_wrap > div { width: calc(50% - 40px); }
body .generous_main .fragrance .fragrance_img img { width: 100%; height: auto; display: block; }
body .generous_main .fragrance .fragrance_detail h3 { font-size: 17px; margin: 0 0 2em 0; letter-spacing: 0.18em; font-weight: 500; }
body .generous_main .fragrance .fragrance_detail h3 > span:nth-of-type(n+2) { margin-left: 1.15em; }
body .generous_main .fragrance .fragrance_detail p { font-size: 12px; letter-spacing: 0.135em; margin: 0; }
body .generous_main .fragrance .fragrance_detail p.fragrance_catch { font-size: 14px; letter-spacing: 0.18em; margin-bottom: 1.25em; }
@media only screen and (max-width: 900px) {
  body .generous_main .fragrance .fragrance_wrap { flex-direction: column; margin: 10.666vw auto 0; }
  body .generous_main .fragrance .fragrance_wrap > div { width: 100%; }
  body .generous_main .fragrance .fragrance_img { margin-bottom: 6.4vw; }
  body .generous_main .fragrance .fragrance_detail h3 { text-align: center; font-size: 3.733vw; margin-bottom: 1.5em; letter-spacing: 0.2em; }
  body .generous_main .fragrance .fragrance_detail p { font-size: 2.933vw; line-height: 1.65; }
  body .generous_main .fragrance .fragrance_detail p.fragrance_catch { font-size: 3.333vw; line-height: 1.7; margin-bottom: 0.75em; }
}

/* =========================================================
   PRODUCT LINEUP (白背景で隠す)
========================================================= */
body .generous_main #product { background-color: #fff !important; position: relative; z-index: 10; }
body .generous_main #product .section_inr { background: #F5F5F5; color: #3D3A3A; }
body .generous_main .product_wrap.premium { background: #fff; }

@media only screen and (min-width: 900.1px) {
  body .generous_main #product .product_wrap { max-width: 1126px; padding: 0 50px; margin: auto; }
  body .generous_main #product .product_wrap.premium { margin-top: 60px; max-width: 1096px; }
  body .generous_main #product .product_wrap.premium .product_item { padding: 10px 0; }
  body .generous_main #product .product-item_wrap { padding-top: 48px; margin-top: -48px; }
  body .generous_main #product .product_item { display: flex; align-items: center; flex-wrap: wrap; padding: 50px 0; }
  body .generous_main #product .product_item .product_item_box { max-width: 350px; }
  body .generous_main #product .product_item .product_img { width: 54.873%; height: 100%; display: flex; justify-content: center; }
  body .generous_main #product .product_item .product_img img { margin: auto; width: 100%; max-width: 563px; height: auto; display: block; }
  body .generous_main #product .product_item .product_txt { width: 45.127%; padding: 0 0 0 25px; }
  body .generous_main #product .product_item .product_caution { width: 100%; }
  body .generous_main #product .product_item:nth-child(even) .product_img { order: 2; }
  body .generous_main #product .product_item:nth-child(even) .product_txt { order: 1; }
}

@media only screen and (max-width: 900px) {
  body .generous_main #product .product_wrap.premium { margin-top: 60px; }
  body .generous_main #product .product_wrap.premium .product_item { padding: 13.413vw 6.933vw 2.666vw; }
  body .generous_main #product .product_wrap.premium .product_item .product_img { margin: 0 auto; width: 100%; height: auto; }
  body .generous_main #product .product-item_wrap + .product-item_wrap { margin-top: 22.933vw; }
  body .generous_main #product .section_inr { padding: 14.933vw 5.866vw 40vw; }
  body .generous_main #product .section_ttl { margin-bottom: 13.013vw; }
  body .generous_main #product .product_item + .product_item { margin-top: 12.373vw; }
  body .generous_main #product .product_item .product_img { width: 93.333vw; height: 93.333vw; max-width: 700px; max-height: 700px; display: flex; align-items: flex-end; margin: 0 -2.4vw; }
  body .generous_main #product .product_item .product_img.sp-h240 { height: 64vw; }
  body .generous_main #product .product_item .product_img img { width: 100%; height: auto; display: block; }
  body .generous_main #product .product_item .product_txt { width: 100%; }
  body .generous_main #product .product_item .product_caution { width: 100%; }
}

/* メタ情報 */
body .generous_main .item_meta { position: relative; padding-top: 1.5em; }
body .generous_main .item_meta .icon_new { font-size: 10px; color: #83786E; border: solid 1px #83786E; width: 3.3em; display: flex; justify-content: center; align-items: center; line-height: 1em; padding: 0.25em 0.15em 0.15em; margin: 0 0 0.75em 0; }
body .generous_main .item_meta .icon_new > span { display: inline-block; }
body .generous_main .item_meta .item_ttl_en { font-size: 12px; letter-spacing: 0.03em; color: #83786E; margin: 0; }
body .generous_main .item_meta .item_ttl_ja { font-size: 19px; letter-spacing: 0.14em; line-height: 1.2; margin: 0.5em 0 0 0; font-weight: bold; }
body .generous_main .item_meta .item_ttl_sub { font-size: 12px; display: flex; flex-wrap: wrap; margin: 0 0 1em -0.75em; letter-spacing: 0.075em; list-style: none; padding: 0; }
body .generous_main .item_meta .item_ttl_sub li { margin-left: 0.755em; }
body .generous_main .item_meta .item_ttl_sub li.wide { width: 100%; }
body .generous_main .item_meta .item_icons { font-size: 11px; display: flex; flex-wrap: wrap; margin: 0.1em -2em 1.5em -0.5em; letter-spacing: 0.075em; list-style: none; padding: 0; }
body .generous_main .item_meta .item_icons li { margin-left: 0.5em; margin-bottom: 0.5em; display: flex; justify-content: center; align-items: center; line-height: 1em; padding: 0 0.5em; color: #211815; border: solid 1px #211815; height: 19px; border-radius: 11px; }
body .generous_main .item_meta .item_icons li > span { margin-top: 0.1em; }
@media only screen and (max-width: 900px) {
  body .generous_main .item_meta .icon_new { font-size: 2.666vw; }
  body .generous_main .item_meta .item_ttl_en { font-size: 3.2vw; }
  body .generous_main .item_meta .item_ttl_ja { font-size: 4.533vw; }
  body .generous_main .item_meta .item_ttl_sub { font-size: 3.2vw; margin-bottom: 0.75em; }
  body .generous_main .item_meta .item_icons { font-size: 2.933vw; margin-bottom: 1.85em; height: 6.133vw; border-radius: 2.933vw; margin-left: -0.5em; }
  body .generous_main .item_meta .item_icons li { margin-left: 0.5em; padding: 0 0.6em; }
}

/* 商品詳細テキスト */
body .generous_main .item_meta .item_detail { margin-bottom: 12px; }
body .generous_main .item_meta .item_detail .detail_catch { font-size: 14px; line-height: 1.8; margin: 0 0 0.8em 0; letter-spacing: 0.115em; font-weight: bold; }
body .generous_main .item_meta .item_detail p { font-size: 12px; letter-spacing: 0.085em; line-height: 1.8; margin: 0 0 0.75em 0; }
body .generous_main .item_meta .item_detail .item_ingredient dt { font-size: 12px; letter-spacing: 0.12em; margin: 0 0 0.1em 0; font-weight: bold; }
body .generous_main .item_meta .item_detail .item_ingredient dd { margin: 0.1em 0 0 0; font-size: 11px; letter-spacing: 0.05em; line-height: 1.2; }
@media only screen and (max-width: 900px) {
  body .generous_main .item_meta .item_detail { margin-bottom: 4vw; }
  body .generous_main .item_meta .item_detail .detail_catch { font-size: 4vw; line-height: 1.7; margin-bottom: 0.4em; }
  body .generous_main .item_meta .item_detail p { font-size: 3.466vw; margin-bottom: 2em; letter-spacing: 0.15em; line-height: 1.45; }
  body .generous_main .item_meta .item_detail p:last-child { margin-bottom: 1.5em; }
  body .generous_main .item_meta .item_detail .item_ingredient { background: #E6E6E2; padding: 2.133vw 4vw 2.666vw; }
  body .generous_main .item_meta .item_detail .item_ingredient dt { font-size: 3.2vw; margin-bottom: 0.1em; }
  body .generous_main .item_meta .item_detail .item_ingredient dd { font-size: 2.933vw; line-height: 1.5; }
}

/* 購入ボタン */
body .generous_main .item_meta .buy_btn_wrap { margin-top: 26px; }
body .generous_main .item_meta .buy_btn_wrap .buy_btn { width: 270px; }
body .generous_main .item_meta .buy_btn { width: 100%; height: 50px; border: solid 1px #211815; background: #211815; border-radius: 0; color: #fff; display: flex; justify-content: center; align-items: center; position: relative; font-size: 14px; letter-spacing: 0.15em; text-decoration: none; }
body .generous_main .item_meta .buy_btn::before { transition: opacity 0.5s; display: block; position: absolute; right: 11px; top: 50%; width: 9px; height: 9px; content: ""; background: url("/img/usr/freepage/generous/icon-material-arrow-forward.png") center/auto no-repeat; transform: translateY(-50%); }
@media only screen and (max-width: 900px) {
  body .generous_main .item_meta .buy_btn_wrap { margin-top: 5.333vw; }
  body .generous_main .item_meta .buy_btn_wrap .buy_btn { width: 100%; }
  body .generous_main .item_meta .buy_btn { height: 13.333vw; }
  body .generous_main .item_meta .buy_btn::before { right: 2.933vw; width: 2.4vw; height: 2.4vw; }
}
@media (hover: hover) { body .generous_main .item_meta a.buy_btn { transition: opacity 0.5s; } body .generous_main .item_meta a.buy_btn:hover { opacity: 0.7; } }

/* View More リンク */
body .generous_main .item_meta .view_more_link { font-size: 13px; margin: 1.35em auto; text-align: center; }
body .generous_main .item_meta .view_more_link a { display: block; text-decoration: underline; }
body .generous_main .item_meta .view_more_link a:nth-of-type(n+2) { margin-top: 0.5em; }
@media only screen and (max-width: 900px) { body .generous_main .item_meta .view_more_link { font-size: 3.466vw; } }
@media (hover: hover) { body .generous_main .item_meta .view_more_link a { transition: opacity 0.5s; } body .generous_main .item_meta .view_more_link a:hover { opacity: 0.5; } }

/* 注意書き */
body .generous_main .product_cautions { font-size: 10px; width: 818px; max-width: 100%; margin: 1em auto 0; }
body .generous_main .product_cautions ul { font-size: 100%; margin-left: -1em; list-style: none; padding: 0; }
body .generous_main .product_cautions ul li { display: inline-block; line-height: 1.7; font-size: 100%; margin-left: 1em; letter-spacing: 0.015em; }

#concept {
  overflow: hidden; /* この1行を追加して、はみ出た::beforeを切り取る */
  /* ↓以下は元々入っていると思われるのでそのままでOKです */
  position: relative; 
}

  

/* =========================================================
   【修正版】背景画像スライダー (固定パララックス)
========================================================= */
/* 背景スライダーを画面いっぱいに固定する */
.generous_main .project_bg {
  position: fixed !important;
  left: 50% !important;
  top: 0 !important;
  transform: translateX(-50%) !important;
  width: 100vw !important;
  height: 100vh !important;
  z-index: -1 !important; /* コンテンツの裏側へ */
  background: #000;
}

/* ★超重要：Slickの枠が高さ0に潰れるのを防ぐ */
.generous_main .project_bg .slick-list,
.generous_main .project_bg .slick-track {
  height: 100vh !important;
}

/* スライドの各要素を確実に全画面にする */
.generous_main .project_bg .project_bg_item {
  width: 100vw !important;
  height: 100vh !important;
}

/* 画像をトリミングして全画面に敷き詰める */
.generous_main .project_bg .project_bg_item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}


/* =========================================================
   各セクションの背景設定
========================================================= */
#main_contents {
  position: relative;
  z-index: 1;
}

/* ★ここだけ半透明の黒にして、奥のスライダーを透かして見せる */
#project .section_inr {
  background: rgba(0, 0, 0, 0.5) !important;
}
#project {
   color: #fff;
}

/* プロジェクトセクションのリンクボタン */
.generous_main .detail_link_btn {
  width: 373px;
  max-width: 100%;
  height: 64px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: solid 1px #fff;
  text-decoration: none;
  margin-top: 85px; /* 上の余白 */
}
.generous_main .detail_link_btn > span {
  font-size: 14px;
  font-weight: 400;
  color: #fff;
  display: inline-block;
  padding: 0 2em 0 0;
  letter-spacing: 0.2em;
  position: relative;
}
/* 矢印アイコン */
.generous_main .detail_link_btn > span:after {
  display: block;
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6.22px;
  height: 6.22px;
  background: url("/img/usr/freepage/generous/arrow-forward_white.png") center/contain no-repeat;
}

/* pictureタグ自身も画面いっぱいに広げる */
.generous_main .project_bg picture {
  display: block !important;
  width: 100vw !important;
  height: 100vh !important;
}

/* =========================================================
   「年齢に応じたお手入れ」の下にスペースを作る
========================================================= */
/* PC表示時の下余白 */
@media only screen and (min-width: 900.1px) {
  body .generous_main #concept .concept_txt {
    padding-bottom: 210px !important; /* 元は148px。この数値を増やすと下の余白が広がります */
  }
}

/* スマホ表示時の下余白 */
@media only screen and (max-width: 900px) {
  body .generous_main #concept .section_inr {
    padding-bottom: 50vw !important; /* 元は41.6vw。この数値を増やすと下の余白が広がります */
  }
}

/* =========================================================
   セクション間の「白い余白」修正
   ※以前追加した background-color: #fff !important; などを上書きします
========================================================= */
/* CONCEPTの大枠の白塗りを解除 */
body .generous_main #concept { background-color: transparent !important; }

/* PROJECT DETAILS の大枠を本来のグレーに変更 */
body .generous_main #project-detial { background-color: #F5F5F5 !important; }

/* INGREDIENTS の大枠を本来のベージュに変更 */
body .generous_main #ingredients { background-color: #E6E6E2 !important; }

/* 4FREE / FRAGRANCE の大枠を本来のブラウンに変更 */
body .generous_main #free-fragrance { background-color: #726B64 !important; }

/* PRODUCT LINEUP の大枠を本来のグレーに変更 */
body .generous_main #product { background-color: #F5F5F5 !important; }

/* 「年齢に応じたお手入れ」のテキスト位置を上に持ち上げる */
body .generous_main #concept p.concept_figure_caution {
  bottom: 80px !important; 
}

/* =========================================================
   最終修正：フッターエリアの透過防止（背景スライダーを隠す）
========================================================= */
/* メインコンテンツより下にあるフッター等の領域を確実に「白」で塗りつぶす */
main.generous_main ~ *,
footer, 
.pane-footer, 
#footer, 
.footer-wrapper {
    background-color: #ffffff !important;
    position: relative !important;
    z-index: 100 !important; /* 裏の背景(-1)より確実に手前へ */
    display: block !important;
}

/* ※念のため、システムが出力する見えないタグが隙間を作らないようにする */
main.generous_main ~ script,
main.generous_main ~ style,
main.generous_main ~ noscript {
    display: none !important;
}