app/template/user_data/PR/index.twig line 1

Open in your IDE?
  1. {% extends 'default_frame.twig' %}
  2. {% block stylesheet %}
  3. <style>
  4. .pr-page {
  5.     width: 100%;
  6.     max-width: 1200px;
  7.     margin: 0 auto;
  8.     padding: 20px;
  9. }
  10. .pr-main-content {
  11.     margin-bottom: 40px;
  12. }
  13. .pr-visual-collage {
  14.     width: 90%;
  15.     max-width: 1000px;
  16.     margin: 0 auto 40px;
  17.     position: relative;
  18.     overflow: hidden;
  19.     border-radius: 10px;
  20. }
  21. .pr-visual-collage img {
  22.     width: 100%;
  23.     height: auto;
  24.     display: block;
  25. }
  26. .pr-description {
  27.     max-width: 800px;
  28.     margin: 0 auto 40px;
  29.     padding: 20px;
  30.     line-height: 1.8;
  31.     color: #333;
  32.     font-size: 1.5vw;
  33.     font-weight: bold;
  34.     text-align: center;
  35. }
  36. .pr-cta-banner {
  37.     width: 90%;
  38.     margin: auto;
  39.     background: linear-gradient(135deg, #fff0f5 0%, #ffe4e1 100%);
  40.     border-radius: 10px;
  41.     margin-bottom: 50px;
  42.     display: flex;
  43.     align-items: center;
  44.     justify-content: space-between;
  45.     gap: 20px;
  46.     cursor: pointer;
  47.     transition: transform 0.3s ease;
  48. }
  49. .pr-cta-banner:hover {
  50.     transform: translateY(-2px);
  51.     box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  52. }
  53. .pr-features-section {
  54.     background: #fff5f5;
  55.     padding: 40px 20px;
  56.     border-radius: 10px;
  57. }
  58. .pr-features-header {
  59.     background: #c71585;
  60.     color: white;
  61.     padding: 20px;
  62.     text-align: center;
  63.     border-radius: 8px;
  64.     margin-bottom: 30px;
  65.     font-size: 22px;
  66.     font-weight: bold;
  67. }
  68. .pr-features {
  69.     display: grid;
  70.     grid-template-columns: repeat(3, 1fr);
  71.     gap: 30px;
  72.     margin-top: 50px;
  73. }
  74. .pr-feature-box {
  75.     background: #FB7CB4;
  76.     border: 5px solid black;
  77.     border-radius: 10px;
  78.     padding: 30px 20px;
  79.     text-align: center;
  80.     transition: transform 0.3s ease, box-shadow 0.3s ease;
  81. }
  82. .pr-feature-box:hover {
  83.     transform: translateY(-5px);
  84.     box-shadow: 0 8px 20px rgba(255, 105, 180, 0.3);
  85. }
  86. .pr-feature-title {
  87.     font-size: 20px;
  88.     font-weight: bold;
  89.     color: #fff;
  90.     margin-bottom: 15px;
  91. }
  92. .pr-feature-description {
  93.     font-size: 14px;
  94.     font-weight: bold;
  95.     color: black;
  96.     line-height: 1.6;
  97. }
  98. .pr-feature-box img {
  99.     width: 100%;
  100.     max-width: 300px;
  101.     height: auto;
  102.     display: block;
  103.     margin: 0 auto 15px;
  104.     object-fit: contain;
  105. }
  106. /* ポイント制度ブロック */
  107. .pr-points-section {
  108.     margin-top: 60px;
  109.     background: #fff5f5;
  110.     padding: 40px 20px;
  111.     border-radius: 10px;
  112. }
  113. .pr-points-header {
  114.     background: #c71585;
  115.     color: white;
  116.     padding: 20px;
  117.     text-align: center;
  118.     border-radius: 8px;
  119.     margin-bottom: 30px;
  120.     font-size: 22px;
  121.     font-weight: bold;
  122. }
  123. .pr-points-content {
  124.     text-align: center;
  125.     margin-bottom: 30px;
  126. }
  127. .pr-points-line {
  128.     font-size: 24px;
  129.     font-weight: bold;
  130.     color: #333;
  131.     margin-bottom: 15px;
  132.     line-height: 1.6;
  133. }
  134. .pr-points-line .highlight {
  135.     color: #c71585;
  136.     font-size: 28px;
  137. }
  138. .pr-points-explanation {
  139.     background: #ff69b4;
  140.     color: white;
  141.     padding: 40px 30px;
  142.     border-radius: 8px;
  143.     margin-bottom: 30px;
  144.     display: flex;
  145.     align-items: center;
  146.     justify-content: center;
  147.     gap: 40px;
  148.     flex-wrap: wrap;
  149. }
  150. .pr-points-text {
  151.     flex: 1;
  152.     min-width: 300px;
  153.     text-align: left;
  154. }
  155. .pr-points-text-line {
  156.     font-size: 32px;
  157.     font-weight: bold;
  158.     line-height: 1.5;
  159.     margin-bottom: 8px;
  160.     white-space: nowrap;
  161. }
  162. .pr-points-coins {
  163.     display: flex;
  164.     align-items: center;
  165.     justify-content: center;
  166.     flex-shrink: 0;
  167. }
  168. .pr-points-coins img {
  169.     width: auto;
  170.     height: 120px;
  171.     max-width: 100%;
  172.     object-fit: contain;
  173. }
  174. .pr-points-button {
  175.     background: #f5f5f5;
  176.     border: 2px solid #999;
  177.     border-radius: 8px;
  178.     padding: 15px 30px;
  179.     text-align: center;
  180.     display: inline-flex;
  181.     align-items: center;
  182.     justify-content: center;
  183.     gap: 10px;
  184.     cursor: pointer;
  185.     transition: all 0.3s ease;
  186.     margin: 0 auto;
  187.     font-size: 16px;
  188.     color: #333;
  189.     font-weight: bold;
  190. }
  191. .pr-points-button:hover {
  192.     background: #e0e0e0;
  193.     border-color: #666;
  194.     transform: translateY(-2px);
  195.     box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  196. }
  197. .pr-points-button-icon {
  198.     width: 0;
  199.     height: 0;
  200.     border-left: 8px solid #333;
  201.     border-top: 6px solid transparent;
  202.     border-bottom: 6px solid transparent;
  203. }
  204. /* 割引・送料情報ブロック */
  205. .pr-discount-section {
  206.     margin-top: 60px;
  207.     background: #fff5f5;
  208.     padding: 40px 20px;
  209.     border-radius: 10px;
  210. }
  211. .pr-discount-header {
  212.     background: #c71585;
  213.     color: white;
  214.     padding: 20px;
  215.     text-align: center;
  216.     border-radius: 8px;
  217.     margin-bottom: 30px;
  218.     font-size: 22px;
  219.     font-weight: bold;
  220. }
  221. .pr-discount-intro {
  222.     text-align: center;
  223.     margin-bottom: 30px;
  224.     color: #333;
  225.     font-size: 16px;
  226.     line-height: 1.8;
  227. }
  228. .pr-discount-table {
  229.     width: 100%;
  230.     max-width: 800px;
  231.     margin: 0 auto 30px;
  232.     background: white;
  233.     border-collapse: collapse;
  234.     border-radius: 8px;
  235.     overflow: hidden;
  236.     box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  237. }
  238. .pr-discount-table th {
  239.     background: #f8f8f8;
  240.     padding: 15px;
  241.     text-align: center;
  242.     font-weight: bold;
  243.     color: #333;
  244.     border: 1px solid #e0e0e0;
  245.     font-size: 16px;
  246. }
  247. .pr-discount-table td {
  248.     padding: 15px;
  249.     text-align: center;
  250.     border: 1px solid #e0e0e0;
  251.     color: #333;
  252.     font-size: 15px;
  253. }
  254. .pr-discount-table tr:nth-child(even) {
  255.     background: #fafafa;
  256. }
  257. .pr-discount-table tr:hover {
  258.     background: #fff5f5;
  259. }
  260. .pr-discount-info {
  261.     text-align: center;
  262.     margin-bottom: 30px;
  263.     color: #333;
  264.     font-size: 14px;
  265.     line-height: 2;
  266. }
  267. .pr-discount-button {
  268.     background: #f5f5f5;
  269.     border: 2px solid #999;
  270.     border-radius: 8px;
  271.     padding: 15px 30px;
  272.     text-align: center;
  273.     display: inline-flex;
  274.     align-items: center;
  275.     justify-content: center;
  276.     gap: 10px;
  277.     cursor: pointer;
  278.     transition: all 0.3s ease;
  279.     margin: 0 auto;
  280.     font-size: 16px;
  281.     color: #333;
  282.     font-weight: bold;
  283. }
  284. .pr-discount-button:hover {
  285.     background: #e0e0e0;
  286.     border-color: #666;
  287.     transform: translateY(-2px);
  288.     box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  289. }
  290. .pr-discount-button-icon {
  291.     width: 0;
  292.     height: 0;
  293.     border-left: 8px solid #333;
  294.     border-top: 6px solid transparent;
  295.     border-bottom: 6px solid transparent;
  296. }
  297. /* レスポンシブデザイン */
  298. @media (max-width: 768px) {
  299.     .pr-page {
  300.         padding: 10px;
  301.     }
  302.     
  303.     .pr-cta-banner {
  304.         flex-direction: column;
  305.         text-align: center;
  306.     }
  307.     .pr-features-section {
  308.         padding: 30px 15px;
  309.         margin-top: 40px;
  310.     }
  311.     .pr-features-header {
  312.         font-size: 18px;
  313.         padding: 15px;
  314.     }
  315.     .pr-features {
  316.         grid-template-columns: 1fr;
  317.         gap: 20px;
  318.     }
  319.     .pr-feature-box {
  320.         padding: 20px 15px;
  321.     }
  322.     .pr-feature-box img {
  323.         max-width: 250px;
  324.         margin-bottom: 10px;
  325.     }
  326.     .pr-points-section {
  327.         padding: 30px 15px;
  328.         margin-top: 40px;
  329.     }
  330.     .pr-points-header {
  331.         font-size: 18px;
  332.         padding: 15px;
  333.     }
  334.     .pr-points-line {
  335.         font-size: 18px;
  336.     }
  337.     .pr-points-line .highlight {
  338.         font-size: 22px;
  339.     }
  340.     .pr-points-explanation {
  341.         flex-direction: column;
  342.         gap: 20px;
  343.         padding: 30px 20px;
  344.     }
  345.     .pr-points-text {
  346.         text-align: center;
  347.         min-width: auto;
  348.     }
  349.     .pr-points-text-line {
  350.         font-size: 24px;
  351.         white-space: normal;
  352.     }
  353.     .pr-points-coins img {
  354.         height: 100px;
  355.     }
  356.     .pr-discount-section {
  357.         padding: 30px 15px;
  358.         margin-top: 40px;
  359.     }
  360.     .pr-discount-header {
  361.         font-size: 18px;
  362.         padding: 15px;
  363.     }
  364.     .pr-discount-intro {
  365.         font-size: 14px;
  366.     }
  367.     .pr-discount-table {
  368.         font-size: 14px;
  369.     }
  370.     .pr-discount-table th,
  371.     .pr-discount-table td {
  372.         padding: 12px 8px;
  373.         font-size: 13px;
  374.     }
  375.     .pr-discount-info {
  376.         font-size: 13px;
  377.     }
  378. }
  379. @media (max-width: 480px) {
  380.     .pr-description {
  381.         font-size: 14px;
  382.         padding: 15px;
  383.     }
  384.     .pr-points-line {
  385.         font-size: 16px;
  386.     }
  387.     .pr-points-line .highlight {
  388.         font-size: 20px;
  389.     }
  390.     .pr-points-text-line {
  391.         font-size: 20px;
  392.         white-space: normal;
  393.     }
  394.     .pr-points-coins img {
  395.         height: 80px;
  396.     }
  397.     .pr-points-button {
  398.         padding: 12px 20px;
  399.         font-size: 14px;
  400.     }
  401.     .pr-feature-box {
  402.         padding: 15px 10px;
  403.     }
  404.     .pr-feature-title {
  405.         font-size: 18px;
  406.         margin-bottom: 10px;
  407.     }
  408.     .pr-feature-description {
  409.         font-size: 14px;
  410.         line-height: 1.5;
  411.     }
  412.     .pr-feature-box img {
  413.         max-width: 120px;
  414.         margin-bottom: 8px;
  415.     }
  416.     .pr-discount-header {
  417.         font-size: 16px;
  418.         padding: 12px;
  419.     }
  420.     .pr-discount-intro {
  421.         font-size: 13px;
  422.     }
  423.     .pr-discount-table th,
  424.     .pr-discount-table td {
  425.         padding: 10px 5px;
  426.         font-size: 12px;
  427.     }
  428.     .pr-discount-info {
  429.         font-size: 12px;
  430.     }
  431.     .pr-discount-button {
  432.         padding: 12px 20px;
  433.         font-size: 14px;
  434.     }
  435. }
  436. </style>
  437. {% endblock %}
  438. {% block javascript %}
  439. <script>
  440. $(function() {
  441.     // CTAバナーのクリックイベント
  442.     $('.pr-cta-banner').on('click', function() {
  443.         // 初めての方ページへのリンク(必要に応じて変更)
  444.         window.location.href = '/entry';
  445.     });
  446.     // スムーズスクロール
  447.     $('a[href^="#"]').on('click', function(e) {
  448.         var target = $(this.getAttribute('href'));
  449.         if (target.length) {
  450.             e.preventDefault();
  451.             $('html, body').stop().animate({
  452.                 scrollTop: target.offset().top - 100
  453.             }, 1000);
  454.         }
  455.     });
  456.     // 画像の遅延読み込み(必要に応じて)
  457.     if ('IntersectionObserver' in window) {
  458.         const imageObserver = new IntersectionObserver((entries, observer) => {
  459.             entries.forEach(entry => {
  460.                 if (entry.isIntersecting) {
  461.                     const img = entry.target;
  462.                     if (img.dataset.src) {
  463.                         img.src = img.dataset.src;
  464.                         img.removeAttribute('data-src');
  465.                         observer.unobserve(img);
  466.                     }
  467.                 }
  468.             });
  469.         });
  470.         document.querySelectorAll('img[data-src]').forEach(img => {
  471.             imageObserver.observe(img);
  472.         });
  473.     }
  474.     // ポイント残高確認ボタンのクリックイベント
  475.     $('.pr-points-button').on('click', function() {
  476.         window.location.href = '/mypage';
  477.     });
  478.     // 価格表確認ボタンのクリックイベント
  479.     $('.pr-discount-button').on('click', function() {
  480.         window.location.href = '/price';
  481.     });
  482. });
  483. </script>
  484. {% endblock %}
  485. {% block main %}
  486. <div class="ec-role">
  487.     <div class="pr-page">
  488.         <!-- トップヘッダー -->
  489.         
  490.         <!-- メインコンテンツ -->
  491.         <div class="pr-main-content">
  492.             <div class="pr-features-section">
  493.                     <div class="ec-topicRole">
  494.                         <p>
  495.                             <strong>🛍 BlackCherryが選ばれる理由</strong><br>
  496.                             BlackCherryは、お客様に安心してご利用いただける通販サイトとして、「早くて・多くて・安くて・丁寧」なサービスを追求しています。<br>
  497.                             <strong>📦 発送は最短3営業日!</strong><br>
  498.                             「すぐに観たい」に応えるスピード対応。ご注文からお届けまで、迅速かつ丁寧に手配いたします。<br>
  499.                             <strong>🎥 業界最大級の商品数!</strong><br>
  500.                             レアな名作から最新作まで、あらゆるニーズに応えるラインナップ。探していた“あの1本”が、きっと見つかります。<br>
  501.                             <strong>💁‍♀️ 安心・丁寧な対応</strong><br>
  502.                             お客様の声を何より大切に。ご不明点やトラブルにも、スタッフが迅速・丁寧に対応いたします。<br>
  503.                             <strong>💸 圧倒的なコストパフォーマンス</strong><br>
  504.                             激安セール・まとめ買い割引など、毎日がちょっと嬉しくなる価格で。お得なセットや期間限定企画も多数展開中。<br>
  505.                             <strong>🎁 お得が続く!ポイント制度あり</strong><br>
  506.                             会員登録(無料)で、100円ごとに10ポイント還元。1,000円で100ポイント=100円分が貯まる高還元設計です。<br>
  507.                             次回のお買い物からすぐに使えるので、使うほどお得!<br>
  508.                             <strong>🎉 今だけ!新規会員登録で250ポイントプレゼント中!</strong><br>
  509.                             BlackCherryは「選びやすく、届きやすく、続けやすい」を大切に、<br>
  510.                             皆さまの“大人の自由時間”を、もっと楽しく豊かにするサービスをこれからもお届けしてまいります。
  511.                         </p>
  512.                 </div>
  513.                 <!-- 説明文 -->
  514.                 <div class="pr-description">
  515.                     BlackCherryは、大人の自由時間をもっと楽しく、豊かにするために、<br>安心・お得・迅速な通販サービスを追求しています。
  516.                 </div>
  517.                 <!-- 初めての方へ(CTA) -->
  518.                 <div class="pr-cta-banner">
  519.                     <a href="{{ url('help_guide') }}">
  520.                         <img src="{{ asset('assets/img/pr/pr_cta_beginner.jpg') }}" alt="初めての方はこちら" />
  521.                     </a>
  522.                 </div>
  523.                 <!-- 特徴ボックス -->
  524.                 <div class="pr-features">
  525.                     <!-- 特徴1: 最短3営業日発送 -->
  526.                     <div class="pr-feature-box">
  527.                         <div class="pr-feature-title">最短3営業日発送</div>
  528.                         <img src="{{ asset('assets/img/pr/pr_cta_1.png') }}" alt="最短3営業日発送" />
  529.                         <div class="pr-feature-description">
  530.                             「すぐに観たい」に応える<br>スピード対応。
  531.                         </div>
  532.                     </div>
  533.                     <!-- 特徴2: 業界最大級の商品数 -->
  534.                     <div class="pr-feature-box">
  535.                         <div class="pr-feature-title">業界最大級の商品数</div>
  536.                         <img src="{{ asset('assets/img/pr/pr_cta_2.png') }}" alt="業界最大級の商品数" />
  537.                         <div class="pr-feature-description">
  538.                             レアな名作から<br>人気の定番まで
  539.                         </div>
  540.                     </div>
  541.                     <!-- 特徴3: 安心&丁寧な対応 -->
  542.                     <div class="pr-feature-box">
  543.                         <div class="pr-feature-title">安心&丁寧な対応</div>
  544.                         <img src="{{ asset('assets/img/pr/pr_cta_3.png') }}" alt="安心&丁寧な対応" />
  545.                         <div class="pr-feature-description">
  546.                             365日営業・発送でお客様に<br>寄り添うサポート体制
  547.                         </div>
  548.                     </div>
  549.                 </div>
  550.             </div>
  551.             <!-- ポイント制度ブロック -->
  552.             <div class="pr-points-section">
  553.                 <!-- ヘッダー -->
  554.                 <div class="pr-points-header">
  555.                     充実した会員制度
  556.                 </div>
  557.                 <!-- ポイント付与内容 -->
  558.                 <div class="pr-points-content">
  559.                     <div class="pr-points-line">
  560.                         新規会員登録で<span class="highlight">250Pt</span>付与
  561.                     </div>
  562.                     <div class="pr-points-line">
  563.                         会員の方には <span class="highlight">100円ごとに10Pt</span>付与
  564.                     </div>
  565.                 </div>
  566.                 <!-- ポイント説明 -->
  567.                 <div class="pr-points-explanation">
  568.                     <div class="pr-points-text">
  569.                         <div class="pr-points-text-line">1Pt (ポイント) は</div>
  570.                         <div class="pr-points-text-line">1円として使用できます。</div>
  571.                     </div>
  572.                     <div class="pr-points-coins">
  573.                         <img src="{{ asset('assets/img/pr/pr_point.png') }}" alt="ポイント" />
  574.                     </div>
  575.                 </div>
  576.                 <!-- ポイント残高確認ボタン -->
  577.                 <div style="text-align: center;">
  578.                     <a href="{{ url('mypage') }}">
  579.                     <div class="pr-points-button">
  580.                         ポイント残高の確認 (マイページ)
  581.                         <div class="pr-points-button-icon"></div>
  582.                     </div>
  583.                     </a>
  584.                 </div>
  585.             </div>
  586.             <!-- 割引・送料情報ブロック -->
  587.             <div class="pr-discount-section">
  588.                 <!-- ヘッダー -->
  589.                 <div class="pr-discount-header">
  590.                     買えば買うほどお得に!
  591.                 </div>
  592.                 <!-- 説明文 -->
  593.                 <div class="pr-discount-intro">
  594.                     1度に沢山の買い物をすればするほど、<br>
  595.                     お得にDVDを楽しんでいただくことができます!
  596.                 </div>
  597.                 <!-- 割引・送料テーブル -->
  598.                 <table class="pr-discount-table">
  599.                     <thead>
  600.                         <tr>
  601.                             <th>ご注文金額(税込)</th>
  602.                             <th>割引内容</th>
  603.                             <th>送料</th>
  604.                         </tr>
  605.                     </thead>
  606.                     <tbody>
  607.                         <tr>
  608.                             <td>5,000円以上</td>
  609.                             <td>500円割引</td>
  610.                             <td>あり</td>
  611.                         </tr>
  612.                         <tr>
  613.                             <td>9,000円以上</td>
  614.                             <td>1000円割引</td>
  615.                             <td>あり</td>
  616.                         </tr>
  617.                         <tr>
  618.                             <td>15,000円以上</td>
  619.                             <td>1000円割引</td>
  620.                             <td>無料</td>
  621.                         </tr>
  622.                         <tr>
  623.                             <td>25,000円以上</td>
  624.                             <td>3,000円割引</td>
  625.                             <td>無料</td>
  626.                         </tr>
  627.                     </tbody>
  628.                 </table>
  629.                 <!-- 追加情報 -->
  630.                 <div class="pr-discount-info">
  631.                     割引はカート内で自動適用されます。<br>
  632.                     15,000円以上で送料無料となります。
  633.                 </div>
  634.                 <!-- 価格表確認ボタン -->
  635.                 <div style="text-align: center;">
  636.                     <a href="{{ url('price') }}">
  637.                     <div class="pr-discount-button">
  638.                         価格表を確認する
  639.                         <div class="pr-discount-button-icon"></div>
  640.                     </div>
  641.                     </a>
  642.                 </div>
  643.             </div>
  644.         </div>
  645.     </div>
  646. </div>
  647. {% endblock %}