/* Override the legacy inline viewport scaling with a responsive page scale.
   CSS responds immediately to resizing; wide screens get a bounded canvas. */
html {
  font-size: 10vw !important;
  background: #f3f4f6;
}

@media (min-width: 768px) {
  html {
    --aoyama-page-width: calc(100vw - 48px);
    font-size: calc(var(--aoyama-page-width) / 10) !important;
  }
}
@media (min-width: 1024px) {
  html {
    --aoyama-page-width: clamp(960px, 52vw, 1280px);
    font-size: calc(var(--aoyama-page-width) / 10) !important;
  }
}

body {
  width: 100%;
  max-width: var(--aoyama-page-width, 1280px);
  margin: 0 auto;
  background: #fff;
  display: flow-root;
}

/* Vue mounts an inner #app inside the mount element. Both stay contained;
   flow-root also includes the floated footer in the page background. */
#app {
  width: 100%;
  display: flow-root;
}

/* Full-width bands share the same responsive page edges. */
:root .home_card {
  width: 100%;
  height: auto;
}
:root .home_card_container {
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 818;
}
:root .home_card_container .el-carousel__container {
  height: 100%;
}
:root .home_card_container img {
  display: block;
  width: 100%;
  height: auto;
}
:root .home_yewu_content,
:root .home_yewu_item {
  width: 100%;
}
:root .home_yewu_item {
  display: flex;
  height: 5.83333rem;
}
:root .home_yewu_item_left {
  width: 7.5%;
}
:root .home_yewu_item_center {
  position: relative;
  width: 39%;
}
:root .home_yewu_item_right {
  width: 53.5%;
}
:root .home_yewu_item_image {
  width: 100%;
  height: auto;
}
:root .home_yewu_item_image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
:root .home_yewu_line1,
:root .home_yewu_line1_a,
:root .home_yewu_line2 {
  width: 100%;
}
:root .home_yewu_line2_a {
  box-sizing: border-box;
  width: 100%;
  height: .58333rem;
  display: flex;
  align-items: center;
  line-height: 1.3;
}
:root .home_yewu_info {
  box-sizing: border-box;
  width: 100%;
}
:root .home_yewu_info_content {
  width: 100%;
}

/* Align logo and navigation inside a shared inset header. */
:root .header_body {
  box-sizing: border-box;
  width: 100%;
  height: 1.45rem;
  padding: 0 .4rem;
}
:root .header_center {
  height: 100%;
  align-items: center;
  gap: .3rem;
}
:root .header_log_big {
  flex: 0 0 2.91667rem;
}
:root .header_log_big img {
  display: block;
  float: none;
}
:root .header_nav {
  flex: 1;
  min-width: 0;
  height: 100%;
}
:root .header_nav .menu {
  position: absolute;
  top: auto;
  bottom: .24rem;
  left: 0;
  width: 100%;
  height: .5rem;
  padding: 0;
  background: #fff;
  border-radius: .14rem;
  box-shadow: 0 0 .08rem #0003;
}
:root .header_menu {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 .08rem;
  margin: 0;
}
:root .header_menu .el-menu-item {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1.3;
  text-align: center;
  border-bottom: 0;
}
:root .header_menu .menu_divider {
  flex: 0 0 .00694rem;
  height: .24rem;
  margin: 0;
}

/* Center the four page links in the full page, rather than an old narrow,
   left-aligned wrapper. Images contain the existing icons and labels. */
:root .home_link {
  box-sizing: border-box;
  width: 100%;
  height: auto;
  padding: 1rem .65rem 1.1rem;
}
:root .home_link_list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .26rem;
  width: 100%;
  max-width: 8.7rem;
  height: auto;
  padding: 0;
  margin: 0 auto;
}
:root .home_link_list > div {
  float: none;
  width: 100%;
  height: auto;
  margin: 0;
  overflow: hidden;
}
:root .home_link_list > div img {
  display: block;
  float: none;
  width: 100%;
  height: auto;
}

/* Allocate more space to addresses, with equal outer columns and consistent
   padding. Content determines height so longer addresses cannot overflow. */
:root .footer {
  float: none;
  height: auto;
  min-width: 0;
}
:root .footer_body {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr);
  width: 100%;
  height: auto;
  padding: .35rem .4rem;
}
:root .footer_body > div {
  box-sizing: border-box;
  float: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  width: auto;
  height: auto;
  padding: .08rem .3rem;
}
:root .footer_body_company_info {
  width: 100%;
  height: auto;
  margin: 0;
}
:root .footer_body_company {
  float: none;
  width: 100%;
  max-width: none;
  white-space: pre-line;
  margin: 0 auto;
  line-height: 1.5;
}
:root .footer_body_company_en {
  float: none;
  width: 100%;
  line-height: 1.6;
}
:root .footer_body_content_center {
  gap: .07rem;
}
:root .footer_body_contact {
  float: none;
  display: flex;
  align-items: flex-start;
  gap: .08rem;
  min-width: 0;
  padding: 0;
}
:root .footer_body_contact_img {
  float: none;
  flex: 0 0 .20833rem;
}
:root .footer_body_contact_img img {
  display: block;
}
:root .footer_body_contact_info {
  float: none;
  flex: 1;
  min-width: 0;
  max-width: none;
  padding: 0;
  line-height: 1.65;
  letter-spacing: .01rem;
  overflow-wrap: anywhere;
}
:root .footer_body_code_info {
  width: 100%;
  height: auto;
  margin: 0;
}
:root .footer_body_code_img,
:root .footer_body_code_img img {
  display: block;
  float: none;
  width: 1rem;
  height: 1rem;
  margin: 0 auto;
}
:root .footer_body_code_ms {
  float: none;
  width: 100%;
  padding-top: .08rem;
  line-height: 1.5;
}
:root .footer_bottom {
  box-sizing: border-box;
  height: auto;
  min-height: .3rem;
  padding: .08rem .2rem;
  line-height: 1.5;
}

/* Inner-page hero photographs share the page edges without stretching. */
:root :is(.company_card, .cars_card, .booking_card, .price_card, .work_card),
:root :is(.company_card_container, .cars_card_container, .booking_card_container, .price_card_container, .work_card_container) {
  width: 100%;
  height: auto;
}
:root :is(.company_card_container, .cars_card_container, .booking_card_container, .price_card_container, .work_card_container) img {
  display: block;
  width: 100%;
  height: auto;
}

/* Vehicle rows use the same geometry as the home services. */
:root .cars_yewu_content,
:root .cars_yewu_item {
  width: 100%;
}
:root .cars_yewu_item {
  display: flex;
  height: 5.83333rem;
}
:root .cars_yewu_item_left {
  width: 7.5%;
}
:root .cars_yewu_item_center {
  position: relative;
  width: 39%;
}
:root .cars_yewu_item_right {
  width: 53.5%;
}
:root .cars_yewu_item_image {
  width: 100%;
  height: auto;
}
:root .cars_yewu_item_image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
:root .cars_yewu_line1,
:root .cars_yewu_line1_a,
:root .cars_yewu_line2 {
  width: 100%;
}
:root .cars_yewu_line2_a {
  box-sizing: border-box;
  width: 100%;
  height: .58333rem;
  display: flex;
  align-items: center;
  line-height: 1.3;
}
:root .cars_yewu_info {
  box-sizing: border-box;
  width: 100%;
}
:root .cars_yewu_info_content {
  width: 100%;
}

/* Editable company content must wrap and grow with each entry. */
:root .company_yewu_item_right { min-width: 0; }
:root .company_yewu_item_info { height: auto; min-height: .27778rem; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
:root .company_yewu_item > [class^="company_yewu_item_left"] { height: auto; min-width: 0; overflow-wrap: anywhere; }
:root .company_yewu_item_info:empty { display: none; }
:root .footer_body_contact_info { white-space: pre-wrap; }
:root .footer_body_contact:has(.footer_body_contact_info:empty) { display: none; }

/* Wide desktop screens get a larger canvas, with readable type caps. */
:root .custom-indicators {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: .14rem auto 0;
  padding: 0;
}
:root .custom-indicators li { flex-shrink: 0; }
:root .header_menu .el-menu-item { font-size: min(.16667rem, 24px); }
:root :is(.home_yewu_info_content, .cars_yewu_info_content) { font-size: min(.1875rem, 26px); }
:root :is(.home_yewu_line2_a, .cars_yewu_line2_a) { font-size: min(.29167rem, 42px); }
:root :is(.home_lanmu_center, .company_lanmu_center, .cars_lanmu_center, .booking_lanmu_center, .price_lanmu_center, .work_lanmu_center) { font-size: min(.22222rem, 32px); }
:root .company_yewu_item_info { font-size: min(.13889rem, 22px); }
:root .company_yewu_item > [class^="company_yewu_item_left"] { font-size: min(.20833rem, 28px); }
:root :is(.footer_body_contact, .footer_body_code_ms, .footer_bottom) { font-size: min(.11111rem, 16px); }
:root .footer_body_company { font-size: min(.26389rem, 36px); }
:root .footer_body_company_en { font-size: min(.13889rem, 20px); }
:root :is(.booking_form_item_label, .booking_form_item_label1, .booking_form_item_label2, .work_form_item_label, .work_form_item_label1, .work_form_item_label2) :is(.el-form-item__label, .el-input, .el-select__wrapper, .el-form-item__content) { font-size: min(.19444rem, 26px); }
:root :is(.price_yewu_item_left1, .price_yewu_item_left2, .price_yewu_item_info2, .work_yewu_item_left1, .work_yewu_item_left2) { font-size: min(.20833rem, 28px); }

/* Horizontal gestures belong to the carousel; vertical scrolling stays native. */
:root .home_card { touch-action: pan-y pinch-zoom; }
:root .home_card_container img { user-select: none; -webkit-user-drag: none; }
