
    .contact-page-section .contact-layout {
      --contact-section-gap: 48px;
      display: grid;
      align-items: start;
      row-gap: var(--contact-section-gap);
      height: auto;
      min-height: 0;
      max-height: none;
    }

    .contact-page-section .contact-layout > .contact-form-wrapper,
    .contact-page-section .contact-layout > .contact-info-panel {
      position: static;
      inset: auto;
      transform: none;
      float: none;
      width: auto;
      min-width: 0;
      height: auto;
      min-height: 0;
      max-height: none;
      margin: 0;
    }

    .contact-page-section .contact-form-wrapper {
      display: flow-root;
    }

    #main-contact-form {
      display: flow-root;
      height: auto;
      min-height: 0;
      max-height: none;
      margin-block: 0;
    }

    #main-contact-form .form-grid {
      align-items: start;
      align-content: start;
      grid-auto-rows: auto;
      height: auto;
      min-height: 0;
      max-height: none;
      /* 항목 사이의 여백은 아래 margin으로 통일하여 이중 간격을 방지합니다. */
      row-gap: 0 !important;
    }

    /*
     * 입력창 아래와 다음 항목명 사이에 24px 여백을 확보합니다.
     * grid/flex뿐 아니라 모바일의 block 배치에서도 여백이 유지됩니다.
     * 기존 높이 보정의 margin: 0보다 우선하며, 체크박스 내부 간격은 건드리지 않습니다.
     */
    #main-contact-form > .form-grid > .form-field {
      margin-top: 0 !important;
      margin-bottom: 24px !important;
    }

    #main-contact-form > .form-grid > .form-field:last-child {
      margin-bottom: 0 !important;
    }

    #main-contact-form .form-submit {
      position: static;
      inset: auto;
      transform: none;
      float: none;
      clear: both;
      display: flow-root;
      height: auto;
      margin-bottom: 0;
    }

    #main-contact-form .form-submit > button {
      position: static;
      inset: auto;
      transform: none;
      float: none;
      margin-bottom: 0;
    }

    .contact-page-section .contact-info-panel {
      display: flex;
      flex-direction: column;
      gap: var(--contact-section-gap, 48px);
    }

    .contact-page-section .contact-info-panel > .info-block {
      margin: 0;
    }

    .contact-page-section .contact-info-panel > .info-block > h3 {
      margin-top: 0;
    }

    .contact-page-section .contact-info-panel > .info-block > :last-child {
      margin-bottom: 0 !important;
    }
  


    /* 외부 CSS가 없는 경우의 기본값. 아래 스크립트가 회사명 원래 높이로 맞춥니다. */
    #main-contact-form .form-field--uniform {
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: stretch;
      align-self: start;
      gap: var(--contact-label-gap, 8px);
      box-sizing: border-box;
      min-width: 0;
      height: auto;
      min-height: 0;
      max-height: none;
      margin: 0;
    }

    #main-contact-form .form-field--uniform > label {
      display: flex;
      align-items: center;
      flex: 0 0 auto;
      box-sizing: border-box;
      height: var(--contact-label-height, 24px);
      min-height: var(--contact-label-height, 24px);
      max-height: none;
      margin: 0;
      padding-block: 0;
      line-height: var(--contact-label-line-height, 1.5);
    }

    #main-contact-form .form-field--uniform > input,
    #main-contact-form .form-field--uniform > select {
      display: block;
      flex: 0 0 auto;
      box-sizing: border-box;
      width: 100%;
      min-width: 0;
      height: var(--contact-control-height, 52px);
      min-height: var(--contact-control-height, 52px);
      max-height: var(--contact-control-height, 52px);
      margin: 0;
      padding-top: 0;
      padding-bottom: 0;
      font-family: inherit;
      font-size: var(--contact-control-font-size, 16px);
      line-height: var(--contact-control-line-height, 1.5);
    }
  