@charset "utf-8";

/* Smartphone layout: loaded at 1024px and below. */
:root {
  --mobile-green: #075b53;
  --mobile-ink: #4b4242;
}

html {
  font-size: 16px;
}

body.is-mobile-menu-open {
  overflow: hidden;
}

body {
  padding-top: 71px;
}

header,
header.is-fixed,
header.is-fixed.is-visible,
header.is-fixed.is-leaving {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  height: 71px;
  transform: none;
  opacity: 1;
  animation: none;
  pointer-events: auto;
}

header > a {
  display: flex;
  align-items: center;
  height: 100%;
}

header > a:first-child img.logo {
  width: 120px;
  max-width: none;
  margin: 2px 0 0 18px;
}

.mobile_menu_button {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 103;
  display: flex;
  width: 65px;
  height: 71px;
  padding: 0;
  border: 0;
  background: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
}

.mobile_header_contact {
  position: absolute;
  top: 10px;
  right: 65px;
  z-index: 104;
  display: flex;
  width: 91px;
  height: 51px;
  border-radius: 5px;
  background: var(--mobile-green);
  color: #fff;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
}

.mobile_header_contact img {
  display: block;
  width: 19px;
  margin: 0 auto 4px;
  align-self: center;
}

.mobile_menu_button span {
  position: absolute;
  width: 33px;
  height: 2px;
  background: var(--mobile-green);
  transition:
    transform 0.3s ease,
    opacity 0.3s ease;
}

.mobile_menu_button span:nth-child(1) {
  transform: translateY(-12px);
}
.mobile_menu_button span:nth-child(3) {
  transform: translateY(12px);
}
.is-mobile-menu-open .mobile_menu_button span:nth-child(1) {
  transform: rotate(45deg);
}
.is-mobile-menu-open .mobile_menu_button span:nth-child(2) {
  opacity: 0;
}
.is-mobile-menu-open .mobile_menu_button span:nth-child(3) {
  transform: rotate(-45deg);
}

header nav {
  position: fixed;
  top: 71px;
  left: 0;
  z-index: 101;
  width: 100%;
  height: calc(100dvh - 71px);
  overflow-y: auto;
  background: var(--mobile-green);
  display: none;
}

.is-mobile-menu-open header nav {
  display: block;
  animation: mobileMenuFadeIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.is-mobile-menu-closing header nav {
  display: block;
  overflow: hidden;
  pointer-events: none;
  animation: mobileMenuFadeOut 0.42s ease both;
}

.is-mobile-menu-open header nav > ul {
  animation: mobileMenuContentIn 0.58s 0.08s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.is-mobile-menu-closing header nav > ul {
  animation: mobileMenuContentOut 0.32s ease both;
}

@keyframes mobileMenuFadeIn {
  from {
    opacity: 0;
    transform: translateY(-24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes mobileMenuFadeOut {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-24px);
  }
}

@keyframes mobileMenuContentIn {
  from {
    opacity: 0;
    transform: translateY(-18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes mobileMenuContentOut {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-14px);
  }
}

header nav > ul {
  display: block;
  height: auto;
  padding: 16px 24px 40px;
}

header nav > ul > li,
header nav > ul > li:last-child {
  position: relative;
  display: block;
  margin: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.8);
}

.mobile_submenu_toggle {
  position: absolute;
  top: 26px;
  right: 0;
  z-index: 2;
  display: block;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.mobile_submenu_toggle span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 1px;
  background: #fff;
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
}

.mobile_submenu_toggle span:last-child {
  transform: translate(-50%, -50%) rotate(90deg);
}

.has_submenu.is-submenu-open .mobile_submenu_toggle span:last-child {
  transform: translate(-50%, -50%) rotate(0);
}

header nav > ul > li > a {
  display: block;
  height: auto;
  padding: 18px 0 19px;
  color: #fff;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.2;
}

header nav > ul > li.has_submenu > a,
header nav > ul > li.has_submenu:hover > a,
header nav > ul > li.has_submenu:focus-within > a,
header nav > ul > li.has_submenu.is-submenu-open > a,
header nav > ul > li.active > a {
  color: #fff;
}

header nav > ul > li.has_submenu > .service_heading_link_pc {
  display: none;
}

header nav > ul > li.has_submenu > .service_heading_sp {
  display: block;
  padding: 18px 0 19px;
  color: #fff;
  font-family: lato, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.2;
}

header nav > ul > li.has_submenu > .service_heading_sp > span {
  display: block;
  margin-top: 6px;
  color: #fff;
  font-family: zen-kaku-gothic-new, sans-serif;
  font-size: 16px;
  font-weight: 400;
}

header nav > ul > li > a span {
  display: block;
  margin-top: 6px;
  font-size: 16px;
  color: #fff;
}

header nav > ul > li > a::after {
  display: none;
}

header nav > ul > li.has_submenu .submenu {
  position: static;
  display: none;
  width: auto;
  height: auto;
  margin: -4px 0 13px;
  padding: 0 0 0 8px;
  border: 0;
  box-shadow: none;
  background: transparent;
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}

header nav > ul > li.has_submenu.is-submenu-open .submenu {
  display: block;
}

header nav > ul > li.has_submenu .submenu li,
header nav > ul > li.has_submenu .submenu li + li {
  margin: 0;
}

header nav > ul > li.has_submenu .submenu li:first-child {
  display: none;
}

header nav > ul > li.has_submenu .submenu li.mobile_service_archive_link {
  display: block;
  margin-top: 5px;
}

header nav > ul > li.has_submenu .submenu a {
  padding: 8px 0 8px 20px;
  color: #fff;
  font-size: 15px;
  font-weight: 400;
  text-align: left;
}

header nav > ul > li.has_submenu .submenu li.active > a {
  color: #fff;
  font-size: 15px;
}

header nav > ul > li.has_submenu .submenu a::before {
  position: absolute;
  left: 0;
  top: 17px;
  width: 9px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
  content: "";
}

header nav > ul > li.has_submenu .submenu a::after {
  display: none;
}

header nav > ul > li:last-child {
  display: none;
}

.home_inner,
.home_services > .home_inner,
.home_column_inner {
  width: calc(100% - 50px);
}

.home_section {
  padding: 50px 0;
}
#lower_midashi,
.about_hero,
.sustainability_hero {
  width: 100%;
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 150;
}

#lower_midashi {
  background-image: url("/img/header_bg_sp.jpg");
  background-position: center;
  background-size: cover;
}
.lower_breadcrumb:not(.lower_breadcrumb_sp) {
  display: none;
}
.lower_breadcrumb_sp {
  display: block;
  width: calc(100% - 50px);
  margin: 0 auto;
  padding: 10px 0;
}

.lower_breadcrumb_sp ol {
  display: -webkit-box;
  overflow: hidden;
  line-height: 1.6;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  margin-bottom: 7px;
}

.lower_breadcrumb_sp li {
  display: inline;
}
.home_heading_block h2 {
  font-size: 30px;
}
.home_heading_block > p {
  margin-top: 5px;
  padding-left: 16px;
  font-size: 16px;
}
.home_heading_block > p::before {
  width: 10px;
  height: 28px;
}
.home_btn {
  width: 235px;
  height: 67px;
  margin-top: 24px;
  padding-left: 26px;
  font-size: 16px;
}
.home_btn span {
  width: 67px;
  font-size: 24px;
}

.home_hero {
  height: min(146vw, 620px);
}
.home_hero_image {
  background: #075b53;
}
.home_hero_caption {
  bottom: 35px;
  max-width: 78%;
  box-sizing: border-box;
  padding: 9px 12px 10px;
  font-size: 14px;
  line-height: 1.6;
}
.home_hero_caption span {
  display: block;
}
.home_hero_nature_content {
  top: auto;
  right: 23%;
  bottom: 35px;
  left: 7%;
  width: 53%;
}
.home_hero_nature_logo {
  width: min(330px, 76vw);
  margin-bottom: 23px;
}
.home_hero_nature_content p {
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.5;
}
.home_hero_nature_content p br {
  display: none;
}
.home_hero_nature_button {
  grid-template-columns: minmax(150px, 1fr) 68px;
  width: 100%;
  min-height: 66px;
  font-size: 15px;
}
.home_hero_nature_button > span {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding-right: 6px;
  justify-self: stretch;
  align-self: stretch;
}
.home_hero_copy {
  right: -1px;
  width: 23%;
  height: 100%;
  padding: 31px 7px;
  clip-path: polygon(0 0, 100% 0, 100% 73%);
}
.home_hero_title img {
  top: 21px;
  right: 10px;
  width: 140px;
}
.home_hero_title_white {
  clip-path: none;
}
.home_hero_title_black {
  clip-path: polygon(77% 0, 100% 0, 100% 73%);
}
.float_contant_btn {
  display: block;
  position: fixed;
  top: auto;
  right: 14px;
  bottom: 20px;
  width: 27%;
  height: auto;
  z-index: 1000;
}

.float_contant_btn picture,
.float_contant_btn img {
  height: auto;
}

.home_split_heading,
.home_services_intro,
.home_lifestyle_inner,
.home_works_intro {
  display: block;
}

.home_news {
  padding-top: 36px;
}
.home_news_body {
  padding-top: 40px;
}
.home_news_btn_pc {
  display: none;
}
.home_news_btn_sp {
  display: flex;
  margin: 33px auto -10px;
}
.home_news_tabs {
  margin-bottom: 28px;
}
.home_news_tabs button {
  flex: 1;
  padding: 0 8px 4px;
  font-size: 16px;
  white-space: nowrap;
}
.home_news_list a {
  display: grid;
  grid-template-columns: max-content max-content 1fr 18px;
  grid-template-areas:
    "date tag . arrow"
    "title title title arrow";
  column-gap: 16px;
  row-gap: 14px;
  padding: 16px 0 20px;
  align-items: center;
}
.home_news_list time {
  grid-area: date;
  font-size: 14px;
}
.home_news_list .home_tag {
  grid-area: tag;
  padding: 4px 12px;
  font-size: 12px;
}
.home_news_list strong {
  grid-area: title;
  font-size: 16px;
  line-height: 1.55;
}
.home_news_list i {
  grid-area: arrow;
  justify-self: end;
}
.home_concept {
  position: relative;
  min-height: 800px;
  height: 861px;
  display: flex;
  align-items: center;
  background: url("/img/concept_bg_sp.jpg") center/cover no-repeat;
  color: #fff;
  padding: 0;
}
.home_concept_inner {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.home_concept_text {
  width: 100%;
}
.home_concept_text > p {
  margin-top: 24px;
  font-size: 16px;
  line-height: 1.8;
}
.home_concept_diagram {
  width: 100%;
  height: auto;
}
.home_concept_btn_pc {
  display: none;
}
.home_concept_btn_sp {
  display: flex;
  align-self: center;
  margin-top: 12px;
  background: #005b52;
}

.home_service_background_sp {
  padding-bottom: 47px;
  background: url("/img/service_bg_sp.jpg") center top / cover no-repeat;
}

.home_service_background_sp .home_services,
.home_service_background_sp .home_lifestyle {
  background: none;
}

.home_services.home_section {
  padding-top: 55px;
}
.home_services_intro {
  margin-bottom: 35px;
}
.home_services_intro > div:last-child {
  display: block;
}
.home_services_intro > div:last-child p {
  width: 100%;
  margin-top: 14px;
  font-size: 16px;
  line-height: 1.8;
}
.home_service_grid {
  display: block;
}
.home_services_btn_pc {
  display: none;
}
.home_services_btn_sp {
  display: flex;
  margin: 32px auto 0;
}
.service_card {
  margin-bottom: 25px;
}
.service_card img,
.service_card_wide img {
  aspect-ratio: 342 / 164;
}
.service_card > div,
.service_card:not(.service_card_wide) > div {
  min-height: 0;
  padding: 13px 16px 20px;
}
.service_card_heading_row {
  display: block;
  margin-bottom: 8px;
}
.service_card_heading_row .service_card_categories {
  margin: 14px 0 8px !important;
}
.service_card h3,
.service_card:not(.service_card_wide) h3 {
  margin-bottom: 8px;
  font-size: 20px;
}

.service_card h3 span {
  margin-top: 5px;
  font-size: 14px;
}
.service_card_categories {
  height: auto !important;
  margin: 0 0 8px !important;
  font-size: 14px;
  line-height: 1.5;
  white-space: normal;
  initial-letter: 0.03em;
}
.home_service_break_pc {
  display: none;
}
.service_card p {
  margin-right: 0;
  font-size: 16px;
  line-height: 1.8;
}
.service_card a {
  position: relative;
  right: auto;
  bottom: auto;
  display: block;
  width: 66px;
  height: 35px;
  margin: 10px 0 0 auto;
}
.service_card a::before,
.service_card a::after {
  font-size: 23px;
}

.home_lifestyle {
  padding: 0;
}
.home_lifestyle .home_heading_block h2 {
  font-size: 30px;
}
.home_lifestyle_inner .home_heading_block span {
  width: 100%;
  margin-top: 18px;
  font-size: 16px;
  line-height: 1.8;
}
.lifestyle_cards {
  margin-top: 30px;
  gap: 30px;
}
.lifestyle_card {
  display: flex;
  min-height: 0;
  flex-direction: column;
}
.lifestyle_card img,
.lifestyle_card:not(.lifestyle_reverse) img {
  order: 2;
  height: auto;
  aspect-ratio: 342 / 184;
}
.lifestyle_card > span {
  order: 1;
  padding: 24px 22px 80px;
}
.lifestyle_card b {
  font-size: 24px;
}
.lifestyle_card small {
  margin-top: 14px;
  font-size: 16px;
  line-height: 1.8;
}
.lifestyle_card em {
  right: 18px;
  bottom: 22px;
  font-size: 14px;
}
.lifestyle_card em i {
  width: 66px;
  height: 35px;
}

.home_works {
  padding-top: 90px;
  background: linear-gradient(to bottom, transparent 0 50%, var(--mobile-green) 50% 100%);
}

.home .home_service_background_sp + .home_works {
  margin-top: -47px;
}
.home_works_intro {
  margin-bottom: 30px;
}
.home_works_intro > div:last-child > p {
  margin: 20px 0 0;
  font-size: 16px;
  line-height: 1.8;
}
.home_works_btn_pc {
  display: none;
}
.home_works_btn_sp {
  display: flex;
  margin: 0 auto -10px;
  background: #fff;
  color: var(--mobile-green) !important;
}
.home_works_btn_sp span {
  border-left-color: rgba(0, 97, 88, 0.25);
}
.home_works_btn_sp span::after {
  color: var(--mobile-green);
}
.home_works_strip {
  padding: 0 0 80px 24px;
}
.home_works_strip h3 {
  margin-top: 15px;
  font-size: 20px;
}
.home_works_strip b {
  display: -webkit-box;
  overflow: hidden;
  font-size: 16px;
  line-height: 1.8;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.home_works_strip .home_works_body {
  min-height: 150px;
  padding-top: 9px;
}
.home_works_strip .home_works_meta {
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.home_works_controls {
  right: auto;
  left: 50%;
  bottom: 25px;
  transform: translateX(-50%);
}

.home_works_strip small {
  font:
    400 14px,
    sans-serif;
  letter-spacing: 0.1em;
}
.home_works_strip .home_works_meta em {
  position: relative;
  font-style: normal;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.08em;
  padding-right: 20px;
}
.home_works_strip .home_works_meta em::after {
  position: absolute;
  top: 30%;
  right: 0;
  content: "";
  width: 13px;
  height: 13px;
  background-image: url(/img/detail_arw.png);
  background-size: cover;
}
.home_column.home_section {
  padding: 55px 0;
}
.home_column_heading {
  text-align: left;
}
.home_column_intro {
  display: block;
  margin-top: 15px;
}
.home_column_logo {
  justify-content: flex-start;
  width: 75%;
}
.home_column_copy {
  padding-top: 18px;
}
.home_column_copy > p {
  font-size: 16px;
  line-height: 1.8;
}
.home_column_copy .home_btn {
  margin: 22px 0 0;
}
.home_column_copy .home_column_btn_pc {
  display: none;
}
.home_column_btn_sp {
  display: flex;
  margin: 30px auto 0;
}
.column_slider_wrap {
  margin: 35px -25px 0 0;
}
.column_cards article {
  min-height: 280px;
}
.column_cards time {
  display: block;
  margin-top: 16px;
  color: #8a837f;
  font:
    400 14px lato,
    sans-serif;
}

.column_cards h3 {
  display: -webkit-box;
  overflow: hidden;
  font-size: 16px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.column_slider_controls {
  justify-content: center;
  margin-top: 10px;
  margin-left: -25px;
  padding-right: 0;
}

.home_recruit {
  display: flex;
  height: auto;
  margin: 0;
  flex-wrap: wrap;
}
.home_recruit_break_pc {
  display: none;
}
.recruit_center {
  order: 1;
  width: 100%;
  padding: 45px 20px 30px;
}
.recruit_center > p {
  width: 230px;
}
.recruit_center h2 {
  margin: 25px 0;
  font-size: 20px;
  line-height: 1.8;
}
.recruit_center span {
  font-size: 16px;
  line-height: 1.8;
  text-align: left;
  font-weight: 400;
}
.recruit_center > a {
  width: 80%;
  height: 72px;
  margin-top: 24px;
  margin-bottom: 20px;
  padding: 20px 25px;
  font-size: 16px;
}
.recruit_tile {
  display: none;
}
.home_recruit_image_sp {
  order: 2;
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 47px;
}

#contact_bnr {
  margin: 20px 58px;
}
#contact_bnr img.bg {
  display: block;
  width: 100%;
  border-radius: 4px;
}
#contact_bnr a {
  top: auto;
  right: 12px;
  bottom: -18px;
  width: 158px;
  height: 54px;
  border-radius: 4px;
  font-size: 13px;
  line-height: 1.4;
}
#contact_bnr a p {
  top: 50%;
  left: 16px;
  width: auto;
  margin: 0;
  transform: translateY(-50%);
}
#contact_bnr .arw_box {
  top: 50%;
  right: 10px;
  width: 43px;
  height: 24px;
  transform: translateY(-50%);
}
#contact_bnr .arw_box img {
  width: 30%;
}

#contact_bnr.contact_bnr_home {
  margin: 0;
}
#contact_bnr.contact_bnr_home img.bg {
  border-radius: 0;
}
#contact_bnr.contact_bnr_home .contact_bnr_link_pc {
  display: none;
}
#contact_bnr.contact_bnr_home .contact_bnr_sp_link {
  display: block;
  border-radius: 0;
  background: transparent;
}
#contact_bnr.contact_bnr_home .contact_bnr_tel_sp {
  inset: 48.7% auto auto 12.3%;
  width: 75.4%;
  height: 19.5%;
}
#contact_bnr.contact_bnr_home .contact_bnr_mail_sp {
  inset: 72.7% auto auto 12.3%;
  width: 75.4%;
  height: 17.3%;
}
#contact_bnr.contact_bnr_home .contact_bnr_sp_link:hover {
  background-color: transparent;
}
#contact_bnr.contact_bnr_home .contact_bnr_link_pc {
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
  background-color: transparent;
}
#contact_bnr.contact_bnr_home .contact_bnr_link_pc:hover {
  border-color: transparent;
  background-color: transparent;
}
#contact_bnr.contact_bnr_home .contact_bnr_link_pc p,
#contact_bnr.contact_bnr_home .arw_box {
  display: none;
}

/* Flower shop page */
.shop_page {
  padding-top: 0;
  overflow: hidden;
}
.shop_page .shop_inner,
.shop_page .shop_inner.bv {
  width: calc(100% - 50px);
}
.shop_page .shop_intro {
  padding: 41px 0 50px;
  text-align: left;
}
.shop_page .shop_intro_lead {
  margin-bottom: 14px;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
.shop_page .shop_intro_lead br {
  display: none;
}
.shop_page .shop_intro > p:last-child {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.shop_page .shop_contents {
  height: auto;
  padding: 30px 15px 35px;
}
.shop_page .shop_contents > span {
  margin-bottom: 30px;
  font-size: 20px;
}
.shop_page .shop_contents a {
  padding: 0 18px;
  font-size: 16px;
  line-height: 1.3;
}
.shop_page .shop_brand {
  padding-top: 40px;
}
.shop_page .shop_brand_visual {
  width: 100%;
  height: auto;
  aspect-ratio: 342 / 210;
  object-fit: cover;
  border-radius: 4px;
}
.shop_page .shop_brand_about {
  display: block;
  padding-top: 30px;
  padding-bottom: 40px;
}
.shop_page .shop_brand_about > div:first-child {
  max-width: none;
}
.shop_page .shop_brand_about h2 {
  font-size: 30px;
  line-height: 1.3;
}
.shop_page .shop_kicker {
  margin: 8px 0 20px;
  padding-left: 20px;
  font-size: 16px;
}
.shop_page .shop_kicker::before {
  width: 10px;
  height: 28px;
}
.shop_page .shop_brand_about p {
  font-size: 16px;
  line-height: 1.8;
}
.shop_page .shop_brand_logos,
.shop_page .shop_reconnel .shop_brand_logos {
  right: auto;
  display: block;
  height: auto;
  margin-top: 28px;
  padding: 0;
}
.shop_page .shop_brand_logos b,
.shop_page .shop_brand_logos.recconnel b {
  display: block;
  width: 100%;
  height: 115px;
  margin-top: 17px;
}
.shop_page .shop_brand_logos b img {
  width: auto;
  height: 100%;
  object-fit: contain;
}
.shop_page .shop_brand_logos b span {
  top: 50%;
  right: 13%;
  max-width: 70%;
  font-size: 16px;
  line-height: 1.8;
  transform: translateY(-50%);
}
.shop_page #hibiya .shop_brand_logos b:nth-child(2) span {
  right: 5%;
}
.shop_page #reconnel .shop_brand_logos b span {
  right: 10%;
}

.shop_page .shop_list_heading {
  width: calc(100% - 50px);
  max-width: none;
  margin: 0 auto -83px;
  padding: 28px 15px 12px;
}
.shop_page .shop_list_heading h3 {
  font-size: 30px;
}
.shop_page .shop_list_heading p {
  width: 95px;
  margin-bottom: 18px;
  font-size: 16px;
  padding-left: 10px;
  white-space: nowrap;
}
.shop_page .shop_list_heading p::before {
  width: 10px;
  height: 28px;
}
.shop_page .shop_list_heading > span {
  font-size: 16px;
  line-height: 1.8;
}
.shop_page #hibiya .shop_list_heading > span {
  display: block;
  text-align: left;
}
.shop_page #reconnel .shop_list_heading > span {
  display: block;
  text-align: left;
}
.shop_page .shop_list_bg {
  padding: 65px 0 70px;
  background: linear-gradient(to bottom, transparent 0 82%, #fff 82% 100%), linear-gradient(90deg, #f7f3ea 0%, #eef6f0 100%);
}
.shop_page .shop_area_map {
  width: 100%;
  margin: 55px auto 40px;
  overflow: hidden;
}
.shop_page .shop_area_map img {
  width: 98%;
  max-width: none;
  margin-left: 0;
}
.shop_page .shop_area_map .area_map_illust {
  display: none;
}
.shop_page .shop_grid {
  display: grid;
  width: calc(100% - 50px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 20px;
}
.shop_page .shop_grid article {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto 1fr auto;
  grid-template-areas:
    "image"
    "title"
    "caption"
    "link";
  align-content: start;
}
.shop_page .shop_grid img {
  grid-area: image;
  width: 100%;
  height: auto;
  aspect-ratio: 160 / 104;
  object-fit: cover;
}
.shop_page .shop_grid h4 {
  grid-area: title;
  margin: 10px 0 5px;
  padding-right: 4px;
  font-size: 18px;
  line-height: 1.5;
}
.shop_page .shop_grid a {
  position: static;
  grid-area: link;
  align-self: end;
  justify-self: end;
  margin: 10px 0 2px;
  font-size: 14px;
  white-space: nowrap;
}
.shop_page .shop_grid a::after {
  width: 13px;
  height: 13px;
  margin: 0 0 2px 3px;
  background-size: 8px;
}
.shop_page .shop_grid small {
  grid-area: caption;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}
.shop_page .shop_reconnel {
  padding-top: 0;
}
.shop_page .shop_reconnel .shop_brand_about {
  padding-bottom: 36px;
}
.shop_page .reconnel_list {
  padding: 118px 0 45px;
}
.shop_page .reconnel_grid {
  display: block;
  width: calc(100% - 50px);
  margin-bottom: 0;
}
.shop_page .reconnel_grid article + article {
  margin-top: 45px;
}
.shop_page .reconnel_grid img,
.shop_page .reconnel_grid iframe {
  height: auto;
  aspect-ratio: 342 / 211;
}
.shop_page .reconnel_grid h4 {
  margin: 18px 0 12px;
  font-size: 20px;
  line-height: 1.8;
}
.shop_page .reconnel_grid p {
  margin-left: 0;
  font-size: 16px;
  line-height: 1.8;
}
.shop_page .reconnel_address_break_pc {
  display: none;
}
.shop_page .reconnel_grid .tag {
  gap: 10px;
  padding-bottom: 25px;
}
.shop_page .reconnel_grid .tag span {
  height: 25px;
  padding: 0 10px;
  font-size: 14px;
  line-height: 25px;
}
.shop_page .reconnel_grid iframe {
  width: 100%;
  height: 220px;
}
.shop_page .shop_service {
  width: calc(100% - 50px);
  padding: 40px 0 50px;
}
.shop_page .shop_service .shop_list_heading {
  width: 100%;
  margin-bottom: 30px;
  padding: 0;
}
.shop_page .shop_service .shop_list_heading p {
  width: 150px;
  padding-left: 20px;
}

.shop_page .shop_service_grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.shop_page .shop_service_grid img {
  width: 100%;
  height: auto;
}

/*ランドフローラについて*/
.about_message {
  margin-top: 20px;
  padding: 0;
}

/* About page */
.about_page {
  margin-bottom: 0;
  overflow: hidden;
}
.about_page .about_inner {
  width: calc(100% - 50px);
}
.about_page .about_message.about_inner {
  width: 100%;
  margin-top: 0;
  padding: 38px 0 50px;
}
.about_page .about_lead {
  position: relative;
  top: auto;
  left: auto;
  z-index: auto;
  width: calc(100% - 50px);
  height: auto;
  margin: 30px auto 25px;
  transform: none;
  animation: none;
  text-align: left;
}
.about_page .about_lead img {
  width: 95%;
  margin: 0;
}
.about_page .about_message_grid {
  display: grid;
  width: 100%;
  grid-template-columns: 18fr 27fr 5fr 43fr 7fr;
  grid-template-rows: auto auto 100px 110px 30px 95px 30px;
  gap: 0;
  margin-bottom: -40px;
}
.about_page .about_message_text {
  display: block;
  width: calc(100% - 50px);
  margin: 16px auto 20px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  white-space: normal;
  letter-spacing: 0.03em;
}
.about_page .about_message_text:first-of-type {
  grid-column: 1 / -1;
  grid-row: 1;
}
.about_page .about_message_text:first-of-type br {
  display: none;
}
.about_page .about_message_break_pc {
  display: none;
}
.about_page .about_message_text_bottom {
  grid-column: 1 / -1;
  grid-row: 2;
  margin-bottom: 28px;
}
.about_page .about_message_grid > img {
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: cover;
}
.about_page .about_message_grid > img[src="/img/about_01.jpg"] {
  position: relative;
  z-index: 2;
  grid-column: 1 / 3;
  grid-row: 4 / 7;
  height: 100%;
  aspect-ratio: auto;
}
.about_page .about_message_grid > img[src="/img/about_02.jpg"] {
  position: relative;
  top: -10px;
  grid-column: 4 / 5;
  grid-row: 6 / 8;
  height: 100%;
  aspect-ratio: auto;
}
.about_page .about_message_grid > img[src="/img/about_03.jpg"] {
  grid-column: 2 / 6;
  grid-row: 3 / 5;
  height: 100%;
  aspect-ratio: auto;
}
.about_page > section.about_movie,
.about_page > section.about_movie > video.about_movie {
  width: 100%;
  height: auto;
  aspect-ratio: 390 / 146;
  object-fit: cover;
}
.about_page .about_vision {
  padding: 48px 0;
  background: linear-gradient(to bottom, transparent 0 calc(100% - 330px), #fff calc(100% - 330px) 100%), linear-gradient(to bottom left, #f7f2e9 0%, #eef7f1 100%);
}
.about_page .about_vision_intro,
.about_page .about_core_intro {
  display: block;
}
.about_page .about_section_heading h2 {
  font-size: 30px;
}
.about_page .about_section_heading p {
  margin-top: 5px;
  padding-left: 20px;
  font-size: 16px;
  letter-spacing: 0.03em;
}
.about_page .about_section_heading p::before {
  width: 10px;
  height: 28px;
}
.about_page .about_vision_intro h3 {
  margin: 18px 0 18px;
  font-size: 24px;
  line-height: 1.8;
}
.about_page .about_vision_intro > div:last-child > p,
.about_page .about_core_intro > p {
  font-size: 16px;
  line-height: 1.8;
}
.about_page .about_core_cards.about_inner {
  display: block;
  width: calc(100% - 50px) !important;
  margin-top: 23px;
}
.about_page .about_core_cards article {
  width: 100%;
  margin-top: 18px;
  aspect-ratio: 342 / 144;
}
.about_page .about_core_cards img {
  object-position: center 48%;
}
.about_page .about_core_cards span {
  bottom: 16px;
  left: 20px;
  font-size: 30px;
}
.about_page .about_core_cards span small {
  margin-top: 5px;
  font-size: 16px;
}
.about_page .about_core_break_pc {
  display: none;
}
.about_page .about_core_intro {
  margin-top: 42px;
}
.about_page .about_core_intro > p {
  margin-top: 24px;
}
.about_page .about_strengths {
  padding: 50px 0;
  background-position: center top;
}
.about_page .about_strengths_inner {
  display: block;
}
.about_page .about_section_heading_light h2 {
  font-size: 30px;
}
.about_page .about_section_heading_light span {
  margin-top: 17px;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
.about_page .about_strengths ol {
  position: static;
  width: 100%;
  margin-top: 33px;
  padding: 15px 22px 30px;
  border-radius: 3px;
}
.about_page .about_strengths li {
  display: block;
  padding: 15px 0 10px;
}
.about_page .about_strengths li:last-child {
  padding: 15px 0 0;
}
.about_page .about_strengths li b {
  display: block;
  width: 45px;
  height: auto;
  margin-bottom: 12px;
  padding-bottom: 10px;
}
.about_page .about_strengths li b img {
  display: block;
  width: 40px;
}
.about_page .about_strengths li b::after {
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 4px;
  background: linear-gradient(to right, #6bdddf 0%, #129083 100%);
}
.about_page .about_strengths li span {
  display: block;
  padding-left: 0;
  font-size: 16px;
  line-height: 1.8;
}
.about_page .about_strengths li strong {
  margin-bottom: 5px;
  font-size: 20px;
  line-height: 1.8;
}
.about_page .about_what_we_do {
  padding-top: 50px;
  padding-bottom: 4px;
}
.about_page .about_what_we_do p.left {
  position: static;
  left: auto;
}
.about_page .about_what_we_do p.left br {
  display: none;
}
.about_page .about_what_we_do .home_services_btn_sp {
  position: relative;
  top: 8px;
  right: auto;
  display: flex;
  margin: 20px auto 0;
}
.about_page .home_lifestyle {
  padding: 50px 0 0;
}
.about_page .about_lifestyle_break_pc {
  display: none;
}
.about_page .home_works {
  padding-top: 55px;
}
.about_hero h1 {
  font-size: 30px;
  letter-spacing: 0.003em;
  white-space: nowrap;
}
.about_hero p {
  margin-top: 4px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
}

/*footer*/
footer {
  position: relative;
  min-height: 0;
  padding: 44px 0 30px;
}
.footer_inner {
  width: calc(100% - 40px);
}
.footer_main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 26px;
  margin-bottom: 26px;
}
.footer_brand {
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  width: 100%;
  min-height: 170px;
  padding-bottom: 35px;
  border-bottom: 1px solid #d8d2ce;
  align-items: start;
}
.footer_logo {
  padding-top: 0;
}
.footer_logo img {
  width: 136px;
}
.footer_contact {
  width: 100%;
  height: 130px;
  margin: 0;
  flex-direction: column;
  gap: 11px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
}
.footer_contact span {
  max-width: 150px;
  line-height: 1.5;
}
.footer_contact::before {
  flex-basis: 22px;
  width: 27px;
  height: 22px;
}
.footer_instagram {
  position: absolute;
  right: 18px;
  bottom: 31px;
  margin: 0;
  gap: 9px;
  font-size: 12px;
}
.footer_instagram_icon {
  width: 29px;
  height: 29px;
}
.footer_main > .footer_accordion_item:nth-child(2) {
  grid-column: 1;
  grid-row: 2;
}
.footer_main > .footer_services_column {
  display: contents;
}
.footer_main > .footer_services_column > .footer_link_group:first-child {
  grid-column: 2;
  grid-row: 2;
}
.footer_main > .footer_services_column > .footer_works {
  grid-column: 1;
  grid-row: 3;
}
.footer_lifestyle {
  grid-column: 2;
  grid-row: 3;
  display: block;
}
.footer_link_group + .footer_link_group {
  margin-top: 0;
}
.footer_accordion_item {
  padding: 30px 0 0;
}
.footer_accordion_toggle {
  position: relative;
  z-index: 5;
  display: flex;
  width: 100%;
  padding: 0 24px 0 0;
  border: 0;
  background: transparent;
  color: #221815;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  font-size: 16px;
  font-weight: 400;
  text-align: left;
  pointer-events: auto;
  cursor: pointer;
}
.footer_accordion_toggle i {
  position: relative;
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  align-self: flex-start;
  margin: 1px 0 0 auto;
}
.footer_accordion_heading b {
  font-size: 20px;
  font-weight: 300;
}
.footer_accordion_heading small {
  margin-top: 7px;
  font-size: 16px;
  line-height: 1.55;
}
.sp_only {
  display: block;
}

.service_card h3 .sp_hide {
  display: none;
}

/* Services top page */
.service_page {
  padding-top: 0;
  margin-bottom: 0;
}

.service_page .shop_intro {
  width: calc(100% - 50px);
  margin: 0 auto;
  padding: 48px 0 58px;
  text-align: left;
}

.service_page .shop_intro_lead {
  margin-bottom: 24px;
  font-size: 24px;
  line-height: 1.65;
  letter-spacing: 0.04em;
}

.service_page .shop_intro_lead br {
  display: none;
}

.service_page .shop_intro > p:last-child {
  font-size: 16px;
  line-height: 1.9;
}

.service_page .shop_intro > p:last-child br {
  display: none;
}

.service_page .ourservices,
.service_page .solutions {
  margin-top: 0;
  padding-top: 0;
}

.service_page .shop_list_heading {
  width: calc(100% - 50px);
  max-width: none;
  margin: 0 auto -70px;
  padding: 0 0 30px;
}

.service_page .shop_list_heading h3 {
  font-size: 30px;
  line-height: 1.2;
}
.service_page .shop_list_heading p,
.service_page .ourservices .shop_list_heading p,
.service_page .solutions .shop_list_heading p {
  display: inline-block;
  width: auto;
  margin: 8px auto 20px;
  padding-left: 20px;
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}

.service_page .shop_list_heading p::before {
  width: 10px;
  height: 28px;
}

.service_page .shop_list_heading > span {
  display: block;
  font-size: 14px;
  line-height: 1.8;
}

.service_page .home_services.home_section {
  padding: 100px 0 50px;
}

.service_page .service_card {
  margin-bottom: 25px;
}

.service_page .service_card > div,
.service_page .service_card:not(.service_card_wide) > div {
  min-height: 0;
  padding: 13px 16px 20px;
}

.service_page .service_card_heading_row .service_card_categories {
  margin: 14px 0 8px !important;
}

.service_page .service_card h3,
.service_page .service_card:not(.service_card_wide) h3 {
  margin-bottom: 8px;
  color: #075b53;
  font-size: 20px;
}

.service_page .service_card h3 span {
  margin-top: 5px;
  font-size: 14px;
}

.service_page .service_card_categories {
  height: auto !important;
  margin: 0 0 8px !important;
  color: #075b53;
  font-size: 14px;
  line-height: 1.5;
  white-space: normal;
}

.service_page .service_card p {
  margin-right: 0;
  font-size: 16px;
  line-height: 1.8;
}

.service_page .service_card a {
  position: relative;
  right: auto;
  bottom: auto;
  display: block;
  width: 66px;
  height: 35px;
  margin: 10px 0 0 auto;
}

.service_page .service_card a::before,
.service_page .service_card a::after {
  font-size: 23px;
}

.service_page .service_page_services_btn_sp {
  display: flex;
  margin: 30px auto 0;
}

.service_page .solutions {
  padding-top: 10px;
  background: #fff;
}

.service_page .solutions .shop_list_heading {
  padding-bottom: 28px;
}
.service_page .solutions .shop_list_heading p {
  font-size: 16px;
}
.service_page .solutions .shop_list_heading > span {
  text-align: left;
  padding: 0 20px;
  font-size: 16px;
  line-height: 1.8;
}

.service_page .solutions .shop_list_heading > span br {
  display: none;
}

.service_page .solutions_section {
  margin-top: -100px;
  margin-bottom: -50px;
  padding: 125px 25px 45px;
  background: linear-gradient(135deg, #f7f2e9 0%, #eef7f1 100%);
}

.service_page .solutions_chart {
  display: grid;
  width: 100%;
  max-width: none;
  gap: 15px;
  grid-template-columns: 1fr;
}

.service_page .solutions_chart a {
  display: block;
  width: 100%;
  /*  border: 1px solid rgba(7, 91, 83, 0.45);
  background: #fff;*/
}

.service_page .solutions_chart a img {
  display: block;
  width: 100%;
  height: auto;
}

/* Green solutions page */
html:has(.service_page .gs_services) {
  scroll-padding-top: 80px;
}

.service_page:has(.gs_services) .shop_intro {
  padding-bottom: 42px;
}

.service_page:has(.gs_services) .shop_intro_lead {
  font-size: 24px;
  line-height: 1.8;
}

.service_page:has(.gs_services) .shop_intro_lead .gs_intro_break_sp {
  display: block;
}

.service_page:has(.gs_services) .shop_intro picture {
  display: block;
}

.service_page:has(.gs_services) .gs_chart {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 30px auto 0;
}

.service_page:has(.gs_services) .gs_contents {
  height: auto;
  padding: 32px 25px 40px;
}

.service_page:has(.gs_services) .gs_contents > span {
  margin-bottom: 18px;
  font-size: 20px;
}

.service_page:has(.gs_services) .gs_contents_inner {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 0;
  margin-top: 30px;
}

.service_page:has(.gs_services) .gs_contents a,
.service_page:has(.gs_services) .gs_contents a:first-child {
  min-width: 0;
  padding: 2px 3px 3px;
  border: 0;
  border-left: 1px solid #d5d0ca;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.5;
}

.service_page:has(.gs_services) .gs_contents a:nth-child(even) {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.gs_services) .gs_inner {
  width: calc(100% - 50px);
  margin-inline: auto;
}

.service_page:has(.gs_services) .gs_service {
  padding-top: 48px;
  padding-bottom: 48px;
  scroll-margin-top: 80px !important;
}

.service_page:has(.gs_services) .gs_service h2 {
  margin-bottom: 18px;
  padding: 0 0 5px 24px;
  font-size: 24px;
  line-height: 1.35;
}

.service_page:has(.gs_services) .gs_service h2::before {
  top: 1px;
  bottom: 1px;
  width: 7px;
  opacity: 0.75;
}

.service_page:has(.gs_services) .gs_service h2 small {
  margin: 4px 0 0;
  font-size: 14px;
  letter-spacing: 0.01em;
}

.service_page:has(.gs_services) .gs_service p {
  font-size: 16px;
  line-height: 1.8;
}

/*.service_page:has(.gs_services) .gs_service p br {
  display: none;
}*/

.service_page:has(.gs_services) .gs_service_indoor {
  display: block;
}

.service_page:has(.gs_services) .gs_indoor_gallery {
  display: grid;
  margin-top: 24px;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 13px;
}

.service_page:has(.gs_services) .gs_indoor_gallery img {
  width: 100%;
  height: auto;
  aspect-ratio: 1.55 / 1;
}

.service_page:has(.gs_services) .gs_service_landscape {
  padding: 0;
}
.service_page:has(.gs_services) .gs_service_maintenance {
  padding: 0;
  margin-bottom: -47px;
}
.service_page:has(.gs_services) .gs_service_maintenance h2 {
  margin-bottom: 0;
}
.service_page:has(.gs_services) .gs_landscape_inner {
  display: flex;
  width: calc(100% - 50px);
  padding-top: 48px;
  padding-bottom: 48px;
  flex-direction: column;
  align-items: stretch;
  gap: 24px;
}

.service_page:has(.gs_services) .gs_landscape_inner > img {
  order: 2;
  width: 100%;
  height: auto;
  aspect-ratio: 325 / 205;
}

.service_page:has(.gs_services) .gs_landscape_inner .gs_service_copy {
  display: contents;
}

.service_page:has(.gs_services) .gs_landscape_inner h2,
.service_page:has(.gs_services) .gs_landscape_inner p {
  order: 1;
}

.service_page:has(.gs_services) .gs_landscape_inner .gs_more {
  order: 3;
  align-self: flex-start;
}

.service_page:has(.gs_services) .gs_more {
  width: 235px;
  height: 67px;
  margin: 10px auto 0;
  padding-left: 22px;
  line-height: 1.62;
  font-size: 16px;
  letter-spacing: 0.05em;
}
.service_page:has(.gs_services) .gs_more.large {
  width: 245px;
}

.service_page:has(.gs_services) .gs_more span {
  width: 67px;
}

.service_page:has(.gs_services) .gs_more .gs_more_break_sp {
  display: block;
}

.service_page:has(.gs_services) .gs_service_rooftop,
.service_page:has(.gs_services) .gs_service_wall {
  min-height: 0;
  border-bottom: none;
  margin-bottom: -50px;
}
.service_page:has(.gs_services) .gs_service_rental {
  min-height: 0;
  border-bottom: none;
  margin-bottom: 0;
}

.service_page:has(.gs_services) .gs_service_heading_row {
  display: block;
  margin-bottom: 24px;
}

.service_page:has(.gs_services) .gs_wide_image {
  width: 100%;
  height: auto;
  aspect-ratio: 325 / 205;
}

.service_page:has(.gs_services) .gs_two_images {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}

.service_page:has(.gs_services) .gs_two_images img {
  width: 100%;
  height: auto;
}

.service_page:has(.gs_services) .gs_service_rental .gs_service_copy {
  width: 100%;
}

.service_page:has(.gs_services) .gs_rental_images {
  position: static;
  display: grid;
  width: 100%;
  margin-top: 24px;
  grid-template-columns: 1fr;
  gap: 15px;
}

.service_page:has(.gs_services) .gs_rental_images img:first-child,
.service_page:has(.gs_services) .gs_rental_images img:last-child {
  width: 100%;
  height: auto;
  margin: 0;
  aspect-ratio: auto;
}

.service_page:has(.gs_services) .gs_maintenance_inner {
  display: grid;
  width: calc(100% - 50px);
  padding-top: 48px;
  padding-bottom: 48pxs;
  grid-template-columns: 1fr;
  gap: 24px;
}

.service_page:has(.gs_services) .gs_maintenance_inner .gs_service_copy {
  display: contents;
}

.service_page:has(.gs_services) .gs_maintenance_inner h2,
.service_page:has(.gs_services) .gs_maintenance_inner p {
  order: 1;
}

.service_page:has(.gs_services) .gs_maintenance_inner > img {
  position: static;
  order: 2;
  width: 100%;
  height: auto;
}

.service_page:has(.gs_services) .gs_maintenance_inner .gs_more {
  order: 3;
}

/* Landscape modal on the Green solutions page */
body:has(.service_page .gs_services) .gs_modal {
  padding: 38px 20px;
}

body:has(.service_page .gs_services) .gs_modal_backdrop {
  background: rgba(214, 214, 214, 0.94);
}

body:has(.service_page .gs_services) .gs_modal_panel {
  width: 100%;
  max-width: 440px;
  height: calc(100dvh - 76px);
  padding: 55px 22px 50px;
}

body:has(.service_page .gs_services) .gs_modal_close {
  position: sticky;
  top: -45px;
  right: auto;
  z-index: 3;
  width: 38px;
  height: 38px;
  margin: -45px -10px 12px auto;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  font-size: 32px;
}

body:has(.service_page .gs_services) .gs_modal_content {
  width: 100%;
  max-width: none;
}

body:has(.service_page .gs_services) .gs_modal_intro {
  display: block;
  width: 100%;
  margin: 0;
}

body:has(.service_page .gs_services) .gs_modal_intro h2 {
  margin-bottom: 24px;
  padding-left: 17px;
  font-size: 22px;
  line-height: 1.35;
}

body:has(.service_page .gs_services) .gs_modal_intro h2::before {
  width: 5px;
}

body:has(.service_page .gs_services) .gs_modal_intro h2 small {
  margin-top: 6px;
  font-size: 12px;
}

body:has(.service_page .gs_services) .gs_modal_intro p,
body:has(.service_page .gs_services) .gs_modal_example_text p,
body:has(.service_page .gs_services) .gs_modal_lead {
  font-size: 14px;
  line-height: 1.9;
}

body:has(.service_page .gs_services) .gs_modal_intro p br {
  display: none;
}

body:has(.service_page .gs_services) .gs_modal_benefits {
  display: none;
  min-height: 0;
  margin-top: 28px;
  padding: 20px 10px 18px;
  background: linear-gradient(110deg, #f7f2e9, #eff6f0);
}

body:has(.service_page .gs_services) .gs_modal_benefits_sp {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 28px;
}

body:has(.service_page .gs_services) .gs_modal_benefits h3 {
  margin-bottom: 14px;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  white-space: nowrap;
}

body:has(.service_page .gs_services) .gs_modal_benefits h3 br {
  display: none;
}

body:has(.service_page .gs_services) .gs_modal_benefits ul {
  display: flex;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  flex-wrap: wrap;
  justify-content: center;
}

body:has(.service_page .gs_services) .gs_modal_benefits li,
body:has(.service_page .gs_services) .gs_modal_benefits li:nth-child(n) {
  position: static;
  width: 33.333%;
  max-width: 94px;
  margin: 0 -1px -1px 0;
  font-size: 12px;
  line-height: 1.55;
}

body:has(.service_page .gs_services) .gs_modal_examples {
  display: flex;
  width: 100%;
  max-width: none;
  margin: 28px 0 0;
  flex-direction: column;
  gap: 18px;
}

body:has(.service_page .gs_services) .gs_modal_lead {
  order: 1;
  width: 100%;
  padding: 0;
}

body:has(.service_page .gs_services) .gs_modal_example,
body:has(.service_page .gs_services) .gs_modal_example_left,
body:has(.service_page .gs_services) .gs_modal_example_right,
body:has(.service_page .gs_services) .gs_modal_example_tall {
  position: static;
  top: auto;
  width: 100%;
  margin: 0;
}

body:has(.service_page .gs_services) .gs_photo_credit {
  font-size: 14px;
}

body:has(.service_page .gs_services) .gs_modal_example_right {
  order: 3;
}

body:has(.service_page .gs_services) .gs_modal_example_left {
  order: 2;
}

body:has(.service_page .gs_services) .gs_modal_example_tall {
  order: 4;
}

body:has(.service_page .gs_services) .gs_modal_example img,
body:has(.service_page .gs_services) .gs_modal_example_tall img {
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: 325 / 205;
  object-fit: cover;
}

body:has(.service_page .gs_services) .gs_modal_example_tall img {
  object-position: center 46%;
}

body:has(.service_page .gs_services) .gs_modal_example figcaption {
  display: none;
}

body:has(.service_page .gs_services) .gs_modal_example_text {
  order: 5;
  padding: 0;
}

body:has(.service_page .gs_services) .gs_modal_example_text h3 {
  margin: 0 0 10px;
  font-size: 16px;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_lead {
  order: 1;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_right:not(.gs_modal_example_tall) {
  order: 2;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_left {
  order: 3;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 325 / 205;
  object-fit: cover;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_image_04 {
  order: 4;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_image_05 {
  order: 5;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_tall {
  order: 6;
  width: 100%;
}

body:has(.service_page .gs_services) .gs_modal_examples_landscape .gs_modal_example_text {
  order: 7;
  margin: 0;
}

/* Space decoration page */
body:has(.service_page .sd_deco) .about_hero.space_deco h1 {
  font-size: 22px;
  line-height: 1.25;
}

.service_page:has(.sd_deco) .shop_intro {
  padding-bottom: 42px;
}

.service_page:has(.sd_deco) .shop_intro_lead {
  font-size: 22px;
  line-height: 1.6;
}

.service_page:has(.sd_deco) .gs_contents_inner a:last-child {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.sd_deco) .gs_contents_inner a {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.service_page:has(.sd_deco) .gs_contents_inner .sd_contents_break_sp {
  display: block;
}

.service_page:has(.sd_deco) .gs_contents_inner a:last-child {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.sd_deco) .sd_deco_intro,
.service_page:has(.sd_deco) .sd_deco_live,
.service_page:has(.sd_deco) .sd_deco_artificial,
.service_page:has(.sd_deco) .illumination_copy,
.service_page:has(.sd_deco) .sd_promotion_intro,
.service_page:has(.sd_deco) .sd_promotion_works_intro {
  display: block;
  margin: 0;
}

.service_page:has(.sd_deco) .sd_deco_intro {
  margin-bottom: 42px;
}

.service_page:has(.sd_deco) .sd_deco_intro p,
.service_page:has(.sd_deco) .sd_deco_text p,
.service_page:has(.sd_deco) .sd_deco_examples p,
.service_page:has(.sd_deco) .illumination_copy p,
.service_page:has(.sd_deco) .sd_service_experience p,
.service_page:has(.sd_deco) .sd_promotion_intro > p,
.service_page:has(.sd_deco) .sd_promotion_works_intro > p,
.service_page:has(.sd_deco) .sales_inner p {
  max-width: none;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.sd_deco) .sd_deco_intro .sd_intro_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_deco_live .sd_live_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_deco_artificial .sd_artificial_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_deco_text {
  padding: 0;
}

.service_page:has(.sd_deco) .sd_deco_text h3,
.service_page:has(.sd_deco) .sd_deco_examples h3,
.service_page:has(.sd_deco) .gs_seasonal_inner h3,
.service_page:has(.sd_deco) .tree_illumi h3,
.service_page:has(.sd_deco) .sd_service_experience h3,
.service_page:has(.sd_deco) .sd_promotion_works_intro h3,
.service_page:has(.sd_deco) .work_shop_inner h3,
.service_page:has(.sd_deco) .sales_inner h3 {
  margin: 0 0 14px;
  color: #075b53;
  font-size: 20px;
  line-height: 1.8;
}

.service_page:has(.sd_deco) .sd_deco_text h3 small,
.service_page:has(.sd_deco) .sd_deco_examples h3 small,
.service_page:has(.sd_deco) .gs_seasonal_inner h3 small,
.service_page:has(.sd_deco) .tree_illumi h3 small,
.service_page:has(.sd_deco) .sd_service_experience h3 small,
.service_page:has(.sd_deco) .sd_promotion_works_intro h3 small,
.service_page:has(.sd_deco) .work_shop_inner h3 small,
.service_page:has(.sd_deco) .sales_inner h3 small {
  display: block;
  margin: 5px 0 0;
  font-size: 14px;
}

.service_page:has(.sd_deco) .sd_deco_live {
  margin-bottom: 48px;
}

.service_page:has(.sd_deco) .sd_deco_live > img {
  width: 100%;
  height: auto;
  margin-top: 22px;
}

.service_page:has(.sd_deco) .sd_deco_artificial {
  display: grid;
  margin-bottom: 40px;
  grid-template-columns: 1fr;
  row-gap: 26px;
}

.service_page:has(.sd_deco) .sd_deco_artificial_main {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  height: auto;
}

.service_page:has(.sd_deco) .sd_deco_artificial_side {
  display: contents;
}

.service_page:has(.sd_deco) .sd_deco_artificial_side .sd_deco_text {
  grid-column: 1;
  grid-row: 1;
}

.service_page:has(.sd_deco) .sd_deco_artificial_side > img {
  grid-column: 1;
  grid-row: 3;
  width: 100%;
  height: auto;
}

.service_page:has(.sd_deco) .sd_deco_examples {
  display: grid;
  margin-top: 45px;
  grid-template-columns: 1fr;
  gap: 42px;
}

.service_page:has(.sd_deco) .sd_deco_examples article > img {
  width: 100%;
  height: auto;
  margin-bottom: 16px;
}

.service_page:has(.sd_deco) .sd_seasonal {
  padding: 0;
}

.service_page:has(.sd_deco) .gs_seasonal_inner {
  display: flex;
  width: calc(100% - 50px);
  padding-top: 48px;
  padding-bottom: 48px;
  flex-direction: column;
  gap: 0;
}

.service_page:has(.sd_deco) .gs_seasonal_inner .gs_service_copy {
  display: contents;
}

.service_page:has(.sd_deco) .gs_seasonal_inner h3,
.service_page:has(.sd_deco) .gs_seasonal_inner p {
  order: 1;
}

.service_page:has(.sd_deco) .gs_seasonal_inner p {
  margin-top: 11px;
}

.service_page:has(.sd_deco) .gs_seasonal_inner .sd_seasonal_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .gs_seasonal_inner h3 {
  width: 100%;
  margin-bottom: 0;
  font-size: 24px;
  text-align: left;
}

.service_page:has(.sd_deco) .gs_seasonal_inner h3 small {
  margin-top: 0;
}

.service_page:has(.sd_deco) .gs_seasonal_inner > img {
  order: 2;
  width: 100%;
  height: auto;
  margin-top: 24px;
}

.service_page:has(.sd_deco) .gs_seasonal_inner .gs_more {
  order: 3;
  margin-top: 24px;
}

.service_page:has(.sd_deco) .sd_illumination {
  margin: 0;
  padding: 55px 0 0;
}

.service_page:has(.sd_deco) .illumination_copy {
  display: flex;
  margin-bottom: 0;
  flex-direction: column;
  gap: 0;
}

.service_page:has(.sd_deco) .illumination_copy > div {
  display: contents;
}

.service_page:has(.sd_deco) .illumination_copy > div > h2,
.service_page:has(.sd_deco) .illumination_copy > div > p {
  order: 1;
}

.service_page:has(.sd_deco) .illumination_copy > div > h2 {
  margin-bottom: 0;
}

.service_page:has(.sd_deco) .illumination_copy > div > p {
  margin-top: 18px;
}

.service_page:has(.sd_deco) .illumination_main_visual {
  order: 2;
  margin: 20px 0 0;
}

.service_page:has(.sd_deco) .illumination_main_visual img {
  width: 100%;
  height: auto;
}

.service_page:has(.sd_deco) .tree_illumi {
  position: static;
  order: 3;
  width: 100%;
  margin-top: 24px;
}

.service_page:has(.sd_deco) .mitif_illumi {
  aspect-ratio: 390 / 222;
  width: 100%;
  height: auto;
  margin-top: 52px;
  margin-bottom: 68px;
  background-image: url("/img/motif_illumi_sp.jpg");
  background-position: center;
}

.service_page:has(.sd_deco) .mitif_illumi_inner {
  width: calc(100% - 50px);
}

.service_page:has(.sd_deco) .mitif_illumi_inner h3 {
  font-size: 24px;
}

.service_page:has(.sd_deco) .mitif_illumi_inner p {
  margin-top: 15px;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.sd_deco) .sd_service_mist {
  margin-top: 0;
  padding-top: 0;
}

.service_page:has(.sd_deco) .sd_service_mist .sd_mist_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_service_experience {
  padding: 55px 0;
}

.service_page:has(.sd_deco) .sd_experience_intro {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

.service_page:has(.sd_deco) .sd_experience_intro > div,
.service_page:has(.sd_deco) .sd_experience_intro_body {
  display: contents;
}

.service_page:has(.sd_deco) .sd_experience_intro_body > h2,
.service_page:has(.sd_deco) .sd_experience_intro_body > p {
  order: 1;
}

.service_page:has(.sd_deco) .sd_experience_intro .experience_main_visual,
.service_page:has(.sd_deco) .sd_experience_intro .note {
  order: 2;
}

.service_page:has(.sd_deco) .sd_experience_intro .experience_main_visual,
.service_page:has(.sd_deco) .sd_experience_intro .experience_main_visual img {
  display: block;
  width: 100%;
  height: auto;
}

.service_page:has(.sd_deco) .sd_experience_intro .note {
  margin-top: -16px;
  font-size: 16px;
}

.service_page:has(.sd_deco) .sd_experience_interactive {
  order: 3;
  margin-top: 18px;
}

.service_page:has(.sd_deco) .sd_experience_ar,
.service_page:has(.sd_deco) .sd_experience_sound {
  position: static;
  display: flex;
  min-height: 0;
  margin-top: 52px;
  flex-direction: column;
  gap: 20px;
}

.service_page:has(.sd_deco) .sd_experience_ar .sd_ar_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_experience_ar_visual {
  display: contents;
}

.service_page:has(.sd_deco) .sd_experience_ar_main {
  display: block;
  order: 2;
  width: 100%;
}

.service_page:has(.sd_deco) .sd_experience_ar_main img,
.service_page:has(.sd_deco) .sd_experience_sound > img {
  width: 100%;
  height: auto;
  padding: 0;
}

.service_page:has(.sd_deco) .sd_experience_ar_visual figcaption {
  position: static;
  order: 4;
  margin-top: -10px;
  font-size: 18px;
  line-height: 1.8;
}

.service_page:has(.sd_deco) .sd_ar_caption_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_sound_break_sp {
  display: none;
}

.service_page:has(.sd_deco) .sd_experience_people {
  position: static;
  order: 3;
  width: 100% !important;
  height: auto;
  margin: -3px 0 0 0;
}

.service_page:has(.sd_deco) .sd_experience_sound .sd_experience_copy {
  order: 1;
}

.service_page:has(.sd_deco) .sd_experience_sound > img {
  order: 2;
}

.service_page:has(.sd_deco) .work_shop {
  height: auto;
  margin: 0;
  padding: 47px 25px;
  background-image: url("/img/work_shop_sp.jpg");
  background-position: center;
  background-size: cover;
}

.service_page:has(.sd_deco) .work_shop_inner {
  display: block;
  width: 100%;
  margin: 0;
}

.service_page:has(.sd_deco) .work_shop_inner h3,
.service_page:has(.sd_deco) .work_shop_inner p {
  color: #fff;
}

.service_page:has(.sd_deco) .work_shop_inner p {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.service_page:has(.sd_deco) .work_shop_chart {
  display: block;
  width: 100%;
  margin-top: 27px;
}

.service_page:has(.sd_deco) .work_shop_chart img {
  display: block;
  width: 100%;
  height: auto;
}

.service_page:has(.sd_deco) .sd_service_promotion {
  padding: 55px 0;
}
.service_page:has(.sd_deco) .sd_service_promotion h2::before {
  height: 64px;
}

.service_page:has(.sd_deco) .sd_promotion_works_intro {
  margin-top: 48px;
}

.service_page:has(.sd_deco) .sd_promotion_gallery {
  display: grid;
  margin: 28px 0 0;
  grid-template-columns: 1fr;
  gap: 28px;
}

.service_page:has(.sd_deco) .sd_promotion_gallery figcaption {
  margin-top: 8px;
  font-size: 16px;
}

.service_page:has(.sd_deco) .sd_promotion_gallery picture,
.service_page:has(.sd_deco) .sd_promotion_gallery picture img {
  display: block;
  width: 100%;
}

.service_page:has(.sd_deco) .sales {
  height: auto;
  margin: 0 0 -45px;
  padding: 45px 25px;
  background-image: url("/img/sales_sp.jpg");
  background-position: center;
  background-size: cover;
}

.service_page:has(.sd_deco) .sales_inner,
.service_page:has(.sd_deco) .sales_inner .sales_midashi {
  display: block;
  width: 100%;
  margin: 0;
}

.service_page:has(.sd_deco) .sales_inner .sales_chart {
  display: grid;
  margin-top: 30px;
  grid-template-columns: 1fr;
  gap: 12px;
}

.service_page:has(.sd_deco) .sales_chart picture,
.service_page:has(.sd_deco) .sales_chart img {
  display: block;
  width: 100%;
  height: auto;
}

/* Seasonal decoration modal */
body:has(.service_page .sd_deco) .sd_seasonal_modal_content {
  width: 100%;
  max-width: none;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_intro {
  display: block;
  width: 100%;
  margin-top: -30px;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_intro p {
  margin-top: 22px;
  font-size: 14px;
  line-height: 1.85;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_intro p br {
  display: none;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_heading {
  margin: 34px 0 26px;
  font-size: 16px;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_list {
  display: grid;
  gap: 38px;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_season {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_images,
body:has(.service_page .sd_deco) .sd_seasonal_modal_captions {
  display: contents;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_images h4 {
  position: relative;
  z-index: 2;
  top: auto;
  left: auto;
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  width: 82px;
  height: 82px;
  margin: 0 0 -34px;
  font-size: 28px;
  transform: none;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_images h4 span {
  margin-bottom: 6px;
  font-size: 13px;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_placeholder {
  width: 100%;
  aspect-ratio: 1.63 / 1;
  background-position: center;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_placeholder:nth-of-type(1) {
  grid-column: 1;
  grid-row: 2;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_placeholder:nth-of-type(2) {
  grid-column: 1;
  grid-row: 4;
  margin-top: 10px;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_captions > span {
  color: #111;
  font-size: 15px;
  font-weight: 500;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_captions > span:nth-child(1) {
  grid-column: 1;
  grid-row: 3;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_captions > span:nth-child(2) {
  grid-column: 1;
  grid-row: 5;
}

body:has(.service_page .sd_deco) .sd_seasonal_modal_captions span small {
  margin-top: 7px;
  font-size: 13px;
  line-height: 1.8;
}

/* Plant maintenance page */
body:has(.service_page .pm_page) .about_hero.maintenance {
  background-image: url("/img/maintenance_mainvisual_ps.jpg");
  background-position: center;
}

body:has(.service_page .pm_page) .about_hero.maintenance h1,
body:has(.service_page .pm_page) .about_hero.maintenance p {
  position: static;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
}

html:has(.service_page .pm_page) {
  scroll-padding-top: 80px;
}

.service_page:has(.pm_page) .shop_intro {
  padding-bottom: 42px;
}

.service_page:has(.pm_page) .shop_intro_lead {
  font-size: 24px;
  line-height: 1.6;
}

.service_page:has(.pm_page) .shop_intro picture {
  display: block;
}

.service_page:has(.pm_page) .maintenance_chart {
  display: block;
  width: min(100%, 325px);
  max-width: none;
  height: auto;
  margin: 30px auto 0;
}

.service_page:has(.pm_page) .pm_contents {
  height: auto;
  margin-bottom: 0;
  padding: 32px 25px 40px;
}

.service_page:has(.pm_page) .pm_contents > span {
  margin-bottom: 18px;
  font-size: 20px;
}

.service_page:has(.pm_page) .pm_contents .gs_contents_inner {
  display: grid;
  width: 100%;
  max-width: none;
  margin: 30px 0 0;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 0;
}

.service_page:has(.pm_page) .pm_contents .gs_contents_inner a {
  min-width: 0;
  padding: 2px 8px 3px;
  border: 0;
  border-left: 1px solid #d5d0ca;
  font-size: 16px;
  line-height: 1.5;
}

.service_page:has(.pm_page) .pm_contents .gs_contents_inner a:nth-child(even) {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.pm_page) .pm_contents .gs_contents_inner a:last-child {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.pm_page) .pm_inner {
  width: calc(100% - 50px);
  margin-inline: auto;
}

.service_page:has(.pm_page) .pm_section {
  padding-top: 48px;
  padding-bottom: 48px;
  scroll-margin-top: 80px;
  background-size: 100% 150px;
}

.service_page:has(.pm_page) .pm_heading {
  padding-left: 24px;
}

.service_page:has(.pm_page) .pm_heading::before {
  top: 1px;
  bottom: 1px;
  width: 7px;
}

.service_page:has(.pm_page) .pm_heading h2 {
  margin-bottom: 18px;
  padding: 4px 0 7px;
  font-size: 24px;
  line-height: 1.35;
}

.service_page:has(.pm_page) .pm_intro,
.service_page:has(.pm_page) .pm_title_row > p,
.service_page:has(.pm_page) .pm_special_main p {
  width: 100%;
  margin: 20px 0 28px;
  font-size: 16px;
  line-height: 1.8;
}
/*
.service_page:has(.pm_page) .pm_intro br,
.service_page:has(.pm_page) .pm_title_row > p br,
.service_page:has(.pm_page) .pm_special_main p br {
  display: none;
}
*/
.service_page:has(.pm_page) .pm_service_grid {
  display: grid;
  margin: 30px 0 0;
  grid-template-columns: 1fr;
  gap: 28px;
}

.service_page:has(.pm_page) .pm_services .pm_service_card {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
}

.service_page:has(.pm_page) .pm_service_card > .pm_service_image {
  grid-column: 1;
  grid-row: 1;
}

.service_page:has(.pm_page) .pm_service_card > img,
.service_page:has(.pm_page) .pm_service_card > .pm_service_image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 342 / 240;
  object-fit: contain;
  object-position: center;
}

.service_page:has(.pm_page) .pm_service_card > div {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  margin-top: 0;
  padding: 16px 15px 18px;
}

.service_page:has(.pm_page) .pm_service_card h3 {
  font-size: 20px;
}

.service_page:has(.pm_page) .pm_service_card h3 span {
  min-height: 0;
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.5;
}

.service_page:has(.pm_page) .pm_service_card h3 span br {
  display: none;
}

.service_page:has(.pm_page) .pm_service_card > p {
  grid-column: 1;
  grid-row: 2;
  padding: 14px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.pm_page) .pm_cycle {
  padding-bottom: 0;
  background: linear-gradient(110deg, #f8f4eb, #eef6ef);
}

.service_page:has(.pm_page) .pm_title_row {
  display: block;
  margin: 0 0 30px;
}

.service_page:has(.pm_page) .pm_title_row > p {
  position: static;
}

.service_page:has(.pm_page) .pm_cycle_list {
  display: grid;
  margin: 62px 0 0;
  padding: 0;
  gap: 0;
}

.service_page:has(.pm_page) .pm_cycle_list picture {
  display: block;
}

.service_page:has(.pm_page) .pm_cycle_list img {
  height: auto;
  margin: 0;
}

.service_page:has(.pm_page) .pm_cycle_list img.stage_nom {
  display: none;
}

.service_page:has(.pm_page) .pm_treecare {
  margin: 0;
}

.service_page:has(.pm_page) .pm_steps {
  display: grid;
  padding-top: 0;
  grid-template-columns: 1fr;
  gap: 34px;
}

.service_page:has(.pm_page) .pm_steps img {
  width: 100%;
  height: auto;
  margin: 8px 0 12px;
}

.service_page:has(.pm_page) .pm_steps article span {
  font-size: 20px;
}

.service_page:has(.pm_page) .pm_steps article span b {
  font-size: 32px;
}

.service_page:has(.pm_page) .pm_steps h3 {
  font-size: 20px;
}

.service_page:has(.pm_page) .pm_steps p,
.service_page:has(.pm_page) .pm_flow p {
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.pm_page) .pm_feature {
  display: flex;
  margin-top: 45px;
  padding: 0;
  flex-direction: column;
}

.service_page:has(.pm_page) .pm_feature > div {
  padding: 43px 25px 28px;
}

.service_page:has(.pm_page) .pm_feature > div h3 {
  font-size: 24px;
}

.service_page:has(.pm_page) .pm_feature p {
  margin-top: 18px;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.pm_page) .pm_feature > img {
  width: calc(100% - 50px);
  height: auto;
  margin: 0 auto 45px;
}

.service_page:has(.pm_page) .pm_special {
  margin-top: 0;
  margin-bottom: -45px;
  padding-top: 0;
  background-size: 100% 470px;
}

.service_page:has(.pm_page) .pm_special_main {
  display: grid;
  width: 100%;
  margin: 0 0 38px;
  grid-template-columns: 58% 39%;
  column-gap: 3%;
  row-gap: 24px;
}

.service_page:has(.pm_page) .pm_special_main > img {
  grid-column: 1;
  grid-row: 3;
  width: 100%;
  height: auto;
}

.service_page:has(.pm_page) .pm_special_main > div {
  display: contents;
}

.service_page:has(.pm_page) .pm_special_main .pm_heading,
.service_page:has(.pm_page) .pm_special_main > div > p {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
}

.service_page:has(.pm_page) .pm_special_main .pm_heading {
  grid-row: 1;
}

.service_page:has(.pm_page) .pm_special_main .pm_heading::before {
  top: 1px;
  bottom: auto;
  height: 45px;
}
.service_page:has(.pm_page) .pm_special_main > div > p {
  grid-row: 2;
  margin-top: -20px;
}

.service_page:has(.pm_page) .pm_special_main > div > img {
  position: static;
  grid-column: 2;
  grid-row: 3;
  align-self: end;
  width: 100%;
  height: auto;
  transform: translateY(38px);
}

.service_page:has(.pm_page) .pm_flow_title {
  margin: 80px 0 20px;
  font-size: 24px;
  text-align: center;
}

.service_page:has(.pm_page) .pm_flow {
  display: grid;
  min-height: 0;
  margin: 0;
  padding: 0 18px;
  grid-template-columns: 1fr;
}

.service_page:has(.pm_page) .pm_flow li {
  padding: 15px 0;
}

.service_page:has(.pm_page) .pm_flow .pm_flow_arrow {
  height: 24px;
  padding: 0;
  transform: rotate(90deg);
}

.service_page:has(.pm_page) .pm_flow span {
  font-size: 23px;
}

.service_page:has(.pm_page) .pm_flow b {
  font-size: 34px;
}

.service_page:has(.pm_page) .pm_flow h4 {
  margin: 10px 0 12px;
  font-size: 20px;
}
.service_page:has(.pm_page) .pm_flow p {
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.pm_page) .pm_faq {
  width: calc(100% - 50px);
  padding-top: 45px;
  padding-bottom: 10px;
}

.service_page:has(.pm_page) .pm_faq .faq_heading {
  margin: 0 auto 35px;
}

.service_page:has(.pm_page) .pm_faq .faq_heading h2 {
  font-size: 30px;
}

.service_page:has(.pm_page) .pm_faq .faq_heading span {
  margin-top: 10px;
  font-size: 16px;
}

.service_page:has(.pm_page) .pm_faq details {
  margin-bottom: 16px;
}

.service_page:has(.pm_page) .pm_faq summary {
  min-height: auto;
  padding: 18px 60px 18px 55px;
  font-size: 16px;
  line-height: 1.5;
}

.service_page:has(.pm_page) .pm_faq summary::before {
  left: 15px;
  top: 33px;
  font-size: 24px;
}

.service_page:has(.pm_page) .pm_faq summary::after {
  right: 15px;
  width: 30px;
  height: 30px;
}

.service_page:has(.pm_page) .pm_faq details p {
  margin-top: 8px;
  padding: 18px 18px 18px 55px;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.pm_page) .pm_faq details p::before {
  top: 34px;
  left: 15px;
  font-size: 27px;
}
/*
.service_page:has(.pm_page) .pm_faq details p br {
  display: none;
}
*/
.service_page:has(.pm_page) .pm_faq .care_point {
  min-height: 105px;
  margin: 0 0 28px;
  padding: 18px 45px 16px 18px;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.service_page:has(.pm_page) .pm_faq .care_point img {
  right: 0;
  width: 27%;
}

.footer_accordion_toggle i::before,
.footer_accordion_toggle i::after {
  position: absolute;
  top: 0;
  left: 50%;
  width: 11px;
  height: 1px;
  background: #aaa29e;
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
}
.footer_accordion_toggle i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.footer_accordion_item[open] .footer_accordion_toggle i::after {
  transform: translate(-50%, -50%) rotate(0);
}
.footer_column_subtitle {
  margin: 7px 0 0;
  font-size: 13px;
  line-height: 1.55;
}
.footer_accordion_panel ul {
  display: none;
}
.footer_accordion_item[open] .footer_accordion_panel ul {
  display: block;
  margin-top: 15px;
}
.footer_column li + li {
  margin-top: 4px;
}
.footer_column li a {
  padding-left: 10px;
  font-size: 14px;
  line-height: 1.55;
}
.footer_column li a::before {
  left: 0;
}
.footer_column li a::after {
  left: 10px;
  width: calc(100% - 10px);
}
.footer_pagetop {
  position: absolute;
  top: 170px;
  right: 3px;
  bottom: auto;
  z-index: 2;
  display: flex;
  width: 66px;
  margin: 0;
  color: var(--mobile-green);
  font-size: 11px;
  white-space: nowrap;
}
.footer_pagetop img {
  width: 64px;
}
.footer_bottom {
  position: relative;
  display: flex;
  margin-top: 2px;
  padding: 20px 0 0;
  border-top: 1px solid #d8d2ce;
  flex-direction: column-reverse;
  align-items: stretch;
  gap: 28px;
}
.footer_bottom_nav {
  display: block;
  padding-right: 78px;
}
.footer_bottom_nav li + li {
  margin: 6px 0 0;
  padding: 0;
}
.footer_bottom_nav li + li::before {
  display: none;
}
.footer_bottom_nav a {
  font-size: 14px;
  white-space: normal;
}
.footer_copyright {
  align-self: center;
  font-size: 11px;
  text-align: center;
}
/* Exterior & Renovation page */
.service_page:has(.townscape) .huguniwa {
  display: none;
}

body:has(.service_page .townscape) .about_hero.exterior {
  aspect-ratio: 390 / 150;
  height: auto;
  min-height: 0;
  background-position: center;
}

.service_page:has(.townscape) .shop_intro {
  width: auto;
  margin: 0 25px;
  padding: 42px 0 38px;
  text-align: left;
}

.service_page:has(.townscape) .shop_intro_lead {
  font-size: 24px;
  line-height: 1.8;
}

.service_page:has(.townscape) .shop_intro > p:not(.shop_intro_lead) {
  margin-top: 20px;
  font-size: 16px;
  line-height: 1.9;
}

.service_page:has(.townscape) .shop_intro p br {
  display: none;
}

.service_page:has(.townscape) .shop_intro .gs_chart {
  display: block;
  width: 100%;
  height: auto;
  margin: 18px auto 0;
}

.service_page:has(.townscape) .shop_intro picture {
  display: block;
}

.service_page:has(.townscape) .gs_contents {
  height: auto;
  padding: 32px 25px 40px;
}

.service_page:has(.townscape) .gs_contents > span {
  margin-bottom: 18px;
  font-size: 20px;
}

.service_page:has(.townscape) .gs_contents_inner {
  display: grid;
  width: 100%;
  margin-top: 30px;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 0;
}

.service_page:has(.townscape) .gs_contents_inner a {
  display: flex;
  min-width: 0;
  padding: 2px 3px 3px;
  border: 0;
  border-left: 1px solid #d5d0ca;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.5;
  text-align: center;
}

.service_page:has(.townscape) .gs_contents_inner a:nth-child(even),
.service_page:has(.townscape) .gs_contents_inner a:last-child {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.townscape) #townscape,
.service_page:has(.townscape) #renovation,
.service_page:has(.townscape) #design_proposal {
  scroll-margin-top: 80px;
}

.service_page:has(.townscape) .townscape.gs_service_indoor {
  display: block;
  padding: 50px 25px 48px;
}

.service_page:has(.townscape) .townscape .gs_inner,
.service_page:has(.townscape) .sd_renovation .gs_inner,
.service_page:has(.townscape) .design_proposal .gs_inner {
  width: 100%;
  margin: 0;
}

.service_page:has(.townscape) .townscape_intro h2,
.service_page:has(.townscape) .sd_renovation h2,
.service_page:has(.townscape) .design_proposa_intro_intro h2 {
  position: relative;
  margin: 0 0 22px;
  padding-left: 18px;
  color: #075b53;
  font-size: 24px;
  line-height: 1.35;
}

.service_page:has(.townscape) .townscape_intro h2::before,
.service_page:has(.townscape) .sd_renovation h2::before,
.service_page:has(.townscape) .design_proposa_intro_intro h2::before {
  position: absolute;
  top: 0;
  bottom: auto;
  left: 0;
  width: 7px;
  height: 60px;
  background: linear-gradient(to bottom, #075b53, #4db7b9);
  content: "";
}

.service_page:has(.townscape) .townscape_intro h2 small,
.service_page:has(.townscape) .sd_renovation h2 small,
.service_page:has(.townscape) .design_proposa_intro_intro h2 small {
  display: block;
  margin-top: 5px;
  font-size: 14px;
}

.service_page:has(.townscape) .townscape_intro p,
.service_page:has(.townscape) .renovation_copy p,
.service_page:has(.townscape) .design_proposa_intro_intro > p {
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.townscape) .townscape_intro p br,
.service_page:has(.townscape) .renovation_copy p br,
.service_page:has(.townscape) .design_proposa_intro_intro p br {
  display: none;
}

.service_page:has(.townscape) .renovation_copy p .renovation_break_sp {
  display: initial;
}

.service_page:has(.townscape) .design_proposa_intro_intro p .design_proposal_break_sp {
  display: initial;
}

.service_page:has(.townscape) .townscape_content {
  position: relative;
  left: auto;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 340 / 265;
  max-width: none;
  margin: 28px 0 5px;
}

.service_page:has(.townscape) .townscape_content > img.townscape01,
.service_page:has(.townscape) .townscape_content > img.townscape02 {
  position: absolute;
  height: auto;
  object-fit: cover;
}

.service_page:has(.townscape) .townscape_content > img.townscape01 {
  z-index: 2;
  top: 46%;
  left: 0;
  width: 57%;
}

.service_page:has(.townscape) .townscape_content > img.townscape02 {
  z-index: 1;
  top: 0;
  right: 0;
  width: 80%;
}

.service_page:has(.townscape) .townscape_content2 {
  display: grid;
  margin: 0;
  grid-template-columns: 1fr;
  gap: 24px;
}

.service_page:has(.townscape) .townscape03,
.service_page:has(.townscape) .townscape04 {
  width: 100%;
  height: auto;
}

.service_page:has(.townscape) .townscape_content2 p {
  margin: 8px 0 10px;
  font-size: 16px;
}

.service_page:has(.townscape) .huguniwa {
  height: auto;
  padding: 42px 25px;
  background-position: center;
}

.service_page:has(.townscape) .huguniwa_inner {
  display: flex;
  width: 100%;
  margin: 0;
  flex-direction: column-reverse;
  gap: 28px;
}

.service_page:has(.townscape) .huguniwa_inner > img {
  width: 100%;
  height: auto;
}

.service_page:has(.townscape) .huguniwa_inner h3 {
  padding-left: 18px;
  font-size: 22px;
}

.service_page:has(.townscape) .huguniwa_inner h3::before {
  top: 0;
  width: 7px;
  height: 52px;
}

.service_page:has(.townscape) .huguniwa_inner p {
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.9;
}

.service_page:has(.townscape) .huguniwa_inner p br {
  display: none;
}

.service_page:has(.townscape) .sd_renovation {
  margin: -10px 0 0 0;
  padding: 0 25px 45px;
}

.service_page:has(.townscape) .renovation_copy {
  display: block;
  margin: 0;
}

.service_page:has(.townscape) .renovation_copy2 {
  display: grid;
  margin: 28px 0 0;
  grid-template-columns: 1fr;
  gap: 15px;
}

.service_page:has(.townscape) .renovation_copy2 img {
  display: block;
  width: 100%;
  height: auto;
}

.service_page:has(.townscape) .one_stop {
  margin: 0;
  padding: 48px 25px;
}

.service_page:has(.townscape) .one_stop_inner {
  padding: 0;
}

.service_page:has(.townscape) .one_stop_inner .one_stop_copy {
  display: block;
  width: 100%;
  margin: 0 0 28px;
}

.service_page:has(.townscape) .one_stop_inner h2 {
  position: relative;
  margin: 0;
  padding: 0 0 0 18px;
  font-size: 24px;
  line-height: 1.65;
}

.service_page:has(.townscape) .one_stop_inner h2::before {
  position: absolute;
  top: 0;
  bottom: auto;
  left: 0;
  display: block;
  width: 7px;
  height: 100%;
  background: linear-gradient(to bottom, #075b53, #4db7b9);
  content: "";
}

.service_page:has(.townscape) .one_stop_copy p {
  margin-top: 12px;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.townscape) .one_stop_inner picture,
.service_page:has(.townscape) .one_stop_inner img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}

.service_page:has(.townscape) .design_proposal {
  padding: 52px 0 0;
  margin-bottom: -43px;
}

.service_page:has(.townscape) .design_proposa_intro_intro {
  display: block;
  margin: 0 25px 28px;
}

.service_page:has(.townscape) .design_proposal_img {
  height: 132px;
  background-position: center;
}

.service_page:has(.townscape) .design_proposal_produce {
  position: static;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 25px 25px 48px;
  overflow: hidden;
}

.service_page:has(.townscape) .design_proposal_produce > .design_proposal_bg {
  position: absolute;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  inset: 0;
}

.service_page:has(.townscape) .design_proposal_bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service_page:has(.townscape) .design_proposal_produce {
  position: relative;
  top: auto;
}

.service_page:has(.townscape) .produce_inner {
  position: relative;
  top: auto;
  z-index: 1;
  display: flex;
  padding: 0;
  flex-direction: column;
  gap: 28px;
}

.service_page:has(.townscape) .produce_inner h4 {
  margin-bottom: 18px;
  font-size: 20px;
  line-height: 1.8;
}

.service_page:has(.townscape) .produce_inner p {
  font-size: 16px;
  line-height: 1.8;
}

/*.service_page:has(.townscape) .produce_inner p br {
  display: none;
}*/

.service_page:has(.townscape) .produce_inner > img {
  display: block;
  width: 100%;
  height: auto;
}

/* Public Space & Facility Management page */
body:has(.service_page .public) .about_hero.public_space {
  aspect-ratio: 390 / 150;
  height: auto;
  min-height: 0;
  background-position: center;
}

.service_page:has(.public) .shop_intro {
  width: auto;
  margin: 0 25px;
  padding: 42px 0 38px;
  text-align: left;
}

.service_page:has(.public) .shop_intro_lead {
  font-size: 24px;
  line-height: 1.8;
}

.service_page:has(.public) .shop_intro > p:not(.shop_intro_lead) {
  margin-top: 20px;
  font-size: 16px;
  line-height: 1.9;
}

.service_page:has(.public) .shop_intro p br {
  display: none;
}

.service_page:has(.public) .shop_intro .gs_chart {
  display: block;
  width: 100%;
  height: auto;
  margin: 30px auto 0;
}

.service_page:has(.public) .shop_intro picture {
  display: block;
}

.service_page:has(.public) .gs_contents {
  height: auto;
  padding: 32px 25px 40px;
}

.service_page:has(.public) .gs_contents > span {
  margin-bottom: 18px;
  font-size: 20px;
}

.service_page:has(.public) .gs_contents_inner {
  display: grid;
  width: 100%;
  margin-top: 30px;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 0;
}

.service_page:has(.public) .gs_contents_inner a {
  display: flex;
  min-width: 0;
  min-height: 48px;
  padding: 2px 8px 3px;
  border: 0;
  border-left: 1px solid #d5d0ca;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1.5;
  text-align: center;
}

.service_page:has(.public) .gs_contents_inner a:last-child {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.public) #public,
.service_page:has(.public) #designated_management {
  scroll-margin-top: 80px;
}

.service_page:has(.public) .public.gs_service_indoor {
  display: block;
  padding: 50px 25px 55px;
}

.service_page:has(.public) .public .gs_inner,
.service_page:has(.public) .public_inner {
  width: 100%;
  margin: 0;
}

.service_page:has(.public) .public_intro {
  display: block;
}

.service_page:has(.public) .public_intro h2,
.service_page:has(.public) .designated_management_inner h2 {
  position: relative;
  margin: 0 0 22px;
  padding: 0 0 4px 18px;
  color: #075b53;
  font-size: 24px;
  line-height: 1.35;
}

.service_page:has(.public) .public_intro h2::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 7px;
  height: 64px;
  background: linear-gradient(to bottom, #075b53, #4db7b9);
  content: "";
}
.service_page:has(.public) .designated_management_inner h2::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 7px;
  height: 100px;
  background: linear-gradient(to bottom, #075b53, #4db7b9);
  content: "";
}

.service_page:has(.public) .public_intro h2 small,
.service_page:has(.public) .designated_management_inner h2 small {
  display: block;
  margin-top: 6px;
  font-size: 14px;
}

.service_page:has(.public) .public_intro > p,
.service_page:has(.public) .public_content p,
.service_page:has(.public) .public_content2 p,
.service_page:has(.public) .public_content3 p {
  max-width: none;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.public) .public_content > div:first-child p,
.service_page:has(.public) .public_content3 > div:nth-child(3) p {
  margin: 0;
}

.service_page:has(.public) .public_content p br,
.service_page:has(.public) .public_content3 p br {
  display: none;
}

.service_page:has(.public) .public_content,
.service_page:has(.public) .public_content2,
.service_page:has(.public) .public_content3 {
  position: static;
  display: flex;
  width: 100%;
  margin: 38px 0 0;
  flex-direction: column;
  gap: 25px;
}

.service_page:has(.public) .public_content2 {
  margin-top: 25px;
}

.service_page:has(.public) .public_content3 {
  margin-top: 48px;
}

.service_page:has(.public) .public_content3 > div:nth-child(3) {
  order: -1;
}

.service_page:has(.public) .public_content h3,
.service_page:has(.public) .public_content3 h3 {
  margin: 0 0 18px;
  color: #075b53;
  font-size: 20px;
  line-height: 1.45;
}

.service_page:has(.public) .public_content h3 small,
.service_page:has(.public) .public_content3 h3 small {
  display: block;
  margin: 5px 0 0;
  font-size: 14px;
}

.service_page:has(.public) .public_content img,
.service_page:has(.public) .public_content2 img,
.service_page:has(.public) .public_content3 img {
  display: block;
  width: 100%;
  height: auto;
}

.service_page:has(.public) .public_content p.note,
.service_page:has(.public) .public_content2 p.note,
.service_page:has(.public) .public_content3 p.note {
  margin: 7px 0 0;
  font-size: 16px;
  line-height: 1.55;
}

.service_page:has(.public) .designated_management {
  margin: 0;
  padding: 52px 25px 55px;
  background: linear-gradient(to bottom right, #f7f2e9, #eff6f0);
}

.service_page:has(.public) .designated_management_inner {
  padding: 0;
}

.service_page:has(.public) .designated_management_inner .one_stop_copy {
  display: block;
  width: 100%;
  margin: 0 0 48px;
}

.service_page:has(.public) .designated_management_inner .one_stop_copy > p,
.service_page:has(.public) .designated_management_case > div > p,
.service_page:has(.public) .designated_management_case > div > .designated_management_meta {
  font-size: 16px;
  line-height: 1.9;
}

.service_page:has(.public) .designated_management_inner h3,
.service_page:has(.public) .facility_management h3 {
  width: 100%;
  margin: 0;
  color: #075b53;
  font-size: 22px;
  line-height: 1.45;
}

.service_page:has(.public) .designated_management_inner h3 span,
.service_page:has(.public) .facility_management h3 span {
  display: block;
  margin-top: 5px;
  font-size: 12px;
}

.service_page:has(.public) .designated_management_case {
  display: grid;
  width: 100%;
  margin: 28px 0 0;
  grid-template-columns: 1fr;
  gap: 48px;
}

.service_page:has(.public) .designated_management_case > div > picture,
.service_page:has(.public) .designated_management_case > div > picture img,
.service_page:has(.public) .designated_management_case > div > img {
  display: block;
  width: 100%;
  margin-top: -4px;
}

.service_page:has(.public) .designated_management_case > div > picture img,
.service_page:has(.public) .designated_management_case > div > img {
  height: auto;
  aspect-ratio: auto;
}

.service_page:has(.public) .designated_management_case h4 {
  margin: 16px 0 14px;
  font-size: 20px;
}

.service_page:has(.public) .designated_management_case ul {
  margin-top: 20px;
}

.service_page:has(.public) .designated_management_case li,
.service_page:has(.public) .designated_management_case a {
  font-size: 14px;
}

.service_page:has(.public) .dm_photo {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
}

.service_page:has(.public) .dm_photo img {
  display: block;
  width: 100%;
  height: auto;
}

.service_page:has(.public) .facility_management {
  width: auto;
  margin: 0;
  padding: 55px 25px;
}

.service_page:has(.public) .facility_management .facility_management_inner {
  display: flex;
  margin: 28px 0 0;
  flex-direction: column;
  gap: 22px;
}

.service_page:has(.public) .facility_management_inner > img {
  display: block;
  width: 100%;
  height: auto;
}

.service_page:has(.public) .facility_management .facility_management_inner h4 {
  margin: 0 0 14px;
  font-size: 20px;
}

.service_page:has(.public) .facility_management .facility_management_inner p {
  margin-top: 16px;
  font-size: 16px;
  line-height: 1.9;
}

.service_page:has(.public) .facility_management .facility_management_inner p.add {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 30px;
  align-items: start;
  margin-bottom: 16px;
}

.service_page:has(.public) .facility_management .facility_management_inner p.add > span {
  min-width: 0;
}

.service_page:has(.public) .facility_management .facility_management_inner p.add > span a,
.service_page:has(.public) .facility_management .facility_management_inner p.add > span a[x-apple-data-detectors] {
  color: inherit !important;
  text-decoration: none !important;
  pointer-events: none;
}

.service_page:has(.public) .facility_management_inner ul {
  margin-top: 20px;
}

.service_page:has(.public) .dm_photo.bottom {
  margin-bottom: -40px;
}
/* Life & Experience Services page */
body:has(.service_page .flower_shop) .about_hero.life {
  aspect-ratio: 390 / 150;
  height: auto;
  min-height: 0;
  background-position: center;
}

.service_page:has(.flower_shop) .shop_intro {
  width: auto;
  margin: 0 25px;
  padding: 42px 0 38px;
  text-align: left;
}

.service_page:has(.flower_shop) .shop_intro_lead {
  font-size: 24px;
  line-height: 1.8;
}

.service_page:has(.flower_shop) .shop_intro > p:not(.shop_intro_lead) {
  margin-top: 20px;
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.flower_shop) .shop_intro p br {
  display: none;
}

.service_page:has(.flower_shop) .shop_intro .gs_chart {
  display: block;
  width: 100%;
  height: auto;
  margin: 30px auto 0;
}

.service_page:has(.flower_shop) .shop_intro picture {
  display: block;
}

.service_page:has(.flower_shop) .gs_contents {
  height: auto;
  padding: 32px 25px 40px;
}

.service_page:has(.flower_shop) .gs_contents > span {
  margin-bottom: 18px;
  font-size: 20px;
}

.service_page:has(.flower_shop) .gs_contents_inner {
  display: grid;
  width: 100%;
  margin-top: 30px;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 0;
}

.service_page:has(.flower_shop) .gs_contents_inner a {
  display: flex;
  min-width: 0;
  min-height: 0;
  padding: 2px 0 3px;
  border: 0;
  border-left: 1px solid #d5d0ca;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0;
}

.service_page:has(.flower_shop) .gs_contents_inner a:nth-child(even),
.service_page:has(.flower_shop) .gs_contents_inner a:last-child {
  border-right: 1px solid #d5d0ca;
}

.service_page:has(.flower_shop) #flower_shop,
.service_page:has(.flower_shop) #farm_culture,
.service_page:has(.flower_shop) #regional {
  scroll-margin-top: 80px;
}

.service_page:has(.flower_shop) .flower_shop {
  padding: 52px 25px 55px;
}

.service_page:has(.flower_shop) .flower_shop > .home_section,
.service_page:has(.flower_shop) .flower_shop > div:nth-of-type(2) {
  width: 100%;
  margin: 0;
}

.service_page:has(.flower_shop) .flower_shop > .home_section {
  display: block;
  padding: 0 0 38px;
}

.service_page:has(.flower_shop) .flower_shop .home_heading_block h2 {
  position: relative;
  top: auto;
  margin: 0 0 22px;
  padding: 0 0 4px 18px;
  color: #075b53;
  font-size: 20px;
  line-height: 1.8;
}

.service_page:has(.flower_shop) .farm_culture .home_heading_block h2,
.service_page:has(.flower_shop) .regional .regional_intro h2 {
  position: relative;
  top: auto;
  margin: 0 0 22px;
  padding: 0 0 4px 18px;
  color: #075b53;
  font-size: 24px;
  line-height: 1.35;
}

.service_page:has(.flower_shop) .flower_shop .home_heading_block h2 {
  padding-left: 0;
}

.service_page:has(.flower_shop) .flower_shop .home_heading_block h2::before,
.service_page:has(.flower_shop) .farm_culture .home_heading_block h2::before,
.service_page:has(.flower_shop) .regional .regional_intro h2::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 7px;
  height: 62px;
  background: linear-gradient(to bottom, #075b53, #4db7b9);
  content: "";
}

.service_page:has(.flower_shop) .flower_shop .home_heading_block h2::before {
  display: none !important;
  content: none !important;
}

.service_page:has(.flower_shop) .flower_shop .home_heading_block h2 small,
.service_page:has(.flower_shop) .farm_culture .home_heading_block h2 small,
.service_page:has(.flower_shop) .regional .regional_intro h2 small {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  letter-spacing: 0.01em;
}

.service_page:has(.flower_shop) .flower_shop > .home_section > div:last-child > p,
.service_page:has(.flower_shop) .flower_shop > div:nth-of-type(2) > div > p,
.service_page:has(.flower_shop) .hananohi .hananohi_content p,
.service_page:has(.flower_shop) .tokoya p,
.service_page:has(.flower_shop) .farm_culture p,
.service_page:has(.flower_shop) .regional p {
  font-size: 16px;
  line-height: 1.8;
}

.service_page:has(.flower_shop) .hananohi p br,
.service_page:has(.flower_shop) .tokoya p br,
.service_page:has(.flower_shop) .farm_culture p br,
.service_page:has(.flower_shop) .regional p br {
  display: none;
}

.service_page:has(.flower_shop) .flower_shop .home_btn {
  margin-top: 25px;
}

.service_page:has(.flower_shop) .flower_shop_btn_pc {
  display: none;
}

.service_page:has(.flower_shop) .flower_shop .flower_shop_btn_sp {
  display: flex;
  margin: 42px auto 0;
}

.service_page:has(.flower_shop) .flower_shop > div:nth-of-type(2) {
  display: grid;
  grid-template-columns: 1fr;
  gap: 42px;
}

.service_page:has(.flower_shop) .flower_shop > div:nth-of-type(2) > div > img:first-child {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
}

.service_page:has(.flower_shop) .flower_shop > div:nth-of-type(2) > div > .flowershop_logo {
  margin: 12px 0;
}

.service_page:has(.flower_shop) .hananohi {
  padding: 48px 25px;
}

.service_page:has(.flower_shop) .hananohi .hananohi_inner {
  display: flex;
  width: 100%;
  margin: 0;
  flex-direction: column-reverse;
  gap: 28px;
}

.service_page:has(.flower_shop) .hananohi .hananohi_content h2 {
  margin: 0 0 18px;
  font-size: 24px;
  line-height: 1.8;
  text-align: center;
}

.service_page:has(.flower_shop) .hananohi .hananohi_visual img {
  width: min(74%, 290px);
  height: auto;
  margin: 0 auto;
  aspect-ratio: auto;
}

.service_page:has(.flower_shop) .hananohi .home_btn {
  margin-top: 26px;
}

.service_page:has(.flower_shop) .hananohi .hananohi_btn_pc {
  display: none;
}

.service_page:has(.flower_shop) .hananohi .hananohi_btn_sp {
  display: flex;
  margin: 30px auto 0;
}

.service_page:has(.flower_shop) .tokoya {
  padding: 52px 25px 55px;
  background: linear-gradient(to bottom, #fff 0 520px, transparent 520px), linear-gradient(to bottom right, #f7f2e9, #eff6f0);
}

.service_page:has(.flower_shop) .tokoya .tokoya_inner {
  width: 100%;
  margin: 0;
}

.service_page:has(.flower_shop) .tokoya .tokoya_intro {
  display: flex;
  padding: 0 0 32px;
  flex-direction: column;
  gap: 24px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_intro_text h2 {
  margin: 0;
  font-size: 24px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_intro_text > p {
  margin-top: 20px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_logo {
  width: 48%;
}

.service_page:has(.flower_shop) .tokoya .tokoya_gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 38px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_gallery img {
  height: auto;
  aspect-ratio: auto;
}

.service_page:has(.flower_shop) .tokoya .tokoya_gallery figcaption {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.service_page:has(.flower_shop) .tokoya .tokoya_order {
  margin-top: 42px;
  padding: 38px 20px 30px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_order_heading h3 {
  font-size: 30px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_chart {
  width: 100%;
  margin: 30px auto 0;
}

.service_page:has(.flower_shop) .tokoya .tokoya_order_bottom {
  display: block;
  margin-top: 28px;
}

.service_page:has(.flower_shop) .tokoya .tokoya_tel {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 20px;
}

.service_page:has(.flower_shop) .farm_culture {
  padding: 52px 0 0;
}

.service_page:has(.flower_shop) .farm_culture > .home_section,
.service_page:has(.flower_shop) .farm_culture > .farm_culture_content {
  width: auto;
  margin: 0 25px;
}

.service_page:has(.flower_shop) .farm_culture > .home_section {
  display: block;
  padding: 0 0 30px;
}

.service_page:has(.flower_shop) .farm_culture_mainvisual {
  height: auto;
  aspect-ratio: 390 / 107;
  background-position: center;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_about {
  display: flex;
  min-height: 0;
  padding: 38px 0 80px;
  flex-direction: column;
  gap: 24px;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_logo {
  width: 85%;
  margin: 0 15% 0 0;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_about .home_btn {
  display: flex;
  margin: 20px auto -20px;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_cards {
  display: grid;
  padding: 0 0 55px;
  grid-template-columns: 1fr;
  gap: 42px;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_cards img {
  height: auto;
  aspect-ratio: auto;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_cards h3 {
  margin: 14px 0 10px;
  color: #221815;
  font-size: 20px;
}

.service_page:has(.flower_shop) .farm_culture .farm_culture_cards p {
  margin: 0;
}

.service_page:has(.flower_shop) .regional {
  padding: 52px 25px 60px;
}

.service_page:has(.flower_shop) .regional .regional_inner {
  display: flex;
  width: 100%;
  margin: 0 0 -100px;
  flex-direction: column;
  gap: 16px;
}

.service_page:has(.flower_shop) .regional .regional_intro {
  padding: 0 0 10px 0;
}

.service_page:has(.flower_shop) .regional .regional_copy {
  margin: 26px 0 0;
}

.service_page:has(.flower_shop) .regional .regional_copy p + p {
  margin-top: 22px;
}

.service_page:has(.flower_shop) .regional .regional_image_main {
  width: 100%;
  max-width: none;
}

.service_page:has(.flower_shop) .regional .regional_subimages {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.service_page:has(.flower_shop) .regional .regional_image_sub01,
.service_page:has(.flower_shop) .regional .regional_image_sub02 {
  width: 100%;
  max-width: none;
}

.service_page:has(.flower_shop) .regional .regional_image {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
/* Sustainability page */
body:has(.sustainability_page) .sustainability_hero {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 207;
}

body:has(.sustainability_page) .sustainability_hero > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body:has(.sustainability_page) .sustainability_hero_inner {
  width: calc(100% - 50px);
  transform: translate(-50%, -47%);
}

body:has(.sustainability_page) .sustainability_hero_inner h1 {
  font-size: 30px;
  line-height: 1.3;
}

body:has(.sustainability_page) .sustainability_hero_inner p {
  margin-top: 5px;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: left;
}

body:has(.sustainability_page) .sustainability_hero_inner p br {
  display: none;
}

.sustainability_page .sustainability_message {
  padding: 48px 25px 45px;
  background-image: url("/img/sustainability_message_bg.jpg");
  background-position: center top;
  background-size: 100% auto;
  background-repeat: no-repeat;
  text-align: left;
}

.sustainability_page .sustainability_message h2 {
  margin: 0 0 24px;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 0.06em;
}

.sustainability_page .sustainability_message p {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.02em;
}

.sustainability_page .sustainability_message strong {
  margin-top: 28px;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.sustainability_page .sustainability_approach {
  position: relative;
  display: block;
  width: auto;
  margin: 0 25px 55px;
  padding: 120px 0 0;
}

.sustainability_page .sustainability_heading_panel {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 74%;
  padding: 0 12px 34px 0;
  background: #fff;
}

.sustainability_page .sustainability_heading_panel h2 {
  font-size: 30px;
  line-height: 1.3;
}

.sustainability_page .sustainability_heading_panel p {
  margin-top: 8px;
  font-size: 16px;
}

.sustainability_page .sustainability_approach_visual,
.sustainability_page .sustainability_approach_visual img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  object-fit: cover;
}

.sustainability_page .sustainability_initiatives {
  width: auto;
  margin: 0 25px;
}

.sustainability_page .sustainability_initiative,
.sustainability_page .sustainability_initiative + .sustainability_initiative {
  margin: 0;
  padding: 0 0 52px;
}

.sustainability_page .sustainability_initiative + .sustainability_initiative {
  padding-top: 52px;
}

.sustainability_page .sustainability_initiative_copy > span {
  margin-bottom: 20px;
}

.sustainability_page .sustainability_initiative_copy > span img {
  width: auto;
  height: 25px;
}

.sustainability_page .sustainability_initiative_copy h2 {
  margin: 0 0 24px;
  font-size: 24px;
  line-height: 1.45;
}

.sustainability_page .sustainability_initiative_copy h2 small {
  margin-top: 5px;
  font-size: 14px;
}

.sustainability_page .sustainability_initiative_copy p,
.sustainability_page .sustainability_case_grid p,
.sustainability_page .sustainability_greenbiz p {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.sustainability_page .sustainability_environment {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.sustainability_page .sustainability_environment_images img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.sustainability_page .sustainability_nature .sustainability_initiative_copy {
  width: 100%;
  margin: 0 0 28px;
}

.sustainability_page .sustainability_case_grid {
  display: grid;
  padding: 0;
  grid-template-columns: 1fr;
  gap: 38px;
}

.sustainability_page .sustainability_case_grid img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.sustainability_page .sustainability_case_grid h3 {
  margin: 14px 0 10px;
  font-size: 20px;
  color: #221815;
}

.sustainability_page .sustainability_society_grid {
  display: flex;
  max-width: none;
  flex-direction: column;
  gap: 28px;
}

.sustainability_page .sustainability_society_visual,
.sustainability_page .sustainability_society_visual img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.sustainability_page .sustainability_greenbiz {
  display: flex;
  width: 100%;
  max-width: none;
  margin: 47px 0 0;
  padding: 38px 20px;
  flex-direction: column;
  gap: 22px;
}

.sustainability_page .sustainability_greenbiz_logo img {
  display: block;
  width: 90%;
  margin: 0 auto 16px;
}

.sustainability_page .sustainability_greenbiz h3 {
  margin: 0 0 18px;
  font-size: 20px;
  line-height: 1.8;
  text-align: left;
}

.sustainability_page .sustainability_group_link {
  display: block;
  width: auto;
  height: auto;
  margin: -5px 25px 48px;
  aspect-ratio: 342 / 435;
}

.sustainability_page .sustainability_group_visual,
.sustainability_page .sustainability_group_visual img {
  display: block;
  width: 100%;
  height: 100%;
}

.sustainability_page .sustainability_group_visual img {
  object-fit: cover;
}

.sustainability_page .sustainability_group_link div {
  right: 5%;
  bottom: 5%;
  font-size: 14px;
}

.sustainability_page .sustainability_group_link div span {
  width: 66px;
  height: 35px;
  margin-right: 8px;
}

.sustainability_page .sustainability_group_link div span img {
  width: 20px;
}
/* News archive page */
body:has(.news_page) #lower_midashi {
  aspect-ratio: 390 / 150;
  height: auto;
  min-height: 0 !important;
}

body:has(.news_page) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.3;
}

body:has(.news_page) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

.news_page .news_archive {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0 25px 62px;
}

.news_page .news_category {
  margin: 0 0 42px;
  text-align: center;
}

.news_page .news_category h3 {
  margin-bottom: 30px;
  font-size: 20px;
}

.news_page .news_category_list {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news_page .news_category_list li {
  padding: 0;
  border-left: 1px solid #e0dcd7;
}

.news_page .news_category_list li:last-child {
  border-right: 1px solid #e0dcd7;
}

.news_page .news_category_list a {
  display: block;
  padding: 1px 3px 11px;
  font-size: 16px;
  line-height: 1.3;
  white-space: nowrap;
}

.news_page .news_list {
  padding-top: 0;
  border-top: 1px solid #e7e3df;
}

.news_page .news_item,
.news_page .news_item:first-child {
  padding: 0;
}

.news_page .news_item a {
  display: grid;
  padding: 14px 0 19px;
  grid-template-columns: max-content max-content 1fr 18px;
  grid-template-areas:
    "date label . arrow"
    "title title title arrow";
  column-gap: 14px;
  row-gap: 12px;
  align-items: center;
}

.news_page .news_item time {
  grid-area: date;
  font-size: 14px;
}

.news_page .news_label {
  grid-area: label;
  min-width: 0;
  height: 23px;
  padding: 0 10px;
  font-size: 12px;
  line-height: 23px;
}

.news_page .news_item h3 {
  display: -webkit-box;
  overflow: hidden;
  grid-area: title;
  font-size: 16px;
  line-height: 1.8;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.news_page .news_more {
  grid-area: arrow;
  width: 18px;
  height: 18px;
  justify-self: end;
}

.news_page .news_pagination {
  margin: 0;
  padding-top: 58px;
  gap: 5px;
}

.news_page .news_pagination a {
  padding: 4px 15px;
  font-size: 15px;
}

.news_page .news_pagination a::after,
.news_page .news_pagination a.current::after {
  bottom: -8px;
  width: 38px;
}

.news_page .news_pagination a.prev,
.news_page .news_pagination a.next {
  display: flex;
  align-items: center;
}

.news_page .news_pagination a.prev img,
.news_page .news_pagination a.next img {
  top: 0;
  width: 7px;
}

.news_pagination a.prev,
.news_pagination a.next {
  display: flex;
  align-items: center;
}

.news_pagination a.prev img,
.news_pagination a.next img {
  position: relative;
  top: 0;
  display: block;
  width: 7px !important;
  height: auto;
}
/* News detail page */
.news_page .news_detail {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0 25px 58px;
}

.news_page .news_detail_header {
  margin-bottom: 30px;
}

.news_page .news_detail_label {
  min-width: 0;
  height: 23px;
  margin: 0 0 22px;
  padding: 0 10px;
  font-size: 12px;
  line-height: 23px;
}

.news_page .news_detail_header h1 {
  margin: 0 0 20px;
  font-size: 20px;
  line-height: 1.8;
  letter-spacing: 0.025em;
}

.news_page .news_detail_header time {
  font-size: 14px;
}

.news_page .news_detail_body {
  font-size: 16px;
  line-height: 1.8;
  color: #221815;
}

.news_page .news_detail_body p {
  margin-bottom: 24px;
}

.news_page .news_detail_body ul {
  margin: -8px 0 28px;
}

.news_page .news_detail_body li {
  line-height: 1.9;
}
.news_detail_body a {
  color: #a19490;
  text-decoration: underline;
  text-underline-offset: 1px;
  transition: color 0.2s ease;
}
.news_page .news_detail_nav {
  margin: 50px 0 0;
  padding-top: 24px;
  grid-template-columns: 1fr auto 1fr;
}

.news_page .news_detail_nav a {
  gap: 7px;
  font-size: 16px;
}

.news_page .news_detail_back {
  font-size: 14px;
}

.news_page .news_detail_prev img,
.news_page .news_detail_next img {
  top: 0;
  width: 7px;
  margin: 0;
}

.news_page .news_detail_prev span,
.news_page .news_detail_next span,
.news_page .news_detail_prev span:first-child,
.news_page .news_detail_next span:last-child {
  font-size: 12px;
}
/* Works archive page */
body:has(.works_page) #lower_midashi {
  aspect-ratio: 390 / 150;
  height: auto;
  min-height: 0 !important;
}

body:has(.works_page) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.3;
}

body:has(.works_page) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

.works_page .works_archive {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0 25px 62px;
}

.works_page .works_category {
  margin: 0 0 45px;
}

.works_page .works_category_title {
  margin: 0 0 26px;
  font-size: 20px;
}

.works_page .works_category_list {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 18px;
}

.works_page .works_category_list li {
  display: flex;
  min-height: 40px;
  padding: 0 8px;
  border-left: 1px solid #d8d2ce;
  align-items: center;
  justify-content: center;
}

.works_page .works_category_list li:nth-child(even),
.works_page .works_category_list li:last-child {
  border-right: 1px solid #d8d2ce;
}

.works_page .works_category_list a {
  padding: 2px 2px 8px;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: normal;
  overflow-wrap: normal;
  word-break: keep-all;
  line-break: strict;
}

.works_page .works_section_title {
  margin: 0 0 28px;
  padding-left: 17px;
}

.works_page .works_section_title::before {
  width: 7px;
}

.works_page .works_section_title h2 {
  margin: 0;
  font-size: 24px;
}

.works_page .works_section_title span {
  margin-top: 5px;
  font-size: 14px;
}

.works_page .works_grid {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 32px;
}

.works_page .works_card {
  padding-bottom: 15px;
}

.works_page .works_card_image {
  margin-bottom: 11px;
}

.works_page .works_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.works_page .works_card_tags {
  gap: 5px;
  margin-bottom: 10px;
}

.works_page .works_card_tags span {
  padding: 5px 9px;
  font-size: 14px;
}

.works_page .works_card h3 {
  margin: 0 0 9px;
  font-size: 24px;
  line-height: 1.5;
}

.works_page .works_card p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 0 13px;
  font-size: 16px;
  line-height: 1.8;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.works_page .works_card_more {
  gap: 6px;
  font-size: 16px;
}

.works_page .works_card_arrow {
  width: 14px;
  height: 14px;
}

.works_page .news_pagination {
  margin: 0;
  padding-top: 58px;
  gap: 5px;
}

.works_page .news_pagination a {
  padding: 4px 15px;
  font-size: 15px;
}

.works_page .news_pagination a::after,
.works_page .news_pagination a.current::after {
  bottom: -8px;
  width: 38px;
}

/* Works category page */
.works_page .works_category_content {
  display: block;
}

.works_page .works_filter {
  width: 100%;
  margin: -13px 0 42px;
}

.works_page .works_filter_title {
  margin: 0 0 18px;
  text-align: center;
  font-size: 18px;
}

.works_page .works_filter_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 10px;
  width: 100%;
}

.works_page .works_filter_list li {
  width: 100%;
}

.works_page .works_filter_list a {
  display: flex;
  width: 100%;
  min-height: 48px;
  padding: 5px 3px;
  text-align: center;
  font-size: 14px;
  line-height: 1.35;
}

.works_page .works_category_main {
  width: 100%;
  min-width: 0;
}

.works_page .works_category_main .works_grid {
  grid-template-columns: 1fr;
}

.works_page .news_pagination a.prev,
.works_page .news_pagination a.next {
  display: flex;
  align-items: center;
}

.works_page .news_pagination a.prev img,
.works_page .news_pagination a.next img {
  top: 0;
  width: 7px;
}

/* Works detail page */
body:has(.work_detail_related) #lower_midashi {
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 150;
}

body:has(.work_detail_related) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.3;
}

body:has(.work_detail_related) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

body:has(.work_detail_related) .news_detail {
  padding: 0 25px 42px;
}

body:has(.work_detail_related) .news_detail_header {
  margin-bottom: 25px;
}

body:has(.work_detail_related) .news_detail_label {
  margin: 0 5px 15px 0;
}

body:has(.work_detail_related) .work_detail_labels {
  gap: 8px 5px;
  margin-bottom: 15px;
}

body:has(.work_detail_related) .work_detail_labels .news_detail_label {
  margin: 0;
}

body:has(.work_detail_related) .news_detail_header h1 {
  margin-bottom: 14px;
  font-size: 20px;
  line-height: 1.5;
}

body:has(.work_detail_related) .news_detail_body {
  font-size: 16px;
  line-height: 1.9;
}

body:has(.work_detail_related) .news_detail_body p {
  margin: 0 0 24px;
}

body:has(.work_detail_related) .news_detail_body img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 24px;
}

body:has(.work_detail_related) .news_detail_body h3 {
  margin: 30px 0 22px;
  padding-left: 14px;
  border-left-width: 5px;
  font-size: 18px;
  line-height: 1.55;
}

body:has(.work_detail_related) .news_detail_nav {
  margin-top: 42px;
  margin-bottom: 0;
}

body:has(.work_detail_related) .work_detail_taxonomy {
  padding: 50px 25px 48px;
  background: #f8f6f1;
}

body:has(.work_detail_related) .work_detail_category_block {
  margin-bottom: 36px;
}

body:has(.work_detail_related) .work_detail_taxonomy_title {
  margin: 0 0 24px;
  font-size: 20px;
}
body:has(.work_detail_related) .work_detail_taxonomy_title2 {
  margin: 0 0 24px;
  font-size: 18px;
}
body:has(.work_detail_related) .work_detail_category_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 0;
  width: 100%;
}

body:has(.work_detail_related) .work_detail_category_list li {
  display: flex;
  min-height: 40px;
  padding: 0 8px;
  align-items: center;
  justify-content: center;
}

body:has(.work_detail_related) .work_detail_category_list li:nth-child(even),
body:has(.work_detail_related) .work_detail_category_list li:last-child {
  border-right: 1px solid #d8d2ce;
}

body:has(.work_detail_related) .work_detail_category_list a {
  position: relative;
  width: 100%;
  padding: 2px 2px 8px;
  font-size: 13px;
  line-height: 1.45;
}

body:has(.work_detail_related) .work_detail_category_list a.active::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: #075b53;
}

body:has(.work_detail_related) .work_detail_filter_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 8px;
  width: 100%;
}

body:has(.work_detail_related) .work_detail_filter_list li {
  width: 100%;
}

body:has(.work_detail_related) .work_detail_filter_list a {
  display: flex;
  width: 100%;
  min-height: 48px;
  padding: 5px 3px;
  text-align: center;
  font-size: 14px;
  line-height: 1.35;
}

body:has(.work_detail_related) .work_detail_related_inner {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 42px 0 55px 25px;
  overflow: hidden;
}

body:has(.work_detail_related) .work_detail_related_title {
  margin: 0 25px 25px 0;
  font-size: 22px;
}

body:has(.work_detail_related) .work_detail_related_slider {
  width: 100%;
  overflow: visible;
}

body:has(.work_detail_related) .work_detail_related_slider .swiper-slide {
  width: 72vw;
  max-width: 280px;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card {
  padding-bottom: 42px;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card_image {
  display: block;
  overflow: hidden;
  aspect-ratio: 417 / 533;
  margin-bottom: 10px;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card_tags {
  margin-bottom: 8px;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card_tags span {
  padding: 4px 7px;
  font-size: 10px;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card h3 {
  margin-bottom: 7px;
  font-size: 18px;
  line-height: 1.45;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card p {
  display: -webkit-box;
  overflow: hidden;
  margin-bottom: 10px;
  font-size: 13px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

body:has(.work_detail_related) .work_detail_related_slider .works_card_more {
  bottom: 5px;
  font-size: 12px;
}

body:has(.work_detail_related) .work_detail_related_controls {
  justify-content: center;
  gap: 24px;
  margin: 34px 25px 0 0;
}

body:has(.work_detail_related) .work_detail_related_prev,
body:has(.work_detail_related) .work_detail_related_next {
  width: 24px;
  height: 24px;
}

/* Recruit page */
body:has(.recruit_page) #lower_midashi {
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 150;
}

body:has(.recruit_page) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.3;
}

body:has(.recruit_page) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

.recruit_page {
  padding: 46px 25px 58px;
}

.recruit_page .recruit_lead {
  margin: 0 0 36px;
  font-size: 16px;
  line-height: 1.8;
  text-align: center;
}

.recruit_page .recruit_type_nav {
  position: relative;
  width: calc(100% - 16px);
  margin: 0 auto 25px;
}

.recruit_page .recruit_type_nav::after {
  position: absolute;
  right: -8px;
  bottom: -1px;
  left: -8px;
  z-index: 2;
  width: auto;
  height: 1px;
  background: #d8d2ce;
  content: "";
  pointer-events: none;
  transform: none;
}

.recruit_page .recruit_type_nav a {
  position: relative;
  z-index: 1;
  height: 48px;
  border-radius: 6px 6px 0 0;
  font-size: 16px;
}

.recruit_page .recruit_department_nav {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  border-top: 0;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 12px 35px;
}

.recruit_page .recruit_department_nav a {
  font-size: 16px;
  line-height: 1.8;
  text-align: left;
}

.recruit_page .recruit_department_nav a::after {
  width: 5px;
  height: 5px;
  margin: 0 0 4px 7px;
}

.recruit_page .recruit_jobs {
  width: 100%;
  margin: 42px 0 0;
}

.recruit_page .recruit_job {
  scroll-margin-top: 100px;
}

.recruit_page .recruit_job + .recruit_job {
  margin-top: 48px;
}

.recruit_page .recruit_job_kicker {
  margin: 0 0 22px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.recruit_page .recruit_job h2 {
  margin: 0 0 20px;
  padding-left: 15px;
  font-size: 20px;
  line-height: 1.8;
}

.recruit_page .recruit_job h2::before {
  width: 7px;
}

.recruit_page .recruit_table_wrap {
  overflow: visible;
}

.recruit_page table,
.recruit_page tbody,
.recruit_page tr,
.recruit_page th,
.recruit_page td {
  display: block;
  width: 100%;
}

.recruit_page table {
  table-layout: auto;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.8;
}

.recruit_page tr {
  border: 1px solid #d9d5d1;
  border-bottom: 0;
}

.recruit_page tr:last-child {
  border-bottom: 1px solid #d9d5d1;
}

.recruit_page th,
.recruit_page td {
  border: 0;
  padding: 10px 12px;
}

.recruit_page th {
  background: #f7f4ef;
  font-size: 16px;
}

.recruit_page td {
  padding-top: 12px;
  padding-bottom: 16px;
  overflow-wrap: anywhere;
}

.recruit_page .recruit_job h2.recruit_closed_heading {
  margin-top: 46px;
}

.recruit_page .recruit_closed {
  margin: 16px 0 0;
  font-size: 16px;
}

.recruit_page .recruit_apply_button {
  margin-top: 23px;
}

.recruit_parttime_page .recruit_type_nav::after {
  width: auto;
}

.recruit_parttime_page .parttime_jobs {
  margin: 32px 0 0;
  margin-bottom: 0;
}

.recruit_parttime_page .parttime_jobs .recruit_job_kicker {
  margin-bottom: 24px;
  font-size: 20px;
  font-weight: 500;
}

.recruit_parttime_page .parttime_jobs strong {
  font-weight: 500;
}

/* Privacy policy page */
body:has(.privacypolicy_page) #lower_midashi {
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 150;
}

body:has(.privacypolicy_page) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.25;
}

body:has(.privacypolicy_page) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

.privacypolicy_page .privacy_inner {
  width: auto;
  margin: 0;
  padding: 48px 25px 62px;
}

.privacypolicy_page .privacy_section + .privacy_section {
  margin-top: 52px;
}

.privacypolicy_page .privacy_section > h2 {
  margin: 0 0 25px;
  padding: 0 0 0 22px;
  font-size: 20px;
  line-height: 1.8;
  letter-spacing: 0.035em;
}

.privacypolicy_page .privacy_section > h2::before {
  inset: 0 auto 0 0;
  width: 7px;
  height: 100%;
}

.privacypolicy_page p,
.privacypolicy_page li {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.02em;
}

.privacypolicy_page .privacy_signature {
  margin: 24px 0 30px;
}

.privacypolicy_page .privacy_policy_list {
  padding-left: 20px;
}

.privacypolicy_page .privacy_policy_list li + li {
  margin-top: 18px;
}

.privacypolicy_page .privacy_contact {
  margin-top: 26px;
  padding-left: 0;
}

.privacypolicy_page .privacy_contact p + p {
  margin-top: 10px;
}

.privacypolicy_page .privacy_handling > p {
  margin-bottom: 30px;
}

.privacypolicy_page .privacy_article + .privacy_article {
  margin-top: 40px;
}

.privacypolicy_page .privacy_article h3 {
  margin: 0 0 18px;
  padding: 0 0 8px;
  font-size: 16px;
  line-height: 1.65;
}

.privacypolicy_page .privacy_article h4 {
  margin: 22px 0 9px;
  font-size: 16px;
  line-height: 1.7;
}

.privacypolicy_page .privacy_article p + p {
  margin-top: 16px;
}

.privacypolicy_page .privacy_article ol,
.privacypolicy_page .privacy_article ul {
  padding-left: 21px;
}

.privacypolicy_page .privacy_article a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.privacypolicy_page small {
  font-size: 16px;
  line-height: 1.8;
}

/* Company page */
body:has(.company_page) #lower_midashi {
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 150;
}

body:has(.company_page) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.25;
}

body:has(.company_page) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

.company_page {
  margin-top: 0;
}

.company_page .company_visions {
  padding: 48px 25px 55px;
}

.company_page .company_philosophy,
.company_page .company_associate {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.company_page .company_section_heading h2 {
  font-size: 30px;
  line-height: 1.3;
}

.company_page .company_section_heading .company_heading_ja {
  gap: 7px;
  margin-top: 8px;
  font-size: 16px;
}

.company_page .company_section_heading .company_heading_ja::before {
  width: 10px;
  height: 6px;
  background-color: #075b53;
}

.company_page .company_philosophy {
  position: relative;
  min-height: 0;
  padding-top: 105px;
}

.company_page .company_philosophy .company_section_heading {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 72%;
  padding: 0 0 30px;
  border-radius: 0 0 5px 0;
  background: #fff;
}

.company_page .company_philosophy .company_section_heading h2 {
  font-size: 30px;
}

.company_page .company_philosophy .company_heading_ja {
  margin-top: 15px;
  font-size: 16px;
}

.company_page .company_philosophy .company_copy,
.company_page .company_vision_header .company_copy,
.company_page .company_associate_body .company_copy {
  margin: 20px 0 18px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
  white-space: normal;
}

.company_page .company_philosophy .company_copy {
  margin-top: 26px;
  margin-bottom: 0;
  font-size: 20px;
  white-space: nowrap;
}

.company_page .company_philosophy > img,
.company_page .company_vision > img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: 342 / 240;
  margin: 0;
  object-fit: cover;
}

.company_page .company_philosophy > img {
  position: relative;
  z-index: 1;
  aspect-ratio: 342 / 240;
  border-radius: 6px;
  object-position: center;
}

.company_page .company_vision {
  margin-top: 48px;
}

.company_page .company_vision_header {
  display: block;
  width: 100%;
  margin: 0;
}

.company_page .company_associate {
  margin-top: 48px;
}

.company_page .company_associate_body {
  display: flex;
  margin-top: 16px;
  padding: 0;
  flex-direction: column;
  gap: 18px;
}

.company_page .company_associate_body .company_copy {
  order: 1;
  margin: 0;
}
.company_page .company_associate_body p b {
  display: block;
  font-family: lato, sans-serif;
  font-size: 24px;
  font-weight: 400;
  margin-bottom: -20px;
  line-height: 2;
}
.company_page .company_associate_body img {
  order: 2;
  width: 100%;
  margin: 0 auto;
}

.company_page .company_tables {
  width: auto;
  margin: 0;
  padding: 0 25px 62px;
}

.company_page .company_table_section + .company_table_section {
  margin-top: 50px;
}

.company_page .company_table_section h2 {
  position: relative;
  margin: 0 0 26px;
  padding: 3px 0 3px 20px;
  font-size: 20px;
  line-height: 1.4;
  border: none;
}
.company_page .company_table_section h2::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 7px;
  height: 36px;
  background: linear-gradient(to bottom, #075b53, #4db7b9);
  content: "";
}
.company_page .company_table_wrap {
  overflow: visible;
}

.company_page .company_table,
.company_page .company_table tbody,
.company_page .company_table tr,
.company_page .company_table th,
.company_page .company_table td {
  display: block;
  width: 100%;
}

.company_page .company_table {
  table-layout: auto;
  font-size: 12px;
  line-height: 1.7;
}

.company_page .company_table tr {
  border: 1px solid #d8d4cf;
  border-bottom: 0;
}

.company_page .company_table tr:last-child {
  border-bottom: 1px solid #d8d4cf;
}

.company_page .company_table th,
.company_page .company_table td {
  padding: 9px 11px;
  border: 0;
  font-size: 16px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.company_page .company_table th {
  background: #f6f3ee;
  border-bottom: 1px solid #d8d4cf;
}

.company_page .company_table td {
  padding-top: 11px;
  padding-bottom: 13px;
}

/* Contact page */
html:has(.contact_page) {
  scroll-padding-top: 90px;
}

body:has(.contact_page) #lower_midashi {
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 150;
}

body:has(.contact_page) #lower_midashi h2 {
  font-size: 30px;
  line-height: 1.25;
}

body:has(.contact_page) #lower_midashi h2 div {
  margin-top: 6px;
  font-size: 16px;
}

.contact_page,
.contact_page * {
  box-sizing: border-box;
}

.contact_page * {
  margin-top: 0;
  margin-bottom: 0;
}

.contact_page {
  padding: 28px 25px 58px;
}

.contact_page .contact_form_section {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  margin-bottom: 100px;
}
.contact_page .contact_phone_section {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}
.contact_page .contact_type_label {
  margin: 0 0 48px;
  font-size: 24px;
  font-weight: 500;
}

.contact_page .recruit_type_nav {
  scroll-margin-top: 110px;
  position: relative;
  width: calc(100% - 16px);
  margin: 0 auto;
}

.contact_page .recruit_type_nav::after {
  position: absolute;
  right: -8px;
  bottom: -1px;
  left: -8px;
  z-index: 2;
  display: block;
  width: auto;
  height: 1px;
  background: #d8d2ce;
  content: "";
  pointer-events: none;
  transform: none;
}

.contact_page .recruit_type_nav button {
  position: relative;
  z-index: 1;
  height: 64px;
  border-radius: 6px 6px 0 0;
  background: #f5f2ed;
  color: #8a837f;
  font-size: 16px;
  line-height: 1.5;
  text-align: center;
}

.contact_page .contact_steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 42px 0 21px;
}

.contact_confirm_page .contact_steps,
.contact_result_page .contact_steps {
  margin-top: 14px;
}

.contact_page .contact_steps li {
  gap: 1px;
  font-size: 14px;
}

.contact_page .contact_steps li:not(:last-child)::after {
  top: 17px;
  left: calc(50% + 11px);
  width: calc(100% - 22px);
}

.contact_page .contact_steps span,
.contact_page .contact_steps .is-current span {
  width: 23px;
  height: 23px;
  border-width: 5px;
}

.contact_page .contact_lead {
  margin: 0 0 32px;
  font-size: 16px;
  line-height: 1.8;
  text-align: left;
}

.contact_page .contact_field + .contact_field {
  margin-top: 23px;
}

.contact_page .contact_field label,
.contact_page .contact_privacy legend {
  margin: 0 0 9px;
  font-size: 16px;
  line-height: 1.65;
}

.contact_page .is-required,
.contact_page .is-optional {
  margin-left: 5px;
  padding: 0 5px;
  font-size: 14px;
}

.contact_page .contact_field small {
  display: block;
  margin: 4px 0 0;
  font-size: 14px;
}

.contact_page .contact_field input,
.contact_page .contact_field select {
  height: 54px;
  padding: 0 13px;
  font-size: 16px;
}

.contact_page .contact_field textarea {
  min-height: 210px;
  padding: 14px 13px;
  font-size: 16px;
  line-height: 1.7;
}

.contact_page .contact_select_wrap::after {
  right: 17px;
}

.contact_page .contact_privacy {
  margin-top: 28px;
}

.contact_page .contact_privacy label {
  gap: 8px;
  margin-top: 2px;
  font-size: 16px;
  line-height: 1.6;
}

.contact_page .contact_privacy input {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.contact_page .contact_privacy > a {
  margin-top: 7px;
  font-size: 14px;
}

.contact_page .contact_submit {
  width: 67%;
  height: 67px;
  margin-top: 17px;
  margin-bottom: -22px;
  font-size: 14px;
}

.contact_result_page,
.contact_confirm_page {
  min-height: 420px;
}

#contact-confirm-start {
  scroll-margin-top: 100px;
}

.contact_result_heading {
  margin-bottom: 25px;
  font-size: 22px;
  line-height: 1.5;
}

.contact_result_message {
  margin-bottom: 35px;
  font-size: 16px;
  line-height: 1.8;
  text-align: left;
}

.contact_error_list {
  margin: -10px 0 30px;
  padding: 18px 18px 18px 38px;
  font-size: 14px;
}

.contact_confirm_table,
.contact_confirm_table tbody,
.contact_confirm_table tr,
.contact_confirm_table th,
.contact_confirm_table td {
  display: block;
  width: 100%;
}

.contact_confirm_table {
  table-layout: auto;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.8;
}

.contact_confirm_table tr {
  border: 1px solid #d9d5d1;
  border-bottom: 0;
}

.contact_confirm_table tr:last-child {
  border-bottom: 1px solid #d9d5d1;
}

.contact_confirm_table th,
.contact_confirm_table td {
  padding: 10px 12px;
  border: 0;
}

.contact_confirm_table th {
  background: #f7f4ef;
  font-size: 16px;
}

.contact_confirm_table td {
  padding-top: 12px;
  padding-bottom: 16px;
  overflow-wrap: anywhere;
}

.contact_confirm_actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  margin: 35px auto 0;
}

.contact_confirm_actions form {
  width: 100%;
}

.contact_confirm_actions > .contact_submit,
.contact_confirm_actions form .contact_submit {
  width: 100%;
}

.contact_page .contact_phone_section {
  margin-top: 62px;
  margin-bottom: 0;
}

.contact_page .contact_phone_section > h2 {
  margin: 0 0 22px;
  padding: 4px 0 4px 16px;
  font-size: 20px;
  line-height: 1.45;
}

.contact_page .contact_phone_section > h2::before {
  inset: 0 auto 0 0;
  width: 7px;
  height: 100%;
}

.contact_page .contact_phone_section > p {
  margin: 0 0 30px;
  font-size: 16px;
  line-height: 1.8;
}

.contact_page .contact_phone_list article + article {
  margin-top: 40px;
}

.contact_page .contact_phone_list h3 {
  margin: 0 0 12px;
  padding: 0 0 7px;
  font-size: 16px;
  line-height: 1.65;
}

.contact_page .contact_phone_list p,
.contact_page .contact_phone_list article > a {
  margin: 0;
  color: #4b4242;
  font-size: 16px;
  line-height: 1.8;
}

.contact_page .contact_phone_list article > a {
  display: inline-block;
  margin-top: 5px;
  text-decoration: underline;
}

/* マイナンバー取扱方針 サイトの利用について */
body:has(.privacypolicy_page) #lower_midashi.maina {
  height: auto;
  min-height: 0 !important;
  aspect-ratio: 390 / 188;
}
