@charset "UTF-8";
@layer utilities, base, components;
@layer base {
  :root {
    --main_color: #26333b;
    --base_color: #225d54;
    --sub_color: #ba7943;
    --bg_color: #ffffff;
    --muted_color: #f2f5f4;
    --border_color: #dbe2df;
    --content_width: 1480px;
  }
  *, *::before, *::after {
    box-sizing: border-box;
  }
  html {
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: 1rem;
  }
  body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 18px;
    line-height: 1.8;
    color: var(--main_color);
    background: var(--bg_color);
    overflow-wrap: anywhere;
  }
  img, video {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
  }
  svg {
    max-width: 100%;
  }
  a {
    color: var(--base_color);
    text-underline-offset: 0.22em;
  }
  button, input, textarea, select {
    font: inherit;
  }
  button, summary {
    cursor: pointer;
  }
  button, a {
    -webkit-tap-highlight-color: transparent;
  }
  h1, h2, h3 {
    line-height: 1.4;
  }
  :focus-visible {
    outline: 3px solid var(--base_color);
    outline-offset: 4px;
  }
  [hidden] {
    display: none !important;
  }
  .single {
    width: min(100% - 2rem, var(--content_width));
    margin-inline: auto;
    padding-block: 3rem;
  }
  .site_header, .site_footer {
    width: min(100% - 2rem, var(--content_width));
    margin-inline: auto;
  }
  .site_header {
    padding-block: 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--border_color);
  }
  .site_brand {
    color: var(--main_color);
    font-weight: 700;
    text-decoration: none;
  }
  .site_nav {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
  }
  .site_nav a {
    padding-block: 0.5rem;
  }
  .site_footer {
    padding-block: 2rem;
    border-top: 1px solid var(--border_color);
  }
  .skip_link {
    position: absolute;
    top: 0.5rem;
    left: 1rem;
    transform: translateY(-200%);
    background: white;
    padding: 0.5rem 1rem;
    z-index: 100;
  }
  .skip_link:focus {
    transform: none;
  }
  .blog_layout {
    display: grid;
    gap: 2rem;
  }
  .blog_layout > * {
    min-width: 0;
  }
  .blog_sidebar {
    padding: 1.5rem;
    background: var(--muted_color);
    border-radius: 0.5rem;
  }
  .blog_article img {
    height: auto;
  }
  .blog_article table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
  }
  .post_list {
    padding-left: 1.5rem;
  }
  .post_list li {
    padding-block: 0.8rem;
    border-bottom: 1px solid var(--border_color);
  }
  @media (min-width: 800px) {
    .single {
      width: min(100% - 4rem, var(--content_width));
      padding-block: 5rem;
    }
    .blog_layout {
      grid-template-columns: minmax(0, 1fr) 260px;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
  }
}
@layer components {
  :root {
    --main_color: #5e5a55;
    --base_color: #5e5a55;
    --sub_color: #9db192;
    --bg_color: #f7f5f0;
    --muted_color: #eeece6;
    --border_color: #dedbd4;
    --content_width: 1300px;
    --thiira: #fce12b;
    --sunja: #9db192;
  }
  body {
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
    color: #5e5a55;
    background: #f7f5f0;
  }
  body, button, input, select, textarea {
    line-height: 1.8;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  p {
    margin: 0 0 1em;
  }
  h1, h2, h3, h4 {
    margin: 0 0 0.55em;
    font-weight: 700;
  }
  ul {
    margin: 0;
  }
  .eng, .overline, .phone, .feature_number, .step_number, .copyright, .scroll_cue {
    font-family: "Quicksand", sans-serif;
  }
  .wrap {
    width: min(100% - 80px, 1300px);
    margin-inline: auto;
  }
  .section_space {
    padding-block: 60px;
  }
  .overline {
    display: block;
    font-weight: 600;
    letter-spacing: 0.075em;
    margin-bottom: 8px;
  }
  .section_title {
    text-align: center;
    margin-bottom: 38px;
  }
  .section_title h2 {
    margin-bottom: 12px;
  }
  .title_line {
    display: block;
    width: 34px;
    height: 2px;
    background: currentColor;
    margin-top: 14px;
  }
  .section_title .title_line {
    margin-inline: auto;
  }
  .button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    padding: 10px 28px;
    min-height: 46px;
    border: 1px solid #9d9891;
    border-radius: 100px;
    background: transparent;
    font-weight: 700;
    transition: transform 0.25s, background 0.25s;
    text-align: center;
    max-width: 100%;
  }
  .button:hover {
    background: #eeece6;
    transform: translateY(-2px);
  }
  .button_dark {
    color: #fff;
    background: #5e5a55;
    border-color: #5e5a55;
  }
  .button_dark:hover {
    background: #46423e;
  }
  .button_thiira {
    border-color: #a28c00;
  }
  .button_sunja {
    border-color: #66816a;
  }
  .thiira_text {
    color: #826c00;
  }
  .sunja_text {
    color: #4e7158;
  }
  .thiira_mark {
    background: #b99d00;
  }
  .sunja_mark {
    background: #5a7c65;
  }
  .sp_only {
    display: none;
  }
  .colu_header {
    width: min(100% - 50px, 1460px);
    min-height: 140px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
  }
  .colu_brand {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    font-weight: 700;
    flex-shrink: 0;
  }
  .colu_brand img {
    width: 88px;
    height: 88px;
    object-fit: contain;
  }
  .name_ruby {
    ruby-align: center;
    white-space: nowrap;
  }
  .name_ruby rt {
    line-height: 1.4;
    font-weight: 500;
  }
  .header_links {
    display: flex;
    align-items: center;
    gap: 36px;
  }
  .colu_navigation {
    display: flex;
    gap: 27px;
    align-items: center;
  }
  .colu_navigation a {
    display: grid;
    text-align: center;
    padding-block: 10px;
    position: relative;
  }
  .colu_navigation a[aria-current]::after {
    content: "";
    width: 30px;
    height: 2px;
    background: #9d9891;
    position: absolute;
    bottom: 0;
    left: calc(50% - 15px);
  }
  .header_actions {
    display: grid;
    gap: 5px;
    min-width: 210px;
  }
  .header_actions .button {
    padding: 4px 18px;
    min-height: 32px;
  }
  .header_phones {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 10px;
    justify-content: center;
  }
  .menu_toggle {
    display: none;
  }
  .home_hero {
    height: 690px;
    position: relative;
    overflow: clip;
  }
  .slider_fullslider {
    list-style: none;
    padding: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
  }
  .slider_fullslider .slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.8s;
  }
  .slider_fullslider .slide.active {
    opacity: 1;
  }
  .slider_fullslider img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .slider_fullslider .slide:nth-child(2) img {
    object-position: 50% 40%;
  }
  .home_hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(44, 39, 35, 0.6509803922);
    pointer-events: none;
  }
  .home_hero_copy {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: white;
    text-align: center;
    padding: 35px 20px 100px;
    text-shadow: 0 2px 15px rgba(39, 33, 27, 0.3333333333);
  }
  .home_hero_copy h1 {
    line-height: 1.5;
    letter-spacing: 0.035em;
  }
  .home_hero_copy h1 span {
    display: block;
  }
  .home_hero_copy h1 .hero_keywords > span {
    display: inline-block;
    max-width: 100%;
  }
  .home_hero_copy .overline {
    margin-bottom: 20px;
  }
  .slider_controls {
    position: absolute;
    z-index: 2;
    bottom: 95px;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
  }
  .slider_dot {
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    padding: 10px;
  }
  .slider_dot::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid white;
  }
  .slider_dot.active::after {
    background: white;
  }
  .slider_pause {
    border: 1px solid rgba(255, 255, 255, 0.5333333333);
    border-radius: 30px;
    color: white;
    background: rgba(62, 53, 46, 0.4);
    padding: 3px 12px;
  }
  .scroll_cue {
    position: absolute;
    z-index: 2;
    bottom: 0;
    left: calc(50% - 35px);
    width: 70px;
    color: white;
    text-align: center;
    letter-spacing: 0.1em;
  }
  .scroll_cue span {
    display: block;
    width: 1px;
    height: 38px;
    background: white;
    margin: 8px auto 0;
  }
  .lead_grid {
    display: grid;
    grid-template-columns: 32% minmax(0, 1fr);
    gap: 40px;
  }
  .lead_grid .button {
    margin-top: 10px;
  }
  .facility_cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px;
  }
  .facility_card {
    padding: 22px;
    border-radius: 24px;
  }
  .thiira_card {
    background: #fcf0c8;
  }
  .sunja_card {
    background: #e1e8da;
  }
  .card_photo {
    display: block;
    height: 390px;
    overflow: hidden;
    border-radius: 22px;
  }
  .card_photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
  }
  .facility_card_body {
    text-align: center;
    padding: 25px 12px 10px;
  }
  .facility_card_body h3 {
    margin-bottom: 15px;
  }
  .facility_logo {
    width: min(100%, 360px);
    height: auto;
  }
  .facility_card_body p {
    margin-bottom: 12px;
  }
  .facility_card_body .button {
    min-width: 260px;
    margin-top: 10px;
  }
  .three_columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
  }
  .feature_card img {
    width: 100%;
    height: 235px;
    object-fit: cover;
    object-position: center 33%;
    border-radius: 20px;
  }
  .feature_card .feature_number {
    display: block;
    font-weight: 700;
    color: #9a8400;
    margin-top: 4px;
  }
  .feature_card:nth-child(3) .feature_number {
    color: #52715e;
  }
  .feature_card h3 {
    margin: 0 0 20px;
  }
  .feature_card p {
    margin-bottom: 0;
  }
  .machines_photo {
    object-position: left center !important;
  }
  .contact_panel {
    background: #eeece6;
    border-radius: 24px;
    padding: 40px 34px 32px;
    text-align: center;
    margin-block: 30px;
  }
  .contact_panel .section_title {
    margin-bottom: 22px;
  }
  .contact_phones {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    max-width: 1000px;
    margin: 32px auto 26px;
  }
  .contact_phones p {
    margin-bottom: 4px;
  }
  .contact_phones > div + div {
    border-left: 1px solid #d1cec7;
  }
  .phone {
    display: inline-flex;
    gap: 12px;
    align-items: center;
    font-weight: 700;
    line-height: 1.3;
  }
  .phone_mark {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: white;
    border-radius: 50%;
    font-size: 24px;
    flex-shrink: 0;
  }
  .contact_panel .button {
    min-width: 330px;
  }
  .service_banners {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin-block: 24px 45px;
  }
  .service_banner {
    background: #eeece6;
    border-radius: 20px;
    padding: 35px;
    position: relative;
    overflow: hidden;
    min-height: 300px;
  }
  .service_banner p {
    margin-bottom: 18px;
  }
  .recruit_banner img {
    position: absolute;
    top: 0;
    right: 0;
    width: 57%;
    height: 100%;
    object-fit: cover;
  }
  .recruit_banner > div {
    width: 50%;
    position: relative;
  }
  .recruit_banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #eeece6 42%, rgba(238, 236, 230, 0.8666666667) 50%, transparent 65%);
    z-index: 1;
  }
  .recruit_banner > div {
    z-index: 2;
  }
  .service_banner .button {
    gap: 15px;
    padding: 9px 23px;
  }
  .news_summary {
    display: grid;
    grid-template-columns: 22% minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    margin-block: 45px;
  }
  .news_rows {
    list-style: none;
    padding: 0;
  }
  .news_rows > li {
    padding: 18px 0;
    border-bottom: 1px solid var(--border_color);
  }
  .instagram_section {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 25px;
    align-items: center;
    padding-block: 40px 55px;
  }
  .instagram_section h2 {
    margin-bottom: 0;
  }
  .colu_footer {
    border-top: 1px solid var(--border_color);
    padding-block: 40px 24px;
  }
  .footer_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 35px;
    align-items: start;
  }
  .footer_grid .colu_brand {
    margin-top: 18px;
  }
  .footer_grid .colu_brand img {
    width: 130px;
    height: 130px;
  }
  .footer_facility {
    border-left: 1px solid var(--border_color);
    padding-left: 36px;
  }
  .footer_facility .facility_logo {
    width: 225px;
    margin-bottom: 14px;
  }
  .footer_facility p {
    margin-bottom: 10px;
  }
  .footer_navigation {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    justify-content: center;
    margin: 34px 0 25px;
  }
  .copyright {
    text-align: center;
    margin: 0;
  }
  .page_hero {
    padding-block: 36px;
    background: #eeece6;
  }
  .hero_grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 55px;
    align-items: center;
  }
  .page_hero_copy {
    padding: 15px 25px 15px 0;
  }
  .page_hero_copy h1 {
    line-height: 1.4;
  }
  .hero_slogan {
    margin: 24px 0 0;
    font-weight: 700;
    text-wrap: balance;
  }
  .thiira_hero .hero_slogan {
    white-space: pre-line;
    text-wrap: initial;
  }
  .page_hero_photo {
    width: 100%;
    height: 410px;
    object-fit: cover;
    border-radius: 25px;
  }
  .hero_logo {
    width: 340px;
    margin-block: 12px;
  }
  .thiira_hero {
    background: #fbf0c8;
  }
  .sunja_hero {
    background: #e1e8da;
  }
  .thiira_theme .title_line {
    background: #af9600;
  }
  .sunja_theme .title_line {
    background: #67846c;
  }
  .breadcrumb {
    display: flex;
    gap: 16px;
    padding-block: 25px;
    flex-wrap: wrap;
  }
  .four_columns {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
  .four_columns .feature_card img {
    height: 250px;
  }
  .feature_round img {
    border-radius: 50%;
    aspect-ratio: 1;
    height: auto !important;
  }
  .soft_band {
    background: #e8ede4;
    padding-block: 60px;
  }
  .policy_card {
    padding: 18px;
    border-radius: 22px;
    background: #f7f5f0;
    text-align: center;
  }
  .policy_card img {
    width: 100%;
    aspect-ratio: 1.5;
    object-fit: cover;
    border-radius: 16px;
  }
  .policy_card .community_photo {
    object-fit: contain;
  }
  .policy_card h3 {
    margin-top: 18px;
  }
  .policy_card p {
    margin-bottom: 6px;
  }
  .schedule {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px;
    text-align: center;
  }
  .time_circle {
    display: grid;
    place-items: center;
    width: 90px;
    height: 90px;
    background: #fce12b;
    border-radius: 50%;
    margin: 0 auto 22px;
    font-family: "Quicksand", sans-serif;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    overflow-wrap: normal;
  }
  .time_circle.time_options {
    width: min(100%, 170px);
    border-radius: 45px;
  }
  .facility_guide_stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 60px;
  }
  .thiira_theme .machines_photo {
    object-position: center !important;
  }
  .instagram_gallery a {
    display: block;
  }
  .instagram_gallery img {
    object-position: center 35%;
  }
  .instagram_gallery span {
    display: block;
    margin-top: 10px;
  }
  .consultation_banner img {
    position: absolute;
    inset: 0 0 0 auto;
    width: 57%;
    height: 100%;
    object-fit: cover;
    object-position: 65% center;
  }
  .consultation_banner > div {
    position: relative;
    z-index: 2;
    width: 55%;
  }
  .consultation_banner::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(90deg, #eeece6 43%, rgba(238, 236, 230, 0.8666666667) 52%, transparent 75%);
  }
  .consultation_banner p {
    max-width: 260px;
  }
  .worries_layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 32px;
    align-items: center;
  }
  .worries_layout .checks {
    grid-template-columns: 1fr;
    padding-top: 12px;
  }
  .worries_illustration {
    width: 100%;
    height: auto;
  }
  .support_card {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
  }
  .support_illustration {
    width: 140px;
    height: 160px;
    object-fit: contain;
  }
  .support_card p {
    margin-bottom: 0;
  }
  .reason_crown {
    display: block;
    width: 90px;
    height: 80px;
    object-fit: contain;
    margin: 0 auto 14px;
  }
  .reason_grid h3 {
    text-align: center;
  }
  .reason_grid h3 span, h1 span, h2 span, h3 span {
    display: inline-block;
    max-width: 100%;
  }
  .benefit_illustration {
    display: block;
    width: 200px;
    height: 190px;
    object-fit: contain;
    margin: 0 auto 18px;
  }
  .office_card > .button {
    margin-top: 25px;
  }
  .form_intro span {
    display: inline-block;
    max-width: 100%;
  }
  .colu_cms_form .form-contents {
    padding: 0 !important;
    background: transparent !important;
    color: #5e5a55;
    font-family: inherit;
  }
  .colu_cms_form .form-contents form dl {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 24px;
    margin: 0 0 32px !important;
  }
  .colu_cms_form .form-contents form dl dt:not(.pattern-exclusion), .colu_cms_form .form-contents form dl dd:not(.pattern-exclusion) {
    float: none !important;
    width: auto !important;
    min-width: 0;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    line-height: 1.8 !important;
  }
  .colu_cms_form .form-contents form dl dt:not(.pattern-exclusion) {
    padding-top: 10px !important;
    font-weight: 700;
  }
  .colu_cms_form .form-contents dt span.required {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    font-size: inherit !important;
  }
  .colu_cms_form .form-contents dt span.required::before {
    background: #855c47 !important;
    border-radius: 4px;
    padding: 3px 7px !important;
    font-size: 12px !important;
    margin-right: 10px !important;
  }
  .colu_cms_form .form-contents dd input.textarea, .colu_cms_form .form-contents dd textarea, .colu_cms_form .form-contents dd select {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    min-height: 48px;
    padding: 10px 14px !important;
    border: 1px solid #aaa49b !important;
    border-radius: 8px !important;
    background: #fff;
    color: inherit;
    font-size: 18px;
    line-height: 1.8;
  }
  .colu_cms_form .form-contents dd textarea {
    min-height: 190px;
    resize: vertical;
  }
  .colu_cms_form .form-contents dd label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 10px 20px 10px 0;
    line-height: 1.8;
  }
  .colu_cms_form .form-contents dd input[type=checkbox], .colu_cms_form .form-contents dd input[type=radio] {
    width: 20px;
    height: 20px;
    accent-color: #5e5a55;
    flex-shrink: 0;
  }
  .colu_cms_form .form-contents .submit-btn, .colu_cms_form .back-home-btn a {
    width: min(100%, 360px) !important;
    max-width: 100%;
    min-height: 50px;
    margin: 32px auto 0 !important;
    padding: 12px 20px !important;
    color: #fff !important;
    background: #5e5a55 !important;
    border: 1px solid #5e5a55 !important;
    border-radius: 100px !important;
    font-size: 18px !important;
    letter-spacing: 0 !important;
  }
  .colu_cms_form .form-contents .submit-btn::before {
    background-color: #fff !important;
  }
  .colu_cms_form .form-contents .submit-btn:hover {
    background: #46423e !important;
  }
  .colu_cms_form .form-contents .form-err-msg {
    border-radius: 12px;
    color: #a11e1e !important;
  }
  .colu_cms_form .form-contents .form-thanks-msg {
    border-radius: 16px;
    padding: 28px 20px !important;
    line-height: 1.8;
  }
  .schedule p {
    margin-bottom: 0;
  }
  .schedule p span {
    display: inline-block;
    max-width: 100%;
  }
  .two_columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 45px;
  }
  .two_columns > *, .three_columns > *, .four_columns > *, .hero_grid > *, .lead_grid > * {
    min-width: 0;
  }
  .info_list {
    margin: 26px 0;
    border-top: 1px solid var(--border_color);
  }
  .info_list > div {
    display: grid;
    grid-template-columns: 27% minmax(0, 1fr);
    border-bottom: 1px solid var(--border_color);
  }
  .info_list dt {
    background: #eeece6;
    padding: 16px;
    font-weight: 700;
  }
  .info_list dd {
    margin: 0;
    padding: 16px 22px;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }
  .thiira_theme .info_list dt {
    background: #f9efc7;
  }
  .sunja_theme .info_list dt {
    background: #e2e8dd;
  }
  .table_wrap {
    overflow-x: auto;
    margin: 25px 0;
  }
  .price_table {
    border-collapse: collapse;
    width: 100%;
  }
  .price_table th, .price_table td {
    padding: 12px 14px;
    border: 1px solid var(--border_color);
    text-align: left;
  }
  .price_table th {
    background: #eeeae1;
    font-weight: 700;
  }
  .thiira_theme .price_table th {
    background: #fbe56f;
  }
  .sunja_theme .price_table th {
    background: #e2e8dd;
  }
  .note {
    color: #645e56;
  }
  .gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-block: 30px;
  }
  .gallery > a {
    display: block;
  }
  .gallery img {
    width: 100%;
    height: 210px;
    object-fit: cover;
    border-radius: 16px;
  }
  .gallery .staff_back {
    object-position: right center;
  }
  .map_frame {
    width: 100%;
    height: 330px;
    border: 0;
    border-radius: 20px;
    background: #eeece6;
  }
  .access_layout {
    align-items: center;
  }
  .access_layout .button {
    margin-top: 12px;
  }
  .meal_strip {
    background: #e8ede4;
    padding-block: 35px;
  }
  .meal_strip img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 18px;
  }
  .meal_strip figcaption {
    text-align: center;
    margin-top: 14px;
  }
  figure {
    margin: 0;
  }
  .checks_panel {
    background: #eeece6;
    border-radius: 22px;
    padding: 35px;
  }
  .checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 40px;
    list-style: none;
    padding: 25px 0 0;
  }
  .checks li {
    position: relative;
    padding-left: 28px;
  }
  .checks li::before {
    content: "✓";
    position: absolute;
    left: 0;
    font-weight: 700;
  }
  .badge_row {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 25px;
  }
  .outline_badge {
    width: 135px;
    height: 135px;
    border-radius: 50%;
    border: 2px solid #c9c1b4;
    display: grid;
    place-items: center;
    text-align: center;
    font-weight: 700;
  }
  .support_card, .service_tile {
    background: #eeece6;
    border-radius: 20px;
    padding: 26px;
  }
  .support_grid {
    gap: 22px;
    margin-top: 35px;
  }
  .service_grid {
    gap: 24px;
    margin-top: 35px;
  }
  .service_tile .feature_number {
    color: #827766;
    display: block;
    font-weight: 700;
  }
  .service_tile p {
    margin-bottom: 0;
  }
  .reason_grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
    margin-top: 30px;
  }
  .reason_grid article {
    padding: 24px 18px;
    border: 1px solid var(--border_color);
    border-radius: 16px;
  }
  .flow_grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin-top: 30px;
  }
  .flow_grid article {
    padding: 25px;
    background: #eeece6;
    border-radius: 20px;
  }
  .step_number {
    display: block;
    color: #827766;
    font-weight: 700;
    margin-bottom: 16px;
  }
  .consult_contact {
    text-align: center;
    padding: 40px;
    background: #eeece6;
    border-radius: 22px;
  }
  .consult_contact .phone {
    margin-bottom: 24px;
  }
  .consult_contact .button {
    display: flex;
    width: max-content;
    margin: 0 auto 20px;
  }
  .recruit_hero .page_hero_photo {
    height: 460px;
  }
  .benefits_grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
  }
  .benefit_card {
    background: #eeece6;
    border-radius: 18px;
    padding: 28px;
    text-align: center;
  }
  .benefit_card p {
    margin-bottom: 0;
  }
  .job_panel {
    border: 1px solid var(--border_color);
    border-radius: 22px;
    padding: 30px;
  }
  .job_panel.thiira_card, .job_panel.sunja_card {
    background: transparent;
  }
  .job_panel h3 {
    padding: 16px;
    border-radius: 12px;
  }
  .job_panel.thiira_card h3 {
    background: #fcf0c8;
  }
  .job_panel.sunja_card h3 {
    background: #e1e8da;
  }
  .job_panel .info_list dt {
    background: transparent;
    padding-inline: 0;
  }
  .job_panel .info_list dd {
    padding-right: 0;
  }
  .faq_list details {
    border: 1px solid var(--border_color);
    border-radius: 16px;
    margin-bottom: 14px;
    padding: 20px 28px;
  }
  .faq_list summary {
    font-weight: 700;
    padding-right: 15px;
  }
  .faq_list details p {
    margin: 18px 0 0;
  }
  .apply_buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 25px;
    margin-top: 30px;
  }
  .form_panel {
    background: #eeece6;
    border-radius: 24px;
    padding: 40px;
  }
  .form_panel .section_title {
    margin-bottom: 30px;
  }
  .form_rows {
    display: grid;
    gap: 20px;
  }
  .form_row {
    display: grid;
    grid-template-columns: 28% minmax(0, 1fr);
    gap: 25px;
    align-items: center;
  }
  .form_row > label, .form_row legend {
    font-weight: 700;
  }
  .form_row input:not([type=radio]), .form_row textarea, .form_row select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #c9c5bd;
    border-radius: 8px;
    background: #fff;
    color: #5e5a55;
  }
  .form_row textarea {
    min-height: 160px;
    resize: vertical;
  }
  .form_row fieldset {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
  }
  .radio_group {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
  }
  .radio_group label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .radio_group input {
    width: 18px;
    height: 18px;
    accent-color: #5e5a55;
  }
  .required {
    margin-left: 12px;
    display: inline-block;
    padding: 1px 7px;
    border-radius: 4px;
    color: #fff;
    background: #946b54;
    font-size: 12px;
  }
  .form_actions {
    text-align: center;
    margin-top: 35px;
  }
  .form_actions button:disabled {
    opacity: 0.55;
    cursor: default;
    transform: none;
  }
  .company_overview {
    grid-template-columns: 0.6fr 1.4fr;
    align-items: center;
  }
  .company_mark {
    text-align: center;
  }
  .company_mark img {
    width: 240px;
  }
  .office_card {
    padding: 30px;
    border-radius: 22px;
  }
  .office_card .facility_logo {
    display: block;
    margin: 0 auto 25px;
  }
  .office_card > img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    border-radius: 18px;
  }
  .office_card .info_list {
    margin-bottom: 0;
  }
  .office_card .info_list dt {
    background: transparent;
    padding-left: 0;
  }
  .news_hero .hero_grid {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .news_hero {
    position: relative;
    overflow: hidden;
    background: #eeece6;
  }
  .news_list_layout {
    padding-block: 55px 85px;
  }
  .news_cards {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 45px 30px;
  }
  .news_cards img {
    width: 100%;
    height: 230px;
    object-fit: cover;
    border-radius: 20px;
  }
  .news_cards a {
    display: block;
  }
  .news_cards h3 {
    margin-top: 20px;
  }
  .empty_news {
    text-align: center;
    background: #eeece6;
    border-radius: 20px;
    padding: 50px 25px;
  }
  .empty_news p:last-child {
    margin-bottom: 0;
  }
  .blog_article {
    width: min(100% - 80px, 900px);
    margin: 25px auto 85px;
  }
  .blog_article img {
    border-radius: 20px;
  }
  .blog_article .article_body img {
    display: block;
    margin-block: 25px;
  }
  .article_body h2, .article_body h3 {
    margin-top: 35px;
  }
  .pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 45px;
  }
  .blog_article h1 {
    text-align: center;
    margin-bottom: 35px;
  }
  .article_back {
    text-align: center;
    margin-top: 55px;
  }
  .act.slide_up_sm {
    opacity: 1;
  }
  @media (prefers-reduced-motion: no-preference) {
    .act.slide_up_sm.on {
      animation: colu_reveal 0.9s ease-out both;
    }
    @keyframes colu_reveal {
      from {
        opacity: 0.4;
        transform: translateY(18px);
      }
      to {
        opacity: 1;
        transform: none;
      }
    }
  }
  @media (max-width: 1250px) {
    .colu_header {
      gap: 20px;
    }
    .header_links {
      gap: 22px;
    }
    .colu_navigation {
      gap: 15px;
    }
    .colu_brand img {
      width: 70px;
      height: 70px;
    }
    .colu_header .colu_brand {
      gap: 10px;
    }
    .header_actions {
      min-width: 180px;
    }
    .phone_mark {
      width: 36px;
      height: 36px;
    }
  }
  @media (max-width: 1100px) {
    .support_card {
      grid-template-columns: 1fr;
      text-align: center;
    }
    .support_illustration {
      margin-inline: auto;
      width: 190px;
      height: 180px;
    }
    .colu_header {
      min-height: 95px;
    }
    .menu_toggle {
      display: grid;
      justify-items: center;
      padding: 10px;
      background: transparent;
      border: 0;
      color: inherit;
    }
    .menu_lines {
      width: 28px;
      height: 16px;
      border-top: 2px solid;
      border-bottom: 2px solid;
      margin-bottom: 6px;
    }
    .header_links {
      display: none;
    }
    .header_links.is_open {
      position: absolute;
      z-index: 20;
      inset: 95px 0 auto;
      padding: 25px 35px 35px;
      background: #f7f5f0;
      box-shadow: 0 15px 25px rgba(94, 90, 85, 0.0705882353);
      display: grid;
    }
    .colu_navigation {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .header_actions {
      max-width: 450px;
      width: 100%;
      margin: auto;
    }
    .header_phones {
      gap: 14px;
    }
    .home_hero {
      height: 620px;
    }
    .contact_phones {
      gap: 15px;
    }
    .contact_phones .phone {
      font-size: 28px !important;
      gap: 8px;
    }
    .contact_phones .phone_mark {
      width: 30px;
      height: 30px;
      font-size: 20px;
    }
    .card_photo {
      height: 300px;
    }
    .four_columns, .reason_grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .footer_grid .colu_brand {
      flex-direction: column;
      align-items: flex-start;
    }
    .service_banner {
      padding: 25px;
    }
    .service_banner .button {
      padding: 8px 16px;
      gap: 10px;
    }
    .instagram_section {
      grid-template-columns: 1fr 1fr;
    }
    .instagram_section > div {
      grid-column: 1/-1;
    }
    .hero_grid {
      gap: 30px;
    }
    .page_hero_photo {
      height: 350px;
    }
  }
  @media (max-width: 760px) {
    .facility_guide_stack {
      gap: 35px;
    }
    .worries_layout {
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .worries_illustration {
      width: min(100%, 270px);
      margin-inline: auto;
    }
    .consultation_banner > div, .recruit_banner > div {
      width: 100%;
    }
    .consultation_banner img {
      width: 55%;
    }
    .service_banner .button, .job_panel .button, .office_card > .button, .access_layout .button, .apply_buttons .button, .news_summary .button, .article_back .button {
      width: 100%;
      padding-inline: 12px;
      gap: 10px;
    }
    .colu_cms_form .form-contents form dl {
      grid-template-columns: 1fr;
      gap: 10px;
    }
    .colu_cms_form .form-contents form dl dd:not(.pattern-exclusion) {
      margin-bottom: 14px !important;
    }
    .colu_cms_form .form-contents dd label {
      display: flex;
      margin-right: 0;
    }
    .colu_cms_form .form-contents .submit-btn {
      width: 100% !important;
    }
    .wrap {
      width: calc(100% - 40px);
    }
    .section_space {
      padding-block: 35px;
    }
    .section_title {
      margin-bottom: 26px;
    }
    .sp_only {
      display: block;
    }
    .colu_header {
      width: calc(100% - 30px);
      min-height: 85px;
    }
    .colu_brand img {
      width: 60px;
      height: 60px;
    }
    .header_links.is_open {
      top: 85px;
      padding-inline: 20px;
    }
    .colu_navigation {
      gap: 18px 12px;
    }
    .home_hero {
      height: 590px;
    }
    .home_hero_copy {
      padding-bottom: 100px;
    }
    .home_hero_copy h1 {
      line-height: 1.7;
      letter-spacing: 0;
    }
    .home_hero_copy h1 span {
      max-width: 100%;
    }
    .home_hero_copy > p:last-child {
      max-width: 340px;
    }
    .lead_grid, .facility_cards, .three_columns, .two_columns, .hero_grid, .company_overview {
      grid-template-columns: 1fr;
      gap: 28px;
    }
    .lead_grid h3 {
      margin-top: 6px;
    }
    .facility_card {
      padding: 15px;
      border-radius: 20px;
    }
    .facility_card_body {
      padding: 20px 8px 10px;
    }
    .facility_card_body .button {
      min-width: 0;
      width: 90%;
    }
    .facility_card_body .facility_logo {
      max-width: 290px;
    }
    .card_photo {
      height: 260px;
    }
    .feature_card img {
      height: 250px;
    }
    .feature_card h3 {
      margin-bottom: 12px;
    }
    .contact_panel {
      padding: 30px 20px;
    }
    .contact_phones {
      grid-template-columns: 1fr;
      gap: 25px;
      margin-block: 25px;
    }
    .contact_phones > div + div {
      border-left: 0;
      border-top: 1px solid var(--border_color);
      padding-top: 25px;
    }
    .contact_phones .phone {
      font-size: 28px !important;
    }
    .contact_panel .button {
      min-width: 0;
      width: 100%;
      gap: 12px;
      padding-inline: 15px;
    }
    .service_banners {
      grid-template-columns: 1fr;
      margin-bottom: 30px;
    }
    .service_banner {
      padding: 25px;
      min-height: 280px;
    }
    .service_banner > div p {
      max-width: 200px;
    }
    .service_banner > div .button {
      background: #f7f5f0;
    }
    .recruit_banner > div p {
      font-size: 16px;
    }
    .recruit_banner .button {
      font-size: 18px;
      padding-inline: 14px;
    }
    .news_summary {
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .news_summary .button {
      justify-self: start;
    }
    .instagram_section {
      grid-template-columns: 1fr;
      gap: 16px;
      padding-block: 25px 40px;
    }
    .footer_grid {
      grid-template-columns: 1fr;
      gap: 24px;
    }
    .footer_grid .colu_brand {
      flex-direction: row;
      align-items: center;
      margin: 0 0 10px;
    }
    .footer_grid .colu_brand img {
      width: 90px;
      height: 90px;
    }
    .footer_facility {
      border-left: 0;
      border-top: 1px solid var(--border_color);
      padding: 24px 0 0;
    }
    .footer_facility .facility_logo {
      width: 240px;
    }
    .footer_navigation {
      justify-content: flex-start;
      gap: 12px 20px;
    }
    .page_hero {
      padding-block: 25px;
    }
    .page_hero_copy {
      padding: 0;
    }
    .hero_slogan {
      margin-top: 18px;
    }
    .hero_logo {
      width: min(100%, 300px);
    }
    .page_hero_photo {
      height: 280px;
    }
    .recruit_hero .page_hero_photo {
      height: 300px;
    }
    .breadcrumb {
      padding-block: 18px;
      gap: 10px;
    }
    .four_columns {
      grid-template-columns: 1fr;
      gap: 28px;
    }
    .feature_round img {
      max-width: 260px;
      display: block;
      margin: auto;
    }
    .feature_round {
      text-align: center;
    }
    .schedule {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 30px 20px;
    }
    .time_circle {
      width: 80px;
      height: 80px;
      margin-bottom: 15px;
    }
    .table_wrap {
      margin-top: 20px;
    }
    .price_table th, .price_table td {
      padding: 10px 8px;
      font-size: 16px;
    }
    .info_list dt {
      padding: 14px 10px;
    }
    .info_list > div {
      grid-template-columns: 110px minmax(0, 1fr);
    }
    .info_list dd {
      padding: 14px 12px;
    }
    .gallery {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }
    .gallery img {
      height: 155px;
    }
    .map_frame {
      height: 290px;
    }
    .checks_panel {
      padding: 25px;
    }
    .checks {
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .outline_badge {
      width: 90px;
      height: 90px;
      font-size: 16px !important;
    }
    .badge_row {
      gap: 12px;
      justify-content: center;
    }
    .reason_grid, .benefits_grid, .flow_grid {
      grid-template-columns: 1fr;
    }
    .consult_contact {
      padding: 30px 20px;
    }
    .consult_contact .phone {
      font-size: 28px !important;
    }
    .consult_contact .button {
      width: 100%;
      padding-inline: 12px;
      gap: 10px;
    }
    .job_panel {
      padding: 20px;
    }
    .apply_buttons {
      grid-template-columns: 1fr;
      gap: 15px;
    }
    .form_panel {
      padding: 25px 20px;
    }
    .form_row {
      grid-template-columns: 1fr;
      gap: 8px;
    }
    .radio_group {
      gap: 10px 20px;
    }
    .company_mark img {
      width: 180px;
    }
    .office_card {
      padding: 22px;
    }
    .news_cards {
      grid-template-columns: 1fr;
    }
    .blog_article {
      width: calc(100% - 40px);
    }
    .news_list_layout {
      padding-block: 30px 50px;
    }
    .faq_list details {
      padding: 18px 20px;
    }
  }
  @media (max-width: 350px) {
    .wrap {
      width: calc(100% - 30px);
    }
    .home_hero_copy h1 {
      font-size: 28px !important;
    }
    .phone_mark {
      width: 26px;
      height: 26px;
    }
    .contact_panel {
      padding-inline: 15px;
    }
    .contact_phones .phone {
      font-size: 25px !important;
    }
    .outline_badge {
      width: 78px;
      height: 78px;
    }
  }
}
