/* Internship entry sheet page (インターンシップ エントリーシート). */

/* Layout — inherits .rng-title-band-wrap from page-recruitment-newgrad.css */
.int-main-wrap { overflow-x: hidden; }
/* padding-left/right match .rng-title-band-wrap/.sn-breadcrumb-wrap (page-recruitment-newgrad.css)
   so the sidebar/content column lines up with the title band and breadcrumb above it. */
.int-body-layout { max-width: 1280px; padding: 32px clamp(16px, 4vw, 40px) 64px; box-sizing: border-box; }
.int-body-layout--no-sidebar { max-width: 1000px; padding-top: 50px; margin: 0 auto; }
.sn-rec-closed-layout {
    max-width: 1276px;
    margin: 0 auto;
    padding: 24px 2rem 64px;
    box-sizing: border-box;
}

/* Title band override — entry-new page only */
.rng-title-band--entry-new {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: auto;
    max-width: 100%;
    height: 63px;
    padding: 10px;
    gap: 10px;
    background: rgba(0, 143, 141, 0.7);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 44px;
    letter-spacing: -0.02em;
    white-space: nowrap;
    color: #FFFFFF;
}

/* Main content column */
.int-content { min-width: 0; flex: 1; }

/* Form card container */
.int-form-card {
    background: #fff;
    border: 1px solid #CDD2D8;
    border-radius: 8px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    /* .sn-req-main (page-contact.css) also puts a 40px flex gap on this
       element on the confirm page (it carries both classes) — that's sized
       for the contact/estimate form's own big sections, and here it stacks
       on top of .int-form-header's own gap and .int-section's margin-bottom,
       roughly doubling the spacing. Zero it so only the .int-* rules apply. */
    gap: 0;
}
.int-form-card:not(.sn-rec-closed-card) {
    padding: 40px;
}

/* Header block (heading + privacy note) */
.int-form-header {
    display: flex;
    flex-direction: column;
    gap: 13px;
    margin-bottom: 13px;
}

/* Form heading (H2) */
.int-form-heading {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 40px;
    letter-spacing: -0.02em;
    color: #061C3D;
    margin: 0;
}

/* Privacy note */
.int-privacy-note {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    color: #061C3D;
    margin: 0;
}
.int-privacy-note a,
.int-privacy-note .int-link,
.sn-req-note .int-link {
    color: #008f8d;
    text-decoration: none !important;
    transition: opacity 0.2s ease;
}
.int-privacy-note a:hover,
.int-privacy-note .int-link:hover,
.sn-req-note .int-link:hover {
    color: #006b69;
    text-decoration: none !important;
    opacity: 0.8;
}

/* Section */
.int-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 20px;
}
.int-section--gap20 { gap: 20px; }
.int-section--gap13 { gap: 13px; }

/* Section heading (H3) — Heading/06 */
.int-section-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: -0.02em;
    color: #061C3D;
    margin: 0;
    padding: 0;
    border: none;
}
/* Body/XXL/500 variant (sections that use medium weight title) */
.int-section-title--medium { font-weight: 500; }

/* Horizontal field row: label-cell (138px) | input-cell */
.int-field-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
}

/* Label cell — fixed 138px, flex row, gap 12px */
.int-label-cell {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    width: 138px;
    flex-shrink: 0;
    min-height: 24px;
}
.int-label-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #061C3D;
    white-space: nowrap;
}

/* 必須 badge — 30x15px, #FB2C36, radius 4px, 10px white text */
.int-req-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 16px;
    background: #FB2C36;
    border-radius: 4px;
    flex-shrink: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 10px;
    font-weight: 400;
    line-height: 16px;
    color: #fff;
    white-space: nowrap;
}

/* Input cell — takes remaining space */
.int-input-cell {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Vertical field layout (Sections 2+) */
.int-field-v {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Label row — text + badge in a horizontal row */
.int-label-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}
.int-label-row .int-label-text {
    font-weight: 500;
    font-size: 14px;
    line-height: 14px;
    color: #0A0A0A;
}

/* Input override for vertical sections */
.int-input-v {
    border: 0.7px solid #CDD2D8 !important;
    border-radius: 5px !important;
    height: 36px !important;
    padding: 9px 12px !important;
    box-sizing: border-box;
}
.int-input-v::placeholder { color: #999999; }

/* ── Section ID情報 (Frame 1000007321) ───────────────────────────────── */
.int-id-section {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
}

.int-name-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-name-field {
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-sizing: border-box;
}

/* Birthdate row */
.int-birth-inputs {
    display: flex;
    align-items: center;
    gap: 8px !important;
    flex-wrap: wrap;
    max-width: 100%;
}
.int-birth-unit {
    display: inline-flex;
    align-items: center;
    gap: 8px !important;
    flex-shrink: 0;
    white-space: nowrap;
    height: 36px;
}
.int-birth-year-input  { width: 120px; height: 36px; padding: 9px 12px; background: #FFFFFF; border: 0.7px solid #CDD2D8; border-radius: 5px; flex-shrink: 0; box-sizing: border-box; }
.int-birth-inputs .int-select-wrap {
    width: 105px;
    height: 36px;
    position: relative;
    box-sizing: border-box;
}
.int-birth-inputs .int-select-wrap select,
.int-birth-month-input,
.int-birth-day-input,
.int-birth-md-input {
    width: 100% !important;
    height: 36px;
    box-sizing: border-box;
}

@media (min-width: 769px) {
    .int-birth-year-input  { width: 166px !important; }
    .int-birth-inputs .int-select-wrap { width: 166px !important; height: 36px; flex-shrink: 0; }
}
.int-birth-sep-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 14px;
    color: #061C3D;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
}
.int-field-hint {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: #E7380D;
    margin: 0;
}

/* Error border */
.int-field-error-group > .sn-inq-input,
.int-field-error-group > .sn-inq-textarea {
    border-color: #e53e3e;
}
.sn-inq-input.is-invalid,
.sn-inq-textarea.is-invalid,
select.sn-inq-input.is-invalid {
    border-color: #e53e3e !important;
    background-color: #fff5f5 !important;
}
.sn-field-error {
    color: #E7380D;
    font-size: 14px;
    line-height: 22px;
    margin-top: 0;
    font-weight: 500;
}

/* Input widths */
.int-input-wide { width: 100%; }
.int-input-year { width: 100px; }
.int-input-md { width: 72px; }
.int-school-field { gap: 8px; }
.int-school-field .int-input-v { width: 100%; }
/* ── Contact block (連絡先 + メールアドレス 2 columns side-by-side) ─────── */
.int-contact-block {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
}

.int-contact-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 13px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-contact-field {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.int-contact-field .int-label-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 20px;
}

.int-contact-field .int-label-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    line-height: 14px;
    color: #061C3D;
}

.int-contact-field .sn-inq-input,
.int-contact-field input[type="tel"],
.int-contact-field input[type="email"] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 36px;
    background: #FFFFFF;
    border: 0.7px solid #CDD2D8;
    border-radius: 5px;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: #061C3D;
    padding: 0 12px;
}

/* Select */
.int-select {
    width: 159px;
    height: 36px;
    border: 0.7px solid #CDD2D8 !important;
    border-radius: 5px !important;
    padding: 0 10px !important;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    color: #061C3D;
    background-color: #FFFFFF;
}

/* Custom select dropdown wrapper — mirrors page-entry-career.css's
   .int-select-wrap so 生年月日/都道府県 selects match entry_career's custom
   arrow styling instead of the browser's native one. */
.int-select-wrap {
    position: relative;
    /* Full-width fields (性別/都道府県) rely on the flex/grid column around
       them; the fixed-width 生年月日 month/day selects set their own width
       via .int-birth-month-input/.int-birth-day-input (!important) on the
       <select> itself, so this wrapper must not force width:100% over them. */
    width: fit-content;
    height: 36px;
    display: flex;
    align-items: center;
}
.int-field-v > .int-select-wrap,
.int-addr-pref-field > .int-select-wrap {
    width: 100%;
}
.int-select-wrap::after {
    content: '';
    position: absolute;
    right: 12px;
    top: 50%;
    width: 10px;
    height: 6px;
    transform: translateY(-50%);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23061C3D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
}
.int-select-wrap select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    /* Fill the wrapper (100% for 性別/都道府県, fit-content for the fixed-size
       月/日 birth selects) — .int-birth-month-input/.int-birth-day-input's
       own !important widths still win over this. */
    width: 100%;
    padding-right: 30px !important;
    cursor: pointer;
}

/* Zip row */
.int-zip-row { display: flex; align-items: center; gap: 10px; }
.int-zip-sep {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #061C3D;
    width: 6px;
    display: inline-flex;
    justify-content: center;
}
.int-zip-input {
    width: 159px;
    height: 36px;
    border: 0.7px solid #CDD2D8 !important;
    border-radius: 6px !important;
    padding: 0 10px !important;
    box-sizing: border-box;
}

/* Address sub-heading (ご住所 / 帰省先住所) */
.int-addr-block,
.int-addr-fields {
    display: flex;
    flex-direction: column;
}
.int-addr-block { gap: 15px; }
.int-addr-fields { gap: 13px; }
.int-addr-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: -0.02em;
    color: #061C3D;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.int-addr-row {
    display: flex;
    align-items: flex-start;
    gap: 27px;
    width: 100%;
}

.int-addr-pref-field {
    flex: 0 0 159px;
    width: 159px;
}
.int-addr-city-field {
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
}
.int-hometown-same-note {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: #E7380D;
    margin: 0;
}

/* Same address checkbox */
.int-same-check-row {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 0;
    flex-wrap: wrap;
}
.int-same-check-row .int-check-label span {
    color: #061C3D;
}
.int-hometown-same-note {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    line-height: 22px;
    color: #E7380D;
    margin: 0;
}

/* Checkboxes / radio */
.int-check-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    min-height: 20px;
}
.int-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 24px;
}

/* Custom checkbox — 20x20px, 1.5px border #E6E8EC, radius 5px */
.int-check-label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 7px;
    cursor: pointer;
}
.int-check-label input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    background: #fff;
    border: 1.5px solid #E6E8EC;
    border-radius: 5px;
    flex-shrink: 0;
    cursor: pointer;
    position: relative;
    accent-color: #008F8D;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.int-check-label input[type="checkbox"]:checked {
    background: #008F8D;
    border-color: #008F8D;
}
.int-check-label input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Checkbox label text — Body/Smalls/400 14px */
.int-check-label span,
.int-check-label-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: #0A0A0A;
}
.int-radio-label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: #0A0A0A;
    cursor: pointer;
}
.int-radio-label input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    background: #fff;
    border: 1.5px solid #CDD2D8;
    border-radius: 100px;
    flex-shrink: 0;
    cursor: pointer;
    position: relative;
}
.int-radio-label input[type="radio"]:checked {
    border-color: #008F8D;
    border-width: 1.5px;
}
.int-radio-label input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #008F8D;
}

/* アンケート rows */
.int-how-known-row { margin-bottom: 0; }
/* ── Horizontal field row layout (.int-field-h) ────────────────────── */
.int-field-h {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 24px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-field-h-label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 138px;
    min-width: 138px;
    flex-shrink: 0;
    padding-top: 8px;
    box-sizing: border-box;
}

.int-field-h-body {
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-field-h-body .sn-inq-textarea,
.int-field-h-body .int-input-wide,
.int-field-h-body textarea,
.int-field-h-body input[type="text"],
.int-field-h-body select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Specific Vertical Stack Fields (Motivation, Survey & Transport Other) */
.int-motivation-field,
.int-survey-choice-field,
.int-survey-extra-row,
.int-transport-other-field,
#int-transport-other-field .int-field-h {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-motivation-field .int-field-h-label,
.int-survey-choice-field .int-field-h-label,
.int-survey-extra-label,
.int-transport-other-field .int-field-h-label,
#int-transport-other-field .int-field-h-label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    flex-shrink: 1;
    padding-top: 0;
    box-sizing: border-box;
}

.int-motivation-field .int-field-h-body,
.int-survey-choice-field .int-field-h-body,
.int-survey-extra-body,
.int-transport-other-field .int-field-h-body,
#int-transport-other-field .int-field-h-body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    box-sizing: border-box;
}

.int-motivation-field .int-textarea-lg,
.int-survey-extra-row .int-textarea-lg {
    min-height: 112px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Transport note (Frame 2121459400) */
.int-transport-note {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 13px;
    line-height: 20px;
    letter-spacing: 1.3px;
    color: #061C3D;
    text-align: left;
    width: 100%;
    max-width: 100%;
    margin: 0 0 13px 0;
}

/* ── Station Fields (乗車駅 & 降車駅 2-column flex row - Frame 2121459401) ── */
.int-station-fields {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 13px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-station-field {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.int-station-field .int-label-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 14px;
}

.int-station-field .int-label-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    line-height: 14px;
    color: #061C3D;
}

.int-station-field .int-input-v {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 36px;
    background: #FFFFFF;
    border: 0.7px solid #CDD2D8;
    border-radius: 5px;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: #061C3D;
    padding: 9px 12px;
}
/* ── Transport Choice Field (Frame 1000006692) ───────────────────────── */
.int-transport-choice-field {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 0;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    height: auto;
    align-self: stretch;
    min-height: 0;
}

.int-transport-choice-field .int-field-h-label {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 12px;
    width: 100%;
    height: auto;
    padding-top: 0;
    flex: none;
}

.int-transport-choice-field .int-field-label-md {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    line-height: 24px;
    color: #061C3D;
    margin: 0;
}

.int-transport-choice-field .int-field-h-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    height: auto;
    flex: 1 1 0%;
}

.int-transport-choice-field .int-radio-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 20px;
    width: 100%;
    flex-wrap: wrap;
}

.int-radio-label {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 7px;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: #061C3D;
    cursor: pointer;
}

.int-radio-label input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    background: #FFFFFF;
    border: 1.5px solid #CDD2D8;
    border-radius: 100px;
    cursor: pointer;
    flex-shrink: 0;
    margin: 0;
    position: relative;
    transition: border-color 0.15s ease;
}

.int-radio-label input[type="radio"]:checked {
    border-color: #008F8D;
}

.int-radio-label input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #008F8D;
}
/* ── Section 学校名 (Group 1000007327 / Frame 2121459397) ─────────── */
.int-school-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-school-field {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.int-school-field .int-label-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 20px;
}

.int-school-field .int-label-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    line-height: 14px;
    color: #061C3D;
}

.int-school-field .sn-inq-input,
.int-school-field input[type="text"] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 36px;
    background: #FFFFFF;
    border: 0.7px solid #CDD2D8;
    border-radius: 5px;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: #061C3D;
    padding: 0 10px;
}

.int-school-field .sn-inq-input::placeholder,
.int-school-field input::placeholder {
    color: #999999;
}



/* Field label medium (Body/Medium/500 16px) */
.int-field-label-md {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #0A0A0A;
    display: flex;
    align-items: center;
    gap: 8px;
}
.int-field-label-md--dark { color: #061C3D; }


/* ── Survey Choice Field (Frame 2121459409) ─────────────────────────── */
.int-survey-section {
    margin-bottom: 30px;
}

.int-survey-choice-field {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    height: auto;
    align-self: stretch;
}

/* Label area: Frame 1000006619 / Frame 2121459312 */
.int-survey-choice-field .int-field-h-label {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 5px;
    width: 100%;
    height: auto;
    padding-top: 0;
}

.int-survey-choice-field .int-field-label-md {
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
    display: flex;
    align-items: center;
    color: #061C3D;
    margin: 0;
}

/* Frame 1000007436 — Checkbox Body Container (2 Columns layout) */
.int-survey-choice-field .int-field-h-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    width: max-content;
    max-width: 100%;
    box-sizing: border-box;
}

.int-survey-choice-field .int-survey-options {
    display: grid;
    grid-template-columns: max-content max-content;
    grid-auto-flow: column;
    grid-template-rows: repeat(4, auto);
    gap: 7px 60px;
    width: max-content;
    max-width: 100%;
    box-sizing: border-box;
}

/* Checkbox item row & label: Frame 1000006830, Frame 1000007423... */
.int-survey-choice-field .int-how-known-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 7px;
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
}

.int-survey-choice-field .int-check-label {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 7px;
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: #061C3D;
    cursor: pointer;
}

.int-survey-choice-field .int-check-label input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    background: #FFFFFF;
    border: 1.5px solid #E6E8EC;
    border-radius: 5px;
    cursor: pointer;
    flex-shrink: 0;
    margin: 0;
    position: relative;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.int-survey-choice-field .int-check-label input[type="checkbox"]:checked {
    background: #008F8D;
    border-color: #008F8D;
}

.int-survey-choice-field .int-check-label input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #FFFFFF;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Large textarea */
.int-textarea-lg { min-height: 112px; }

/* Agree block */
.int-agree-wrap {
    text-align: center;
    padding-top: 0;
    border-top: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
}
.int-agree-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: #061C3D;
    margin: 0;
}

/* Link */
.int-link { color: #008F8D; text-decoration: underline; }
.int-link:hover { color: #006E6C; }

/* Buttons */
.int-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 24px;
    border-radius: 8px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: -0.02em;
    cursor: pointer;
    text-decoration: none;
    border: none;
    transition: background 0.2s, color 0.2s;
}
.int-btn--submit,
.sn-req-btn--blue {
    background: #008F8D;
    background-image: none;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: #fff;
    min-width: 254px;
    height: 56px;
    padding: 10px 16px 10px 24px;
    gap: 10px;
    border-radius: 8px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: -0.02em;
    transition: opacity 0.3s;
}
.int-btn--submit::after,
.sn-req-btn--blue::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url('../../images/path_v5.png') right center / auto 100% no-repeat;
    pointer-events: none;
    z-index: -1; /* under the label: it is a bare text node, `> *` can't lift it (isolation keeps it above the background) */
}
.int-btn--submit > *,
.sn-req-btn--blue > * {
    position: relative;
    z-index: 1;
}
.int-btn--submit:hover,
.sn-req-btn--blue:hover { opacity: 0.9; color: #fff; }
.int-btn-icon,
.sn-req-btn-icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
}
.int-btn--back {
    background: #E9ECEE;
    color: #061C3D;
    min-width: 160px;
    font-size: 18px;
    height: 56px;
}
.int-btn--back:hover { background: #d0d3d6; color: #061C3D; }

/* Confirm page */
.int-confirm-note {
    font-size: 15px;
    color: #061C3D;
    margin: 0 0 24px;
}
.int-confirm-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 40px;
    font-size: 15px;
}
.int-confirm-table th,
.int-confirm-table td {
    border: 1px solid #CDD2D8;
    padding: 12px 16px;
    vertical-align: top;
    line-height: 1.7;
    color: #061C3D;
    text-align: left;
}
.int-confirm-table th {
    background: #F4FBFB;
    font-weight: 700;
    width: 30%;
    white-space: nowrap;
}
.int-confirm-section-head {
    background: #008F8D !important;
    color: #fff !important;
    font-weight: 700;
    font-size: 16px;
    padding: 10px 16px !important;
}
.int-confirm-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
}
.int-confirm-actions form { display: flex; }

/* Done card */
.int-done-card { text-align: center; padding: 64px 48px; }
.int-done-message {
    font-size: 16px;
    color: #061C3D;
    line-height: 1.9;
    margin: 0 0 40px;
}
.int-done-home { margin-top: 32px; }

/* Closed recruitment notice */
.sn-rec-closed-card {
    align-items: flex-start;
    padding-top: 40px;
    padding-bottom: 40px;
    border: none;
    border-radius: 0;
}
.sn-rec-closed-card--standalone {
    padding-top: 0;
    padding-bottom: 0;
}
.sn-rec-closed-card .int-form-header {
    gap: 0;
    margin-bottom: 30px;
}
.sn-rec-closed-card .sn-rec-closed-box {
    margin-bottom: 60px;
}
.sn-rec-closed-card .int-form-heading {
    font-size: 36px;
    line-height: 43px;
    text-align: center;
    margin-bottom: 0;
}
.sn-rec-closed-box {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 70px;
    padding: 18px 24px;
    background: #FDF4F3;
    border: 1px solid #E8C9C5;
}
.sn-rec-closed-msg {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 22px;
    line-height: 31px;
    letter-spacing: 1px;
    text-align: center;
    color: #E60012;
}
.sn-rec-closed-faq {
    background: #FFFFFF;
    border: 1px solid #E0E0E0;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
    border-radius: 28px;
    width: 100%;
    margin-top: 12px;
    padding: 40px 50px;
    box-sizing: border-box;
}
.sn-rec-closed-faq .sn-faq-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
}
.sn-rec-closed-faq .sn-faq-title {
    min-width: 0;
    margin: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 36px;
    line-height: 44px;
    letter-spacing: -0.02em;
    color: #243752;
}
.sn-rec-closed-faq .sn-faq-viewall {
    flex-shrink: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 24px;
    color: #008E8C;
    text-decoration: underline;
}
.sn-rec-closed-faq .sn-faq-list {
    display: flex;
    flex-direction: column;
    gap: 26px;
}
/* FAQ items mirror the shared sn-faq-* style (page-food-inspection.css, e.g.
   /offer/telephone/) — that file isn't enqueued here, so the rules are scoped
   under .sn-rec-closed-faq. */
.sn-rec-closed-faq .sn-faq-item {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
}
.sn-rec-closed-faq .sn-faq-q {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 20px 20px 90px;
    min-height: 76px;
    background: #FFFFFF;
    border: 1px solid #CCCCCC;
    border-radius: 16px;
    cursor: pointer;
    text-align: left;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.012em;
    color: #061C3D;
    transition: background .2s, color .2s, border-radius .2s, min-height .2s;
}
.sn-rec-closed-faq .sn-faq-item.open .sn-faq-q {
    min-height: 80px;
    background: #008F8D;
    border-color: #008F8D;
    border-radius: 16px 16px 0 0;
    color: #FFFFFF;
}
.sn-rec-closed-faq .sn-faq-q-badge {
    position: absolute;
    left: -1px;
    top: -1px;
    width: 70px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: #008F8D;
    border: 1px solid transparent;
    border-radius: 16px 0 26px 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 900;
    font-size: 30px;
    line-height: 31px;
    color: #FFFFFF;
}
.sn-rec-closed-faq .sn-faq-item.open .sn-faq-q-badge {
    background: #FFFFFF;
    border-color: #CCCCCC;
    color: #008F8D;
}
.sn-rec-closed-faq .sn-faq-q-text {
    flex: 1;
    min-width: 0;
}
.sn-rec-closed-faq .sn-faq-q-icon {
    position: relative;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
}
.sn-rec-closed-faq .sn-faq-q-icon svg {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    transition: transform .3s ease, opacity .2s ease;
}
.sn-rec-closed-faq .sn-faq-q-icon .icon-plus { opacity: 1; transform: rotate(0deg); }
.sn-rec-closed-faq .sn-faq-q-icon .icon-minus { opacity: 0; transform: rotate(-90deg); }
.sn-rec-closed-faq .sn-faq-item.open .sn-faq-q-icon .icon-plus { opacity: 0; transform: rotate(90deg); }
.sn-rec-closed-faq .sn-faq-item.open .sn-faq-q-icon .icon-minus { opacity: 1; transform: rotate(0deg); }
.sn-rec-closed-faq .sn-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .2s ease;
    border: 0;
}
.sn-rec-closed-faq .sn-faq-item.open .sn-faq-a {
    max-height: 10000px;
    background: #FFFFFF;
    border: 1px solid #CCCCCC;
    border-top: none;
    border-radius: 0 0 16px 16px;
}
.sn-rec-closed-faq .sn-faq-a-inner {
    display: flex;
    align-items: center;
    gap: 31px;
    padding: 20px;
}
.sn-rec-closed-faq .sn-faq-a-badge {
    flex-shrink: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 900;
    font-size: 30px;
    line-height: 31px;
    color: #FE7F00;
}
.sn-rec-closed-faq .sn-faq-a-text {
    flex: 1;
    min-width: 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.012em;
    color: #061C3D;
}
.sn-rec-closed-faq .sn-faq-a-text a {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

@media (max-width: 991px) {
    .int-body-layout,
    .int-body-layout--no-sidebar {
        max-width: 100%;
        padding: 24px clamp(16px, 4vw, 40px) 48px;
    }
    .sn-rec-closed-layout { padding: 24px 1.25rem 48px; }
    .int-form-card:not(.sn-rec-closed-card) { padding: 28px 24px; }
    .sn-rec-closed-card { padding-top: 28px; padding-bottom: 28px; }
    .sn-rec-closed-card--standalone { padding-top: 0; padding-bottom: 0; }
    .int-form-heading { font-size: 24px; line-height: 1.4; word-break: keep-all; overflow-wrap: break-word; }
    /* height:63px (base rule) is fixed and clips this band once the long
       "採用情報ーキャリア エントリーシート" title wraps to 2+ lines on
       narrow screens — switch to min-height so it grows with the text. */
    .rng-title-band--entry-new {
        white-space: normal;
        height: auto;
        min-height: 63px;
        font-size: 28px;
        line-height: 1.35;
        word-break: keep-all;
        overflow-wrap: break-word;
    }
    .sn-rec-closed-card .int-form-heading { font-size: 30px; line-height: 1.35; word-break: keep-all; }
    .sn-rec-closed-msg { font-size: 20px; line-height: 1.5; }
    .sn-rec-closed-faq { padding: 32px 24px; }
    .sn-rec-closed-faq .sn-faq-title { font-size: 28px; line-height: 36px; }
    .sn-rec-closed-faq .sn-faq-viewall { font-size: 16px; line-height: 22px; }
    .sn-rec-closed-box { padding: 16px 20px; }
    .sn-rec-closed-card .sn-rec-closed-box { margin-bottom: 48px; }
}
@media (max-width: 768px) {
    .int-name-row,
    .int-contact-row,
    .int-contact-row-3,
    .int-gender-birth-row,
    .int-station-fields,
    .int-school-grid,
    .int-school-grid-3,
    .int-school-grid-2,
    .int-addr-row {
        flex-direction: column;
        gap: 12px;
    }
    .int-name-field,
    .int-contact-field,
    .int-gender-field,
    .int-birth-field,
    .int-station-field,
    .int-addr-pref-field {
        width: 100%;
        flex: none;
    }
    .int-contact-tel-input {
        width: 100%;
    }
    .int-field-row {
        flex-direction: column;
        gap: 8px;
    }
    .int-label-cell {
        width: 100%;
        min-height: 0;
    }
    .int-input-cell { width: 100%; }
    .int-zip-row {
        width: 100%;
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px;
    }
    .int-zip-input {
        flex: 1 1 0%;
        min-width: 0;
        width: 100% !important;
    }
    .int-field-h { flex-direction: column; gap: 8px; }
    .int-motivation-field,
    .int-survey-extra-row {
        align-items: stretch;
        gap: 8px;
    }
    .int-motivation-field .int-field-h-label,
    .int-motivation-field .int-field-h-body,
    .int-survey-extra-label {
        flex: 0 1 auto;
    }
    .int-survey-choice-field {
        align-items: stretch;
        min-height: 0;
    }
    .int-survey-choice-field .int-field-h-label,
    .int-survey-choice-field .int-field-h-body {
        flex: 0 1 auto;
    }
    .int-transport-choice-field {
        align-items: stretch;
        min-height: 0;
    }
    .int-transport-choice-field .int-field-h-label,
    .int-transport-choice-field .int-field-h-body {
        flex: 0 1 auto;
    }
    .int-confirm-table th { width: auto; white-space: normal; }
    .int-btn { padding: 14px 32px; font-size: 16px; min-width: 0; width: 100%; height: auto; }
    /* .int-btn--submit/.sn-req-btn--blue inherit width:100% from the .int-btn
       rule above — match the site-wide .sn-req-btn mobile sizing
       (page-contact.css) instead: auto width, not full-bleed. */
    .int-btn--submit,
    .sn-req-btn--blue {
        width: auto;
        min-width: auto;
        font-size: 18px;
        line-height: 1.35;
        height: 48px;
        padding: 8px 16px 8px 20px;
    }
    .int-btn-icon,
    .sn-req-btn-icon {
        width: 32px;
        height: 32px;
    }
    .int-confirm-actions { flex-direction: column; }
    .int-confirm-actions form { width: 100%; }
    .int-confirm-actions .int-btn { width: 100%; }
    .int-birth-inputs {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px 8px !important;
        height: auto;
        width: 100%;
        max-width: 100%;
    }
    .int-birth-unit {
        display: inline-flex;
        align-items: center;
        gap: 8px !important;
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        white-space: nowrap;
        height: 36px;
    }
    .int-birth-sep-text {
        font-size: 14px;
        line-height: 14px;
    }
    .int-birth-inputs .int-birth-year-input,
    .int-birth-year-input {
        width: 100% !important;
        max-width: 166px;
        min-width: 64px;
        flex: 1 1 0%;
        height: 36px;
        padding: 9px 12px !important;
        box-sizing: border-box;
    }
    .int-birth-inputs .int-select-wrap {
        width: 100% !important;
        max-width: 166px;
        min-width: 64px;
        flex: 1 1 0%;
        height: 36px;
        position: relative;
        box-sizing: border-box;
    }
    .int-birth-inputs .int-select-wrap select,
    .int-birth-month-input,
    .int-birth-day-input,
    .int-birth-md-input {
        width: 100% !important;
        height: 36px;
        padding-left: 9px !important;
        padding-right: 28px !important;
        box-sizing: border-box;
    }
    .sn-rec-closed-faq { padding: 24px 16px; border-radius: 20px; }
    .sn-rec-closed-faq .sn-faq-head { gap: 12px; margin-bottom: 24px; }
    .sn-rec-closed-faq .sn-faq-viewall { font-size: 14px; line-height: 20px; }
    .sn-rec-closed-faq .sn-faq-list { gap: 20px; }
    .sn-rec-closed-card .sn-rec-closed-box { margin-bottom: 36px; }
    .sn-rec-closed-faq .sn-faq-q { min-height: 68px; padding: 18px 18px 18px 80px; font-size: 15px; line-height: 24px; }
    .sn-rec-closed-faq .sn-faq-item.open .sn-faq-q { min-height: 72px; }
    .sn-rec-closed-faq .sn-faq-q-badge { width: 60px; height: 58px; font-size: 26px; border-radius: 16px 0 22px 0; }
    .sn-rec-closed-faq .sn-faq-q-icon,
    .sn-rec-closed-faq .sn-faq-q-icon svg { width: 32px; height: 32px; }
    .sn-rec-closed-faq .sn-faq-a-inner { gap: 20px; padding: 18px; }
    .sn-rec-closed-faq .sn-faq-a-text { font-size: 15px; line-height: 24px; }
}
/* FAQ items: 576px step of the shared sn-faq-* style (between the 768 and 480 blocks). */
@media (max-width: 576px) {
    .sn-rec-closed-faq .sn-faq-q { font-size: 14px; padding: 16px 16px 16px 72px; min-height: 62px; }
    .sn-rec-closed-faq .sn-faq-q-badge { width: 54px; height: 54px; font-size: 24px; }
}
@media (max-width: 480px) {
    .int-body-layout,
    .int-body-layout--no-sidebar {
        max-width: 100%;
        padding: 20px clamp(16px, 4vw, 40px) 40px;
    }
    .sn-rec-closed-layout { padding: 20px 1rem 40px; }
    .int-form-card:not(.sn-rec-closed-card) { padding: 20px 16px; }
    .sn-rec-closed-card { padding-top: 20px; padding-bottom: 20px; }
    .sn-rec-closed-card--standalone { padding-top: 0; padding-bottom: 0; }
    .int-form-header,
    .int-section { gap: 12px; }
    .int-section { margin-bottom: 16px; }
    /* word-break:keep-all avoids an awkward mid-word wrap inside the long
       katakana loanword "エントリーシート" on narrow screens; line-height
       is reset from the 40px base since 20px text no longer needs it. */
    .int-form-heading { font-size: 20px; line-height: 1.4; word-break: keep-all; overflow-wrap: break-word; }
    .sn-rec-closed-card .int-form-heading { font-size: 24px; line-height: 1.35; word-break: keep-all; }
    .rng-title-band--entry-new { font-size: 20px; }
    .sn-rec-closed-box { min-height: 64px; padding: 16px; }
    .sn-rec-closed-msg { font-size: 16px; line-height: 1.6; letter-spacing: 0; }
    .sn-rec-closed-card .sn-rec-closed-box { margin-bottom: 28px; }
    .sn-rec-closed-faq { padding: 20px 12px; border-radius: 16px; }
    .sn-rec-closed-faq .sn-faq-head { gap: 8px; }
    .sn-rec-closed-faq .sn-faq-title { font-size: 18px; line-height: 26px; }
    .sn-rec-closed-faq .sn-faq-viewall { font-size: 12px; line-height: 18px; }
    .sn-rec-closed-faq .sn-faq-list { gap: 12px; }
    .sn-rec-closed-faq .sn-faq-q { font-size: 13px; line-height: 20px; padding: 14px 14px 14px 64px; min-height: 56px; }
    .sn-rec-closed-faq .sn-faq-q-badge { width: 50px; height: 50px; font-size: 22px; }
    .sn-rec-closed-faq .sn-faq-q-icon,
    .sn-rec-closed-faq .sn-faq-q-icon svg { width: 28px; height: 28px; }
    .sn-rec-closed-faq .sn-faq-a-inner { gap: 16px; padding: 14px; }
    .sn-rec-closed-faq .sn-faq-a-badge { font-size: 22px; line-height: 26px; }
    .sn-rec-closed-faq .sn-faq-a-text { font-size: 13px; line-height: 20px; }
    .int-section-title { font-size: 18px; }
    .int-btn { font-size: 18px; }
    .int-agree-wrap { padding-top: 0; }
    .int-survey-choice-field .int-survey-options { grid-template-columns: 1fr; grid-auto-flow: row; grid-template-rows: auto; }
    .int-contact-row { flex-direction: column; gap: 12px; }
    .int-contact-field { width: 100%; flex: none; }
    .int-school-grid { grid-template-columns: 1fr; gap: 12px; }
    .int-name-row { flex-direction: column; gap: 12px; }
    .int-name-field { width: 100%; flex: none; }
    .int-addr-row { flex-direction: column; gap: 12px; }
    .int-addr-pref-field { width: 100%; flex: none; }
    .int-station-fields { flex-direction: column; gap: 12px; }
    .int-station-field { width: 100%; flex: none; }
    .int-gender-birth-row { flex-direction: column; gap: 12px; }
    .int-gender-field { width: 100%; flex: none; }
}
/* Note: .int-school-grid-3/-2 are redefined as display:grid further down in
   THIS file (for the internship form) and as display:flex in
   page-entry-career.css (for the career form) — same class names, two
   different contexts. Mobile stacking for the career page's flex version
   lives in page-entry-career.css, not here, to avoid fighting this file's
   own later grid rule. */

/* Entry-new form extra layout helpers */
.int-section--gap16 {
    gap: 16px;
}
.int-section-body--gap13 {
    gap: 13px;
}
.int-label-text--md {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #061C3D;
}
.int-eng-type-stack {
    display: flex;
    flex-direction: column;
    gap: 13px;
    width: 100%;
}
.int-grad-year-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
}
.int-grad-year-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 13px;
}
.int-grad-year-input {
    width: 146px !important;
    height: 36px !important;
    padding: 9px 12px !important;
}
.int-grad-year-suffix {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: #061C3D;
}
.int-grad-year-note {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    color: #061C3D;
    margin: 0;
}
.int-gender-birth-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
}
.int-gender-field {
    width: 195px;
    flex-shrink: 0;
}
.int-birth-field {
    flex: 1 1 0%;
    min-width: 0;
}
.int-hometown-red-note {
    font-size: 14px;
    line-height: 22px;
    color: #E7380D;
    margin: 4px 0 8px;
}
.int-school-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 13px;
    width: 100%;
}
.int-school-grid-2 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 13px;
    width: 100%;
}

/* Overflow guards for narrow internship/entry form containers. */
.int-form-card,
.int-form,
.int-section,
.int-form-header {
    max-width: 100%;
    min-width: 0;
}
.int-privacy-note,
.int-agree-text,
.int-transport-note {
    overflow-wrap: anywhere;
}
.int-form input,
.int-form select,
.int-form textarea {
    max-width: 100%;
}

@media (max-width: 768px) {
    .int-body-layout {
        width: 100%;
        max-width: 100%;
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .int-content,
    .int-form-card,
    .int-form {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .int-form-card:not(.sn-rec-closed-card) {
        padding-right: 24px;
        padding-left: 24px;
    }
    .int-name-row,
    .int-contact-row,
    .int-contact-row-3,
    .int-gender-birth-row,
    .int-station-fields,
    .int-addr-row {
        flex-direction: column;
        gap: 12px;
    }
    .int-school-grid,
    .int-school-grid-2,
    .int-school-grid-3 {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .int-label-cell,
    .int-field-h-label,
    .int-name-field,
    .int-contact-field,
    .int-gender-field,
    .int-birth-field,
    .int-station-field,
    .int-addr-pref-field,
    .int-addr-city-field,
    .int-school-field {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        flex: none;
    }
    .int-input-cell,
    .int-field-h-body,
    .int-field-v,
    .int-select-wrap,
    .int-field-v > .int-select-wrap,
    .int-addr-pref-field > .int-select-wrap {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .int-input-v,
    .int-input-wide,
    .int-select,
    .int-form .sn-inq-input,
    .int-form .sn-inq-textarea {
        width: 100% !important;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .int-birth-inputs .int-birth-year-input {
        width: auto !important;
        min-width: 92px;
        max-width: 166px;
        flex: 1 1 92px;
    }
    .int-birth-inputs .int-select-wrap {
        width: auto !important;
        min-width: 72px;
        max-width: 105px;
        flex: 1 1 72px;
    }
    .int-birth-inputs .int-select-wrap select,
    .int-birth-inputs .int-birth-md-input,
    .int-birth-inputs .int-birth-month-input,
    .int-birth-inputs .int-birth-day-input {
        width: 100% !important;
    }
}

@media (max-width: 480px) {
    .int-body-layout {
        padding-right: 13px;
        padding-left: 13px;
    }
    .int-form-card:not(.sn-rec-closed-card) {
        padding-right: 16px;
        padding-left: 16px;
    }
    .int-form-heading {
        overflow-wrap: anywhere;
    }
}

/* Shared responsive safeguards for /recruit/internship/form/. */
.int-form *,
.int-form *::before,
.int-form *::after {
    box-sizing: border-box;
}

.int-form .int-section-title {
    font-size: 22px;
    line-height: 30px;
}

.int-form .int-label-row {
    max-width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
}

.int-form .int-label-text {
    flex: 0 1 auto;
    min-width: 0;
}

.int-motivation-section .int-label-row {
    align-items: flex-start;
    height: auto;
    min-height: 15px;
}

.int-motivation-section .int-label-text {
    white-space: normal;
    overflow-wrap: anywhere;
}

.int-form input,
.int-form select,
.int-form textarea,
.int-form .sn-inq-input,
.int-form .sn-inq-select,
.int-form .sn-inq-textarea {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    line-height: 20px;
    color: #061C3D;
}

.int-form input::placeholder,
.int-form textarea::placeholder,
.int-form .sn-inq-input::placeholder,
.int-form .sn-inq-textarea::placeholder {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    line-height: 20px;
    color: #999999;
    opacity: 1;
}

@media (max-width: 768px) {
    .int-form input,
    .int-form select,
    .int-form textarea,
    .int-form .sn-inq-input,
    .int-form .sn-inq-select,
    .int-form .sn-inq-textarea {
        font-size: 13px;
        line-height: 20px;
    }

    .int-form input::placeholder,
    .int-form textarea::placeholder,
    .int-form .sn-inq-input::placeholder,
    .int-form .sn-inq-textarea::placeholder {
        font-size: 13px;
        line-height: 20px;
    }
}

.int-field-label-md {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.int-transport-choice-field .int-field-h-label,
.int-survey-choice-field .int-field-h-label,
.int-motivation-field .int-field-h-label,
.int-survey-extra-label {
    max-width: 100%;
    min-width: 0;
}

@media (max-width: 768px) {
    .int-transport-choice-field .int-field-h-label,
    .int-survey-choice-field .int-field-h-label,
    .int-motivation-field .int-field-h-label,
    .int-survey-extra-label {
        align-items: flex-start;
        gap: 8px;
    }

    .int-field-label-md {
        font-size: 14px;
        line-height: 1.5;
    }

    .int-survey-choice-field .int-field-h-body {
        width: 100%;
        max-width: 100%;
    }

    .int-survey-choice-field .int-survey-options {
        width: 100%;
        max-width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        grid-auto-flow: row;
        grid-template-rows: none;
        gap: 8px;
    }

    .int-survey-choice-field .int-how-known-row,
    .int-survey-choice-field .int-check-label {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .int-survey-choice-field .int-check-label {
        align-items: flex-start;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .int-survey-choice-field .int-check-label input[type="checkbox"] {
        flex: 0 0 auto;
        margin-top: 1px;
    }

    .int-survey-choice-field .int-req-badge {
        margin-top: 3px;
    }
}

@media (max-width: 480px) {
    .int-field-label-md {
        font-size: 14px;
        line-height: 1.5;
    }
}

@media (max-width: 768px) {
    .int-form .int-section-title,
    .int-addr-sub {
        font-size: 18px;
        line-height: 1.45;
    }

    .int-addr-sub {
        flex-wrap: wrap;
        gap: 6px;
    }

    .int-form .int-label-row .int-label-text {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 480px) {
    .int-zip-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .int-zip-sep {
        display: none;
    }

    .int-zip-input {
        width: 100% !important;
        max-width: 100%;
    }
}

/* ── Gutenberg editor overrides ────────────────────────────────────────────────
   page-about.css has `.editor-styles-wrapper .ab-sidebar { width:100% !important }`
   to support InnerBlocks-based layouts. The internship editor has its own
   title/breadcrumb + sidebar/content grid, so reset the shared sidebar to its
   270px fixed width. These selectors only apply inside the editor iframe
   (which adds .editor-styles-wrapper to <body>) and have no frontend effect.
*/
.editor-styles-wrapper .sn-breadcrumb-wrap,
.editor-styles-wrapper .rng-title-band-wrap,
.editor-styles-wrapper .int-body-layout,
.editor-styles-wrapper .sn-rec-closed-layout {
    padding-left: 40px !important;
    padding-right: 40px !important;
}

.editor-styles-wrapper .int-body-layout {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 40px !important;
}
.editor-styles-wrapper .int-body-layout .ab-sidebar {
    width: 270px !important;
    flex: 0 0 270px !important;
    min-width: 270px !important;
    max-width: 270px !important;
    position: static !important;
}
.editor-styles-wrapper .int-body-layout .int-content {
    flex: 1 !important;
    min-width: 0 !important;
}

/* The edit preview keeps the title and breadcrumb above the body, matching
   the frontend order: title → breadcrumb → sidebar/content columns. The
   blocks are still stored as one InnerBlocks list, so flatten its editor
   wrappers and place each child explicitly in the grid. */
.editor-styles-wrapper .sn-internship-editor-layout {
    display: grid !important;
    grid-template-columns: 270px minmax(0, 1fr) !important;
    column-gap: 40px !important;
    row-gap: 0 !important;
    align-items: start !important;
    padding: 0 40px !important;
    box-sizing: border-box !important;
}
.editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-sidebar {
    grid-column: 1 !important;
    grid-row: 3 !important;
    align-self: start !important;
    margin-top: 32px !important;
}
.editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-content,
.editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-content > .block-editor-inner-blocks,
.editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-content > .block-editor-inner-blocks > .block-editor-block-list__layout {
    display: contents !important;
}
.editor-styles-wrapper .sn-internship-editor-layout .wp-block {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-title"],
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-breadcrumb"] {
    grid-column: 1 / -1 !important;
    width: calc(100% + 80px) !important;
    max-width: none !important;
    margin-left: -40px !important;
    margin-right: 0 !important;
}
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-title"] {
    grid-row: 1 !important;
}
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-breadcrumb"] {
    grid-row: 2 !important;
}
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-closed-message"],
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-faq"],
.editor-styles-wrapper .sn-internship-editor-layout [data-type^="sunatec/int-section-"] {
    grid-column: 2 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-closed-message"],
.editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-section-1"] {
    margin-top: 32px !important;
}

/* Keep the shared recruitment sidebar at its fixed width even when other
   editor styles target `.ab-sidebar`. */
.editor-styles-wrapper .sn-internship-editor-layout .ab-sidebar {
    width: 270px !important;
    flex: 0 0 270px !important;
    min-width: 270px !important;
    max-width: 270px !important;
    position: static !important;
    top: auto !important;
}
.editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-content {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

@media (max-width: 768px) {
    .editor-styles-wrapper .sn-internship-editor-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        column-gap: 0 !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    .editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-sidebar,
    .editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-closed-message"],
    .editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-faq"],
    .editor-styles-wrapper .sn-internship-editor-layout [data-type^="sunatec/int-section-"] {
        grid-column: 1 !important;
    }
    .editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-sidebar {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }
    .editor-styles-wrapper .sn-internship-editor-layout .sn-internship-editor-sidebar .ab-sidebar {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: none !important;
    }
    .editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-title"],
    .editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-breadcrumb"] {
        width: calc(100% + 40px) !important;
        margin-left: -20px !important;
    }
    .editor-styles-wrapper .sn-breadcrumb-wrap,
    .editor-styles-wrapper .rng-title-band-wrap,
    .editor-styles-wrapper .int-body-layout,
    .editor-styles-wrapper .sn-rec-closed-layout {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

@media (max-width: 480px) {
    .editor-styles-wrapper .sn-internship-editor-layout {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-title"],
    .editor-styles-wrapper .sn-internship-editor-layout [data-type="sunatec/int-breadcrumb"] {
        width: calc(100% + 32px) !important;
        margin-left: -16px !important;
    }
    .editor-styles-wrapper .sn-breadcrumb-wrap,
    .editor-styles-wrapper .rng-title-band-wrap,
    .editor-styles-wrapper .int-body-layout,
    .editor-styles-wrapper .sn-rec-closed-layout {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* 都道府県 is a fixed 159px column — its error line (●【エラー】 選択して下さい)
   is wider and wrapped. Keep the message on one line and widen the column
   while the error shows (the city field beside it shrinks).
   Desktop only — at ≤768px the column is already full width. */
@media (min-width: 769px) {
    /* Fixed width, not auto: width:auto sized the column to its content,
       which on entry_career stretched it across the whole row. 200px fits
       the one-line message. */
    .int-addr-pref-field.int-field-error-group {
        flex: 0 0 200px;
        width: 200px;
    }
    .int-addr-pref-field .sn-field-error { white-space: nowrap; }
}

/* Agreement line under the form: underline the プライバシーポリシー link. */
.int-agree-text .int-link,
.int-agree-text .int-link:hover {
    text-decoration: underline !important;
}
