:root {
  /* Colors */
  --color-bg: #ffffff;
  --color-fv-bg: #ffe142;
  --color-primary: #123572;
  --color-text: #123572;
  --color-company-bg: #fff9dc;
  --color-company-card-alt: #e9ecf6;

  /* Typography */
  --font-family: "Noto Sans JP", sans-serif;
  --font-family-en: "Montserrat", sans-serif;

  /* Layout */
  --page-max-width: 1280px;
  --fv-sp-width: 390px;
  --fv-sp-height: 550px;
  --fv-pc-width: 1920px;
  --fv-pc-height: 825px;
  --fv-breakpoint: 768px;
  --section-padding-top: 78px;
  --section-title-ja-overlap: -30px;
  --section-heading-line-width: 184px;
  --section-heading-line-width-short: 105px;
  --section-heading-line-offset: -10px;
  --section-heading-line-offset-sp: -12px;
  --company-padding-top: 89px;
  --company-inner-width: 1000px;
  --company-padding-bottom: 89px;
  --company-section-height: 391px;
  --company-card-width: 235px;
  --company-card-height: 213px;
  --company-stat-padding: 16px;
  --company-stat-value-height: 52px;
  --company-stat-value-gap: 4px;
  --company-card-gap: 20px;
  --company-card-radius: 10px;
  --company-padding-top-sp: 40px;
  --company-padding-bottom-sp: 41px;
  --company-padding-inline-sp: 16px;
  --company-card-width-sp: 173px;
  --company-card-height-sp: 157px;
  --company-card-gap-sp: 12px;
  --company-card-radius-sp: 6px;
  --company-stat-icon-width-sp: 125px;
  --company-stat-padding-sp: 12px;
  --company-stat-value-height-sp: 37px;
  --company-stat-label-size-sp: 14px;
  --company-stat-number-size-sp: 32px;
  --company-stat-unit-size-sp: 12px;

  /* About */
  --color-about-bg: #ffe142;
  --about-padding-top: var(--section-padding-top);
  --about-machine-corner-offset-x: 19px;
  --about-machine-corner-offset-y: 18px;
  --about-machine-corner-height: 11px;
  --about-title-width: 488px;
  --about-deco-left-width: 340px;
  --about-deco-right-width: 320px;
  --about-deco-left-top: 80px;
  --about-deco-right-top: 36px;
  --about-deco-left-offset: 17px;
  --about-deco-right-offset: 0px;
  --about-title-width-sp: 201px;
  --about-title-ja-size-sp: 24px;
  --about-title-ja-overlap-sp: -21px;
  --about-padding-top-sp: 48px;
  --about-padding-inline-sp: 16px;
  --about-padding-bottom-sp: 80px;
  --about-lead-margin-top-sp: 29px;
  --about-lead-font-size-sp: 15px;
  --about-machine-margin-top-sp: 42px;
  --about-machine-card-width-sp: 358px;
  --about-machine-card-height-sp: 645px;
  --about-machine-card-padding-sp: 43px 20px 31px;
  --about-machine-corner-offset-x-sp: 18px;
  --about-machine-corner-offset-y-sp: 19px;
  --about-machine-corner-bottom-sp: 20px;
  --about-machine-text-size-sp: 14px;
  --about-machine-image-width-sp: 277px;
  --about-machine-image-height-sp: 219px;
  --about-timeline-width-sp: 29px;
  --about-timeline-stroke-width-sp: 5px;
  --about-timeline-circle-size-sp: 24px;
  --about-features-deco-width-sp: 50%;
  --about-features-margin-top-sp: 66px;
  --about-features-title-margin-bottom-sp: 45px;
  --about-features-timeline-top-sp: 18px;
  --about-features-timeline-bottom-sp: -61px;
  --about-features-heading-line-width-sp: 147px;
  --about-feature-card-width-sp: 358px;
  --about-feature-card-height-sp: 279px;
  --about-feature-image-height-sp: 189px;
  --about-feature-caption-min-height-sp: 90px;
  --about-feature-caption-size-sp: 18px;
  --about-feature-caption-padding-top-sp: 12px;
  --about-feature-num-size-sp: 46px;
  --about-feature-num-top-sp: -46px;
  --about-feature-num-left-sp: 14px;
  --about-feature-gap-sp: 46px;
  --about-jobs-margin-top-sp: 71px;
  --about-jobs-deco-width-sp: 50%;
  --about-jobs-title-margin-bottom-sp: 23px;
  --about-jobs-heading-line-width-sp: 79px;
  --about-jobs-tags-margin-top-sp: 24px;
  --about-jobs-tab-width-sp: 173px;
  --about-jobs-tab-height-sp: 54px;
  --about-jobs-tab-padding-block-sp: 15px;
  --about-jobs-tab-padding-inline-sp: 20px;
  --about-jobs-tab-inner-gap-sp: 4px;
  --about-jobs-tab-radius-sp: 6px;
  --about-jobs-tab-gap-sp: 12px;
  --about-jobs-tabs-margin-bottom-sp: 23px;
  --about-jobs-panel-gap-sp: 16px;
  --about-jobs-content-width-sp: 358px;
  --about-jobs-content-min-height-sp: 900px;
  --about-jobs-content-padding-sp: 26px 20px 45px;
  --about-jobs-heading-size-sp: 20px;
  --about-jobs-heading-margin-bottom-sp: 16px;
  --about-jobs-intro-gap-sp: 16px;
  --about-jobs-hours-margin-top-sp: 24px;
  --about-jobs-hours-padding-sp: 9px 16px 16px;
  --about-jobs-hours-row-gap-x-sp: 12px;
  --about-jobs-hours-title-margin-bottom-sp: 9px;
  --about-jobs-cta-margin-top-sp: 35px;
  --about-jobs-text-size-sp: 14px;
  --about-jobs-tag-size-sp: 13px;
  --about-jobs-tag-gap-sp: 8px;
  --about-jobs-tag-padding-sp: 2px 6px;
  --about-jobs-hours-width-sp: 318px;
  --about-jobs-hours-height-sp: 137px;
  --about-jobs-hours-title-size-sp: 14px;
  --about-jobs-hours-label-size-sp: 13px;
  --about-jobs-hours-row-gap-sp: 13px;
  --about-jobs-cta-width-sp: 299px;
  --about-jobs-cta-size-sp: 14px;
  --about-lead-width: 609px;
  --about-inner-width: 820px;
  --about-machine-radius: 10px;
  --about-feature-card-width: 320px;
  --about-feature-card-border: 2px dashed var(--color-primary);
  --about-feature-card-border-width: 2px;
  --about-feature-card-height: 274px;
  --about-feature-image-height: 167px;
  --about-feature-image-offset: -2px;
  --about-feature-caption-gap: 16px;
  --about-feature-num-size: 60px;
  --about-feature-num-line-height: 1.6;
  --about-feature-num-top: -63px;
  --about-feature-num-top-row2: -59px;
  --about-feature-gap: 20px;
  --about-feature-row-offset: 168px;
  --about-features-title-margin-bottom: 60px;
  --about-bg-width: 2500px;
  --about-bg-height: 2707px;
  --about-jobs-tab-width: 234px;
  --about-jobs-tab-gap: 21px;
  --about-jobs-content-radius: 20px;
  --about-jobs-content-min-height: 723px;
  --about-jobs-content-padding-x: 85px;
  --about-jobs-intro-text-width: 346px;
  --about-jobs-photo-width: 279px;
  --about-jobs-photo-height: 178px;
  --about-jobs-hours-width: 333px;
  --about-jobs-hours-height: 137px;
  --about-jobs-cta-width: 340px;
  --color-jobs-tab-inactive-border: #898989;
  --color-jobs-tab-inactive-text: #898989;
  --color-jobs-photo-bg: #e7e7e7;

  /* Interview */
  --interview-padding-top: 80px;
  --interview-title-width: 774px;
  --interview-title-en-height: 94px;
  --interview-titles-margin-bottom: 77px;
  --interview-card-width: 356px;
  --interview-card-height: 203px;
  --interview-card-gap: 25px;
  --interview-card-radius: 10px;
  --interview-character-size: 72px;
  --interview-bubble-height: 242px;
  --interview-tail-width: 55px;
  --interview-tail-height: 56px;
  --interview-tail-margin-right: 47px;
  --interview-tail-overlap: 17px;
  --interview-card-padding-bottom: 17px;
  --interview-footer-margin-top: 33px;
  --interview-character-pull-up: 33px;
  --interview-nav-size: 50px;
  --interview-nav-gap: 18px;
  --interview-nav-offset-from-ja: 59px;
  --interview-nav-right: 140px;
  --interview-nav-slider-gap: 19px;
  --interview-dots-margin-top: 10px;
  --interview-slider-padding-bottom: 59px;
  --interview-dot-size: 8px;
  --interview-dot-size-active: 9px;
  --interview-dot-gap: 11px;
  --interview-dot-inactive-bg: #e9ecf6;
  --interview-dot-inactive-border: #898989;

  /* Interview SP */
  --interview-padding-top-sp: 41px;
  --interview-title-width-sp: 314px;
  --interview-title-ja-size-sp: 24px;
  --interview-title-ja-overlap-sp: -20px;
  --interview-slider-margin-top-sp: 35px;
  --interview-slider-peek-offset-sp: 24px;
  --interview-slider-padding-bottom-sp: 40px;
  --interview-card-width-sp: 310px;
  --interview-card-height-sp: 197px;
  --interview-card-gap-sp: 16px;
  --interview-card-radius-sp: 6px;
  --interview-card-padding-top-sp: 32px;
  --interview-card-padding-inline-sp: 20px;
  --interview-card-padding-bottom-sp: 20px;
  --interview-card-text-size-sp: 14px;
  --interview-card-meta-size-sp: 11px;
  --interview-footer-margin-top-sp: 58px;
  --interview-character-size-sp: 56px;
  --interview-character-pull-up-sp: 16px;
  --interview-bubble-height-sp: 242px;
  --interview-tail-margin-right-sp: 48px;
  --interview-tail-overlap-sp: 11px;
  --interview-dots-margin-top-sp: 6px;
  --interview-autoplay-interval-sp: 5000ms;
  --interview-marquee-speed-pc: 40px;
  --interview-marquee-speed-sp: 32px;

  /* Data */
  --data-title-width: 371px;
  --data-lead-width: 764px;
  --data-grid-width: 1000px;
  --data-card-width: 320px;
  --data-card-min-width: 280px;
  --data-card-height: 345px;
  --data-card-padding-x: 15px;
  --data-card-gap: 20px;
  --data-card-radius: 10px;
  --data-lead-margin-bottom: 52px;
  --data-padding-bottom: 110px;
  --data-badge-radius: 10px;
  --data-badge-height: 77px;
  --data-badge-height-tall: 89px;
  --data-icon-max-height: 115px;

  /* Data SP */
  --data-padding-top-sp: 51px;
  --data-titles-width-sp: 240px;
  --data-title-width-sp: 129px;
  --data-title-ja-size-sp: 24px;
  --data-title-ja-overlap-sp: -16px;
  --data-lead-margin-top-sp: 23px;
  --data-lead-font-size-sp: 15px;
  --data-lead-margin-bottom-sp: 18px;
  --data-padding-bottom-sp: 80px;
  --data-grid-max-width-sp: 358px;
  --data-card-gap-sp: 16px;
  --data-card-width-sp: 173px;
  --data-hero-card-height-sp: 160px;
  --data-card-height-sp: 266px;
  --data-card-height-tall-sp: 304px;
  --data-card-padding-sp: 17px 9px 16px;
  --data-card-title-size-sp: 18px;
  --data-hero-card-title-size-sp: 20px;
  --data-card-radius-sp: 10px;
  --data-card-radius-sm-sp: 6px;
  --data-card-note-size-sp: 12px;
  --data-badge-height-sp: 40px;
  --data-badge-height-tall-sp: 55px;
  --data-badge-radius-sp: 6px;
  --data-badge-width-childcare-sp: 121px;
  --data-badge-width-paid-leave-sp: 109px;
  --data-badge-width-hours-sp: 155px;
  --data-badge-width-qualification-sp: 119px;
  --data-badge-width-text-sp: 155px;
  --data-badge-width-family-sp: 155px;
  --data-badge-width-housing-sp: 151px;
  --data-badge-padding-sp: 4px 8px;
  --data-badge-padding-tall-sp: 2px 6px 4px;
  --data-badge-number-size-sp: 28px;
  --data-hero-badge-number-size-sp: 38px;
  --data-badge-unit-size-sp: 12px;
  --data-badge-text-lg-size-sp: 18px;
  --data-badge-text-sm-size-sp: 12px;
  --data-icon-max-height-sp: 88px;
  --data-hero-icon-max-height-sp: 77px;

  /* Training */
  --training-title-width: 658px;
  --training-cards-width: 1134px;
  --training-card-width: 305px;
  --training-card-height: 342px;
  --training-card-gap: 42px;
  --training-card-image-width: 219px;
  --training-card-image-height: 126px;
  --training-keywords-width: 820px;
  --training-keywords-height: 286px;
  --training-cards-margin-top: 65px;
  --training-keywords-margin-top: 66px;
  --training-gallery-margin-top: 72px;
  --training-padding-bottom: 0;
  --training-gallery-height: 229px;
  --training-gallery-gap: 5px;
  --training-gallery-outer-border-width: 5px;
  --training-gallery-marquee-duration: 50s;
  --training-gallery-item-width: 380px;
  --training-bg-width: 2500px;
  --training-bg-height: 1274px;
  /* Training SP */
  --training-padding-top-sp: 41px;
  --training-titles-width-sp: 270px;
  --training-title-width-sp: 270px;
  --training-title-ja-size-sp: 24px;
  --training-title-ja-overlap-sp: -21px;
  --training-cards-margin-top-sp: 30px;
  --training-cards-padding-inline-sp: 16px;
  --training-card-width-sp: 358px;
  --training-card-height-sp: 308px;
  --training-card-gap-sp: 11px;
  --training-card-padding-top-sp: 33px;
  --training-card-padding-inline-sp: 16px;
  --training-card-padding-bottom-sp: 24px;
  --training-card-label-size-sp: 18px;
  --training-card-label-padding-sp: 2px 16px;
  --training-card-label-margin-top-sp: 10px;
  --training-card-text-size-sp: 14px;
  --training-card-text-margin-top-sp: 11px;
  --training-keywords-width-sp: 358px;
  --training-keywords-margin-top-sp: 58px;
  --training-keywords-radius-sp: 10px;
  --training-gallery-height-sp: 92px;
  --training-gallery-margin-top-sp: 59px;
  --training-gallery-outer-border-width-sp: 2px;
  --training-gallery-gap-sp: 2px;
  --training-gallery-item-width-sp: 152px;
  --training-gallery-marquee-duration-sp: 40s;
  --training-padding-bottom-sp: 1px;

  /* Base / Message */
  --base-title-width: 351px;
  --base-title-width-sp: 145px;
  --base-titles-margin-bottom: 47px;
  --base-map-width: 432px;
  --base-card-more-icon-size: 14px;
  --base-card-width: 234px;
  --base-card-height: 178px;
  --base-card-gap: 21px;
  --base-body-gap: 62px;
  --base-padding-bottom: 80px;
  /* Base SP */
  --base-padding-top-sp: 49px;
  --base-titles-width-sp: 145px;
  --base-title-ja-size-sp: 24px;
  --base-title-ja-overlap-sp: -21px;
  --base-titles-margin-bottom-sp: 12px;
  --base-body-padding-inline-sp: 16px;
  --base-map-width-sp: 366px;
  --base-body-gap-sp: 36px;
  --base-card-width-sp: 173px;
  --base-card-height-sp: 137px;
  --base-card-gap-row-sp: 8px;
  --base-card-gap-col-sp: 12px;
  --base-card-name-size-sp: 14px;
  --base-card-more-size-sp: 40px;
  --base-padding-bottom-sp: 84px;
  /* Base modal SP */
  --base-modal-width-sp: 358px;
  --base-modal-radius-sp: 10px;
  --base-modal-padding-top-sp: 49px;
  --base-modal-padding-inline-sp: 20px;
  --base-modal-padding-bottom-sp: 32px;
  --base-modal-close-size-sp: 24px;
  --base-modal-close-offset-sp: 14px;
  --base-modal-summary-gap-sp: 10px;
  --base-modal-spot-width-sp: 255px;
  --base-modal-spot-image-height-sp: 177px;
  --base-modal-scroll-gap-sp: 16px;
  --base-modal-spots-margin-top-sp: 32px;
  --base-modal-voices-margin-top-sp: 40px;
  --base-modal-voices-title-size-sp: 17px;
  --base-modal-voices-title-highlight-sp: 8px;
  --base-modal-voice-width-sp: 255px;
  --base-modal-voice-text-size-sp: 13px;
  --base-modal-voice-padding-sp: 16px;
  --base-modal-voice-radius-sp: 4.8px;
  --base-modal-voice-tail-width-sp: 26px;
  --base-modal-voice-tail-height-sp: 27px;
  --base-modal-voice-tail-offset-sp: 26px;
  --base-modal-scroll-end-spacer-sp: 20px;
  --base-modal-spot-label-size-sp: 13px;
  --message-title-width: 640px;
  --message-title-width-sp: 262px;
  --message-padding-top-sp: 21px;
  --message-titles-width-sp: 288px;
  --message-title-ja-size-sp: 24px;
  --message-title-ja-overlap-sp: -6px;
  --message-section-gap-sp: 33px;
  --message-visual-margin-top-sp: 33px;
  --message-card-width-sp: 358px;
  --message-card-padding-top-sp: 39px;
  --message-card-padding-inline-sp: 20px;
  --message-card-padding-bottom-sp: 40px;
  --message-card-shadow-sp: 0 0 15px rgba(0, 0, 0, 0.15);
  --message-card-heading-size-sp: 23px;
  --message-card-heading-line-height-sp: 26px;
  --message-card-heading-highlight-sp: 12px;
  --message-card-heading-gap-sp: 17px;
  --message-card-body-margin-top-sp: 30px;
  --message-card-body-size-sp: 15px;
  --message-card-body-line-height-sp: 1.8;
  --message-card-body-weight-sp: 500;
  --message-photos-frame-width-sp: 390px;
  --message-photos-height-sp: 360px;
  --message-photos-overlap-sp: 21px;
  --message-photos-inset-sp: 16px;
  --message-photo-border-width-sp: 3px;
  /* 左スロット（photo_02）Figma 213:5521 x=-6 y=895 */
  --message-photo-left-width-sp: 47.949%;
  --message-photo-left-height-sp: 126px;
  --message-photo-left-top-sp: 41px;
  --message-photo-left-offset-x-sp: -1.538%;
  /* 右スロット（photo_01）Figma 213:5523 x=261 y=854 */
  --message-photo-right-width-sp: 35.641%;
  --message-photo-right-height-sp: 209px;
  --message-photo-right-top-sp: 0px;
  --message-photo-right-offset-sp: -10px;
  /* 中央下スロット（photo_03）Figma 213:5522 x=71 y=1038 */
  --message-photo-center-width-sp: 63.462%;
  --message-photo-center-height-sp: 165px;
  --message-photo-center-bottom-sp: 30px;
  --message-photo-center-left-sp: 18.179%;
  --message-padding-bottom-sp: 0px;
  --message-card-width: 623px;
  --message-card-padding-x: 56px;
  --message-card-padding-top: 76px;
  --message-card-padding-bottom: 80px;
  --message-card-heading-size: 36px;
  --message-card-heading-line-height: 1.35;
  --message-card-heading-highlight: 14px;
  --message-card-heading-gap: 8px;
  --message-card-body-margin-top: 36px;
  --message-card-body-size: 16px;
  --message-card-body-line-height: 2;
  --message-card-body-weight: 500;
  --message-section-gap: 72px;
  --message-padding-bottom: 120px;
  --message-visual-height: 962px;
  --message-visual-offset-top: 30px;
  --message-card-offset-top: 57px;
  --message-bg-width: 2500px;
  --message-bg-height: 1405px;

  /* FAQ */
  --faq-title-width: 277px;
  --faq-title-width-sp: 115px;
  --faq-padding-top-sp: 41px;
  --faq-title-ja-size-sp: 24px;
  --faq-title-ja-overlap-sp: -28px;
  --faq-list-width: 821px;
  --faq-list-width-sp: 359px;
  --faq-list-margin-top-sp: 35px;
  --faq-list-padding-inline-sp: 16px;
  --faq-item-gap: 20px;
  --faq-item-gap-sp: 12px;
  --faq-question-height: 64px;
  --faq-question-padding-inline-sp: 16px;
  --faq-question-radius-sp: 6px;
  --faq-question-label-gap-sp: 4px;
  --faq-q-size-sp: 28px;
  --faq-question-text-size-sp: 14px;
  --faq-toggle-size-sp: 20px;
  --faq-answer-radius-bottom-sp: 10px;
  --faq-answer-padding-block-start-sp: 4px;
  --faq-answer-padding-inline-sp: 16px;
  --faq-answer-padding-block-end-sp: 16px;
  --faq-answer-gap-sp: 13px;
  --faq-answer-body-offset-top-sp: 20px;
  --faq-a-size-sp: 28px;
  --faq-answer-body-size-sp: 14px;
  --faq-padding-bottom: 120px;
  --faq-padding-bottom-sp: 115px;

  /* Footer */
  --footer-inner-height: 551px;
  --footer-inner-min-height-sp: 505px;
  --footer-catchcopy-top: 87px;
  --footer-catchcopy-top-sp: 98px;
  --footer-catchcopy-width-sp: 290px;
  --footer-characters-width-sp: 196px;
  --footer-characters-offset-top-sp: -94px;
  --footer-lead-width: 473px;
  --footer-lead-width-sp: 358px;
  --footer-lead-margin-top: 34px;
  --footer-lead-margin-top-sp: 22px;
  --footer-lead-size-sp: 14px;
  --footer-content-padding-inline-sp: 16px;
  --footer-actions-margin-top-sp: 26px;
  --footer-btn-width: 400px;
  --footer-btn-width-sp: 358px;
  --footer-btn-height: 96px;
  --footer-btn-height-sp: 72px;
  --footer-btn-padding-sp: 10px;
  --footer-btn-gap: 20px;
  --footer-btn-gap-sp: 22px;
  --footer-btn-inner-gap-sp: 6px;
  --footer-btn-font-size-sp: 18px;
  --footer-btn-icon-size-sp: 24px;
  --footer-btn-primary-line-height-sp: 1.6;
  --footer-btn-secondary-line-height-sp: 1.5;
  --footer-padding-bottom-sp: 60px;
  --footer-catchcopy-width: 448px;
  --footer-catchcopy-half-width: calc(var(--footer-catchcopy-width) / 2);
  --footer-character-gap: 12px;
  --footer-character-offset-left: 209px;
  --footer-character-offset-right-end: 213px;
  --footer-character-width: 179px;
  --footer-character-height-left: 284px;
  --footer-character-height-right: 325px;
  --footer-character-top-left: -87px;
  --footer-character-top-right: -113px;
}
