@charset "UTF-8";
/*! destyle.css v3.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  line-height: 1;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -webkit-tap-highlight-color: transparent;
  /* 3*/
}

/* Sections */
/* ============================================ */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

/* Lists (enumeration) */
/* ============================================ */
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */
dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: inherit;
  /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: inherit;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Replaced content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */
button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none;
  /* 1 */
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
  /* 2 */
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type=checkbox] {
  -webkit-appearance: checkbox;
  appearance: checkbox;
}

[type=radio] {
  -webkit-appearance: radio;
  appearance: radio;
}

/**
 * Correct cursors for clickable elements.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
  cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */
:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * Remove padding
 */
option {
  padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the outline style in Safari.
 */
[type=search] {
  outline-offset: -2px;
  /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/**
 * Clickable labels
 */
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable]:focus {
  outline: auto;
}

/* Tables */
/* ============================================ */
/**
1. Correct table border color inheritance in all Chrome and Safari.
*/
table {
  border-color: inherit;
  /* 1 */
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: bold;
}

a,
span {
  display: inline-block;
}

@media screen and (max-width: 1399px) and (min-width: 480px) {
  html {
    font-size: calc(16 / 1400 * 100vw);
  }
}
@media screen and (max-width: 374px) {
  html {
    font-size: calc(16 / 375 * 100vw);
  }
}

body {
  color: #383838;
  font-family: "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt";
}

a {
  text-decoration: none;
  transition: opacity 0.3s ease;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}
@media (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

picture,
img,
a,
span {
  display: inline-block;
}

video,
img,
svg {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  appearance: none;
}

input,
textarea,
select {
  font: inherit;
  max-width: 100%;
  appearance: none;
}

:focus-visible {
  outline: 2px solid #0C59F2;
  outline-offset: 2px;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

::selection {
  background: rgba(235, 106, 2, 0.2);
}

/* 基本
***************************************************************/
html {
  font-size: 16px;
}

/* セクション幅
***************************************************************/
.inner {
  padding: 0 20px;
}

@media (min-width: 1024px) {
  .inner {
    padding: 0;
  }
}
/* PC・SP 改行
***************************************************************/
@media (min-width: 768px) {
  .sp_br {
    display: block !important;
  }
}

/* PC・SP 非表示
***************************************************************/
.sp_only {
  display: block !important;
}

.pc_only {
  display: none !important;
}

@media (min-width: 768px) {
  .sp_only {
    display: none !important;
  }
  .pc_only {
    display: block !important;
  }
}
/* 共通パーツ (全ページ)
***************************************************************/
.section_title {
  text-align: center;
}

.fixed {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 10px;
  gap: 10px;
  background: rgba(255, 255, 255, 0.7);
  transition: 0.3s;
}

.home .fixed {
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}

.home .fixed.active {
  opacity: 1;
  visibility: visible;
}

.fixed.none {
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}

.fixed_content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.fixed_link {
  color: #fff;
  text-align: center;
  background: #333;
  padding: 10px 0;
  border-radius: 30px;
  font-size: 14px;
}

@media (min-width: 1024px) {
  .fixed {
    display: none;
  }
}
/* 共通パーツ(下層)
***************************************************************/
.page_fv_title {
  font-size: clamp(32px, 5vw, 40px);
}

.page_section_title {
  color: #EB6A02;
  text-align: center;
  font-size: clamp(22px, 4vw, 27px);
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.6666666667;
}
.page_section_title::after {
  content: "";
  display: block;
  width: 2px;
  height: 25px;
  background-color: #EB6A02;
  margin-inline: auto;
  margin-top: 10px;
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  .page_section_title::after {
    margin-bottom: 30px;
  }
}

.page_section_text {
  color: #383838;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: left;
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .page_section_text {
    text-align: center;
    margin-bottom: 50px;
  }
}
/*===================================================
ヘッダー - ドロップダウンメニュー統合版
===================================================*/
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  transition: 0.3s;
}

.home header {
  background: unset;
  box-shadow: unset;
}

.header_inner {
  display: block;
  margin: 0 10px;
}
@media (min-width: 1024px) {
  .header_inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin: 0 15px;
  }
}
@media (min-width: 1400px) {
  .header_inner {
    margin: 0 100px;
  }
}

.header_content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media (min-width: 1024px) {
  .header_content {
    align-items: center;
  }
}

.header_logo {
  background-color: rgba(255, 255, 255, 0.85);
  border-radius: 0 0 20px 20px;
  padding: 12px 20px 18px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (min-width: 768px) {
  .header_logo:hover {
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 0 0 25px 25px;
  }
}

.header_logo img {
  width: 80px;
  height: 80px;
  transition: filter 0.3s ease;
}
@media (min-width: 768px) {
  .header_logo img {
    width: 100px;
    height: 100px;
  }
  .header_logo:hover .header_logo img {
    filter: brightness(1.1);
  }
}

.toggle-menu {
  display: inline-block;
  width: 50px;
  height: 50px;
  position: relative;
  z-index: 100;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
}
@media (min-width: 1024px) {
  .toggle-menu {
    display: none;
  }
}
@media (min-width: 768px) {
  .toggle-menu:hover {
    background: rgba(255, 255, 255, 0.95);
    transform: scale(1.05);
  }
}

.toggle-menu .toggle-line {
  display: block;
  position: relative;
  width: 24px;
  height: 2px;
  background-color: #EB6A02;
  border-radius: 10px;
  transition: all 0.3s ease;
}

.toggle-menu .toggle-line::before,
.toggle-menu .toggle-line::after {
  content: "";
  position: absolute;
  left: 0;
  width: 24px;
  height: 2px;
  background-color: #EB6A02;
  border-radius: 10px;
  transition: all 0.3s ease;
}

.toggle-menu .toggle-line::before {
  top: -6px;
}

.toggle-menu .toggle-line::after {
  top: 6px;
}

.open .toggle-menu {
  background: rgba(235, 106, 2, 0.9);
}

.open .toggle-menu .toggle-line {
  background-color: transparent;
}

.open .toggle-menu .toggle-line::before {
  transform: rotate(-45deg);
  top: 0;
  background-color: #fff;
}

.open .toggle-menu .toggle-line::after {
  transform: rotate(45deg);
  top: 0;
  background-color: #fff;
}

.header_nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
  z-index: 90;
  transform: translateX(100%);
  transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  visibility: hidden;
  opacity: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 100px 30px 50px;
}
@media (min-width: 1024px) {
  .header_nav {
    position: static;
    padding: 8px 10px 8px 30px;
    border-radius: 70px;
    display: flex;
    flex-direction: row;
    align-items: center;
    width: auto;
    height: auto;
    transform: none;
    visibility: visible;
    opacity: 1;
    gap: 0;
    transition: all 0.3s ease;
    justify-content: flex-start;
    margin-top: 20px;
    background: rgba(255, 255, 255, 0.75);
    zoom: 0.9;
  }
  .header_nav:hover {
    background-color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  }
}
@media (min-width: 1400px) {
  .header_nav {
    gap: 29px;
    zoom: unset;
  }
}

.open .header_nav {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
}

.global_nav {
  width: 100%;
  max-width: 400px;
  margin-bottom: 40px;
}
@media (min-width: 1024px) {
  .global_nav {
    margin-bottom: 0;
    max-width: none;
    width: auto;
  }
}

.global_nav_list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
@media (min-width: 1024px) {
  .global_nav_list {
    flex-direction: row;
    gap: 0;
  }
}
@media (min-width: 1400px) {
  .global_nav_list {
    gap: 21px;
  }
}

.global_nav_item {
  width: 100%;
  position: relative;
}
@media (min-width: 1024px) {
  .global_nav_item {
    font-weight: bold;
    width: auto;
  }
}
.global_nav_item.has_dropdown {
  position: relative;
}
.global_nav_item.has_dropdown > a,
.global_nav_item.has_dropdown > .nav_label {
  position: relative;
}
.global_nav_item.has_dropdown > a::after,
.global_nav_item.has_dropdown > .nav_label::after {
  content: "";
  position: absolute;
  right: -8px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 3px solid transparent;
  border-right: 3px solid transparent;
  border-top: 4px solid currentColor;
  transition: transform 0.3s ease;
}
@media (min-width: 1024px) {
  .global_nav_item.has_dropdown > a::after,
  .global_nav_item.has_dropdown > .nav_label::after {
    right: 5px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
  }
}
.global_nav_item.has_dropdown:hover > a::after, .global_nav_item.has_dropdown:hover > .nav_label::after {
  transform: translateY(-50%) rotate(180deg);
}
.global_nav_item.has_dropdown::after {
  content: "";
  position: absolute;
  top: 100%;
  left: -20px;
  right: -20px;
  height: 10px;
  background: transparent;
  z-index: 999;
}
@media (min-width: 1024px) {
  .global_nav_item.has_dropdown::after {
    left: -30px;
    right: -30px;
    height: 5px;
  }
}

.global_nav_item a,
.global_nav_item .nav_label {
  display: block;
  padding: 20px 30px;
  width: 100%;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50px;
  text-align: center;
  font-weight: bold;
  font-size: 16px;
  color: #383838;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px);
}
@media (min-width: 1024px) {
  .global_nav_item a,
  .global_nav_item .nav_label {
    border-bottom: none;
    padding: 8px 12px;
    width: auto;
    border-radius: 20px;
    overflow: visible;
    transition: color 0.3s ease;
    background: none !important;
    font-size: 14px;
    border: none;
    backdrop-filter: none;
  }
  .global_nav_item a::before,
  .global_nav_item .nav_label::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    width: 0;
    height: 2px;
    background: #EB6A02;
    transition: width 0.3s ease;
    margin: 0 auto;
  }
  .global_nav_item a:hover,
  .global_nav_item .nav_label:hover {
    color: #EB6A02 !important;
    transform: none !important;
    background: none !important;
  }
  .global_nav_item a:hover::before,
  .global_nav_item .nav_label:hover::before {
    width: 100%;
  }
}

.global_nav_item .nav_label {
  cursor: default;
  text-decoration: none;
}
@media (min-width: 1024px) {
  .global_nav_item .nav_label {
    padding-right: 20px;
  }
}

@media (max-width: 1023px) {
  .global_nav_item a::before,
  .global_nav_item .nav_label::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    transition: left 0.4s ease;
    z-index: -1;
  }
}

@media (min-width: 1024px) {
  .global_nav_item.has_dropdown a::before,
  .global_nav_item.has_dropdown .nav_label::before {
    display: none;
  }
}
/* ドロップダウンメニュー */
.dropdown_menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(-5px);
  width: 90vw;
  max-width: 1200px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease;
  z-index: 1000;
  border-radius: 8px;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .dropdown_menu {
    position: fixed;
    top: 75px;
    left: 50vw;
    transform: translateX(-50%);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }
}

.dropdown_menu_content {
  display: flex;
  min-height: 200px;
}
@media (max-width: 1023px) {
  .dropdown_menu_content {
    flex-direction: column;
    min-height: auto;
  }
}
@media (min-width: 1024px) {
  .dropdown_menu_content {
    flex-direction: row;
  }
}

.dropdown_menu_left {
  display: none;
}
@media (min-width: 1024px) {
  .dropdown_menu_left {
    background: linear-gradient(to right, #EB6A02, #F8B21F);
    width: 30%;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
  }
}

.dropdown_menu_title {
  color: #fff;
  font-weight: bold;
  font-size: 16px;
  text-align: center;
}
@media (min-width: 1024px) {
  .dropdown_menu_title {
    font-size: 18px;
  }
}

.dropdown_menu_right {
  width: 100%;
  padding: 20px;
}
@media (min-width: 1024px) {
  .dropdown_menu_right {
    width: 70%;
    display: flex;
    align-items: center;
  }
}

.dropdown_items_grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
  width: 100%;
}
@media (min-width: 1024px) {
  .dropdown_items_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    align-items: center;
  }
}

.dropdown_item {
  background: #fff;
}
@media (min-width: 1024px) {
  .dropdown_item {
    border-radius: 0;
  }
}
@media (max-width: 1023px) {
  .dropdown_item {
    border-radius: 8px;
    overflow: hidden;
  }
}
.dropdown_item a {
  display: flex !important;
  align-items: center !important;
  padding: 15px 20px !important;
  color: #666 !important;
  text-decoration: none;
  font-size: 14px !important;
  font-weight: 400 !important;
  transition: all 0.15s ease;
  position: relative;
  background: #fff !important;
  border-radius: 0 !important;
  width: 100% !important;
  text-align: left !important;
  transform: none !important;
  backdrop-filter: none !important;
  border: none !important;
  overflow: visible !important;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .dropdown_item a {
    padding: 18px 25px !important;
    font-size: 15px !important;
  }
}
@media (max-width: 1023px) {
  .dropdown_item a {
    background: rgba(255, 255, 255, 0.9) !important;
    border-radius: 8px !important;
  }
}
.dropdown_item a:hover {
  background: #f8f9fa !important;
  color: #333 !important;
  transform: none !important;
}
@media (max-width: 1023px) {
  .dropdown_item a:hover {
    background: rgba(235, 106, 2, 0.1) !important;
  }
}
.dropdown_item a::before, .dropdown_item a::after {
  display: none !important;
}

.dropdown_item_icon {
  color: #EB6A02;
  font-weight: bold;
  margin-right: 8px;
  transition: transform 0.2s ease;
  font-size: 14px;
}
@media (min-width: 1024px) {
  .dropdown_item_icon {
    font-size: 16px;
  }
}

.dropdown_item a:hover .dropdown_item_icon {
  transform: translateX(3px);
}

.has_dropdown:hover .dropdown_menu,
.dropdown_menu:hover {
  opacity: 1;
  visibility: visible;
}
@media (min-width: 1024px) {
  .has_dropdown:hover .dropdown_menu,
  .dropdown_menu:hover {
    transform: translateX(-50%);
  }
}
@media (max-width: 1023px) {
  .has_dropdown:hover .dropdown_menu,
  .dropdown_menu:hover {
    transform: none;
  }
}

.header_contact {
  width: 100%;
  max-width: 400px;
}
@media (min-width: 1024px) {
  .header_contact {
    width: auto;
    max-width: none;
  }
}

.header_contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 40px;
  background: linear-gradient(135deg, #EF2929, #FF6B35);
  color: #fff;
  border-radius: 50px;
  font-weight: bold;
  font-size: 18px;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .header_contact a:hover {
    transform: translateY(-3px) scale(1.05);
  }
  .header_contact a:hover img {
    transform: rotate(10deg) scale(1.1);
  }
}
@media (min-width: 1024px) {
  .header_contact a {
    padding: 11px 30px;
    border-radius: 40px;
    font-size: 14px;
    gap: 7px;
  }
}

.header_contact img {
  width: 20px;
  height: 16px;
  transition: transform 0.3s ease;
}
@media (min-width: 1024px) {
  .header_contact img {
    width: 22px;
    height: 17px;
  }
}

.open .global_nav_item {
  animation: slideInItem 0.6s ease-out both;
}

.open .global_nav_item:nth-child(1) {
  animation-delay: 0.1s;
}

.open .global_nav_item:nth-child(2) {
  animation-delay: 0.15s;
}

.open .global_nav_item:nth-child(3) {
  animation-delay: 0.2s;
}

.open .global_nav_item:nth-child(4) {
  animation-delay: 0.25s;
}

.open .global_nav_item:nth-child(5) {
  animation-delay: 0.3s;
}

.open .global_nav_item:nth-child(6) {
  animation-delay: 0.35s;
}

.open .header_contact {
  animation: slideInItem 0.6s ease-out both;
  animation-delay: 0.4s;
}

@keyframes slideInItem {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* モバイル版ドロップダウン */
@media (max-width: 1023px) {
  .dropdown_menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 15px;
    margin-top: 10px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    width: 100%;
  }
  .has_dropdown:hover .dropdown_menu,
  .has_dropdown.is_active .dropdown_menu {
    max-height: 400px;
  }
  .dropdown_menu_content {
    padding: 15px;
  }
  .dropdown_menu_left {
    border-radius: 10px;
    margin-bottom: 15px;
    min-height: auto;
  }
  .dropdown_menu_right {
    padding: 0;
  }
}
/* SP用 タップフィードバック */
@media (max-width: 767px) {
  .global_nav_item a:active,
  .global_nav_item .nav_label:active {
    background: linear-gradient(135deg, #EB6A02, #F8B21F) !important;
    color: #fff !important;
    transform: scale(0.96) !important;
    box-shadow: 0 3px 10px rgba(235, 106, 2, 0.4);
    transition: all 0.1s ease !important;
  }
  .dropdown_item a:active {
    background: linear-gradient(135deg, #EB6A02, #F8B21F) !important;
    color: #fff !important;
    transform: translateX(5px) scale(0.96) !important;
  }
  .dropdown_item a:active .dropdown_item_icon {
    color: #fff !important;
  }
}
/* モバイル版ドロップダウン完全修正版 */
@media (max-width: 1023px) {
  .global_nav_item.has_dropdown {
    transition: all 0.3s ease;
  }
  .global_nav_item.has_dropdown.is_active {
    border-radius: 15px;
  }
  .global_nav_item.has_dropdown.is_active > .nav_label {
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    color: #fff;
  }
  .global_nav_item.has_dropdown.is_active > .nav_label::after {
    transform: translateY(-50%) rotate(180deg) !important;
    border-top-color: #fff;
  }
  .global_nav_item.has_dropdown > .nav_label {
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
  }
  .global_nav_item.has_dropdown > .nav_label::after {
    content: "";
    position: absolute;
    right: 15px !important;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid currentColor;
    transition: all 0.3s ease !important;
  }
  .global_nav_item.has_dropdown > .nav_label:active {
    transform: scale(0.98);
    opacity: 0.8;
  }
  .global_nav_item.has_dropdown:not(.is_active) > .nav_label::after {
    transform: translateY(-50%) rotate(0deg) !important;
  }
  .dropdown_menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: rgba(255, 255, 255, 0.98);
    border-radius: 12px;
    margin-top: 8px;
    max-height: 0 !important;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    width: calc(100% - 10px);
    margin-left: 5px;
    backdrop-filter: blur(10px);
  }
  .has_dropdown.is_active .dropdown_menu {
    max-height: 450px !important;
    margin-top: 12px;
  }
  .has_dropdown:not(.is_active) .dropdown_menu {
    max-height: 0 !important;
    overflow: hidden;
    margin-top: 8px;
  }
  .dropdown_menu_content {
    padding: 0;
    animation: fadeInContent 0.4s ease 0.1s both;
  }
  .dropdown_menu_title {
    color: #fff;
    font-weight: bold;
    font-size: 15px;
    text-align: center;
  }
  .dropdown_menu_right {
    padding: 15px;
  }
  .dropdown_items_grid {
    gap: 8px;
    grid-template-columns: 1fr;
  }
  .dropdown_item {
    transform: translateY(10px);
    opacity: 0;
    animation: slideInItem 0.3s ease forwards;
  }
  .dropdown_item:nth-child(1) {
    animation-delay: 0.1s;
  }
  .dropdown_item:nth-child(2) {
    animation-delay: 0.15s;
  }
  .dropdown_item:nth-child(3) {
    animation-delay: 0.2s;
  }
  .dropdown_item:nth-child(4) {
    animation-delay: 0.25s;
  }
  .dropdown_item a {
    border-radius: 8px !important;
    padding: 14px 16px !important;
    background: rgba(255, 255, 255, 0.9) !important;
    border: 1px solid rgba(235, 106, 2, 0.1) !important;
    transition: all 0.2s ease !important;
  }
  .dropdown_item a:hover, .dropdown_item a:active {
    background: rgba(235, 106, 2, 0.08) !important;
    border-color: rgba(235, 106, 2, 0.25) !important;
    transform: translateX(2px) !important;
  }
  .dropdown_item a .dropdown_item_icon {
    transition: transform 0.2s ease;
  }
  .dropdown_item a:hover .dropdown_item_icon {
    transform: translateX(3px);
  }
}
@keyframes fadeInContent {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideInItem {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 背景スクロール制御CSS（既存CSSに追加）*/
@media (min-width: 1024px) {
  body.open {
    padding-right: 0;
  }
}
@media (max-width: 1023px) {
  body.open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: none;
  }
}

@media (max-width: 1023px) {
  .open .header_nav {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .open .header_nav::-webkit-scrollbar {
    width: 6px;
  }
  .open .header_nav::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
  }
  .open .header_nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 3px;
  }
  .open .header_nav::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.5);
  }
}

@supports (-webkit-touch-callout: none) {
  @media (max-width: 1023px) {
    body.open {
      -webkit-overflow-scrolling: auto;
      overscroll-behavior-y: none;
      touch-action: none;
    }
  }
  @media (max-width: 1023px) {
    .open .header_nav {
      -webkit-overflow-scrolling: touch;
      touch-action: pan-y;
    }
  }
}
/*===================================================
フッター
===================================================*/
footer {
  width: 100%;
  text-align: center;
  background: linear-gradient(to right, #FFFAE8 0%, #FFF2C9 100%);
}

.footer_container {
  padding: 72px 0;
}

.footer_logo {
  margin-bottom: 40px;
  transition: transform 0.3s ease;
}
@media (min-width: 1024px) {
  .footer_logo {
    margin-bottom: 53px;
  }
}
.footer_logo:hover {
  transform: translateY(-3px);
}
.footer_logo a {
  display: inline-block;
  transition: all 0.3s ease;
  position: relative;
}
.footer_logo a::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 50%;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  transition: all 0.3s ease;
  transform: translateX(-50%);
}
.footer_logo a:hover::after {
  width: 80%;
}
.footer_logo a:hover {
  filter: brightness(1.1);
}

.footer_logo img {
  width: 246px;
  height: auto;
  transition: transform 0.3s ease;
}

.footer_nav {
  font-weight: 500;
}

.footer_nav_list {
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .footer_nav_list {
    gap: 30px;
  }
}

.footer_nav_item {
  position: relative;
}
.footer_nav_item.has_submenu {
  text-align: left;
}
@media (min-width: 768px) {
  .footer_nav_item.has_submenu {
    min-width: 160px;
  }
}
.footer_nav_item a {
  color: #383838;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  display: block;
  overflow: hidden;
}
.footer_nav_item a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  transition: all 0.3s ease;
  transform: translateX(-50%);
}
.footer_nav_item a:hover {
  color: #EB6A02;
  transform: translateY(-2px);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.footer_nav_item a:hover::before {
  left: 0;
}
.footer_nav_item a:hover::after {
  width: calc(100% - 24px);
}
.footer_nav_item a[target=_blank]::before {
  background: linear-gradient(135deg, rgba(235, 106, 2, 0.15), rgba(248, 178, 31, 0.15));
}
.footer_nav_item a[target=_blank]:hover {
  color: #D85A00;
}
.footer_nav_item a[target=_blank]:hover::after {
  background: linear-gradient(to right, #D85A00, #F8B21F);
}

/* サブメニュー用スタイル */
.footer_nav_title {
  display: block;
  color: #383838;
  font-weight: bold;
  margin-bottom: 15px;
  font-size: inherit;
  transition: all 0.3s ease;
  position: relative;
}
@media (min-width: 768px) {
  .footer_nav_title {
    margin-bottom: 20px;
  }
}
@media (min-width: 1400px) {
  .footer_nav_title {
    margin-bottom: 25px;
  }
}
.footer_nav_title::after {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 50%;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  transition: all 0.3s ease;
  transform: translateX(-50%);
}
.footer_nav_title:hover {
  color: #EB6A02;
}
.footer_nav_title:hover::after {
  width: 80%;
}

.footer_submenu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer_submenu_item {
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .footer_submenu_item {
    margin-bottom: 10px;
  }
}
@media (min-width: 1400px) {
  .footer_submenu_item {
    margin-bottom: 12px;
  }
}
.footer_submenu_item:last-child {
  margin-bottom: 0;
}
.footer_submenu_item a {
  color: rgba(56, 56, 56, 0.8);
  text-decoration: none;
  font-size: 14px;
  transition: all 0.3s ease;
  display: block;
  padding-left: 15px;
  position: relative;
  font-weight: 400;
}
@media (min-width: 768px) {
  .footer_submenu_item a {
    font-size: 15px;
    padding-left: 18px;
  }
}
@media (min-width: 1400px) {
  .footer_submenu_item a {
    font-size: 16px;
    padding-left: 20px;
  }
}
.footer_submenu_item a::before {
  content: "▶";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 10px;
  color: rgba(56, 56, 56, 0.4);
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .footer_submenu_item a::before {
    font-size: 11px;
  }
}
@media (min-width: 1400px) {
  .footer_submenu_item a::before {
    font-size: 12px;
  }
}
.footer_submenu_item a::after {
  left: 15px;
  width: 0;
}
@media (min-width: 768px) {
  .footer_submenu_item a::after {
    left: 18px;
  }
}
@media (min-width: 1400px) {
  .footer_submenu_item a::after {
    left: 20px;
  }
}
.footer_submenu_item a:hover {
  color: #EB6A02;
  transform: translateY(-1px);
}
.footer_submenu_item a:hover::before {
  color: #F8B21F;
  transform: scale(1.2);
}
.footer_submenu_item a:hover::after {
  width: calc(100% - 30px);
}
@media (min-width: 768px) {
  .footer_submenu_item a:hover::after {
    width: calc(100% - 36px);
  }
}
@media (min-width: 1400px) {
  .footer_submenu_item a:hover::after {
    width: calc(100% - 40px);
  }
}

.footer_copyright {
  background: #EB6A02;
  padding: 21px;
}
.footer_copyright small {
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5384615385;
  color: #fff;
  transition: all 0.3s ease;
  display: inline-block;
}

.footer_nav_list {
  gap: 30px;
}
.footer_logo img {
  width: 180px;
}
@media (min-width: 768px) {
  .footer_logo img {
    width: 246px;
  }
}

/* モバイル対応 */
@media (max-width: 767px) {
  .footer_nav_item.has_submenu {
    margin-bottom: 30px;
    text-align: center;
  }
  .footer_nav_title {
    margin-bottom: 12px;
  }
  .footer_submenu_item {
    margin-bottom: 6px;
  }
  .footer_submenu_item a {
    font-size: 13px;
    padding-left: 12px;
  }
  .footer_submenu_item a::before {
    font-size: 9px;
  }
  .footer_submenu_item a::after {
    left: 12px;
  }
  .footer_submenu_item a:hover::after {
    width: calc(100% - 24px);
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 0.01ms !important;
  }
}
/*===================================================
Contact Section - 汎用パーツ（SP修正版）
===================================================*/
.contact_section {
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  padding: 40px 0 0;
}
@media (min-width: 768px) {
  .contact_section {
    padding: 70px 0 0;
  }
}

.contact_container {
  background-color: #FFFAF0;
  border-radius: 30px;
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
  padding: 40px 20px;
}
@media (min-width: 768px) {
  .contact_container {
    border-radius: 50px;
    padding: 63px 0 48px;
  }
}
@media (min-width: 1400px) {
  .contact_container {
    max-width: 1200px;
  }
}

.contact_titleWrap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 25px;
  gap: 15px;
}
@media (min-width: 768px) {
  .contact_titleWrap {
    margin-bottom: 40px;
    gap: 20px;
  }
}

.contact_icon {
  width: 30px;
  height: 16px;
}
@media (min-width: 768px) {
  .contact_icon {
    width: 39px;
    height: 21px;
  }
}

.contact_title {
  color: #EB6A02;
  font-size: clamp(24px, 4vw, 35px);
  font-weight: bold;
  letter-spacing: 0.05em;
}

.contact_text {
  color: #333333;
  font-size: clamp(16px, 3vw, 20px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-bottom: 25px;
}
@media (min-width: 768px) {
  .contact_text {
    line-height: 2;
    margin-bottom: 23px;
  }
}

.contact_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 60px;
  font-size: clamp(16px, 3vw, 20px);
  max-width: 470px;
  margin: 0 auto;
}
.contact_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.contact_btn:hover::before {
  left: 100%;
}
.contact_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.contact_btn img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
}
.contact_btn:hover img {
  transform: translateY(-50%) translateX(5px);
}
@media (min-width: 768px) {
  .contact_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 80px;
  }
  .contact_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .contact_btn:hover::before {
    left: 100%;
  }
  .contact_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .contact_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .contact_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
.contact_btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.contact_btn img {
  width: 20px;
  height: 5px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .contact_btn img {
    width: 29px;
    height: 7px;
    right: 26px;
  }
}

.contact__phone {
  background: transparent;
  padding: 40px 0 60px;
}
@media (min-width: 1024px) {
  .contact__phone {
    padding: 78px 0 100px;
  }
}

.contact__phone-title {
  position: relative;
  color: #fff;
  font-size: clamp(18px, 3vw, 35px);
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .contact__phone-title {
    margin-bottom: 53px;
    gap: 20px;
    padding: 0;
  }
}
.contact__phone-title .triangle-left,
.contact__phone-title .triangle-right {
  display: inline-block;
  width: clamp(25px, 3vw, 40px);
  height: clamp(25px, 3vw, 40px);
  background-image: url(../../assets/images/icon-contact_triangle.svg);
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 0;
}
.contact__phone-title .triangle-right {
  transform: scaleX(-1);
}

.contact__phone-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  align-items: center;
  padding: 0 20px;
}
@media (min-width: 768px) {
  .contact__phone-list {
    flex-direction: row;
    gap: 15px;
  }
}
@media (min-width: 1024px) {
  .contact__phone-list {
    gap: 20px;
  }
}
@media (min-width: 1400px) {
  .contact__phone-list {
    padding: 0;
    gap: 41px;
  }
}

.contact__phone-item {
  text-align: center;
  color: #fff;
  width: 100%;
  max-width: 300px;
}
@media (min-width: 768px) {
  .contact__phone-item {
    max-width: 400px;
  }
}
@media (min-width: 1024px) {
  .contact__phone-item {
    max-width: 400px;
  }
}
@media (min-width: 1400px) {
  .contact__phone-item {
    max-width: 450px;
  }
}

.contact__phone-location {
  font-size: clamp(20px, 3vw, 30px);
  font-weight: bold;
  margin-bottom: 6px;
  letter-spacing: 0.07em;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .contact__phone-location {
    line-height: 1.5666666667;
  }
}

.contact__phone-number {
  background-color: #fff;
  color: #EB6A02;
  padding: 15px 20px;
  border-radius: 40px;
  font-size: clamp(18px, 2.5vw, 35px);
  font-weight: bold;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
  line-height: 1.3428571429;
  letter-spacing: 0.07em;
  width: 100%;
  justify-content: center;
  cursor: pointer;
}
@media (min-width: 768px) {
  .contact__phone-number {
    padding: 25px 25px;
    border-radius: 60px;
    gap: 5px;
    min-width: 240px;
    line-height: 1.3428571429;
    width: auto;
  }
}
@media (min-width: 1400px) {
  .contact__phone-number {
    padding: 25px 51px;
    min-width: 250px;
  }
}
.contact__phone-number img {
  width: clamp(28px, 3.5vw, 40px);
  height: clamp(28px, 3.5vw, 40px);
  flex-shrink: 0;
}
.contact__phone-number:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(255, 255, 255, 0.3);
}
.contact__phone-number:active {
  transform: translateY(0);
}
@media (min-width: 768px) {
  .contact__phone-number:active {
    transform: translateY(-2px);
  }
}

.contact_container2 {
  background-color: #FFFAF0;
  margin: 0 auto;
  text-align: center;
  padding: 40px 20px;
}
@media (min-width: 1024px) {
  .contact_container2 {
    padding: 90px 0 101px;
  }
}
.contact_container2 .contact_btn {
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  color: #fff;
}
.contact_container2 .icon-external {
  left: 30px;
  width: 25px;
  height: 25px;
}
@media (min-width: 768px) {
  .contact_container2 .icon-external {
    left: unset;
    right: 75px;
    width: 27px;
    height: 27px;
  }
}

/* 下層ページFV
***************************************************************/
.page_fv_content {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: auto;
  position: relative;
}
@media (min-width: 1024px) {
  .page_fv_content {
    flex-direction: row;
    height: 400px;
  }
}

.page_fv_left {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  order: 2;
  position: relative;
  height: auto;
  padding: 40px 20px 60px;
  background: linear-gradient(135deg, #FFFBF5 0%, #FFF2C9 100%);
}
.page_fv_left::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40px;
  background: #fff;
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
}
@media (min-width: 1024px) {
  .page_fv_left {
    width: 57.14%;
    height: 400px;
    order: 1;
    text-align: left;
    padding: 0;
    background: none;
  }
  .page_fv_left::after {
    display: none;
  }
}

.page_fv_left_bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../../assets/images/page-fv-left-bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
  display: none;
}
@media (min-width: 1024px) {
  .page_fv_left_bg {
    display: block;
  }
}

.page_fv_title_wrap {
  position: relative;
  z-index: 2;
  padding: 0;
  font-family: "source-han-serif-japanese", sans-serif;
}
@media (min-width: 1024px) {
  .page_fv_title_wrap {
    padding: 50px;
  }
}

.page_fv_title {
  color: #383838;
  font-size: clamp(24px, 4vw, 40px);
  font-weight: bold;
  letter-spacing: 0.05em;
  text-align: center;
}
@media (min-width: 1024px) {
  .page_fv_title {
    font-size: 40px;
    line-height: 1.375;
    text-align: left;
  }
}
.page_fv_title span {
  display: block;
  font-size: clamp(16px, 3vw, 25px);
  color: #EB6A02;
  font-weight: bold;
  margin-top: 5px;
  letter-spacing: 0.05em;
}

.page_fv_right {
  width: 100%;
  order: 1;
  height: 400px;
  margin-top: -20px;
}
@media (min-width: 1024px) {
  .page_fv_right {
    width: 42.86%;
    flex-shrink: 0;
    order: 2;
    margin-top: 0;
  }
}

.page_fv_image {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  border-radius: 20px 20px 0 0;
}
@media (min-width: 1024px) {
  .page_fv_image {
    border-radius: 0;
  }
}
.page_fv_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* page_feature（特徴ページ）
***************************************************************/
/* page_feature_sec1（2ndぷれいすの想い）
***************************************************************/
.page_feature_sec1 {
  padding-top: 80px;
  background-color: #FFFBF5;
  position: relative;
  z-index: -2;
}

.page_feature_sec1_bg {
  position: relative;
  max-width: 941px;
  min-height: 384px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page_feature_sec1_bg::before {
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  background-image: url(../../assets/images/feature/feature_sec1_bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  z-index: 1;
  border-radius: 50px;
}

.page_feature_sec1_itemBox {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  justify-content: center;
  gap: 40px;
  max-width: 800px;
  width: 100%;
  position: relative;
  z-index: 2;
  padding: 40px 20px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .page_feature_sec1_itemBox {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px 20px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec1_itemBox {
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
  }
}

.page_feature_sec1_item {
  text-align: center;
  position: relative;
  z-index: 2;
}

.page_feature_sec1_img {
  margin-bottom: 15px;
}
.page_feature_sec1_img img {
  width: 150px;
  height: 150px;
  border-radius: 50%;
}
@media (min-width: 768px) {
  .page_feature_sec1_img img {
    width: 170px;
    height: 170px;
  }
}

.page_feature_sec1_headding {
  color: #EB6A02;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.page_feature_sec1_item_text {
  color: #383838;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.page_feature_sec1_title {
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
  padding: 10px 18px;
  margin-inline: auto;
  margin-bottom: 30px;
  text-align: center;
  position: relative;
}
.page_feature_sec1_title::after {
  content: "";
  width: calc(100% - 40px);
  height: 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%) skewX(30deg);
  display: inline-block;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  position: absolute;
  z-index: -1;
}
@media (min-width: 1024px) {
  .page_feature_sec1_title {
    max-width: 600px;
  }
}

/* page_feature_sec2（2ndぷれいすのサービス）
***************************************************************/
.page_feature_sec2 {
  padding-top: 80px;
  background-color: #FFFBF5;
  padding-bottom: 40px;
}
@media (min-width: 768px) {
  .page_feature_sec2 {
    padding-bottom: 30px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 {
    padding-bottom: 120px;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec2 {
    padding-bottom: 150px;
  }
}
.page_feature_sec2 .page_feature_sec2_itemBox {
  max-width: 600px;
  margin-inline: auto;
  padding: 0 20px;
}
@media (min-width: 768px) {
  .page_feature_sec2 .page_feature_sec2_itemBox {
    max-width: 800px;
    padding: 0 30px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_itemBox {
    max-width: 1200px;
    padding: 0 20px;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec2 .page_feature_sec2_itemBox {
    max-width: 1200px;
    padding: 0;
  }
}
.page_feature_sec2 .page_feature_sec2_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 60px;
  gap: 20px;
}
@media (min-width: 768px) {
  .page_feature_sec2 .page_feature_sec2_item {
    gap: 25px;
    margin-bottom: 80px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_item {
    flex-direction: row;
    justify-content: center;
    align-items: flex-end;
    margin-bottom: clamp(80px, 8vw, 120px);
    gap: 0;
    max-width: 100%;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec2 .page_feature_sec2_item {
    margin-bottom: 174px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_item.reverse {
    flex-direction: row-reverse;
  }
}
.page_feature_sec2 .page_feature_sec2_item:last-child {
  margin-bottom: 0;
}
.page_feature_sec2 .page_feature_sec2_img {
  width: 100%;
  height: 220px;
  flex-shrink: 0;
  position: relative;
}
@media (min-width: 768px) {
  .page_feature_sec2 .page_feature_sec2_img {
    height: 280px;
    max-width: 480px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_img {
    width: 50%;
    height: min(420px, 50vw);
    max-width: none;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec2 .page_feature_sec2_img {
    width: 689px;
    height: 450px;
  }
}
.page_feature_sec2 .page_feature_sec2_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 15px;
}
.page_feature_sec2 .page_feature_sec2_content {
  font-weight: bold;
  position: relative;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  color: #fff;
  border-radius: 15px;
  padding: 25px 15px;
  box-sizing: border-box;
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .page_feature_sec2 .page_feature_sec2_content {
    padding: 35px 25px;
    max-width: 480px;
    margin: 0 auto;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_content {
    padding: clamp(25px, 3vw, 35px) clamp(20px, 2.5vw, 30px);
    height: auto;
    margin-left: -40px;
    margin-bottom: -60px;
    opacity: 0.9;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec2 .page_feature_sec2_content {
    padding: 50px 48px;
    width: 600px;
    margin-left: -89px;
    margin-bottom: -89px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_item.reverse .page_feature_sec2_content {
    margin-right: -40px;
    margin-left: 0;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec2 .page_feature_sec2_item.reverse .page_feature_sec2_content {
    margin-right: -89px;
    margin-left: 0;
  }
}
.page_feature_sec2 .page_feature_sec2_subtitle {
  font-size: clamp(18px, 3vw, 23px);
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.03em;
  margin-bottom: 15px;
  text-align: center;
}
@media (min-width: 768px) {
  .page_feature_sec2 .page_feature_sec2_subtitle {
    margin-bottom: 18px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_subtitle {
    margin-bottom: 20px;
    line-height: 1.3043478261;
  }
}
.page_feature_sec2 .page_feature_sec2_subtitle h3 {
  color: #fff;
  margin: 0;
}
.page_feature_sec2 .page_feature_sec2_text {
  line-height: 1.8;
  font-weight: bold;
}
@media (min-width: 768px) {
  .page_feature_sec2 .page_feature_sec2_text {
    line-height: 1.9;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec2 .page_feature_sec2_text {
    line-height: 2;
    max-width: 505px;
  }
}
.page_feature_sec2 .page_feature_sec2_text p {
  margin: 0;
  color: #fff;
}

/* page_feature_sec3（2ndぷれいすの特徴）
***************************************************************/
.page_feature_sec3 {
  padding: 40px 0;
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
}
@media (min-width: 480px) {
  .page_feature_sec3 {
    padding: 50px 0;
  }
}
@media (min-width: 768px) {
  .page_feature_sec3 {
    padding: 60px 0;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec3 {
    padding: 80px 0;
  }
}
.page_feature_sec3 .page_feature_sec3_itemBox {
  display: grid;
  grid-template-columns: 1fr;
  gap: 60px;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .page_feature_sec3 .page_feature_sec3_itemBox {
    grid-template-columns: repeat(2, 1fr);
    gap: 60px 30px;
    max-width: 700px;
    padding: 0 30px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec3 .page_feature_sec3_itemBox {
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 20px;
    max-width: calc(100vw - 40px);
    padding: 0 20px;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec3 .page_feature_sec3_itemBox {
    gap: 80px 40px;
    max-width: 1200px;
    padding: 0;
  }
}
.page_feature_sec3 .page_feature_sec3_item {
  background-color: #fff;
  border-radius: 15px;
  padding: 25px 15px;
  text-align: center;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}
@media (min-width: 480px) {
  .page_feature_sec3 .page_feature_sec3_item {
    padding: 30px 20px;
    border-radius: 20px;
  }
}
@media (min-width: 768px) {
  .page_feature_sec3 .page_feature_sec3_item {
    padding: 32px 22px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec3 .page_feature_sec3_item {
    padding: 35px 25px;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec3 .page_feature_sec3_item {
    padding: 40px 30px;
  }
}
.page_feature_sec3 .page_feature_sec3_item:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.12);
}
@media (min-width: 768px) {
  .page_feature_sec3 .page_feature_sec3_item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
  }
}
.page_feature_sec3 .page_feature_sec3_img {
  width: 160px;
  height: 160px;
  margin-inline: auto;
  border-radius: 50%;
  background-color: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #EB6A02;
  margin-top: -50px;
  margin-bottom: 25px;
}
@media (min-width: 768px) {
  .page_feature_sec3 .page_feature_sec3_img {
    width: 180px;
    height: 180px;
    margin-top: -60px;
    margin-bottom: 30px;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec3 .page_feature_sec3_img {
    width: 250px;
    height: 250px;
    margin-top: -80px;
    margin-bottom: 38px;
  }
}
@media (min-width: 1400px) {
  .page_feature_sec3 .page_feature_sec3_img {
    width: 300px;
    height: 300px;
  }
}
.page_feature_sec3 .page_feature_sec3_img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.page_feature_sec3 .page_feature_sec3_subtitle {
  margin-bottom: 12px;
}
@media (min-width: 480px) {
  .page_feature_sec3 .page_feature_sec3_subtitle {
    margin-bottom: 15px;
  }
}
.page_feature_sec3 .page_feature_sec3_subtitle h3 {
  color: #EB6A02;
  font-size: clamp(16px, 3vw, 23px);
  font-weight: bold;
  line-height: 1.3043478261;
  letter-spacing: 0.03em;
}
.page_feature_sec3 .page_feature_sec3_text {
  color: #383838;
  font-weight: 500;
  min-height: 50px;
  line-height: 1.75;
  text-align: left;
  font-size: 14px;
}
@media (min-width: 768px) {
  .page_feature_sec3 .page_feature_sec3_text {
    min-height: 52px;
    font-size: 15px;
    line-height: 1.9333333333;
  }
}
@media (min-width: 1024px) {
  .page_feature_sec3 .page_feature_sec3_text {
    min-height: 54px;
    font-size: 16px;
    line-height: 1.875;
  }
}

/* アニメーション
***************************************************************/
.page_feature_sec3_item {
  opacity: 0;
  animation: fadeInUp 0.6s ease forwards;
}
.page_feature_sec3_item:nth-child(1) {
  animation-delay: 0.1s;
}
.page_feature_sec3_item:nth-child(2) {
  animation-delay: 0.2s;
}
.page_feature_sec3_item:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
    @media (min-width: 768px) {
      transform: translateY(25px);
    }
    @media (min-width: 1024px) {
      transform: translateY(30px);
    }
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* アクセシビリティ対応
***************************************************************/
@media (prefers-reduced-motion: reduce) {
  .page_feature_sec3_item {
    animation: none;
    opacity: 1;
  }
  .page_feature_sec3_item:hover {
    transform: none;
  }
}
/* section1
***************************************************************/
.facility_sec1 {
  background: #FFFBF5;
  padding: 80px 0 100px;
}
/* お問い合わせ
***************************************************************/
.contact {
  background: #FFFBF5;
  padding: 40px 0;
}
@media (min-width: 768px) {
  .contact {
    padding: 60px 0;
  }
}
@media (min-width: 1024px) {
  .contact {
    padding: 80px 0 100px;
  }
}

.contact_list {
  display: flex;
  flex-flow: column;
  gap: 20px;
  margin-bottom: 63px;
}

.contact_item {
  display: flex;
  align-items: flex-start;
  gap: 55px;
}

.contact_item_title {
  color: #383838;
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.05em;
  gap: 13px;
  width: 250px;
  padding-top: 10px;
}

.contact_item:nth-of-type(5) .contact_item_title {
  padding-top: 0;
}

.contact_area {
  flex: 1;
}

.contact_area span {
  width: 100%;
}

.contact_area input {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7857142857;
  letter-spacing: 0.05em;
  width: 100%;
  border-radius: 5px;
  background: #fff;
  padding: 8px 21px 7px;
}

.contact_area textarea {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7857142857;
  letter-spacing: 0.05em;
  width: 100%;
  border-radius: 5px;
  background: #fff;
  padding: 8px 21px;
  height: 130px;
  resize: none;
}

.contact_form {
  max-width: 941px;
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
  border-radius: 30px;
  margin-inline: auto;
  padding: 40px 5.333vw;
}
@media (min-width: 768px) {
  .contact_form {
    padding: 10.667vw 5.333vw;
  }
}
@media (min-width: 1024px) {
  .contact_form {
    padding: 60px 120px 80px;
  }
}

#formWrap {
  display: flex;
  flex-flow: column;
  gap: 37px;
}

.formBox {
  display: flex;
  align-items: flex-start;
  gap: 55px;
}

.formTitle {
  color: #383838;
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.05em;
  gap: 13px;
  width: 250px;
  padding-top: 10px;
}

.formBox:nth-of-type(6) .formTitle {
  padding-top: 0;
}

select {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7857142857;
  letter-spacing: 0.05em;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 15px center;
  background-repeat: no-repeat;
  background-size: 16px;
  padding-right: 45px;
  width: 228px;
  height: 35px;
  background: #fff;
  border-radius: 5px;
  padding: 8px 21px 7px;
}

.req {
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 18px;
  width: 60px;
  padding: 4px 10px;
  border-radius: 4px;
  text-align: center;
  background: #D23E3E;
  color: #fff;
}

.optional {
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 18px;
  width: 60px;
  padding: 4px 10px;
  border-radius: 4px;
  text-align: center;
  background: #999;
  color: #fff;
}

.formInput {
  flex: 1;
}

.formInput span {
  width: 100%;
}

.formInput input {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7857142857;
  letter-spacing: 0.05em;
  width: 100%;
  border-radius: 5px;
  background: #fff;
  padding: 8px 21px 7px;
  border: 1px solid #ddd;
}

.formInput select {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7857142857;
  letter-spacing: 0.05em;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 15px center;
  background-repeat: no-repeat;
  background-size: 16px;
  padding-right: 45px;
  width: 100%;
  height: 45px;
  background-color: #fff;
  border-radius: 5px;
  padding: 8px 21px 7px;
  border: 1px solid #ddd;
}

.formInput textarea {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7857142857;
  letter-spacing: 0.05em;
  width: 100%;
  border-radius: 5px;
  background: #fff;
  padding: 8px 21px;
  height: 130px;
  resize: none;
  border: 1px solid #ddd;
}

.wpcf7-checkbox {
  display: flex;
  gap: 30px;
}

.wpcf7-checkbox .wpcf7-list-item {
  width: auto;
  margin: 0;
}

#formSubmit {
  text-align: center;
  margin-top: 40px;
}

.contact_check {
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.9444444444;
  text-align: center;
  margin-bottom: 31px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.contact_check input {
  width: 25px;
  height: 25px;
}

.contact_check a {
  color: #EB6A02;
  text-decoration: underline;
}

.wpcf7-list-item-label {
  margin-left: 19px;
}

.contact_submit,
.bt.btCircle.hoverAc {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 60px;
  width: 300px;
  font-size: 18px;
  border-radius: 30px;
  margin: 0 auto;
}
.contact_submit::before,
.bt.btCircle.hoverAc::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.contact_submit:hover::before,
.bt.btCircle.hoverAc:hover::before {
  left: 100%;
}
.contact_submit:hover,
.bt.btCircle.hoverAc:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.contact_submit img,
.bt.btCircle.hoverAc img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
}
.contact_submit:hover img,
.bt.btCircle.hoverAc:hover img {
  transform: translateY(-50%) translateX(5px);
}
.contact_submit input,
.bt.btCircle.hoverAc input {
  width: 100%;
  border: unset;
  background: transparent;
  color: inherit;
  font-size: inherit;
  cursor: pointer;
}

.wpcf7-not-valid-tip {
  margin-top: 5px;
  color: #D23E3E;
  font-size: 12px;
}

.wpcf7-spinner {
  display: none;
}

.thanks {
  background: #fff;
  text-align: center;
  padding: 75px 0;
}

.thanks_title {
  font-size: 40px;
  letter-spacing: 0.1em;
  font-weight: 900;
}

.thanks_text {
  margin-top: 20px;
}

.thanks_btn {
  margin: 50px auto 0;
  width: 360px;
  text-align: center;
  font-size: 20px;
  position: relative;
  background: #333;
  border: 2px solid #333;
  border-radius: 40px;
  color: #fff;
  padding: 12px 0;
  transition: 0.3s;
}

@media screen and (min-width: 681px) {
  .thanks_btn:hover {
    background: #fff;
    color: #333;
  }
}
@media screen and (max-width: 680px) {
  #formWrap {
    flex-flow: column;
    gap: 8vw;
  }
  .formBox {
    flex-flow: column;
    gap: 2.667vw;
  }
  .formTitle {
    font-size: 3.733vw;
    gap: 3.467vw;
    padding-top: 0;
    width: 100%;
  }
  .req,
  .optional {
    width: 10.667vw;
    font-size: 2.667vw;
    line-height: 4.8vw;
    padding: 0.533vw 0;
  }
  .formInput input {
    font-size: 3.733vw;
    border-radius: 1.067vw;
    padding: 2.667vw;
  }
  .formInput select {
    font-size: 3.733vw;
    border-radius: 1.067vw;
    padding: 2.667vw;
    height: auto;
  }
  .formInput textarea {
    font-size: 3.733vw;
    border-radius: 1.067vw;
    padding: 2.667vw;
    height: 65.333vw;
  }
  .contact_check {
    font-size: 3.2vw;
    margin-top: 8vw;
    gap: 1.333vw;
    margin-bottom: 8vw;
  }
  .contact_check input {
    width: 5.867vw;
    height: 5.867vw;
  }
  .contact_submit,
  .bt.btCircle.hoverAc {
    margin: 13.333vw auto 0;
    width: 78.667vw;
    font-size: 4vw;
  }
  .thanks {
    padding: 5.333vw 0;
  }
  .thanks_title {
    font-size: 5.333vw;
  }
  .thanks_text {
    margin-top: 5.333vw;
    font-size: 3.467vw;
  }
  .thanks_btn {
    margin: 5.333vw auto 0;
    width: 78.667vw;
    font-size: 4vw;
  }
}
@media screen and (max-width: 680px) {
  .contact_list {
    flex-flow: column;
    gap: 8vw;
    margin-bottom: 0;
  }
  .contact_item {
    flex-flow: column;
    gap: 2.667vw;
  }
  .contact_item_title {
    font-size: 3.733vw;
    gap: 3.467vw;
    padding-top: 0;
    width: 100%;
  }
  .req,
  .optional {
    width: 10.667vw;
    font-size: 2.667vw;
    line-height: 4.8vw;
    padding: 0.533vw 0;
  }
  .contact_area input {
    font-size: 3.733vw;
    border-radius: 1.067vw;
    padding: 2.667vw;
  }
  .contact_area textarea {
    font-size: 3.733vw;
    border-radius: 1.067vw;
    padding: 2.667vw;
    height: 65.333vw;
  }
  .contact_privacy {
    margin-top: 10.667vw;
  }
  .contact_privacy_scroll {
    height: 48vw;
    padding: 5.333vw 4vw;
  }
  .contact_privacy_title {
    font-size: 3.733vw;
  }
  .contact_privacy_list {
    font-size: 3.733vw;
    gap: 3.733vw;
    margin-top: 3.733vw;
    padding-bottom: 5.333vw;
  }
  .wpcf7-checkbox {
    flex-flow: column;
    gap: 2.667vw;
    margin-top: 2.667vw;
  }
  .contact_check {
    font-size: 3.2vw;
    margin-top: 8vw;
    gap: 1.333vw;
  }
  .contact_check input {
    width: 5.867vw;
    height: 5.867vw;
  }
  .contact_submit {
    margin: 13.333vw auto 0;
    width: 78.667vw;
    font-size: 4vw;
  }
  .contact_submit::after {
    width: 3.733vw;
    height: 1.867vw;
    right: 24vw;
  }
}
/* FV
***************************************************************/
.fv {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
}
.fv::before {
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: inline-block;
  background-image: url(../../assets/images/fv.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 30% top !important;
  position: absolute;
  z-index: -1;
}

@media (max-width: 399px) {
  .fv::before {
    background-position: 35% top !important;
  }
}
@media (min-width: 400px) and (max-width: 499px) {
  .fv::before {
    background-position: 35% top !important;
  }
}
@media (min-width: 500px) and (max-width: 699px) {
  .fv::before {
    background-position: 35% top !important;
  }
}
@media (min-width: 700px) and (max-width: 767px) {
  .fv::before {
    background-position: 40% top !important;
  }
}
@media (min-width: 768px) {
  .fv::before {
    background-position: 25% top !important;
  }
}
.fv_contact_icon {
  position: absolute;
  bottom: 300px;
  right: 15px;
  z-index: 10;
}
@media (min-width: 768px) {
  .fv_contact_icon {
    bottom: unset;
    top: 100px;
    right: 15px;
  }
}
@media (min-width: 1400px) {
  .fv_contact_icon {
    top: 110px;
    right: 100px;
  }
}
.fv_contact_icon a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.fv_contact_icon a::before {
  content: "";
  position: absolute;
  top: -10px;
  left: -10px;
  right: -10px;
  bottom: -10px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.8);
  transition: all 0.3s ease;
}
.fv_contact_icon a:hover {
  transform: translateY(-8px) scale(1.1);
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.3));
}
.fv_contact_icon a:hover::before {
  opacity: 1;
  transform: scale(1.2);
}
.fv_contact_icon a img {
  width: clamp(145px, 20vw, 200px);
  height: clamp(125px, 20vw, 200px);
  transition: transform 0.3s ease;
}
@media (min-width: 768px) {
  .fv_contact_icon a img {
    width: 200px;
    height: 170px;
  }
}
@media (min-width: 1400px) {
  .fv_contact_icon a img {
    width: 330px;
    height: 284px;
  }
}

.fv_title {
  color: #fff;
  font-size: clamp(32px, 6vw, 70px);
  font-weight: bold;
  font-family: "source-han-serif-japanese", sans-serif;
  line-height: 1.5714285714;
  letter-spacing: 0.05em;
  position: absolute;
  bottom: 180px;
  left: 15px;
  right: 15px;
  width: auto;
  text-align: left;
}
@media (min-width: 768px) {
  .fv_title {
    bottom: 220px;
    left: 40px;
  }
}
@media (min-width: 1024px) {
  .fv_title {
    bottom: 250px;
    left: 60px;
  }
}
@media (min-width: 1400px) {
  .fv_title {
    bottom: 65px;
    left: 101px;
  }
}
.fv_title span {
  display: inline-block;
  position: relative;
  margin: 0 10px;
  padding: 5px 5px;
}
.fv_title span::before {
  content: "";
  position: absolute;
  top: 0;
  left: -8px;
  right: -8px;
  bottom: 0;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  transform: skewX(15deg);
  z-index: -1;
}
@media (min-width: 768px) {
  .fv_title span {
    margin: 0 20px 0 5px;
    padding: 0;
  }
  .fv_title span::before {
    left: -12px;
    right: -12px;
  }
}
@media (min-width: 1400px) {
  .fv_title span {
    margin: 0 40px 0 15px;
  }
  .fv_title span::before {
    left: -12px;
    right: -15px;
    padding: 15px 0;
  }
}

/* FV 3つの特徴 - 丸いアイコン+説明文
***************************************************************/
.fv_features {
  position: absolute;
  bottom: 20px;
  left: 15px;
  right: 15px;
  z-index: 5;
  display: flex;
  justify-content: center;
}
@media (min-width: 768px) {
  .fv_features {
    justify-content: right;
  }
}
@media (min-width: 1400px) {
  .fv_features {
    left: unset;
    right: 101px;
    bottom: 65px;
  }
}

.fv_features_list {
  display: flex;
  justify-content: flex-start;
  gap: 20px;
  max-width: 700px;
}
@media (min-width: 768px) {
  .fv_features_list {
    gap: 30px;
    max-width: 1200px;
  }
}
@media (min-width: 1400px) {
  .fv_features_list {
    gap: 40px;
    max-width: 900px;
  }
}

.fv_feature_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.fv_feature_circle {
  background: linear-gradient(135deg, #EF2929, #FF6B35);
  border-radius: 50%;
  width: 100px;
  height: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-bottom: 8px;
  backdrop-filter: blur(10px);
}
@media (min-width: 768px) {
  .fv_feature_circle {
    width: 120px;
    height: 120px;
    margin-bottom: 12px;
  }
}
@media (min-width: 1024px) {
  .fv_feature_circle {
    width: 140px;
    height: 140px;
    margin-bottom: 15px;
  }
}
@media (min-width: 1400px) {
  .fv_feature_circle {
    width: 160px;
    height: 160px;
    gap: 10px;
  }
}

.fv_feature_icon {
  width: clamp(24px, 4vw, 40px);
  height: clamp(24px, 4vw, 40px);
  color: #fff;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .fv_feature_icon {
    width: 28px;
    height: 28px;
  }
}
@media (min-width: 1024px) {
  .fv_feature_icon {
    width: 40px;
    height: 40px;
  }
}
@media (min-width: 1400px) {
  .fv_feature_icon {
    width: 60px;
    height: 60px;
  }
}
.fv_feature_icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.fv_feature_title {
  font-size: clamp(16px, 2vw, 22px);
  line-height: 1.1;
  color: #fff;
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.02em;
}
.fv_feature_title .wage_amount {
  font-size: clamp(20px, 2vw, 32px);
  font-weight: 900;
}
.fv_feature_title .wage_label,
.fv_feature_title .wage_unit {
  font-size: clamp(10px, 1.8vw, 16px);
  font-weight: 600;
}

.fv_feature_text {
  font-size: clamp(12px, 1.8vw, 18px);
  line-height: 1.3;
  color: #fff;
  font-weight: 500;
}
/* About
***************************************************************/
.top_about {
  position: relative;
  padding: 40px 0;
}
@media (min-width: 768px) {
  .top_about {
    padding: 60px 0;
  }
}
@media (min-width: 1400px) {
  .top_about {
    padding: 100px 0 145px;
  }
}
.top_about::before {
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: inline-block;
  background-image: url(../../assets/images/about-bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  z-index: -1;
}

.about_container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (min-width: 768px) {
  .about_container {
    padding: 0 40px;
  }
}
@media (min-width: 1400px) {
  .about_container {
    padding: 0;
    margin-left: calc((100vw - 1400px) / 2 + 230px);
    margin-right: calc((100vw - 1400px) / 2 + 149px);
    max-width: 1021px;
    /* コンテンツ幅1021px */
  }
}

.about_titleWrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 25px;
  justify-content: center;
}
@media (min-width: 768px) {
  .about_titleWrap {
    gap: 20px;
    margin-bottom: 40px;
  }
}
@media (min-width: 1024px) {
  .about_titleWrap {
    justify-content: flex-start;
    margin-bottom: 60px;
  }
}
@media (min-width: 1400px) {
  .about_titleWrap {
    margin-bottom: 51px;
  }
}

.about_icon {
  width: 30px;
  height: 30px;
}
@media (min-width: 768px) {
  .about_icon {
    width: 40px;
    height: 40px;
  }
}
@media (min-width: 1400px) {
  .about_icon {
    width: 45px;
    height: 45px;
  }
}

.about_title {
  color: #EB6A02;
  font-size: clamp(26px, 3vw, 35px);
  font-weight: bold;
  flex-shrink: 0;
  text-align: center;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .about_title {
    text-align: left;
  }
}
.about_content {
  display: flex;
  flex-direction: column;
  gap: 25px;
}
@media (min-width: 1024px) {
  .about_content {
    flex-direction: row;
    gap: 60px;
  }
}
@media (min-width: 1400px) {
  .about_content {
    gap: 91px;
  }
}

.about_wrap {
  display: flex;
  flex-direction: column;
  order: 2;
}
@media (min-width: 768px) {
  .about_wrap {
    max-width: 450px;
    margin-inline: auto;
  }
}
@media (min-width: 1400px) {
  .about_wrap {
    order: 1;
    max-width: 470px;
  }
}

.about_text {
  line-height: 1.8;
  margin-bottom: 25px;
  letter-spacing: 0.05em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  /* 垂直方向に配置 */
  overflow: hidden;
  /* 溢れた部分を隠す */
  text-overflow: ellipsis;
  /* 溢れた部分に「...」を表示 */
  -webkit-line-clamp: 8;
  /* 最大行数を2行に設定 */
}
@media (min-width: 768px) {
  .about_text {
    margin-bottom: 40px;
  }
}
@media (min-width: 1024px) {
  .about_text {
    overflow: visible;
    -webkit-line-clamp: unset;
  }
}
@media (min-width: 1400px) {
  .about_text {
    margin-bottom: 40px;
    line-height: 2;
  }
}

.about_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 50px;
  font-size: clamp(14px, 2.5vw, 18px);
  width: 100%;
}
.about_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.about_btn:hover::before {
  left: 100%;
}
.about_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.about_btn img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
}
.about_btn:hover img {
  transform: translateY(-50%) translateX(5px);
}
@media (min-width: 768px) {
  .about_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 70px;
    font-size: 18px;
  }
  .about_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .about_btn:hover::before {
    left: 100%;
  }
  .about_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .about_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .about_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
@media (min-width: 1400px) {
  .about_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 80px;
    font-size: 20px;
  }
  .about_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .about_btn:hover::before {
    left: 100%;
  }
  .about_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .about_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .about_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
.about_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
}
.about_btn:hover::before {
  left: 100%;
}
.about_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.about_btn img {
  width: 18px;
  height: 4px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
@media (min-width: 768px) {
  .about_btn img {
    width: 24px;
    height: 6px;
    right: 20px;
  }
}
@media (min-width: 1400px) {
  .about_btn img {
    width: 29px;
    height: 7px;
    right: 26px;
  }
}
.about_btn:hover img {
  transform: translateY(-50%) translateX(5px);
}

.about_img_wrap {
  width: 100%;
  max-width: 350px;
  height: 250px;
  position: relative;
  flex-shrink: 0;
  margin: 0 auto;
  margin-bottom: 20px;
  order: 1;
}
@media (min-width: 768px) {
  .about_img_wrap {
    max-width: 400px;
    margin-bottom: 0;
    height: 320px;
    margin-bottom: 40px;
  }
}
@media (min-width: 1024px) {
  .about_img_wrap {
    width: 420px;
    height: 450px;
    margin: 0;
    order: 2;
  }
}
@media (min-width: 1400px) {
  .about_img_wrap {
    width: 460px;
    height: 500px;
  }
}

.about_img {
  border-radius: 15px;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 1;
}

.about_img_wrap::after {
  content: "";
  position: absolute;
  right: -15px;
  bottom: -15px;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  border-radius: 15px;
  z-index: 0;
}
@media (min-width: 768px) {
  .about_img_wrap::after {
    right: -25px;
    bottom: -25px;
  }
}
@media (min-width: 1400px) {
  .about_img_wrap::after {
    right: -50px;
    bottom: -45px;
  }
}

/* Service
***************************************************************/
.top_service {
  background-color: #FFFAF0;
  padding: 40px 0;
}
@media (min-width: 768px) {
  .top_service {
    padding: 60px 0;
  }
}
@media (min-width: 1400px) {
  .top_service {
    padding: 80px 0 104px;
  }
}

.service_titleWrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-bottom: 30px;
  padding: 0 20px;
}
@media (min-width: 768px) {
  .service_titleWrap {
    gap: 15px;
    margin-bottom: 50px;
    padding: 0 40px;
  }
}
@media (min-width: 1400px) {
  .service_titleWrap {
    gap: 28px;
    margin-bottom: 80px;
    padding: 0;
  }
}

.service_icon {
  width: 80px;
  height: 80px;
}
@media (min-width: 768px) {
  .service_icon {
    width: 120px;
    height: 120px;
  }
}
@media (min-width: 1400px) {
  .service_icon {
    width: 160px;
    height: 160px;
  }
}

.service_title {
  color: #EB6A02;
  font-size: clamp(26px, 3vw, 35px);
  font-weight: bold;
  letter-spacing: 0.05em;
  text-align: center;
}

.service_itemBox {
  max-width: 450px;
  margin: 0 auto 30px;
  padding: 0 20px;
}
@media (min-width: 768px) {
  .service_itemBox {
    padding: 0 40px;
    margin-bottom: 80px;
  }
}
@media (min-width: 1024px) {
  .service_itemBox {
    max-width: 1041px;
  }
}
@media (min-width: 1400px) {
  .service_itemBox {
    margin-bottom: 120px;
    padding: 0;
  }
}

.service_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 40px;
  gap: 15px;
}
@media (min-width: 768px) {
  .service_item {
    gap: 20px;
    margin-bottom: 60px;
  }
}
@media (min-width: 1024px) {
  .service_item {
    flex-direction: row;
    justify-content: flex-end;
    align-items: flex-end;
    margin-bottom: 100px;
    gap: 0;
  }
}
@media (min-width: 1400px) {
  .service_item {
    margin-bottom: 120px;
  }
}
@media (min-width: 1024px) {
  .service_item.reverse {
    flex-direction: row-reverse;
  }
}
.service_item:last-child {
  margin-bottom: 0;
}

.service_img {
  width: 100%;
  height: 200px;
  flex-shrink: 0;
  position: relative;
}
@media (min-width: 768px) {
  .service_img {
    height: 250px;
  }
}
@media (min-width: 1024px) {
  .service_img {
    width: 600px;
    height: 400px;
  }
}
@media (min-width: 1400px) {
  .service_img {
    width: 680px;
    height: 450px;
  }
}
.service_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 15px;
}

.service_content {
  position: relative;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  color: #fff;
  border-radius: 15px;
  padding: 20px 15px;
  box-sizing: border-box;
  width: 100%;
  text-align: left;
}
@media (min-width: 768px) {
  .service_content {
    padding: 30px 25px;
  }
}
@media (min-width: 1024px) {
  .service_content {
    padding: 50px 40px;
    width: 380px;
    height: 280px;
    margin-left: -100px;
    margin-bottom: -40px;
    opacity: 0.9;
  }
}
@media (min-width: 1400px) {
  .service_content {
    padding: 63px 48px;
    width: 430px;
    height: 300px;
    margin-left: -125px;
    margin-bottom: -50px;
  }
}
@media (min-width: 1024px) {
  .service_item.reverse .service_content {
    margin-left: 0;
    margin-right: -100px;
  }
}
@media (min-width: 1400px) {
  .service_item.reverse .service_content {
    margin-right: -125px;
  }
}

.service_subtitle {
  font-size: clamp(18px, 3vw, 23px);
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.03em;
  margin-bottom: 10px;
}
@media (min-width: 768px) {
  .service_subtitle {
    margin-bottom: 15px;
  }
}
@media (min-width: 1400px) {
  .service_subtitle {
    margin-bottom: 20px;
    line-height: 1.3043478261;
  }
}

.service_text {
  line-height: 1.6;
}
@media (min-width: 768px) {
  .service_text {
    font-weight: 500;
    line-height: 1.8;
  }
}
@media (min-width: 1400px) {
  .service_text {
    line-height: 2;
    max-width: 335px;
  }
}

.service_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 50px;
  font-size: clamp(14px, 2.5vw, 18px);
  max-width: 345px;
  margin: 0 auto;
}
.service_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.service_btn:hover::before {
  left: 100%;
}
.service_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.service_btn img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
}
.service_btn:hover img {
  transform: translateY(-50%) translateX(5px);
}
@media (min-width: 768px) {
  .service_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 70px;
    font-size: 18px;
    max-width: 370px;
  }
  .service_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .service_btn:hover::before {
    left: 100%;
  }
  .service_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .service_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .service_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
@media (min-width: 1024px) {
  .service_btn {
    max-width: 470px;
  }
}
@media (min-width: 1400px) {
  .service_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 80px;
    font-size: 20px;
  }
  .service_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .service_btn:hover::before {
    left: 100%;
  }
  .service_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .service_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .service_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
.service_btn img {
  width: 18px;
  height: 4px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .service_btn img {
    width: 24px;
    height: 6px;
    right: 20px;
  }
}
@media (min-width: 1400px) {
  .service_btn img {
    width: 29px;
    height: 7px;
    right: 26px;
  }
}

/* Feature
***************************************************************/
.top_feature {
  position: relative;
  padding: 40px 0;
  background: #FFFAF0;
  z-index: -2;
}
@media (min-width: 768px) {
  .top_feature {
    padding: 60px 0;
  }
}
@media (min-width: 1400px) {
  .top_feature {
    padding: 132px 0 74px;
  }
}
.top_feature::before {
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: inline-block;
  background-image: url(../../assets/images/feature-bg.png);
  background-size: auto 100%;
  background-repeat: repeat-x;
  background-position: center;
  position: absolute;
  z-index: -1;
}

.feature_title {
  font-size: clamp(18px, 3vw, 22px);
  font-weight: bold;
  text-align: center;
  margin-bottom: 25px;
  padding: 0 20px;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .feature_title {
    font-size: 23px;
    padding: 0 40px;
    margin-bottom: 35px;
  }
}
@media (min-width: 1400px) {
  .feature_title {
    font-size: 25px;
    margin-bottom: 95px;
    padding: 0;
  }
}

.feature_title_number {
  font-size: clamp(60px, 4vw, 97px);
  color: #EB6A02;
}
@media (min-width: 1400px) {
  .feature_title_number {
    font-size: 97px;
    margin-top: -30px;
  }
}

.feature_title_emphasis {
  font-size: clamp(24px, 4vw, 53px);
}

.feature_itemBox {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  justify-items: center;
  padding: 0 20px;
  max-width: 100%;
  margin: 40px auto;
}
@media (min-width: 768px) {
  .feature_itemBox {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 20px;
    max-width: 800px;
    margin: 80px auto;
    padding: 0 40px;
  }
}
@media (min-width: 1024px) {
  .feature_itemBox {
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    max-width: 1200px;
  }
}
@media (min-width: 1400px) {
  .feature_itemBox {
    gap: 29px;
    padding: 0;
  }
}

.feature_item {
  background-color: #fff;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px;
  width: 100%;
  max-width: 320px;
  position: relative;
}
@media (min-width: 768px) {
  .feature_item {
    padding: 25px 20px;
    max-width: 350px;
    min-height: 400px;
    justify-content: flex-start;
  }
}
@media (min-width: 1400px) {
  .feature_item {
    padding: 36px 30px;
    max-width: 380px;
    min-height: 504px;
  }
}

.feature_img {
  width: 180px;
  height: 180px;
  margin-top: -30px;
  margin-bottom: 14px;
}
@media (min-width: 768px) {
  .feature_img {
    width: 220px;
    height: 220px;
    margin-top: -45px;
  }
}
@media (min-width: 1400px) {
  .feature_img {
    width: 320px;
    height: 320px;
    margin-top: -97px;
  }
}
.feature_img img {
  border-radius: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature_subtitleWrap {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .feature_subtitleWrap {
    gap: 15px;
    margin-bottom: 12px;
    flex-direction: row;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  .feature_subtitleWrap {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (min-width: 1400px) {
  .feature_subtitleWrap {
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin-bottom: 14px;
  }
}

.feature_number {
  width: 45px;
  height: 43px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 768px) {
  .feature_number {
    width: 60px;
    height: 57px;
  }
}
@media (min-width: 1400px) {
  .feature_number {
    width: 76px;
    height: 73px;
  }
}
.feature_number img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.feature_item:nth-child(2) .feature_number,
.feature_item:nth-child(3) .feature_number {
  width: 59px;
  height: 42px;
}
@media (min-width: 768px) {
  .feature_item:nth-child(2) .feature_number,
  .feature_item:nth-child(3) .feature_number {
    width: 78px;
    height: 56px;
  }
}
@media (min-width: 1400px) {
  .feature_item:nth-child(2) .feature_number,
  .feature_item:nth-child(3) .feature_number {
    width: 99px;
    height: 71px;
  }
}

.feature_subtitle {
  font-size: clamp(18px, 2.5vw, 23px);
  font-weight: bold;
  color: #EB6A02;
  line-height: 1.3;
  letter-spacing: 0.03em;
  text-align: center;
}
@media (min-width: 768px) {
  .feature_subtitle {
    line-height: 1.4;
  }
}
@media (min-width: 1400px) {
  .feature_subtitle {
    line-height: 1.3043478261;
    text-align: left;
  }
}

.feature_text {
  line-height: 1.6;
  text-align: left;
}
@media (min-width: 768px) {
  .feature_text {
    line-height: 1.8;
  }
}
@media (min-width: 1400px) {
  .feature_text {
    line-height: 1.875;
    max-width: 320px;
  }
}

/* Facility -
***************************************************************/
.top_facility {
  background-color: #FFFAF0;
  padding: 40px 0;
}
@media (min-width: 1024px) {
  .top_facility {
    padding: 72px 0 100px;
  }
}

.facility_titleWrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-bottom: 30px;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .facility_titleWrap {
    gap: 20px;
    margin-bottom: 77px;
  }
}

.facility_icon {
  width: 30px;
  height: 30px;
}
@media (min-width: 768px) {
  .facility_icon {
    width: 45px;
    height: 45px;
  }
}

.facility_title {
  color: #EB6A02;
  font-size: clamp(26px, 5vw, 35px);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
}

.facility_itemBox {
  display: flex;
  flex-direction: column;
  gap: 20px;
  justify-content: center;
  margin-bottom: 30px;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .facility_itemBox {
    flex-direction: row;
    gap: 20px;
    margin-bottom: 55px;
  }
}
@media (min-width: 1024px) {
  .facility_itemBox {
    gap: 35px;
    padding: 0;
  }
}
.facility_itemBox a {
  text-decoration: none;
  color: inherit;
  transition: transform 0.3s ease;
}
.facility_itemBox a:hover {
  transform: translateY(-5px);
}

.facility_item {
  background-color: #fff;
  border-radius: 20px;
  overflow: hidden;
  width: 100%;
  max-width: 350px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .facility_item {
    width: 220px;
    height: 410px;
    margin: 0;
    max-width: none;
  }
}
@media (min-width: 1024px) {
  .facility_item {
    width: 290px;
  }
}

.facility_img {
  width: 100%;
  height: 180px;
  overflow: hidden;
}
@media (min-width: 768px) {
  .facility_img {
    height: 200px;
  }
}
.facility_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.facility_itemBox a:hover .facility_img img {
  transform: scale(1.1);
}

.facility_subtitle {
  font-size: clamp(18px, 4vw, 23px);
  font-weight: bold;
  color: #EB6A02;
  line-height: 1.4;
  letter-spacing: 0.03em;
  text-align: center;
  padding-top: 30px;
}
@media (min-width: 1024px) {
  .facility_subtitle {
    line-height: 1.3043478261;
  }
}

.facility_text {
  padding: 20px;
  font-weight: 500;
  line-height: 1.6;
}
@media (min-width: 1024px) {
  .facility_text {
    padding: 20px 20px 42px;
    line-height: 1.875;
  }
}

.facility_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 50px;
  font-size: clamp(14px, 3.5vw, 20px);
  max-width: 350px;
  margin: 0 auto;
}
.facility_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.facility_btn:hover::before {
  left: 100%;
}
.facility_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.facility_btn img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
}
.facility_btn:hover img {
  transform: translateY(-50%) translateX(5px);
}
@media (min-width: 768px) {
  .facility_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 80px;
    max-width: 470px;
  }
  .facility_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .facility_btn:hover::before {
    left: 100%;
  }
  .facility_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .facility_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .facility_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
.facility_btn img {
  width: 18px;
  height: 4px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .facility_btn img {
    width: 29px;
    height: 7px;
    right: 26px;
  }
}

/* 施設外就労先
***************************************************************/
.top_workplace {
  padding: 40px 0;
  background: #FFFAF0;
}
@media (min-width: 1024px) {
  .top_workplace {
    padding: 72px 0 100px;
  }
}

.workplace_itemBox {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  justify-content: center;
  margin-bottom: 30px;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .workplace_itemBox {
    flex-direction: row;
    gap: 50px;
    margin-bottom: 55px;
  }
}

.workplace_item {
  width: 100%;
  max-width: 350px;
}
/* Flow
***************************************************************/
.top_flow {
  text-align: center;
  position: relative;
  padding: 40px 0;
}
@media (min-width: 1024px) {
  .top_flow {
    padding: 80px 0 69px;
  }
}
.top_flow::before {
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: inline-block;
  background-image: url(../../assets/images/flow-bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  z-index: -1;
}

.flow_title {
  font-size: clamp(26px, 5vw, 35px);
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.05em;
  margin-bottom: 25px;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .flow_title {
    margin-bottom: 50px;
  }
}
.flow_title .ja {
  color: #EB6A02;
  margin-bottom: 12px;
}
.flow_title .en {
  font-size: clamp(20px, 4vw, 25px);
  display: block;
}

.flow_text {
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 25px;
  padding: 0 15px;
  text-align: left;
}
@media (min-width: 768px) {
  .flow_text {
    text-align: center;
    margin-bottom: 40px;
    line-height: 1.875;
  }
}

.flow_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 50px;
  border-radius: 40px;
  font-size: clamp(14px, 3.5vw, 20px);
  max-width: 470px;
  margin: 0 auto;
}
.flow_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.flow_btn:hover::before {
  left: 100%;
}
.flow_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
@media (min-width: 768px) {
  .flow_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 80px;
    border-radius: 40px;
  }
  .flow_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .flow_btn:hover::before {
    left: 100%;
  }
  .flow_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
}
.flow_btn img {
  width: 18px;
  height: 4px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .flow_btn img {
    width: 29px;
    height: 7px;
    right: 26px;
  }
}

/* Recruitment
***************************************************************/
.top_recruitment {
  background-color: #FFFAF0;
  padding: 40px 0;
}
@media (min-width: 1024px) {
  .top_recruitment {
    padding: 100px 0;
  }
}

.recruitment_container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 600px;
  margin: 0 auto;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .recruitment_container {
    flex-direction: row;
    max-width: min(940px, 90vw);
    padding: 0 20px;
  }
}
@media (min-width: 1024px) {
  .recruitment_container {
    max-width: 940px;
    padding: 0;
  }
}

.recruitment_img {
  width: 100%;
  height: 220px;
  order: 1;
}
@media (min-width: 768px) {
  .recruitment_img {
    width: 50%;
    height: min(420px, 50vw);
    min-height: 300px;
    order: 0;
  }
}
@media (min-width: 1024px) {
  .recruitment_img {
    width: 470px;
    height: 420px;
  }
}
.recruitment_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 20px 20px 0 0;
}
@media (min-width: 768px) {
  .recruitment_img img {
    border-radius: 50px 0 0 0;
    object-position: center center;
  }
}
.recruitment_bg {
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  border-radius: 0 0 20px 20px;
  width: 100%;
  text-align: center;
  padding: 25px 15px;
  order: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (min-width: 768px) {
  .recruitment_bg {
    border-radius: 0 0 50px 0;
    width: 50%;
    height: min(420px, 50vw);
    min-height: 300px;
    order: 1;
  }
}
@media (min-width: 1024px) {
  .recruitment_bg {
    width: 470px;
    height: 420px;
    padding: 68px 85px;
  }
}

.recruitment_title {
  color: #fff;
  font-size: clamp(20px, 5vw, 35px);
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .recruitment_title {
    margin-bottom: 30px;
  }
}
@media (min-width: 1024px) {
  .recruitment_title {
    margin-bottom: 55px;
  }
}

.recruitment_text {
  color: #fff;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 20px;
  font-size: clamp(12px, 3.2vw, 16px);
}
@media (min-width: 768px) {
  .recruitment_text {
    line-height: 1.875;
    margin-bottom: 30px;
  }
}
@media (min-width: 1024px) {
  .recruitment_text {
    margin-bottom: 50px;
  }
}

.recruitment_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #EB6A02;
  background: #fff;
  height: 60px;
  font-size: clamp(14px, 3.5vw, 20px);
  max-width: 300px;
  width: 100%;
  margin: 0 auto;
  border: 1px solid #fff;
}
.recruitment_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  transition: left 0.5s ease;
  z-index: -1;
}
.recruitment_btn:hover::before {
  left: 0;
}
.recruitment_btn:hover {
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.3);
}
.recruitment_btn img {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
  z-index: 2;
}
.recruitment_btn:hover img {
  filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7499%) hue-rotate(158deg) brightness(111%) contrast(101%);
  transform: translateY(-50%) translateX(5px);
}
@media (min-width: 768px) {
  .recruitment_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #EB6A02;
    background: #fff;
    height: 60px;
  }
  .recruitment_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    transition: left 0.5s ease;
    z-index: -1;
  }
  .recruitment_btn:hover::before {
    left: 0;
  }
  .recruitment_btn:hover {
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.3);
  }
  .recruitment_btn img {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.3s ease;
    z-index: 2;
  }
  .recruitment_btn:hover img {
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7499%) hue-rotate(158deg) brightness(111%) contrast(101%);
    transform: translateY(-50%) translateX(5px);
  }
}
.recruitment_btn img {
  width: 18px;
  height: 4px;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .recruitment_btn img {
    width: 29px;
    height: 7px;
    right: 16px;
  }
}

/* Instagram - SP改善
***************************************************************/
.top_instagram {
  background-color: #FFFAF0;
  padding: 40px 0;
}
@media (min-width: 1024px) {
  .top_instagram {
    padding: 0 0 100px;
  }
}

.instagram_container {
  max-width: 941px;
  margin-inline: auto;
}

.instagram_titleWrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 30px;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .instagram_titleWrap {
    gap: 20px;
    margin-bottom: 40px;
  }
}

.instagram_icon {
  width: 30px;
  height: 30px;
}
@media (min-width: 768px) {
  .instagram_icon {
    width: 66px;
    height: 66px;
  }
}

.instagram_title {
  color: #EB6A02;
  font-size: clamp(26px, 5vw, 35px);
  font-weight: bold;
  letter-spacing: 0.05em;
}

.instagram_feedBox {
  padding: 0 15px;
}
@media (min-width: 1024px) {
  .instagram_feedBox {
    padding: 0;
  }
}

.sbi_feedtheme_header_text {
  font-size: clamp(20px, 5vw, 35px) !important;
  font-weight: bold;
}

.sbi_load_btn,
.sbi_follow_btn span {
  font-size: clamp(14px, 3vw, 20px) !important;
  font-weight: bold !important;
}

.flow {
  background: #FFFBF5;
  padding: 80px 0 50px;
}

/* section1
***************************************************************/
.flow_sec1 {
  max-width: 940px;
  margin-inline: auto;
}
.page_flow_title {
  color: #fff;
  font-size: clamp(21px, 4vw, 25px);
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.05em;
  padding: 7px 18px;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  border-radius: 10px;
  margin-bottom: 30px;
}

.page_flow_text {
  color: #383838;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .page_flow_text {
    margin-bottom: 30px;
  }
}

.page_flow_titleWrap {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 11px;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .page_flow_titleWrap {
    margin-bottom: 30px;
  }
}

.page_flow_icon {
  width: 24px;
  height: 24px;
}

.page_flow_title2 {
  color: #FF8B48;
  font-size: clamp(20px, 4vw, 23px);
  font-weight: bold;
  line-height: 1.5652173913;
  letter-spacing: 0.05em;
}

.page_flow_title3 {
  color: #FF8B48;
  font-size: clamp(18px, 4vw, 20px);
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.05em;
  border-bottom: 2px solid #FF8B48;
  padding-bottom: 10px;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .page_flow_title3 {
    margin-bottom: 30px;
  }
}

.page_flow_arrow {
  text-align: center;
}

.page_flow_arrow img {
  width: 40px;
  height: 30px;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .page_flow_arrow img {
    margin-bottom: 30px;
  }
}

.bg-color {
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
  border-radius: 30px;
  padding: 41px 20px;
}

.fee-table-container {
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .fee-table-container {
    margin-bottom: 60px;
  }
}

.fee-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 30px;
}
.fee-table th,
.fee-table td {
  border: 1px solid #fff;
  padding: 7px;
  text-align: center;
}
@media (min-width: 768px) {
  .fee-table th,
  .fee-table td {
    padding: 15px 20px;
  }
}
.fee-table th {
  background-color: #F39801;
  color: #fff;
  font-weight: bold;
  width: 50%;
}
.fee-table td {
  font-weight: 500;
}
.fee-table tr:nth-child(odd) {
  background-color: #F2EDDF;
}
.fee-table tr:nth-child(even) {
  background-color: #FEFCF6;
}

.fee-table-header {
  background-color: #F39801;
  color: #fff;
  font-weight: bold;
}

/* プライバシーポリシー
***************************************************************/
.privacy-policy {
  background: #FFFBF5;
  padding: 40px 0 0;
}
@media (min-width: 768px) {
  .privacy-policy {
    padding: 80px 0 0;
  }
}

.privacy-policy .inner2 {
  max-width: 941px;
  margin: 0 auto;
  padding: 0 20px 40px;
}
@media (min-width: 768px) {
  .privacy-policy .inner2 {
    padding: 0 40px 60px;
  }
}
@media (min-width: 1024px) {
  .privacy-policy .inner2 {
    padding: 0 40px 80px;
  }
}

.privacy-policy h1 {
  font-size: clamp(28px, 5vw, 40px);
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  letter-spacing: 0.05em;
  color: #383838;
}
@media (min-width: 768px) {
  .privacy-policy h1 {
    margin-bottom: 50px;
  }
}
@media (min-width: 1400px) {
  .privacy-policy h1 {
    margin-bottom: 60px;
  }
}

.privacy-content {
  font-size: clamp(14px, 2.5vw, 16px);
  line-height: 1.8;
  color: #383838;
}
@media (min-width: 768px) {
  .privacy-content {
    font-size: 16px;
    line-height: 2;
  }
}

.privacy-content h2 {
  font-size: clamp(20px, 4vw, 24px);
  font-weight: bold;
  margin: 30px 0 15px;
  padding-bottom: 8px;
  border-bottom: 2px solid #EB6A02;
  color: #383838;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .privacy-content h2 {
    margin: 40px 0 20px;
    padding-bottom: 10px;
  }
}
@media (min-width: 1400px) {
  .privacy-content h2 {
    margin: 50px 0 25px;
    font-size: 28px;
  }
}
.privacy-content h2:first-child {
  margin-top: 0;
}

.privacy-content h3 {
  font-size: clamp(18px, 3.5vw, 20px);
  font-weight: bold;
  margin: 25px 0 12px;
  color: #EB6A02;
  letter-spacing: 0.02em;
}
@media (min-width: 768px) {
  .privacy-content h3 {
    margin: 30px 0 15px;
  }
}
@media (min-width: 1400px) {
  .privacy-content h3 {
    margin: 35px 0 18px;
    font-size: 22px;
  }
}

.privacy-content p {
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .privacy-content p {
    margin-bottom: 20px;
  }
}
@media (min-width: 1400px) {
  .privacy-content p {
    margin-bottom: 25px;
  }
}

.privacy-content ul {
  margin: 15px 0 25px;
  padding-left: 20px;
}
@media (min-width: 768px) {
  .privacy-content ul {
    margin: 20px 0 30px;
    padding-left: 30px;
  }
}
@media (min-width: 1400px) {
  .privacy-content ul {
    margin: 25px 0 35px;
    padding-left: 35px;
  }
}

.privacy-content li {
  margin-bottom: 8px;
  position: relative;
}
@media (min-width: 768px) {
  .privacy-content li {
    margin-bottom: 10px;
  }
}
@media (min-width: 1400px) {
  .privacy-content li {
    margin-bottom: 12px;
  }
}
.privacy-content li::marker {
  color: #EB6A02;
}

.privacy-content ol {
  margin: 15px 0 25px;
  padding-left: 20px;
}
@media (min-width: 768px) {
  .privacy-content ol {
    margin: 20px 0 30px;
    padding-left: 30px;
  }
}
@media (min-width: 1400px) {
  .privacy-content ol {
    margin: 25px 0 35px;
    padding-left: 35px;
  }
}

.privacy-content ol li {
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .privacy-content ol li {
    margin-bottom: 10px;
  }
}
@media (min-width: 1400px) {
  .privacy-content ol li {
    margin-bottom: 12px;
  }
}

.privacy-content strong {
  font-weight: bold;
  color: #EB6A02;
}

.privacy-content a {
  color: #EB6A02;
  text-decoration: underline;
  transition: color 0.3s ease;
}
.privacy-content a:hover {
  color: #F8B21F;
}
@media (min-width: 768px) {
  .privacy-content a:hover {
    text-decoration: none;
  }
}

/* テーブルスタイル（もしある場合） */
.privacy-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: clamp(12px, 2.2vw, 14px);
}
@media (min-width: 768px) {
  .privacy-content table {
    margin: 30px 0;
    font-size: 14px;
  }
}
@media (min-width: 1400px) {
  .privacy-content table {
    margin: 35px 0;
    font-size: 16px;
  }
}

.privacy-content th,
.privacy-content td {
  padding: 8px 10px;
  border: 1px solid #ddd;
  text-align: left;
}
@media (min-width: 768px) {
  .privacy-content th,
  .privacy-content td {
    padding: 12px 15px;
  }
}
@media (min-width: 1400px) {
  .privacy-content th,
  .privacy-content td {
    padding: 15px 20px;
  }
}

.privacy-content th {
  background-color: #FFFAE8;
  font-weight: bold;
  color: #383838;
}

/* モバイル専用スタイル */
@media screen and (max-width: 680px) {
  .privacy-policy {
    padding: 5.333vw 0;
  }
  .privacy-policy .inner2 {
    padding: 0 5.333vw;
  }
  .privacy-policy h1 {
    font-size: 6.667vw;
    margin-bottom: 8vw;
  }
  .privacy-content {
    font-size: 3.733vw;
    line-height: 1.7;
  }
  .privacy-content h2 {
    font-size: 5.333vw;
    margin: 8vw 0 4vw;
    padding-bottom: 2.133vw;
  }
  .privacy-content h3 {
    font-size: 4.8vw;
    margin: 6.667vw 0 3.2vw;
  }
  .privacy-content p {
    margin-bottom: 4vw;
  }
  .privacy-content ul,
  .privacy-content ol {
    margin: 4vw 0 6.667vw;
    padding-left: 5.333vw;
  }
  .privacy-content li {
    margin-bottom: 2.133vw;
  }
  .privacy-content table {
    font-size: 3.2vw;
    margin: 5.333vw 0;
  }
  .privacy-content th,
  .privacy-content td {
    padding: 2.133vw 2.667vw;
  }
}
/* 作成中メッセージセクション
***************************************************************/
.service_under_construction {
  background: #FFFBF5;
  padding: 60px 0;
}
@media (min-width: 768px) {
  .service_under_construction {
    padding: 80px 0;
  }
}
@media (min-width: 1400px) {
  .service_under_construction {
    padding: 100px 0;
  }
}

.under_construction_box {
  background: #fff;
  border-radius: 20px;
  padding: 40px 30px;
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
@media (min-width: 768px) {
  .under_construction_box {
    padding: 60px 50px;
    border-radius: 30px;
  }
}
@media (min-width: 1400px) {
  .under_construction_box {
    padding: 80px 60px;
  }
}

.under_construction_icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
  border-radius: 50%;
}
@media (min-width: 768px) {
  .under_construction_icon {
    width: 100px;
    height: 100px;
    margin-bottom: 40px;
  }
}
@media (min-width: 1400px) {
  .under_construction_icon {
    width: 120px;
    height: 120px;
    margin-bottom: 50px;
  }
}
.under_construction_icon:before {
  content: "⚠";
  font-size: 40px;
  color: #fff;
  line-height: 1;
}
@media (min-width: 768px) {
  .under_construction_icon:before {
    font-size: 50px;
  }
}
@media (min-width: 1400px) {
  .under_construction_icon:before {
    font-size: 60px;
  }
}
.under_construction_icon img {
  width: 40px;
  height: 40px;
  filter: brightness(0) invert(1);
}
@media (min-width: 768px) {
  .under_construction_icon img {
    width: 50px;
    height: 50px;
  }
}
@media (min-width: 1400px) {
  .under_construction_icon img {
    width: 60px;
    height: 60px;
  }
}

.under_construction_content h3 {
  font-size: clamp(18px, 3vw, 24px);
  font-weight: bold;
  color: #333;
  margin-bottom: 15px;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .under_construction_content h3 {
    margin-bottom: 20px;
    line-height: 1.5;
  }
}
@media (min-width: 1400px) {
  .under_construction_content h3 {
    margin-bottom: 25px;
  }
}
.under_construction_content p {
  color: #666;
  font-size: clamp(14px, 3vw, 16px);
  line-height: 1.6;
  margin: 0;
}
@media (min-width: 768px) {
  .under_construction_content p {
    line-height: 1.625;
  }
}
@media (min-width: 1400px) {
  .under_construction_content p {
    line-height: 1.75;
  }
}

/* 施設詳細ページ レスポンシブ対応版
***************************************************************/
.facility-detail__gallery {
  background: #FFFBF5;
  padding: 40px 0 60px;
}
@media (min-width: 768px) {
  .facility-detail__gallery {
    padding: 60px 20px 80px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__gallery {
    padding: 80px 0 100px;
  }
}

.facility-detail__inner {
  max-width: 941px;
  margin: 0 auto;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .facility-detail__inner {
    padding: 0;
  }
}

.facility-detail__inner2 {
  max-width: 430px;
  margin-inline: auto;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .facility-detail__inner2 {
    max-width: 720px;
    padding: 0 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__inner2 {
    padding: 0 20px;
  }
}

/* 施設ギャラリー（メイン画像 + サムネイルスライダー）
***************************************************************/
/* メイン画像（固定表示） */
.facility-detail__main-image {
  width: 100%;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .facility-detail__main-image {
    margin-bottom: 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__main-image {
    margin-bottom: 49px;
  }
}
.facility-detail__main-image img {
  border-radius: 15px;
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}
@media (min-width: 768px) {
  .facility-detail__main-image img {
    height: 350px;
    border-radius: 20px;
  }
}
@media (min-width: 1024px) {
  .facility-detail__main-image img {
    height: 450px;
  }
}

.facility-detail__thumbnail-gallery-wrapper {
  position: relative;
  overflow: visible;
}

/* サムネイルギャラリー */
.facility-detail__thumbnail-gallery {
  width: 100%;
  position: relative;
  padding: 0 60px;
  /* 矢印分のスペースを確保 */
  overflow: hidden;
}
@media (min-width: 768px) {
  .facility-detail__thumbnail-gallery {
    padding: 0 80px;
  }
}
@media (min-width: 1024px) {
  .facility-detail__thumbnail-gallery {
    padding: 0 100px;
    max-width: 941px;
  }
}

/* サムネイルスライダー */
.facility-detail__thumbnail-gallery .swiper {
  width: 100%;
  height: 250px;
  overflow: visible;
  /* スライド全体を表示 */
}
@media (min-width: 768px) {
  .facility-detail__thumbnail-gallery .swiper {
    height: 350px;
  }
}
@media (min-width: 1024px) {
  .facility-detail__thumbnail-gallery .swiper {
    max-width: 600px;
    height: 400px;
  }
}

/* スライドラッパー */
.facility-detail__thumbnail-gallery .swiper-wrapper {
  align-items: center;
}

/* カスタムナビゲーションボタン（ギャラリーコンテナに対して絶対配置） */
.facility-detail__thumbnail-gallery::before,
.facility-detail__thumbnail-gallery::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 33px;
  height: 47px;
  z-index: 10;
  cursor: pointer;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.facility-detail__thumbnail-gallery::before {
  left: 10px;
  /* 左矢印のスタイル */
  background-image: url("../../assets/images/facility-detail/icon-arrow-left.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px;
}
@media (min-width: 768px) {
  .facility-detail__thumbnail-gallery::before {
    background-size: 24px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__thumbnail-gallery::before {
    background-size: 32px;
  }
}

.facility-detail__thumbnail-gallery::after {
  right: 10px;
  /* 右矢印のスタイル */
  background-image: url("../../assets/images/facility-detail/icon-arrow-right.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px;
}
@media (min-width: 768px) {
  .facility-detail__thumbnail-gallery::after {
    background-size: 24px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__thumbnail-gallery::after {
    background-size: 32px;
  }
}

/* Swiperのデフォルトナビゲーションボタンを非表示 */
.facility-detail__thumbnail-gallery .swiper-button-next,
.facility-detail__thumbnail-gallery .swiper-button-prev {
  display: none;
}

/* 作業内容セクション
***************************************************************/
.facility-detail__work {
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
  padding: 40px 0;
}
@media (min-width: 768px) {
  .facility-detail__work {
    padding: 60px 0;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work {
    padding: 70px 0 100px;
  }
}

.facility-detail__work-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
  max-width: 961px;
  margin: 0 auto;
  padding: 0 15px;
  justify-items: center;
}
@media (min-width: 768px) {
  .facility-detail__work-container {
    grid-template-columns: repeat(2, 1fr);
    padding: 0 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-container {
    gap: 71px 41px;
    padding: 0;
  }
}

.facility-detail__work-item {
  background: #fff;
  border-radius: 10px;
  position: relative;
  max-width: 450px;
}

.facility-detail__work-img {
  width: 100%;
  height: 180px;
  position: relative;
}
@media (min-width: 768px) {
  .facility-detail__work-img {
    height: 200px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-img {
    height: 250px;
  }
}
.facility-detail__work-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px 10px 0 0;
}

.facility-detail__work-badge {
  position: absolute;
  top: -15px;
  left: -15px;
  width: 120px;
  height: 120px;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(18px, 3vw, 23px);
  font-weight: bold;
  border-radius: 50%;
  line-height: 1.2;
  letter-spacing: 0.03em;
  z-index: 3;
  text-align: center;
}
@media (min-width: 768px) {
  .facility-detail__work-badge {
    width: 150px;
    height: 150px;
    top: -30px;
    left: -20px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-badge {
    width: 170px;
    height: 170px;
    line-height: 1.4347826087;
  }
}

.facility-detail__work-content {
  padding: 20px 15px 25px;
}
@media (min-width: 768px) {
  .facility-detail__work-content {
    padding: 25px 20px 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-content {
    padding: 30px 25px 35px;
  }
}

.facility-detail__work-text {
  color: #383838;
  line-height: 1.6;
  font-weight: 500;
  margin: 0;
}
@media (min-width: 768px) {
  .facility-detail__work-text {
    line-height: 1.8571428571;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-text {
    line-height: 1.875;
  }
}

.facility-detail__work-services {
  display: grid;
  grid-template-columns: 1fr;
  justify-content: center;
  gap: 65px;
  margin-top: 100px;
}
@media (min-width: 768px) {
  .facility-detail__work-services {
    grid-template-columns: repeat(2, 1fr);
    gap: 100px 15px;
    margin-top: 120px;
    padding: 0 30px;
  }
}
@media (min-width: 1024px) {
  .facility-detail__work-services {
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-services {
    gap: 30px;
    margin-top: 150px;
  }
}

.facility-detail__work-service-item {
  background: #fff;
  border-radius: 15px;
  padding: 20px 25px;
  text-align: center;
  transition: transform 0.3s ease;
  max-width: 300px;
  min-height: 300px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .facility-detail__work-service-item {
    border-radius: 20px;
    padding: 25px 25px;
    max-width: 340px;
  }
}
@media (min-width: 1024px) {
  .facility-detail__work-service-item {
    max-width: 380px;
  }
  .facility-detail__work-service-item:hover {
    transform: translateY(-5px);
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-service-item {
    padding: 40px 30px;
  }
}

.facility-detail__work-service-logo {
  width: 200px;
  height: 200px;
  margin: 0 auto 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: 50%;
  background-color: #fff;
  overflow: hidden;
  margin-top: -60px;
}
@media (min-width: 768px) {
  .facility-detail__work-service-logo {
    margin-bottom: 20px;
    margin-top: -80px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-service-logo {
    width: 300px;
    height: 300px;
    margin-bottom: 25px;
    margin-top: -100px;
  }
}
.facility-detail__work-service-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.facility-detail__work-service-item:nth-child(1) .facility-detail__work-service-logo img {
  width: 80%;
  height: auto;
  max-width: 207px;
}

.facility-detail__work-service-item:nth-child(2) .facility-detail__work-service-logo img {
  width: 80%;
  height: auto;
  max-width: 260px;
}

.facility-detail__work-service-item:nth-child(3) .facility-detail__work-service-logo img {
  width: 80%;
  height: auto;
  max-width: 236px;
}

.facility-detail__work-service-title {
  font-size: clamp(18px, 3vw, 23px);
  font-weight: bold;
  color: #EB6A02;
  margin-bottom: 10px;
  line-height: 1.3;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .facility-detail__work-service-title {
    margin-bottom: 15px;
    line-height: 1.3043478261;
  }
}
@media (min-width: 1400px) {
  .facility-detail__work-service-title {
    margin-bottom: 20px;
  }
}

.facility-detail__work-service-text {
  color: #383838;
  line-height: 1.6;
  font-weight: 500;
  text-align: left;
}
@media (min-width: 768px) {
  .facility-detail__work-service-text {
    line-height: 1.875;
  }
}
.facility-detail__bg {
  background-color: #FFFBF5;
  padding: 60px 0;
}
@media (min-width: 768px) {
  .facility-detail__bg {
    padding: 80px 0;
  }
}
@media (min-width: 1400px) {
  .facility-detail__bg {
    padding: 100px 0;
  }
}

/* 一日の流れ -
***************************************************************/
.facility-detail__flow-container {
  margin-inline: auto;
}

.facility-detail__flow-timeline {
  padding: 0 15px;
}
@media (min-width: 768px) {
  .facility-detail__flow-timeline {
    padding: 0 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__flow-timeline {
    padding: 0 20px;
  }
}

.facility-detail__flow-item {
  position: relative;
  padding-bottom: 30px;
  display: flex;
  align-items: flex-start;
  text-align: left;
  gap: 30px;
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .facility-detail__flow-item {
    flex-direction: row;
    padding-bottom: 40px;
    gap: 100px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__flow-item {
    padding-bottom: 50px;
  }
}
.facility-detail__flow-item:last-child {
  padding-bottom: 0;
}
.facility-detail__flow-item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: #EB6A02;
  left: 40px;
  transform: translateX(-50%);
  z-index: 0;
}
@media (min-width: 768px) {
  .facility-detail__flow-item::before {
    width: 3px;
    left: 60px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__flow-item::before {
    width: 5px;
    left: 85px;
  }
}

.facility-detail__flow-item:last-child::before {
  display: none;
}

.facility-detail__flow-time {
  width: 80px;
  height: 80px;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14px, 3vw, 16px);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.03em;
  color: #fff;
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .facility-detail__flow-time {
    width: 120px;
    height: 120px;
    font-size: 18px;
    margin-bottom: 0;
  }
}
@media (min-width: 1400px) {
  .facility-detail__flow-time {
    width: 170px;
    height: 170px;
    font-size: 23px;
    line-height: 1.4347826087;
  }
}

.facility-detail__flow-content {
  color: #383838;
  font-weight: 500;
  line-height: 1.6;
  max-width: 300px;
}
@media (min-width: 768px) {
  .facility-detail__flow-content {
    max-width: 450px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__flow-content {
    line-height: 1.875;
    max-width: 450px;
  }
}
.facility-detail__flow-content p {
  margin: 0;
}

.facility-detail__flow-icon {
  width: 100%;
  max-width: 300px;
  height: 200px;
  border-radius: 10px;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .facility-detail__flow-icon {
    max-width: 450px;
    height: 250px;
    margin-bottom: 20px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__flow-icon {
    margin-bottom: 22px;
  }
}
.facility-detail__flow-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

/* イベント
***************************************************************/
.facility-detail__events {
  margin-top: 60px;
}
@media (min-width: 768px) {
  .facility-detail__events {
    margin-top: 80px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__events {
    margin-top: 100px;
  }
}

.facility-detail__events-inner {
  max-width: 941px;
  margin: 0 auto;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .facility-detail__events-inner {
    padding: 0 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__events-inner {
    padding: 0 20px;
  }
}

/* 施設情報
***************************************************************/
.facility-detail__info {
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
  padding: 40px 0 60px;
}
@media (min-width: 768px) {
  .facility-detail__info {
    padding: 60px 0 80px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__info {
    padding: 70px 0 100px;
  }
}

.facility-detail__info-container {
  background: #fff;
  border-radius: 30px;
  padding: 25px 30px;
  max-width: 850px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .facility-detail__info-container {
    border-radius: 40px;
    padding: 40px 30px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__info-container {
    border-radius: 50px;
    padding: 59px 45px 79px;
  }
}

.facility-detail__info-item {
  display: flex;
  align-items: flex-start;
  font-size: clamp(14px, 3vw, 18px);
  letter-spacing: 0.03em;
  line-height: 1.4;
  border-bottom: 1px solid #C7C7C7;
  margin-bottom: 15px;
  padding-bottom: 15px;
}
@media (min-width: 768px) {
  .facility-detail__info-item {
    align-items: center;
    font-size: 20px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    line-height: 1.3043478261;
  }
}
@media (min-width: 1400px) {
  .facility-detail__info-item {
    font-size: 23px;
  }
}
.facility-detail__info-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.facility-detail__info-item dt {
  color: #EB6A02;
  font-weight: bold;
  width: 80px;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .facility-detail__info-item dt {
    width: 120px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__info-item dt {
    width: 200px;
  }
}

.facility-detail__info-item dd {
  color: #383838;
  font-weight: 500;
}

.facility-detail__info-link {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .facility-detail__info-link {
    gap: 15px;
  }
  .facility-detail__info-link:hover dd {
    color: #EB6A02;
  }
  .facility-detail__info-link:hover img {
    transform: translateX(5px);
    opacity: 0.8;
  }
}
.facility-detail__info-link img {
  transition: all 0.3s ease;
  width: 20px;
  height: 20px;
}
@media (min-width: 768px) {
  .facility-detail__info-link img {
    width: 24px;
    height: 24px;
  }
}
@media (min-width: 1400px) {
  .facility-detail__info-link img {
    width: 27px;
    height: 27px;
  }
}
.facility-detail__info-link dd {
  transition: color 0.3s ease;
}

.facility-detail__instagram {
  margin-top: 100px;
}

#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3, .sb_instagram_header.sbi_medium .sbi_header_text h3 {
  font-size: clamp(22px, 3vw, 32px);
  letter-spacing: 0.05em;
}

/* page_workplace（施設外就労先一覧ページ）
***************************************************************/
/* page_workplace_sec1（2ndぷれいすのサービス）
***************************************************************/
.page_workplace_sec1 {
  padding-top: 80px;
  background-color: #FFFBF5;
}
.page_workplace_sec1 .page_workplace_sec1_itemBox {
  max-width: 600px;
  margin: 0 auto 40px;
}
@media (min-width: 768px) {
  .page_workplace_sec1 .page_workplace_sec1_itemBox {
    max-width: 800px;
    padding: 0 30px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_itemBox {
    max-width: 1200px;
    margin-bottom: 120px;
    padding: 0 20px;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec1 .page_workplace_sec1_itemBox {
    max-width: 1200px;
    margin-bottom: 150px;
    padding: 0;
  }
}
.page_workplace_sec1 .page_workplace_sec1_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 60px;
  gap: 20px;
}
@media (min-width: 768px) {
  .page_workplace_sec1 .page_workplace_sec1_item {
    gap: 25px;
    margin-bottom: 80px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_item {
    flex-direction: row;
    justify-content: center;
    align-items: flex-end;
    margin-bottom: clamp(80px, 8vw, 120px);
    gap: 0;
    max-width: 100%;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec1 .page_workplace_sec1_item {
    margin-bottom: 174px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_item.reverse {
    flex-direction: row-reverse;
  }
}
.page_workplace_sec1 .page_workplace_sec1_item:last-child {
  margin-bottom: 0;
}
.page_workplace_sec1 .page_workplace_sec1_img {
  width: 100%;
  height: 220px;
  flex-shrink: 0;
  position: relative;
}
@media (min-width: 768px) {
  .page_workplace_sec1 .page_workplace_sec1_img {
    height: 280px;
    max-width: 480px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_img {
    width: 50%;
    height: min(420px, 50vw);
    max-width: none;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec1 .page_workplace_sec1_img {
    width: 689px;
    height: 450px;
  }
}
.page_workplace_sec1 .page_workplace_sec1_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 15px;
}
.page_workplace_sec1 .page_workplace_sec1_content {
  font-weight: bold;
  position: relative;
  background: linear-gradient(to right, #EB6A02, #F8B21F);
  color: #fff;
  border-radius: 15px;
  padding: 25px 15px;
  box-sizing: border-box;
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .page_workplace_sec1 .page_workplace_sec1_content {
    padding: 35px 25px;
    max-width: 480px;
    margin: 0 auto;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_content {
    padding: clamp(25px, 3vw, 35px) clamp(20px, 2.5vw, 30px);
    height: auto;
    margin-left: -40px;
    margin-bottom: -60px;
    opacity: 0.9;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec1 .page_workplace_sec1_content {
    padding: 50px 48px;
    width: 600px;
    margin-left: -89px;
    margin-bottom: -89px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_item.reverse .page_workplace_sec1_content {
    margin-right: -40px;
    margin-left: 0;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec1 .page_workplace_sec1_item.reverse .page_workplace_sec1_content {
    margin-right: -89px;
    margin-left: 0;
  }
}
.page_workplace_sec1 .page_workplace_sec1_subtitle {
  font-size: clamp(18px, 3vw, 23px);
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.03em;
  margin-bottom: 15px;
  text-align: center;
}
@media (min-width: 768px) {
  .page_workplace_sec1 .page_workplace_sec1_subtitle {
    margin-bottom: 18px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_subtitle {
    margin-bottom: 20px;
    line-height: 1.3043478261;
  }
}
.page_workplace_sec1 .page_workplace_sec1_subtitle h3 {
  color: #fff;
  margin: 0;
}
.page_workplace_sec1 .page_workplace_sec1_text {
  line-height: 1.8;
  font-weight: bold;
}
@media (min-width: 768px) {
  .page_workplace_sec1 .page_workplace_sec1_text {
    line-height: 1.9;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec1 .page_workplace_sec1_text {
    line-height: 2;
    max-width: 505px;
  }
}
.page_workplace_sec1 .page_workplace_sec1_text p {
  margin: 0;
  color: #fff;
}

/* page_workplace_sec2（施設外就労先一覧）
***************************************************************/
.page_workplace_sec2 {
  background: linear-gradient(to right, #FFFAE8, #FFF2C9);
  padding: 40px 0;
}
@media (min-width: 768px) {
  .page_workplace_sec2 {
    padding: 60px 0;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2 {
    padding: 70px 0 100px;
  }
}

.page_workplace_sec2_itemBox {
  display: grid;
  grid-template-columns: 1fr;
  justify-content: center;
  gap: 65px;
  margin-top: 60px;
  max-width: 961px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 15px;
}
@media (min-width: 768px) {
  .page_workplace_sec2_itemBox {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 80px;
    padding: 0 30px;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_itemBox {
    gap: 30px;
    margin-top: 100px;
    padding: 0;
  }
}

.page_workplace_sec2_item {
  background: #fff;
  border-radius: 15px;
  padding: 20px 25px;
  text-align: center;
  transition: transform 0.3s ease;
  max-width: 300px;
  min-height: 300px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .page_workplace_sec2_item {
    border-radius: 20px;
    padding: 25px 25px;
    max-width: 340px;
  }
}
@media (min-width: 1024px) {
  .page_workplace_sec2_item {
    max-width: 380px;
  }
  .page_workplace_sec2_item:hover {
    transform: translateY(-5px);
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_item {
    padding: 40px 30px;
  }
}

.page_workplace_sec2_img {
  width: 200px;
  height: 200px;
  margin: 0 auto 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: 50%;
  background-color: #fff;
  overflow: hidden;
  margin-top: -60px;
  border: 1px solid #EB6A02;
}
@media (min-width: 768px) {
  .page_workplace_sec2_img {
    margin-bottom: 20px;
    margin-top: -80px;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_img {
    width: 300px;
    height: 300px;
    margin-bottom: 25px;
    margin-top: -100px;
  }
}
.page_workplace_sec2_img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.page_workplace_sec2_item:nth-child(1) .page_workplace_sec2_img img {
  width: 80%;
  height: auto;
  max-width: 207px;
}

.page_workplace_sec2_item:nth-child(2) .page_workplace_sec2_img img {
  width: 80%;
  height: auto;
  max-width: 260px;
}

.page_workplace_sec2_content {
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .page_workplace_sec2_content {
    margin-bottom: 25px;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_content {
    margin-bottom: 30px;
  }
}

.page_workplace_sec2_subtitle {
  font-size: clamp(18px, 3vw, 23px);
  font-weight: bold;
  color: #EB6A02;
  margin-bottom: 10px;
  line-height: 1.3;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .page_workplace_sec2_subtitle {
    margin-bottom: 15px;
    line-height: 1.3043478261;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_subtitle {
    margin-bottom: 20px;
  }
}

.page_workplace_sec2_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  position: relative;
  text-decoration: none;
  letter-spacing: 0.07em;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #EB6A02, #F8B21F);
  height: 50px;
  border-radius: 60px;
  font-size: clamp(14px, 2.5vw, 18px);
  max-width: 295px;
  margin: 0 auto;
}
.page_workplace_sec2_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
  z-index: 1;
}
.page_workplace_sec2_btn:hover::before {
  left: 100%;
}
.page_workplace_sec2_btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
  background: linear-gradient(135deg, #F8B21F, #EB6A02);
}
.page_workplace_sec2_btn img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
  z-index: 2;
}
.page_workplace_sec2_btn:hover img {
  transform: translateY(-50%) translateX(5px);
}
@media (min-width: 768px) {
  .page_workplace_sec2_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 70px;
    font-size: 18px;
    max-width: 470px;
  }
  .page_workplace_sec2_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .page_workplace_sec2_btn:hover::before {
    left: 100%;
  }
  .page_workplace_sec2_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .page_workplace_sec2_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .page_workplace_sec2_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-decoration: none;
    letter-spacing: 0.07em;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #EB6A02, #F8B21F);
    height: 80px;
    font-size: 20px;
  }
  .page_workplace_sec2_btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.6s ease;
    z-index: 1;
  }
  .page_workplace_sec2_btn:hover::before {
    left: 100%;
  }
  .page_workplace_sec2_btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(235, 106, 2, 0.4);
    background: linear-gradient(135deg, #F8B21F, #EB6A02);
  }
  .page_workplace_sec2_btn img {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    z-index: 2;
  }
  .page_workplace_sec2_btn:hover img {
    transform: translateY(-50%) translateX(5px);
  }
}
.page_workplace_sec2_btn img {
  width: 18px;
  height: 4px;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .page_workplace_sec2_btn img {
    width: 24px;
    height: 6px;
    right: 20px;
  }
}
@media (min-width: 1400px) {
  .page_workplace_sec2_btn img {
    width: 29px;
    height: 7px;
    right: 26px;
  }
}/*# sourceMappingURL=style.css.map */