@charset "UTF-8";

@media print {
  /* ==========================================================================
     1. 印刷全体の基本設定（画面の見た目の維持・スマホ幅のシミュレート）
     ========================================================================== */
  * {
    /* 背景色・背景画像を強制的に表示する（インク節約による白飛び防止） */
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  html {
    /* ベースとなるフォントサイズをスマホ表示に合わせる(62.5%) */
    font-size: 62.5% !important;
  }

  body {
    /* 印刷時の紙面上の横幅を「スマホ表示（767px以下）」としてブラウザに認識させる */
    width: 750px !important; 
    min-width: 750px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    font-size: 1.6rem !important;
    line-height: 1.8 !important; /* スマホ用の行間 */
    background-color: #fff !important;
    color: #000 !important;
  }

  /* ==========================================================================
     2. レイアウト・共通パーツのスマホ化（767px以下のスタイルを強制）
     ========================================================================== */
  
  /* インナーの余白をスマホ用の10%に固定 */
  .inner, .wide_inner, .narrow_inner {
    padding-inline: 10% !important;
  }

  /* Flexの反転解除 */
  ._reverse {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -ms-flex-direction: row !important;
    flex-direction: row !important;
  }

  /* マージン類のスマホ用調整 */
  .mt50, .mt70 { margin-top: 40px !important; }
  .mb30 { margin-bottom: 20px !important; }
  .mb40 { margin-bottom: 30px !important; }
  .mb50, .mb60, .mb70, .mb80, .mb90 { margin-bottom: 40px !important; }
  .mb100, .mb120 { margin-bottom: 60px !important; }

  /* 共通ボタンのスマホサイズ化 */
  .btn {
    max-width: 300px !important;
    min-height: 60px !important;
    padding: 10px 50px !important;
    font-size: 16px !important;
  }
  .btn::before, .btn::after {
    right: 20px !important;
    width: 20px !important;
    height: 2px !important;
  }
  .btn::before { margin-top: -3px !important; }
  .btn::after { margin-top: 3px !important; }

  /* 見出しのスマホサイズ化 */
  .deco_headline01 { font-size: 26px !important; }
  .deco_headline02 { font-size: 20px !important; }

  /* ==========================================================================
     3. 各ページ・コンポーネントごとの縦並び（スマホ表示）化
     ========================================================================== */

  /* 2カラムレイアウト（サイドナビ・メイン）を縦並びに */
  .sidenav_outer {
    display: block !important;
    padding: 80px 0 0 !important;
  }
  .main_wrap {
    padding: 0 10% !important;
  }
  .sidenav_wrap {
    width: 100% !important;
    margin: 60px 0 0 !important;
    padding: 40px 10% !important;
    background-color: #F6F4EF !important;
  }
  .sidenav_inner {
    position: static !important;
    top: auto !important;
    padding: 0 !important;
  }
  .sidenav_block:not(:last-child) {
    margin-bottom: 30px !important;
    padding-bottom: 30px !important;
    border-bottom: solid 1px #d0cbbe !important;
  }
  .sidenav_title { margin-bottom: 10px !important; }
  .category_list { margin: -10px 0 0 -1.5em !important; }
  .category_list > li {
    width: auto !important;
    margin: 10px 0 0 1.5em !important;
  }

  /* メインビジュアル */
  .mv_wrap { padding-top: 60px !important; }
  .mv_headline {
    padding: 50px 20px 60px !important;
    font-size: 14px !important;
  }
  .mv_headline .en { font-size: 40px !important; margin-bottom: 2px !important; }
  .description_wrap { padding: 60px 0 70px !important; }
  .description_content, .description_content.small_content {
    width: 100% !important;
    font-size: 18px !important;
  }
  .pagination { margin-top: 50px !important; }

  /* ヘッダー周り */
  .menu { top: 8px !important; right: 20px !important; width: 36px !important; height: 27px !important; }
  .menu::before { top: 100% !important; left: 50% !important; -webkit-transform: translateX(-50%) !important; transform: translateX(-50%) !important; margin-top: 8px !important; font-size: 10px !important; }
  .menu .menu__line { width: 100% !important; }
  .menu .menu__line.menu__line_top { top: 10px !important; }
  .menu .menu__line.menu__line_bottom { bottom: 4px !important; }
  .header { display: -webkit-box !important; display: -ms-flexbox !important; display: flex !important; -ms-flex-wrap: wrap !important; flex-wrap: wrap !important; -webkit-box-align: center !important; -ms-flex-align: center !important; align-items: center !important; min-height: 60px !important; padding: 10px 140px 10px 20px !important; }
  .header_logo { max-width: 211px !important; }
  .header_logo a { display: block !important; padding: 0 0 4px 36px !important; }
  .header_logo a::before { width: 30px !important; padding-top: 20px !important; }
  .header_logo .en { display: block !important; width: 100% !important; }
  .header_logo .ja { display: none !important; }
  .gnav { padding-left: 33%; }
  .gnav::before { width: 33%; }
  .gnav_wrap { padding: 60px 0 40px !important; }
  .gnav_inner { padding: 20px 20px 0 !important; }
  .header_nav { margin: -40px 0 0 0 !important; }
  .header_nav > li { margin: 40px 0 0 0 !important; }
  .header_nav > li.half_item { min-width: 0 !important; width: 100% !important; }
  .header_nav .child_nav { margin-top: 14px !important; }
  .header_nav .child_nav > li { margin-top: 10px !important; }
  .header_store_btn { display: block !important; top: 8px !important; right: 80px !important; text-align: center !important; }
  .header_store_btn .icon_store { margin: 0 auto !important; }
  .header_store_btn .text { margin: 6px 0 0 !important; font-size: 10px !important; }

  /* フッター */
  .footer_wrap { display: block !important; padding: 38px 9.6% 40px !important; background-size: 276px !important; background-position: top -13px left -7px !important; }
  .footer_logo_img { margin: 0 0 40px !important; }
  .footer_info_flex { margin: -60px 0 0 0 !important; }
  .footer_info_block { width: 100% !important; min-width: 0 !important; margin: 60px 0 0 0 !important; padding-top: 0 !important; }
  .footer_info_block .shop_logo { margin-bottom: 8px !important; }
  .footer_nav { margin: 40px 0 -20px -54px !important; }
  .footer_nav > li { margin: 0 0 20px 54px !important; }
  .footer_nav .child_nav { margin-top: 14px !important; }
  .footer_nav .child_nav > li { margin-top: 10px !important; }
  .footer_contact_btn { padding: 14px 6px !important; }
  .footer_contact_btn .en { margin-bottom: 2px !important; }

  /* フォーム要素 */
  input, textarea { padding: 10px 16px !important; font-size: 16px !important; }
  input { height: 56px !important; }
  textarea { min-height: 250px !important; }
  .input_flex { font-size: 16px !important; }
  .input_box.half_column, .textarea_box.half_column { width: 100% !important; }
  .acceptance_grid { width: 100% !important; }
  .acceptance_check_box { padding: 5px 0 5px 56px !important; }
  .acceptance_check_box .required { width: 46px !important; padding: 4px 4px 6px !important; font-size: 13px !important; }
  .radio_box { font-size: 16px !important; }
  .submit_box::before, .submit_box::after { right: 20px !important; width: 20px !important; height: 2px !important; }
  .submit_box::before { margin-top: -3px !important; }
  .submit_box::after { margin-top: 3px !important; }
  .submit_box:hover::before { margin-top: 3px !important; }
  .submit_box:hover::after { margin-top: -3px !important; }
  .submit_box .form_submit_btn { padding: 10px 50px !important; font-size: 16px !important; }
  .form_wrap { padding-bottom: 100px !important; }
  .form_item { padding: 0 !important; }
  .form_item:not(:last-child) { margin-bottom: 40px !important; }
  .form_item > dt { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; margin-bottom: 10px !important; padding: 0 !important; font-size: 16px !important; }
  .form_item > dd { min-height: 0 !important; padding-left: 56px !important; }
  .form_item > dd .required { width: 46px !important; padding: 4px 4px 6px !important; font-size: 13px !important; }

  /* グリッド（商品一覧・ニュース一覧など） */
  .item_grid { margin: -40px 0 0 !important; }
  .item_grid .item_column { width: 100% !important; margin: 40px 20px 0 !important; }
  .item_slider_outer { padding: 0 7.2vw !important; }
  .item_slider_outer .swiper-button-prev, .item_slider_outer .swiper-button-next { width: 8.8vw !important; height: 9.86vw !important; margin-top: 12% !important; }
  .item_slider_outer .swiper-button-prev::before, .item_slider_outer .swiper-button-prev::after, .item_slider_outer .swiper-button-next::before, .item_slider_outer .swiper-button-next::after { right: -5.88% !important; width: 111.76% !important; height: 10.81% !important; }
  .item_slider_outer .swiper-button-prev::before, .item_slider_outer .swiper-button-next::before { margin-top: -19.11% !important; }
  .item_slider_outer .swiper-button-prev::after, .item_slider_outer .swiper-button-next::after { margin-top: 19.11% !important; }
  .item_slider_outer .swiper-button-prev:hover::before, .item_slider_outer .swiper-button-next:hover::before { margin-top: 19.11% !important; }
  .item_slider_outer .swiper-button-prev:hover::after, .item_slider_outer .swiper-button-next:hover::after { margin-top: -19.11% !important; }
  .item_column a .item_name .en { font-size: 13px !important; }
  .item_modal_wrap .modaal-close { top: 18px !important; right: 18px !important; width: 41px !important; height: 41px !important; }
  .item_modal_wrap .modaal-close::before, .item_modal_wrap .modaal-close::after { top: 10px !important; left: 20px !important; height: 22px !important; }
  .item_modal_wrap .modaal-inner-wrapper { padding: 0 !important; }
  .item_modal_wrap .modaal-container { max-width: 350px !important; height: 100dvh !important; border-radius: 0 !important; }
  .item_modal_wrap .modaal-content-container { padding: 16px 0 40px !important; }
  .item_modal_scroll { padding: 0 20px 20px !important; }
  .item_modal_scroll .simplebar-track.simplebar-vertical { width: 5px !important; }
  .item_modal_content { font-size: 12px !important; }
  .item_modal_content .item_name { padding: 0 70px 0 20px !important; }
  .item_modal_content .taste_wrap, .item_modal_content .info_item_group { padding: 0 6px 20px !important; }
  .item_modal_content .taste_title, .item_modal_content .info_item > dt { width: 106px !important; margin-right: 6px !important; }
  .item_modal_img_wrap { display: block !important; margin-bottom: 20px !important; }
  .item_modal_slider, .item_modal_thumbnail { width: 100% !important; }

  /* トップページ・アバウト等 */
  .top_mv_text_block { right: 10% !important; bottom: 14% !important; }
  .top_mv_headline { font-size: 20px !important; }
  .top_item_section { padding: 60px 0 !important; }
  .top_item_section .top_headline { margin-bottom: 30px !important; }
  .top_item_section .btn { margin-top: 50px !important; }
  .top_about_grid { display: block !important; }
  .top_about_grid .grid_item:nth-child(1) a { min-height: 100vw !important; }
  .top_about_grid .grid_item a { -webkit-box-pack: start !important; -ms-flex-pack: start !important; justify-content: flex-start !important; min-height: 50.13vw !important; padding: 12px 4.8% !important; }
  .top_about_title { width: 100% !important; padding-right: 70px !important; font-size: 64px !important; }
  .top_about_title::before, .top_about_title::after { right: -6px !important; width: 72px !important; height: 9px !important; }
  .top_news_section { padding: 60px 0 !important; }
  .top_news_section .top_headline { margin-bottom: 40px !important; }
  .top_news_section .news_grid { margin: -40px 0 0 !important; }
  .top_news_section .news_column { width: 100% !important; margin: 40px 0 0 !important; }
  .top_news_section .btn { margin-top: 50px !important; }
  .top_news_inner { padding: 0 10% !important; }

  /* ニュース詳細・アバウト詳細 */
  .news_grid { margin: -40px 0 0 !important; }
  .news_column { width: 100% !important; margin: 40px 0 0 !important; }
  .news_column .title { min-height: 0 !important; margin-top: 10px !important; }
  .news_column .text_block { margin-top: 4px !important; }
  .news_column .tag_box { margin-top: 14px !important; }
  .news_detail_content { width: 100% !important; }
  .news_detail_content .category_date_box { margin-bottom: 10px !important; }
  .news_detail_content .btn { margin-top: 50px !important; }
  .news_title { font-size: 18px !important; }
  .tag_item { display: block !important; padding: 16px 14px 20px !important; }
  .tag_item > dt { margin: 0 0 10px !important; }
  .about_top_content a { height: 200px !important; padding: 40px 5.33% !important; }
  .about_top_content a .title { font-size: 16px !important; }
  .about_top_content a .title .en { padding: 0 10px !important; font-size: 28px !important; }
  .about_story_wrap { padding: 0 0 20px !important; }
  .about_story_nav { display: none !important; } /* スティッキーナビは印刷で不要なため非表示 */
  .about_story_content { padding: 0 !important; }
  .about_story_content .img_block { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; opacity: 1 !important; }
  .about_story_content .img_block img { opacity: 1 !important; }
  .about_story_content .text_block { display: block !important; min-height: 0 !important; padding: 50px 10% 60px !important; opacity: 1 !important; }
  .about_story_content .title { margin-bottom: 20px !important; }
  .about_concept_title { margin-bottom: 30px !important; }
  .about_concept_title .catch { font-size: 24px !important; }
  .about_concept_wrap { padding: 80px 0 !important; }
  .about_concept_content { display: block !important; }
  .about_concept_content:not(:last-child), .about_concept_content[class*="even"]:not(:last-child) { margin-bottom: 100px !important; }
  .about_concept_content[class*="even"] .text_block, .about_concept_content .text_block { padding: 0 10% !important; }
  .about_concept_content[class*="even"] .img_block, .about_concept_content .img_block { margin-top: 40px !important; width: 100% !important; }
  .about_concept_content .concept_logo_img_box { width: 100% !important; max-width: 300px !important; margin: 0 auto !important; }
  .about_concept_content .concept_promise_img { width: 100% !important; max-width: 300px !important; margin: 0 auto !important; }
  .about_efforts_wrap { padding: 60px 0 80px !important; }
  .about_efforts_wrap .ourline_text { margin-bottom: 40px !important; text-align: left !important; }
  .about_efforts_grid { grid-template-columns: repeat(1, 1fr) !important; gap: 50px 0 !important; }
  .efforts_column .img_block { margin-bottom: 20px !important; }
  .about_message_wrap { padding: 60px 0 80px !important; }
  .about_profile_wrap { padding: 80px 0 !important; }
  .about_profile_flex { display: block !important; }
  .about_profile_flex .img_block { max-width: 300px !important; width: 100% !important; margin: 0 auto 40px !important; }
  .license_item { display: block !important; padding: 24px 0 !important; }
  .license_item > dt { margin: 0 0 20px !important; }
  .license_list > li { padding-left: 8em !important; }
  .license_list .month { left: 4em !important; }
  .about_member_wrap { padding: 60px 0 80px !important; }
  .about_member_flex { display: block !important; }
  .about_member_flex:not(:last-child) { margin-bottom: 80px !important; }
  .about_member_flex .img_block { width: 70% !important; max-width: 180px !important; margin: 0 auto 20px !important; }
  .about_member_flex .info_detail { padding-left: 1em !important; }
  .about_member_slider_outer .swiper-button-prev, .about_member_slider_outer .swiper-button-next { top: 36% !important; width: 50px !important; height: 50px !important; }
  .about_member_slider_outer .swiper-button-prev { left: -20px !important; }
  .about_member_slider_outer .swiper-button-next { right: -20px !important; }
  .about_company_wrap { padding: 60px 0 80px !important; }
  .about_company_content:not(:last-child) { margin-bottom: 100px !important; }
  .about_company_content .company_name { margin-bottom: 40px !important; }
  .about_company_flex { display: block !important; }
  .about_company_flex .img_block { width: 100% !important; margin: 40px 0 0 !important; }
  .company_info_item_group .info_item:not(:last-child) { margin-bottom: 20px !important; }
  .company_info_item_group .info_item > dt { width: 5em !important; margin-right: 0.5em !important; }
  .about_gallery_wrap .btn { margin: 40px auto 60px !important; }
  .service_item_section { padding: 60px 0 80px !important; }
  .service_item_flex { display: block !important; margin-bottom: 80px !important; }
  .store_btn { margin: 20px auto 0 !important; }
  .service_oem_section { padding: 60px 0 80px !important; }
  .service_oem_section .outline_text { text-align: left !important; }
  .service_oem_content { display: block !important; padding: 80px 0 !important; }
  .service_oem_title { margin: 0 0 30px !important; padding-bottom: 20px !important; }
  .service_point_grid, .service_oem_grid { grid-template-columns: repeat(1, 1fr) !important; gap: 40px 0 !important; }
  .service_introduction_section { padding: 60px 0 80px !important; }
  .service_introduction_content:not(:last-child) { margin-bottom: 80px !important; }
  .service_introduction_content .deco_headline02 { margin-bottom: 50px !important; }
  .service_introduction_content .deco_headline02 .ja { min-width: 0 !important; }
  .service_introduction_flex { display: block !important; }
  .service_introduction_flex:not(:last-child) { margin-bottom: 60px !important; }
  .service_introduction_flex .img_block { width: 100% !important; margin: 40px 0 0 !important; }
  .service_introduction_flex .text_block { padding-top: 0 !important; }
  .service_introduction_flex .title { margin-bottom: 20px !important; font-size: 20px !important; }
  .service_introduction_flex .btn { min-height: 70px !important; margin-top: 30px !important; font-size: 18px !important; }
  .introduction_slider_outer .swiper-button-prev, .introduction_slider_outer .swiper-button-next { top: 36% !important; width: 50px !important; height: 50px !important; }
  .introduction_slider_outer .swiper-button-prev { left: -20px !important; }
  .introduction_slider_outer .swiper-button-next { right: -20px !important; }
  .privacy_section { padding-bottom: 80px !important; }
  .privacy_section .inner { padding-inline: 10% !important; }
  .privacy_content:not(:last-child) { margin-bottom: 60px !important; }
  .privacy_detail { padding-left: 0 !important; }
  .notfound_wrap { padding: 80px 10% !important; }
  .notfound_content { max-width: none !important; padding: 40px 20px !important; }
  .notfound_content .btn { margin-top: 40px !important; }

  /* ==========================================================================
     4. 印刷クリーンアップ（ローディング画面など不要パーツの強制非表示）
     ========================================================================== */
  #loading_wrap, 
  #loading_inner,
  .footer,
  .svg_defs {
    display: none !important;
  }
}


@media print {
  /* ==========================================================================
     【追加】スクロールアニメーション要素の強制表示設定
     ========================================================================== */
  
  /* フェードイン待ち（不透明度0）になっている要素を強制的に100%表示にする */
  .fadein,
  .about_story_content .img_block,
  .about_story_content .text_block,
  .gallery_column,
  .about_concept_content .img_block .concept_commitment_img_box .concept_commitment_img img,
  .about_concept_content .img_block .concept_commitment_img_box .concept_commitment_img:nth-child(2) img {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important; /* 動かす前のズレなどもリセット */
    -webkit-transform: none !important;
    transition: none !important; /* アニメーション自体を無効化 */
    -webkit-transition-duration: 0s !important;
    transition-duration: 0s !important;
  }

  /* Swiper（スライダー）の隠れているスライドも強制表示 */
  .item_slider .swiper-slide,
  .top_mv_slider .swiper-slide {
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* 念のため、要素を囲むコンテナのoverflow: hidden等で消えないように調整 */
  html, body, main {
    overflow: visible !important;
  }
}