@charset "UTF-8";
@import url(https://fonts.bunny.net/css?family=playpen-sans-thai:400);
:root {
  --primary: #1e1d2a;
  --secondary: #8A5D92;
  --info: #6a70d7;
  --success: #45416E;
  --warning: #E9D892;
  --danger: #B883B0;
  --muted: #E7E6F0;
  --white: #fff;
  --active-color: #1e1d2a;
  --border-color: #e9e9e9;
  --border-width: 1px;
  --gradient: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(138, 93, 146, 0.62));
  --gradient2: linear-gradient(to right, #937A3F, #B78B60 26%, #80512D 66%, #804F8B);
  --shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1), 0 -1px 4px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(106, 112, 215, 0.1), 0 4px 6px -4px rgba(106, 112, 215, 0.1);
  --container-gap: calc((100vw - 1488px) / 2);
}

*,
::before,
::after {
  box-sizing: border-box;
}

html {
  font-family: "Playpen Sans Thai", system-ui, -apple-system, "微軟正黑體", "Microsoft JhengHei", "游明朝体", YuMincho, "游明朝", "Yu Mincho", "Hiragino Kaku Gothic Pro", Meiryo, "MS PGothic", sans-serif;
  line-height: 1.2;
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}

body {
  margin: 0 auto;
  background: #fff;
  color: #0f172a;
  letter-spacing: 0.03em;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

table {
  border-color: currentcolor;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.2;
  color: inherit;
  margin: 0;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

legend {
  padding: 0;
}

progress {
  vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

summary {
  display: list-item;
}

textarea {
  resize: vertical;
}

::placeholder {
  opacity: 1;
  color: color-mix(in srgb, currentColor 50%, transparent);
}

:disabled {
  cursor: default;
}

[hidden] {
  display: none !important;
}

button,
[role=button] {
  cursor: pointer;
  background-color: transparent;
  border: 0;
}
button:focus,
[role=button]:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}
button:focus:not(:focus-visible),
[role=button]:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}
button:disabled, button[disabled],
[role=button]:disabled,
[role=button][disabled] {
  cursor: default;
  pointer-events: none;
}

h1 {
  font-size: 36px;
  margin: 0.67em 0;
}

hr {
  height: 0;
  color: inherit;
  border: 0 solid var(--border-color);
  border-top-width: var(--border-width);
  margin: 1.25em 0;
}

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  text-underline-offset: 5px;
}

a {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: 0.2s, background 0.5s ease;
}
a:hover {
  color: var(--color, #1a1924);
}
a:not([href]):not([tabindex]), a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
  color: inherit;
}
a:not([href]):not([tabindex]):focus {
  outline: 0;
}

.clearfix::after {
  display: table;
  content: "";
  clear: both;
}

.pull-left {
  float: left;
}

.pull-right {
  float: right;
}

.clear {
  clear: both;
}

.inline {
  display: inline;
}

.inline-block {
  display: inline-block;
}

.block {
  display: block;
}

.rounded {
  border-radius: 8px;
}
.rounded-full {
  border-radius: calc(infinity * 1px);
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-2xl {
  border-radius: 1rem;
}

.hidden {
  display: none;
}

.img-center {
  display: block;
  margin-inline: auto;
  max-width: 100%;
}

.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-help {
  cursor: help;
}

.overflow-hidden {
  overflow: hidden;
}
.overflow-visible {
  overflow: visible;
}

.transition {
  transition: 0.4s;
}

.font-xs {
  font-size: 0.75rem;
}
.font-sm {
  font-size: 0.88rem;
}
.font-base {
  font-size: 1rem;
}
.font-lg {
  font-size: 1.13rem;
}
.font-xl {
  font-size: 1.25rem;
}
.font-2xl {
  font-size: 1.5rem;
}
.font-3xl {
  font-size: 1.88rem;
}
.font-4xl {
  font-size: 2.63rem;
}
.font-5xl {
  font-size: 3rem;
}
.font-22 {
  font-size: 1.38rem;
}
.font-7xl {
  font-size: 4.5rem;
}
.font-normal {
  font-weight: 400;
}
.font-bold {
  font-weight: 700;
}

.italic {
  font-style: italic;
}

.not-italic {
  font-style: normal;
}

.leading-none {
  line-height: 1;
}
.leading-normal {
  line-height: 1.5;
}
.leading-tight {
  line-height: 1.25;
}
.leading-loose {
  line-height: 2;
}
.leading-relaxed {
  line-height: 1.625;
}

.uppercase {
  text-transform: uppercase;
}

.lowercase {
  text-transform: lowercase;
}

.text-white {
  color: #fff;
}

.bg-white {
  background-color: #fff;
}

.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}

.align-top {
  vertical-align: top;
}
.align-middle {
  vertical-align: middle;
}
.align-bottom {
  vertical-align: bottom;
}

.list-inline, .list-unstyled {
  list-style: none;
  padding-left: 0;
}

.list-inline > li {
  display: inline-block;
}
.list-inline > li:not(:last-child) {
  margin-right: 8px;
}

.list-none {
  list-style-type: none;
}

.border {
  border: var(--border-width) solid var(--border-color);
}
.border-0 {
  --border-width: 0;
}
.border-2 {
  --border-width: 2px;
}
.border-4 {
  --border-width: 4px;
}
.border-solid {
  border-style: solid;
}

html {
  scroll-behavior: smooth;
}

html, body {
  height: 100%;
}

.js-menu-open {
  overflow: hidden;
}

#wrapper {
  min-height: 100%;
  margin-bottom: -160px;
  padding-bottom: 160px;
}

.container {
  margin-inline: auto;
  --wrapper-max: 1488px;
  width: min(82dvw, var(--wrapper-max));
}
.container.is-small {
  --wrapper-max: 1200px;
}

@media (min-width: 64em) {
  .content-split {
    width: min(45vw, 744px);
  }
  .content-split.in-left {
    margin-left: var(--container-gap);
  }
}
@media (max-width: 63.99em) {
  .content-split {
    margin-inline: 9dvw;
  }
}

#header {
  z-index: 3;
  position: absolute;
  inset-inline: 0;
  top: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
}
#header.js-fixed {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(5px);
  position: fixed;
  top: -50px;
  animation: sliedown 0.5s ease-in-out forwards;
}
@-webkit-keyframes sliedown {
  to {
    top: 0;
    opacity: 1;
  }
}
@-moz-keyframes sliedown {
  to {
    top: 0;
    opacity: 1;
  }
}
@keyframes sliedown {
  to {
    top: 0;
    opacity: 1;
  }
}

.site-title {
  opacity: 0;
  display: none;
}
.js-fixed .site-title {
  opacity: 1;
  display: block;
}

.logo {
  background: url(../images/logo.png) no-repeat 0 0/contain;
  display: block;
  aspect-ratio: 3.4/1;
  width: 180px;
  transition: 0.5s;
}

@media (min-width: 48em) {
  .navbar {
    margin-top: 1rem;
    justify-content: center;
  }
  .js-fixed .navbar {
    float: right;
    justify-content: start;
  }
}
@media (max-width: 47.99em) {
  .navbar {
    z-index: 99;
    position: fixed;
    inset: 0;
    background: #fff url(../images/logo2.png) no-repeat center 30px/20% auto;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: 350ms ease, opacity 200ms;
  }
  .navbar.js-open {
    height: 100dvh;
    padding-top: 37%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    opacity: 1;
    visibility: visible;
  }
}
@media (max-width: 35.49em) {
  .navbar {
    background-size: 26% auto;
  }
  .navbar.js-open {
    padding-top: 50%;
  }
}

.nav-link {
  color: var(--primary);
  font-size: 1.5em;
  letter-spacing: 0.1em;
  display: block;
  position: relative;
}
@media (min-width: 48em) {
  .nav-link {
    font-size: 1.06em;
    padding-inline: 14px;
    color: #fff;
  }
  .nav-link:not(:last-child) {
    border-right: 1px solid #fff;
  }
  .nav-link:hover, .nav-link:active {
    color: var(--warning);
  }
  .nav-link.active {
    color: var(--secondary);
  }
  .js-fixed .nav-link {
    color: var(--primary);
  }
  .js-fixed .nav-link:hover, .js-fixed .nav-link:active {
    color: var(--secondary);
  }
}
@media (max-width: 47.99em) {
  .nav-link {
    margin: 1.5rem auto;
    width: fit-content;
  }
  .nav-link:hover, .nav-link:active {
    color: #815c7b;
  }
  .nav-link.active {
    color: var(--secondary);
  }
}

.navbar-toggler {
  display: none;
  cursor: pointer;
  transition: 600ms;
  z-index: 100;
  position: absolute;
  right: 24px;
  padding: 0;
  height: 16px;
  width: 30px;
  top: 18px;
}
.navbar-toggler.active .icon-hamburger {
  background-color: transparent;
}
.navbar-toggler.active .icon-hamburger::before, .navbar-toggler.active .icon-hamburger::after {
  background-color: var(--success);
}
.navbar-toggler.active .icon-hamburger::before {
  transform: rotate(45deg);
}
.navbar-toggler.active .icon-hamburger::after {
  transform: rotate(-45deg);
}
@media (max-width: 47.99em) {
  .navbar-toggler {
    display: block;
  }
}

.icon-hamburger {
  display: block;
}
.icon-hamburger::before, .icon-hamburger::after {
  content: "";
  display: block;
  position: absolute;
}
.icon-hamburger, .icon-hamburger::before, .icon-hamburger::after {
  transition: 400ms ease-in-out;
  width: 100%;
  height: 2px;
  background-color: #fff;
}
.js-fixed .icon-hamburger, .js-fixed .icon-hamburger::before, .js-fixed .icon-hamburger::after {
  background-color: var(--success);
}
.icon-hamburger::before {
  transform: translateY(-7px);
}
.icon-hamburger::after {
  transform: translateY(7px);
}

#footer {
  background-color: #141821;
  border-top: 5px solid transparent;
  border-image: var(--gradient2) 1;
  border-image-slice: 1;
}

@media (min-width: 48em) {
  .foot-info {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
  }
}
@media (max-width: 47.99em) {
  .foot-info {
    text-align: center;
  }
}

.foot-logo {
  height: 166px;
}

.foot-address {
  order: -1;
}
@media (max-width: 47.99em) {
  .foot-address {
    margin-bottom: 28px;
  }
}

.hover\:contact-link:hover {
  --border-color: var(--secondary);
  background: #eddfa5;
  color: var(--success);
}

input.btn {
  border: none;
}

.btn {
  background-color: var(--btn-bg, var(--warning));
  border-radius: 8px;
  padding: 1rem 2.6rem;
  position: relative;
  transition: 500ms;
  color: var(--color, var(--primary));
}
.btn {
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  user-select: none;
  -webkit-appearance: none;
}
.btn:focus {
  outline: 0;
}

.btn[disabled] {
  --btn-bg: #abaab2;
  --color: rgba(255, 255, 255, 0.7);
}
.btn::after {
  content: "";
  display: block;
  --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 12L17 12L13 16M15 10L13 8' stroke='%238A5D92' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' /%3E%3C/svg%3E");
  background: var(--icon) no-repeat center/contain;
  width: 30px;
  height: 30px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.2s ease, right 0.35s;
  opacity: 0;
  right: 20px;
}
.btn.reverse {
  --btn-bg: #fff;
  --color: var(--secondary);
  border: 1px solid #dddddd;
}
.btn.reverse:hover {
  --btn-bg: #b7b7bb;
  --color: var(--secondary);
}
.btn:hover {
  --btn-bg: #fff;
  --color: var(--secondary);
  box-shadow: var(--shadow);
}
.btn:hover::after {
  opacity: 1;
  right: 10px;
}

.text-primary {
  color: var(--primary);
}
.text-secondary {
  color: var(--secondary);
}
.text-info {
  color: var(--info);
}
.text-success {
  color: var(--success);
}
.text-warning {
  color: var(--warning);
}
.text-danger {
  color: var(--danger);
}
.text-black {
  color: #000;
}

.bg-primary {
  background-color: var(--primary);
}
.bg-muted {
  background-color: var(--muted);
}
.bg-secondary {
  background-color: var(--secondary);
}
.bg-info {
  background-color: var(--info);
}
.bg-success {
  background-color: var(--success);
}

.hover\:text-warning:hover {
  color: var(--warning);
}
.hover\:text-white:hover {
  color: var(--white);
}
.hover\:bg-white:hover {
  background-color: var(--white);
}
.hover\:bg-muted:hover {
  background-color: var(--muted);
}
.hover\:underline {
  display: inline;
  background: linear-gradient(90deg, rgba(184, 131, 176, 0.55), rgba(184, 131, 176, 0.55)) no-repeat 0 100%/0 10px;
  transition: 0.6s;
}
.hover\:underline:hover {
  background-size: 100% 10px;
}
.hover\:card:hover {
  --border-color: var(--warning);
  background: linear-gradient(120deg, var(--danger), #a17da8, var(--info), var(--danger));
  background-size: 300% 100%;
  box-shadow: var(--shadow-lg);
  transform: translateY(-6px);
  animation: bgFlow 5s linear infinite;
}
@-webkit-keyframes bgFlow {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 300% 100%;
  }
}
@-moz-keyframes bgFlow {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 300% 100%;
  }
}
@keyframes bgFlow {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 300% 100%;
  }
}
.hover\:card:hover, .hover\:card:hover h4 {
  color: #fff;
}
.hover\:card:hover .svg-inline {
  color: var(--warning);
}

.border-white {
  --border-color: rgba(255, 255, 255, 0.1);
}

.label {
  background-color: var(--primary-100);
  padding: 0.375rem 0.75rem;
  color: rgba(0, 0, 0, 0.6);
}

@media (min-width: 35.5em) {
  .xs\:font-xs {
    font-size: 0.75rem;
  }
  .xs\:font-sm {
    font-size: 0.88rem;
  }
  .xs\:font-base {
    font-size: 1rem;
  }
  .xs\:font-lg {
    font-size: 1.13rem;
  }
  .xs\:font-xl {
    font-size: 1.25rem;
  }
  .xs\:font-2xl {
    font-size: 1.5rem;
  }
  .xs\:font-3xl {
    font-size: 1.88rem;
  }
  .xs\:font-4xl {
    font-size: 2.63rem;
  }
  .xs\:font-5xl {
    font-size: 3rem;
  }
  .xs\:font-22 {
    font-size: 1.38rem;
  }
  .xs\:font-7xl {
    font-size: 4.5rem;
  }
  .xs\:text-left {
    text-align: left;
  }
  .xs\:text-right {
    text-align: right;
  }
  .xs\:text-center {
    text-align: center;
  }
  .xs\:text-justify {
    text-align: justify;
  }
}
@media (max-width: 35.49em) {
  .xs-max\:hide {
    display: none;
  }
}
@media (min-width: 48em) {
  .sm\:font-xs {
    font-size: 0.75rem;
  }
  .sm\:font-sm {
    font-size: 0.88rem;
  }
  .sm\:font-base {
    font-size: 1rem;
  }
  .sm\:font-lg {
    font-size: 1.13rem;
  }
  .sm\:font-xl {
    font-size: 1.25rem;
  }
  .sm\:font-2xl {
    font-size: 1.5rem;
  }
  .sm\:font-3xl {
    font-size: 1.88rem;
  }
  .sm\:font-4xl {
    font-size: 2.63rem;
  }
  .sm\:font-5xl {
    font-size: 3rem;
  }
  .sm\:font-22 {
    font-size: 1.38rem;
  }
  .sm\:font-7xl {
    font-size: 4.5rem;
  }
  .sm\:text-left {
    text-align: left;
  }
  .sm\:text-right {
    text-align: right;
  }
  .sm\:text-center {
    text-align: center;
  }
  .sm\:text-justify {
    text-align: justify;
  }
}
@media (max-width: 47.99em) {
  .sm-max\:hide {
    display: none;
  }
}
@media (min-width: 64em) {
  .md\:font-xs {
    font-size: 0.75rem;
  }
  .md\:font-sm {
    font-size: 0.88rem;
  }
  .md\:font-base {
    font-size: 1rem;
  }
  .md\:font-lg {
    font-size: 1.13rem;
  }
  .md\:font-xl {
    font-size: 1.25rem;
  }
  .md\:font-2xl {
    font-size: 1.5rem;
  }
  .md\:font-3xl {
    font-size: 1.88rem;
  }
  .md\:font-4xl {
    font-size: 2.63rem;
  }
  .md\:font-5xl {
    font-size: 3rem;
  }
  .md\:font-22 {
    font-size: 1.38rem;
  }
  .md\:font-7xl {
    font-size: 4.5rem;
  }
  .md\:text-left {
    text-align: left;
  }
  .md\:text-right {
    text-align: right;
  }
  .md\:text-center {
    text-align: center;
  }
  .md\:text-justify {
    text-align: justify;
  }
}
@media (max-width: 63.99em) {
  .md-max\:hide {
    display: none;
  }
}
@media (min-width: 80em) {
  .lg\:font-xs {
    font-size: 0.75rem;
  }
  .lg\:font-sm {
    font-size: 0.88rem;
  }
  .lg\:font-base {
    font-size: 1rem;
  }
  .lg\:font-lg {
    font-size: 1.13rem;
  }
  .lg\:font-xl {
    font-size: 1.25rem;
  }
  .lg\:font-2xl {
    font-size: 1.5rem;
  }
  .lg\:font-3xl {
    font-size: 1.88rem;
  }
  .lg\:font-4xl {
    font-size: 2.63rem;
  }
  .lg\:font-5xl {
    font-size: 3rem;
  }
  .lg\:font-22 {
    font-size: 1.38rem;
  }
  .lg\:font-7xl {
    font-size: 4.5rem;
  }
  .lg\:text-left {
    text-align: left;
  }
  .lg\:text-right {
    text-align: right;
  }
  .lg\:text-center {
    text-align: center;
  }
  .lg\:text-justify {
    text-align: justify;
  }
}
@media (max-width: 79.99em) {
  .lg-max\:hide {
    display: none;
  }
}
.sr-only, .sr-only-focusable:not(:focus):not(:focus-within) {
  border-width: 0;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  white-space: nowrap;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
}

.text-hide {
  padding: 0;
}
.text-hide {
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap;
}

.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.tracking-maximum {
  letter-spacing: 0.2em;
}

.truncate {
  width: 100%;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.break-all {
  word-break: break-all;
}
.break-inside-avoid {
  break-inside: avoid;
}

.object-contain {
  object-fit: contain;
}
.object-cover {
  object-fit: cover;
}
.object-20 {
  object-position: center 20%;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.top-0 {
  top: 0;
}

.right-0 {
  right: 0;
}

.bottom-0 {
  bottom: 0;
}

.left-0 {
  left: 0;
}

.z-1 {
  z-index: 1;
}

.-z-1 {
  z-index: -1;
}

.w-full {
  width: 100%;
}
.w-auto {
  width: auto;
}
.w-4xl {
  width: 64rem;
}

.max-w-full {
  max-width: 100%;
}
.max-w-3xl {
  max-width: 49.5rem;
}

.min-w-full {
  min-width: 100%;
}

.h-6 {
  height: 1.5rem;
}
.h-7 {
  height: 1.75rem;
}
.h-52 {
  height: 13rem;
}
.h-full {
  height: 100%;
}

.aspect-1\/1 {
  aspect-ratio: 1 / 1;
}

.min-h-full {
  min-height: 100%;
}

.max-h-full {
  max-height: 100%;
}

.font-sp {
  font-family: "Playpen Sans Thai", handwriting;
  font-optical-sizing: auto;
}

.bg-gradient {
  background: var(--gradient);
}

.thumb-link:hover .thumb-img {
  filter: hue-rotate(15deg) brightness(0.5);
}
.thumb-link:hover .thumb-desc p {
  opacity: 1;
  margin-bottom: 0;
}

.thumb-img {
  height: 380px;
  transition: 0.35s;
}

.thumb-desc {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
}
.thumb-desc p {
  transition: 0.5s;
  opacity: 0;
  margin-bottom: -30px;
}

.swiper {
  --swiper-theme-color: var(--warning);
}

.swiper-pagination {
  --swiper-pagination-bullet-inactive-color: #fff;
}

.carousel {
  --swiper-navigation-size: 24px;
  --swiper-navigation-top-offset: auto;
  --swiper-navigation-sides-offset: auto;
  padding-bottom: 54px !important;
}
.carousel .swiper-button-next,
.carousel .swiper-button-prev {
  bottom: 0;
}
.carousel .swiper-button-next {
  right: 24px !important;
}
.carousel .swiper-button-prev {
  right: 60px !important;
}

.shadow {
  box-shadow: var(--shadow);
}

.columns-2 {
  columns: 2;
}

.svg-inline {
  display: inline-block;
  box-sizing: content-box;
}

.overflow-x-auto {
  overflow-x: auto;
}

.scroll-outer {
  background: linear-gradient(to right, white 30%, rgba(255, 255, 255, 0)), linear-gradient(to left, #fff, white 90%) 100% 0, radial-gradient(farthest-side at 0 50%, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)), radial-gradient(farthest-side at 100% 50%, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)) 100% 0;
  background-repeat: no-repeat;
  background-color: white;
  background-size: 20px 100%, 20px 100%, 10px 100%, 10px 100%;
  background-attachment: local, local, scroll, scroll;
}

.timeline {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 360px;
  width: 900px;
  padding-inline: 60px 10px;
}
.timeline::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  inset-inline: 0;
  border: 1px solid var(--success);
  transform: translateY(-50%);
}

.timeline-icon {
  position: absolute;
  left: -38px;
  width: 76px;
  height: 76px;
}

.timeline-item {
  padding: 8px 40px 8px 30px;
  width: 290px;
  min-height: 180px;
  position: relative;
}
.timeline-item + .timeline-item {
  margin-left: -146px;
}
.timeline-item::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  inset-block: 0;
  border-left: 1px solid var(--success);
}
.timeline-item:nth-child(odd) {
  align-self: flex-start;
}
.timeline-item:nth-child(odd) .timeline-icon {
  top: calc(100% - 38px);
}
.timeline-item:nth-child(even) {
  align-self: flex-end;
  padding-top: 74px;
}
.timeline-item:nth-child(even) .timeline-icon {
  bottom: calc(100% - 38px);
}

.bg-diamond {
  background: url(../images/bg/index.jpg) no-repeat center/cover fixed;
}
@supports (-webkit-overflow-scrolling: touch) {
  .bg-diamond {
    background-attachment: scroll;
  }
}

.plan {
  --plan-size: minmax(0, 1fr);
  grid-template-columns: repeat(var(--plan-col, 1), var(--plan-size));
}
@media (min-width: 26.25em) {
  .plan {
    --plan-size: 300px ;
  }
}
@media (min-width: 48em) {
  .plan {
    --plan-col: 3;
    --plan-size: 31% ;
  }
}
@media (min-width: 80em) {
  .plan {
    --plan-size: 320px ;
  }
}

.plan-option {
  background-color: rgba(184, 131, 176, 0.52);
  background-position: center;
  border: 3px solid #E7E6F0;
  border-radius: 16px;
  overflow: hidden;
  padding-block: 120px 70px;
  transition: 0.35s;
}
.plan-option:hover {
  background: #8A5D92 var(--bg) no-repeat center/cover;
}
.plan-option:hover.i1 {
  --bg: url(../images/figure/plan1.png);
}
.plan-option:hover.i2 {
  --bg: url(../images/figure/plan2.png);
}
.plan-option:hover.i3 {
  --bg: url(../images/figure/plan3.png);
}
.plan-option:hover dd {
  color: #fff;
  text-shadow: 2px 0 8px rgba(0, 0, 0, 0.8);
}
.plan-option:hover .plan-title::before, .plan-option:active .plan-title::before {
  border-color: #E9D892;
  opacity: 0.9;
}

.plan-title {
  margin-bottom: 5em;
  margin-top: 0;
  z-index: 2;
}
.plan-title::before {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -48%) rotate(45deg);
  border: 1px solid #8A5D92;
  background-color: #fff;
  opacity: 0.6;
  width: 130px;
  height: 130px;
  z-index: -1;
}

.banner {
  height: 75dvh;
}
@media (min-width: 64em) {
  .banner {
    height: 100dvh;
  }
}
.banner::before {
  content: "";
  display: block;
  background: var(--gradient);
  height: 277px;
  pointer-events: none;
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  z-index: 2;
}

.logo-lg {
  background: url(../images/logo-lg.png) no-repeat 0 0/contain;
  background-image: image-set(url(../images/logo-lg.png) 1x, url(../images/logo-lg@2x.png) 2x);
  width: 120px;
  aspect-ratio: 0.62/1;
  margin: 0;
  position: absolute;
  left: 50%;
  top: 10dvh;
  transform: translateX(-50%);
  z-index: 3;
}
@media (min-width: 35.5em) {
  .logo-lg {
    width: 160px;
  }
}
@media (min-width: 64em) {
  .logo-lg {
    top: 18dvh;
  }
}

.slogan {
  font-size: min(10vw, 4.5rem);
  text-shadow: 3px 3px 8px rgba(30, 29, 42, 0.75);
  letter-spacing: 0.25em;
  margin: 0;
  position: absolute;
  top: 50%;
  inset-inline: 0;
}
@media (min-width: 35.5em) {
  .slogan {
    top: 40dvh;
  }
}
@media (min-width: 48em) {
  .slogan {
    top: 42dvh;
  }
}
@media (min-width: 64em) {
  .slogan {
    top: 50dvh;
  }
}

.slogan_sub {
  font-size: min(4vw, 1.25rem);
  font-style: italic;
}

.about_info {
  padding-left: 260px;
  background: rgba(255, 255, 255, 0.8) url(../images/logo2.png) no-repeat 64px 64px/auto 208px;
  backdrop-filter: blur(24px);
}

.bg-work {
  background: url(../images/bg/index-work.jpg) no-repeat center fixed;
}
@media (min-width: 80em) {
  .bg-work {
    background-size: cover;
  }
}
@supports (-webkit-overflow-scrolling: touch) {
  .bg-work {
    background-attachment: scroll;
  }
}

@media (min-width: 35.5em) and (max-width: 47.99em), (min-width: 80em) {
  .list-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 48em) and (max-width: 63.99em) {
  .list-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.bg-wall {
  background: url(../images/bg-wall.jpg) no-repeat center bottom;
  padding-top: 170px;
  padding-bottom: 272px;
}

.icon-diamond {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  display: block;
  border: 1px solid #fff;
  width: 96px;
  height: 96px;
  opacity: 0.3;
}
.icon-diamond.is-bg-primary {
  background: #1e1d2a;
}
.icon-diamond.is-border-primary {
  border-color: #1b1a26;
}

.list-marker-primary {
  list-style-type: decimal-leading-zero;
}
.list-marker-primary ::marker {
  color: #1e1d2a;
  font-size: 24px;
  font-weight: bold;
}
