.purchase_inquiry .oem_inquiry_visual_img {
   object-position: center 52%;
}

.purchase_inquiry_en .oem_inquiry_form_wrap input,
.purchase_inquiry_en .oem_inquiry_form_wrap select,
.purchase_inquiry_en .oem_inquiry_form_wrap textarea,
.purchase_inquiry_en .oem_inquiry_form_wrap button,
.purchase_inquiry_en .oem_inquiry_result_modal button {
   font-family: inherit;
}

.purchase_inquiry .purchase_inquiry_intro_break {
   display: inline;
}

@media screen and (min-width: 600px) and (max-width: 1024px) {
   .purchase_inquiry .purchase_inquiry_intro_break {
      display: none;
   }
}

.purchase_inquiry .oem_inquiry_field select:disabled {
   color: var(--color-text-disabled);
   background-color: var(--color-bg-soft);
   cursor: not-allowed;
}

.purchase_inquiry .oem_inquiry_field[hidden] {
   display: none;
}

.purchase_inquiry .oem_inquiry_field_note {
   min-height: 20px;
   margin: 8px 0 0;
   color: #7b6a55;
   font-size: 13px;
   line-height: 1.5;
   word-break: keep-all;
}

.purchase_inquiry .purchase_fresh_notice {
   padding: clamp(22px, 2.4vw, 34px) clamp(22px, 3vw, 42px);
   border-left: 3px solid var(--color-brand);
   background: var(--color-bg-soft);
}

.purchase_inquiry .purchase_fresh_notice strong {
   display: block;
   margin-bottom: 10px;
   color: var(--color-text-primary);
   font-size: clamp(17px, 1.15vw, 20px);
   font-weight: 700;
}

.purchase_inquiry .purchase_fresh_notice p {
   margin: 0;
   color: var(--color-text-secondary);
   font-size: clamp(14px, 0.95vw, 16px);
   line-height: 1.7;
   word-break: keep-all;
}

.purchase_inquiry .oem_inquiry_result_dialog:focus {
   outline: none;
}

.purchase_inquiry .oem_inquiry_result_close:focus {
   outline: none;
}

.purchase_inquiry .oem_inquiry_result_close:focus-visible {
   outline: 2px solid #3f6f2c;
   outline-offset: 3px;
}

.purchase_inquiry .purchase_delivery_section {
   min-width: 0;
   margin: 20px 0 4px;
   padding: clamp(28px, 3vw, 44px);
   border: 1px solid var(--color-line);
   background: var(--color-bg-soft);
}

.purchase_inquiry .purchase_delivery_section[hidden] {
   display: none;
}

.purchase_inquiry .purchase_delivery_section legend {
   padding: 0 12px;
   color: var(--color-text-primary);
   font-size: clamp(22px, 1.8vw, 30px);
   font-weight: 700;
   line-height: 1.25;
}

.purchase_inquiry .purchase_delivery_intro {
   margin: 0 0 22px;
   color: var(--color-text-secondary);
   font-size: 15px;
   line-height: 1.65;
   word-break: keep-all;
}

.purchase_inquiry .purchase_same_orderer {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   min-height: 46px;
   margin-bottom: 28px;
   padding: 0 16px;
   border: 1px solid var(--color-line);
   background: #fff;
   color: var(--color-text-primary);
   font-size: 15px;
   font-weight: 500;
   cursor: pointer;
}

.purchase_inquiry .purchase_same_orderer input {
   width: 18px;
   height: 18px;
   min-height: 0;
   margin: 0;
   padding: 0;
   accent-color: var(--color-brand);
}

.purchase_inquiry .purchase_delivery_grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 24px 28px;
}

.purchase_inquiry .purchase_postcode_row {
   display: grid;
   grid-template-columns: minmax(0, 1fr) 148px;
   gap: 10px;
}

.purchase_inquiry .purchase_postcode_button {
   min-height: 58px;
   border: 1px solid var(--color-brand);
   background: var(--color-brand);
   color: #fff;
   font-size: 15px;
   font-weight: 500;
   cursor: pointer;
   transition: background-color 0.2s ease, border-color 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
   .purchase_inquiry .purchase_postcode_button:hover {
      border-color: #56863b;
      background: #56863b;
   }
}

.purchase_inquiry .purchase_postcode_button:focus-visible,
.purchase_inquiry .purchase_postcode_close:focus-visible {
   outline: 2px solid #3f6f2c;
   outline-offset: 3px;
}

.purchase_inquiry .purchase_delivery_section input[readonly] {
   background: #fff;
   cursor: default;
}

html.purchase_postcode_open,
body.purchase_postcode_open {
   overflow: hidden;
}

.purchase_postcode_modal {
   position: fixed;
   inset: 0;
   z-index: 21000;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 24px;
   opacity: 0;
   pointer-events: none;
   transition: opacity 0.2s ease;
}

.purchase_postcode_modal[hidden] {
   display: none;
}

.purchase_postcode_modal.is_show {
   opacity: 1;
   pointer-events: auto;
}

.purchase_postcode_backdrop {
   position: absolute;
   inset: 0;
   background: rgba(18, 24, 21, 0.58);
}

.purchase_postcode_dialog {
   position: relative;
   z-index: 1;
   width: min(100%, 520px);
   height: min(720px, calc(100dvh - 48px));
   min-height: 420px;
   display: grid;
   grid-template-rows: auto minmax(0, 1fr) auto;
   border: 1px solid var(--color-line);
   background: #fff;
   box-shadow: 0 24px 80px rgba(0, 0, 0, 0.24);
   overscroll-behavior: contain;
   transform: translateY(12px);
   transition: transform 0.2s ease;
}

.purchase_postcode_modal.is_show .purchase_postcode_dialog {
   transform: translateY(0);
}

.purchase_postcode_head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   min-height: 68px;
   padding: 0 22px;
   border-bottom: 1px solid var(--color-line);
}

.purchase_postcode_head h2 {
   margin: 0;
   color: var(--color-text-primary);
   font-size: 21px;
   font-weight: 700;
}

.purchase_postcode_close {
   position: relative;
   width: 42px;
   height: 42px;
   border: 0;
   background: transparent;
   cursor: pointer;
}

.purchase_postcode_close::before,
.purchase_postcode_close::after {
   content: "";
   position: absolute;
   top: 50%;
   left: 50%;
   width: 24px;
   height: 1px;
   background: var(--color-text-primary);
}

.purchase_postcode_close::before {
   transform: translate(-50%, -50%) rotate(45deg);
}

.purchase_postcode_close::after {
   transform: translate(-50%, -50%) rotate(-45deg);
}

.purchase_postcode_embed {
   min-height: 0;
   overflow: auto;
   -webkit-overflow-scrolling: touch;
}

.purchase_postcode_status {
   min-height: 0;
   margin: 0;
   padding: 0 22px;
   color: #b8473d;
   font-size: 13px;
   line-height: 1.5;
}

.purchase_postcode_status:not(:empty) {
   padding-top: 12px;
   padding-bottom: 12px;
   border-top: 1px solid var(--color-line);
}

.oem_inquiry_visual_box::after {
   background: rgba(0, 0, 0, 0.06);
}

@media screen and (min-width: 600px) and (max-width: 1024px) {
   .purchase_inquiry .purchase_delivery_section {
      padding: 32px;
   }
}

@media screen and (max-width: 599px) {
   .purchase_inquiry .oem_inquiry_field_note {
      min-height: 18px;
      font-size: 12px;
   }

   .purchase_inquiry .purchase_fresh_notice {
      padding: 20px;
   }

   .purchase_inquiry .purchase_delivery_section {
      margin-top: 8px;
      padding: 24px 18px;
   }

   .purchase_inquiry .purchase_delivery_section legend {
      padding: 0 8px;
      font-size: 23px;
   }

   .purchase_inquiry .purchase_delivery_intro {
      margin-bottom: 18px;
      font-size: 14px;
   }

   .purchase_inquiry .purchase_same_orderer {
      width: 100%;
      justify-content: flex-start;
      margin-bottom: 22px;
   }

   .purchase_inquiry .purchase_delivery_grid {
      grid-template-columns: 1fr;
      gap: 20px;
   }

   .purchase_inquiry .purchase_postcode_row {
      grid-template-columns: minmax(0, 1fr) 112px;
      gap: 8px;
   }

   .purchase_inquiry .purchase_postcode_button {
      min-height: 54px;
      font-size: 14px;
   }

   .purchase_postcode_modal {
      align-items: stretch;
      padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
   }

   .purchase_postcode_dialog {
      width: 100%;
      height: 100%;
      min-height: 0;
   }

   .purchase_postcode_head {
      min-height: 62px;
      padding: 0 16px;
   }

   .purchase_postcode_head h2 {
      font-size: 19px;
   }
}
