@charset "UTF-8";

/* =====================
  Custom Property
===================== */
:root {
  /* debug */
  --debug: false;

  /* color */
  --black: #4c4c4c;
  --primary: #33508f;
  --secondary: #7fb3d6;
  --bg: #bdeaf1;
  --bg2: #bdeaf1;

  /* font */
  --sanserif: 'Noto Sans JP', sans-serif;
  --gloock: 'Gloock', serif;
  --lalezar: 'Lalezar', sans-serif;
  --yumin: 'Yu Mincho Demibold', 'YuMincho Demibold', '游明朝', 'Yu Mincho Regular', 'Yu Mincho', 'YuMincho Medium', serif;
  --yugo: '游ゴシック', 'Yu Gothic', yugothic, 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'メイリオ', meiryo, 'ＭＳ ゴシック', sans-serif;

  /* icon */
  --icon-arrow: url('data:image/svg+xml,<svg width="11" height="26" viewBox="0 0 11 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.925794 0.312507C1.79924 -0.243323 2.94043 -0.0366247 3.56837 0.758797L3.68751 0.925789L10.6875 11.9258C11.1044 12.5809 11.1044 13.4191 10.6875 14.0742L3.68751 25.0742C3.09443 26.0059 1.85759 26.2805 0.925794 25.6875C-0.0058853 25.0944 -0.28045 23.8576 0.312513 22.9258L6.62892 13L0.312513 3.07423L0.211927 2.89552C-0.243052 1.98978 0.0523563 0.868512 0.925794 0.312507Z" fill="currentColor"/></svg>');
  --icon-mail: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="29" height="21" viewBox="0 0 29 21" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.72773 2.23138C2.9741 2.23138 2.36316 2.82234 2.36316 3.55132V17.4487C2.36316 18.1777 2.9741 18.7686 3.72773 18.7686H25.2722C26.0258 18.7686 26.6368 18.1777 26.6368 17.4487V3.55132C26.6368 2.82234 26.0258 2.23138 25.2722 2.23138H3.72773ZM0.5 3.55132C0.5 1.827 1.9451 0.429169 3.72773 0.429169H25.2722C27.0548 0.429169 28.4999 1.827 28.4999 3.55132V17.4487C28.4999 19.173 27.0548 20.5708 25.2722 20.5708H3.72773C1.9451 20.5708 0.5 19.173 0.5 17.4487V3.55132Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M1.29323 1.50206C1.62269 1.11982 2.21012 1.06829 2.6053 1.38697L14.1254 10.6773L14.1269 10.6785C14.3451 10.8551 14.6546 10.8551 14.8728 10.6785L14.8742 10.6773L26.3943 1.38697C26.7895 1.06829 27.3769 1.11981 27.7064 1.50206C28.0358 1.88431 27.9826 2.45253 27.5874 2.77121L16.0688 12.0603C16.0684 12.0606 16.0681 12.0609 16.0677 12.0612C15.1579 12.7971 13.8419 12.7972 12.9321 12.0613C12.9317 12.061 12.9313 12.0607 12.9309 12.0603L1.41221 2.77121C1.01703 2.45253 0.963764 1.88431 1.29323 1.50206Z" fill="currentColor"/></svg>');
  --icon-cross: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="38" height="38" viewBox="0 0 38 38" fill="none"><path d="M18.8574 16.7363L35.3555 0.238281L37.4766 2.35938L20.9785 18.8574L37.4766 35.3555L35.3555 37.4766L18.8574 20.9785L2.12109 37.7148L0 35.5938L16.7363 18.8574L0 2.12109L2.12109 0L18.8574 16.7363Z" fill="currentColor"/></svg>');
  --icon-blank: url('data:image/svg+xml,<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.8709 0H7.69577C7.38106 0 7.1259 0.255166 7.1259 0.569878C7.1259 0.88459 7.38106 1.13976 7.69577 1.13976H10.4953L5.39839 6.23679C5.1758 6.45916 5.1758 6.82016 5.39839 7.04253C5.50981 7.15394 5.65541 7.20954 5.80125 7.20954C5.94709 7.20954 6.09293 7.15394 6.20411 7.04253L11.3011 1.94526V4.74511C11.3011 5.05982 11.5562 5.31498 11.8709 5.31498C12.1856 5.31498 12.4408 5.05982 12.4408 4.74511V0.569878C12.4408 0.255166 12.1856 0 11.8709 0Z" fill="white" /> <path d="M10.591 6.07025C10.2763 6.07025 10.0212 6.32541 10.0212 6.64013V10.8607H1.58016V2.41954H5.80067C6.11537 2.41954 6.37053 2.16438 6.37053 1.84966C6.37053 1.53495 6.11537 1.27979 5.80067 1.27979H1.0103C0.69559 1.27979 0.44043 1.53495 0.44043 1.84966V11.4304C0.44043 11.7451 0.69559 12.0002 1.0103 12.0002H10.591C10.9057 12.0002 11.1609 11.7451 11.1609 11.4304V6.63989C11.1609 6.32518 10.9057 6.07002 10.591 6.07002V6.07025Z" fill="white" /> </svg>');
  --img-wave: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1300 19" width="100%"><path d="M -81.25 19 Q -60.94 19 -40.62 9.5 Q 0 -9.5 40.63 9.5 Q 60.94 19 81.25 19 Q 101.56 19 121.88 9.5 Q 162.5 -9.5 203.13 9.5 Q 223.44 19 243.75 19 Q 264.06 19 284.38 9.5 Q 325 -9.5 365.63 9.5 Q 385.94 19 406.25 19 Q 426.56 19 446.88 9.5 Q 487.5 -9.5 528.13 9.5 Q 548.44 19 568.75 19 Q 589.06 19 609.38 9.5 Q 650 -9.5 690.63 9.5 Q 710.94 19 731.25 19 Q 751.56 19 771.88 9.5 Q 812.5 -9.5 853.13 9.5 Q 873.44 19 893.75 19 Q 914.06 19 934.38 9.5 Q 975 -9.5 1015.63 9.5 Q 1035.94 19 1056.25 19 Q 1076.56 19 1096.88 9.5 Q 1137.5 -9.5 1178.13 9.5 Q 1198.44 19 1218.75 19 Q 1239.06 19 1259.38 9.5 Q 1300 -9.5 1340.63 9.5 Q 1360.94 19 1381.25 19 L 1300 19 L 0 19 Z" fill="currentColor"></path></svg>');
  --img-wave-menu: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 22" width="100%"><path d="M 0 0 Q 15.63 0 31.25 11 Q 62.5 33 93.75 11 Q 109.38 0 125 0 Q 140.63 0 156.25 11 Q 187.5 33 218.75 11 Q 234.38 0 250 0 Q 265.63 0 281.25 11 Q 312.5 33 343.75 11 Q 359.38 0 375 0 Q 390.63 0 406.25 11 Q 437.5 33 468.75 11 Q 484.38 0 500 0 Q 515.63 0 531.25 11 Q 562.5 33 593.75 11 Q 609.38 0 625 0 Q 640.63 0 656.25 11 Q 687.5 33 718.75 11 Q 734.38 0 750 0 L 750 0 L 0 0 Z" fill="currentColor"></path></svg>');
  --img-line: url('data:image/svg+xml,<svg width="330" height="4" viewBox="0 0 330 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.79199 4C9.89641 3.99982 10.792 3.10446 10.792 2C10.792 0.895539 9.89641 0.000176247 8.79199 0H2C0.895431 0 0 0.895431 0 2C0 3.10457 0.895431 4 2 4H8.79199ZM35.958 4C37.0626 4 37.958 3.10457 37.958 2C37.958 0.895431 37.0626 0 35.958 0H22.375C21.2704 0 20.375 0.895431 20.375 2C20.375 3.10457 21.2704 4 22.375 4H35.958ZM63.125 4L63.3291 3.98926C64.3378 3.88699 65.125 3.03565 65.125 2C65.125 0.964351 64.3378 0.113007 63.3291 0.0107422L63.125 0H49.542C48.4374 0 47.542 0.895431 47.542 2C47.542 3.10457 48.4374 4 49.542 4H63.125ZM90.292 4L90.4961 3.98926C91.5046 3.88684 92.292 3.03554 92.292 2C92.292 0.964463 91.5046 0.113158 90.4961 0.0107422L90.292 0H76.708C75.6036 0.000173156 74.708 0.895537 74.708 2C74.708 3.10446 75.6036 3.99983 76.708 4H90.292ZM117.458 4C118.563 4 119.458 3.10457 119.458 2C119.458 0.895431 118.563 0 117.458 0H103.875C102.77 0 101.875 0.895431 101.875 2C101.875 3.10457 102.77 4 103.875 4H117.458ZM144.625 4C145.73 4 146.625 3.10457 146.625 2C146.625 0.895431 145.73 0 144.625 0H131.042C129.937 0 129.042 0.895431 129.042 2C129.042 3.10457 129.937 4 131.042 4H144.625ZM171.792 4L171.996 3.98926C173.005 3.88684 173.792 3.03554 173.792 2C173.792 0.964463 173.005 0.113158 171.996 0.0107422L171.792 0H158.208C157.104 0.000173156 156.208 0.895537 156.208 2C156.208 3.10446 157.104 3.99983 158.208 4H171.792ZM198.958 4C200.063 4 200.958 3.10457 200.958 2C200.958 0.895431 200.063 0 198.958 0H185.375C184.27 0 183.375 0.895431 183.375 2C183.375 3.10457 184.27 4 185.375 4H198.958ZM226.125 4L226.329 3.98926C227.338 3.88698 228.125 3.03564 228.125 2C228.125 0.964364 227.338 0.113025 226.329 0.0107422L226.125 0H212.542C211.437 0 210.542 0.895431 210.542 2C210.542 3.10457 211.437 4 212.542 4H226.125ZM253.292 4L253.496 3.98926C254.505 3.88683 255.292 3.03553 255.292 2C255.292 0.964473 254.505 0.113172 253.496 0.0107422L253.292 0H239.708C238.604 0.000156667 237.708 0.895527 237.708 2C237.708 3.10447 238.604 3.99984 239.708 4H253.292ZM280.458 4C281.563 4 282.458 3.10457 282.458 2C282.458 0.895431 281.563 0 280.458 0H266.875C265.77 0 264.875 0.895431 264.875 2C264.875 3.10457 265.77 4 266.875 4H280.458ZM307.625 4C308.73 4 309.625 3.10457 309.625 2C309.625 0.895431 308.73 0 307.625 0H294.042C292.937 0 292.042 0.895431 292.042 2C292.042 3.10457 292.937 4 294.042 4H307.625ZM328 4C329.105 4 330 3.10457 330 2C330 0.895431 329.105 0 328 0H321.208C320.104 0.000181398 319.208 0.895542 319.208 2C319.208 3.10446 320.104 3.99982 321.208 4H328Z" fill="currentColor"/></svg>');
  --img-line-sp: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="527" height="8" viewBox="0 0 527 8" fill="none">  <path d="M18.417 0L18.6221 0.00488281C20.7358 0.11179 22.417 1.85974 22.417 4C22.417 6.14026 20.7358 7.88821 18.6221 7.99512L18.417 8H4C1.79086 8 0 6.20914 0 4C0 1.79086 1.79086 0 4 0L18.417 0ZM76.083 0C78.2921 0 80.083 1.79086 80.083 4C80.083 6.20914 78.2921 8 76.083 8H47.25C45.0409 8 43.25 6.20914 43.25 4C43.25 1.79086 45.0409 6.96602e-07 47.25 0L76.083 0ZM133.75 0C135.959 0 137.75 1.79086 137.75 4C137.75 6.20914 135.959 8 133.75 8H104.917C102.708 8 100.917 6.20914 100.917 4C100.917 1.79086 102.708 0 104.917 0L133.75 0ZM191.417 0L191.622 0.00488281C193.736 0.111791 195.417 1.85975 195.417 4C195.417 6.14025 193.736 7.88821 191.622 7.99512L191.417 8H162.583C160.374 7.99983 158.583 6.20903 158.583 4C158.583 1.79097 160.374 0.000174986 162.583 0L191.417 0ZM249.083 0C251.292 0 253.083 1.79086 253.083 4C253.083 6.20914 251.292 8 249.083 8H220.25C218.041 8 216.25 6.20914 216.25 4C216.25 1.79086 218.041 0 220.25 0L249.083 0ZM306.75 0L306.956 0.00488281C309.069 0.11212 310.75 1.85997 310.75 4C310.75 6.14003 309.069 7.88788 306.956 7.99512L306.75 8H277.917C275.708 8 273.917 6.20914 273.917 4C273.917 1.79086 275.708 0 277.917 0L306.75 0ZM364.417 0C366.626 0.000166628 368.417 1.79096 368.417 4C368.417 6.20904 366.626 7.99983 364.417 8H335.583C333.374 7.99982 331.583 6.20903 331.583 4C331.583 1.79097 333.374 0.000177772 335.583 0L364.417 0ZM422.083 0C424.292 0 426.083 1.79086 426.083 4C426.083 6.20914 424.292 8 422.083 8H393.25C391.041 7.99998 389.25 6.20913 389.25 4C389.25 1.79087 391.041 1.67183e-05 393.25 0L422.083 0ZM479.75 0C481.959 0 483.75 1.79086 483.75 4C483.75 6.20914 481.959 8 479.75 8H450.917C448.708 8 446.917 6.20914 446.917 4C446.917 1.79086 448.708 0 450.917 0L479.75 0ZM523 0C525.209 0 527 1.79086 527 4C527 6.20914 525.209 8 523 8H508.583C506.374 7.99978 504.583 6.209 504.583 4C504.583 1.791 506.374 0.000222348 508.583 0L523 0Z" fill="currentColor"/></svg>');
  --img-line-small: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 359 4"><path fill="currentColor" d="M357,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM2,0C.9,0,0,.9,0,2s.9,2,2,2V0ZM7.9,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM19.8,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM31.6,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM43.4,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM55.2,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM67.1,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM78.9,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM90.8,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM102.6,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM114.4,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM126.2,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM138.1,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM149.9,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM161.8,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM173.6,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM185.4,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM197.2,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM209.1,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM220.9,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM232.8,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM244.6,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM256.4,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM268.2,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM280.1,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM291.9,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM303.8,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM315.6,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM327.4,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM339.2,4c1.1,0,2-.9,2-2s-.9-2-2-2v4ZM351.1,0c-1.1,0-2,.9-2,2s.9,2,2,2V0ZM2,2v2h5.9V0H2v2ZM19.8,2v2h11.8V0h-11.8v2ZM43.4,2v2h11.8V0h-11.8v2ZM67.1,2v2h11.8V0h-11.8v2ZM90.8,2v2h11.8V0h-11.8v2ZM114.4,2v2h11.8V0h-11.8v2ZM138.1,2v2h11.8V0h-11.8v2ZM161.8,2v2h11.8V0h-11.8v2ZM185.4,2v2h11.8V0h-11.8v2ZM209.1,2v2h11.8V0h-11.8v2ZM232.8,2v2h11.8V0h-11.8v2ZM256.4,2v2h11.8V0h-11.8v2ZM280.1,2v2h11.8V0h-11.8v2ZM303.8,2v2h11.8V0h-11.8v2ZM327.4,2v2h11.8V0h-11.8v2ZM351.1,2v2h5.9V0h-5.9v2Z" /></svg>');
  --img-line-small-sp: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 569 8"><path fill="currentColor" d="M565,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM4,0C1.8,0,0,1.8,0,4s1.8,4,4,4V0ZM15.7,8c2.2,0,4-1.8,4-4S17.9,0,15.7,0v8ZM39.1,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM62.4,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM85.8,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM109.2,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM132.6,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM155.9,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM179.3,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM202.7,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM226.1,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM249.4,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM272.8,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM296.2,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM319.6,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM342.9,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM366.3,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM389.7,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM413.1,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM436.4,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM459.8,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM483.2,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM506.6,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM529.9,8c2.2,0,4-1.8,4-4s-1.8-4-4-4v8ZM553.3,0c-2.2,0-4,1.8-4,4s1.8,4,4,4V0ZM4,4v4h11.7V0H4v4ZM39.1,4v4h23.4V0h-23.4v4ZM85.8,4v4h23.4V0h-23.4v4ZM132.6,4v4h23.4V0h-23.4v4ZM179.3,4v4h23.4V0h-23.4v4ZM226.1,4v4h23.4V0h-23.4v4ZM272.8,4v4h23.4V0h-23.4v4ZM319.6,4v4h23.4V0h-23.4v4ZM366.3,4v4h23.4V0h-23.4v4ZM413.1,4v4h23.4V0h-23.4v4ZM459.8,4v4h23.4V0h-23.4v4ZM506.6,4v4h23.4V0h-23.4v4ZM553.3,4v4h11.7V0h-11.7v4Z"/></svg>');
  --img-line-title-sp: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="330" height="8" viewBox="0 0 330 8" fill="none"><path d="M10.708 8C12.9171 8 14.708 6.20914 14.708 4C14.708 1.79086 12.9171 0 10.708 0H4C1.79086 0 0 1.79086 0 4C0 6.20914 1.79086 8 4 8H10.708ZM37.542 8C39.751 7.99982 41.542 6.20903 41.542 4C41.542 1.79097 39.751 0.00017505 37.542 0H24.125C21.9159 0 20.125 1.79086 20.125 4C20.125 6.20914 21.9159 8 24.125 8H37.542ZM64.375 8C66.5841 8 68.375 6.20914 68.375 4C68.375 1.79086 66.5841 0 64.375 0H50.958C48.749 0.000177643 46.958 1.79097 46.958 4C46.958 6.20903 48.749 7.99982 50.958 8H64.375ZM91.208 8C93.4171 8 95.208 6.20914 95.208 4C95.208 1.79086 93.4171 0 91.208 0H77.792C75.5829 0 73.792 1.79086 73.792 4C73.792 6.20914 75.5829 8 77.792 8H91.208ZM118.042 8L118.247 7.99512C120.361 7.88821 122.042 6.14025 122.042 4C122.042 1.85975 120.361 0.111791 118.247 0.00488281L118.042 0H104.625C102.416 0 100.625 1.79086 100.625 4C100.625 6.20914 102.416 8 104.625 8H118.042ZM144.875 8C147.084 8 148.875 6.20914 148.875 4C148.875 1.79086 147.084 0 144.875 0H131.458C129.249 0.000172458 127.458 1.79097 127.458 4C127.458 6.20903 129.249 7.99983 131.458 8H144.875ZM171.708 8C173.917 8 175.708 6.20914 175.708 4C175.708 1.79086 173.917 0 171.708 0H158.292C156.083 0 154.292 1.79086 154.292 4C154.292 6.20914 156.083 8 158.292 8H171.708ZM198.542 8L198.747 7.99512C200.861 7.88822 202.542 6.14026 202.542 4C202.542 1.85974 200.861 0.111777 198.747 0.00488281L198.542 0H185.125C182.916 1.03726e-05 181.125 1.79087 181.125 4C181.125 6.20913 182.916 7.99999 185.125 8H198.542ZM225.375 8C227.584 8 229.375 6.20914 229.375 4C229.375 1.79086 227.584 0 225.375 0H211.958C209.749 0.0001932 207.958 1.79098 207.958 4C207.958 6.20902 209.749 7.99981 211.958 8H225.375ZM252.208 8C254.417 8 256.208 6.20914 256.208 4C256.208 1.79086 254.417 0 252.208 0H238.792C236.583 0 234.792 1.79086 234.792 4C234.792 6.20914 236.583 8 238.792 8H252.208ZM279.042 8L279.247 7.99512C281.361 7.88822 283.042 6.14026 283.042 4C283.042 1.85974 281.361 0.111777 279.247 0.00488281L279.042 0H265.625C263.416 2.07452e-05 261.625 1.79087 261.625 4C261.625 6.20913 263.416 7.99998 265.625 8H279.042ZM305.875 8C308.084 8 309.875 6.20914 309.875 4C309.875 1.79086 308.084 0 305.875 0H292.458C290.249 0.000182829 288.458 1.79097 288.458 4C288.458 6.20903 290.249 7.99982 292.458 8H305.875ZM326 8C328.209 8 330 6.20914 330 4C330 1.79086 328.209 0 326 0H319.292C317.083 0 315.292 1.79086 315.292 4C315.292 6.20914 317.083 8 319.292 8H326Z" fill="currentColor"/></svg>');
  --icon-hamburger: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="50" height="37" viewBox="0 0 50 37" fill="none"><rect width="50" height="3" fill="currentColor"/><rect y="17" width="50" height="3" fill="currentColor"/><rect y="34" width="50" height="3" fill="currentColor"/></svg>');

  /* val */
  --padding-wave: 19px;
  --loop-duration: 90s;

  /* ease */
  --slideInBezier: cubic-bezier(0.16, 0.5, 0.43, 1);
  --easeOutQuart: cubic-bezier(0.25, 1, 0.5, 1);
  --easeOutExpo: cubic-bezier(0.87, 0, 0.13, 1);
  --easeOutBack: cubic-bezier(0.34, 1.56, 0.64, 1);
  --easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
  --easeInCirc: cubic-bezier(0.55, 0, 1, 0.45);
  --easeInOutBack: cubic-bezier(0.68, -0.6, 0.32, 1.6);
  --easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
}

@media (width <= 768px) {
  :root {
    --padding-wave: calc((100 / 750) * 21 * 1vw);
    --easeOutExpo: cubic-bezier(0.87, 0, 0.13, 1);
    --loop-duration: 40s;
  }
}

/* =====================
  container context
===================== */
@container style(--debug:true) {
  * {
    outline: 1px solid tomato;

    &:focus {
      outline: 2px solid var(--blue);
      outline-offset: 2px;
    }
  }
}

/* =====================
  animation
===================== */
@keyframes loop {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-50%);
  }
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

@keyframes show-hide {
  0%,
  33.33% {
    filter: opacity(1);
  }

  33.34%,
  100% {
    filter: opacity(0.3);
  }
}

@layer style {
  /* =====================
    common
  ===================== */
  html,
  body {
    font-family: var(--sanserif);
    font-size: 16px;
    line-height: 1.8;
    color: var(--black);

    @media (width <= 768px) {
      font-size: calc((100 / 750) * 28 * 1vw);
    }
  }

  body {
    background: var(--bg);

    @media (width > 768px) {
      min-block-size: 1300px;
    }
  }

  @media (width > 768px) {
    .sp {
      display: none;
    }
  }

  @media (width <= 768px) {
    .pc {
      display: none;
    }
  }

  /* p */
  :where(p, li, dt, dd) {
    line-height: 1.8;
  }

  /* =====================
    header
  ===================== */
  .header {
    position: fixed;
    inset-block-start: 20px;
    inset-inline: 0;
    z-index: 10;
    display: block grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    justify-content: flex-start;
    inline-size: calc(100% - 40px);
    padding-block: 10px;
    padding-inline: 10px;
    margin-inline: auto;
    background: white;
    border-radius: calc(infinity * 1px);

    @media (width <= 768px) {
      inset-block-start: calc((100 / 750) * 16 * 1vw);
      inline-size: calc((100 / 750) * 718 * 1vw);
      padding-block: calc((100 / 750) * 9 * 1vw);
      padding-inline: calc((100 / 750) * 10 * 1vw);
    }

    /* ==== logo ==== */
    .logo {
      display: block grid;
      align-content: center;
      inline-size: fit-content;
      margin-inline-start: 14px;

      @media (width <= 768px) {
        inline-size: calc((100 / 750) * 540 * 1vw);
        margin-inline-start: 1.9vw;
      }
    }

    /* ==== nav ==== */
    .nav {
      block-size: 100%;
      margin-inline-end: 40px;

      @media (width <= 768px) {
        display: none;
      }

      ul {
        display: block grid;
        grid-auto-flow: column;
        gap: 40px;
        align-items: center;
        justify-content: flex-start;
        block-size: inherit;
        font-weight: 500;

        & :where(li, a) {
          display: block flow;
          align-content: center;
          block-size: inherit;
        }

        & a {
          position: relative;
          transition: color 250ms ease 0s;

          &:hover {
            color: var(--secondary);
          }

          &::after {
            position: absolute;
            inset-block-end: 0;
            inset-inline: 0;
            display: block flow;
            inline-size: 0;
            block-size: 2px;
            content: '';
            background: var(--secondary);
            border-radius: calc(infinity * 1px);
          }
        }
      }
    }

    /* ==== contact ==== */
    .contact {
      display: block grid;
      place-content: center;
      inline-size: 65px;
      aspect-ratio: 1 / 1;
      color: white;
      text-align: center;
      background: var(--primary);
      border-radius: calc(infinity * 1px);
      transition: background 250ms ease 0s;

      @media (width <= 768px) {
        display: none;
      }

      @media (any-hover: hover) {
        &:hover {
          background: var(--secondary);
        }
      }

      &::before {
        display: block flow;
        inline-size: 28px;
        aspect-ratio: 1 / 1;
        content: '';
        background-color: currentcolor;
        mask-image: var(--icon-mail);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
      }
    }

    /* ==== sp-menu ==== */
    .sp-menu {
      display: none;
      place-content: center;
      inline-size: calc((100 / 750) * 104 * 1vw);
      aspect-ratio: 1 / 1;
      background: var(--primary);
      border-radius: calc(infinity * 1px);

      &::before {
        inline-size: calc((100 / 750) * 50 * 1vw);
        block-size: calc((100 / 750) * 37 * 1vw);
        content: '';
        background-color: white;
        mask-image: var(--icon-hamburger);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
      }

      @media (width <= 768px) {
        display: block grid;
      }
    }
  }

  /* Menu on */
  .menu-on .sp-menu {
    &::before {
      inline-size: calc((100 / 750) * 37.477 * 1vw);
      block-size: calc((100 / 750) * 37.715 * 1vw);
      mask-image: var(--icon-cross);
    }
  }

  /* =====================
    aside
  ===================== */
  .aside {
    padding-block-start: 70px;
    translate: 0 var(--padding-wave);

    @media (width <= 768px) {
      padding-block-start: calc((100 / 750) * 70 * 1vw);
      padding-inline: calc((100 / 750) * 40 * 1vw);
    }

    .wrapper {
      position: relative;
      z-index: 1;
      max-inline-size: 1120px;
      padding-block: 68px calc(var(--padding-wave) + 51px);
      padding-inline: 85.5px 88.5px;
      margin-inline: auto;
      background: white;
      border-radius: 40px 40px 0 0;

      @media (width <= 768px) {
        padding-block: calc((100 / 750) * 95 * 1vw) calc(var(--padding-wave) + 51px);
        padding-inline: 0;
        border-radius: calc((100 / 750) * 40 * 1vw) calc((100 / 750) * 40 * 1vw) 0 0;
      }
    }

    .inner {
      display: block grid;
      align-items: center;
      justify-content: space-between;

      @media (width <= 768px) {
        display: block flex;
        flex-direction: column;
        justify-content: center;
      }

      /* ==== head ==== */
      .head {
        grid-area: 1 / 1 / 2 / 2;
        padding-block: 50px 0;
        padding-inline: 20px 0;

        @media (width <= 768px) {
          gap: 3.7vw;
          justify-content: center;
          padding-block: 0;
          padding-inline: 0;
          margin-inline: auto;
          text-align: center;

          & [lang='en'] {
            justify-content: center;
            letter-spacing: calc((100 / 750) * 2.88 * 1vw);
          }
        }
      }

      /* ==== description ==== */
      .description {
        grid-area: 2 / 1 / 3 / 2;
        align-self: flex-start;
        padding-block-start: 27px;
        font-weight: 400;

        @media (width <= 768px) {
          align-self: center;
          padding-block-start: 10.1vw;
          font-size: calc((100 / 750) * 28 * 1vw);

          & span {
            display: block flow;
            inline-size: 100%;
            text-align: center;
          }
        }
      }

      /* ==== common ==== */
      & :where(.tel, .mail) {
        display: block grid;
        gap: 22px;
        translate: 3px 0;

        @media (width <= 768px) {
          gap: 0;
          translate: 0 0;
        }

        & h2 {
          font-family: var(--yugo);
          font-size: 24px;
          font-weight: bold;
          line-height: 1;

          @media (width <= 768px) {
            font-size: calc((100 / 750) * 36 * 1vw);
            text-align: center;
          }
        }
      }

      /* ==== tel ==== */
      .tel {
        grid-area: 1 / 2 / 2 / 3;
        margin-block-end: 72px;

        @media (width <= 768px) {
          margin-block: 13.1vw 0;
        }

        & a {
          display: block grid;
          grid-auto-flow: column;
          gap: 20px;
          align-items: center;
          justify-content: flex-start;
          font-size: 48px;
          font-weight: 700;
          line-height: 1;
          color: var(--primary);

          @media (width <= 768px) {
            gap: 2.7vw;
            margin-block-start: 1.9vw;
            font-size: calc((100 / 750) * 72 * 1vw);
          }

          &::before {
            display: block flow;
            inline-size: 38px;
            aspect-ratio: 1 / 1;
            content: '';
            background-color: var(--black);
            mask-image: url('../img/_common/tel.svg');
            mask-repeat: no-repeat;
            mask-position: center;
            mask-size: contain;
            translate: 0 2px;
          }

          @media (width <= 768px) {
            &::before {
              inline-size: calc((100 / 750) * 62 * 1vw);
              translate: 0 0;
            }
          }
        }
      }

      /* ==== mail ==== */
      .mail {
        grid-area: 2 / 2 / 3 / 3;
        gap: 28px;

        @media (width <= 768px) {
          gap: 3vw;
          margin-block-start: 10.7vw;
        }
      }
    }
  }

  /* =====================
    footer
  ===================== */
  .footer {
    position: relative;
    z-index: 2;
    overflow: hidden;
    color: white;

    /* ==== wrapper ==== */
    .wrapper {
      position: relative;
      padding-block-start: var(--padding-wave);

      &::before {
        position: absolute;
        inset-block-start: 0;
        inset-inline: 0;
        display: block flow;
        inline-size: 200%;
        block-size: var(--padding-wave);
        content: '';
        background: var(--primary);
        mask-image: var(--img-wave);
        mask-repeat: repeat-x;
        mask-position: center bottom;
        mask-size: contain;
        animation: loop var(--loop-duration) linear infinite;
      }
    }

    /* ==== inner ==== */
    .inner {
      background: var(--primary);
    }

    /* ==== contents ==== */
    .contents {
      display: block grid;
      justify-content: space-between;
      padding-block: 86px 28px;
      padding-inline: 10px;

      @media (width <= 768px) {
        display: block flex;
        flex-direction: column;
        padding-block: 10.7vw 6.4vw;
        padding-inline: calc((100 / 750) * 62 * 1vw);
      }

      /* ==== logo ==== */
      .logo {
        grid-area: 1 / 1 / 2 / 2;

        @media (width <= 768px) {
          inline-size: calc((100 / 750) * 605 * 1vw);
        }
      }

      /* ==== address ==== */
      .address {
        display: block flow;
        grid-area: 2 / 1 / 3 / 2;
        margin-block-start: 20px;
        font-size: 14px;
        font-weight: normal;
        line-height: 1.8;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 750) * 41.8 * 1vw);
          font-size: calc((100 / 750) * 26 * 1vw);

          & span {
            display: block flow;
            inline-size: 100%;
            text-align: left;
          }

          a[href^='tel:'] {
            text-decoration: underline;
          }
        }
      }

      /* ==== nav ==== */
      .nav {
        grid-area: 1 / 2 / 3 / 3;
        font-size: 18px;
        font-weight: 500;
        letter-spacing: 0.9px;

        @media (width <= 768px) {
          font-size: calc((100 / 750) * 28 * 1vw);
          letter-spacing: calc((100 / 750) * 1.4 * 1vw);
        }

        & ul {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 54px 77px;
          margin-block-start: 22px;
          margin-inline-end: 15px;
          font-weight: 500;
          letter-spacing: 0.9px;

          @media (width <= 768px) {
            grid-template-columns: repeat(2, 1fr);
            gap: 12.9vw 0;
            margin-block-start: 15vw;
            margin-inline-end: 0;
          }

          & li {
            margin-block: calc((1em - 1lh) / 2);

            @media (width <= 768px) {
              & a {
                display: block flow;
              }
            }
          }
        }
      }

      /* ==== sub-nav ==== */
      .sub-nav {
        grid-area: 3 / 2 / 3 / 3;

        & ul {
          display: grid;
          grid-auto-flow: column;
          gap: 24px;
          align-items: center;
          justify-content: flex-end;
          margin-block-start: 20px;
          margin-inline-end: 15px;
          font-size: 14px;
          font-weight: 500;
          color: var(--bg);

          @media (width <= 768px) {
            gap: calc((100 / 750) * 40 * 1vw);
            justify-content: flex-start;
            margin-block-start: 19.5vw;
            margin-inline-end: 0;
            font-size: calc((100 / 750) * 22 * 1vw);
          }

          & li {
            margin-block: calc((1em - 1lh) / 2);
          }
        }
      }

      /* ==== copyright ==== */
      .copyright {
        grid-area: 4 / 1 / 5 / 2;
        margin-block-start: 63px;
        font-size: 13px;
        font-weight: 400;
        color: #ebebeb;

        @media (width <= 768px) {
          margin-block-start: 4vw;
          font-size: calc((100 / 750) * 22 * 1vw);
        }
      }
    }
  }

  /* =====================
    sp-nav
  ===================== */
  .sp-nav {
    position: fixed;
    inset: 0;
    z-index: 9;
    display: none;
    block-size: 0;
    max-block-size: 0;
    overflow: hidden;
    transition: all 350ms ease 0s;

    /* ==== wrapper ==== */
    .wrapper {
      position: relative;

      &::after {
        position: absolute;
        inset-block-end: 0;
        inset-inline: 0;
        inline-size: 200%;
        block-size: calc((100 / 750) * 22 * 1vw);
        aspect-ratio: 1 / 1;
        content: '';
        background-color: var(--primary);
        mask-image: var(--img-wave-menu);
        mask-repeat: repeat-x;
        mask-position: center top;
        mask-size: contain;
        translate: 0 97%;
      }
    }

    /* ==== inner ==== */
    .inner {
      position: relative;
      max-block-size: 90vh;
      padding-block: calc((100 / 750) * 208 * 1vw) calc((100 / 750) * 54 * 1vw);
      padding-inline: calc((100 / 750) * 64 * 1vw);
      overflow-y: auto;
      color: white;
      background: var(--primary);

      /* ==== global-nav ==== */
      .global-nav {
        display: block grid;
        gap: 0;

        & li a {
          position: relative;
          display: block grid;
          grid-template-columns: 1fr auto;
          padding-block: calc((100 / 750) * 41 * 1vw) calc((100 / 750) * 36.8 * 1vw);
          padding-inline: 2.3vw 2.8vw;
          font-size: calc((100 / 750) * 32 * 1vw);
          font-weight: 500;
          letter-spacing: calc((100 / 750) * 1.6 * 1vw);
          border-block-end: 1px solid white;

          &::before {
            position: absolute;
            inset-block-start: 51%;
            inset-inline-end: 6.2vw;
            z-index: 12;
            inline-size: calc((100 / 750) * 11 * 1vw);
            aspect-ratio: 11 / 26;
            content: '';
            background-color: var(--primary);
            mask-image: var(--icon-arrow);
            mask-repeat: no-repeat;
            mask-position: center;
            mask-size: contain;
            translate: 0 -50%;
          }

          &::after {
            z-index: 1;
            inline-size: calc((100 / 750) * 64 * 1vw);
            aspect-ratio: 1 / 1;
            content: '';
            background: white;
            border-radius: calc(infinity * 1px);
          }
        }

        & li:last-child a {
          border-block-end-color: transparent;
        }
      }

      /* ==== sub-nav ==== */
      .sub-nav {
        display: block grid;
        grid-auto-flow: column;
        gap: calc((100 / 750) * 42 * 1vw);
        align-items: center;
        justify-content: center;
        margin-block-start: calc((100 / 750) * 52 * 1vw);
        font-size: calc((100 / 750) * 22 * 1vw);
        font-weight: 500;
        color: var(--bg);

        & li {
          margin-block: calc((1em - 1lh) / 2);
        }
      }
    }

    @media (width <= 768px) {
      display: block;
    }
  }

  /* Menu on */
  .menu-on .sp-nav {
    block-size: 100%;
    max-block-size: calc(infinity * 1px);

    .wrapper::after {
      animation: loop var(--loop-duration) linear infinite;
    }
  }

  /* =====================
    utility
  ===================== */
  .u-inner {
    position: relative;
    max-inline-size: 1120px;
    margin-inline: auto;

    @media (width <= 768px) {
      padding-inline: calc((100 / 750) * 0 * 1vw);
    }
  }

  /* ==== hover ==== */
  .u-hover {
    @media (any-hover: hover) {
      transition: opacity 250ms ease 0s;
      will-change: opacity;

      &:hover {
        opacity: 0.7;
      }
    }
  }

  /* ==== bg-color ==== */
  .u-bg {
    background: linear-gradient(180deg, var(--bg) 53.85%, white 100%);
  }

  /* ==== u-title ==== */
  .u-title {
    display: block grid;
    gap: 4px;
    align-self: flex-start;
    inline-size: fit-content;

    @media (width <= 768px) {
      gap: calc((100 / 750) * 28 * 1vw);
    }

    /* en */
    & [lang='en'] {
      display: block grid;
      grid-auto-flow: column;
      gap: 15px;
      align-items: baseline;
      justify-content: flex-start;
      margin-block: calc((1em - 1lh) / 2);
      font-family: var(--lalezar);
      font-size: 64px;
      font-weight: 400;
      line-height: 1;
      color: var(--primary);
      letter-spacing: 1.92px;

      @media (width <= 768px) {
        gap: calc((100 / 750) * 16 * 1vw);
        font-size: calc((100 / 750) * 96 * 1vw);
        letter-spacing: calc((100 / 750) * 2.88 * 1vw);
      }

      &[data-text='uppercase'] {
        text-transform: uppercase;
      }

      &::before {
        display: block flow;
        inline-size: 30px;
        block-size: 40px;
        content: '';
        background-image: url('../img/_common/water.svg');
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        translate: -1px 2px;
      }

      @media (width <= 768px) {
        &::before {
          inline-size: calc((100 / 750) * 40.214 * 1vw);
          block-size: calc((100 / 750) * 53.692 * 1vw);
          translate: 0 0.1vw;
        }
      }
    }

    /* line */
    .line {
      inline-size: 330px;
      block-size: 4px;
      margin-block-end: 21px;
      background-color: #999;
      mask-image: var(--img-line);
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: contain;

      @media (width <= 768px) {
        inline-size: 100%;
        inline-size: calc((100 / 750) * 527 * 1vw);
        block-size: calc((100 / 750) * 8 * 1vw);
        margin-block-end: 0;
        mask-image: var(--img-line-sp);
        translate: 0 -3.5vw;
      }

      &[data-color='white'] {
        background-color: white;
      }

      &[data-color='secondary'] {
        background-color: var(--secondary);
      }
    }

    /* title */
    .title {
      margin-block: calc((1em - 1lh) / 2);
      font-size: 20px;
      font-weight: 700;

      @media (width <= 768px) {
        font-size: calc((100 / 750) * 32 * 1vw);
      }
    }
  }

  /* center */
  .u-title[data-align='center'] {
    margin-inline: auto;
    text-align: center;

    & [lang='en'] {
      margin-inline: auto;
    }

    .line {
      margin-inline: auto;
    }
  }

  /* ==== u-head ==== */
  .u-head {
    position: relative;
    display: block flex;
    gap: 16px;
    align-items: flex-start;
    padding-block-end: 16px;
    font-size: 32px;
    font-weight: 700;
    font-feature-settings: 'case' on;
    line-height: 1.5;
    color: var(--primary);

    @media (width <= 768px) {
      gap: 2.3vw;
      padding-block-end: 7vw;
      font-size: calc((100 / 750) * 40 * 1vw);
    }

    &::before {
      display: block flow;
      inline-size: 21.72px;
      block-size: 29.48px;
      content: '';
      background-image: url('../img/_common/water.svg');
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
      translate: 0 12px;
    }

    @media (width <= 768px) {
      &::before {
        inline-size: calc((100 / 750) * 30.28 * 1vw);
        block-size: calc((100 / 750) * 40.428 * 1vw);
        translate: 0 1.4vw;
      }
    }

    &::after {
      position: absolute;
      inset-block-end: 0;
      inset-inline-start: 0;
      display: block flow;
      inline-size: 330px;
      block-size: 4px;
      content: '';
      background-color: white;
      mask-image: var(--img-line);
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: contain;
    }

    @media (width <= 768px) {
      &::after {
        inline-size: calc((100 / 750) * 330 * 1vw);
        block-size: calc((100 / 750) * 8 * 1vw);
        margin-block-end: 0;
        mask-image: var(--img-line-title-sp);
        translate: 0 -3.5vw;
      }
    }
  }

  .u-head[data-color='secondary'] {
    &::after {
      background-color: var(--secondary);
    }
  }

  /* ==== u-anchor ==== */
  .u-anchor {
    position: relative;
    display: block grid;
    grid-auto-flow: column;
    gap: 33px;
    align-items: center;
    justify-content: flex-start;
    inline-size: fit-content;
    padding-block: 11px;
    padding-inline: 45px 38px;
    font-weight: 700;
    line-height: 2.12;
    color: var(--primary);
    border: 2px solid var(--primary);
    border-radius: calc(infinity * 1px);
    transition: all 250ms ease 0s;

    @media (width <= 768px) {
      gap: calc((100 / 750) * 30 * 1vw);
      padding-block: 2.935vw;
      padding-inline: calc((100 / 750) * 70 * 1vw) calc((100 / 750) * 50 * 1vw);
      font-size: calc((100 / 750) * 28 * 1vw);
      line-height: 1.21;
      border: calc((100 / 750) * 4 * 1vw) solid var(--primary);
    }

    @media (any-hover: hover) {
      &:hover {
        color: white;
        background: var(--primary);

        &::before {
          background-color: var(--primary);
        }
      }
    }

    &::before {
      position: absolute;
      inset-inline-end: 55px;
      display: block flow;
      inline-size: 7.04px;
      aspect-ratio: 7.04 / 16.28;
      content: '';
      background-color: white;
      mask-image: var(--icon-arrow);
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: contain;
    }

    @media (width <= 768px) {
      &::before {
        inset-inline-end: 9.9vw;
        inline-size: calc((100 / 750) * 11 * 1vw);
        aspect-ratio: 11 / 26;
      }
    }

    &::after {
      inline-size: 42px;
      aspect-ratio: 1 / 1;
      content: '';
      background: currentcolor;
      border-radius: calc(infinity * 1px);
      transition: inherit;
    }

    @media (width <= 768px) {
      &::after {
        inline-size: calc((100 / 750) * 64 * 1vw);
      }
    }
  }

  .u-anchor[target='_blank'] {
    &::before {
      inset-inline-end: 52px;
      inline-size: 12px;
      aspect-ratio: 1 / 1;
      mask-image: var(--icon-blank);
    }

    @media (width <= 768px) {
      &::before {
        inset-inline-end: 9.4vw;
        inline-size: calc((100 / 750) * 23 * 1vw);
      }
    }
  }

  /* ==== u-mv ==== */
  .u-mv {
    --_height: 450px;

    position: relative;
    display: block grid;
    min-block-size: var(--_height);
    overflow: hidden;

    @media (width <= 768px) {
      --_height: calc((100 / 750) * 600 * 1vw);
    }

    &::after {
      position: absolute;
      inset-block-end: 60px;
      inset-inline: 0;
      z-index: 2;
      display: block flow;
      inline-size: 200%;
      block-size: var(--padding-wave);
      aspect-ratio: 1 / 1;
      content: '';
      background-color: var(--bg);
      mask-image: var(--img-wave);
      mask-repeat: repeat-x;
      mask-position: left center;
      mask-size: contain;
      animation: loop var(--loop-duration) linear infinite;
    }

    @media (width <= 768px) {
      &::after {
        inset-block-end: 13vw;
      }
    }

    /* ==== img ==== */
    .picture {
      position: absolute;
      z-index: 1;
      display: block flow;
      inline-size: 100%;
      block-size: var(--_height);

      & img {
        position: absolute;
        top: 50%;
        left: 50%;
        inline-size: 100%;
        block-size: 100%;
        pointer-events: none;
        object-fit: cover;
        translate: -50% -50%;
      }
    }

    /* ==== text ==== */
    .text {
      position: relative;
      z-index: 2;
      display: block grid;
      align-items: flex-start;
      block-size: fit-content;
      padding-block: 173px 0;
      padding-inline: 80px;
      color: white;

      @media (width <= 768px) {
        padding-block: calc((100 / 750) * 227 * 1vw) 0;
        padding-inline: calc((100 / 750) * 40 * 1vw);
      }

      & [lang='en'] {
        margin-block: calc((1em - 1lh) / 2);
        font-family: var(--lalezar);
        font-size: 96px;
        font-weight: 400;
        line-height: 1;
        text-transform: uppercase;
        letter-spacing: 2.88px;
        text-shadow: 0 4px 4px rgb(0 0 0 / 25%);

        @media (width <= 768px) {
          font-size: calc((100 / 750) * 104 * 1vw);
          letter-spacing: calc((100 / 750) * 3.12 * 1vw);
          text-shadow: 0 calc((100 / 750) * 4 * 1vw) calc((100 / 750) * 4 * 1vw) rgb(0 0 0 / 25%);
        }
      }

      & .title {
        margin-block: calc((1em - 1lh) / 2);
        font-size: 28px;
        font-weight: bold;
        font-feature-settings: 'case' on;
        line-height: 1;
        text-shadow: 0 4px 4px rgb(0 0 0 / 25%);

        @media (width > 768px) {
          translate: 0 -3px;
        }

        @media (width <= 768px) {
          font-size: calc((100 / 750) * 32 * 1vw);
          text-shadow: 0 calc((100 / 750) * 4 * 1vw) calc((100 / 750) * 4 * 1vw) rgb(0 0 0 / 25%);
          translate: 0 calc((100 / 750) * 11 * -1 * 1vw);
        }
      }
    }

    /* ==== breadcrumb ==== */
    .breadcrumb {
      position: absolute;
      inset-block-end: 0;
      inset-inline: 0;
      z-index: 3;
      display: block flex;
      flex-wrap: wrap;
      gap: 18px;
      align-items: center;
      justify-content: flex-end;
      inline-size: 100%;
      padding-block: 19px;
      padding-inline: 60px;
      font-size: 13px;
      font-weight: 500;
      color: var(--secondary);
      background: var(--bg);

      @media (width <= 768px) {
        gap: 2.2vw;
        padding-block: 5.9vw 2vw;
        padding-inline: 5.2vw;
        font-size: calc((100 / 750) * 22 * 1vw);
      }

      & [lang='en'] {
        text-transform: uppercase;
      }

      .item {
        display: block flex;
        gap: 17px;
        align-items: center;

        @media (width <= 768px) {
          gap: 2.3vw;
        }
      }

      .item + .item::before {
        content: '/';
      }
    }
  }

  /* ==== u-description ==== */
  .u-description {
    inline-size: fit-content;
    padding-block: 16px;
    padding-inline: 16px;
    margin-block: calc((1em - 1lh) / 2);
    margin-inline: auto;
    background: linear-gradient(180deg, rgb(255 255 255 / 40%) 0%, rgb(189 234 241 / 20%) 100%);

    @media (width <= 768px) {
      inline-size: 100%;
      padding-block: 3.3vw;
      padding-inline: calc((100 / 750) * 24 * 1vw);
      font-size: calc((100 / 750) * 28 * 1vw);
      background: linear-gradient(180deg, rgb(255 255 255 / 40%) 14.86%, rgb(189 234 241 / 20%) 100%);
    }
  }

  body:not([data-page='top'], [data-page='contact'], [data-page='entry'])::after {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100dvh;
    pointer-events: none;
    content: '';
    background: #fff;
    opacity: 1;
    transition: all 600ms ease-in-out 100ms;
  }

  .pageshow body::before {
    opacity: 0;
  }

  .pageshow body::after {
    opacity: 0;
  }

  body[data-page='company'] .header ul li:has([href='/company/']) a,
  body[data-page='business'] .header ul li:has([href='/business/']) a,
  body[data-page='sdgs'] .header ul li:has([href='/sdgs/']) a,
  body[data-page='works'] .header ul li:has([href='/works/']) a,
  body[data-page='recruit'] .header ul li:has([href='/recruit/']) a {
    pointer-events: none;

    &::after {
      inline-size: 100%;
    }
  }
}
