/* Mobile overrides. The values are based on a 375px-wide design canvas. */
@media (max-width: 767px) {
  :root {
    --sp-gutter: 5.333vw;
    --content-width: calc(100vw - (var(--sp-gutter) * 2));
    --site-content-width: var(--content-width);
  }

  html,
  body {
    min-width: 0;
    width: 100%;
    overflow-x: hidden;
  }

  body {
    font-size: 4vw;
  }

  /* Site footer */
  .footer {
    overflow: hidden;
  }

  .footer__inner {
    width: var(--content-width);
    padding: 16vw 0 13.333vw;
  }

  .footer__nav {
    display: block;
    width: 100%;
    margin-bottom: 7.4vw;
  }

  .footer__nav-list {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .footer__nav-list li + li {
    border-left: 1px solid currentcolor;
  }

  .footer__nav-list a {
    display: block;
    padding: 0 3.067vw;
    color: inherit;
    font-size: 3.2vw;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
  }

  .footer__message,
  .footer__company {
    font-size: 4.267vw;
    line-height: 1.8;
  }

  .footer__message {
    width: 100%;
    font-size: 2.5vw;
    letter-spacing: .12em;
  }

  .footer__logo {
    width: 50%;
    min-width: 0;
    margin-top: 10.667vw;
  }

  .footer__logo-image {
    max-width: 100%;
  }

  .footer__company {
    margin-top: 5.8vw;
    font-size: 2.5vw;
  }

  .footer__links {
    gap: 6.667vw;
    margin-top: 8vw;
  }

  .footer__link--social {
    width: 6.4vw;
    height: 6.4vw;
  }

  .footer__link--privacy {
    width: 11.733vw;
    height: 9.333vw;
    margin-left: .533vw;
    padding: 1.2vw 1.6vw 1.333vw;
  }

  /* Shared mobile header */
  .header {
    height: 19.2vw;
  }

  .header__inner {
    width: calc(100% - 10.667vw);
  }

  .header__logo {
    width: 42.667vw;
  }

  .header__nav {
    display: none;
  }

  .header__nav-list {
    display: none;
  }

  .header__contact {
    gap: 1.867vw;
    width: 29.333vw;
    height: 10.667vw;
    font-size: 3.2vw;
  }

  .header__contact-icon {
    width: 3.733vw;
    height: 2.933vw;
  }

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

  .mobile-menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 8.533vw;
    height: 6.4vw;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .mobile-menu-toggle__line {
    display: block;
    width: 100%;
    height: .6vw;
    border-radius: 999px;
    background: var(--color-primary);
  }

  .mobile-menu {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100dvh;
    padding: 7.467vw 8vw 8vw;
    overflow-y: auto;
    visibility: hidden;
    opacity: 0;
    background: #fff;
    transition: visibility .25s, opacity .25s ease;
  }

  .mobile-menu.is-open {
    visibility: visible;
    opacity: 1;
  }

  .mobile-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  .mobile-menu__logo {
    width: 53.333vw;
  }

  .mobile-menu__close {
    position: relative;
    width: 9.6vw;
    height: 9.6vw;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .mobile-menu__close span {
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    width: 100%;
    height: .8vw;
    border-radius: 999px;
    background: var(--color-primary);
  }

  .mobile-menu__close span:first-child { transform: rotate(45deg); }
  .mobile-menu__close span:last-child { transform: rotate(-45deg); }

  .mobile-menu__nav {
    margin-top: 21.333vw;
  }

  .mobile-menu__list {
    display: flex;
    flex-direction: column;
    gap: 16vw;
    margin: 0;
    padding: 0;
    color: var(--color-primary);
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-size: 6.4vw;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    list-style: none;
  }

  .mobile-menu__socials {
    display: flex;
    gap: 8vw;
    margin-top: 18.667vw;
  }

  .mobile-menu__socials a {
    display: block;
    width: 12.8vw;
    height: 12.8vw;
  }

  .mobile-menu__socials img {
    width: 100%;
    height: 100%;
  }

  /* Home */
  .hero {
    width: calc(100% - var(--sp-gutter));
    min-height: 133.333vw;
    margin-left: var(--sp-gutter);
    border-radius: 8.533vw 0 0 8.533vw;
    background-position: 58% center;
  }

  .hero__inner {
    min-height: 133.333vw;
    padding: 0 5.333vw 0 0;
  }

  .hero__title {
    margin-bottom: 4.267vw;
    font-size: 7.467vw;
    line-height: 1.5;
  }

  .hero__title-line {
    display: block;
  }

  .hero__lead {
    width: 73.333vw;
    font-size: 3.733vw;
    line-height: 1.8;
  }

  .hero__lead-break {
    display: block;
  }

  .about {
    min-height: 0;
    margin-top: -16vw;
    padding: 29.333vw 0 16vw;
  }

  .about::before { width: 42.667vw; height: 32vw; }
  .about::after { width: 53.333vw; height: 32vw; }
  .about__decoration--bottom-left { display: none; }

  .about__heading,
  .strength__heading,
  .instagram__heading {
    gap: 3.2vw;
    align-items: flex-end;
  }

  .about__heading { margin-bottom: 8vw; }

  .about__title,
  .strength__title,
  .instagram__title {
    gap: 2.667vw;
    font-size: 11.2vw;
  }

  .about__title-icon,
  .strength__title-icon,
  .instagram__title-icon {
    width: 7.467vw;
    height: 7.467vw;
    padding-top: 1.333vw;
  }

  .about__subtitle,
  .strength__subtitle,
  .instagram__subtitle { font-size: 3.733vw; }

  .about__body { display: block; }

  .about__image {
    width: 100%;
    height: 61.333vw;
    margin-bottom: 8vw;
    border-radius: 5.333vw;
  }

  .about__content { padding: 0; }

  .about__catch {
    margin-bottom: 6.4vw;
    font-size: 5.333vw;
    line-height: 2.05;
  }

  .about__catch-line { padding: 1.067vw 2.133vw 1.333vw; }

  .about__catch-break--mobile { display: initial; }
  .about__catch-break--desktop { display: none; }

  .about__text,
  .strength__text,
  .top-company__text {
    font-size: 3.733vw;
    line-height: 2.15;
  }

  .about__text { margin-bottom: 8vw; }

  .about__buttons {
    flex-direction: column;
    gap: 4.267vw;
  }

  .about__button,
  .strength__button,
  .instagram__follow {
    width: 61.333vw;
    height: 14.933vw;
    margin-inline: auto;
    font-size: 4vw;
    border-width: .533vw;
  }

  .strength { padding: 16vw 0 18.667vw; }
  .strength__heading,
  .instagram__heading {
    flex-direction: column;
    align-items: flex-start;
  }
  .strength__heading {
    margin-bottom: 16vw;
  }
  .strength__list { gap: 18.667vw; }

  .strength__item {
    display: flex;
    flex-direction: column;
    gap: 7.467vw;
  }

  .strength__item--reverse .strength__content { order: 1; }
  .strength__item--reverse .strength__image { order: 2; }
  .strength__content { width: 100%; padding: 0; }

  .strength__number {
    margin-bottom: 5.333vw;
    padding-bottom: 1.6vw;
    font-size: 4.267vw;
  }

  .strength__item-title {
    margin-bottom: 4.8vw;
    font-size: 6.4vw;
  }

  .strength__image {
    width: 100%;
    height: 58.667vw;
    border-radius: 5.333vw;
  }

  .strength__button { margin-top: 16vw; }
  .strength__decoration { width: 85.333vw; height: 48vw; }
  .strength__decoration--top {left: 50vw;}
  .strength__decoration--middle { right: 50.667vw; top: 154.667vw; }
  .strength__decoration--bottom {right: -32.667vw;/* transform: initial; */display: none;}

  .top-company { min-height: 0; padding-bottom: 16vw; }
  .top-company__visual { width: calc(100% - var(--sp-gutter)); margin-right: var(--sp-gutter); }
  .top-company__main-image {min-height: 66.667vw;object-fit: cover;object-position: right;margin-top: -7vw;z-index: 1;position: relative;}
  .top-company__inner { padding-top: 12.8vw; }
  .top-company__intro { display: block; }

  .top-company__logo {
    width: 37.333vw;
    margin: 0 auto 10.667vw;
  }

  .top-company__heading {
    gap: 3.2vw;
    margin-bottom: 5.333vw;
    font-size: 6.4vw;
  }

  .top-company__heading-icon { width: 8.533vw; height: 5.333vw; }
  .top-company__continuation { margin-top: 5.333vw; }
  .instagram { padding: 16vw 0 18.667vw; }
  .instagram__heading { margin-bottom: 10.667vw; }

  .instagram__gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 3.2vw;
  }

  .instagram__post:last-child { grid-column: 1 / -1; width: calc((100% - 3.2vw) / 2); margin: auto; }
  .instagram__follow { margin-top: 12.8vw; }

  /* Business page */
  .intro-title { min-height: 29.333vw; }
  .intro-title__text,
  .company-title__text { font-size: 8vw; }

  .intro-business { min-height: 0; padding: 13.333vw 0; }
  .intro-business__heading {
    margin-bottom: 6.4vw;
    padding: 1.067vw 2.667vw 1.6vw;
    font-size: 6.4vw;
  }

  .intro-business__heading-break {
    display: block;
  }

  .intro-business__description,
  .furusato__lead,
  .revitalization__lead {
    font-size: 3.733vw;
    line-height: 2.1;
  }

  .intro-business__description { margin-bottom: 8.533vw; text-align: left; }
  .intro-business__description br,
  .furusato__lead br,
  .revitalization__lead br,
  .rinen__message br { display: none; }

  .intro-business__links { flex-direction: column; gap: 4.267vw; align-items: center; }
  .intro-business__link {
    width: 80vw;
    height: 14.933vw;
    font-size: 4.267vw;
    border-width: .8vw;
  }

  .intro-business__link::after { right: 8vw; font-size: 2.667vw; }
  .furusato { padding-top: 2.667vw; }
  .furusato::before,
  .revitalization::before {left: 61.333vw;width: 69.333vw;height: 45.333vw;display: none;}

  .furusato__title-wrap,
  .revitalization__title-wrap,
  .section-heading-wrap {
    width: 69.333vw;
    height: 45.333vw;
    margin-bottom: 8vw;
  }

  .furusato__logo,
  .section-heading-wrap::before {width: 69.333vw;height: 40vw;}
  .furusato__title,
  .revitalization__title,
  .section-heading {
    padding-top: 13.333vw;
    font-size: 6.4vw;
  }

  .furusato__catch,
  .revitalization__catch,
  .rinen__catch {
    font-size: 5.8vw;
    line-height: 1.65;
  }

  .furusato__catch--intro { margin-bottom: 5.333vw; }
  .furusato__services,
  .furusato__results,
  .revitalization__activities { width: 100%; margin-top: 16vw; }

  .furusato__heading,
  .revitalization__heading {
    gap: 3.733vw;
    margin-bottom: 9.6vw;
    font-size: 5.867vw;
  }

  .furusato__heading::before,
  .revitalization__heading::before { width: 6.4vw; height: .8vw; }
  .furusato__list { grid-template-columns: repeat(2, 1fr); gap: 10.667vw 5.333vw; }
  .furusato__item::before { top: 2.667vw; left: 1.333vw; width: 9.6vw; height: 9.6vw; font-size: 4.8vw; }
  .furusato__image { width: 100%; height: 37.333vw; }
  .furusato__item-title { font-size: 3.733vw; line-height: 1.75; }
  .furusato__item-title br { display: none; }
  .furusato__approach { padding: 20.267vw 0 2.667vw; }
  .furusato__approach-heading { margin-bottom: 8vw; }
  .furusato__catch--approach { margin-bottom: 2.667vw; font-size: 6.667vw; }
  .furusato__approach-subtitle { font-size: 4.267vw; }
  .furusato__lead--approach { width: 100%; font-size: 3.733vw; }
  .furusato__approach-diagram { width: 100%; margin-top: 10.667vw; }
  .furusato__approach-list { grid-template-columns: 1fr; gap: 10.667vw; width: 100%; margin: 12.8vw auto; }
  .furusato__approach-image { height: 61.333vw; border-radius: 5.333vw; }
  .furusato__approach-title {margin: 4.267vw 2.667vw 0;font-size: 4vw;}
  .furusato__approach-title br { display: none; }
  .furusato__results-body { display: block; }
  .furusato__results-image { width: 100%; height: 61.333vw; margin-bottom: 6.4vw; border-radius: 5.333vw; }
  .furusato__results-content { padding: 0; }
  .furusato__results-summary,
  .furusato__results-table { font-size: 3.733vw; }
  .furusato__results-table th { width: 25.6vw; }
  .furusato__results-table th,
  .furusato__results-table td { padding: 2.933vw 0; }

  .revitalization { padding: 13.333vw 0 18.667vw; }
  .revitalization__title-wrap::before { width: 45.333vw; height: 50.667vw; background-size: 45.333vw auto; }
  .revitalization__title { padding-top: 16vw; }
  .revitalization__catch { margin-bottom: 5.333vw; }
  .revitalization__catch-break { display: initial; }
  .revitalization__lead { text-align: left; }
  .revitalization__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12.8vw 5.333vw; }
  .revitalization__item { width: auto; }
  .revitalization__image { width: 100%; height: 40vw; margin-bottom: 4.267vw; }
  .revitalization__item-title { font-size: 4vw; }
  .revitalization__description { margin-top: 2.667vw; font-size: 3.467vw; }
  .revitalization__description br { display: none; }
  .revitalization__other { margin-top: 18.667vw; padding-top: 5.333vw; }
  .revitalization__other-title { margin-bottom: 8vw; font-size: 6.4vw; }
  .revitalization__other-list { width: 100%; padding: 4.267vw 5.333vw 8vw; }
  .revitalization__other-item { min-height: 16vw; padding: 2.667vw 1.333vw 2.667vw 8vw; font-size: 3.733vw; }
  .revitalization__other-item::before { left: 1.333vw; width: 1.6vw; height: 1.6vw; }
  .revitalization__other-note { padding-left: 2.667vw; }

  /* Company page */
  .content-inner { width: var(--content-width); }
  .company-title { min-height: 32vw; }
  .company-policy { min-height: 0; padding: 8vw 0 13.333vw; }
  .company-policy__heading-wrap { height: 32vw; }
  .company-policy__heading-wrap .section-heading { padding-top: 0; }
  .company-policy__list { padding: 8vw 5.333vw; }
  .company-policy__item { display: block; }
  .company-policy__item + .company-policy__item { margin-top: 8vw; }
  .company-policy__term { margin-bottom: 2.667vw; font-size: 7.467vw; }
  .company-policy__description { font-size: 4.267vw; line-height: 1.8; }
  .rinen { padding: 10.667vw 0 13.333vw; }
  .rinen__title-wrap { margin-bottom: 5.333vw; }
  .rinen__diagram { width: 100%; margin: 10.667vw auto 8vw; }
  .rinen__message { width: 100%; font-size: 3.733vw; line-height: 2.1; }
  .rinen__company { margin-top: 20.267vw; }
  .rinen__company-title-wrap { margin-bottom: 10.667vw; }
  .rinen__company-table { width: 100%; font-size: 3.467vw; }
  .rinen__company-label,
  .rinen__company-data { height: auto; padding: 4.267vw 3.2vw; }
  .rinen__company-label { width: 25.333vw; padding-inline: 3.2vw; white-space: normal; }
  .history { padding: 13.333vw 0 18.667vw; }
  .history__heading-wrap { margin-bottom: 12.8vw; }
  .history__timeline { width: 100%; padding-left: 8vw; }
  .history__timeline::before {top: 1.6vw;left: 2.1vw;width: .533vw;transform: none;}
  .history__item,
  .history__item:nth-child(4),
  .history__item:last-child { display: block; min-height: 32vw; }
  .history__marker { position: absolute; top: 0; left: -8vw; width: 4.8vw; height: 4.8vw; margin: 0; }
  .history__content { padding-bottom: 8vw; }
  .history__item--left .history__content,
  .history__item--right .history__content { text-align: left; }
  .history__date { margin-bottom: 2.133vw; font-size: 5.067vw; }
  .history__description { font-size: 4vw; line-height: 1.8; }
  .history__description br { display: none; }

  /* Contact Form 7 */
  .contact {
    --contact-content-width: calc(100vw - 10.667vw);
    padding: 10.667vw 0 21.333vw;
  }
  .contact__inner { width: var(--contact-content-width); }
  .contact__page-title { font-size: 8vw; }
  .contact__heading-wrap { width: 69.333vw; height: 45.333vw; margin-top: 5.333vw; }
  .contact__heading-wrap::before { width: 69.333vw; height: 40vw; }
  .contact__heading { font-size: 5.333vw; text-align: center; }
  .contact__form { margin-top: 12.8vw; }
  .contact__field { margin-bottom: 10.667vw; padding-left: 5.333vw; }
  .contact__field--type { margin-bottom: 13.333vw; }
  .contact__field--message { margin-bottom: 12.8vw; }
  .contact__label,
  .contact__legend { margin-bottom: 2.667vw; font-size: 4.8vw; }
  .contact__required { top: .8vw; left: -5.333vw; font-size: 4.267vw; }
  .contact__radio-list { gap: 2.133vw; margin: 4vw 0 0 2.667vw; }
  .contact__radio-list .wpcf7-form-control { gap: 2.133vw; }
  .contact__radio-label,
  .contact__radio-list .wpcf7-list-item label { font-size: 4.267vw; }
  .contact__radio,
  .contact__radio-list input[type="radio"] { width: 4.8vw; height: 4.8vw; margin-right: 4vw; }
  .contact__input,
  .contact__textarea { padding: 2.667vw 3.2vw; border-radius: 2.133vw; }
  .contact__input { height: 13.333vw; }
  .contact__textarea { height: 64vw; }
  .contact__privacy { padding-left: 0; font-size: 2.933vw; line-height: 1.8; }
  .contact__privacy-title { margin-bottom: .533vw; }
  .contact__submit-wrap { margin-top: 16vw; }
  .contact__submit { width: 64vw; height: 14.933vw; font-size: 4.267vw; }
  .contact .wpcf7-not-valid-tip { margin-top: 1.6vw; font-size: 3.2vw; }
  .contact .wpcf7-response-output { margin: 8.533vw 0 0; padding: 3.2vw 4.267vw; font-size: 3.467vw; }
  .contact .wpcf7-spinner { margin-top: 3.2vw; }
}
