@charset "utf-8";

:root {
  --ff-sans_serif: -apple-system, BlinkMacSystemFont, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, Helvetica, Arial, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --ff-serif: "Noto Serif JP", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  --ff-smg: "Sorts Mill Goudy", var( --ff-serif );
  --ff-zmg: "Zen Maru Gothic", var( --ff-sans_serif );
  --ff-qs: "Quicksand", var( --ff-sans_serif );
  --cl-br: var( --cl-br );

  --shape-triangle-top: polygon(50% 0, 100% 100%, 0 100%);
  --shape-triangle-bottom: polygon(0 0, 100% 0, 50% 100%);
  --shape-triangle-right: polygon(0 0, 100% 50%, 0 100%);
  --shape-triangle-left: polygon(0 50%, 100% 0, 100% 100%);
  --shape-triangle-lower-left: polygon(0 0, 100% 100%, 0 100%);
  --shape-triangle-upper-left: polygon(0 0, 100% 0, 0 100%);
  --shape-triangle-lower-right: polygon(100% 0, 100% 100%, 0 100%);
  --shape-triangle-upper-right: polygon(0 0, 100% 0, 100% 100%);

  --gsPict-greeting: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20108%20108%22%20fill%3D%20%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Cpath%20d%3D%22M27.12%2C53.97c6.86%2C12.14%2C17.2%2C26.9%2C26.88%2C26.9%2C16.44%2C0%2C34.77-42.59%2C34.77-42.59%22%2F%3E%3Cpath%20d%3D%22M64.37%2C18.22c1.95-1.61%2C2.53-4.43%2C1.22-6.69-1.31-2.26-4.04-3.18-6.4-2.29-.42-2.5-2.57-4.4-5.18-4.4s-4.77%2C1.91-5.18%2C4.4c-2.37-.89-5.1.03-6.4%2C2.29-1.31%2C2.26-.73%2C5.08%2C1.22%2C6.69-1.95%2C1.61-2.53%2C4.43-1.22%2C6.69s4.04%2C3.18%2C6.4%2C2.29c.42%2C2.5%2C2.57%2C4.4%2C5.18%2C4.4s4.77-1.91%2C5.18-4.4c2.37.89%2C5.1-.03%2C6.4-2.29%2C1.31-2.26.73-5.08-1.22-6.69Z%22%2F%3E%3Cpath%20d%3D%22M41.18%2C31.6c1.95-1.61%2C2.53-4.43%2C1.22-6.69-1.31-2.26-4.04-3.18-6.4-2.29-.42-2.5-2.57-4.4-5.18-4.4s-4.77%2C1.91-5.18%2C4.4c-2.37-.89-5.1.03-6.4%2C2.29-1.31%2C2.26-.73%2C5.08%2C1.22%2C6.69-1.95%2C1.61-2.53%2C4.43-1.22%2C6.69%2C1.31%2C2.26%2C4.04%2C3.18%2C6.4%2C2.29.42%2C2.5%2C2.57%2C4.4%2C5.18%2C4.4s4.77-1.91%2C5.18-4.4c2.37.89%2C5.1-.03%2C6.4-2.29%2C1.31-2.26.73-5.08-1.22-6.69Z%22%2F%3E%3Cpath%20d%3D%22M65.6%2C38.29c1.31%2C2.26%2C4.04%2C3.18%2C6.4%2C2.29.42%2C2.5%2C2.57%2C4.4%2C5.18%2C4.4s4.77-1.91%2C5.18-4.4c2.37.89%2C5.1-.02%2C6.4-2.29s.73-5.08-1.22-6.69c1.95-1.61%2C2.53-4.43%2C1.22-6.69-1.31-2.26-4.04-3.18-6.4-2.29-.42-2.5-2.57-4.4-5.18-4.4s-4.77%2C1.91-5.18%2C4.4c-2.37-.89-5.1.03-6.4%2C2.29-1.31%2C2.26-.73%2C5.08%2C1.22%2C6.69-1.95%2C1.61-2.53%2C4.43-1.22%2C6.69Z%22%2F%3E%3Cpath%20class%3D%22c%22%20d%3D%22M19.23%2C38.29s2.39%2C5.55%2C6.22%2C12.64%22%2F%3E%3Ccircle%20cx%3D%2254%22%20cy%3D%2218.22%22%20r%3D%224.16%22%2F%3E%3Cg%3E%3Cpath%20d%3D%22M64.37%2C44.98c1.95-1.61%2C2.53-4.43%2C1.22-6.69-1.31-2.26-4.04-3.18-6.4-2.29-.42-2.5-2.57-4.4-5.18-4.4s-4.77%2C1.91-5.18%2C4.4c-2.37-.89-5.1.03-6.4%2C2.29-1.31%2C2.26-.73%2C5.08%2C1.22%2C6.69-1.95%2C1.61-2.53%2C4.43-1.22%2C6.69s4.04%2C3.18%2C6.4%2C2.29c.42%2C2.5%2C2.57%2C4.4%2C5.18%2C4.4s4.77-1.91%2C5.18-4.4c2.37.89%2C5.1-.03%2C6.4-2.29%2C1.31-2.26.73-5.08-1.22-6.69Z%22%2F%3E%3Ccircle%20cx%3D%2254%22%20cy%3D%2244.98%22%20r%3D%224.16%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2230.81%22%20cy%3D%2231.6%22%20r%3D%224.16%22%2F%3E%3Cpath%20d%3D%22M59.46%2C102.27c-1.76.59-3.58.89-5.46.89-4.61%2C0-8.94-1.89-12.7-5.19l5.61-18.94%22%2F%3E%3Cpath%20d%3D%22M61.08%2C79.03l5.64%2C18.92c-1.51%2C1.34-3.1%2C2.44-4.77%2C3.28%22%2F%3E%3Cpath%20d%3D%22M32.03%2C18.26c-2.7-4.68-.09-11.24-.09-11.24%2C0%2C0%2C6.98%2C1.03%2C9.68%2C5.71%22%2F%3E%3Ccircle%20cx%3D%2277.19%22%20cy%3D%2231.6%22%20r%3D%224.16%22%2F%3E%3Cpath%20d%3D%22M54%2C80.88c16.44%2C0%2C34.77-42.59%2C34.77-42.59%22%2F%3E%3Cpath%20class%3D%22c%22%20d%3D%22M74.83%2C51.95c.39-.68.76-1.36%2C1.13-2.02%22%2F%3E%3Cpath%20class%3D%22c%22%20d%3D%22M70.99%2C58.36c.46-.72.91-1.45%2C1.35-2.17%22%2F%3E%3Cpath%20d%3D%22M75.97%2C18.26c2.7-4.68.09-11.24.09-11.24%2C0%2C0-6.98%2C1.03-9.68%2C5.71%22%2F%3E%3Cpath%20d%3D%22M47.09%2C71.01c1.83%2C4.66%2C4.43%2C9.87%2C6.91%2C9.87%2C4.5%2C0%2C9.38-17.06%2C9.38-17.06%22%2F%3E%3Cline%20class%3D%22c%22%20x1%3D%2254%22%20y1%3D%2280.88%22%20x2%3D%2256.56%22%20y2%3D%2290.43%22%2F%3E%3C%2Fsvg%3E");
  --gsPict-babygift: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20108%20108%22%20fill%3D%20%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Cpath%20d%3D%22M79.89%2C31.94c.42%2C1.88.65%2C3.83.65%2C5.83v32.65c0%2C13.98-10.86%2C25.43-24.61%2C26.36%22%2F%3E%3Cpath%20d%3D%22M27.56%2C52.44v-14.67c0-14.59%2C11.83-26.42%2C26.42-26.42h.14c6.12%2C0%2C11.75%2C2.08%2C16.22%2C5.57%22%2F%3E%3Cpath%20d%3D%22M27.8%2C73.96c-.15-1.16-.23-2.34-.23-3.54v-14.18%22%2F%3E%3Cpath%20d%3D%22M52.25%2C96.78c-7.14-.46-13.51-3.76-17.99-8.78%22%2F%3E%3Cpath%20d%3D%22M89.11%2C11.17c-2.64.43-5.07%2C2.15-5.55%2C4.56-1.19-6-14.42-7.67-13.13%2C3.92.7%2C6.31%2C13.13%2C15.18%2C13.13%2C15.18%2C0%2C0%2C12.43-8.87%2C13.13-15.18.53-4.79-1.41-7.32-3.96-8.21%22%2F%3E%3Cpath%20d%3D%22M22.78%2C95.68c1.01.79%2C1.66%2C1.26%2C1.66%2C1.26%2C0%2C0%2C12.43-8.87%2C13.13-15.18%2C1.29-11.59-11.94-9.92-13.13-3.92-1.19-6-14.42-7.67-13.13%2C3.92.42%2C3.76%2C5%2C8.43%2C8.64%2C11.59%22%2F%3E%3Cpath%20d%3D%22M80.54%2C37.63c0%2C25.08-40.64%2C13.65-36.75%2C57.26%22%2F%3E%3Cpath%20d%3D%22M27.56%2C37.63c0%2C15.51%2C15.55%2C17.06%2C26.49%2C26.3%22%2F%3E%3Cpath%20d%3D%22M43.53%2C50.32s-2.27%2C1.31-4.53%2C4.24%22%2F%3E%3Cpath%20d%3D%22M74.55%2C37.76c0-2.49-2.17-4.53-4.93-4.72-2.03-6.72-8.26-11.62-15.64-11.62s-13.62%2C4.9-15.64%2C11.62c-2.76.19-4.93%2C2.23-4.93%2C4.72s2.17%2C4.53%2C4.93%2C4.72c2.03%2C6.72%2C8.26%2C11.62%2C15.64%2C11.62s13.62-4.9%2C15.64-11.62c2.76-.19%2C4.93-2.23%2C4.93-4.72Z%22%2F%3E%3Cpath%20d%3D%22M54.82%2C21.45c2.79%2C2.21%2C3.71%2C4.13%2C3.67%2C5.89-.08%2C3.12-4.95%2C5.11-6.23%2C0%22%2F%3E%3Cpath%20d%3D%22M64.42%2C50.32s2.27%2C1.31%2C4.53%2C4.24%22%2F%3E%3C%2Fsvg%3E");
  --gsPict-bridal:   url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20108%20108%22%20fill%3D%20%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Cpolyline%20points%3D%2215.55%2040.93%2015.55%2031.26%2024.74%2031.26%22%2F%3E%3Cpolyline%20points%3D%2230.76%2047.73%2015.55%2047.73%2015.55%2044.55%22%2F%3E%3Cline%20x1%3D%2261.58%22%20y1%3D%2247.73%22%20x2%3D%2246.42%22%20y2%3D%2247.73%22%2F%3E%3Cpolyline%20points%3D%2283.22%2031.26%2092.45%2031.26%2092.45%2047.73%2077.22%2047.73%22%2F%3E%3Crect%20x%3D%2247.14%22%20y%3D%2222.66%22%20width%3D%2213.72%22%20height%3D%2217.01%22%20rx%3D%223.4%22%20ry%3D%223.4%22%2F%3E%3Cpolyline%20points%3D%2260.22%2047.73%2060.22%2092.57%2047.78%2092.57%2047.78%2047.73%22%2F%3E%3Cpolyline%20points%3D%2287%2084.81%2087%2092.57%2021%2092.57%2021%2047.73%22%2F%3E%3Cline%20x1%3D%2287%22%20y1%3D%2247.73%22%20x2%3D%2287%22%20y2%3D%2281.2%22%2F%3E%3Cpath%20d%3D%22M47.87%2C23.73l-16.01-7.55c-5.42-2.55-7.54%2C2.23-7.54%2C2.23l-2.55%2C6.91c-.6%2C3.51%2C1.39%2C5.85%2C5.42%2C6.8l19.96%2C5.58%22%2F%3E%3Cpath%20d%3D%22M37.24%2C34.93s-12.08%2C20.67-12.51%2C33.42l8.18-5.84%2C5.42%2C7.77s2.76-17.67%2C13.62-30.6%22%2F%3E%3Cpath%20d%3D%22M25.97%2C25.36c2.6-3.02%2C6.1-4.19%2C21.17%2C3.87%22%2F%3E%3Cpath%20d%3D%22M82.03%2C25.36c-2.6-3.02-6.1-4.19-21.17%2C3.87%22%2F%3E%3Cpath%20d%3D%22M60.13%2C23.73l16.01-7.55c5.42-2.55%2C7.54%2C2.23%2C7.54%2C2.23l2.55%2C6.91c.6%2C3.51-1.39%2C5.85-5.42%2C6.8l-19.96%2C5.58%22%2F%3E%3Cpath%20d%3D%22M70.76%2C34.93s12.08%2C20.67%2C12.51%2C33.42l-8.18-5.84-5.42%2C7.77s-2.76-17.67-13.62-30.6%22%2F%3E%3C%2Fsvg%3E");
  --gsPict-uchiiwai: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20108%20108%22%20fill%3D%20%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Ccircle%20cx%3D%2228.22%22%20cy%3D%2233.57%22%20r%3D%2215.61%22%2F%3E%3Ccircle%20cx%3D%2279.68%22%20cy%3D%2233.57%22%20r%3D%2215.61%22%2F%3E%3Cline%20x1%3D%2211.58%22%20y1%3D%2249.19%22%20x2%3D%2211.16%22%20y2%3D%2255.55%22%2F%3E%3Cline%20x1%3D%2212.6%22%20y1%3D%2233.57%22%20x2%3D%2211.75%22%20y2%3D%2246.58%22%2F%3E%3Cpath%20d%3D%22M31.62%2C49.19v5.03s7.86%2C0%2C7.86%2C0c8.24%2C0%2C11.58%2C6.09%2C10.58%2C13.38l-3.15%2C22.44H9.52s-3.15-22.44-3.15-22.44c-1-7.29%2C2.34-13.38%2C10.58-13.38h7.86v-5.03%22%2F%3E%3Cpath%20d%3D%22M22.3%2C60.89c-4.05-.76-7.97%2C1.07-7.43%2C5.76l3.28%2C23.38%22%2F%3E%3Cpath%20d%3D%22M39.36%2C82.44l2.21-15.78c.82-7.19-8.81-7.65-13.35-2.4-.76-.87-1.65-1.59-2.62-2.14%22%2F%3E%3Cline%20x1%3D%2238.3%22%20y1%3D%2290.04%22%20x2%3D%2238.88%22%20y2%3D%2285.89%22%2F%3E%3Cpolyline%20points%3D%2274.72%2050.58%2079.68%2054.21%2072.68%2059.34%2072.68%2049.08%2074.72%2050.58%22%2F%3E%3Cpath%20d%3D%22M57.57%2C69.61v-3.03c0-4.67%2C5.65-13.63%2C15.11-12.38%22%2F%3E%3Cpolyline%20points%3D%22101.79%2086.06%20101.79%2090.04%2057.57%2090.04%2057.57%2073.65%22%2F%3E%3Cpath%20d%3D%22M86.69%2C54.21c9.46-1.26%2C15.11%2C7.71%2C15.11%2C12.38v15.85%22%2F%3E%3Cpolygon%20points%3D%2286.69%2049.08%2079.68%2054.21%2086.69%2059.34%2086.69%2049.08%22%2F%3E%3Cpolyline%20points%3D%2277.71%2069.61%2075.38%2057.36%2075.38%2057.33%22%2F%3E%3Cpolyline%20points%3D%2283.98%2057.36%2081.52%2069.61%2080.91%2072.6%2079.68%2078.71%2078.22%2072.17%22%2F%3E%3Cpolyline%20points%3D%2289.76%2054.21%2091.84%2062.29%2090.23%2064.47%2088.17%2067.26%2079.68%2078.75%2070.32%2066.07%2068.76%2063.96%2067.52%2062.29%2069.61%2054.21%22%2F%3E%3Cpath%20d%3D%22M12.65%2C32.32c.64-.03%2C7.24-.5%2C10.16-5.52%2C0%2C0%2C3.84%2C6.78%2C21.02%2C6.78l1.45%2C21.98%22%2F%3E%3Cpath%20d%3D%22M64.83%2C28.74c4.84.13%2C4.66%2C2.39%2C9.5%2C2.52s4.91-2.35%2C9.75-2.22c2.24.06%2C3.43.62%2C4.54%2C1.22.78.42%2C1.52.86%2C2.56%2C1.16.68.2%2C1.49.33%2C2.52.36.56.01%2C1.05%2C0%2C1.49-.05%22%2F%3E%3Cline%20x1%3D%2279.68%22%20y1%3D%2290.04%22%20x2%3D%2279.68%22%20y2%3D%2278.32%22%2F%3E%3C%2Fsvg%3E"); 
  --gsPict-memorial: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20108%20108%22%20fill%3D%20%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Cpath%20d%3D%22M11.48%2C57.97c6.29%2C11.84%2C18.56%2C24.1%2C42.52%2C22.24%2C0%2C0-7.56-4.81-12.13-13.84%22%2F%3E%3Cpath%20d%3D%22M18.14%2C67.8c-4.34%2C1.67-11.19%2C5.28-11.19%2C5.28%2C29.89%2C20.91%2C47.05%2C7.13%2C47.05%2C7.13%2C1.15-23.18-19.87-36.72-48.46-39.12.64%2C3.14%2C1.86%2C8.02%2C4.2%2C13.3%22%2F%3E%3Cpath%20d%3D%22M24.81%2C44.77c-.03-9.07%2C2.63-15.19%2C2.92-15.91%2C1.83.37%2C7.02%2C2.5%2C14.14%2C8.09%22%2F%3E%3Cpath%20d%3D%22M57.06%2C23.05c-1.05-1.29-1.85-2.21-3.06-3.54-16.28%2C17.93-17.38%2C32.33-13.92%2C42.6%22%2F%3E%3Cpath%20d%3D%22M69.5%2C51.15c8.5-5.57%2C19.94-8.97%2C32.96-10.07-2.2%2C10.74-11.19%2C42.01-48.46%2C39.12%2C0%2C0%2C30.57-19.47%2C5.91-53.48%22%2F%3E%3Cpath%20d%3D%22M90.58%2C79.14c-23.75%2C11.93-36.58%2C1.07-36.58%2C1.07-.53-10.77%2C3.72-19.47%2C11.3-25.92%22%2F%3E%3Cpath%20d%3D%22M89.86%2C67.8c4.34%2C1.67%2C11.19%2C5.28%2C11.19%2C5.28-2.28%2C1.59-4.02%2C2.72-6.15%2C3.93%22%2F%3E%3Cpath%20d%3D%22M83.19%2C44.77c.03-9.07-2.63-15.19-2.92-15.91-1.83.37-7.02%2C2.5-14.14%2C8.09%22%2F%3E%3Cg%3E%3Cpath%20d%3D%22M5.54%2C86.48c21.38-.44%2C32.68%2C9.56%2C48.46%2C9.56%22%2F%3E%3Cpath%20d%3D%22M102.46%2C86.48c-21.38-.44-32.68%2C9.56-48.46%2C9.56%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2254.11%22%20cy%3D%2212.46%22%20r%3D%22.5%22%2F%3E%3C%2Fsvg%3E");
  --gsPict-corpgift: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20108%20108%22%20fill%3D%20%22none%22%20stroke%3D%22%23000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%3E%3Cpolyline%20points%3D%2295.18%2082.43%2095.18%2090.59%2012.82%2090.59%2012.82%2086.1%2012.82%2081.39%2012.82%2039.58%2012.82%2035.41%2012.82%2032.61%2095.18%2032.61%2095.18%2077.48%22%2F%3E%3Cpath%20d%3D%22M95.18%2C57.6c0%2C2.21-1.79%2C4-4%2C4h-29.62%22%2F%3E%3Cpath%20d%3D%22M12.82%2C57.6c0%2C2.21%2C1.79%2C4%2C4%2C4h2.05%22%2F%3E%3Cline%20x1%3D%2246.35%22%20y1%3D%2261.6%22%20x2%3D%2222.53%22%20y2%3D%2261.6%22%2F%3E%3Crect%20x%3D%2246.44%22%20y%3D%2255.54%22%20width%3D%2215.11%22%20height%3D%2212.24%22%2F%3E%3Cpath%20d%3D%22M55.09%2C76.81c2.21%2C0%2C3.5-1.79%2C3.5-4v-5.03h-9.17v5.03c0%2C2.21%2C1.29%2C4%2C3.5%2C4%22%2F%3E%3Cpolyline%20points%3D%2237.79%2017.41%2035.63%2017.41%2035.63%2032.52%2072.37%2032.52%2072.37%2017.41%2040.26%2017.41%22%2F%3E%3Cpolyline%20points%3D%2241.69%2032.52%2041.69%2023.47%2066.31%2023.47%2066.31%2029.98%22%2F%3E%3C%2Fsvg%3E");
}

/*---- 全体設定 ----*/
html {
  font-size: 62.5%;

  &:has(body.fixed) {
    overscroll-behavior: none;
  }
}

body {
  line-height: 1.75;
  font-size: 1.5rem;
  font-family: var( --ff-sans_serif );
  color: var( --cl-br );
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var( --col_Background );

  &.fixed {
    width: 100%;
    position: relative;
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
  }
}

.pc-only {
  display: none;
}

/*---- ヘッドライン ----*/
h1,
.h1 {
  margin: 0;
  padding: 30px 0 20px;
  font-weight: 600;
  font-size: 1.8rem;
}

h2 {
  padding: 10px 0;
  font-size: 1.7rem;
  font-weight: normal;
  font-weight: 600;
  background-color: unset;

  &.after-border {
    text-align: center;
    line-height: 1.4;
    padding-bottom: 20px;
    margin-bottom: 30px;
    position: relative;
    letter-spacing: .1em;

    &::after {
      content: "";
      display: block;
      position: absolute;
      bottom: 0;
      left: 50%;
      width: 2em;
      margin-left: -1em;
      height: 2px;
      background-color: var( --cl-heading );
    }
  }

  a {
    text-decoration: none;
  }
}

h3 {
  font-size: 1.5rem;
  font-weight: 600;
}

/*---- リンク ----*/
a {
  text-decoration: underline;
  color: var( --cl-a );

  &[target*="_blank"] {
    align-items: center;

    &::after {
      content: "";
      display: inline-block;
      margin-left: .25em;
      width: 1em;
      aspect-ratio: 1;
      mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cstyle%3E%20%20g%20%7B%20%20%20%20fill%3A%20none%3B%20%20%20%20stroke%3A%20%23433D37%3B%20%20%20%20stroke-width%3A%201pt%3B%20%20%7D%3C%2Fstyle%3E%3Cg%3E%3Crect%20x%3D%227.5%22%20y%3D%223.5%22%20width%3D%2213%22%20height%3D%2211%22%2F%3E%3Crect%20x%3D%223.5%22%20y%3D%229.5%22%20width%3D%2213%22%20height%3D%2211%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
      background-color: currentColor;
    }
    :is(header, .block-header-menu) &::after { display: none !important; }

    &:hover::after {
      background-color: var( --col_Gold );
    }
  }
}

/*---- タグ ----*/
hr {
  border-bottom: 1px dotted #00000028;
}

/*---- margin padding ----*/
.mt0 { margin-top: 0 !important; }
.mb0 { margin-bottom: 0 !important; }

.pt0 { padding-top: 0 !important; }
.pb0 { padding-bottom: 0 !important; }

/*---- input ----*/
input[type="radio"],
input[type="checkbox"] {
  appearance: none;
  border-radius: 0;
  margin: 0 6px 0 0;
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  aspect-ratio: 1 / 1;
  position: relative;
  border: 1px solid #ccc;
  background: #fff;

  label > & {
    display: inline-block;
  }

  & + label {
    display: inline-block;
    vertical-align: middle;
    color: var( --cl-a );
  }
  &:checked + label {
    font-weight: 600;
    color: var( --col_MypreBlue );
  }
  label:has(&) {
    color: var( --cl-a );
  }
  label:has(&:checked) {
    font-weight: 600;
    color: var( --col_MypreBlue );
  }

  &:checked + label::after {
    opacity: 1;
  }
}

input[type="radio"] {
  border-radius: 50%;

  &:checked {
    &::after {
      content: "";
      display: block;
      position: absolute;
      margin: 6px;
      border-radius: 50%;
      width: calc(100% - 12px);
      aspect-ratio: 1 / 1;
      background: var( --col_MypreBlue );
    }
  }
}

input[type="checkbox"] {
  &:checked {
    &::after {
      content: "";
      display: block;
      position: absolute;
      top: 5px;
      left: 3px;
      width: 20px;
      height: 10px;
      border: 2px var( --col_MypreBlue ) solid;
      border-width: 0 0 2.5px 2.5px;
      transform: rotate(-40deg);
    }
  }
}

/*---- 入力フォーム共通 ----*/
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.btn-danger,
input[name="submit"],
input[name="confirm"],
input[name="regist"],
input[name="entry"] {
  border-radius: 8px !important;
}
input[type="submit"],
input[type="button"],
button {
  border-radius: 4px;
  color: var( --cl-br );
}

input[type="text"],
input[type="tel"],
input[type="email"],
input[type="search"],
input[type="password"],
input[type="url"],
input[type="number"] {
  padding: 4px;
  border: 1px solid #ccc;
  background: #fff;
  border-radius: 4px;
  height: 56px;
  font-size: 1.6rem;

  &:hover {
    border-color: var( --col_Gold );
  }
}

select {
  border: 1px solid #ccc;
  background: #fff;
  line-height: 40px;
  height: 56px;
  border-radius: 4px;
  color: var( --cl-br );
  font-size: 1.6rem;
}

textarea {
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  max-width: 100%;

  &[readonly] {
    font-size: 1.2rem;
    border-radius: 0;
  }
}

select:hover,
textarea:hover {
  border-color: var( --col_Gold );
}

  .js-select-wrap {
    position: relative;
    display: inline-flex;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0;
    background-color: #fff;
    overflow: hidden;

    &:hover, &:focus, &:focus-within {
      border-color: var( --col_Gold );
    }

    &::before,
    &::after {
      content: "";
      position: absolute;
      display: block;
      width: 36px;
      height: 100%;
      transition: .3s;
    }

    &::before {
      top: 0;
      right: 0;
      background: #e5e5e5;
    }
    &::after {
      top: calc(50% - 3px);
      right: 11px;
      width: 12px;
      height: 12px;
      border: 2px solid #555;
      border-width: 0 0 2px 2px;
      transform: translateY(-50%) rotate(-45deg);
    }

    &:hover::before, &:focus::before {
      opacity: .8;
    }
    &:hover::after, &:focus::after {
      border-color: var( --col_MypreBlue ); 
    }

    &:focus-within::before {
      background: #eee; 
    } 
    &:focus-within::after {
      border-color: var( --col_MypreBlue ); 
    }
    &:has(:open)::after { 
      transform: rotate(135deg);
      border-color: var( --col_MypreBlue ); 
    }

    select {
      appearance: none;
      -webkit-appearance: none;
      border: 0;
      display: flex;
      align-items: center;
      height: 54px;
      width: 100%;
      padding: 4px 47px 4px 4px;
      line-height: 1;
      font-weight: 400;
      background: transparent;
      z-index: 10;

      &:focus, &:hover {
        border: 0 !important;
        outline: 0;

      }
    }
  }


label.radio,
label.checkbox,
input[type="radio"],
input[type="radio"] + label,
input[type="checkbox"],
input[type="checkbox"] + label,
select {
  cursor: pointer;
}

input[type="text"][disabled] {
  background: #00000028;
  cursor: not-allowed;
}

input[type="radio"][disabled] + label,
input[type="checkbox"][disabled] + label {
  opacity: .5;
  cursor: not-allowed;
}

/*---- ボタン ----*/
.btn {
  display: inline-flex;
  margin: 0;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  white-space: nowrap;
  padding: 8px 14px;
  border: none;
  border-radius: 4px;
  text-decoration: none;
  border-radius: 4px;

  &:hover,
  &:focus {
    text-decoration: none;
  }

  &:active,
  &.active {
    outline: 0;
    box-shadow: inset 2px 2px 2px rgb(0 0 0 /.125);
  }
}

.btn.disabled,
.btn[disabled],
.btn.disabled:hover,
.btn[disabled]:hover,
.btn.disabled:active,
.btn[disabled]:active {
  cursor: not-allowed;
  opacity: .65;
  box-shadow: none !important;
}

.btn-default {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
}

.btn-primary {
  background-repeat: 8px;
}

.hidden-btn {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
}

.input-group {
  display: table;
  width: 100%;

  > span {
    display: table-cell;
    width: 100%;
  }
}

.input-group-btn {
  display: table-cell;
  white-space: nowrap;
}

/*---- 画像センタリング配置 ----*/
.img-center img {
  flex-shrink: 0;
  text-align: center;
  max-height: 100%;
  max-width: 100%;
  width: auto;
  height: 100%;
  object-fit: scale-down;
}

/*---- 画面上部メッセージー ----*/
.alert {
  margin-top: 5px;
  padding: 10px 10px 10px 30px;
  margin-bottom: 5px;
  position: relative;
  border: 1px solid #f00;
  color: #f00;
  background-color: #f2dede;
  background-position: 10px 14px;

  &::before {
    font-family: FontAwesome;
    position: absolute;
    left: 10px;
  }
}

.error-list {
  margin-top: 12px;

  &:not(:has(li)) {
    margin: 0;
  }

  li {
    display: flex;
    align-items: flex-start;

    & + & {
      margin-top: 6px;
    }

    &::before {
      content: "・";
      font-weight: 600;
    }
  }
}

.success {
  margin-top: 5px;
  padding: 10px 10px 10px 30px;
  margin-bottom: 5px;
  position: relative;
  border: 1px solid #bce8f1;
  color: #31708f;
  background-color: #d9edf7;

  &::before {
    font-family: FontAwesome;
    content: "\f05a";
    position: absolute;
    left: 10px;
  }
}

/*---- 入力フォームタイトル ----*/
.legend {
  font-size: 1.6rem;
  font-weight: 600;
  width: 100%;
  margin: 10px 0 15px 0;
  padding: 5px 0;
  border-bottom: 1px solid #ccc;
}

/*---- 縦型入力フォーム ----*/
.fieldset-vertical {
  margin-bottom: 30px;

  .form-group {
    margin: 0 0 16px 0;
    position: relative;

    .required {
      position: absolute;
      top: 15px;
      right: 20px;
    }
  }

  .form-label,
  .constraint {
    margin: 0 0 10px 0;
  }

  .form-label {
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    background: var( --col_paleGray );
    padding: 10px 60px 10px 12px;
    font-feature-settings: "palt";
    text-transform: full-width;

    label {
      font-weight: 600;
      color: var( --cl-heading );
    }

    & + .constraint .required {
      top: 8px;
      right: 10px;
    }
  }

  .form-control {
    clear: both;
  }
}

/*---- 入力支援 ----*/
.form-error {
  display: block;
  margin-top: 5px;
  padding: 4px 10px;
  margin-bottom: 5px;
  position: relative;
  border: 1px solid #f00;
  color: #f00;
  background-color: #f2dede;
  text-align: center;
  font-size: 1.4rem;
  &:has(+ .action-buttons) {
    display: none;
  }
}

.required::after {
  display: inline-flex;
  height: 28px;
  padding: 0 8px;
  font-family: var( --ff-sans_serif );
  font-size: 1.4rem;
  align-items: center;
  color: #fff;
  background-color: var( --cl-dn );
}

.help-block {
  display: block;
  margin: 8px 0;
  line-height: 1.5;
  font-size: 1.4rem;
  color: #737373;
  text-align: justify;
}

.count-msg-another {
  display: block;
  font-size: 1.4rem;
  margin-top: 5px;
  color: #555;
}

.count-msg {
  display: block;
  font-size: 1.4rem;
  margin-top: 5px;
  color: #f66;
}

/*---- 入力フォームボタン ----*/
.action-buttons {
  margin: 20px 0 0;

  .action {
    display: flex;
    position: relative;
    text-align: center;
    align-items: center;
    align-content: unset;
    justify-content: center;
    justify-items: center;
    width: 100%;
    flex-direction: column;

    .btn {
      min-height: 48px;
      min-width: 280px;
      width: unset;
      padding: 0 16px;
      font-weight: unset;
      font-size: 1.6rem;

      &[value="戻る"] {
        margin-top: 20px;
      }
    }
  }
}

/*---- ラジオボタン、チェックボックス ----*/
.radio {
  margin-right: 10px;
}

.checkbox {
  margin-right: 10px;
}

/*---- EFO ----*/
.efo-icon {
  border: none;
  vertical-align: middle;
}

input[type="text"],
input[type="tel"],
input[type="email"],
input[type="search"],
input[type="password"],
input[type="url"],
input[type="number"],
select,
textarea {
  .efo-error {
    background-color: #f2dede;
  }
  .efo-valid {
    background-color: #e9f2d7;
  }
}

.block-logout,
.block-login {
  margin: 0;

  h1 {
    text-align: center;
    margin: 0;
  }
}

.block-login--member-body {
  padding: 0;
  border: unset;
  background: transparent;

  .action {
    margin: -12px auto 0;
    text-align: center;

    .btn {
      margin: 0;
      border-radius: 8px;
      height: 64px;
      width: 100%;
    }
  }
}

.block-login--member {
  order: 30;
  border: 1px solid #00000028;
  padding: 15px;
}

.block-login--member-header,
.block-login--snslogin-header {
  h2& {
    text-align: center;
    line-height: 1.4;
    padding-bottom: 20px;
    margin-bottom: 30px;
    position: relative;
    letter-spacing: .1em;

    &::after {
      content: "";
      display: block;
      position: absolute;
      bottom: 0;
      left: 50%;
      width: 2em;
      margin-left: -1em;
      height: 2px;
      background-color: #444;
    }

    span {
      display: unset;
      font-size: unset;
      line-height: unset;
      letter-spacing: unset;
      margin-top: unset;
    }
  }
}

.block-login--body {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.block-login--snslogin {
  padding: 20px 20px 30px 20px;
  border: 1px solid #00000028;
  margin-bottom: 30px;
}

.block-login--snslogin-body {
  padding: unset;
  border: unset;
  background: unset;
}

.block-order-estimate--register-customer-checkbox-message {
  position: relative;
  padding-left: 30px;

  label {
    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 2px;
      left: 0;
      width: 18px;
      height: 18px;
      border: 1px solid #999;
    }

    &.checked::after {
      content: "";
      display: block;
      position: absolute;
      top: 2px;
      left: 2px;
      width: 18px;
      height: 8px;
      opacity: 1;
      transition: .4s;
      transform: rotate(-40deg);
      border-bottom: 2px var( --cl-dn ) solid;
      border-left: 2px var( --cl-dn ) solid;
    }
  }
}

/*---- 会員情報の編集 ----*/
.block-member-info {
  margin: 0;

  h1 {
    margin: 0;
  }

  .block-member-info--mail {
    .constraint {
      display: none;
    }
  }
}

.block-member-info-confirmation--customer-name,
.block-member-info--customer-name {
    margin: 0 0 10px;
    font-weight: 600;
}

.block-login--display-password {
  margin: 0;
  display: inline-block;
  height: 56px;
  vertical-align: middle;
  align-content: center;
}

.block-login--first-time-header {
  margin: 0;
  text-align: center;
}
.block-login--first-time {
  order: 10;
}
.block-login--first-time-body {
  border: 0;
  border-radius: 5px;
  padding: 16px;
  background: color-mix(in srgb, var( --col_paleGray ) 45%, transparent);

  .block-login--first-time-message {
    display: block;
    margin: 0;
    text-align: justify;
  }

  .action-buttons {

    .action {
      margin: 0;

      .btn {
        margin: 0;
        width: 100%;
        border-radius: 8px;
      }
    }
  }
}

.block-shipping-address-info-confirmation--message,
.block-member-info-confirmation--message {
  margin-bottom: 40px;
  padding: 10px;
  border: 1px solid #bee3c8;
  background: #effff3;
  color: #73af95;
}

.block-member-info--use-spoofing-protection {
  margin-top: 20px;
  border: 1px solid #00000028;
  background: #f5f5f5;
  padding: 20px 10px;
  display: flex;

  .constraint { display: none; }

  .block-order-estimate--order-terms-link {
    display: block;
    margin-top: 10px;
  }

  .form-control {
    width: unset;
    margin: 0 auto;
    text-align: center;
  }

  label[for="agree_checkbox"] {
    margin: 0;
    font-weight: 600;

    span {
      font-feature-settings: "palt";
    }

    .required {
      margin-left: 4px;
    }
  }
}

/*---- アドレス帳の新規登録・変更 ----*/
.block-shipping-address--customer-name,
.block-shipping-address-confirmation--customer-name {
  display: none;
}

.block-shipping-address-info-confirmation--message {
  margin-bottom: 10px;
}

.block-shipping-address--form {
  .fieldset-vertical {
    margin-top: 30px;
  }

  .action-buttons {
    display: flex;
    flex-direction: column;

    .action {
      &:has(.block-shipping-address--forward) {
        order: 0;
      }
      &:has(.block-shipping-address--back) {
        order: 10;
      }
      &:has(.block-shipping-address--delete) {
        order: 20;
        margin-top: 30px;
      }
    }
  }
}

.block-shipping-address--nickname {
  border: 1px solid #00000028;

  .form-label {
    margin: 0;
  }

  .form-control {
    padding: 12px;
  }
}

div[class$="--customer-name"] {
  margin: 0 0 16px auto;
  font-weight: 600;
  color: var( --col_MypreBlue );
  background: var( --col_paleGray );
  display: block;
  border-radius: 50px;
  text-align: center;
  width: 100%;
  float: none;
  padding: 2px 12px;
}

/*---- 購入履歴詳細 ----*/
.block-purchase-history-detail--shipping-info-items {
  td {
    text-align: left;
  }
}
.block-purchase-history-detail--sender-info {
  br {
    content: "";
    display: block;
    height: .5em;
  }
}

.block-purchase-history-detail--shiment-address {
  margin-bottom: 10px;

  br:not(:last-child) {
    content: "";
    display: block;
    height: .5em;
  }
}
.block-purchase-history-detail--requests-for-order {
  .action:last-child {
    margin-top: 16px;
  }
}

/*---- parts ----*/
.txt_center_sbonly_ {
  text-align: center;
}

.sp-only,
.sp-only_ {
  display: block;
}

.anchor_ {
  margin-top: -55px;
  padding-top: 55px;
}

.net-price {
  display: none !important;
}