@media print, screen and (min-width: 780.1px) {
  .sp {
    display: none !important;
  }
}
@media print, screen and (min-width: 1920px) {
  .sp {
    display: none !important;
  }
}

@media screen and (max-width: 780px) {
  .pc {
    display: none !important;
  }
}

/* Main Layout */
@media print, screen and (min-width: 780.1px) {
  .contact-main {
    padding-bottom: 0;
  }
}
@media screen and (max-width: 780px) {
  .contact-main {
    padding-top: 32.8205128205vw;
    padding-bottom: 20.5128205128vw;
  }
}

.contact-container {
  margin: 0 auto;
}
@media print, screen and (min-width: 780.1px) {
  .contact-container {
    max-width: 1126px;
  }
}
@media screen and (max-width: 780px) {
  .contact-container {
    max-width: 84.8717948718vw;
  }
}

/* Contact Header */
@media print, screen and (min-width: 780.1px) {
  .contact-header {
    padding-top: 60px;
    margin-bottom: 120px;
  }
}
@media screen and (max-width: 780px) {
  .contact-header {
    padding-top: 1.5384615385vw;
    margin-bottom: 19.4871794872vw;
  }
}

.title-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
}

.title-line {
  display: block;
  margin: 0;
  color: #262626;
  -webkit-font-feature-settings: "palt" on;
          font-feature-settings: "palt" on;
  font-family: var(--font-en);
  font-weight: 600;
  font-style: italic;
  line-height: 1em;
  letter-spacing: -0.01em;
  -webkit-transform: rotate(-6.5deg);
          transform: rotate(-6.5deg);
}
@media print, screen and (min-width: 780.1px) {
  .title-line {
    margin-left: 3px;
    font-size: 120px;
  }
}
@media screen and (max-width: 780px) {
  .title-line {
    margin-left: 0.5128205128vw;
    font-size: 12.3076923077vw;
  }
}

/* Contact Content */
.contact-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (min-width: 780.1px) {
  .contact-content {
    gap: 64px;
  }
}
@media screen and (max-width: 780px) {
  .contact-content {
    gap: 12.3076923077vw;
  }
}

/* Introduction Section */
.intro-section {
  width: 100%;
  max-width: 1126px;
}
@media print, screen and (min-width: 780.1px) {
  .intro-section {
    margin-top: 40px;
    margin-bottom: 0;
  }
}
@media screen and (max-width: 780px) {
  .intro-section {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    max-width: 84.8717948718vw;
  }
}

.intro-description {
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
  margin: 0;
}
@media print, screen and (min-width: 780.1px) {
  .intro-description {
    font-size: 16px;
    max-width: 1126px;
  }
}
@media screen and (max-width: 780px) {
  .intro-description {
    font-size: 3.5897435897vw;
  }
}

/* Contact Form */
.contact-form {
  width: 100%;
  max-width: 1126px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media print, screen and (min-width: 780.1px) {
  .contact-form {
    gap: 64px;
  }
}
@media screen and (max-width: 780px) {
  .contact-form {
    max-width: 84.8717948718vw;
    gap: 12.3076923077vw;
    margin-top: 1.5384615385vw;
  }
}

/* Form Field */
.form-field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media print, screen and (min-width: 780.1px) {
  .form-field {
    gap: 32px;
  }
}
@media screen and (max-width: 780px) {
  .form-field {
    gap: 6.1538461538vw;
  }
}
.form-field a {
  color: var(--Blue, #0C6BA5);
  text-decoration: underline;
}
.form-field a:hover {
  text-decoration: none;
}

/* Field Header */
.field-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (min-width: 780.1px) {
  .field-header {
    gap: 16px;
  }
}
@media screen and (max-width: 780px) {
  .field-header {
    gap: 2.0512820513vw;
  }
}

.accent-bar {
  background-color: #D5DEE6;
}
@media print, screen and (min-width: 780.1px) {
  .accent-bar {
    width: 4px;
    height: 30px;
  }
}
@media screen and (max-width: 780px) {
  .accent-bar {
    width: 1.0256410256vw;
    height: 5.1282051282vw;
  }
}

.field-title {
  font-family: var(--font-jp);
  font-weight: 700;
  line-height: 1.3em;
  letter-spacing: 0.01em;
  color: #262626;
  margin: 0;
}
@media print, screen and (min-width: 780.1px) {
  .field-title {
    font-size: 26px;
    letter-spacing: 0.05em;
    line-height: 1em;
  }
}
@media screen and (max-width: 780px) {
  .field-title {
    font-size: 4.6153846154vw;
  }
}

.required-tag {
  background: var(--Orange);
  border-radius: 100px;
  font-family: var(--font-jp);
  font-weight: 700;
  line-height: 1em;
  letter-spacing: 0.05em;
  color: #FFFFFF;
  text-align: center;
}
@media print, screen and (min-width: 780.1px) {
  .required-tag {
    font-size: 12px;
    padding: 4px 16px;
  }
}
@media screen and (max-width: 780px) {
  .required-tag {
    font-size: 3.0769230769vw;
    padding: 1.0256410256vw 4.1025641026vw;
  }
}

/* Radio Group */
.radio-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media print, screen and (min-width: 780.1px) {
  .radio-group {
    gap: 16px;
  }
}
@media screen and (max-width: 780px) {
  .radio-group {
    gap: 2.0512820513vw;
  }
}

.radio-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
}
@media print, screen and (min-width: 780.1px) {
  .radio-label {
    gap: 16px;
  }
}
@media screen and (max-width: 780px) {
  .radio-label {
    gap: 2.0512820513vw;
  }
}

.radio-button {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media print, screen and (min-width: 780.1px) {
  .radio-button {
    width: 32px;
    height: 32px;
  }
}
@media screen and (max-width: 780px) {
  .radio-button {
    width: 6.1538461538vw;
    height: 6.1538461538vw;
  }
}
.radio-button input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}

.radio-circle {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: var(--Gray-4);
  border: 1px solid var(--Gray-2);
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

.radio-dot {
  position: absolute;
  border-radius: 50%;
  background-color: #FFFFFF;
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
@media print, screen and (min-width: 780.1px) {
  .radio-dot {
    width: 10px;
    height: 10px;
  }
}
@media screen and (max-width: 780px) {
  .radio-dot {
    width: 2.0512820513vw;
    height: 2.0512820513vw;
  }
}

.radio-button input[type=radio]:checked + .radio-circle {
  background-color: var(--Gray-5);
  border-color: var(--Gray-5);
}
.radio-button input[type=radio]:checked + .radio-circle + .radio-dot {
  opacity: 1;
}

.radio-text {
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
}
@media print, screen and (min-width: 780.1px) {
  .radio-text {
    font-size: 16px;
  }
}
@media screen and (max-width: 780px) {
  .radio-text {
    font-size: 3.5897435897vw;
  }
}

/* Input Group */
.input-group,
.textarea-group {
  width: 100%;
}

.text-input {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  background-color: var(--Gray-4);
  border: 1px solid var(--Gray-2);
  border-radius: 4px;
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
}
@media print, screen and (min-width: 780.1px) {
  .text-input {
    height: 80px;
    padding: 0 24px;
    font-size: 16px;
  }
}
@media screen and (max-width: 780px) {
  .text-input {
    height: 16.4102564103vw;
    padding: 0 4.1025641026vw;
    font-size: 3.5897435897vw;
  }
}
.text-input::-webkit-input-placeholder {
  color: var(--Gray-5);
  -webkit-font-feature-settings: "palt" on;
          font-feature-settings: "palt" on;
}
.text-input::-moz-placeholder {
  color: var(--Gray-5);
  font-feature-settings: "palt" on;
}
.text-input:-ms-input-placeholder {
  color: var(--Gray-5);
  font-feature-settings: "palt" on;
}
.text-input::-ms-input-placeholder {
  color: var(--Gray-5);
  font-feature-settings: "palt" on;
}
.text-input::placeholder {
  color: var(--Gray-5);
  -webkit-font-feature-settings: "palt" on;
          font-feature-settings: "palt" on;
}
.text-input:focus {
  outline: none;
  border-color: var(--Gray-5);
}

.textarea-input {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  background-color: var(--Gray-4);
  border: 1px solid var(--Gray-2);
  border-radius: 4px;
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
  resize: vertical;
}
@media print, screen and (min-width: 780.1px) {
  .textarea-input {
    height: 300px;
    padding: 24px;
    font-size: 16px;
  }
}
@media screen and (max-width: 780px) {
  .textarea-input {
    height: 81.7948717949vw;
    padding: 4.1025641026vw;
    font-size: 3.5897435897vw;
  }
}
.textarea-input::-webkit-input-placeholder {
  color: var(--Gray-5);
}
.textarea-input::-moz-placeholder {
  color: var(--Gray-5);
}
.textarea-input:-ms-input-placeholder {
  color: var(--Gray-5);
}
.textarea-input::-ms-input-placeholder {
  color: var(--Gray-5);
}
.textarea-input::placeholder {
  color: var(--Gray-5);
}
.textarea-input:focus {
  outline: none;
  border-color: var(--Gray-5);
}

/* Error Styles */
.text-input.error,
.textarea-input.error {
  border: 1px solid var(--Orange, #FF8F43);
}

.radio-group.error .radio-circle {
  border: 1px solid var(--Orange, #FF8F43);
}

.checkbox-button.error .checkbox-box {
  border: 1px solid var(--Orange, #FF8F43);
}

/* Privacy Field */
.privacy-field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media print, screen and (min-width: 780.1px) {
  .privacy-field {
    gap: 0;
  }
}
@media screen and (max-width: 780px) {
  .privacy-field {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0;
  }
}
@media print, screen and (min-width: 780.1px) {
  .privacy-field .InputError {
    margin-top: 16px;
  }
}
@media screen and (max-width: 780px) {
  .privacy-field .InputError {
    margin-top: 4.1025641026vw;
  }
}

.privacy-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media print, screen and (min-width: 780.1px) {
  .privacy-group {
    gap: 4px;
  }
}
@media screen and (max-width: 780px) {
  .privacy-group {
    width: 84.8717948718vw;
    gap: 2.5641025641vw;
  }
}

.checkbox-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
}
@media print, screen and (min-width: 780.1px) {
  .checkbox-label {
    gap: 16px;
  }
}
@media screen and (max-width: 780px) {
  .checkbox-label {
    gap: 2.0512820513vw;
  }
}

.checkbox-button {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media print, screen and (min-width: 780.1px) {
  .checkbox-button {
    width: 32px;
    height: 32px;
  }
}
@media screen and (max-width: 780px) {
  .checkbox-button {
    width: 6.1538461538vw;
    height: 6.1538461538vw;
  }
}
.checkbox-button input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}

.checkbox-box {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 100%;
  border-radius: 4px;
  background-color: var(--Gray-4);
  border: 1px solid var(--Gray-2);
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}
@media print, screen and (min-width: 780.1px) {
  .checkbox-box {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }
}
@media screen and (max-width: 780px) {
  .checkbox-box {
    -webkit-transform: translateY(2);
            transform: translateY(2);
  }
}

.checkbox-checkmark {
  position: absolute;
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.checkbox-checkmark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border: solid #FFFFFF;
}
@media print, screen and (min-width: 780.1px) {
  .checkbox-checkmark::after {
    width: 6px;
    height: 12px;
    border-width: 0 3px 3px 0;
    -webkit-transform: translate(-50%, -72%) rotate(45deg);
            transform: translate(-50%, -72%) rotate(45deg);
  }
}
@media screen and (max-width: 780px) {
  .checkbox-checkmark::after {
    width: 1.5384615385vw;
    height: 3.0769230769vw;
    border-width: 0 0.7692307692vw 0.7692307692vw 0;
    -webkit-transform: translate(-50%, -60%) rotate(45deg);
            transform: translate(-50%, -60%) rotate(45deg);
  }
}

.checkbox-button input[type=checkbox]:checked + .checkbox-box {
  background-color: var(--Gray-5);
  border-color: var(--Gray-5);
}
.checkbox-button input[type=checkbox]:checked + .checkbox-box + .checkbox-checkmark {
  opacity: 1;
}

.checkbox-text {
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
}
@media print, screen and (min-width: 780.1px) {
  .checkbox-text {
    font-size: 16px;
  }
}
@media screen and (max-width: 780px) {
  .checkbox-text {
    font-size: 3.5897435897vw;
  }
}

.privacy-description {
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
  margin: 0;
}
@media print, screen and (min-width: 780.1px) {
  .privacy-description {
    font-size: 16px;
    margin-left: 48px;
  }
}
@media screen and (max-width: 780px) {
  .privacy-description {
    font-size: 3.5897435897vw;
    margin-left: 8.2051282051vw;
  }
}

/* Confirm Text */
.confirm-text {
  font-family: var(--font-jp);
  font-weight: 400;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  color: #262626;
  margin: 0;
}
@media print, screen and (min-width: 780.1px) {
  .confirm-text {
    font-size: 16px;
    padding: 24px;
    background-color: #F9FAFB;
    border-radius: 4px;
    border: 1px solid #EBF1F7;
  }
}
@media screen and (max-width: 780px) {
  .confirm-text {
    font-size: 3.5897435897vw;
    padding: 4.1025641026vw;
    background-color: #F9FAFB;
    border-radius: 4px;
    border: 1px solid #EBF1F7;
  }
}

/* Confirm Content Styles */
.confirm-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.confirm-content p {
  color: var(--Black, #262626);
  -webkit-font-feature-settings: "palt" on;
          font-feature-settings: "palt" on;
  font-family: "Ryo Gothic PlusN";
  font-style: normal;
  font-weight: 700;
  line-height: 170%;
}
@media print, screen and (min-width: 780.1px) {
  .confirm-content p {
    font-size: 20px;
    letter-spacing: 1px;
  }
}
@media screen and (max-width: 780px) {
  .confirm-content p {
    font-size: 3.5897435897vw;
    letter-spacing: 0.1794871795vw;
  }
}

/* Form Submit */
.form-submit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media print, screen and (min-width: 780.1px) {
  .form-submit {
    margin-top: 0;
    gap: 24px;
  }
}
@media screen and (max-width: 780px) {
  .form-submit {
    margin-top: 0;
    gap: 4.1025641026vw;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.submit-button {
  background-color: #262626;
  border: 2px solid #262626;
  border-radius: 100px;
  font-family: var(--font-jp);
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #FFFFFF;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media print, screen and (min-width: 780.1px) {
  .submit-button {
    width: 380px;
    height: 80px;
    font-size: 20px;
    line-height: 1.7em;
  }
}
@media screen and (max-width: 780px) {
  .submit-button {
    width: 68.7179487179vw;
    height: 16.4102564103vw;
    font-size: 3.5897435897vw;
    line-height: 1em;
  }
}
@media (hover: hover) {
  .submit-button:hover {
    background-color: #FFFFFF;
    color: #262626;
  }
}
.submit-button.button-back {
  background-color: #FFFFFF;
  color: #262626;
  border: 2px solid #262626;
}
@media (hover: hover) {
  .submit-button.button-back:hover {
    background-color: #262626;
    color: #fff;
  }
}

/* Error Message Styling */
.InputError {
  font-family: var(--font-jp);
  font-weight: 400;
  color: var(--Orange, #FF8F43);
}
@media print, screen and (min-width: 780.1px) {
  .InputError {
    margin-top: -8px;
    font-size: 16px;
  }
}
@media screen and (max-width: 780px) {
  .InputError {
    margin-top: -2.0512820513vw;
    font-size: 3.5897435897vw;
  }
}

/* Responsive adjustments */
@media print, screen and (max-width: 960px) and (min-width: 780.1px) {
  .contact-container {
    padding: 0 40px;
  }
  .title-group {
    width: 100%;
    max-width: 800px;
  }
  .contact-form {
    width: 100%;
  }
}