/* Contact and staff pages from contact.ai / staff.ai (2026-09-03). */

.contact-page,
.staff-page {
  color: #231916;
  font-family: "noto-sans-cjk-jp", "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
}

body:not(.home) #main-content .contact-page > .contact-page__body {
  width: min(calc(100% - 48px), 1025.457px);
  max-width: 1025.457px;
  padding-top: 94.682px;
  padding-bottom: 202px;
}

body:not(.home) #main-content .staff-page > .staff-page__body {
  width: min(calc(100% - 48px), 1008.026px);
  max-width: 1008.026px;
  padding-top: 93.122px;
  padding-bottom: 170px;
}

body#page:not(.home) #main-content > article.contact-page.additional-page {
  padding-top: 0;
}

body#page:not(.home) #main-content > article.contact-page.additional-page > .additional-breadcrumb + .contact-page__body {
  padding-top: 94.682px;
}

body#page:not(.home) #main-content > article.staff-page.additional-page > .additional-breadcrumb + .staff-page__body {
  padding-top: 93.122px;
}

.contact-channels {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 25.693px;
}

.contact-section-title {
  display: flex;
  min-height: 43.44px;
  align-items: center;
  margin: 0;
  padding: 6.25px 18.27px;
  border-left: 5px solid #b52a23;
  background: #f6f6f6;
  color: #231916;
  font-family: "noto-sans-cjk-jp", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", sans-serif;
  font-size: 21.32px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 30.94px;
}

.contact-channel__body {
  display: flex;
  min-height: 314.247px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 78px;
}

.contact-channel__phone {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #b22a23;
  font-family: "acumin-variable", "Acumin Variable Concept", "Arial Narrow", Arial, sans-serif;
  font-size: 47.69px;
  font-stretch: normal;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.15;
  text-decoration: none;
}

.contact-channel__phone:hover,
.contact-channel__phone:focus-visible {
  color: #8d201b;
  text-decoration: underline;
}

.contact-channel__phone-icon {
  width: 31px;
  height: 32px;
  flex: 0 0 31px;
  background: currentColor;
  -webkit-mask: url("../images/contact-phone-icon.svg") center / contain no-repeat;
  mask: url("../images/contact-phone-icon.svg") center / contain no-repeat;
}

.contact-channel__body > p {
  width: 300px;
  max-width: 100%;
  margin: 12px 0 0 75px;
  color: #231916;
  font-size: 20px;
  line-height: 1.75;
}

.contact-channel__line {
  display: inline-flex;
  min-width: 59px;
  min-height: 59px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: transform 0.25s ease, filter 0.25s ease, opacity 0.25s ease;
}

.contact-channel__line:hover,
.contact-channel__line:focus-visible {
  transform: translateY(-2px) scale(1.05);
  filter: brightness(1.05);
  opacity: 0.95;
}

.contact-channel__line:active {
  transform: translateY(0) scale(1);
}

.contact-channel--line .contact-channel__body {
  padding-top: 93px;
}

.contact-channel__line img {
  display: block;
  width: 59px;
  height: 59px;
}

.contact-web__notes {
  max-width: 760px;
  margin: 65px auto 0;
  padding: 0;
  list-style: none;
  color: #231916;
  font-size: 16px;
  line-height: 2.25;
}

.contact-web__notes li::before {
  content: "・";
}

.contact-form-wrap {
  margin-top: 43px;
}

.contact-form-wrap .form-notice {
  width: min(100%, 730px);
  margin: 0 auto 32px;
  padding: 16px 20px;
  border: 1px solid #b52a23;
  border-radius: 6px;
  background: #fff;
  font-size: 16px;
  line-height: 1.7;
}

.contact-form-wrap .form-notice--success {
  border-color: #008b48;
}

.contact-form {
  width: min(100%, 730px);
  margin: 0 auto;
}

.contact-form__trap {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.contact-form__fields[hidden],
.contact-form__review[hidden],
.contact-form .contact-form__confirm[hidden] {
  display: none;
}

.contact-form__row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 45px;
  align-items: center;
  margin: 0 0 24px;
  padding: 0;
  border: 0;
}

.contact-form__label {
  color: #231916;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
}

.contact-form__attachment,
.contact-form__attachment .wpcf7-form-control-wrap {
  display: block;
  min-width: 0;
}

.contact-form__attachment input[type="file"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  font: inherit;
}

.contact-form__attachment small {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.6;
}

.contact-form .contact-form__label em {
  display: inline-block;
  margin: 0 14px 0 0;
  padding: 0;
  background: transparent;
  color: #e60013;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  vertical-align: 2px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 0;
  background: #efeff0;
  color: #231916;
  font: inherit;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"] {
  height: 49px;
  padding: 8px 12px;
}

.contact-form textarea {
  height: 198px;
  min-height: 198px;
  padding: 12px;
  resize: vertical;
}

.contact-form input:focus-visible,
.contact-form textarea:focus-visible,
.contact-form button:focus-visible,
.contact-form a:focus-visible {
  outline: 3px solid rgba(181, 42, 35, 0.32);
  outline-offset: 3px;
}

.contact-form__purpose {
  align-items: start;
  margin-bottom: 29px;
}

.contact-form__purpose .contact-form__label {
  padding-top: 2px;
}

.contact-form__choices {
  display: grid;
  gap: 12px;
  padding-top: 17px;
}

.contact-form__row > .wpcf7-form-control-wrap,
.contact-form__choices .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  min-width: 0;
}

.contact-form__choices .wpcf7-checkbox {
  display: grid;
  gap: 12px;
}

.contact-form__choices .wpcf7-list-item {
  display: block;
  margin: 0;
}

.contact-form__choices label {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.contact-form__choices label > .wpcf7-list-item-label {
  padding-top: 0;
}

.contact-form__purpose-error {
  min-height: 1.4em;
  color: #b52a23;
  font-size: 13px;
  font-weight: 700;
}

.contact-form__purpose-error:empty {
  display: none;
}

.contact-form input[type="checkbox"] {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  margin: 0;
  accent-color: #b52a23;
}

.contact-form__row--short input {
  max-width: 322px;
}

.contact-form__row--short {
  margin-bottom: 21px;
}

.contact-form__row--message {
  align-items: start;
  margin-bottom: 88px;
}

.contact-form__row--message .contact-form__label {
  padding-top: 8px;
}

.contact-form .contact-form__consent {
  display: flex;
  min-height: 0;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 auto;
  font-family: "noto-sans-cjk-jp", "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: #000;
  cursor: pointer;
  transform: none;
}

.contact-form .contact-form__consent input[type="checkbox"] {
  box-sizing: border-box;
  width: 21px;
  height: 21px;
  min-width: 21px;
  min-height: 21px;
  margin: 0;
  padding: 0;
  flex: 0 0 21px;
  accent-color: #e60013;
  cursor: pointer;
}

.contact-form .contact-form__consent span {
  display: inline;
  padding: 0;
  letter-spacing: normal;
}

.contact-form .contact-form__consent > .wpcf7-form-control-wrap,
.contact-form .contact-form__consent .wpcf7-acceptance,
.contact-form .contact-form__consent .wpcf7-list-item,
.contact-form .contact-form__consent label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
}

.contact-form .contact-form__consent a {
  color: inherit;
  text-decoration: none;
}

.contact-form .contact-form__consent a:hover,
.contact-form .contact-form__consent a:focus-visible {
  text-decoration: underline;
}

.contact-form .contact-form__confirm {
  box-sizing: border-box;
  display: flex;
  width: 172px;
  height: 49px;
  min-height: 49px;
  align-items: center;
  justify-content: space-between;
  margin: 44px auto 0;
  padding: 0 17px 0 58px;
  border: 0;
  border-radius: 999px;
  background: #e60013;
  color: #fff;
  cursor: pointer;
  font-family: "noto-sans-cjk-jp", "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  transform: none;
  box-shadow: 0 2px 8px rgba(230, 0, 19, 0.18);
  transition: background-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.contact-form .contact-form__confirm span {
  letter-spacing: 0.2em;
}

.contact-form .contact-form__confirm:hover,
.contact-form .contact-form__confirm:focus-visible {
  background: #b9000f;
  box-shadow: 0 4px 14px rgba(230, 0, 19, 0.32);
  transform: translateY(-2px);
}

.contact-form .contact-form__confirm:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(230, 0, 19, 0.22);
}

.contact-form .contact-form__confirm img {
  display: block;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  transition: transform 0.25s ease;
}

.contact-form .contact-form__confirm:hover img,
.contact-form .contact-form__confirm:focus-visible img {
  transform: translateX(3px);
}

.wpcf7-form.contact-form .contact-form__confirm::after {
  display: block;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  background: url("../images/contact-confirm-arrow.svg") no-repeat center / contain;
  content: "";
  transition: transform 0.25s ease;
}

.wpcf7-form.contact-form .contact-form__confirm:hover::after,
.wpcf7-form.contact-form .contact-form__confirm:focus-visible::after {
  transform: translateX(3px);
}

.contact-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #b52a23;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}

.contact-form .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 16px 20px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.7;
}

.contact-form__review {
  padding: 30px;
  border: 1px solid #b52a23;
  border-radius: 8px;
  background: #fbfbfb;
}

.contact-form__review h3 {
  margin: 0 0 24px;
  font-size: 21px;
}

.contact-form__review dl {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  margin: 0;
  border-top: 1px solid #ddd;
}

.contact-form__review dt,
.contact-form__review dd {
  margin: 0;
  padding: 12px;
  border-bottom: 1px solid #ddd;
  white-space: pre-wrap;
}

.contact-form__review dt {
  font-weight: 700;
}

.contact-form__review dd {
  min-width: 0;
  overflow-wrap: anywhere;
}

.contact-form__review-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 28px;
}

.contact-form__review-actions button {
  min-height: 48px;
  padding: 10px 28px;
  border: 1px solid #b52a23;
  border-radius: 999px;
  background: #fff;
  color: #b52a23;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(181, 42, 35, 0.1);
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.contact-form__review-actions button:hover,
.contact-form__review-actions button:focus-visible {
  background: #b52a23;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(181, 42, 35, 0.22);
}

.contact-form__review-actions [data-contact-send] {
  background: #b52a23;
  color: #fff;
  box-shadow: 0 2px 8px rgba(181, 42, 35, 0.2);
}

.contact-form__review-actions [data-contact-send]:hover,
.contact-form__review-actions [data-contact-send]:focus-visible {
  background: #8d201b;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(181, 42, 35, 0.32);
}

.contact-form__review-actions button:active {
  transform: translateY(0);
}

.contact-form__review-actions button:disabled {
  cursor: wait;
  opacity: 0.6;
  transform: none;
  box-shadow: none;
}

.staff-profiles {
  display: block;
}

.staff-profile:nth-child(1) {
  margin-bottom: 76.396px;
}

.staff-profile:nth-child(2) {
  margin-bottom: 86px;
}

.staff-profile:nth-child(3) {
  margin-bottom: 80.532px;
}

.staff-profile {
  display: grid;
  grid-template-columns: 248px 70px minmax(0, 690px);
  grid-template-areas: "photo initials panel";
  align-items: center;
  margin: 0;
}

.staff-profile--photo-right {
  grid-template-columns: minmax(0, 690px) 70px 248px;
  grid-template-areas: "panel initials photo";
}

.staff-profile__photo {
  position: relative;
  z-index: 1;
  grid-area: photo;
  width: 248px;
  aspect-ratio: 1;
  background: transparent;
}

.staff-profile__photo > span,
.staff-profile__photo > img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  background: #e2e3e3;
}

.staff-profile__photo > img {
  object-fit: cover;
}

.staff-profile__photo::before {
  position: absolute;
  z-index: 1;
  top: -33px;
  left: -44px;
  width: 100px;
  height: 100px;
  background-image: url("../images/site-logo-footer.svg");
  background-position: left center;
  background-repeat: no-repeat;
  background-size: 604px 100px;
  content: "";
  opacity: 0.29;
  pointer-events: none;
}

.staff-profile--photo-right .staff-profile__photo::before {
  right: -44px;
  left: auto;
  transform: none;
}

.staff-profile__initials {
  z-index: 2;
  grid-area: initials;
  margin: 0;
  color: #231916;
  font-family: "heisei-maru-gothic-std", sans-serif;
  font-size: 27px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  text-align: center;
}

.staff-profile__panel {
  position: relative;
  grid-area: panel;
  min-height: 248px;
  padding: 11px 13px 15px;
  border: 1px solid #b52a23;
  border-radius: 9px;
  background: #f7f7f7;
}

.staff-profile:nth-child(3) .staff-profile__panel {
  min-height: 463px;
}

.staff-profile__panel::before {
  position: absolute;
  top: 123.765px;
  left: -18.5px;
  width: 20px;
  height: 26px;
  background: url("../images/staff-bubble-arrow-left.svg") no-repeat center;
  background-size: 100% 100%;
  content: "";
  transform: translateY(-50%);
  border: 0;
  z-index: 2;
  pointer-events: none;
}

.staff-profile--photo-right .staff-profile__panel::before {
  top: 123.765px;
  right: -18.5px;
  left: auto;
  background-image: url("../images/staff-bubble-arrow-right.svg");
  border: 0;
}

.staff-profile__section h3 {
  display: flex;
  width: 74.232px;
  height: 18.711px;
  align-items: center;
  justify-content: center;
  margin: 0 0 8px;
  border-radius: 6px;
  background: #b52a23;
  color: #fff;
  font-family: "noto-sans-cjk-jp", "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  font-size: 12.07px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
}

.staff-profile__section h3 span {
  display: inline-block;
  transform-origin: left center;
}

.staff-profile__section:not(.staff-profile__section--hobby) h3 span {
  transform: translateX(0.408px) scaleX(1.01294);
}

.staff-profile__section--hobby h3 span {
  transform: translateX(-0.218px) scaleX(1.00262);
}

.staff-profile__copy p,
.staff-profile__section--hobby p {
  margin: 0;
  overflow-wrap: anywhere;
  color: #231916;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1.6;
}

.staff-profile__copy p + p {
  margin-top: 0;
}

.staff-profile:nth-child(3) .staff-profile__copy p + p {
  margin-top: 24px;
}

.staff-profile__section--hobby {
  margin-top: 4px;
}

@media screen and (min-width: 1200px) {
  body:not(.home) #main-content .contact-page > .contact-page__body {
    transform: translateX(0.171px);
  }

  body:not(.home) #main-content .staff-page > .staff-page__body {
    transform: translateX(0.168px);
  }

  .contact-channel--phone .contact-channel__body {
    padding-top: 78.4px;
  }

  .contact-section-title {
    padding-left: 18.27px;
  }

  .contact-channel__phone {
    transform: translateX(5.535px);
  }

  .contact-channel__body > p {
    margin-left: 50px;
  }

  .contact-channel--line .contact-channel__body {
    padding-top: 92.283px;
  }

  .contact-channel__line img {
    transform: translateX(4.2px);
  }

  .contact-form {
    width: min(100%, 728.902px);
  }

  .contact-form-wrap {
    margin-top: 42.7px;
  }

  .contact-form__row {
    grid-template-columns: 180.356px minmax(0, 1fr);
  }

  .contact-form .contact-form__label em {
    margin-right: 13.151px;
    font-size: 11px;
    letter-spacing: 1.1px;
  }

  .contact-form__label {
    letter-spacing: 1.6px;
  }

  .contact-form__choices label {
    gap: 13.974px;
    align-items: center;
    letter-spacing: 1.4px;
  }

  .contact-form__choices label:nth-child(2) {
    transform: translateX(0.134px);
  }

  .contact-form__choices label:first-child {
    letter-spacing: 1.483px;
  }

  .contact-form__choices {
    gap: 12.302px;
    padding-top: 16.728px;
  }

  .contact-form__choices input[type="checkbox"] {
    width: 24.424px;
    height: 23.388px;
    flex-basis: 24.424px;
  }

  .contact-form__fields > .contact-form__row:nth-child(2) .contact-form__label,
  .contact-form__row--message .contact-form__label {
    padding-left: 42.58px;
  }

  .contact-form__fields > .contact-form__row:nth-child(2) .contact-form__label {
    padding-left: 42.659px;
  }

  .contact-form__row--message .contact-form__label {
    padding-left: 42.962px;
    letter-spacing: 1.678px;
    white-space: nowrap;
  }

  .contact-form__fields > .contact-form__row:nth-child(4) .contact-form__label em,
  .contact-form__fields > .contact-form__row:nth-child(5) .contact-form__label em {
    margin-right: 12.65px;
  }

  .contact-form__fields > .contact-form__row:nth-child(2) input {
    transform: translateX(0.154px);
  }

  .contact-form .contact-form__consent {
    align-items: center;
    justify-content: center;
    gap: 9.7px;
    transform: none;
  }

  .contact-form .contact-form__consent span {
    letter-spacing: normal;
  }

  .contact-form .contact-form__consent input[type="checkbox"] {
    width: 21px;
    height: 21px;
    flex-basis: 21px;
    margin: 0;
  }

  .contact-form .contact-form__confirm {
    width: 172px;
    height: 49px;
    min-height: 49px;
    margin: 44px auto 0;
    padding: 0 17px 0 58px;
    transform: none;
  }

  .contact-form__purpose {
    margin-bottom: 29.36px;
  }

  .contact-form__row--short {
    margin-bottom: 20.818px;
  }

  .contact-form__row--short input {
    max-width: 322.386px;
    transform: translateX(-0.496px);
  }

  .contact-form__row--message {
    margin-bottom: 87.847px;
  }

  .contact-form__fields input[type="text"],
  .contact-form__fields input[type="email"] {
    width: 503.401px;
  }

  .contact-form__fields input[type="tel"] {
    width: 322.386px;
  }

  .contact-form__fields textarea {
    width: 503.178px;
    transform: translateX(0.377px);
  }

  .staff-profile {
    grid-template-columns: 247.529px 88.204px 672.293px;
  }

  .staff-profile--photo-right:nth-child(2),
  .staff-profile--photo-right:nth-child(4) {
    width: 1009.202px;
    margin-left: -0.584px;
    grid-template-columns: 672.293px 89.38px 247.529px;
  }

  .staff-profile:nth-child(3) {
    width: 1014.344px;
    margin-left: -2.326px;
    grid-template-columns: 247.529px 88.119px 678.696px;
  }

  .staff-profile__photo {
    width: 247.529px;
  }

  .staff-profile__panel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: auto;
    min-height: 247.529px;
    padding: 11px 13px 15px;
    border-radius: 9px;
  }

  .staff-profile:nth-child(3) .staff-profile__panel {
    height: auto;
    min-height: 463.189px;
  }

  .staff-profile__panel::before {
    left: -18.5px;
    width: 20px;
    height: 26px;
  }

  .staff-profile--photo-right .staff-profile__panel::before {
    right: -18.5px;
    left: auto;
  }

  .staff-profile:nth-child(1) .staff-profile__photo::before {
    top: -32px;
    left: -44px;
  }

  .staff-profile:nth-child(2) .staff-profile__photo::before {
    top: -34px;
    right: -44px;
    left: auto;
  }

  .staff-profile:nth-child(3) .staff-profile__photo::before {
    top: -41px;
    left: -47px;
  }

  .staff-profile:nth-child(4) .staff-profile__photo::before {
    top: -43px;
    right: -47px;
    left: auto;
  }

  .staff-profile__section--hobby {
    margin-top: 11.566px;
  }

  .staff-profile:nth-child(3) .staff-profile__section--hobby {
    margin-top: 24.551px;
  }

  .staff-profile:nth-child(1) .staff-profile__photo {
    transform: translateY(0.5px);
  }

  .staff-profile:nth-child(3) .staff-profile__photo {
    align-self: start;
  }

  .staff-profile:nth-child(3) .staff-profile__initials {
    align-self: start;
    margin-top: 107.566px;
  }

  .staff-profile:nth-child(1) .staff-profile__initials {
    transform: translateX(-10.139px) scaleX(0.78127249);
  }

  .staff-profile:nth-child(2) .staff-profile__initials {
    transform: translateX(7.264px) scaleX(0.92506859);
  }

  .staff-profile:nth-child(3) .staff-profile__initials {
    transform: translateX(-6.399px) scaleX(0.93644119);
  }

  .staff-profile:nth-child(4) .staff-profile__initials {
    transform: translateX(9.011px) scaleX(1.00401179);
  }

  .staff-profile:nth-child(3) .staff-profile__panel::before {
    top: 123.765px;
  }

  .staff-profile:nth-child(1) .staff-profile__copy {
    width: 642.93px;
    max-width: none;
  }

  .staff-profile:nth-child(3) .staff-profile__copy {
    width: 643.51px;
    max-width: none;
  }

  .staff-profile:nth-child(4) .staff-profile__copy {
    width: 657.76px;
    max-width: none;
  }

  .staff-profile--photo-right .staff-profile__photo {
    transform: translateY(-3.792px);
  }

  .staff-profile:nth-child(1) {
    margin-bottom: 76.396px;
  }

  .staff-profile:nth-child(2) {
    margin-bottom: 86px;
  }

  .staff-profile:nth-child(3) {
    margin-bottom: 80.532px;
  }
}

@media screen and (max-width: 1199.98px) {
  body:not(.home) #main-content .contact-page > .contact-page__body,
  body:not(.home) #main-content .staff-page > .staff-page__body {
    width: min(calc(100% - 48px), 1025px);
    max-width: 1025px;
    padding-top: 64px;
    padding-bottom: 120px;
  }

  body#page:not(.home) #main-content > article.contact-page.additional-page > .additional-breadcrumb + .contact-page__body,
  body#page:not(.home) #main-content > article.staff-page.additional-page > .additional-breadcrumb + .staff-page__body {
    padding-top: 64px;
  }

  .contact-channel__phone {
    font-size: clamp(30px, 4vw, 44px);
  }

  .staff-profile,
  .staff-profile--photo-right {
    grid-template-columns: minmax(180px, 248px) minmax(70px, 1fr);
    grid-template-areas:
      "photo initials"
      "panel panel";
    gap: 24px 0;
    align-items: center;
  }


  .staff-profile:nth-child(1),
  .staff-profile:nth-child(2),
  .staff-profile:nth-child(3) {
    margin-bottom: 78px;
  }

  .staff-profile--photo-right .staff-profile__photo::before {
    right: auto;
    left: -44px;
    transform: none;
  }

  .staff-profile__panel::before,
  .staff-profile--photo-right .staff-profile__panel::before {
    top: -14.5px;
    right: auto;
    left: 50%;
    width: 22px;
    height: 16px;
    background: url("../images/staff-bubble-arrow-up.svg") no-repeat center;
    background-size: 100% 100%;
    border: 0;
    transform: translateX(-50%);
    z-index: 2;
  }
}

@media screen and (max-width: 767px) {
  body:not(.home) #main-content .contact-page > .contact-page__body,
  body:not(.home) #main-content .staff-page > .staff-page__body {
    width: min(calc(100vw - 32px), 1025px);
    max-width: calc(100vw - 32px);
    box-sizing: border-box;
    padding-top: 44px;
    padding-bottom: 80px;
  }

  body#page:not(.home) #main-content > article.contact-page.additional-page > .additional-breadcrumb + .contact-page__body,
  body#page:not(.home) #main-content > article.staff-page.additional-page > .additional-breadcrumb + .staff-page__body {
    padding-top: 44px;
  }

  .contact-channels {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .contact-channel__body {
    min-height: 190px;
    justify-content: center;
    padding: 28px 16px;
  }

  .contact-channel__phone {
    font-size: clamp(29px, 9vw, 40px);
  }

  .contact-channel__body > p {
    width: auto;
    margin-left: 0;
    font-size: 17px;
  }

  .contact-web__notes {
    margin-top: 36px;
    font-size: 15px;
    line-height: 1.9;
  }

  .contact-form-wrap {
    margin-top: 36px;
  }

  .contact-form__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-bottom: 24px;
  }

  .contact-form__purpose {
    gap: 12px;
    margin-bottom: 28px;
  }

  .contact-form__choices label {
    min-height: 44px;
  }

  .contact-form__row--short input {
    max-width: none;
  }

  .contact-form__row--message {
    margin-bottom: 48px;
  }

  .contact-form .contact-form__consent {
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    transform: none;
  }

  .contact-form .contact-form__consent input[type="checkbox"] {
    margin-top: 2px;
  }

  .contact-form .contact-form__confirm {
    width: 172px;
    height: 49px;
    min-height: 49px;
    margin: 32px auto 0;
    padding: 0 17px 0 58px;
    transform: none;
  }

  .contact-form__review {
    padding: 24px 16px;
  }

  .contact-form__review dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-form__review dt {
    border-bottom: 0;
    background: #efeff0;
  }

  .staff-profiles {
    display: flex;
    flex-direction: column;
    gap: 63px;
  }

  .staff-profile,
  .staff-profile--photo-right {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    grid-template-areas:
      "photo initials"
      "panel panel";
    gap: 16px 20px;
    align-items: center;
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .staff-profile:nth-child(1),
  .staff-profile:nth-child(2),
  .staff-profile:nth-child(3) {
    margin-bottom: 0;
  }

  .staff-profile__photo {
    width: 140px;
    height: 140px;
    aspect-ratio: 1;
    justify-self: start;
  }

  .staff-profile__photo::before,
  .staff-profile--photo-right .staff-profile__photo::before {
    top: -18px;
    left: -12px;
    right: auto;
    width: 60px;
    height: 60px;
    background-size: 362px 60px;
    transform: none;
  }

  .staff-profile__initials {
    font-size: 24px;
    text-align: center;
  }

  .staff-profile__panel {
    min-width: 0;
    width: 100%;
    min-height: 0;
    padding: 20px 18px 15px;
    border-radius: 9px;
  }

  .staff-profile--photo-right .staff-profile__panel {
    padding: 20px 18px 15px;
  }

  .staff-profile__panel::before,
  .staff-profile--photo-right .staff-profile__panel::before {
    top: -14.5px;
    right: auto;
    left: 70px;
    width: 22px;
    height: 16px;
    background: url("../images/staff-bubble-arrow-up.svg") no-repeat center;
    background-size: 100% 100%;
    border: 0;
    transform: translateX(-50%);
    z-index: 2;
  }

  .staff-profile__copy p,
  .staff-profile__section--hobby p {
    font-size: 14px;
    line-height: 1.65;
    letter-spacing: 0.05em;
  }
}

/* Keep the saved desktop line breaks within the panels with Murecho. */
@media screen and (min-width: 768px) {
  .staff-page .staff-profile__copy p {
    letter-spacing: 1px;
  }
}

/* The design's per-profile text widths must not exceed the panel padding. */
.staff-page .staff-profile .staff-profile__copy {
  max-width: 100%;
}

/* Profiles can be added and reordered in the CMS; layout must not depend on
   the original four records or the original long message being third. */
@media screen and (min-width: 767.01px) {
  .staff-profile {
    margin-bottom: 80.532px;
  }

  .staff-page .staff-profile:last-child {
    margin-bottom: 0;
  }
}

.staff-page .staff-profile .staff-profile__panel {
  min-height: 248px;
}

.staff-page .staff-profile__copy p + p {
  margin-top: 24px;
}

@media screen and (min-width: 1200px) {
  .staff-page .staff-profile--photo-right {
    width: 1009.202px;
    margin-left: -0.584px;
    grid-template-columns: 672.293px 89.38px 247.529px;
  }

  .staff-page .staff-profile .staff-profile__panel {
    min-height: 247.529px;
  }

  .staff-page .staff-profile .staff-profile__photo,
  .staff-page .staff-profile .staff-profile__initials {
    align-self: center;
  }

  .staff-page .staff-profile .staff-profile__initials {
    margin-top: 0;
  }

  .staff-page .staff-profile .staff-profile__panel::before {
    top: 50%;
  }
}

@media screen and (max-width: 767px) {
  .staff-page .staff-profile .staff-profile__panel {
    min-height: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-page *,
  .staff-page * {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}

/* Keep every field title aligned, with a separate space for required markers. */
.contact-page .contact-form .contact-form__row > .contact-form__label {
  position: relative;
  padding-left: 43px;
  white-space: nowrap;
}

.contact-page .contact-form .contact-form__row > .contact-form__label em {
  position: absolute;
  left: 0;
  margin: 0;
}
