@charset "UTF-8";
/*
Theme Name: いまいメディカルリクリートサイトテーマ
Author: fci
Description: いまいメディカルリクリートサイトテーマ
Version: 1.0
*/
/* noto-sans-jp-regular - japanese */
/* noto-sans-jp-500 - japanese */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 500;
  src: url("./fonts/noto-sans-jp/noto-sans-jp-v56-japanese-500.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* noto-sans-jp-700 - japanese */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  src: url("./fonts/noto-sans-jp/noto-sans-jp-v56-japanese-700.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* noto-sans-jp-900 - japanese */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 900;
  src: url("./fonts/noto-sans-jp/noto-sans-jp-v56-japanese-900.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  text-decoration: unset;
  color: currentColor;
}

button {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* 変数 */
:root {
  --f1: 2.44em; /* 39.04px */
  --f2: 1.95em; /* 31.2px */
  --f3: 1.56em; /* 24.96px */
  --f4: 1.25em; /* 20px */
  --f5: 1em; /* 16px */
  --f6: 0.8em; /* 12.8px */
  --myw: 1000px; /* 標準幅 */
  --orange: #ea5506;
  --yellow: #ffe63d;
  --green: #016f3f;
  --lightorange: #ff7d29;
  --lightyellow: #feffd2;
  --text: #333333;
  --font-base:
      'Noto Sans JP', system-ui, -apple-system, 'Hiragino Sans', 'Yu Gothic',
      sans-serif;
}

:root {
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1200px;
}

html {
  scroll-behavior: smooth;
}

html,
body {
  overflow-x: clip;
}

img,
iframe,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

figure {
  margin-left: 0;
  margin-right: 0;
}

body *,
body *::before,
body *::after {
  box-sizing: border-box;
}

body {
  font-family: var(--font-base);
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  letter-spacing: 0.03em;
  line-height: 1.6;
  color: var(--text);
}

/* スクリーンリーダー用のテキスト */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

/* 共通セクションタイトル */
.section-title {
  margin-bottom: 45px;
}
@media (min-width: 1024px) {
  .section-title {
    margin-bottom: 54px;
    display: flex;
    align-items: baseline;
    -moz-column-gap: 24px;
         column-gap: 24px;
  }
}
.section-title__en {
  display: block;
  font-family: var(--font-en);
  font-size: 45px;
  font-weight: 900;
  color: var(--orange);
  line-height: 1;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .section-title__en {
    font-size: 50px;
  }
}
@media (min-width: 1200px) {
  .section-title__en {
    font-size: 100px;
  }
}
.section-title__ja {
  display: block;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0;
  margin-top: 6px;
}
@media (min-width: 1024px) {
  .section-title__ja {
    font-size: 30px;
  }
}

/* セクション左上三角形デコレーション */
.section-triangle {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 110px 110px 0 0;
  border-color: #ffe63d transparent transparent transparent;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .section-triangle {
    border-width: 300px 300px 0 0;
  }
}

/* Reusable Title Component with Sankaku Background */
.c-title-sankaku {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 700;
  color: var(--orange);
  background-image: url("./img/common/logo/title_sankaku.svg");
  background-repeat: no-repeat;
  background-position: center center;
  font-size: 20px;
  background-size: 66px 62px;
  min-height: 62px;
}
@media (min-width: 1024px) {
  .c-title-sankaku {
    font-size: 36px;
    background-size: 130px 123px;
    min-height: 123px;
  }
}

/* Subpage Main Wrapper with Background Illustrations */
.page__wrapper {
  background-color: #fefff7;
  width: 100%;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.page__wrapper::before, .page__wrapper::after {
  content: "";
  position: absolute;
  width: 100%;
  bottom: 0;
  z-index: -1;
  pointer-events: none;
  background-repeat: repeat-y;
}
.page__wrapper::before {
  top: 545px;
  background-image: url("./img/common/ill/ill_left.svg");
  background-position: left -122px top 0;
}
@media (min-width: 1024px) {
  .page__wrapper::before {
    width: 400px;
    left: -117px;
    background-size: 100% auto;
    background-position: left 0 top 0;
    top: 310px;
    background-image: url("./img/common/ill/ill_left_pc.svg");
  }
}
.page__wrapper::after {
  top: 1132px;
  background-image: url("./img/common/ill/ill_right.svg");
  background-position: right -195px top 0;
}
@media (min-width: 1024px) {
  .page__wrapper::after {
    width: 601px;
    right: -218px;
    left: auto;
    background-size: 100% auto;
    background-position: right 0 top 0;
    top: 971px;
    background-image: url("./img/common/ill/ill_right_pc.svg");
  }
}

svg {
  shape-rendering: geometricPrecision;
}

svg path {
  shape-rendering: geometricPrecision;
}

.l-container {
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 15px;
}

/* =========================
  Scroll Reveal
========================= */
.js-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}

.js-reveal.is-inview {
  opacity: 1;
  transform: translateY(0);
}

.js-reveal[data-reveal=left] {
  transform: translateX(-18px);
}

.js-reveal.is-inview[data-reveal=left] {
  transform: translateX(0);
}

.js-reveal[data-reveal=right] {
  transform: translateX(18px);
}

.js-reveal.is-inview[data-reveal=right] {
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.site-header {
  position: relative;
  z-index: 1100;
  background: #fff;
}
.site-header--fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1200;
  pointer-events: none;
}
.site-header__inner {
  position: relative;
  pointer-events: auto;
  height: 60px;
  padding-inline: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
@media (min-width: 1024px) {
  .site-header__inner {
    height: 90px;
    padding-inline: 83px;
  }
}
.site-header__inner::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: none;
  z-index: 0;
}
@media (min-width: 1024px) {
  .site-header__inner::before {
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    opacity: 0;
  }
}
.site-header__logo, .site-header__pc, .site-header__sp {
  position: relative;
  z-index: 1;
}
.site-header {
  /* ロゴ */
}
.site-header__logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 5px;
  text-decoration: none;
}
@media (min-width: 1024px) {
  .site-header__logo {
    gap: 15px;
  }
}
.site-header__logo-img {
  display: block;
  width: 142px;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1024px) {
  .site-header__logo-img {
    width: 200px;
  }
}
.site-header__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.4;
}
@media (min-width: 1024px) {
  .site-header__logo-text {
    line-height: 1.25;
  }
}
.site-header__logo-text-sub {
  font-size: 7px;
  letter-spacing: 0.03em;
}
@media (min-width: 1024px) {
  .site-header__logo-text-sub {
    font-size: 12px;
    letter-spacing: 0.08em;
  }
}
.site-header__logo-text-main {
  font-size: 13px;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .site-header__logo-text-main {
    font-size: 23px;
  }
}
.site-header {
  /* PC用 */
}
.site-header__pc {
  display: none;
  margin-left: auto;
}
@media (min-width: 1200px) {
  .site-header__pc {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-left: auto;
  }
}
.site-header {
  /* SP用 */
}
.site-header__sp {
  display: flex;
  align-items: center;
  gap: 15px;
}
@media (min-width: 1200px) {
  .site-header__sp {
    display: none;
  }
}
.site-header {
  /* ボタン */
}
.site-header__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-decoration: none;
  border: 0;
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.site-header__btn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header__btn-icon img {
  width: 27px;
  height: 18px;
}
.site-header__btn-text {
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .site-header__btn--contact {
    height: 38px;
    width: 180px;
    padding-inline: 24px;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    -moz-column-gap: 10px;
         column-gap: 10px;
    background: var(--green);
    color: #fff;
    border: 2px solid var(--green);
    transition: background 0.3s ease, color 0.3s ease;
    font-weight: 700;
    font-family: var(--font-round);
    font-size: 15px;
    letter-spacing: 0.05em;
  }
  .site-header__btn--contact:hover {
    background: #fff;
    color: var(--green);
  }
}
.site-header__btn--contact-sp {
  height: 44px;
  width: 60px;
  padding-inline: 5px;
  border-radius: 10px;
  background: var(--green);
  color: #fff;
  font-weight: 700;
  font-size: 8px;
  letter-spacing: 0.03em;
  flex-direction: column;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.site-header__btn--contact-sp .site-header__btn-icon svg {
  width: 26px;
  height: 18px;
}
.site-header {
  /* ハンバーガー */
}
.site-header__toggle {
  position: relative;
  z-index: 1200;
  width: 30px;
  height: 24px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.site-header__toggle-line {
  position: absolute;
  left: 50%;
  width: 30px;
  height: 2px;
  background: var(--orange);
  transform: translateX(-50%);
  transition: transform 0.25s ease, opacity 0.25s ease, top 0.25s ease;
}
.site-header__toggle-line:nth-child(1) {
  top: 0;
}
.site-header__toggle-line:nth-child(2) {
  top: 10px;
}
.site-header__toggle-line:nth-child(3) {
  top: 20px;
}
.site-header__toggle[aria-expanded=true] .site-header__toggle-line:nth-child(1) {
  top: 9px;
  transform: translateX(-50%) rotate(33deg);
}
.site-header__toggle[aria-expanded=true] .site-header__toggle-line:nth-child(2) {
  opacity: 0;
}
.site-header__toggle[aria-expanded=true] .site-header__toggle-line:nth-child(3) {
  top: 9px;
  transform: translateX(-50%) rotate(-33deg);
}
.site-header {
  /* PCナビ */
}
@media (min-width: 1024px) {
  .site-header__nav {
    display: block;
    width: auto;
  }
}
@media (min-width: 1024px) {
  .site-header__menu {
    display: flex;
    align-items: center;
    list-style: none;
  }
}
@media (min-width: 1024px) {
  .site-header__menu-item {
    position: relative;
  }
}
@media (min-width: 1024px) {
  .site-header__menu-item--has-children:hover .site-header__submenu, .site-header__menu-item--has-children:focus-within .site-header__submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
}
@media (min-width: 1024px) {
  .site-header__menu-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    padding: 24px 10px;
    font-weight: 700;
    font-family: var(--font-round);
    font-size: 12px;
    line-height: 1;
    letter-spacing: 0.03em;
    transition: color 0.3s ease;
  }
  .site-header__menu-link:hover {
    color: var(--lightorange);
  }
}
@media (min-width: 1200px) {
  .site-header__menu-link {
    font-size: 13px;
    padding: 24px 6px;
  }
}
@media (min-width: 1250px) {
  .site-header__menu-link {
    padding: 24px 10px;
  }
}
@media (min-width: 1350px) {
  .site-header__menu-link {
    padding: 24px 15px;
  }
}
@media (min-width: 1024px) {
  .site-header__actions {
    display: flex;
    align-items: center;
  }
}
.site-header {
  /* PCメガメニュー */
}
.site-header__mega {
  border-radius: 0 0 30px 30px;
}
@media (min-width: 1200px) {
  .site-header__mega {
    position: fixed;
    top: 90px;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 5px solid var(--green);
    clip-path: inset(-50px 0 0 0 round 0 0 30px 30px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 100;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }
  .site-header__mega::before {
    content: "";
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    height: 35px;
  }
}
@media (min-width: 1200px) {
  .site-header__menu-item--has-children:hover .site-header__mega, .site-header__mega:hover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-inner {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: 42px 0 46px;
    display: flex;
    justify-content: center;
    overflow: hidden;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-title {
    position: absolute;
    left: 0;
    top: 36px;
  }
  .site-header__mega-title-en {
    display: block;
    font-size: 35px;
    font-weight: 900;
    color: var(--orange);
    letter-spacing: 0;
  }
  .site-header__mega-title-ja {
    display: block;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-list {
    display: flex;
    gap: 40px;
    list-style: none;
    margin: 0;
    padding: 0;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-item {
    width: 240px;
    flex-shrink: 0;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-link {
    display: block;
    text-decoration: none;
  }
  .site-header__mega-link:hover .site-header__mega-img img {
    transform: scale(1.05);
  }
  .site-header__mega-link:hover .site-header__mega-label {
    color: var(--lightorange);
  }
}
@media (min-width: 1200px) {
  .site-header__mega-img {
    display: block;
    margin-bottom: 10px;
    overflow: hidden;
    border-radius: 30px;
  }
  .site-header__mega-img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    transition: transform 0.3s ease;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-text {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-label {
    font-size: 15px;
    font-weight: 500;
    color: #333;
    transition: color 0.3s ease;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-dot {
    color: var(--orange);
  }
}
@media (min-width: 1200px) {
  .site-header__mega-arrow {
    display: flex;
    align-items: center;
  }
  .site-header__mega-arrow img {
    width: 21px;
    height: auto;
  }
}
@media (min-width: 1200px) {
  .site-header__mega-ill {
    position: absolute;
    bottom: 0;
    background: url("./img/common/ill/orange.svg") no-repeat center/contain;
    opacity: 0.2;
    pointer-events: none;
  }
  .site-header__mega-ill--left {
    left: -70px;
    bottom: -75px;
    width: 200px;
    height: 200px;
  }
  .site-header__mega-ill--right {
    right: -120px;
    width: 400px;
    height: 400px;
    bottom: -150px;
  }
}

/* ドロワー */
.site-header-drawer {
  position: fixed;
  inset: 0;
  z-index: 1150;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.site-header-drawer__nav {
  height: 100%;
  padding-top: 60px;
  display: flex;
  flex-direction: column;
  overflow: auto;
}
@media (min-width: 1024px) {
  .site-header-drawer__nav {
    padding-top: 90px;
  }
}
.site-header-drawer__panel {
  width: 100%;
  flex: 1;
  overflow-x: hidden;
  overflow-y: auto;
  background-color: #fff;
  padding: 10px 20px 60px;
  border-top: 5px solid #078b51;
}
.site-header-drawer__in {
  position: relative;
  max-width: 100%;
  width: 100%;
}
.site-header-drawer__in::after {
  content: "";
  position: absolute;
  left: 72%;
  top: 70px;
  width: 200px;
  height: 200px;
  background: url("./img/common/ill/orange.svg") no-repeat center/contain;
  opacity: 0.19;
  pointer-events: none;
  z-index: 0;
}
.site-header-drawer__in::before {
  content: "";
  position: absolute;
  left: 10px;
  bottom: -82px;
  width: 145px;
  height: 145px;
  background: url("./img/common/ill/orange.svg") no-repeat center/contain;
  opacity: 0.19;
  pointer-events: none;
  z-index: 0;
}
.site-header-drawer__section {
  padding-bottom: 16px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--orange);
}
.site-header-drawer__section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.site-header-drawer {
  /* アコーディオン */
}
.site-header-drawer__accordion {
  padding-inline: 10px;
}
.site-header-drawer__accordion-toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
}
.site-header-drawer__accordion-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.site-header-drawer__accordion-title {
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.site-header-drawer__accordion-title-en {
  font-size: 35px;
  font-weight: 700;
  color: var(--orange);
  letter-spacing: 0;
}
.site-header-drawer__accordion-title-ja {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.site-header-drawer__submenu {
  list-style: none;
  margin: 0;
  padding: 10px 0 0 0;
  font-weight: 500;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: none;
  opacity: 1;
  transform: none;
}
.site-header-drawer__submenu-item {
  margin: 0;
  padding: 0;
}
.site-header-drawer__submenu-link {
  display: block;
  padding-left: 20px;
  font-size: 15px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  letter-spacing: 0.02em;
  position: relative;
}
.site-header-drawer__submenu-link::before {
  content: "・";
  position: absolute;
  left: 0;
  color: var(--orange);
  font-weight: 700;
}
.site-header-drawer {
  /* その他リンク */
}
.site-header-drawer__links {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 50px;
  margin-top: 20px;
  font-weight: 500;
  padding-inline: 10px;
}
.site-header-drawer__link {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  letter-spacing: 0.02em;
  position: relative;
  padding-left: 16px;
}
.site-header-drawer__link::before {
  content: "・";
  position: absolute;
  left: 0;
  color: var(--orange);
  font-weight: 700;
}
.site-header-drawer__link {
  /* 最後の要素（「よくある質問」）を右列に強制配置 */
}
.site-header-drawer__link:last-child {
  grid-column: 2;
}

/* ドロワー開いた時 */
body.is-drawer-open .site-header-drawer {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* 1386px以上のみ表示 */
.u-show-1300 {
  display: none;
}
@media (min-width: 1386px) {
  .u-show-1300 {
    display: block;
  }
}

/* フロントページ専用スタイル */
.home {
  /* ヒーロー＆イントロ */
}
.home .hero {
  position: relative;
  width: 100%;
  margin-top: 60px;
  background: linear-gradient(to bottom, #f05f0f, #f16212);
  overflow: hidden;
}
@media (min-width: 1024px) {
  .home .hero {
    margin-top: 90px;
  }
}
.home .hero__ill {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.home .hero__ill img {
  width: 100%;
  height: auto;
}
.home .hero__ill--left {
  width: 276px;
  left: -123px;
  bottom: 33.5%;
  transform: translateY(-50%);
}
@media (min-width: 1024px) {
  .home .hero__ill--left {
    width: 400px;
    left: -150px;
  }
}
.home .hero__ill--right {
  width: 415px;
  right: -195px;
  bottom: -110px;
}
@media (min-width: 1024px) {
  .home .hero__ill--right {
    width: 601px;
    right: -215px;
    bottom: -140px;
  }
}
.home .hero__main {
  position: relative;
  z-index: 2;
  padding: 20px 10px;
}
@media (min-width: 1024px) {
  .home .hero__main {
    padding: 20px;
  }
}
.home .hero__layers {
  position: relative;
  width: 100%;
}
.home .hero__layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0; /* Initial state */
}
.home .hero__layer img {
  width: 100%;
  height: auto;
  display: block;
}
.home .hero__layer {
  /* Animations */
}
.home .hero__layer--01 {
  /* Background */
  position: relative; /* Let the BG define the height */
  z-index: 1;
  opacity: 1; /* Always visible or fast fade */
  animation: heroFadeIn 3s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
.home .hero__layer--02 {
  /* Parent & Child */
  z-index: 5;
  animation: heroFadeIn 3s cubic-bezier(0.25, 1, 0.5, 1) 0.8s forwards;
}
.home .hero__layer--03 {
  /* Pharmacist */
  z-index: 6;
  animation: heroFadeIn 2s cubic-bezier(0.25, 1, 0.5, 1) 1.6s forwards;
}
.home .hero__layer--04 {
  /* Text 1 */
  z-index: 2;
  animation: heroSlideIn 1.2s cubic-bezier(0.25, 1, 0.5, 1) 2.2s forwards;
}
.home .hero__layer--05 {
  /* Text 2 */
  z-index: 3;
  animation: heroSlideIn 1.2s cubic-bezier(0.25, 1, 0.5, 1) 2.6s forwards;
}
.home .hero__layer--06 {
  /* Sub Text */
  z-index: 4;
  animation: heroFadeIn 1.6s cubic-bezier(0.25, 1, 0.5, 1) 3s forwards;
}
.home .hero__layer--07 {
  /* Star Right */
  z-index: 7;
  animation: heroFadeIn 3s cubic-bezier(0.25, 1, 0.5, 1) 0.8s forwards;
}
.home .hero__layer--07 img {
  animation: twinkle 2.5s ease-in-out infinite 3s;
}
.home .hero__layer--08 {
  /* Star Left */
  z-index: 8;
  animation: heroFadeIn 3s cubic-bezier(0.25, 1, 0.5, 1) 0.8s forwards;
}
.home .hero__layer--08 img {
  animation: twinkle 2.5s ease-in-out infinite 3.8s;
}
.home .hero__intro {
  padding: 50px 30px;
  position: relative;
  z-index: 2;
}
@media (min-width: 768px) {
  .home .hero__intro {
    padding: 80px 40px;
  }
}
@media (min-width: 1200px) {
  .home .hero__intro {
    padding: 100px 40px 120px;
  }
}
.home .hero__intro-inner {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}
@media (min-width: 768px) {
  .home .hero__intro-inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
}
@media (min-width: 768px) {
  .home .hero__intro-content {
    flex: 1;
  }
}
.home .hero__intro-title {
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .home .hero__intro-title {
    margin-bottom: 40px;
  }
}
.home .hero__intro-title-main {
  font-family: var(--font-round);
  font-size: 30px;
  letter-spacing: 0;
  font-weight: 600;
  line-height: 1.3;
  color: #fff;
}
@media (min-width: 768px) {
  .home .hero__intro-title-main {
    font-size: 40px;
  }
}
@media (min-width: 1200px) {
  .home .hero__intro-title-main {
    font-size: 50px;
  }
}
.home .hero__intro-desc {
  line-height: 1.625;
  letter-spacing: 0.03em;
  color: #fff;
  margin-bottom: 24px;
  font-weight: 500;
}
.home .hero__intro-desc:last-of-type {
  margin-bottom: 0;
}
.home .hero__intro-img {
  width: 100%;
  max-width: 500px;
}
@media (min-width: 768px) {
  .home .hero__intro-img {
    flex-shrink: 0;
    width: 50%;
    max-width: none;
  }
}
.home .hero__intro-img img {
  width: 100%;
  height: auto;
}
.home {
  /* COMPANY */
}
.home .company {
  background: #feffd2;
  position: relative;
  padding-bottom: 80px;
}
.home .company__header {
  position: relative;
  padding: 50px 30px;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .home .company__header .section-title {
    max-width: 1060px;
    margin-inline: auto;
  }
}
@media (min-width: 1024px) {
  .home .company__header {
    padding: 80px 40px;
    padding-inline: unset;
  }
}
@media (min-width: 1200px) {
  .home .company__header {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}
.home .company__header-inner {
  position: relative;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.home .company__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--lightorange);
  color: #fff;
  padding: 14px 32px;
  border-radius: 20px;
  text-decoration: none;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.03em;
  margin-top: 20px;
  width: 100%;
  max-width: 400px;
  height: 59px;
  border: 2px solid white;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
@media (min-width: 1024px) {
  .home .company__btn {
    margin-top: 50px;
    height: 80px;
    font-size: 30px;
  }
}
.home .company__btn:hover {
  background: #fff;
  color: var(--orange);
  border-color: var(--orange);
  transform: translateY(-2px);
}
.home .company__btn:hover .company__btn-arrow img {
  filter: brightness(0) saturate(100%) invert(46%) sepia(94%) saturate(1533%) hue-rotate(359deg) brightness(99%) contrast(91%);
}
.home .company__btn-arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
}
.home .company__btn-arrow img {
  width: 20px;
  height: auto;
}
.home .company__header-img {
  width: 100%;
}
@media (min-width: 1024px) {
  .home .company__header-img {
    padding-left: 36.3396778917%;
  }
}
@media (min-width: 1200px) {
  .home .company__header-img {
    padding-left: 46.3396778917%;
  }
}
.home .company__header-img img {
  width: 100%;
  height: auto;
}
.home .company__ill {
  position: absolute;
  right: 24px;
  top: 70px;
  width: 122px;
}
.home .company__ill.fade-in-left {
  transition: opacity 1.5s cubic-bezier(0.25, 1, 0.5, 1) 0.5s, transform 1.5s cubic-bezier(0.25, 1, 0.5, 1) 0.5s;
}
@media (min-width: 1024px) {
  .home .company__ill {
    width: 25.8418740849%;
    right: unset;
    bottom: unset;
    top: 30.5%;
    max-width: 353px;
    left: calc(50% - 500px);
  }
}
.home .company__ill img {
  width: 100%;
  height: auto;
}
.home .company {
  /* Stats & Bottom Wrapper */
}
.home .company__data {
  background: rgba(255, 125, 41, 0.2);
  border-radius: 10px;
  padding: 20px 10px;
  margin: 0 20px;
}
@media (min-width: 1024px) {
  .home .company__data {
    padding: 50px 100px;
    border-radius: 30px;
    max-width: 1200px;
    margin: 0 auto;
  }
}
.home .company {
  /* Stats Cards */
}
.home .company__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 11px;
}
@media (min-width: 1024px) {
  .home .company__stats {
    grid-template-columns: 2fr 1fr 1fr;
    gap: 16px;
  }
}
.home .company__stat-card {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  position: relative;
}
.home .company__stat-card--overtime, .home .company__stat-card--retention {
  padding: 20px 0 10px;
}
.home .company__stat-card--overtime .company__stat-title, .home .company__stat-card--retention .company__stat-title {
  letter-spacing: 0;
  padding-left: 13px;
}
@media (min-width: 1024px) {
  .home .company__stat-card--overtime .company__stat-title, .home .company__stat-card--retention .company__stat-title {
    padding-left: unset;
  }
}
.home .company__stat-card--overtime .company__stat-title {
  margin-bottom: 7px;
}
@media (min-width: 1024px) {
  .home .company__stat-card--overtime .company__stat-title {
    margin-bottom: 15px;
    margin-inline: -15px;
  }
}
@media (min-width: 1200px) {
  .home .company__stat-card--overtime .company__stat-title {
    margin-inline: unset;
  }
}
.home .company__stat-card--overtime .company__stat-icon {
  width: 55px;
  height: auto;
  margin-bottom: 7px;
}
@media (min-width: 1024px) {
  .home .company__stat-card--overtime .company__stat-icon {
    margin-bottom: unset;
    width: 82px;
  }
}
.home .company__stat-card--overtime .company__stat-unit {
  font-size: 13px;
  margin-left: 2px;
}
.home .company__stat-card--overtime .company__stat-value {
  margin-bottom: 5px;
}
.home .company__stat-card--overtime .company__stat-note {
  text-align: center;
  padding-left: 14px;
}
@media (min-width: 1024px) {
  .home .company__stat-card--overtime .company__stat-note {
    padding-left: unset;
    text-align: right;
    margin-right: -15px;
  }
}
.home .company__stat-card--overtime .company__stat-note-small {
  margin-top: 5px;
  padding-inline: 10px;
}
@media (min-width: 1024px) {
  .home .company__stat-card--overtime .company__stat-note-small {
    margin-top: unset;
    padding-inline: unset;
    margin-inline: -23px;
    font-size: 12px;
  }
}
.home .company__stat-card--overtime .company__stat-note-small {
  color: var(--text);
}
.home .company__stat-card--retention .company__stat-icon {
  width: 95px;
  height: auto;
  margin: 20px auto;
}
@media (min-width: 1024px) {
  .home .company__stat-card--retention .company__stat-icon {
    width: 130px;
    margin: 10px auto 0;
  }
}
.home .company__stat-card--retention .company__stat-unit {
  margin-left: 4px;
}
.home .company__stat-card--retention .company__stat-value {
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .home .company__stat-card--retention .company__stat-value {
    margin-bottom: unset;
  }
}
.home .company__stat-card--retention .company__stat-note {
  text-align: center;
}
@media (min-width: 1024px) {
  .home .company__stat-card--retention .company__stat-note {
    text-align: right;
    margin-top: 64px;
    margin-right: -15px;
  }
}
@media (min-width: 1024px) {
  .home .company__stat-card {
    padding: 20px 30px 15px;
    border-radius: 20px;
  }
}
.home .company__stat-card--wide {
  grid-column: span 2;
}
@media (min-width: 1024px) {
  .home .company__stat-card--wide {
    grid-column: span 1;
  }
}
.home .company__stat-title {
  display: flex;
  gap: 10px;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 5px;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .home .company__stat-title {
    font-size: 24px;
    line-height: 1.25;
  }
}
.home .company__stat-title-bar {
  width: 5px;
  height: 29px;
  background: var(--green);
  flex-shrink: 0;
}
.home .company__stat-subtitle {
  margin-bottom: 20px;
  text-align: right;
}
@media (min-width: 1024px) {
  .home .company__stat-subtitle {
    text-align: left;
    padding-left: 15px;
    margin-bottom: 80px;
  }
}
.home .company__stat-gender {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .home .company__stat-gender {
    margin-bottom: 55px;
  }
}
.home .company__stat-gender-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  height: 45px;
  overflow: hidden;
  transition: flex 1.5s ease-out;
}
@media (min-width: 768px) {
  .home .company__stat-gender-item {
    height: 69px;
  }
}
.home .company__stat-gender-item--male {
  background: var(--green);
  color: #fff;
  flex: 50;
}
.home .company__stat-gender-item--male.is-visible {
  flex: 41;
}
.home .company__stat-gender-item--female {
  background: #ff914a;
  color: #fff;
  flex: 50;
}
.home .company__stat-gender-item--female.is-visible {
  flex: 158;
}
.home .company__stat-gender-label {
  font-size: 11px;
  font-weight: 500;
}
@media (min-width: 768px) {
  .home .company__stat-gender-label {
    font-size: 17px;
  }
}
.home .company__stat-gender-num {
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}
@media (min-width: 768px) {
  .home .company__stat-gender-num {
    font-size: 21px;
  }
}
.home .company__stat-gender-num .count-up {
  font-size: 21px;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .home .company__stat-gender-num .count-up {
    font-size: 32px;
  }
}
.home .company__stat-icon {
  width: 100px;
  height: 100px;
  margin: 12px auto;
}
@media (min-width: 1024px) {
  .home .company__stat-icon {
    width: 120px;
    height: 120px;
  }
}
.home .company__stat-icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.home .company__stat-card--wide .company__stat-icon {
  position: absolute;
  left: 40px;
  bottom: 3px;
  width: 83px;
  height: auto;
  margin: 0;
}
@media (min-width: 1200px) {
  .home .company__stat-card--wide .company__stat-icon {
    width: 138px;
    height: auto;
    left: unset;
    bottom: unset;
    top: 30px;
    right: 30px;
  }
}
.home .company__stat-value {
  text-align: center;
  font-family: var(--font-en);
  font-size: 41px;
  font-weight: 900;
  color: var(--green);
  line-height: 1;
  margin-bottom: 8px;
}
@media (min-width: 1024px) {
  .home .company__stat-value {
    font-size: 60px;
  }
}
.home .company__stat-value--orange {
  color: #ff914a;
}
.home .company__stat-unit {
  font-size: 18px;
  font-weight: 700;
  color: inherit;
}
@media (min-width: 1024px) {
  .home .company__stat-unit {
    font-size: 20px;
  }
}
.home .company__stat-note {
  text-align: right;
  font-size: 14px;
}
.home .company__stat-note-small {
  text-align: left;
  font-size: 10px;
  color: #999;
  margin-top: 8px;
  line-height: 1.5;
}
.home .company {
  /* Bottom Section */
}
.home .company__bottom {
  position: relative;
  margin-top: 16px;
  display: block;
  text-decoration: none;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .home .company__bottom {
    margin-top: 50px;
  }
}
.home .company__bottom:hover .company__bottom-img img {
  transform: scale(1.05);
}
.home .company__bottom-img {
  width: 100%;
  overflow: hidden;
}
.home .company__bottom-img img {
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}
.home .company__bottom-text {
  font-family: var(--font-round);
  font-size: 20px;
  font-weight: 700;
  color: var(--orange);
  letter-spacing: 0.03em;
  text-align: center;
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform: translate(-50%, 50%);
  background-color: #fff;
  padding-inline: 10px;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .home .company__bottom-text {
    font-size: 28px;
  }
}
.home .company__bottom-arrow {
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 34px;
  height: 34px;
  background: var(--lightorange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid white;
}
@media (min-width: 1024px) {
  .home .company__bottom-arrow {
    width: 50px;
    height: 50px;
    bottom: 20px;
    right: 20px;
  }
}
.home .company__bottom-arrow img {
  width: 16px;
  height: auto;
}
@media (min-width: 1024px) {
  .home .company__bottom-arrow img {
    width: 20px;
  }
}
.home .work {
  background: #f66b1a;
  position: relative;
  padding: 50px 0 80px;
  overflow: hidden;
}
@media (min-width: 768px) {
  .home .work {
    padding: 80px 0 80px;
  }
}
.home .work .section-title {
  color: #fff;
  position: relative;
  z-index: 2;
}
.home .work .section-title__en {
  color: #fff;
}
.home .work .section-title__ja {
  color: var(--yellow);
}
.home .work .section-triangle {
  position: absolute;
  top: 0;
  left: 0;
  border-color: #ea5506 transparent transparent transparent;
  z-index: 2;
}
.home .work__bg-ill {
  position: absolute;
  z-index: 1;
}
.home .work__bg-ill img {
  width: 100%;
  height: auto;
}
.home .work__bg-ill--left {
  left: -120px;
  bottom: -10px;
  width: 276px;
  height: auto;
}
@media (min-width: 768px) {
  .home .work__bg-ill--left {
    width: 400px;
    top: 8px;
    left: -116px;
  }
}
.home .work__bg-ill--right {
  right: -185px;
  top: -270px;
  width: 415px;
}
@media (min-width: 768px) {
  .home .work__bg-ill--right {
    width: 600px;
    top: unset;
    bottom: -236px;
    right: -320px;
  }
}
.home .work__bg-ill--line {
  left: 68px;
  bottom: 13px;
  width: 72px;
  opacity: 1;
}
.home .work__bg-ill--line picture {
  display: block;
  transform-origin: center;
  animation: jitter 0.9s steps(1) infinite;
}
@media (min-width: 768px) {
  .home .work__bg-ill--line {
    left: unset;
    bottom: unset;
    right: 72px;
    top: 64px;
    width: 128px;
  }
}
.home .work__header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  margin-bottom: 47px;
}
@media (min-width: 768px) {
  .home .work__header {
    margin-bottom: 40px;
  }
}
.home .work__header .section-title {
  margin-bottom: 0;
}
.home .work__illust.fade-in-right {
  transition: opacity 1.5s cubic-bezier(0.25, 1, 0.5, 1) 0.5s, transform 1.5s cubic-bezier(0.25, 1, 0.5, 1) 0.5s;
}
.home .work__illust--sp {
  width: 194px;
  margin-left: 20px;
  height: auto;
  position: absolute;
  right: -25px;
  top: -19px;
}
@media (min-width: 768px) {
  .home .work__illust--sp {
    display: none;
  }
}
.home .work__illust--sp img {
  width: 100%;
  height: auto;
}
.home .work__illust--pc {
  display: none;
}
@media (min-width: 768px) {
  .home .work__illust--pc {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    grid-column: 2;
    grid-row: 2;
    padding-inline: 20px;
  }
}
.home .work__illust--pc img {
  width: 100%;
  height: auto;
}
.home .work__inner {
  padding: 0 30px;
}
@media (min-width: 768px) {
  .home .work__inner {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 40px;
  }
}
.home .work__content {
  position: relative;
  z-index: 10;
}
.home .work__images {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}
@media (min-width: 768px) {
  .home .work__images {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
}
.home .work__image {
  overflow: hidden;
  position: relative;
  display: block;
}
.home .work__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.4s ease;
}
.home .work__image:hover img {
  transform: scale(1.05);
}
@media (min-width: 768px) {
  .home .work__image--01 {
    grid-column: 1;
    grid-row: 1/3;
    height: 100%;
  }
}
@media (min-width: 768px) {
  .home .work__image--02 {
    grid-column: 2;
    grid-row: 1;
  }
}
@media (min-width: 768px) {
  .home .work__image--03 {
    grid-column: 1/3;
    grid-row: 3;
  }
}
.home .work__image-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  color: var(--orange);
  font-weight: 700;
  letter-spacing: 0.03em;
  font-size: 20px;
  padding: 2px 12px;
  white-space: nowrap;
  z-index: 2;
  pointer-events: none;
}
@media (min-width: 768px) {
  .home .work__image-text {
    font-size: 24px;
  }
}
.home .work__arrow {
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 34px;
  height: 34px;
  background: var(--lightorange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  z-index: 2;
}
@media (min-width: 768px) {
  .home .work__arrow {
    right: 20px;
    bottom: 20px;
    width: 46px;
    height: 46px;
  }
}
.home .work__arrow img {
  width: 21px;
  height: auto;
  transition: none;
}
.home {
  /* PEOPLE */
}
.home .people {
  position: relative;
  background: #feffd2; /* Light yellow background from design */
  padding-top: 50px;
  padding-bottom: 157px;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .home .people {
    padding-top: 70px;
    padding-bottom: 80px;
  }
}
.home .people__bg-ill {
  position: absolute;
  z-index: 1;
}
.home .people__bg-ill img {
  width: 100%;
  height: auto;
}
.home .people__bg-ill--left {
  top: 25px;
  right: 30px;
  width: 107px;
}
@media (min-width: 1024px) {
  .home .people__bg-ill--left {
    width: 252px;
    right: auto;
    left: calc(50% - 500px);
    top: 350px;
  }
}
.home .people__bg-ill--right {
  bottom: 3px;
  left: 48px;
  width: 106px;
}
@media (min-width: 1024px) {
  .home .people__bg-ill--right {
    width: 248px;
    left: calc(50% - 590px);
    top: 700px;
  }
}
@media (min-width: 1200px) {
  .home .people__bg-ill--right {
    top: 710px;
  }
}
.home .people__inner {
  position: relative;
  z-index: 2;
  padding-inline: 30px;
}
.home .people__header {
  display: flex;
  align-items: flex-end; /* Align bottom of text with image? Or center? Image shows side-by-side. */
  justify-content: space-between; /* Space between title and image */
  position: relative;
  max-width: 1000px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .home .people__header .section-title {
    margin-bottom: 24px !important;
  }
  .home .people__header {
    margin-bottom: unset;
  }
}
.home .people__illust {
  position: static; /* Part of flex flow now */
  width: 130px;
  flex-shrink: 0;
  margin-left: 20px;
}
@media (min-width: 1024px) {
  .home .people__illust {
    width: 160px;
  }
}
.home .people__illust img {
  width: 100%;
  height: auto;
}
.home .people__intro {
  font-size: 15px;
  line-height: 1.625; /* Relaxed leading */
  margin-bottom: 30px;
  text-align: left; /* Left align per design */
  font-weight: 500;
  color: #333;
  max-width: 1000px;
  margin-inline: auto;
  letter-spacing: 0.06em;
}
@media (min-width: 1024px) {
  .home .people__intro {
    font-size: 16px;
    margin-bottom: 138px;
  }
}
.home .people__sub-title {
  text-align: left; /* Left align */
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  justify-content: flex-start; /* Start align */
  gap: 10px;
  color: #333;
  max-width: 600px;
  margin-inline: auto;
  padding: 0 30px;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .home .people__sub-title {
    max-width: 650px;
    font-size: 22px;
    margin-bottom: 40px;
    margin-left: calc(50% - 150px);
    padding: unset;
  }
}
.home .people__sub-title {
  /* Line only on the right */
}
.home .people__sub-title-line {
  display: block;
  width: 100px; /* Longer line */
  height: 1px;
  background: #333; /* Slightly darker gray */
  flex-grow: 1; /* Extend to fill */
  max-width: 200px; /* But cap it */
}
@media (min-width: 1024px) {
  .home .people__sub-title-line {
    width: 435px;
    max-width: unset;
  }
}
.home .people__sub-title {
  /* Remove the before pseudo-element (left line) */
}
.home .people__sub-title::before {
  content: "";
  display: none;
  width: 60px;
  height: 1px;
  background: #ccc;
}
@media (min-width: 1024px) {
  .home .people__sub-title::before {
    width: 150px;
  }
}
.home .people {
  /* --- Custom Slider Styles --- */
}
.home .people-slider {
  margin-bottom: 90px;
  position: relative; /* Context for arrows */
}
.home .people-slider__inner {
  max-width: 800px;
}
@media (min-width: 1024px) {
  .home .people-slider {
    margin-bottom: 50px;
    margin-left: calc(50% - 150px);
    padding: unset;
    max-width: 800px;
  }
}
.home .people-slider .splide__slide {
  flex: 1 0 59.2%;
  /* aspect-ratio: 160 / 193; を削除（テキスト分の高さを確保できないため） */
  transition: 0.7s ease opacity;
}
@media (min-width: 1024px) {
  .home .people-slider .splide__slide {
    flex: 0 1 200px;
    width: 200px !important;
  }
}
.home .people-slider .splide__slide img {
  width: 100%;
  height: auto;
  display: block;
}
.home .people-slider .splide__slide.is-prev {
  opacity: 0;
  visibility: hidden;
}
.home .people-slider .splide__slide.is-next {
  margin-top: -15px;
}
@media (min-width: 1024px) {
  .home .people-slider .splide__slide.is-next {
    margin-top: unset;
    margin-left: -60px;
  }
}
@media (min-width: 768px) {
  .home .people-slider .splide__slide.is-next .people-card {
    margin-left: -24px;
  }
}
@media (min-width: 1024px) {
  .home .people-slider .splide__slide.is-next .people-card {
    margin-left: unset;
  }
}
.home .people-slider .splide__slide {
  /* Active Slide State */
}
.home .people-slider .splide__slide.is-active {
  z-index: 10;
}
@media (min-width: 1024px) {
  .home .people-slider .splide__slide.is-active.is-visible {
    flex: 0 0 300px;
    width: 300px;
  }
}
.home .people-slider .splide__slide.is-active .people-card {
  opacity: 1;
  transform: scale(1);
  z-index: 1;
  margin: unset;
}
.home .people-slider .splide__slide.is-active .people-card__name, .home .people-slider .splide__slide.is-active .people-card__meta {
  opacity: 1;
}
.home .people-slider .splide__slide .people-card {
  margin-left: -14px;
}
@media (min-width: 1024px) {
  .home .people-slider .splide__slide .people-card {
    margin-top: -16px;
  }
}
.home .people-slider {
  /* Card Styles (Consolidated) */
}
.home .people-slider .people-card {
  display: block;
  text-decoration: none;
  background: transparent;
  transform: translateZ(0) scale(0.76); /* Safari対策を追加 */
  transition: 0.7s;
  transform-origin: center bottom;
  width: 59.2vw !important;
  height: auto !important;
  /* aspect-ratio: 160 / 193; を削除（テキスト分の余白を消してしまうため） */
  -o-object-fit: cover;
     object-fit: cover;
  position: relative;
  max-width: 100%; /* Safari対策 */
  backface-visibility: hidden; /* Safari対策 */
}
@media (min-width: 1024px) {
  .home .people-slider .people-card {
    max-width: 300px;
    margin-left: unset !important;
  }
}
.home .people-slider .people-card {
  /* Image Wrapper */
}
.home .people-slider .people-card__img {
  width: 100%;
  height: auto;
  aspect-ratio: 160/193; /* 画像部分のみにアスペクト比を適用 */
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  overflow: hidden; /* Clips the zoomed image */
  /* Remove transition from wrapper if present */
}
.home .people-slider .people-card__img img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease;
  will-change: transform;
  aspect-ratio: 160/193; /* 画像部分のみにアスペクト比を適用 */
  -o-object-fit: cover;
     object-fit: cover;
}
.home .people-slider .people-card {
  /* Zoom Effect */
}
.home .people-slider .people-card:hover .people-card__img img {
  transform: scale(1.05);
}
.home .people-slider .people-card__name {
  margin-top: 10px;
  font-size: 20px;
  opacity: 0; /* Hidden by default */
  transition: opacity 0.3s ease;
  transform: translateZ(0); /* Safari対策 */
  position: relative; /* Safari追加対策 */
  z-index: 1; /* Safari追加対策 */
}
@media (min-width: 1024px) {
  .home .people-slider .people-card__name {
    font-size: 25px;
  }
}
.home .people-slider .people-card__name-small {
  font-size: 16px;
  margin-left: 2px;
}
.home .people-slider .people-card__meta {
  font-size: 14px;
  opacity: 0; /* Hidden by default */
  transition: opacity 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transform: translateZ(0); /* Safari対策 */
  position: relative; /* Safari追加対策 */
  z-index: 1; /* Safari追加対策 */
}
.home .people-slider .people-card__meta::after {
  content: "";
  display: block;
  width: 19px;
  height: 12px;
  background: url(./img/common/icon/right-arrow_orange.svg) no-repeat center center/contain;
  margin-left: 10px;
}
.home .people-slider {
  /* Arrows */
}
.home .people-slider__arrows {
  display: flex;
  justify-content: center;
  z-index: 5;
  position: absolute;
  bottom: -74px;
  left: 50%;
  transform: translateX(-50%);
  gap: 56px;
}
@media (min-width: 1024px) {
  .home .people-slider__arrows {
    right: 85px;
    top: 18px;
    bottom: unset;
    left: unset;
  }
}
.home .people-slider__arrow {
  width: 34px;
  height: 34px;
  background: var(--lightorange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  cursor: pointer;
  transition: background 0.3s;
  position: static !important;
  margin: 0;
  opacity: 1 !important;
}
.home .people-slider__arrow img {
  width: 8px;
}
.home .people-slider__arrow--prev img {
  transform: rotate(180deg);
}
.home .people__btn-wrapper {
  text-align: center;
  margin-bottom: 50px;
}
@media (min-width: 1024px) {
  .home .people__btn-wrapper {
    margin-bottom: 80px;
  }
}
.home .people__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--lightorange); /* Orange button */
  color: #fff;
  text-decoration: none;
  border-radius: 30px;
  font-weight: 700;
  font-size: 15px;
  transition: all 0.3s;
  letter-spacing: 0.09em;
  width: 220px;
  border: 2px solid #fff;
  height: 60px;
}
.home .people__btn:hover {
  background: #fff;
  color: var(--orange);
  border-color: var(--orange);
  transform: translateY(-2px);
}
.home .people__conversation {
  max-width: 1260px;
  padding-inline: 30px;
  margin: 0 auto;
}
.home .people__conversation-link {
  display: block;
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}
.home .people__conversation-link img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease;
}
.home .people__conversation-link:hover img {
  transform: scale(1.03);
}
.home .people__conversation-arrow {
  position: absolute;
  bottom: 5px;
  right: 5px;
  width: 32px;
  height: 32px;
  background: var(--lightorange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  z-index: 2;
}
@media (min-width: 1024px) {
  .home .people__conversation-arrow {
    width: 46px;
    height: 46px;
    bottom: 20px;
    right: 30px;
  }
}
.home .people__conversation-arrow img {
  width: 16px;
}
@media (min-width: 1024px) {
  .home .people__conversation-arrow img {
    width: 22px;
  }
}
.home .people__bottom-ill {
  position: absolute;
  top: 58%;
  left: 0;
  width: 100%;
  height: 0;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .home .people__bottom-ill {
    top: 104px;
    left: 66%;
  }
}
.home .people__bottom-ill-line {
  position: absolute;
}
.home .people__bottom-ill-line--01 {
  width: 66px;
  left: 10px;
  transform-origin: center;
  animation: jitter 0.9s steps(1) infinite;
}
@media (min-width: 1024px) {
  .home .people__bottom-ill-line--01 {
    width: 280px;
    left: unset;
  }
}
.home .people__bottom-ill-line--02 {
  width: 82px;
  right: 42px;
  bottom: 40px;
  transform-origin: center;
  animation: jitter 0.9s steps(1) infinite;
}
@media (min-width: 1024px) {
  .home .people__bottom-ill-line--02 {
    width: 130px;
    bottom: unset;
    top: 60%;
    right: calc(50% - 480px);
  }
}
.home {
  /* NEWS */
}
.home .news {
  background: #f76d1b; /* Strong orange background */
  position: relative;
  padding: 80px 20px 80px;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .home .news {
    padding: 80px 40px;
  }
}
.home .news__bg-ill {
  position: absolute;
  z-index: 1;
}
.home .news__bg-ill img {
  width: 100%;
  height: auto;
}
.home .news__bg-ill--left {
  left: -115px;
  top: -220px;
  width: 276px;
  height: auto;
}
@media (min-width: 1024px) {
  .home .news__bg-ill--left {
    width: 400px;
    top: 60px;
  }
}
.home .news__bg-ill--right {
  right: -190px;
  bottom: 50px;
  width: 415px;
}
@media (min-width: 1024px) {
  .home .news__bg-ill--right {
    width: 600px;
    bottom: -440px;
    right: -200px;
  }
}
.home .news__inner {
  background: #feffd2; /* Cream/Light yellow */
  border-radius: 30px;
  padding: 30px 10px;
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
@media (min-width: 1024px) {
  .home .news__inner {
    padding: 50px 100px;
  }
}
.home .news .section-title {
  margin-bottom: unset;
}
@media (min-width: 1024px) {
  .home .news__header {
    margin-bottom: 20px;
  }
}
.home .news__list {
  list-style: none;
  margin-bottom: 40px;
}
.home .news__item {
  border-top: 1px solid #ff914a; /* Orange border */
  padding: 0;
}
.home .news__item:first-child {
  border-top: none;
}
.home .news__item:last-child {
  border-bottom: 1px solid #ff914a;
}
.home .news__link {
  display: flex;
  flex-direction: column;
  gap: 11px;
  text-decoration: none;
  color: inherit;
  padding: 26px 0 16px;
  transition: opacity 0.3s ease;
}
@media (min-width: 1024px) {
  .home .news__link {
    gap: 10px;
    padding: 20px 0;
  }
}
.home .news__link:hover {
  opacity: 0.7;
}
.home .news__date {
  font-size: 15px;
  flex-shrink: 0;
}
.home .news__text {
  font-size: 15px;
  line-height: 1.875;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .home .news__text {
    -webkit-line-clamp: 2;
  }
}
.home .news__btn-wrapper {
  text-align: center;
  margin-top: 40px;
}
@media (min-width: 1024px) {
  .home .news__btn-wrapper {
    margin-top: 50px;
  }
}
.home .news__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--lightorange);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  border-radius: 50px;
  width: 220px;
  height: 60px;
  font-size: 16px;
  transition: all 0.3s ease;
  border: 2px solid white;
}
@media (min-width: 1024px) {
  .home .news__btn {
    width: 300px;
    height: 70px;
    font-size: 18px;
  }
}
.home .news__btn:hover {
  transform: translateY(-2px);
  background: #fff;
  color: #ff7d29;
  border-color: #ff7d29;
}
.home .news__ill {
  position: absolute;
  left: 24%;
  top: 15px;
  width: 40px;
  z-index: 2;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .home .news__ill {
    width: 70px;
    top: unset;
    bottom: 120px;
    left: 4%;
  }
}
.home .news__ill img {
  width: 100%;
  height: auto;
  transform-origin: center;
  animation: jitter 0.9s steps(1) infinite;
}
.home {
  /* RECRUIT */
}
.home .recruit {
  padding: 50px 30px 70px;
  background: #ffd9c1;
  position: relative;
  border-bottom: 10px solid var(--lightorange);
}
@media (min-width: 1024px) {
  .home .recruit {
    padding: 54px 40px 110px;
  }
}
.home .recruit .section-triangle {
  border-color: #ffba8e transparent transparent transparent !important;
}
.home .recruit__inner {
  max-width: 1000px;
  margin: 0 auto;
}
.home .recruit__header {
  margin-bottom: 50px;
  position: relative;
}
@media (min-width: 1024px) {
  .home .recruit__header {
    margin-bottom: 70px;
  }
}
.home .recruit__header .section-title {
  margin-bottom: 15px;
}
.home .recruit__header .section-title__en {
  color: var(--green);
}
.home .recruit__header .recruit__desc {
  font-size: 20px;
  line-height: 1.5;
  padding-top: 10px;
}
@media (min-width: 1024px) {
  .home .recruit__header .recruit__desc {
    text-align: center;
    font-size: 35px;
  }
}
.home .recruit__header-icon {
  position: absolute;
  top: -4px;
  right: 10px;
  width: 72px;
}
@media (min-width: 1024px) {
  .home .recruit__header-icon {
    width: 130px;
    top: 10px;
  }
}
.home .recruit__header-icon img {
  width: 100%;
  height: auto;
  transform-origin: center;
  animation: jitter 0.9s steps(1) infinite;
}
.home .recruit__grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 768px) {
  .home .recruit__grid {
    flex-direction: row;
    gap: 20px;
    justify-content: center;
  }
}
.home .recruit__card {
  display: block;
  text-decoration: none;
  border-radius: 20px;
  position: relative;
  overflow: visible;
  height: 130px;
  width: 100%;
  border: 2px solid var(--orange); /* Orange border for all? Screenshot has orange border */
  background: #fff;
}
@media (min-width: 1024px) {
  .home .recruit__card {
    height: 250px;
    border-radius: 30px;
    flex: 0 0 auto;
  }
}
.home .recruit__card {
  /* Specific widths for PC */
}
@media (min-width: 1024px) {
  .home .recruit__card--guidelines, .home .recruit__card--entry {
    width: 370px;
  }
}
@media (min-width: 1024px) {
  .home .recruit__card--faq {
    width: 220px;
  }
}
.home .recruit__card {
  /* Common Elements */
}
.home .recruit__card-content {
  position: relative;
  z-index: 2;
  padding: 30px 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center; /* Center vertically */
}
@media (min-width: 1024px) {
  .home .recruit__card-content {
    padding-inline: 15px;
  }
}
.home .recruit__card-title {
  display: block;
  font-family: var(--font-base);
  font-size: 20px;
  font-weight: 700;
  color: #f05f0f; /* Orange Text */
  line-height: 1.4;
}
@media (min-width: 1024px) {
  .home .recruit__card-title {
    font-size: 24px;
  }
}
.home .recruit__card-arrow {
  display: inline-block;
  width: 21px;
  position: absolute; /* Exact positioning */
  bottom: 14px;
  left: 49px;
}
@media (min-width: 1024px) {
  .home .recruit__card-arrow {
    bottom: 40px;
    left: 40px;
  }
}
.home .recruit__card-arrow img {
  width: 100%;
  height: auto;
}
.home .recruit__card-img {
  position: absolute;
  z-index: 1;
  transition: transform 0.3s ease;
  bottom: 0;
  right: 0;
  transform-origin: bottom center; /* Grow from bottom */
}
.home .recruit__card-img img {
  width: 100%;
  height: auto;
}
.home .recruit__card:hover .recruit__card-img {
  transform: scale(1.05); /* Subtle scale */
}
.home .recruit__card {
  /* Diagonal Backgrounds */
}
.home .recruit__card--guidelines, .home .recruit__card--entry {
  background: linear-gradient(-45deg, #fff 0%, #fff 50%, #ffea2e 50.1%, #ffea2e 100%);
  /* Girl Image positioning */
}
.home .recruit__card--guidelines .recruit__card-img, .home .recruit__card--entry .recruit__card-img {
  width: 114px;
  right: 8%;
}
@media (min-width: 1024px) {
  .home .recruit__card--guidelines .recruit__card-img, .home .recruit__card--entry .recruit__card-img {
    width: 200px;
    right: 4%;
  }
}
.home .recruit__card--guidelines:hover, .home .recruit__card--entry:hover {
  background: linear-gradient(-45deg, #ffea2e 0%, #ffea2e 50%, #fff 50.1%, #fff 100%);
}
.home .recruit__card {
  /* FAQ Stylessss */
}
.home .recruit__card--faq {
  transition: all 1s cubic-bezier(0.25, 1, 0.5, 1);
  height: 80px; /* Shorter card */
  display: flex; /* Flex row */
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  background-color: transparent;
}
@media (min-width: 1024px) {
  .home .recruit__card--faq {
    height: 250px;
    justify-content: center;
    align-items: start;
  }
}
.home .recruit__card--faq .recruit__card-left {
  display: flex;
  align-items: center;
  gap: 17px;
}
@media (min-width: 1024px) {
  .home .recruit__card--faq .recruit__card-left {
    flex-direction: column;
    gap: 5px;
  }
}
.home .recruit__card--faq .recruit__card-icon {
  width: 50px;
  position: relative;
  transition: transform 0.3s ease;
}
@media (min-width: 1024px) {
  .home .recruit__card--faq .recruit__card-icon {
    width: 94px;
    margin-top: 15px;
  }
}
.home .recruit__card--faq .recruit__card-icon img {
  width: 100%;
  height: auto;
  transition: opacity 0.3s ease;
}
.home .recruit__card--faq .recruit__card-icon .img-hover {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.home .recruit__card--faq .recruit__card-title {
  margin: 0;
  transition: color 0.3s ease;
  color: var(--text);
}
@media (min-width: 1024px) {
  .home .recruit__card--faq .recruit__card-title {
    text-align: center;
    font-size: 30px;
  }
}
.home .recruit__card--faq .recruit__card-title br {
  display: none;
}
@media (min-width: 768px) {
  .home .recruit__card--faq .recruit__card-title br {
    display: block;
  }
}
.home .recruit__card--faq .recruit__card-arrow {
  width: 21px;
  top: 50%;
  transform: translateY(-50%);
  right: 19px;
  left: unset;
  height: 13px;
}
@media (min-width: 1024px) {
  .home .recruit__card--faq .recruit__card-arrow {
    position: absolute;
    top: unset;
    bottom: 35px;
    left: 50%;
    transform: translateX(-50%);
  }
}
.home .recruit__card--faq {
  /* Hide default img container from other cards */
}
.home .recruit__card--faq .recruit__card-img {
  display: none;
}
.home .recruit__card--faq:hover {
  background: #f05f0f;
}
.home .recruit__card--faq:hover .recruit__card-title {
  color: #fff;
}
.home .recruit__card--faq:hover .recruit__card-icon {
  transform: scale(1.1);
}
.home .recruit__card--faq:hover .recruit__card-icon .img-default {
  opacity: 0;
}
.home .recruit__card--faq:hover .recruit__card-icon .img-hover {
  opacity: 1;
}
.home .recruit__card--faq:hover .recruit__card-arrow img {
  filter: brightness(0) invert(1);
}
.home .recruit {
  /* Banner */
}
.home .recruit__banner {
  margin-top: 50px;
  width: 100%;
  position: relative;
  border-radius: 0;
  overflow: hidden;
  max-width: 400px;
  margin-inline: auto;
}
.home .recruit__banner::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 2px solid var(--orange);
}
@media (min-width: 1024px) {
  .home .recruit__banner {
    margin-top: 80px;
    max-width: 800px;
    margin-inline: auto;
    height: 120px;
  }
}
.home .recruit__banner a {
  display: block;
  text-decoration: none;
  position: relative;
  background: #fff;
}
.home .recruit__banner-bg {
  width: 100%;
  height: auto;
  position: relative;
}
.home .recruit__banner-bg img {
  width: 100%;
  height: 100%; /* Fill fixed height container */
  -o-object-fit: cover;
     object-fit: cover; /* Maintain aspect ratio */
  display: block;
  transition: transform 0.3s ease;
}
.home .recruit__banner-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: background 0.3s ease;
}
.home .recruit__banner-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  flex-direction: column;
  z-index: 1;
}
@media (min-width: 1024px) {
  .home .recruit__banner-content {
    flex-direction: row;
    gap: unset;
  }
}
.home .recruit__banner-icon {
  width: 60px;
}
@media (min-width: 1024px) {
  .home .recruit__banner-icon {
    width: 70px;
    margin-left: 50px;
  }
  .home .recruit__banner-icon img {
    width: 100%;
    height: auto;
  }
}
.home .recruit__banner-text {
  line-height: 1.625;
  text-align: center;
  font-weight: bold;
}
@media (min-width: 1024px) {
  .home .recruit__banner-text {
    font-size: 20px;
    text-align: left;
    line-height: 1.3;
    margin-left: 20px;
  }
  .home .recruit__banner-text br {
    display: none;
  }
  .home .recruit__banner-text br.recruit__banner-text--br {
    display: block;
  }
}
.home .recruit__banner-arrow {
  width: 34px;
  height: 34px;
  background: var(--lightorange);
  position: absolute;
  bottom: 10px;
  right: 10px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
}
@media (min-width: 1024px) {
  .home .recruit__banner-arrow {
    position: static;
    margin-left: auto;
    width: 46px;
    height: 46px;
  }
}
.home .recruit__banner-arrow img {
  width: 21px;
  height: 13px;
}
.home .recruit__banner:hover .recruit__banner-bg img {
  transform: scale(1.05);
}
/* Footer */
.footer {
  max-width: 1366px;
  margin-inline: auto;
  margin: 0 auto;
  padding: 50px 0 10px;
  font-family: var(--font-ja);
  position: relative;
}
@media (min-width: 1024px) {
  .footer {
    padding: 76px 0 20px;
  }
}
.footer-outer {
  background: #feffd2;
}
.footer__inner {
  width: 100%;
  margin: 0 auto;
  padding: 0 30px;
  display: flex;
  flex-direction: column;
  max-width: 400px;
}
@media (min-width: 768px) {
  .footer__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
  }
}
@media (min-width: 1200px) {
  .footer__inner {
    max-width: unset;
    margin-inline: unset;
    padding: unset;
    padding-left: 6.0761346999vw;
    padding-right: 20px;
  }
}
@media (min-width: 1366px) {
  .footer__inner {
    padding-left: 83px;
  }
}
.footer {
  /* Top Section (Left on PC) */
}
.footer__top {
  margin-bottom: 50px;
}
@media (min-width: 768px) {
  .footer__top {
    margin-bottom: 0;
    width: 30%;
    flex: 0 0 363px;
  }
}
.footer__logo-area {
  display: flex;
  align-items: center;
  margin-bottom: 26px;
  -moz-column-gap: 8px;
       column-gap: 8px;
  max-width: 390px;
}
@media (min-width: 1024px) {
  .footer__logo-area {
    max-width: unset;
    -moz-column-gap: 15px;
         column-gap: 15px;
    margin-bottom: 40px;
  }
}
.footer__logo {
  width: 197px;
  flex: 1 1 197px;
}
.footer__logo img {
  width: 100%;
  height: auto;
}
@media (min-width: 1024px) {
  .footer__logo {
    width: 200px;
    flex: 1 0 200px;
  }
}
.footer__recruit-text {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.footer__recruit-group {
  font-size: 9px;
  font-weight: 500;
  line-height: 1.2;
}
@media (min-width: 1024px) {
  .footer__recruit-group {
    font-size: 12px;
  }
}
.footer__recruit-title {
  font-size: 15px;
  line-height: 1;
  margin-top: 2px;
}
@media (min-width: 1024px) {
  .footer__recruit-title {
    font-size: 21px;
  }
}
.footer__info {
  margin-bottom: 30px;
}
.footer__company-name {
  font-size: 15px;
  line-height: 1.733;
  letter-spacing: 0.03em;
  margin-bottom: 20px;
}
.footer__address {
  font-size: 15px;
  line-height: 1.733;
}
@media (min-width: 1024px) {
  .footer__address-br {
    display: none;
  }
}
.footer__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--lightorange);
  color: #fff;
  border: 2px solid white;
  text-decoration: none;
  width: 220px;
  height: 60px;
  border-radius: 30px;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.09em;
  transition: all 0.3s ease;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .footer__btn {
    margin-inline: unset;
  }
}
.footer__btn:hover {
  opacity: 0.8;
  background: #fff;
  color: var(--lightorange);
  border-color: var(--lightorange);
}
.footer {
  /* Nav Area (Right on PC) */
}
@media (min-width: 768px) {
  .footer__nav-area {
    flex: 1;
    padding-left: 40px; /* Space between Left and Right */
    margin-top: 50px;
  }
}
@media (min-width: 1024px) {
  .footer__nav-area {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: min(3.660322vw, 50px);
    row-gap: 40px;
    margin-top: 86px;
    padding-left: min(7.906295754vw, 108px);
    grid-template-columns: max-content max-content max-content 1fr;
  }
}
@media (min-width: 1300px) {
  .footer__nav-area {
    grid-template-columns: max-content max-content max-content 1fr;
  }
}
.footer__nav-grid {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 15px 10px;
  margin-bottom: 50px;
}
@media (min-width: 768px) {
  .footer__nav-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
  }
}
@media (min-width: 1024px) {
  .footer__nav-grid {
    display: contents;
  }
}
.footer__nav-col {
  display: contents;
}
@media (min-width: 1024px) {
  .footer__nav-col {
    display: block;
    /* Remove min-width as grid handles it */
  }
}
@media (min-width: 768px) {
  .footer__nav-col {
    display: block;
  }
}
.footer__nav-title {
  color: var(--lightorange);
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 0;
  padding-right: 20px;
  position: relative;
  text-align: justify;
  white-space: nowrap;
}
.footer__nav-title::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 1px;
  background: #f05f0f;
}
@media (min-width: 1024px) {
  .footer__nav-title {
    margin-bottom: 20px; /* Slight increase for PC */
    padding-right: 0;
    text-align: left;
    font-size: 20px;
  }
  .footer__nav-title::after {
    content: none;
  }
}
@media (min-width: 768px) {
  .footer__nav-title {
    margin-bottom: 20px;
    padding-right: 0;
    text-align: left;
  }
  .footer__nav-title::after {
    content: none;
  }
}
.footer__nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer__nav-list-br {
  display: none;
}
@media (min-width: 1024px) {
  .footer__nav-list-br {
    display: block;
  }
}
.footer__nav-list li {
  margin-bottom: 10px;
  position: relative;
  padding-left: 10px;
  font-size: 15px;
  line-height: 1.5;
}
.footer__nav-list li:last-child {
  margin-bottom: 0;
}
.footer__nav-list li::before {
  content: "・";
  position: absolute;
  left: -5px;
  top: 0;
  color: var(--lightorange);
}
.footer__nav-list li a {
  text-decoration: none;
  color: #333;
  font-size: 15px;
  transition: color 0.3s;
  font-weight: 500;
}
.footer__nav-list li a:hover {
  color: #f05f0f;
}
.footer {
  /* Sub Nav integrated into grid, styling specific classes */
}
.footer__sub-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer__sub-nav-list li {
  margin-bottom: 10px;
  position: relative;
  padding-left: 10px;
}
@media (min-width: 1024px) {
  .footer__sub-nav-list li {
    margin-bottom: 4px;
  }
}
.footer__sub-nav-list li:last-child {
  margin-bottom: 0;
}
.footer__sub-nav-list li::before {
  content: "・";
  position: absolute;
  left: -5px;
  top: 0;
  color: var(--lightorange);
}
.footer__sub-nav-list li a {
  text-decoration: none;
  font-size: 15px; /* Matched to regular list */
  transition: color 0.3s;
}
.footer__sub-nav-list li a:hover {
  color: var(--lightorange);
}
.footer__banners {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
@media (min-width: 768px) {
  .footer__banners {
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
  }
}
@media (min-width: 1024px) {
  .footer__banners {
    width: auto;
    gap: 5px;
    margin-top: 20px;
  }
}
@media (min-width: 1306px) {
  .footer__banners {
    justify-content: flex-end;
    padding-right: 83px;
    margin-top: 8px;
  }
}
.footer__banner-link {
  display: block;
  width: 260px;
  transition: opacity 0.3s;
}
.footer__banner-link:hover {
  opacity: 0.8;
}
.footer__banner-link img {
  width: 100%;
  height: auto;
  border: 1px solid #ccc;
}
@media (min-width: 1024px) {
  .footer__banner-link {
    width: 260px; /* Force fixed width on PC */
  }
}
.footer {
  /* PC Sub Nav Adjustment */
}
@media (min-width: 1024px) {
  .footer__nav-col--sub {
    width: 100%;
    margin-top: 0;
    grid-column: 1/-1; /* Full width row at LG */
  }
  .footer__nav-col--sub .footer__nav-title {
    display: none;
  }
  .footer__nav-col--sub .footer__sub-nav-list {
    display: flex; /* Horizontal at LG */
    flex-wrap: wrap;
    gap: 20px 30px;
  }
  .footer__nav-col--sub .footer__sub-nav-list li {
    margin-bottom: 0;
    margin-right: 0;
  }
  .footer__nav-col--sub .footer__sub-nav-list li:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 1300px) {
  .footer__nav-col--sub {
    grid-column: auto; /* Return to flow at XL */
  }
  .footer__nav-col--sub .footer__sub-nav-list {
    display: block; /* Vertical at XL */
  }
  .footer__nav-col--sub .footer__sub-nav-list li {
    margin-bottom: 6px;
  }
}
.footer {
  /* Copyright */
}
.footer__copyright {
  margin-top: 50px;
  text-align: center;
  opacity: 0.4;
}
@media (min-width: 1300px) {
  .footer__copyright {
    margin-top: 40px;
    text-align: right;
    padding-right: 83px;
  }
}
.footer__copyright small {
  font-size: 10px;
  display: block;
}
@media (min-width: 1300px) {
  .footer__copyright small {
    font-size: 14px;
  }
}
.footer {
  /* Page Top */
}
.footer__pagetop {
  position: absolute;
  top: -70px;
  right: 3.6603221084%;
  z-index: 100;
}
@media (min-width: 1024px) {
  .footer__pagetop {
    top: -100px;
  }
}
.footer__pagetop a {
  display: block;
  width: 60px;
  height: 60px;
  transition: opacity 0.3s;
}
.footer__pagetop a img {
  width: 100%;
  height: auto;
}
.footer__pagetop a:hover {
  opacity: 0.8;
}

/* Floating Entry Button */
.floating-entry {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 999;
  width: 200px;
  height: 102px;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  display: block;
}
@media (min-width: 768px) {
  .floating-entry {
    bottom: 0;
    right: 0;
    width: 230px;
    height: 118px;
  }
}
.floating-entry {
  /* Images */
}
.floating-entry__default, .floating-entry__hover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: opacity 0.3s ease;
}
.floating-entry__default img, .floating-entry__hover img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
}
.floating-entry__default {
  opacity: 1;
}
.floating-entry__hover {
  opacity: 0;
}
.floating-entry {
  /* Hover Effect */
}
.floating-entry:hover .floating-entry__default {
  opacity: 0;
}
.floating-entry:hover .floating-entry__hover {
  opacity: 1;
}
.floating-entry {
  /* Hidden State (triggered by JS) */
}
.floating-entry.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* -----------------------------------------
   FAQ Page
   ----------------------------------------- */
.faq {
  padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .faq {
    padding-bottom: 120px;
  }
}
.faq__inner {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 20px;
  margin-top: 50px;
}
@media (min-width: 768px) {
  .faq__inner {
    margin-top: 80px;
  }
}
.faq {
  /* FAQ List */
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.faq {
  /* FAQ Item */
}
.faq-item {
  width: 100%;
}
.faq {
  /* FAQ Question (Header) */
}
.faq-question {
  width: 100%;
  display: flex;
  align-items: center; /* SP: align top */
  justify-content: space-between;
  padding: 20px 15px 20px 20px;
  background: #feffd2;
  border: 2px solid var(--green);
  border-radius: 20px;
  cursor: pointer;
  transition: opacity 0.3s ease, background-color 0.3s ease;
  text-align: left;
  position: relative;
  overflow: hidden;
  gap: 10px;
}
@media (min-width: 1024px) {
  .faq-question {
    align-items: center; /* PC: center */
    padding: 15px 30px;
    gap: unset;
    border-radius: 30px;
  }
}
.faq-question__text {
  flex: 1;
  font-weight: 700;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .faq-question__text {
    font-size: var(--f4);
    margin: 0 30px;
  }
}
.faq {
  /* FAQ Answer (Body) */
}
.faq-answer {
  height: 0;
  overflow: hidden;
  transition: height 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  opacity: 1;
  transform: none;
}
.faq-answer__inner {
  padding: 20px;
  display: flex;
  align-items: flex-start;
  background-color: #fff;
  border-radius: 20px;
  margin-top: 10px;
}
@media (min-width: 1024px) {
  .faq-answer__inner {
    padding: 30px;
    margin-top: 5px;
  }
}
.faq-answer__text {
  flex: 1;
  padding-left: 11px;
  line-height: 1.8;
}
@media (min-width: 1024px) {
  .faq-answer__text {
    padding-inline: 30px;
  }
}
.faq {
  /* Icons (Q / A) */
}
.faq-icon {
  width: 24px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
@media (min-width: 1024px) {
  .faq-icon {
    width: 35px;
  }
}
.faq-icon--a {
  margin-top: 2px;
}
.faq-icon img {
  width: 100%;
  height: auto;
  display: block;
}
.faq {
  /* Arrow */
}
.faq-arrow {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s ease;
}
@media (min-width: 1024px) {
  .faq-arrow {
    width: 40px;
    height: 40px;
  }
}
.faq-arrow img {
  width: 100%;
  height: auto;
  display: block;
}
.faq {
  /* Arrow Default (Closed = Down) */
}
.faq-arrow {
  transform: rotate(180deg);
}
.faq {
  /* Open State (Open = Up) */
}
.faq-item.is-open .faq-arrow {
  transform: rotate(0deg);
}
.faq {
  /* Footer Button Area */
}
.faq__footer {
  margin-top: 60px;
  text-align: center;
  display: flex;
  justify-content: center;
}
@media (min-width: 1024px) {
  .faq__footer {
    margin-top: 80px;
  }
}

@media (min-width: 1024px) {
  .page-hero.is-privacy .page-hero__title-main {
    font-size: 24px;
  }
}
@media (min-width: 1200px) {
  .page-hero.is-privacy .page-hero__title-main {
    font-size: 32px;
  }
}
@media (min-width: 1250px) {
  .page-hero.is-privacy .page-hero__title-main {
    font-size: 50px;
  }
}

.p-privacy {
  padding-top: 60px;
  padding-bottom: 80px;
  padding-inline: 30px;
}
@media (min-width: 1024px) {
  .p-privacy {
    padding-top: 80px;
    padding-bottom: 120px;
  }
}
.p-privacy__contents {
  max-width: 1000px;
  margin-inline: auto;
}
.p-privacy__section:not(:last-child) {
  margin-bottom: 30px;
}
@media (min-width: 1024px) {
  .p-privacy__section:not(:last-child) {
    margin-bottom: 50px;
  }
}
.p-privacy__head {
  font-size: 20px;
  font-weight: 700;
  color: var(--black);
  padding-left: 15px;
  border-left: 5px solid var(--green);
  line-height: 1.4;
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .p-privacy__head {
    font-size: 24px;
  }
}
.p-privacy__text {
  line-height: 1.8;
}
@media (min-width: 1024px) {
  .p-privacy__text {
    font-size: 16px;
  }
}
.p-privacy__text + .p-privacy__text {
  margin-top: 1.5em;
}
.p-privacy__list {
  margin-top: 20px;
  padding-left: 1.5em;
}
.p-privacy__list li {
  line-height: 1.8;
  position: relative;
  list-style: disc;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .p-privacy__list li {
    font-size: 16px;
  }
}
.p-privacy__list li:not(:last-child) {
  margin-bottom: 0.5em;
}
.p-privacy__info {
  margin-top: 20px;
}
.p-contact {
  padding-bottom: 80px;
  padding-inline: 30px;
}
@media (min-width: 1024px) {
  .p-contact {
    padding-bottom: 120px;
  }
}
.p-contact__inner {
  max-width: 800px;
  margin-inline: auto;
}
.p-contact__form-wrap {
  margin-top: 30px;
}
@media (min-width: 1024px) {
  .p-contact__form-wrap {
    margin-top: 80px;
  }
}

.p-contact-form__item {
  display: flex;
  flex-direction: column;
  padding: 20px 0;
  border-bottom: 1px solid #c9c8c8;
}
.p-contact-form__item:first-child {
  border-top: unset;
}
@media (min-width: 1024px) {
  .p-contact-form__item:first-child {
    padding-top: unset;
  }
}
@media (min-width: 1024px) {
  .p-contact-form__item {
    flex-direction: row;
    align-items: center;
    padding: 20px 0;
  }
}
@media (min-width: 1024px) {
  .p-contact-form__item--textarea {
    align-items: flex-start;
  }
}
.p-contact-form__head {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 10px;
}
@media (min-width: 1024px) {
  .p-contact-form__head {
    width: 270px;
    margin-bottom: 0;
    flex-shrink: 0;
  }
}
.p-contact-form__label {
  font-size: 16px;
}
.p-contact-form__label-note {
  letter-spacing: 0;
  font-size: 14px;
}
.p-contact-form__field {
  width: 100%;
}
@media (min-width: 1024px) {
  .p-contact-form__field:not(.p-contact-form__field--radio):not(.p-contact-form__field--age) {
    width: 450px;
    margin-right: 80px;
  }
}
.p-contact-form__field input[type=text],
.p-contact-form__field input[type=tel],
.p-contact-form__field input[type=email],
.p-contact-form__field input[type=number],
.p-contact-form__field textarea {
  width: 100%;
  padding: 15px 14px;
  border: 1px solid #333;
  border-radius: 6px;
  font-size: 16px;
  background: #fff;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: border-color 0.3s;
}
.p-contact-form__field input[type=text]:focus,
.p-contact-form__field input[type=tel]:focus,
.p-contact-form__field input[type=email]:focus,
.p-contact-form__field input[type=number]:focus,
.p-contact-form__field textarea:focus {
  outline: none;
  border-color: var(--orange);
}
.p-contact-form__field input[type=text]::-moz-placeholder, .p-contact-form__field input[type=tel]::-moz-placeholder, .p-contact-form__field input[type=email]::-moz-placeholder, .p-contact-form__field input[type=number]::-moz-placeholder, .p-contact-form__field textarea::-moz-placeholder {
  color: #ccc;
}
.p-contact-form__field input[type=text]::placeholder,
.p-contact-form__field input[type=tel]::placeholder,
.p-contact-form__field input[type=email]::placeholder,
.p-contact-form__field input[type=number]::placeholder,
.p-contact-form__field textarea::placeholder {
  color: #ccc;
}
.p-contact-form__field textarea {
  min-height: 160px;
  line-height: 1.5;
}
.p-contact-form__field--radio {
  display: flex;
  gap: 45px;
}
.p-contact-form__field--radio label {
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}
.p-contact-form__field--radio label input[type=radio],
.p-contact-form__field--radio label input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1px solid #333;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
}
.p-contact-form__field--radio label input[type=radio]:checked,
.p-contact-form__field--radio label input[type=checkbox]:checked {
  background: var(--lightorange);
  border-color: var(--lightorange);
}
.p-contact-form__field--radio label input[type=radio]:checked::after,
.p-contact-form__field--radio label input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  background: #fff;
  border-radius: 50%;
}
.p-contact-form__field--age {
  display: flex;
  align-items: center;
  gap: 10px;
}
.p-contact-form__field--age input {
  width: 150px !important;
}
.p-contact-form__consent {
  margin-top: 50px;
  text-align: center;
}
@media (min-width: 1024px) {
  .p-contact-form__consent {
    margin-top: 80px;
  }
}
.p-contact-form__consent-text {
  line-height: 1.8;
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  .p-contact-form__consent-text {
    margin-bottom: 10px;
  }
}
.p-contact-form__consent-text span {
  display: inline-block;
}
.p-contact-form__consent-text a {
  color: var(--lightorange);
  text-decoration: underline;
  font-weight: 700;
  text-underline-offset: 4px;
}
.p-contact-form__consent-chk {
  display: flex;
  justify-content: center;
}
.p-contact-form__consent-chk label {
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  font-size: 16px;
}
.p-contact-form__consent-chk label input[type=checkbox] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 1px solid #333;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
}
.p-contact-form__consent-chk label input[type=checkbox]:checked {
  background: var(--lightorange);
  border-color: var(--lightorange);
}
.p-contact-form__consent-chk label input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 5px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
}
.p-contact-form__note {
  margin-top: 50px;
  line-height: 1.8;
  text-align: center;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .p-contact-form__note {
    margin-top: 30px;
  }
}
.p-contact-form__submit {
  margin-top: 50px;
  text-align: center;
}
@media (min-width: 1024px) {
  .p-contact-form__submit {
    margin-top: 50px;
  }
}
.p-contact-form__submit .c-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  height: 60px;
  background-color: var(--lightorange);
  color: #fff;
  font-weight: 700;
  border: 2px solid #fff;
  border-radius: 30px;
  cursor: pointer;
  transition: all 0.3s;
}
.p-contact-form__submit .c-btn-submit:hover {
  background-color: #fff;
  color: var(--lightorange);
  border-color: var(--lightorange);
}

/* Confirmation Page Styles */
.contact-confirm {
  padding-top: 50px;
  padding-bottom: 80px;
  padding-inline: 30px;
}
@media (min-width: 1024px) {
  .contact-confirm {
    padding-bottom: 120px;
  }
}
.contact-confirm__panel {
  max-width: 800px;
  margin-inline: auto;
}
.contact-confirm__lead {
  text-align: center;
  font-size: 16px;
  margin-bottom: 30px;
}
.contact-confirm__lead span {
  display: inline-block;
}
@media (min-width: 1024px) {
  .contact-confirm__lead {
    margin-bottom: 80px;
  }
}
.contact-confirm__card {
  padding: 0;
  max-width: 500px;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .contact-confirm__card {
    padding: 0;
    max-width: unset;
  }
}
.contact-confirm__list {
  display: flex;
  flex-direction: column;
}
.contact-confirm__row {
  display: flex;
  flex-direction: column;
  padding: 15px 0;
  border-bottom: 1px solid #c9c8c8;
}
@media (min-width: 1024px) {
  .contact-confirm__row {
    flex-direction: row;
    padding: 20px 50px;
  }
}
@media (min-width: 1024px) {
  .contact-confirm__row:first-child {
    border-top: none;
    padding-top: 0;
  }
}
.contact-confirm__dt span {
  font-size: 14px;
}
@media (min-width: 1024px) {
  .contact-confirm__dt {
    width: 300px;
    font-size: 16px;
    margin-bottom: 0;
    flex-shrink: 0;
  }
}
.contact-confirm__dd {
  font-size: 16px;
  line-height: 1.6;
  word-break: break-all;
}
.contact-confirm__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  margin-top: 50px;
}
@media (min-width: 1024px) {
  .contact-confirm__actions {
    flex-direction: row;
    justify-content: center;
    gap: 50px;
    margin-top: 80px;
  }
}
.contact-confirm__btn-back, .contact-confirm__btn-submit {
  width: 220px;
  max-width: 100%;
  height: 60px;
  border-radius: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s;
  border: 2px solid transparent;
  color: #fff;
}
.contact-confirm__btn-back {
  background: #c9c8c8;
  border-color: #fff;
}
.contact-confirm__btn-back:hover {
  background: #fff;
  color: #c9c8c8;
  border-color: #c9c8c8;
}
.contact-confirm__btn-submit {
  background: var(--lightorange);
  border-color: #fff;
}
.contact-confirm__btn-submit:hover {
  background: #fff;
  color: var(--lightorange);
  border-color: var(--lightorange);
}

/* Thanks Page Styles */
.contact-thanks {
  padding-top: 50px;
  padding-bottom: 80px;
  padding-inline: 30px;
}
@media (min-width: 1024px) {
  .contact-thanks {
    padding-top: 80px;
    padding-bottom: 120px;
  }
}
.contact-thanks__body {
  text-align: center;
  max-width: 800px;
  margin-inline: auto;
}
.contact-thanks__icon {
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .contact-thanks__icon {
    margin-bottom: 10px;
  }
}
.contact-thanks__icon img {
  width: 38px;
  height: auto;
  margin-inline: auto;
}
.contact-thanks__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--lightorange);
  margin-bottom: 50px;
}
@media (min-width: 1024px) {
  .contact-thanks__title {
    font-size: 30px;
  }
}
.contact-thanks__content {
  margin-bottom: 50px;
}
.contact-thanks__text {
  font-size: 15px;
  line-height: 2;
}
.contact-thanks__text span {
  display: inline-block;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .contact-thanks__text {
    font-size: 16px;
  }
}
.contact-thanks__btn-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  max-width: 100%;
  height: 60px;
  background: var(--lightorange);
  color: #fff;
  border: 2px solid #fff;
  border-radius: 30px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.contact-thanks__btn-top:hover {
  background: #fff;
  color: var(--lightorange);
  border-color: var(--lightorange);
}

/* Common UI Components */
.c-label-required,
.c-label-optional {
  display: inline-block;
  padding: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
  min-width: 48px;
  text-align: center;
}

.c-label-required {
  background-color: var(--lightorange);
}

.c-label-optional {
  background-color: var(--green);
}

@media (min-width: 1024px) {
  .page-hero.is-contact .page-hero__title-main {
    font-size: 24px;
  }
}
@media (min-width: 1200px) {
  .page-hero.is-contact .page-hero__title-main {
    font-size: 40px;
  }
}
@media (min-width: 1300px) {
  .page-hero.is-contact .page-hero__title-main {
    font-size: 50px;
  }
}

.p-sitemap {
  padding-top: 50px;
  padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .p-sitemap {
    padding-top: 70px;
    padding-bottom: 120px;
  }
}
.p-sitemap__grid {
  max-width: 800px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: max-content;
  justify-content: center;
  gap: 50px;
}
@media (min-width: 1024px) {
  .p-sitemap__grid {
    grid-template-columns: repeat(3, 1fr);
    justify-content: initial;
    gap: 100px;
  }
}
.p-sitemap__cat-en {
  font-family: var(--font-en);
  font-size: 35px;
  font-weight: 900;
  color: var(--lightorange);
  line-height: 1;
  margin-bottom: 5px;
}
@media (min-width: 1024px) {
  .p-sitemap__cat-en {
    font-size: 40px;
  }
}
.p-sitemap__cat-ja {
  font-weight: 900;
  margin-bottom: 17px;
}
.p-sitemap__group--sub {
  margin-top: -20px;
}
@media (min-width: 1024px) {
  .p-sitemap__group--sub {
    margin-top: unset;
    padding-top: 87px;
  }
}
.p-sitemap__links li {
  position: relative;
  padding-left: 10px;
  line-height: 1.6;
  font-size: 15px;
}
.p-sitemap__links li:not(:last-child) {
  margin-bottom: 11px;
}
.p-sitemap__links li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 4px;
  height: 4px;
  background-color: var(--orange);
  border-radius: 50%;
}
.p-sitemap__links li a {
  color: var(--black);
  transition: color 0.1s;
  font-size: 15px;
}
.p-sitemap__links li a:hover {
  color: var(--orange);
}

.p-news {
  margin-bottom: 80px;
}
@media (min-width: 768px) {
  .p-news {
    padding: 134px 0 120px;
    margin-bottom: unset;
  }
}
.p-news__in {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 30px;
}
.p-news-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-news-list__item {
  border-bottom: 1px solid #c9c8c8;
}
.p-news-list__item:first-child {
  border-top: none;
}
.p-news-list__link {
  display: flex;
  flex-direction: column; /* Stack vertically on SP */
  align-items: flex-end; /* Align arrow to right */
  gap: 20px;
  padding: 50px 0;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s;
}
@media (min-width: 768px) {
  .p-news-list__link {
    flex-direction: row; /* Horizontal on PC */
    align-items: flex-end; /* Center vertically on PC */
    padding: 50px 0 50px;
  }
  .p-news-list__item:first-child .p-news-list__link {
    padding-top: 0;
  }
}
.p-news-list__link:hover .p-news-list__title {
  color: var(--orange);
}
.p-news-list__link:hover .p-news-list__arrow {
  transform: translateX(10px);
}
.p-news-list__content {
  flex: 1;
}
.p-news-list__date {
  display: block;
  font-size: 15px;
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .p-news-list__date {
    margin-bottom: 21px;
  }
}
.p-news-list__body {
  /* Container for title + text */
}
.p-news-list__title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 15px;
  padding-left: 14px;
  border-left: 5px solid var(--green); /* Green bar */
  transition: color 0.3s;
  /* Multi-line clamp */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (min-width: 768px) {
  .p-news-list__title {
    font-size: 24px;
    margin-bottom: 20px;
    padding-left: 20px;
    border-left-width: 6px;
    -webkit-line-clamp: 2;
  }
}
.p-news-list__text {
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
  color: #333;
  /* Multi-line clamp */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (min-width: 768px) {
  .p-news-list__text {
    font-size: 16px;
  }
}
.p-news-list__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  background-color: var(--lightorange); /* Changed to light-orange */
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid white;
  margin-top: auto; /* Push to bottom if align-items: flex-start */
  margin-bottom: auto; /* Or center if margin-top: auto not used... wait. */
  /* If we want it bottom-right on SP: */
  /* But on PC centered? */
  transition: transform 0.3s, background-color 0.3s;
}
@media (min-width: 768px) {
  .p-news-list__arrow {
    width: 46px;
    height: 46px;
    margin-top: 0;
    margin-bottom: 0;
  }
}
.p-news-list__arrow img {
  width: 21px;
  height: auto;
  display: block;
}
.p-news .p-media__pagination {
  margin-top: 40px;
  display: flex;
  justify-content: center;
}
@media (min-width: 768px) {
  .p-news .p-media__pagination {
    margin-top: 60px;
  }
}
.p-news .p-media__pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap; /* Prevent overflow on small screens */
}
@media (min-width: 768px) {
  .p-news .p-media__pagination .page-numbers {
    gap: 15px;
  }
}
.p-news .p-media__pagination .page-numbers li {
  margin: 0;
}
.p-news .p-media__pagination .page-numbers {
  /* Number Links & Current Span */
}
.p-news .p-media__pagination .page-numbers .page-numbers:not(.dots):not(.next):not(.prev) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--lightorange);
  border-radius: 50%;
  color: var(--lightorange);
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  font-family: var(--font-en, sans-serif);
  transition: all 0.3s;
}
@media (min-width: 768px) {
  .p-news .p-media__pagination .page-numbers .page-numbers:not(.dots):not(.next):not(.prev) {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }
}
.p-news .p-media__pagination .page-numbers .page-numbers:not(.dots):not(.next):not(.prev):hover {
  background-color: var(--lightorange);
  color: #fff;
}
.p-news .p-media__pagination .page-numbers {
  /* Current Active Page */
}
.p-news .p-media__pagination .page-numbers .current {
  background-color: var(--lightorange) !important;
  color: #fff !important;
}
.p-news .p-media__pagination .page-numbers {
  /* Dots */
}
.p-news .p-media__pagination .page-numbers .dots {
  color: var(--orange);
  font-weight: 700;
}
.p-news .p-media__pagination .page-numbers {
  /* Next/Prev Arrows */
}
.p-news .p-media__pagination .page-numbers .next,
.p-news .p-media__pagination .page-numbers .prev {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  border: none;
  background-color: transparent;
  margin: 0 10px;
}
.p-news .p-media__pagination .page-numbers .next img,
.p-news .p-media__pagination .page-numbers .prev img {
  width: 25px;
  height: auto;
  display: block;
}
.p-news .p-media__pagination .page-numbers .next:hover,
.p-news .p-media__pagination .page-numbers .prev:hover {
  opacity: 0.7;
  background-color: transparent;
  color: inherit;
}
.p-news-detail {
  margin: 50px 0 80px;
}
@media (min-width: 768px) {
  .p-news-detail {
    margin: 134px 0 120px;
  }
}
.p-news-detail__card {
  padding: 0 30px 0;
  max-width: 1060px;
  margin: 0 auto;
}
.p-news-detail__divider {
  height: 1px;
  width: 100%;
  background: rgba(0, 98, 64, 0.38);
  margin: 14px 0 16px;
}
@media (min-width: 768px) {
  .p-news-detail__divider {
    margin: 16px 0 18px;
  }
}
.p-news-detail__thumb {
  margin-top: 18px;
  background: #d9d9d9;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}
@media (min-width: 768px) {
  .p-news-detail__thumb {
    margin-top: 22px;
    aspect-ratio: 700/360;
  }
}
.p-news-detail__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.p-news-detail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: baseline;
  margin: 0 0 14px;
}
@media (min-width: 768px) {
  .p-news-detail__meta {
    margin-bottom: 18px;
  }
}
.p-news-detail__date {
  line-height: 1.6;
  font-size: 15px;
  margin-bottom: 20px;
}
.p-news-detail__title,
.p-news-detail h1 {
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0;
  margin: 0 0 30px;
  padding-left: 10px;
  border-left: 6px solid var(--green);
  font-weight: 700;
}
@media (min-width: 768px) {
  .p-news-detail__title,
  .p-news-detail h1 {
    font-size: 24px;
    margin-bottom: 20px;
  }
}
.p-news-detail__content {
  line-height: 2.188;
  letter-spacing: 0;
}
.p-news-detail__content h2,
.p-news-detail__content h3,
.p-news-detail__content h4,
.p-news-detail__content h5 {
  letter-spacing: 0.05em;
  margin: 0;
  font-feature-settings: "palt";
}
.p-news-detail__content h2 {
  margin-top: 40px;
  margin-bottom: 24px;
  padding-left: 14px;
  background: transparent;
  border-left: 5px solid var(--orange);
  font-size: 18px;
  line-height: 1.6;
  font-weight: 700;
}
@media (min-width: 768px) {
  .p-news-detail__content h2 {
    margin-top: 50px;
    margin-bottom: 30px;
    padding: 12px 0 12px 18px;
    font-size: 24px;
    border-left-width: 8px;
  }
}
.p-news-detail__content h3 {
  margin-top: 32px;
  margin-bottom: 20px;
  padding-bottom: 6px;
  padding-left: 0;
  border-left: none;
  border-bottom: 2px solid #a7b500;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 700;
}
@media (min-width: 768px) {
  .p-news-detail__content h3 {
    margin-top: 40px;
    margin-bottom: 24px;
    font-size: 20px;
  }
}
.p-news-detail__content h4 {
  margin-top: 28px;
  margin-bottom: 16px;
  padding-bottom: 0;
  border-bottom: none;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 700;
  color: var(--orange);
}
@media (min-width: 768px) {
  .p-news-detail__content h4 {
    margin-top: 36px;
    margin-bottom: 20px;
    font-size: 18px;
  }
}
.p-news-detail__content h5 {
  position: relative;
  margin-top: 24px;
  margin-bottom: 12px;
  padding-left: 1.2em;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 700;
}
.p-news-detail__content h5::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orange);
  transform: translateY(-50%);
}
@media (min-width: 768px) {
  .p-news-detail__content h5 {
    margin-top: 30px;
    font-size: 16px;
  }
}
.p-news-detail__content p {
  margin: 0 0 24px;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .p-news-detail__content p {
    margin-bottom: 30px;
  }
}
.p-news-detail__content a {
  color: #004bb1;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: opacity 0.3s;
}
.p-news-detail__content a:hover {
  opacity: 0.7;
  text-decoration-thickness: 2px;
}
.p-news-detail__content ul,
.p-news-detail__content ol {
  margin: 0 0 24px;
  padding-left: 0;
}
@media (min-width: 768px) {
  .p-news-detail__content ul,
  .p-news-detail__content ol {
    margin-bottom: 30px;
  }
}
.p-news-detail__content li {
  position: relative;
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 8px;
  padding-left: 1.5em;
}
@media (min-width: 768px) {
  .p-news-detail__content li {
    font-size: 16px;
  }
}
.p-news-detail__content li:last-child {
  margin-bottom: 0;
}
.p-news-detail__content ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orange);
  transform: translateY(-50%);
}
.p-news-detail__content ol {
  counter-reset: my-counter;
}
.p-news-detail__content ol > li {
  padding-left: 1.8em;
}
.p-news-detail__content ol > li::before {
  content: counter(my-counter) ".";
  counter-increment: my-counter;
  position: absolute;
  left: 0;
  top: 0;
  color: var(--orange);
  font-weight: 700;
}
.p-news-detail__content blockquote {
  margin: 30px 0;
  padding: 20px;
  background: #f9f9f9;
  border-left: 4px solid #ccc;
  font-size: 14px;
  font-style: italic;
}
@media (min-width: 768px) {
  .p-news-detail__content blockquote {
    margin: 40px 0;
    padding: 30px;
    font-size: 15px;
  }
}
.p-news-detail__content blockquote p {
  margin-bottom: 10px;
}
.p-news-detail__content blockquote p:last-child {
  margin-bottom: 0;
}
.p-news-detail__content blockquote cite {
  display: block;
  text-align: right;
  font-size: 12px;
  color: #777;
  font-style: normal;
  margin-top: 10px;
}
.p-news-detail__content .wp-block-table {
  margin: 30px 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 768px) {
  .p-news-detail__content .wp-block-table {
    margin: 40px 0;
  }
}
.p-news-detail__content .wp-block-table table {
  width: 100%;
  min-width: 500px;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-news-detail__content .wp-block-table table {
    font-size: 16px;
    min-width: auto;
  }
}
.p-news-detail__content .wp-block-table th,
.p-news-detail__content .wp-block-table td {
  border: 1px solid #ddd;
  padding: 12px 15px;
  vertical-align: middle;
}
.p-news-detail__content .wp-block-table th {
  background: #f2f2f2;
  font-weight: 700;
  white-space: nowrap;
  width: 30%;
}
.p-news-detail__content .wp-block-table td {
  background: #fff;
}
.p-news-detail__content hr {
  border: 0;
  height: 1px;
  background: #ddd;
  margin: 40px 0;
}
@media (min-width: 768px) {
  .p-news-detail__content hr {
    margin: 50px 0;
  }
}
.p-news-detail__footer {
  text-align: center;
}
.p-news-detail__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--lightorange);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  border-radius: 50px;
  width: 220px;
  height: 60px;
  font-size: 16px;
  transition: all 0.3s ease;
  border: 2px solid white;
  cursor: pointer;
}
@media (min-width: 768px) {
  .p-news-detail__back {
    width: 300px;
    height: 70px;
    font-size: 18px;
  }
}
.p-news-detail__back:hover {
  transform: translateY(-2px);
  background: #fff;
  color: #ff7d29;
  border-color: #ff7d29;
}
.p-news-detail table {
  width: 100%;
  border-collapse: collapse;
  margin: 22px 0;
  font-size: 14px;
  line-height: 1.8;
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 768px) {
  .p-news-detail table {
    display: table;
    overflow-x: visible;
    font-size: 15px;
  }
}
.p-news-detail th,
.p-news-detail td {
  border: 1px solid rgba(0, 98, 64, 0.18);
  padding: 10px 12px;
  vertical-align: top;
}
.p-news-detail th {
  background: rgba(0, 98, 64, 0.06);
  font-weight: 600;
}
.p-news-detail .wp-block-button__link.wp-element-button {
  background: var(--orange);
  color: #fff;
  border-radius: 999px;
  border: none;
  box-shadow: none;
  font-weight: 700;
  padding: 14px 26px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.p-news-detail .wp-block-button__link.wp-element-button:hover {
  filter: brightness(0.95);
}
.p-news-detail .wp-block-table.store-info-table {
  border: 1px solid rgba(217, 96, 40, 0.35);
  border-radius: 0;
}
.p-news-detail .wp-block-table.store-info-table table {
  margin: 0;
  display: table;
  width: 100%;
  border-collapse: collapse;
}
.p-news-detail .wp-block-table.store-info-table th,
.p-news-detail .wp-block-table.store-info-table td {
  border: 1px solid rgba(217, 96, 40, 0.22);
  padding: 12px 14px;
  vertical-align: middle;
  background: #fff;
  color: var(--text);
  font-weight: 500;
}
.p-news-detail .wp-block-table.store-info-table th {
  width: 7em;
  white-space: nowrap;
  background: rgba(217, 96, 40, 0.1);
  color: var(--t-black);
  font-weight: 700;
}
.p-news-detail .wp-block-table.time-table {
  border: 1px solid rgba(217, 96, 40, 0.35);
  border-radius: 0;
}
.p-news-detail .wp-block-table.time-table table {
  margin: 0;
  width: 100%;
  border-collapse: collapse;
}
.p-news-detail .wp-block-table.time-table th,
.p-news-detail .wp-block-table.time-table td {
  border: 1px solid rgba(217, 96, 40, 0.22);
  padding: 10px 10px;
  text-align: center;
  vertical-align: middle;
  background: #fff;
  color: var(--text);
}
.p-news-detail .wp-block-table.time-table thead th {
  background: rgba(217, 96, 40, 0.1);
  color: var(--t-black);
  font-weight: 700;
}
.p-news-detail .wp-block-table.time-table tbody td:first-child,
.p-news-detail .wp-block-table.time-table tbody th:first-child {
  background: rgba(217, 96, 40, 0.1);
  color: var(--t-black);
  font-weight: 700;
  white-space: nowrap;
  text-align: left;
}
.p-news-detail .wp-block-table.time-table .cal--open {
  color: var(--orange);
  font-weight: 800;
}
.p-news-detail .wp-block-table.time-table .cal--half {
  color: var(--yellow);
  font-weight: 800;
}
.p-news-detail .wp-block-table.time-table .cal--close {
  color: #e53935;
  font-weight: 800;
}
.p-news-detail .is-red {
  color: #e53935;
  font-weight: 800;
}
.p-news-detail figure {
  margin: 22px 0;
}
@media (min-width: 768px) {
  .p-news-detail figure {
    margin: 28px 0;
  }
}
.p-news-detail figcaption {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.6;
  color: rgba(0, 0, 0, 0.7);
}
.p-news-detail .wp-caption {
  max-width: 100%;
  margin: 22px auto;
}
@media (min-width: 768px) {
  .p-news-detail .wp-caption {
    margin: 28px auto;
  }
}
.p-news-detail .wp-caption img {
  margin: 0 auto;
}
.p-news-detail .wp-caption .wp-caption-text {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.6;
  color: rgba(0, 0, 0, 0.7);
}
.p-news-detail img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 22px auto;
}
@media (min-width: 768px) {
  .p-news-detail img {
    margin: 28px auto;
  }
}
.p-news-detail > *:first-child {
  margin-top: 0;
}
.p-news-detail > *:last-child {
  margin-bottom: 0;
}
.p-news-detail__body > *:first-child {
  margin-top: 0;
}
.p-news-detail__body > *:last-child {
  margin-bottom: 0;
}
.p-news-detail__body img {
  max-width: 100%;
  height: auto;
  display: block;
}
.p-news-detail__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 30px;
}
@media (min-width: 768px) {
  .p-news-detail__nav {
    margin-top: 120px;
    padding-top: 18px;
  }
}
.p-news-detail__nav a {
  text-decoration: none;
  display: flex;
  align-items: center;
  -moz-column-gap: 5px;
       column-gap: 5px;
}
.p-news-detail__nav a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-news-detail__nav .is-prev,
.p-news-detail__nav .is-next {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  line-height: 1.6;
}
.p-news-detail__nav-icon {
  display: inline-flex;
  align-items: center;
}
.p-news-detail__nav-icon img {
  width: 5px;
  height: auto;
  display: block;
  padding-top: 2px;
}
.p-news-detail__back {
  margin-top: 30px;
  display: flex;
  justify-content: center;
}
@media (min-width: 768px) {
  .p-news-detail__back {
    margin-top: -45px;
  }
}
.p-news-detail__back .c-btn {
  min-width: 200px;
  padding-inline: 26px;
}
.p-news-detail__back .c-btn__ill.is-arrow {
  margin-left: 10px;
}
.p-news-detail__footer {
  display: flex;
  justify-content: center;
}
.p-news .p-media__pagination {
  margin-inline: auto;
  margin-top: 80px;
}
@media (min-width: 768px) {
  .p-news .p-media__pagination {
    margin-top: 130px;
  }
}
.p-news .p-media__pagination .page-numbers {
  gap: 5px;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .p-news .p-media__pagination .page-numbers {
    gap: 12px;
    justify-content: center;
  }
}

.p-breadcrumb,
.c-breadcrumb,
.breadcrumb,
.yoast-breadcrumb {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
}
/* About Page Styles */
.about {
  margin-top: 50px;
  padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .about {
    padding-bottom: 120px;
  }
}
.about__inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 30px;
}
@media (min-width: 768px) {
  .about__inner {
    padding: 0 30px;
  }
}
@media (min-width: 1024px) {
  .about__inner {
    padding-inline: 0;
  }
}
.about {
  /* Section Title */
}
.about .section-title {
  text-align: center;
  margin-bottom: 40px;
}
.about .section-title__en {
  display: block;
  font-size: 20px;
  color: var(--orange);
  font-weight: 700;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
  margin-bottom: 5px;
}
.about .section-title__ja {
  display: block;
  font-size: 24px;
  font-weight: 700;
}
@media (min-width: 768px) {
  .about .section-title {
    margin-bottom: 60px;
  }
  .about .section-title__en {
    font-size: 24px;
  }
  .about .section-title__ja {
    font-size: 32px;
  }
}
.about {
  /* Message Section */
}
.about-message {
  margin-bottom: 80px;
}
@media (min-width: 768px) {
  .about-message {
    margin-bottom: 120px;
  }
}
.about-message .c-title-sankaku {
  margin-bottom: 30px;
}
.about-message__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: 30px;
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1024px) {
  .about-message__inner {
    -moz-column-gap: 25px;
         column-gap: 25px;
    flex-direction: row-reverse;
    margin-bottom: 120px;
  }
}
.about-message__img {
  width: 100%;
  margin: 0 auto;
}
.about-message__img img {
  width: 100%;
  height: auto;
}
.about-message__img--top {
  margin-bottom: 30px;
  max-width: 600px;
}
@media (min-width: 1024px) {
  .about-message__img--top {
    flex: 0 0 50%;
    margin-bottom: unset;
  }
}
.about-message__img--bottom {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
}
.about-message__body {
  width: 100%;
}
.about-message__text {
  font-size: 16px;
  line-height: 1.625;
  text-align: justify;
  letter-spacing: 0;
  margin-bottom: 30px;
}
@media (min-width: 1024px) {
  .about-message__text {
    line-height: 1.875;
  }
}
.about {
  /* Vision Section */
  /* Vision Section */
}
.about-vision {
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  margin-bottom: 80px;
}
@media (min-width: 768px) {
  .about-vision {
    margin-bottom: 120px;
  }
}
.about-vision .c-title-sankaku {
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .about-vision .c-title-sankaku {
    margin-bottom: 35px;
  }
}
.about-vision__inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 30px;
}
@media (min-width: 1024px) {
  .about-vision__inner {
    padding: 0;
  }
}
.about-vision__heading {
  font-size: 20px;
  font-weight: 700;
  border-left: 5px solid var(--green);
  padding-left: 10px;
  margin-bottom: 20px;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .about-vision__heading {
    font-size: 24px;
    line-height: 1.46;
  }
}
.about-vision {
  /* Philosophy */
}
.about-vision__philosophy {
  margin-bottom: 50px;
}
@media (min-width: 768px) {
  .about-vision__philosophy {
    margin-bottom: 30px;
  }
}
.about-vision__philosophy-list li {
  display: flex;
  align-items: flex-start;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
}
@media (min-width: 1024px) {
  .about-vision__philosophy-list li {
    line-height: 2;
  }
}
.about-vision__philosophy-list li .num {
  color: var(--orange);
  font-weight: 700;
  flex-shrink: 0;
}
.about-vision {
  /* Culture */
}
.about-vision__list {
  display: flex;
  flex-direction: column;
  gap: 60px;
}
@media (min-width: 768px) {
  .about-vision__list {
    gap: 80px;
  }
}
.about-vision__item {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (min-width: 1024px) {
  .about-vision__item {
    flex-direction: row;
    gap: 25px;
  }
  .about-vision__item--reverse {
    flex-direction: row-reverse;
  }
}
.about-vision__img {
  width: 100%;
}
@media (min-width: 1024px) {
  .about-vision__img {
    flex: 0 0 50%;
  }
}
.about-vision__img img {
  width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .about-vision__content {
    width: 50%;
  }
}
.about-vision__content-title {
  font-size: 20px;
  color: var(--orange);
  font-weight: 700;
  margin-bottom: 15px;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .about-vision__content-title {
    margin-bottom: 20px;
  }
}
.about-vision__content .u-hidden-md {
  display: none;
}
.about-vision__text {
  font-size: 16px;
  line-height: 1.625;
  text-align: justify;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .about-vision__text {
    line-height: 1.875;
  }
}
.about {
  /* Business Section */
}
.about-business {
  margin-bottom: 80px;
  padding-inline: 30px;
}
@media (min-width: 768px) {
  .about-business {
    margin-bottom: 120px;
  }
}
.about-business__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 30px;
  max-width: 1000px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .about-business__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
}
.about-business__card {
  background: #fff;
  border: 2px solid var(--green);
  border-radius: 20px;
  padding: 20px;
  text-align: left;
  display: flex;
  flex-direction: column;
  height: 100%;
}
@media (min-width: 768px) {
  .about-business__card {
    padding: 30px;
  }
}
.about-business__title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--orange);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .about-business__title {
    font-size: 24px;
  }
}
.about-business__text {
  font-size: 16px;
  line-height: 1.625;
  text-align: justify;
  margin-bottom: 0;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .about-business__text {
    line-height: 1.875;
  }
}
.about-business__list {
  margin-bottom: 22px;
}
.about-business__list li {
  font-size: 16px;
  line-height: 1.6;
  position: relative;
  padding-left: 16px;
}
.about-business__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.about-business__image {
  width: 100%;
  overflow: hidden;
  max-width: 327px;
  margin-inline: auto;
}
.about-business__image img {
  width: 100%;
  height: auto;
  display: block;
}
.about {
  /* Profile Section */
}
.about-profile {
  margin-bottom: 50px;
}
@media (min-width: 768px) {
  .about-profile {
    margin-bottom: 80px;
  }
}
.about-profile__main-visual {
  padding-inline: 30px;
  margin-bottom: 30px;
  max-width: 1060px;
  margin-inline: auto;
}
.about-profile__main-visual img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (min-width: 1024px) {
  .about-profile__main-visual img {
    margin-bottom: 80px;
  }
}
.about-profile .c-title-sankaku {
  margin-bottom: 30px;
}
.about-profile__inner {
  width: 100%;
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 30px;
  display: flex;
  flex-direction: column;
  gap: 50px;
}
@media (min-width: 1024px) {
  .about-profile__inner {
    gap: 80px;
  }
}
.about-profile__item {
  width: 100%;
}
.about-profile__company-name {
  font-size: 20px;
  font-weight: 700;
  border-left: 5px solid var(--green);
  padding-left: 10px;
  margin-bottom: 20px;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .about-profile__company-name {
    font-size: 24px;
    margin-bottom: 30px;
  }
}
.about-profile__list {
  width: 100%;
}
.about-profile__row {
  display: flex;
  padding: 5px 10px;
  justify-content: space-between;
  flex-wrap: wrap;
}
.about-profile__row:nth-child(odd) {
  background-color: #feffd2;
}
@media (min-width: 768px) {
  .about-profile__row {
    flex-direction: row;
    align-items: center;
    padding: 20px 30px;
  }
}
.about-profile__row dt {
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .about-profile__row dt {
    width: 150px;
    margin-bottom: 0;
  }
}
.about-profile__row dd {
  margin-left: 0;
  line-height: 1.6;
  flex-grow: 1;
  flex: 0 0 67.7966101695%;
}
@media (min-width: 1024px) {
  .about-profile__row dd {
    flex: 0 0 80%;
  }
}
.about {
  /* Map / Access */
}
.about-access {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 30px;
}
@media (min-width: 1024px) {
  .about-access {
    padding: 0;
  }
}
.about-access__title {
  font-size: 20px;
  font-weight: 700;
  border-left: 5px solid var(--green);
  padding-left: 15px;
  margin-bottom: 20px;
  line-height: 1.5;
}
@media (min-width: 1024px) {
  .about-access__title {
    font-size: 24px;
  }
}
.about-access__text {
  font-size: 20px;
  line-height: 1.6;
  margin-bottom: 20px;
}
.about-map {
  width: 100%;
  height: auto;
  aspect-ratio: 315/200;
  position: relative;
}
@media (min-width: 1024px) {
  .about-map {
    aspect-ratio: 1000/450;
  }
}
.about-map iframe {
  width: 100%;
  height: 100%;
}

/* Animation */
.fade-in {
  opacity: 0;
  transition: opacity 1.4s cubic-bezier(0.25, 1, 0.5, 1), transform 1.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.fade-in.is-visible {
  opacity: 1;
}

.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.4s cubic-bezier(0.25, 1, 0.5, 1), transform 1.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.fade-in-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 1.4s cubic-bezier(0.25, 1, 0.5, 1), transform 1.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.fade-in-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.fade-in-right {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 1.4s cubic-bezier(0.25, 1, 0.5, 1), transform 1.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.fade-in-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Keyframes */
@keyframes heroFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes heroSlideIn {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes twinkle {
  0% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes jitter {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  33% {
    transform: translate(1px, -1px) rotate(0.5deg);
  }
  66% {
    transform: translate(-1px, 1px) rotate(-0.5deg);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}
/* =================================
   Page Hero
================================= */
.page-hero {
  position: relative;
  width: 100%;
  background: linear-gradient(to bottom, #ef5f0f, #fb7c2d);
  color: #fff;
  overflow: hidden;
  margin-top: 60px;
}
@media (min-width: 1024px) {
  .page-hero {
    margin-top: 90px;
  }
}
.page-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  aspect-ratio: 1/1;
  background-color: #ea5506;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  z-index: 1;
  pointer-events: none;
}
.page-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 100%;
  margin: 0 auto;
  padding: 10px 30px 18px;
}
@media (min-width: 1024px) {
  .page-hero__inner {
    padding-inline: unset;
    height: 160px;
    position: relative;
  }
}
.page-hero {
  /* Titles */
}
.page-hero__title {
  z-index: 2;
  text-align: center;
}
@media (min-width: 1024px) {
  .page-hero__title {
    padding-inline: 83px;
    display: flex;
    height: 100%;
  }
}
.page-hero__title-sub {
  margin-bottom: 4px;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
@media (min-width: 1024px) {
  .page-hero__title-sub {
    position: absolute;
    left: 83px;
    top: 50%;
    transform: translateY(-50%);
    flex-direction: column;
    gap: 6px;
    line-height: 1;
  }
}
.page-hero__title-sub .en {
  font-family: var(--font-en);
  font-size: 16px;
  font-weight: 900;
  text-transform: uppercase;
}
@media (min-width: 1024px) {
  .page-hero__title-sub .en {
    font-size: 36px;
  }
}
.page-hero__title-sub .ja {
  font-size: 10px;
  font-weight: 900;
  color: #ffe63d;
}
@media (min-width: 1024px) {
  .page-hero__title-sub .ja {
    font-size: 14px;
  }
}
.page-hero__title-main {
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .page-hero__title-main {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 50px;
  }
}
.page-hero {
  /* Breadcrumb inside Hero */
}
.page-hero__breadcrumb {
  width: 100%;
  font-size: 14px;
  z-index: 2;
  position: relative;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  display: flex;
  gap: 4px;
  overflow-x: auto;
}
.page-hero__breadcrumb__outer {
  padding-inline: 30px;
  margin-top: 10px;
}
.page-hero__breadcrumb__outer a:hover {
  text-decoration: underline;
}
@media (min-width: 1024px) {
  .page-hero__breadcrumb__outer {
    margin-top: 20px;
    max-width: 1060px;
    margin-inline: auto;
  }
}
.page-hero {
  /* Illustration: hero-orange.svg */
}
.page-hero__ill {
  position: absolute;
  bottom: -49px;
  right: -49px;
  z-index: 1;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .page-hero__ill {
    bottom: -236.5px;
    right: -236.5px;
  }
}
.page-hero__ill img {
  display: block;
  width: 98px;
  height: auto;
  rotate: -36deg;
}
@media (min-width: 1024px) {
  .page-hero__ill img {
    width: 473px;
  }
}

/* Numbers Page Styles */
@media (min-width: 768px) {
  .numbers {
    margin-top: 50px;
    padding-bottom: 120px;
  }
}
.numbers__inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 50px 20px 80px;
  position: relative;
  z-index: 1;
}
@media (min-width: 768px) {
  .numbers__inner {
    padding: 0;
    max-width: 1100px;
  }
}

/* Intro */
.numbers-intro {
  text-align: center;
  margin-bottom: 40px;
}
.numbers-intro__text {
  font-size: 15px;
  line-height: 1.8;
  font-weight: 500;
}
@media (min-width: 768px) {
  .numbers-intro__text {
    font-size: 16px;
  }
}

/* Base Icon Visibility */
.icon-md {
  display: none !important;
}

/* Grid Layout System */
.numbers-grid {
  padding: 20px 10px;
  background-color: rgba(255, 125, 41, 0.2);
  border-radius: 10px;
  /* Mobile: Flex Column by default, but allow wrapping */
  display: flex;
  flex-flow: row wrap;
  gap: 10px;
}
@media (min-width: 768px) {
  .numbers-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 30px;
    grid-template-areas: "age-gender age-gender age-gender employees employees employees" "age-gender age-gender age-gender avg-age avg-age avg-age" "job-age job-age job-age staff-ratio staff-ratio staff-ratio" "stores stores stores stores stores stores" "founding founding sales sales overtime overtime" "retention retention paternity paternity female-manager female-manager";
    padding: 40px 50px;
  }
}
@media (min-width: 1024px) {
  .numbers-grid {
    padding: 80px 100px;
  }
}

/* Grid Area Assignments */
.numbers-card {
  /* Mobile: Default to Full Width */
  width: 100%;
}
.numbers-card--age-gender {
  grid-area: age-gender;
}
.numbers-card--employees {
  grid-area: employees;
}
.numbers-card--avg-age {
  grid-area: avg-age;
}
.numbers-card--job-age {
  grid-area: job-age;
}
.numbers-card--staff-ratio {
  grid-area: staff-ratio;
}
.numbers-card--stores {
  grid-area: stores;
}
.numbers-card {
  /* 2x2 Grid Section (Founding, Sales, Overtime, Retention) */
}
.numbers-card--founding, .numbers-card--sales {
  /* Mobile: Half Width with gap calculation */
  /* gap is 10px, so (100% - 10px) / 2 = 50% - 5px */
  width: calc(50% - 5px);
  height: 271px !important;
}
@media (min-width: 768px) {
  .numbers-card--founding, .numbers-card--sales {
    height: 295px !important;
  }
}
.numbers-card--overtime, .numbers-card--retention {
  width: calc(50% - 5px);
  height: 295px !important;
}
.numbers-card--founding {
  grid-area: founding;
}
.numbers-card--sales {
  grid-area: sales;
}
.numbers-card--overtime {
  grid-area: overtime;
}
.numbers-card--retention {
  grid-area: retention;
}
.numbers-card--paternity {
  grid-area: paternity;
}
.numbers-card--female-manager {
  grid-area: female-manager;
}
@media (min-width: 768px) {
  .numbers-card {
    width: auto; /* Reset width for Grid items on Desktop */
  }
}

/* Common Card Styles */
.numbers-card {
  background: #fff;
  border-radius: 20px;
  padding: 20px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* Align strictly to top */
  position: relative;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .numbers-card {
    padding: 20px 30px;
  }
}
.numbers-card__title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  display: flex;
  align-items: start; /* Default vertical align center */
  gap: 10px;
  /* border-left removed to avoid double visual with .bar */
  padding-left: 0;
}
.numbers-card__title .bar {
  display: inline-block;
  width: 5px;
  height: 29px;
  background: var(--green);
  flex-shrink: 0;
}
.numbers-card__title .small {
  font-size: 16px;
  font-weight: normal;
  margin-left: auto;
  text-align: right;
  margin-top: auto;
  line-height: 1.6;
}
.numbers-card .annotation-right {
  font-size: 14px !important;
}

@media (min-width: 1024px) {
  .numbers-card__title {
    font-size: 24px;
  }
  .numbers-card__title .bar {
    transform: translateY(3px);
  }
}

/* Top Section Specifics */
@media (min-width: 768px) {
  .numbers-card--age-gender .numbers-card__title {
    flex-wrap: wrap;
  }
  .numbers-card--age-gender .numbers-card__title .small {
    margin-left: 30px;
  }
}

.numbers-card--employees .annotation-right {
  font-size: 14px !important;
}
@media (min-width: 1200px) {
  .numbers-card--employees .numbers-card__title {
    margin-bottom: -24px;
  }
  .numbers-card--employees .numbers-card__subtitle {
    margin-bottom: 40px;
  }
  .numbers-card--employees .numbers-card__gender-bar {
    margin-bottom: 30px;
  }
  .numbers-card--employees .annotation-right {
    margin-top: unset;
  }
}

.numbers-card--avg-age .numbers-card__title {
  margin-bottom: 5px;
}
.numbers-card--avg-age .numbers-card__title .subtitle {
  font-size: 0.7em;
  margin-left: 1em;
  font-weight: normal;
}
.numbers-card--avg-age .numbers-card__subtitle {
  text-align: right;
}
.numbers-card--avg-age .annotation-right {
  font-size: 14px !important;
  color: var(--text);
}
@media (min-width: 1200px) {
  .numbers-card--avg-age .numbers-card__title {
    margin-bottom: unset;
  }
  .numbers-card--avg-age .numbers-card__subtitle {
    margin-top: -24px;
    text-align: left;
    margin-left: 210px;
    margin-bottom: 33px;
  }
  .numbers-card--avg-age .avg-age-display {
    justify-content: unset;
    gap: 15px;
  }
  .numbers-card--avg-age .male .icon-wrap {
    width: 89px;
  }
  .numbers-card--avg-age .female .icon-wrap {
    width: 85px;
  }
  .numbers-card--avg-age .text .label {
    font-size: 20px !important;
    margin-left: 14px;
  }
  .numbers-card--avg-age .count-up {
    font-size: 60px;
    line-height: 1;
  }
  .numbers-card--avg-age .unit {
    font-size: 20px;
  }
  .numbers-card--avg-age .annotation-right {
    margin-top: -18px;
  }
}

.numbers-card--job-age .subtitle {
  font-size: 16px;
  margin-left: auto;
  font-weight: 500;
  margin-top: 2px;
}
.numbers-card--job-age .job-age-img {
  flex: 0 1 35.15625%;
  margin-top: unset !important;
  margin-right: unset !important;
}
.numbers-card--job-age .job-age-item {
  align-items: start !important;
}
.numbers-card--job-age .job-age-content {
  align-items: center;
  flex: 1 1 auto;
}
.numbers-card--job-age .job-age-content .role {
  font-size: 13px;
  white-space: nowrap;
  text-align: center;
}
.numbers-card--job-age .job-age-content .age {
  text-align: center;
}
@media (min-width: 1024px) {
  .numbers-card--job-age .job-age-grid {
    max-width: 412px;
    margin-inline: unset;
  }
  .numbers-card--job-age .subtitle {
    margin-left: 30px;
  }
  .numbers-card--job-age .job-age-img {
    width: 62px;
  }
  .numbers-card--job-age .role {
    font-size: 20px !important;
    line-height: 1.5;
  }
  .numbers-card--job-age .count-up {
    font-size: 60px;
    line-height: 1;
  }
  .numbers-card--job-age .annotation-right {
    margin-top: unset;
  }
  .numbers-card--job-age .job-age-grid {
    margin-top: unset;
    gap: 6px 20px;
    max-width: 400px;
    margin-inline: auto;
  }
}

.numbers-card--founding .numbers-card__title {
  margin-bottom: 32px;
}
.numbers-card--founding .icon-stat {
  margin-top: unset !important;
}
.numbers-card--founding .icon-stat .icon {
  height: unset;
}
.numbers-card--founding .icon-stat img {
  width: 74px;
}
.numbers-card--founding .stat-value {
  white-space: nowrap;
  color: var(--lightorange) !important;
  font-size: 40px !important;
}
.numbers-card--founding .unit {
  color: var(--lightorange) !important;
  margin-left: unset !important;
}
@media (min-width: 1024px) {
  .numbers-card--founding {
    height: auto !important;
  }
  .numbers-card--founding .icon-stat {
    margin-top: 10px !important;
  }
  .numbers-card--founding .numbers-card__title {
    margin-bottom: unset;
  }
  .numbers-card--founding .icon-stat img {
    width: 110px;
    margin-bottom: 15px;
  }
  .numbers-card--founding .stat-value {
    font-size: 60px !important;
  }
  .numbers-card--founding .stat-value .unit {
    font-size: 20px;
  }
}

.numbers-card--sales .numbers-card__title {
  margin-bottom: 18px;
}
.numbers-card--sales .icon-stat {
  margin: unset;
}
.numbers-card--sales .icon-stat .icon {
  height: unset;
  margin-bottom: unset;
}
.numbers-card--sales .icon-stat img {
  width: 78px;
  margin-top: -10px;
}
.numbers-card--sales .icon-stat .unit {
  color: var(--green) !important;
  margin-left: unset !important;
  font-size: 13px;
}
.numbers-card--sales .stat-value {
  margin-bottom: 13px;
  margin-top: 20px;
}
.numbers-card--sales .annotation-right {
  font-size: 14px;
  margin-top: unset;
}
@media (min-width: 1024px) {
  .numbers-card--sales {
    height: auto !important;
  }
  .numbers-card--sales .numbers-card__title {
    margin-bottom: unset;
  }
  .numbers-card--sales .icon-stat img {
    width: 112px;
    margin-bottom: 15px !important;
  }
  .numbers-card--sales .unit {
    font-size: 20px;
  }
  .numbers-card--sales .count-up {
    font-size: 60px;
  }
}
@media (min-width: 1200px) {
  .numbers-card--sales .annotation-right {
    margin-top: 32px;
  }
}

.numbers-card--overtime .numbers-card__title {
  white-space: nowrap !important;
  margin-bottom: 7px;
  margin-left: -7px;
  line-height: 1.5;
}
.numbers-card--overtime .icon-stat {
  margin: unset;
}
.numbers-card--overtime .icon-stat .icon {
  height: unset;
}
.numbers-card--overtime .icon-stat img {
  margin-bottom: unset;
  width: 54px !important;
  margin-bottom: 15px !important;
}
.numbers-card--overtime .icon-stat .unit {
  color: var(--green) !important;
  margin-left: unset !important;
  font-size: 13px !important;
}
.numbers-card--overtime .stat-value {
  margin-bottom: 5px;
  font-size: 40px !important;
}
.numbers-card--overtime .annotation-block {
  margin-top: 0;
}
.numbers-card--overtime .annotation-right {
  margin-top: unset !important;
  margin-bottom: 5px;
}
.numbers-card--overtime .annotation-block {
  margin-inline: -10px;
}
@media (min-width: 1024px) {
  .numbers-card--overtime {
    height: auto !important;
  }
  .numbers-card--overtime .icon-stat img {
    width: 101px !important;
  }
  .numbers-card--overtime .count-up {
    font-size: 60px !important;
  }
  .numbers-card--overtime .unit-hour.unit {
    font-size: 20px !important;
  }
}
@media (min-width: 1024px) and (min-width: 1200px) {
  .numbers-card--overtime .numbers-card__title br {
    display: none;
  }
}

.numbers-card--retention .numbers-card__title {
  white-space: nowrap !important;
  margin-bottom: 7px;
  margin-left: -7px;
  line-height: 1.5;
}
.numbers-card--retention .icon-stat {
  margin: unset;
}
.numbers-card--retention .icon-stat .icon {
  height: unset;
}
.numbers-card--retention .icon-stat img {
  margin-bottom: unset;
  width: 95px !important;
}
.numbers-card--retention .icon-stat .unit {
  color: var(--lightorange) !important;
  margin-left: unset !important;
  font-size: 13px !important;
}
.numbers-card--retention .stat-value {
  margin-bottom: 35px;
  margin-top: 20px;
  font-size: 40px !important;
}
.numbers-card--retention .annotation-block {
  margin-top: 0;
}
.numbers-card--retention .annotation-right {
  margin-top: unset !important;
  font-size: 14px;
  white-space: nowrap;
}
.numbers-card--retention .annotation-block {
  margin-inline: -10px;
}
.numbers-card--retention .count-up {
  color: var(--lightorange);
}
@media (min-width: 768px) {
  .numbers-card--retention {
    height: auto !important;
  }
  .numbers-card--retention .numbers-card__title {
    margin-bottom: 15px;
  }
  .numbers-card--retention .icon-stat img {
    width: 160px !important;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .numbers-card--retention .count-up {
    font-size: 60px !important;
  }
  .numbers-card--retention .unit {
    font-size: 20px !important;
  }
  .numbers-card--retention .numbers-card__title br {
    display: none;
  }
  .numbers-card--retention .stat-value {
    margin-bottom: 24px;
    margin-top: 5px !important;
  }
}

.numbers-card--staff-ratio .numbers-card__subtitle {
  text-align: right;
  font-size: 14px;
  margin-bottom: 10px;
}
.numbers-card--staff-ratio .numbers-card__title {
  margin-bottom: 5px;
}
.numbers-card--staff-ratio .numbers-card__subtitle {
  margin-bottom: 15px;
  font-size: 16px;
}
.numbers-card--staff-ratio .annotation-right {
  margin-top: 15px;
  font-size: 14px !important;
}
@media (min-width: 1024px) {
  .numbers-card--staff-ratio .numbers-card__subtitle {
    margin-left: 24px;
    margin-bottom: 30px;
    text-align: unset;
  }
  .numbers-card--staff-ratio .chart-donut-wrapper {
    margin-top: unset;
    margin-bottom: unset;
  }
  .numbers-card--staff-ratio .annotation-right {
    margin-top: unset;
  }
}

.numbers-card--stores .annotation-right {
  font-size: 14px;
}

/* Age/Gender Chart */
/* Age/Gender Chart */
.chart-age-gender {
  height: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
  margin-left: -15px;
  margin-right: -15px;
}
.chart-age-gender img {
  max-width: 100%;
  height: auto;
  display: block;
}

.numbers-card__legend {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
}
.numbers-card__legend .legend-group {
  display: flex;
  gap: 30px;
}
.numbers-card__legend .legend-item {
  display: flex;
  align-items: center;
  font-weight: 700;
}
.numbers-card__legend .legend-item .dot {
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  margin-right: 4px;
}
.numbers-card__legend .legend-item--male .dot {
  background: #016f3f;
}
.numbers-card__legend .legend-item--female .dot {
  background: #ff914a;
}
.numbers-card__legend .annotation {
  font-size: 14px;
}

/* Avg Age (Gender) */
.avg-age-display {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.avg-age-display .avg-age-item {
  display: flex;
  text-align: left;
}
.avg-age-display .avg-age-item .icon-wrap {
  flex: 0 1 auto;
  height: auto;
  margin-right: 5px;
  padding-top: 5px;
}
.avg-age-display .avg-age-item .icon-wrap img.icon {
  width: 100%;
  height: auto;
  display: block;
}
.avg-age-display .avg-age-item .text .label {
  display: block;
  font-size: 14px;
  /* Mobile Alignment Fix: Fixed Height for Titles */
}
@media (max-width: 768px) {
  .avg-age-display .avg-age-item .text .label {
    font-size: 16px; /* Reduced from 20px to ensure 2 lines fit in 48px */
    align-items: flex-start;
  }
  .avg-age-display .avg-age-item .text .label .bar {
    margin-top: 5px; /* Offset to align with text cap-height */
  }
}
.avg-age-display .avg-age-item .text .label {
  line-height: 1;
  font-family: var(--font-en);
  white-space: nowrap;
}
.avg-age-display .avg-age-item .text .label .unit {
  font-size: 20px;
  margin-left: 4px;
  font-weight: 700;
}
.avg-age-display .avg-age-item.male .label,
.avg-age-display .avg-age-item.male .value {
  color: #016f3f;
}
.avg-age-display .avg-age-item.female .label,
.avg-age-display .avg-age-item.female .value {
  color: #ff914a;
}
.avg-age-display .avg-age-item .value {
  font-size: 40px;
}
.avg-age-display .avg-age-item .unit {
  font-size: 14px !important;
}

/* Job Age Grid */
/* Job Age Grid */
.job-age-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 10px;
  margin-top: 20px;
  /* Mobile: maybe 1 column? Design shows 2 columns in the likely mock, but let's stick to 2 as requested "Design Match" */
}
.job-age-grid .job-age-item {
  display: flex;
  align-items: center;
  justify-content: center; /* Center the content within the grid cell */
}
.job-age-grid .job-age-item .job-age-img {
  width: 60px;
  height: auto;
  margin-right: 10px;
  flex-shrink: 0;
}
.job-age-grid .job-age-item .job-age-img img {
  width: 100%;
  height: auto;
  display: block;
}
.job-age-grid .job-age-item .job-age-content {
  text-align: left;
}
.job-age-grid .job-age-item .job-age-content .role {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 0;
  line-height: 1.2;
}
.job-age-grid .job-age-item .job-age-content .age {
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  font-family: var(--font-en);
  white-space: nowrap;
}
.job-age-grid .job-age-item .job-age-content .age .unit {
  font-size: 14px;
  margin-left: 2px;
}
.job-age-grid .job-age-item {
  /* Colors */
}
.job-age-grid .job-age-item.item-orange .role {
  color: #ff914a;
}
.job-age-grid .job-age-item.item-orange .age {
  color: #ff914a;
}
.job-age-grid .job-age-item.item-green .role {
  color: #016f3f;
}
.job-age-grid .job-age-item.item-green .age {
  color: #016f3f;
}

/* Pharmacist vs Clerk Donut Chart */
/* Pharmacist vs Clerk Image */
.chart-donut-wrapper {
  position: relative;
  width: 100%;
  max-width: 300px;
  height: auto;
  margin: 10px auto;
  display: flex;
  justify-content: center;
  align-items: center;
}
.chart-donut-wrapper img {
  width: 100%;
  height: auto;
}

/* Store Map Placeholder */
/* Store Map Placeholder */
.store-map-placeholder {
  position: relative;
  width: 100%;
  max-width: 320px;
  margin-inline: auto;
  height: 290px; /* Sufficient height for the layout */
}
.store-map-placeholder .map-item {
  position: absolute;
  display: flex;
}
.store-map-placeholder .map-item .map-img {
  margin: 0;
}
.store-map-placeholder .map-item .map-img img {
  width: 100%;
  height: auto;
  display: block;
}
.store-map-placeholder .map-item .map-text {
  white-space: nowrap;
}
.store-map-placeholder .map-item .map-text .name {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 2px;
  line-height: 1;
}
.store-map-placeholder .map-item .map-text .count {
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  font-family: var(--font-en);
}
.store-map-placeholder .map-item .map-text .count .unit {
  font-size: 13px;
  /* color: #333; removed to inherit parent color */
  margin-left: 4px;
  font-weight: 700;
}
.store-map-placeholder .map-item {
  /* Specific Positioning & Colors */
}
.store-map-placeholder .map-item--miyagi {
  top: 0;
}
.store-map-placeholder .map-item--miyagi .map-img {
  width: 132px;
}
.store-map-placeholder .map-item--miyagi .name,
.store-map-placeholder .map-item--miyagi .count {
  color: #ff914a;
}
.store-map-placeholder .map-item--miyagi .map-text {
  margin-top: 20px;
  margin-left: 4px;
}
.store-map-placeholder .map-item--iwate {
  top: 100px;
  right: 10px;
  align-items: center;
  gap: 20px;
}
.store-map-placeholder .map-item--iwate .map-img {
  width: 73px;
}
.store-map-placeholder .map-item--iwate .name,
.store-map-placeholder .map-item--iwate .count {
  color: #016f3f;
}
.store-map-placeholder .map-item--iwate {
  /* Green */
}
.store-map-placeholder .map-item--fukushima {
  top: 196px;
  align-items: center;
  left: 0px;
  gap: 20px;
}
.store-map-placeholder .map-item--fukushima .map-img {
  width: 110px;
}
.store-map-placeholder .map-item--fukushima .map-text {
  margin-top: 15px;
}
.store-map-placeholder .map-item--fukushima .name,
.store-map-placeholder .map-item--fukushima .count {
  color: #ff914a;
}

/* Founding / Sales / etc - Simple Icon Stats */
.icon-stat {
  text-align: center;
  margin-block: auto;
}
.icon-stat .icon {
  height: 60px; /* Increased size as per design */
  width: auto;
  margin-bottom: 15px;
  display: block;
  margin-inline: auto;
}
.icon-stat .stat-value {
  font-size: 50px; /* Increased from 42px to 50px for larger impact */
  font-weight: 700;
  line-height: 1;
  color: var(--orange); /* Default color */
  font-family: var(--font-en);
}
.icon-stat .stat-value .unit {
  font-size: 16px;
  color: #333;
  margin-left: 5px;
  font-weight: 700;
}
.icon-stat {
  /* Color Modifiers */
}
.icon-stat .text-green {
  color: #016f3f !important;
}
.icon-stat .text-orange {
  color: #ff914a !important;
}

/* Specific Card Overrides (if needed beyond inline modifiers) */
.numbers-card--founding .stat-value {
  color: #ff914a;
}
.numbers-card--sales .stat-value {
  color: #016f3f;
}
.numbers-card--overtime .stat-value {
  color: #016f3f;
}
.numbers-card--retention .stat-value {
  color: #ff914a;
}

/* Annotations */
.annotation-right {
  text-align: right;
  font-size: 11px;
  margin-top: 10px;
}

.annotation-center {
  text-align: center;
  font-size: 11px;
  color: #888;
  margin-top: 8px;
}

.annotation-block {
  font-size: 10px;
  line-height: 1.4;
  margin-top: 5px;
  text-align: left;
}

/* =========================================
   Front Page Styles End
   ========================================= */
/* New Numbers Card Styles */
.numbers-card__subtitle {
  margin-bottom: 20px;
  text-align: right;
  font-size: 14px;
}

.numbers-card__gender-bar {
  display: flex;
  width: 100%;
  height: 45px;
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .numbers-card__gender-bar {
    height: 69px;
  }
}
.numbers-card__gender-bar .bar-segment {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  line-height: 1;
}
.numbers-card__gender-bar .bar-segment--male {
  background-color: #016f3f;
}
.numbers-card__gender-bar .bar-segment--female {
  background-color: #ff914a;
}
.numbers-card__gender-bar .bar-segment .segment-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transition: opacity 0.5s 0.3s; /* Delay fade-in */
}
.numbers-card__gender-bar .bar-segment.is-visible .segment-content {
  opacity: 1;
}
.numbers-card__gender-bar .bar-segment .label {
  font-size: 10px;
  font-weight: 700;
  margin-bottom: 2px;
}
.numbers-card__gender-bar .bar-segment .value {
  font-size: 14px;
  font-weight: 700;
  font-family: var(--font-en);
}
.numbers-card__gender-bar .bar-segment .value .count-up {
  font-size: 21px;
}

.numbers-card__title .bar {
  margin-top: 2px;
}

/* Refined Styles for Paternity and Female Manager */
.numbers-card--paternity .card-flex-row,
.numbers-card--female-manager .card-flex-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: 15px;
  padding-block: 10px;
}
.numbers-card--paternity .card-icon,
.numbers-card--female-manager .card-icon {
  flex: 0 0 auto;
  width: 100px;
}
.numbers-card--paternity .card-icon img,
.numbers-card--female-manager .card-icon img {
  width: 100%;
  height: auto;
  display: block;
}
.numbers-card--paternity .card-text,
.numbers-card--female-manager .card-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.numbers-card--paternity .stat-value,
.numbers-card--female-manager .stat-value {
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  font-family: var(--font-en);
  white-space: nowrap;
  margin-bottom: 5px;
}
.numbers-card--paternity .stat-value .unit,
.numbers-card--female-manager .stat-value .unit {
  font-size: 18px;
  font-weight: 700;
  margin-left: 2px;
}
.numbers-card--paternity .annotation-center,
.numbers-card--female-manager .annotation-center {
  font-size: 13px;
  font-weight: 700;
  text-align: left;
  line-height: 1.4;
}
.numbers-card--paternity .annotation-right,
.numbers-card--female-manager .annotation-right {
  margin-top: auto;
  font-size: 11px;
  width: 100%;
  text-align: right;
}

.numbers-card--paternity {
  padding-bottom: unset;
  position: relative;
}
.numbers-card--paternity .card-flex-row {
  justify-content: unset;
  align-items: unset;
  gap: 25px;
  padding-left: 13px;
  max-width: 400px;
  margin-inline: auto;
}
.numbers-card--paternity .card-icon {
  width: 105px;
}
.numbers-card--paternity .card-text {
  width: 100%;
}
.numbers-card--paternity .stat-value {
  font-size: 40px;
  margin-bottom: 2px;
}
.numbers-card--paternity .unit {
  font-size: 13px !important;
}
.numbers-card--paternity .annotation-center {
  margin-top: unset;
  margin-bottom: 5px;
}
.numbers-card--paternity .numbers-card__title {
  margin-bottom: unset;
}
.numbers-card--paternity .stat-value,
.numbers-card--paternity .annotation-center {
  color: var(--lightorange);
}
.numbers-card--paternity .annotation-right {
  font-size: 14px;
  margin-left: auto;
  text-align: right;
}
@media (min-width: 768px) {
  .numbers-card--paternity {
    height: auto !important;
  }
  .numbers-card--paternity .card-flex-row {
    flex-direction: column;
    gap: unset;
    padding: unset;
    margin-inline: unset;
  }
  .numbers-card--paternity .annotation-center br {
    display: none;
  }
  .numbers-card--paternity .card-icon {
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .numbers-card--paternity .card-icon img {
    width: 122px;
  }
  .numbers-card--paternity .stat-value {
    display: flex;
    align-items: end;
    justify-content: center;
    width: 100%;
  }
  .numbers-card--paternity .numbers-card__title {
    margin-bottom: 15px;
  }
}
@media (min-width: 1024px) {
  .numbers-card--paternity .count-up {
    font-size: 60px !important;
  }
  .numbers-card--paternity .unit {
    font-size: 20px !important;
  }
  .numbers-card--paternity .annotation-center {
    font-size: 20px;
  }
}
@media (min-width: 1200px) {
  .numbers-card--paternity .numbers-card__title {
    white-space: nowrap;
    margin-left: -10px;
    margin-bottom: 20px;
  }
  .numbers-card--paternity .annotation-center {
    font-size: 20px;
    white-space: nowrap;
    margin-left: -24px;
  }
  .numbers-card--paternity .annotation-right {
    margin-right: -10px;
  }
}

.numbers-card--female-manager .stat-value,
.numbers-card--female-manager .annotation-center {
  color: var(--green);
}
.numbers-card--female-manager .numbers-card__title {
  margin-bottom: unset;
}
.numbers-card--female-manager .card-flex-row {
  gap: 58px;
  max-width: 400px;
  margin-inline: auto;
}
.numbers-card--female-manager .card-icon {
  width: 60px;
  margin-left: 20px;
}
.numbers-card--female-manager .card-flex-row {
  padding-block: unset;
}
.numbers-card--female-manager .stat-value {
  font-size: 40px;
  margin-bottom: 2px;
}
.numbers-card--female-manager .unit {
  font-size: 13px !important;
}
.numbers-card--female-manager .annotation-right {
  font-size: 14px;
  margin-left: auto;
  text-align: right;
}
.numbers-card--female-manager .annotation-center {
  margin-top: unset;
  margin-bottom: 5px;
}
.numbers-card--female-manager .card-text {
  width: 100%;
}
.numbers-card--female-manager .numbers-card__title {
  margin-bottom: unset;
}
.numbers-card--female-manager .d-none {
  display: none;
}
@media (min-width: 768px) {
  .numbers-card--female-manager br {
    display: none;
  }
  .numbers-card--female-manager .card-flex-row {
    display: flex;
    flex-direction: column;
    gap: unset;
  }
  .numbers-card--female-manager .card-icon {
    margin-left: unset;
    width: 67px;
  }
}
@media (min-width: 1024px) {
  .numbers-card--female-manager .stat-value {
    font-size: 60px;
  }
  .numbers-card--female-manager .unit {
    font-size: 20px !important;
  }
  .numbers-card--female-manager .annotation-center {
    font-size: 20px;
  }
  .numbers-card--female-manager .numbers-card__title {
    line-height: 1.2;
    transform: translateY(5px);
  }
  .numbers-card--female-manager .bar {
    margin-top: -3px;
  }
}
@media (min-width: 1200px) {
  .numbers-card--female-manager {
    gap: 10px;
  }
  .numbers-card--female-manager .annotation-right {
    margin-right: -45px;
  }
  .numbers-card--female-manager .d-none {
    display: block !important;
  }
}

/* Staff Ratio Donut Chart */
.chart-donut-wrapper {
  margin-top: 20px;
  display: flex;
  justify-content: center;
}

.donut-chart-container {
  position: relative;
  width: 100%;
  /* Update size to 250px as requested */
  max-width: 250px;
  aspect-ratio: 1/1;
  margin: 0 auto;
}

.donut-chart {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  /* Order: Orange (Right/53%), Green (Left/47%) */
  background: conic-gradient(#ff914a 0% 52.9%, #016f3f 52.9% 100%);
  /* Donut hole and Reveal Mask */
  /* Default to 100% visible so it shows up even if JS fails */
  -webkit-mask: conic-gradient(from 0deg, #000 0% var(--reveal, 100%), transparent var(--reveal, 100%) 100%);
  mask: conic-gradient(from 0deg, #000 0% var(--reveal, 100%), transparent var(--reveal, 100%) 100%);
  position: relative;
  background-color: #eee;
}

/* White hole - Thickness 72px fixed */
.donut-chart::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* Total size - (72px * 2) = Inner hole size */
  width: calc(100% - 144px);
  height: calc(100% - 144px);
  background: #fff;
  border-radius: 50%;
  pointer-events: none;
}

.donut-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.donut-label {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  z-index: 2;
  color: #fff;
}
.donut-label.label-clerk {
  /* Green Left side */
  left: 4%;
}
.donut-label.label-pharmacist {
  /* Orange Right side */
  right: 5%;
}
.donut-label .job {
  display: block;
  font-size: 14px; /* Scaled down for 250px */
}
.donut-label .val {
  font-size: 25px; /* Scaled down for 250px */
  font-weight: 700;
  line-height: 1;
  font-family: var(--font-en);
}
.donut-label .val .unit {
  font-size: 16px;
  margin-left: 2px;
}

/* =========================================
   PC Layout (MD+)
   ========================================= */
@media (min-width: 768px) {
  .numbers__inner {
    max-width: 1260px;
    margin: 0 auto;
    padding-inline: 30px;
  }
  .numbers-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
  }
  /* 1. Age/Gender Graph (Left Col, Tall, Row 1-2) */
  .numbers-card--age-gender {
    grid-column: 1/4;
    grid-row: 1/3;
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .numbers-card--age-gender .chart-age-gender {
    flex-grow: 1; /* allow chart to expand */
    align-items: center; /* Center vertically if needed */
  }
  /* 2. Employee Count (Right Col, Row 1) */
  .numbers-card--employees {
    grid-column: 4/-1;
    grid-row: 1;
    width: auto;
  }
  /* 3. Avg Age (Right Col, Row 2) */
  .numbers-card--avg-age {
    grid-column: 4/-1;
    grid-row: 2;
    width: auto;
  }
  /* 4. Job Age (Left Col, Row 3) - Starts new flow */
  .numbers-card--job-age {
    grid-column: span 3;
  }
  /* 5. Staff Ratio Donut (Right Col, Row 3) */
  .numbers-card--staff-ratio {
    grid-column: span 3;
  }
  /* 6. Store Count (Full Width / Horizontal on PC) */
  .numbers-card--stores {
    grid-column: span 6;
    display: flex;
    align-items: center;
    /* justify-content: space-between; */
    position: relative; /* For annotation positioning */
  }
  .numbers-card--stores-inner {
    width: 100%;
  }
  .numbers-card--stores {
    /* Adjust layout for full width horizontal */
  }
}
@media (min-width: 768px) and (min-width: 1024px) {
  .numbers-card--stores-inner {
    display: flex;
  }
}
@media (min-width: 768px) and (min-width: 1024px) and (min-width: 1200px) {
  .numbers-card--stores .map-text {
    font-size: 20px;
  }
  .numbers-card--stores .count-up {
    font-size: 60px;
  }
  .numbers-card--stores .unit {
    font-size: 20px;
  }
  .numbers-card--stores .numbers-card__title {
    flex: 0 0 180px;
  }
  .numbers-card--stores .map-item--miyagi .map-img {
    width: 148px !important;
    margin-top: -10px;
    margin-bottom: -10px;
  }
  .numbers-card--stores .map-item--iwate .map-img {
    width: 90px !important;
  }
  .numbers-card--stores .map-item--fukushima .map-img {
    width: 127px !important;
  }
  .numbers-card--stores .annotation-right {
    margin-bottom: -5px;
  }
}
@media (min-width: 768px) {
  .numbers-card--stores .store-map-placeholder {
    margin: 0;
    max-width: none;
    height: auto;
    position: static;
    display: flex;
    align-items: center;
    /* gap: 60px; */
    justify-content: space-around;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .numbers-card--stores .store-map-placeholder {
    justify-content: space-between;
  }
}
@media (min-width: 768px) {
  .numbers-card--stores .store-map-placeholder .map-item {
    position: static;
    display: flex;
    align-items: center;
    gap: 15px;
    /* Reset mobile specific positioning overrides */
  }
  .numbers-card--stores .store-map-placeholder .map-item--miyagi, .numbers-card--stores .store-map-placeholder .map-item--iwate, .numbers-card--stores .store-map-placeholder .map-item--fukushima {
    top: auto;
    right: auto;
    left: auto;
    margin: 0;
  }
  .numbers-card--stores .store-map-placeholder .map-item {
    /* Adjust per map spacing */
  }
  .numbers-card--stores .store-map-placeholder .map-item--miyagi .map-img {
    width: 100px;
  }
  .numbers-card--stores .store-map-placeholder .map-item--iwate .map-img {
    width: 60px;
  }
  .numbers-card--stores .store-map-placeholder .map-item--fukushima .map-img {
    width: 100px;
  }
  .numbers-card--stores .store-map-placeholder .map-item .map-text {
    margin: 0;
    text-align: left;
  }
  .numbers-card--stores .store-map-placeholder .map-item .map-text .name {
    font-size: 16px;
    margin-bottom: 5px;
    color: var(--lightorange);
  }
  .numbers-card--stores .store-map-placeholder .map-item .map-text .count {
    font-size: 50px;
    color: var(--lightorange);
  }
  .numbers-card--stores .store-map-placeholder .map-item .map-text .unit {
    font-size: 16px;
    margin-left: 5px;
    color: var(--lightorange);
  }
  .numbers-card--stores .store-map-placeholder .map-item {
    /* Specific color overrides for Iwate (Green) */
  }
  .numbers-card--stores .store-map-placeholder .map-item--iwate .name,
  .numbers-card--stores .store-map-placeholder .map-item--iwate .count,
  .numbers-card--stores .store-map-placeholder .map-item--iwate .unit {
    color: var(--green) !important;
  }
  .numbers-card--stores .annotation-right {
    position: absolute;
    bottom: 15px;
    right: 25px;
    margin: 0;
    font-size: 12px;
  }
}
@media (min-width: 768px) {
  /* Explicit Grid Placement for Top Section */
  .numbers-card--age-gender {
    grid-column: 1/span 3;
    grid-row: 1/span 2;
    width: auto;
    height: 100%;
  }
  .numbers-card--employees {
    grid-column: 4/-1;
    grid-row: 1;
    width: auto;
  }
  .numbers-card--avg-age {
    grid-column: 4/-1;
    grid-row: 2;
    width: auto;
  }
  /* 7-12. Stats Grid (3 Col per row) */
  .numbers-card--founding,
  .numbers-card--sales,
  .numbers-card--overtime,
  .numbers-card--retention,
  .numbers-card--paternity,
  .numbers-card--female-manager {
    grid-column: span 2;
    width: auto; /* Reset mobile width (50%) to let grid handle it */
    /* Reset heights if mobile had specific heights that shouldn't apply here?
       Actually, consistent height is good. */
  }
  /* Icon Switching */
  .icon-md {
    display: block !important;
  }
  .icon-sp {
    display: none !important;
  }
  /* Color Switching (SP Reverse) */
  .numbers-card--overtime .stat-value,
  .numbers-card--overtime .unit {
    color: var(--lightorange) !important;
  }
  .numbers-card--overtime .icon-stat .stat-value .unit {
    color: var(--lightorange) !important;
  }
  .numbers-card--retention .stat-value,
  .numbers-card--retention .unit {
    color: var(--green) !important;
  }
  .numbers-card--retention .icon-stat .stat-value .count-up {
    color: var(--green) !important;
  }
  .numbers-card--retention .icon-stat .stat-value .unit {
    color: var(--green) !important;
  }
}
.work.work-page {
  margin-top: 50px;
  padding-bottom: 80px;
  font-family: var(--font-base, "Noto Sans JP", sans-serif);
  color: var(--text, #333);
}
@media (min-width: 768px) {
  .work.work-page {
    margin-bottom: 120px;
  }
}
.work.work-page .work__inner {
  max-width: 1060px;
  margin: 0 auto;
  padding-inline: 30px;
}
.work.work-page .text-orange {
  color: var(--orange);
}

/* Section Common */
.work-section:not(:last-of-type) {
  margin-bottom: 80px;
}
@media (min-width: 768px) {
  .work-section:not(:last-of-type) {
    margin-bottom: 120px;
  }
}
.work-section__coution {
  margin-top: 20px;
  font-size: 14px;
}
.work-section__title {
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .work-section__inner {
    display: flex;
    flex-direction: row-reverse;
    -moz-column-gap: 25px;
         column-gap: 25px;
  }
}
.work-section {
  /* Small heading (shared) */
}
.work-section .item-title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  padding-left: 15px;
  line-height: 1.5;
  letter-spacing: 0;
  position: relative;
}
@media (min-width: 768px) {
  .work-section .item-title {
    font-size: 24px;
  }
}
.work-section .item-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 29px; /* One line height */
  background: var(--green, #016f3f);
}
@media (min-width: 768px) {
  .work-section .item-title::before {
    height: 35px;
  }
}
.work-section {
  /* Image Area (Moved below title) */
}
.work-section .image-area {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 30px;
  flex: 0 0 50%;
}
.work-section .image-area img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.6s ease;
}
.work-section {
  /* Content Layout */
}
.work-section__content {
  display: block;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.work-section__content .text-area {
  width: 100%;
}
.work-section__content .text-area .intro {
  margin-bottom: 20px;
  line-height: 1.625;
  font-size: 16px;
  letter-spacing: 0;
}
.work-section__content .text-area .intro-sub {
  margin-bottom: 20px;
}
/* 1. Pharmacy List */
.work-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}
.work-list__item .item-desc {
  font-size: 16px;
  letter-spacing: 0;
  line-height: 1.625;
}

/* 2. Pharmacist Pill List */
.pill-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-block: 20px;
}
@media (min-width: 768px) {
  .pill-list {
    margin-block: 20px;
  }
}
.pill-list li {
  border: 2px solid var(--green);
  border-radius: 50px;
  padding: 11px 22px 12px;
  background: #fff;
  font-weight: 700;
  color: var(--orange, #ff7d29);
  display: flex;
  align-items: center;
}
.pill-list li .num {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  background: var(--orange, #ff7d29);
  color: #fff;
  border-radius: 50%;
  margin-right: 15px;
  font-size: 14px;
  line-height: 1;
  flex-shrink: 0;
  font-family: var(--font-en, sans-serif);
  padding-top: 1px;
}

/* 3. Clerk Wide List */
/* 3. Clerk Wide List */
.work-section--clerk .wide-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.work-section--clerk .wide-list__item {
  border: 2px solid var(--green, #016f3f);
  border-radius: 20px;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: #fff;
}
@media (min-width: 768px) {
  .work-section--clerk .wide-list__item {
    padding: 20px 30px;
    flex-direction: row;
    align-items: center;
  }
}
.work-section--clerk .wide-list__item .head {
  font-weight: 700;
  color: var(--orange);
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: auto;
  margin-bottom: 5px;
}
@media (min-width: 768px) {
  .work-section--clerk .wide-list__item .head {
    font-size: 24px;
  }
}
.work-section--clerk .wide-list__item .head .num {
  width: 26px;
  height: 26px;
  background: var(--green, #016f3f);
  color: #fff;
  border-radius: 50%;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-right: 12px;
  font-size: 14px;
  font-family: var(--font-en, sans-serif);
  padding-top: 1px;
}
.work-section--clerk .wide-list__item .body {
  font-size: 16px;
  letter-spacing: 0;
  line-height: 1.625;
  flex: 1;
  flex: 0 0 73%;
  margin-left: auto;
}

.work-section--pharmacist .pill-list {
  gap: 10px;
}
@media (min-width: 1024px) {
  .work-section--pharmacist .pill-list li {
    font-size: 24px;
    padding: 14px 30px;
  }
}

.features {
  margin-top: 50px;
  padding-bottom: 80px;
  max-width: 1366px;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .features {
    padding-bottom: 120px;
  }
}
.features__inner {
  padding-inline: 30px;
}
@media (min-width: 1024px) {
  .features__inner {
    padding-inline: unset;
  }
}
.features__title {
  margin-bottom: 30px;
}
.features-section:first-of-type {
  margin-bottom: 50px;
}
@media (min-width: 1024px) {
  .features-section:first-of-type {
    margin-bottom: 80px;
  }
}
.features-section__media {
  position: relative;
}
@media (min-width: 1024px) {
  .features-section__media {
    display: flex;
    flex-direction: row-reverse;
  }
}
.features-section .image-area {
  width: 100%;
  width: calc(100% + 10px);
  transform: translateX(20px);
}
@media (min-width: 1024px) {
  .features-section .image-area {
    width: 100%;
    transform: none;
    flex: 0 0 48.6090775988%;
  }
}
.features-section .image-area img {
  width: 100%;
  height: auto;
  display: block;
}
.features-section.features-section--clerk .image-area {
  transform: translateX(-30px);
}
@media (min-width: 1024px) {
  .features-section.features-section--clerk .image-area {
    width: 100%;
    transform: none;
  }
}
.features-section .features-card {
  margin-top: -30px;
  background: #fff;
  border: 2px solid var(--green);
  border-radius: 20px;
  padding: 20px;
  position: relative;
  z-index: 2;
}
@media (min-width: 1024px) {
  .features-section .features-card {
    margin-left: 13.3967789165%;
    margin-right: -7.3206442167%;
    margin-top: 50px;
    flex: 0 0 45.3879941435%;
    padding: 30px;
  }
}
.features-section .features-card__label {
  font-weight: 700;
  font-size: 20px;
  color: var(--green);
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .features-section .features-card__label {
    font-size: 24px;
  }
}
.features-section .features-card__block + .features-section .features-card__block {
  margin-top: 22px;
}
.features-section .features-card__block:not(:last-of-type) {
  padding-bottom: 20px;
}
.features-section .item-title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
  padding-left: 15px;
  line-height: 1.5;
  letter-spacing: 0;
  position: relative;
  color: var(--orange, #ff7d29);
}
@media (min-width: 1024px) {
  .features-section .item-title {
    font-size: 24px;
  }
}
.features-section .item-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 29px;
  background: var(--green);
}
@media (min-width: 1024px) {
  .features-section .item-title::before {
    height: 35px;
  }
}
.features-section .item-desc {
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .features-section .item-desc {
    font-size: 16px;
  }
}
.features-section .item-desc small {
  display: inline-block;
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.6;
}
/* PCで画像の左右を入れ替える（2つ目：調剤事務） */
@media (min-width: 1024px) {
  .features-section--clerk .features-section__media {
    flex-direction: row;
  }
  .features-section--clerk .features-card {
    margin-left: -7.3206442167%;
    margin-right: 13.3967789165%;
  }
}

/* 1つ目（薬剤師）：カード左 / 画像右 */
/* ============================
   Training Page
   ============================ */
.training {
  margin-top: 50px;
  padding-bottom: 80px;
  max-width: 1366px;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .training {
    padding-bottom: 120px;
  }
}
.training__inner {
  padding-inline: 30px;
}
@media (min-width: 1024px) {
  .training__inner {
    padding-inline: unset;
  }
}
.training__title {
  margin-bottom: 30px;
}
.training__content {
  max-width: 1000px;
  margin-inline: auto;
}
.training__group-photo {
  margin-top: 50px;
  margin-inline: -30px;
}
@media (min-width: 1024px) {
  .training__group-photo {
    margin-top: 30px;
    margin-inline: 0;
  }
}
.training__group-photo img {
  width: 100%;
  height: auto;
  display: block;
}

/* ============================
   Intro Section
   ============================ */
.training-intro {
  margin-bottom: 50px;
}
.training-intro__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 20px;
  padding-left: 15px;
  line-height: 1.5;
  letter-spacing: 0;
  position: relative;
}
@media (min-width: 1024px) {
  .training-intro__title {
    font-size: 24px;
  }
}
.training-intro__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 29px;
  background: var(--green);
}
@media (min-width: 1024px) {
  .training-intro__title::before {
    height: 35px;
  }
}
.training-intro__desc {
  font-size: 16px;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .training-intro__desc {
    font-size: 16px;
  }
}
.training-intro__desc + .training-intro__desc {
  margin-top: 1em;
}
@media (min-width: 1024px) {
  .training-intro__desc + .training-intro__desc {
    margin-top: 30px;
  }
}
.training-intro__accent {
  color: var(--orange);
}

/* ============================
   Timeline (SVG)
   ============================ */
.training-timeline {
  margin-bottom: 50px;
  max-width: 400px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .training-timeline {
    margin-bottom: 70px;
    max-width: 1000px;
    margin-inline: auto;
  }
}
@media (min-width: 1024px) {
  .training-timeline {
    margin-bottom: 120px;
    max-width: 1000px;
    margin-inline: auto;
  }
}
.training-timeline picture {
  display: block;
}
.training-timeline img {
  width: 100%;
  height: auto;
  display: block;
}

/* ============================
   Day Section (SP: 縦積みカード)
   ============================ */
.training-day {
  border: 3px solid var(--green);
  background: #fff;
  border-radius: 20px;
  padding: 20px;
}
@media (min-width: 768px) {
  .training-day {
    padding: 50px 100px;
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    grid-template-areas: "label label" "list  image" "desc  desc";
    -moz-column-gap: 30px;
         column-gap: 30px;
  }
}
@media (min-width: 768px) {
  .training-day:nth-of-type(even) {
    grid-template-columns: 1.4fr 1fr;
    grid-template-areas: "label label" "image list" "desc  desc";
  }
}
.training-day + .training-day {
  margin-top: 10px;
}
@media (min-width: 768px) {
  .training-day + .training-day {
    margin-top: 30px;
  }
}
.training-day {
  /* ---- ラベル（研修○日目）---- */
}
.training-day__label {
  display: block;
  width: 100%;
  margin: 0 auto 20px;
  background: var(--lightorange);
  font-weight: 700;
  color: #fff;
  text-align: center;
  letter-spacing: 0;
  border-radius: 5px;
}
@media (min-width: 768px) {
  .training-day__label {
    grid-area: label;
    font-size: 24px;
    border-radius: 10px;
    margin-bottom: 30px;
  }
}
.training-day {
  /* ---- 画像 ---- */
}
.training-day__image {
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .training-day__image {
    grid-area: image;
    margin-bottom: 0;
    align-self: start;
  }
}
.training-day__image img {
  width: 100%;
  height: auto;
  display: block;
}
.training-day {
  /* ---- 三角リスト ---- */
}
.training-day__list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}
@media (min-width: 768px) {
  .training-day__list {
    grid-area: list;
    margin-bottom: 0;
    align-self: start;
  }
}
.training-day__list li {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0;
  padding-left: 20px;
  position: relative;
}
@media (min-width: 768px) {
  .training-day__list li {
    font-size: 20px;
  }
}
.training-day__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7px 0 7px 11px;
  border-color: transparent transparent transparent var(--lightorange);
}
@media (min-width: 768px) {
  .training-day__list li::before {
    border-width: 8px 0 8px 13px;
    top: 10px;
  }
}
.training-day {
  /* ---- 説明テキスト ---- */
}
.training-day__desc {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: -0.05em;
}
@media (min-width: 768px) {
  .training-day__desc {
    grid-area: desc;
    margin-top: 20px;
  }
}
.training-day__desc p + p {
  margin-top: 1em;
}
.training-day {
  /* ---- オレンジアクセント ---- */
}
.training-day__accent {
  color: var(--orange);
}

/* ============================
   Interview Detail Page
   ============================ */
.interview {
  margin-top: 50px;
  padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .interview {
    margin-top: 50px;
    padding-bottom: unset;
  }
}
.interview__inner {
  padding-inline: 30px;
  max-width: 1060px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .interview__inner {
    padding-inline: 30px;
  }
}
@media (min-width: 1024px) {
  .interview__inner {
    margin-top: 200px;
  }
}
.interview__heading {
  margin-bottom: 30px;
}
/* ============================
   Profile Section
   写真に黄色カードが重なるレイアウト
   ============================ */
.interview-profile {
  position: relative;
  margin-bottom: 50px;
  max-width: 1366px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .interview-profile {
    margin-bottom: 120px;
  }
}
.interview-profile__photo {
  position: relative;
  overflow: hidden;
  width: 86.6666666667vw;
  margin-left: auto;
}
@media (min-width: 1024px) {
  .interview-profile__photo {
    width: 79.2825768668vw;
    max-width: 1083px;
  }
}
.interview-profile__photo img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 325/280;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (min-width: 1024px) {
  .interview-profile__photo img {
    aspect-ratio: 3/2;
  }
}
.interview-profile {
  /* 黄色プロフィールカード（写真に重なる） */
}
.interview-profile__card {
  background: #ffe63d;
  padding: 20px;
  margin-top: -20px;
  margin-inline: 30px;
  position: relative;
  z-index: 1;
  width: 66.6666666667vw;
}
@media (min-width: 1024px) {
  .interview-profile__card {
    width: 414px;
    padding: 30px;
    margin-inline: 183px;
    position: absolute;
    left: 0;
    bottom: -95px;
  }
}
.interview-profile__name {
  margin-bottom: 3px;
}
.interview-profile__name-main {
  font-size: 20px;
}
@media (min-width: 1024px) {
  .interview-profile__name-main {
    font-size: 25px;
  }
}
.interview-profile__name-sub {
  font-size: 14px;
  font-weight: 400;
  margin-left: 3px;
}
.interview-profile__meta {
  font-size: 14px;
  margin-bottom: 10px;
}
@media (min-width: 1024px) {
  .interview-profile__meta {
    font-size: 14px;
    margin-bottom: 12px;
  }
}
.interview-profile__desc {
  font-size: 16px;
  line-height: 1.7;
  letter-spacing: 0;
}
/* ============================
   Interview Section (Q&A blocks)
   ============================ */
.interview-section {
  display: flex;
  flex-direction: column;
}
.interview-section:not(:last-child) {
  margin-bottom: 80px;
}
@media (min-width: 1024px) {
  .interview-section {
    margin-bottom: 120px;
  }
}
.interview-section {
  /* lg: ブロックフロー + float で画像横テキスト→画像下は全幅 */
}
@media (min-width: 1024px) {
  .interview-section {
    display: block;
  }
  .interview-section::after {
    content: "";
    display: table;
    clear: both;
  }
}
.interview-section__title {
  margin-bottom: 20px;
  order: -2;
}
@media (min-width: 768px) {
  .interview-section__title {
    margin-bottom: 30px;
  }
}
.interview-section__image {
  margin: 25px 0;
  overflow: hidden;
  order: -1;
}
@media (min-width: 768px) {
  .interview-section__image {
    order: unset;
    margin: 30px 0;
  }
}
@media (min-width: 1024px) {
  .interview-section__image {
    float: right;
    width: 490px;
    margin: 0 0 10px 10px;
    order: unset;
  }
}
.interview-section__image img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 315/220;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (min-width: 1024px) {
  .interview-section__image img {
    aspect-ratio: 490/320;
  }
}

/* ============================
   Q&A Item
   ============================ */
.interview-qa {
  margin-bottom: 25px;
}
.interview-qa:last-child {
  margin-bottom: 0;
}
.interview-qa__question {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 20px;
  padding-left: 15px;
  position: relative;
  color: var(--text);
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .interview-qa__question {
    font-size: 24px;
  }
}
.interview-qa__question {
  /* オレンジ左線（1行目のみ） */
}
.interview-qa__question::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  height: 29px;
  width: 5px;
  background: var(--green);
}
@media (min-width: 1024px) {
  .interview-qa__question::before {
    height: 35px;
  }
}
.interview-qa__answer {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0;
}
.interview-qa__answer p + p {
  margin-top: 0.8em;
}

/* ============================================
   Interview Archive (Added)
============================================ */
.p-interview-archive {
  padding-top: 50px;
  padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .p-interview-archive {
    padding-top: 80px;
    padding-bottom: 120px;
  }
}
.p-interview-archive .interview-card__image img {
  aspect-ratio: 315/220;
}
@media (min-width: 1024px) {
  .p-interview-archive .interview-card__image img {
    aspect-ratio: 485/339;
  }
}
.p-interview-archive .interview-card__image img {
  -o-object-fit: cover;
     object-fit: cover;
}

.interview-archive__section {
  position: relative;
}

.interview-archive__inner {
  max-width: 1060px !important;
  margin-inline: auto;
  padding-inline: 30px;
}

/* List */
.interview-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px 24px;
}
@media (min-width: 768px) {
  .interview-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 120px 30px;
  }
}

.interview-list__item {
  /* アニメーション削除 */
}

/* Card */
.interview-card {
  display: block;
  text-decoration: none;
  color: #333;
}

/* 店舗名・部署名 */
.interview-card__location {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 20px;
  padding-left: 10px;
  border-left: 5px solid var(--green);
  white-space: nowrap;
}
@media (min-width: 1024px) {
  .interview-card__location {
    font-size: 24px;
    margin-bottom: 21px;
    padding-left: 10px;
    border-left-width: 5px;
  }
}

/* 画像ラッパー */
.interview-card__wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* 画像 */
.interview-card__image {
  width: 100%;
  /* aspect-ratio なし */
  overflow: hidden; /* 親ラッパーでも設定されているが念の為 */
}
.interview-card__image img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  transition: transform 0.3s ease;
}

.interview-card:hover .interview-card__image img {
  transform: scale(1.1);
}

/* コンテンツ（名前・メタ）オーバーレイ */
.interview-card__content {
  position: absolute;
  bottom: 10px;
  left: 0;
  background-color: #fff;
  padding: 5px 34px 5px 10px;
}
.interview-card__name {
  font-size: 20px;
  line-height: 1.4;
  margin-bottom: 2px;
}
.interview-card__name .unit {
  font-size: 16px;
  font-weight: normal;
}
.interview-card__meta {
  font-size: 14px;
  line-height: 1.4;
}
/* 矢印アイコン */
.interview-card__arrow {
  position: absolute;
  bottom: 5px;
  right: 5px;
  width: 34px;
  height: 34px;
  background-color: var(--lightorange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s;
  border: 2px solid white;
}
@media (min-width: 768px) {
  .interview-card__arrow {
    width: 46px;
    height: 46px;
    bottom: 20px;
    right: 20px;
  }
}
.interview-card__arrow img {
  width: 21px;
  height: auto;
}
.interview-card:hover .interview-card__arrow {
  /* transform: translateX(5px); を削除（ホバーで動かさない） */
}

@media (min-width: 1024px) {
  .page__wrapper--conversation .page-hero__title-main {
    font-size: 24px;
  }
}
@media (min-width: 1200px) {
  .page__wrapper--conversation .page-hero__title-main {
    font-size: 35px;
  }
}
@media (min-width: 1300px) {
  .page__wrapper--conversation .page-hero__title-main {
    font-size: 50px;
  }
}
.page__wrapper--conversation::before, .page__wrapper--conversation::after {
  z-index: 2;
}

/* Conversation Page Styles */
.conversation {
  padding-bottom: 80px;
  padding-top: 50px;
}
@media (min-width: 768px) {
  .conversation {
    padding-bottom: 120px;
  }
}
.conversation {
  /* Hero Section */
}
.conversation__hero {
  width: 100%;
  margin-bottom: 80px;
  position: relative;
  z-index: 10;
}
@media (min-width: 1024px) {
  .conversation__hero {
    margin-bottom: 120px;
  }
}
.conversation__hero-inner {
  position: relative;
  width: 100%;
  max-width: 1366px;
  margin: 0 auto;
  z-index: 30;
}
.conversation__hero picture {
  margin-right: min(13.3333333333vw, 283px);
  display: block;
}
@media (min-width: 768px) {
  .conversation__hero picture {
    margin-right: min(20.7174231332vw, 283px);
  }
}
.conversation__hero img {
  width: 100%;
  height: auto;
  display: block;
}
.conversation__hero-text {
  padding: 20px;
  background: var(--lightyellow);
  font-size: 16px;
  margin: -30px 30px 0;
  position: relative;
  line-height: 1.625;
  z-index: 2;
}
@media (min-width: 768px) {
  .conversation__hero-text {
    max-width: 1000px;
    padding: 30px;
    font-size: 24px;
    font-weight: 700;
  }
}
@media (min-width: 1024px) {
  .conversation__hero-text {
    margin-inline: auto;
  }
}
.conversation__hero-text .conversation__hero-members {
  margin-top: 10px;
  font-weight: 500;
}
@media (min-width: 768px) {
  .conversation__hero-text .conversation__hero-members {
    margin-top: 20px;
    display: flex;
    gap: 25px;
    align-items: center;
  }
}
.conversation__hero-text .conversation__hero-members .members-label {
  font-size: 14px;
}
@media (min-width: 768px) {
  .conversation__hero-text .conversation__hero-members .members-label {
    font-size: 16px;
  }
}
.conversation__hero-text .conversation__hero-members .members-name {
  font-size: 20px;
  line-height: 1.6;
  font-feature-settings: "palt";
}
@media (min-width: 768px) {
  .conversation__hero-text .conversation__hero-members .members-name {
    font-size: 25px;
  }
  .conversation__hero-text .conversation__hero-members .members-name br {
    display: none;
  }
}
.conversation__hero-text .conversation__hero-members .members-name small {
  font-size: 14px;
}
@media (min-width: 768px) {
  .conversation__hero-text .conversation__hero-members .members-name small {
    font-size: 16px;
  }
}
.conversation__inner {
  padding: 0 30px;
  max-width: 1060px;
  margin: 0 auto;
}
.conversation {
  /* List of Items */
}
.conversation__list {
  display: flex;
  flex-direction: column;
  gap: 50px;
}
.conversation {
  /* Individual Item */
}
.conversation__item-header {
  background-color: #ff914a;
  border-bottom: none;
  padding: 0 20px 14px;
  border-radius: 10px;
  text-align: center;
  position: relative;
}
@media (min-width: 1024px) {
  .conversation__item-header {
    padding: 0 40px;
    max-width: 1000px;
    height: 153px;
    margin-inline: auto;
  }
}
.conversation__item-header .header-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 2;
  width: 100%;
  height: 100%;
}
@media (min-width: 1024px) {
  .conversation__item-header .header-inner {
    flex-direction: row;
    justify-content: center;
    align-items: center;
  }
}
.conversation__item-header .header-inner {
  /* Accordion Trigger */
  cursor: pointer;
}
.conversation__item-header .number-img {
  width: 100px;
  height: auto;
  margin-bottom: 18px;
}
@media (min-width: 1024px) {
  .conversation__item-header .number-img {
    width: 131px;
    margin-bottom: 0;
    position: absolute;
    left: 20px; /* Parent has 40px padding? Wait, header has padding: 0 40px. Inner is inside. Left: 0 on Inner starts at 40px from edge. User said "left 40px from left". If Inner is width 100% minus padding... */
    /* Best to make header relative and allow inner to span full or position relative to header. */
    /* Let's adjust left position. If Header has padding: 0 40px, then Inner starts at 40px. So Left: 0 relative to Inner is 40px from screen/header edge. */
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }
}
.conversation__item-header .number-img img {
  width: 100%;
  height: auto;
}
.conversation__item-header .title-wrapper {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 28px;
  z-index: 1;
}
@media (min-width: 1024px) {
  .conversation__item-header .title-wrapper {
    margin-bottom: 0;
  }
}
.conversation__item-header .title-wrapper .title span {
  display: inline-block;
}
.conversation__item-header .decoration {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: auto;
  z-index: -1;
  opacity: 0.8;
}
@media (min-width: 1024px) {
  .conversation__item-header .decoration {
    width: 130px;
  }
}
.conversation__item-header .decoration img {
  width: 100%;
}
.conversation__item-header .title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.4;
  /* margin-bottom: 28px; - Removed, moved to wrapper */
}
@media (min-width: 1024px) {
  .conversation__item-header .title {
    font-size: 36px;
    /* margin-bottom: 0; - Removed */
  }
}
.conversation__item-header .arrow-icon {
  width: 28px;
  margin-top: 10px;
  transition: transform 0.3s ease;
  transform: rotate(180deg); /* 閉じた時は下向き */
}
@media (min-width: 1024px) {
  .conversation__item-header .arrow-icon {
    width: 31px;
    margin-top: 0;
    margin-left: 0;
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%) rotate(180deg); /* 閉じた時は下向き */
  }
}
.conversation__item-header .arrow-icon img {
  width: 100%;
}
.conversation__item {
  /* Accordion Open State */
}
.conversation__item.is-open .conversation__item-header .arrow-icon {
  transform: rotate(0deg); /* 開いた時は上向きに戻る */
}
@media (min-width: 1024px) {
  .conversation__item.is-open .conversation__item-header .arrow-icon {
    transform: translateX(-50%) rotate(0deg); /* 開いた時は上向きに戻る */
  }
}
.conversation__item.is-open .conversation__item-body {
  opacity: 1;
}
.conversation__item-body {
  /* Accordion Hidden State */
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease-out, opacity 0.3s ease-out;
  opacity: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (min-width: 768px) {
  .conversation__item-body {
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
  }
}
.conversation__item {
  /* Alternating Layout for PC */
}
@media (min-width: 768px) {
  .conversation__item:nth-child(even) .conversation__item-body {
    flex-direction: row-reverse;
  }
}
.conversation__item:nth-child(even) .conversation__item-header {
  background-color: #ff7d29;
}
.conversation__item {
  /* SP Layout Adjustment: Image Last */
}
.conversation__item--01 .conversation__highlight-inner, .conversation__item--03 .conversation__highlight-inner, .conversation__item--04 .conversation__highlight-inner, .conversation__item--05 .conversation__highlight-inner, .conversation__item--07 .conversation__highlight-inner, .conversation__item--08 .conversation__highlight-inner {
  flex-direction: column-reverse;
}
@media (min-width: 768px) {
  .conversation__item--01 .conversation__highlight-inner, .conversation__item--03 .conversation__highlight-inner, .conversation__item--04 .conversation__highlight-inner, .conversation__item--05 .conversation__highlight-inner, .conversation__item--07 .conversation__highlight-inner, .conversation__item--08 .conversation__highlight-inner {
    flex-direction: row-reverse;
  }
}
.conversation__item {
  /* Updated Text / Speech Container */
}
.conversation__item-text,
.conversation__item .conversation__speech {
  line-height: 1.8;
  color: var(--text);
  padding-top: 30px;
}
@media (min-width: 1024px) {
  .conversation__item-text,
  .conversation__item .conversation__speech {
    flex: 1;
    font-size: 16px;
    padding-top: 50px;
  }
}
.conversation__item {
  /* Speech Specific Styles */
}
.conversation__item .conversation__speech {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.conversation__item .conversation__speech .speech-row {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  position: relative;
  /* Alternating Colors */
}
.conversation__item .conversation__speech .speech-row .speech-name.g {
  color: var(--green);
}
.conversation__item .conversation__speech .speech-row .speech-name.o {
  color: var(--orange);
}
.conversation__item .conversation__speech .speech-name {
  font-weight: 700;
  font-feature-settings: "palt";
  white-space: nowrap;
  flex-shrink: 0;
}
.conversation__item .conversation__speech .speech-text {
  letter-spacing: 0;
  width: 100%;
}
.conversation__item-image {
  width: 100%;
  overflow: hidden;
  z-index: 10;
}
@media (min-width: 768px) {
  .conversation__item-image {
    width: 341px;
    flex-shrink: 0;
    margin-top: 0;
  }
}
.conversation__item-image img {
  width: 100%;
  height: auto;
  display: block;
}
.conversation {
  /* Ending Section */
}
.conversation__end {
  margin-top: 50px;
  background: #feffd2; /* Keeping as hex if no var, or use lightyellow if appropriate? Using hex for now as it's specific */
  padding: 80px 30px 20px;
  text-align: center;
}
@media (min-width: 1024px) {
  .conversation__end {
    padding-top: 44px;
    margin-top: 126px;
    padding-bottom: 56px;
    /* max-width removed to allow full-width background */
  }
}
@media (min-width: 1024px) {
  .conversation__end-inner {
    max-width: 1000px;
    margin-inline: auto;
  }
}
.conversation__end-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--orange);
  margin-bottom: 30px;
  line-height: 1.5;
  /* Background Image */
  background-image: url("./img/common/logo/title_sankaku.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 66px auto;
  /* Centering text */
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px; /* Adjust for SP */
  padding-bottom: 10px;
}
@media (min-width: 768px) {
  .conversation__end-title {
    font-size: 28px;
    min-height: 120px; /* Adjust for Tablet */
  }
}
@media (min-width: 1024px) {
  .conversation__end-title {
    font-size: 36px;
    min-height: 140px; /* Adjust for PC */
    background-size: 130px auto;
  }
}
@media (min-width: 1024px) {
  .conversation__end-title .u-mobile {
    display: none;
  }
}
.conversation__end-list {
  text-align: left;
}
.conversation__end-list dl.end-message-row {
  display: flex;
  align-items: flex-start;
  gap: 1em;
  margin-bottom: 20px;
  line-height: 1.8;
}
.conversation__end-list dl.end-message-row:last-of-type {
  margin-bottom: 0;
}
.conversation__end-list dl.end-message-row dt.speech-name {
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}
.conversation__end-list dl.end-message-row dt.speech-name.g {
  color: var(--green);
}
.conversation__end-list dl.end-message-row dt.speech-name.o {
  color: var(--orange);
}
.conversation__end-list dl.end-message-row dd.speech-text {
  margin: 0;
  color: var(--text);
}
.conversation__end-image {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 0;
}
.conversation__end-image img {
  width: 100%;
  height: auto;
}
.conversation__end-message-box {
  background: #fff;
  border: 2px solid var(--green);
  border-radius: 20px;
  padding: 30px 20px;
  text-align: center;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  margin-inline: 30px;
  margin-top: -40px;
  position: relative;
  padding: 15px 26px;
  letter-spacing: 0;
  z-index: 10;
}
@media (min-width: 768px) {
  .conversation__end-message-box {
    padding: 30px;
  }
  .conversation__end-message-box br {
    display: none;
  }
}
@media (min-width: 1024px) {
  .conversation__end-message-box {
    font-size: 24px;
    margin-inline: unset;
  }
}
.conversation__btn-wrapper {
  margin-top: 30px;
}
.conversation__highlight-inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (min-width: 768px) {
  .conversation__highlight-inner {
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: 26px;
  }
}
.conversation__highlight-speech {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.conversation__greet {
  position: relative;
  z-index: 10;
  margin-top: 110px;
}
@media (min-width: 1024px) {
  .conversation__greet {
    max-width: 1000px;
    margin-inline: auto;
  }
}

/* =========================================
   Entry Page
   ========================================= */
@media (min-width: 1024px) {
  .entry {
    padding-bottom: unset;
  }
}
.entry__inner {
  max-width: 1060px; /* Constrain width for better readability and nav layout */
  margin: 0 auto;
  padding-inline: 30px;
}

/* -----------------------------------------
   Job Navigation (Vertical List)
   ----------------------------------------- */
.entry-nav {
  margin-bottom: 50px;
  position: relative;
  z-index: 10;
  max-width: 830px;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .entry-nav {
    margin-bottom: 120px;
  }
}

.entry-nav-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* max-width is for SP/Tablet centered look if needed, but for PC we need width */
  max-width: 600px;
  margin: 0 auto;
  margin-left: 0;
  margin-top: 50px;
}
@media (min-width: 768px) {
  .entry-nav-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px 40px; /* row-gap col-gap */
    max-width: 100%;
  }
}
.entry-nav-list__item {
  width: 100%;
  /* Optional: flex-grow if we want them to fill lines? User said "stretch if text is long", 
     which implies auto width based on text. */
}
@media (min-width: 768px) {
  .entry-nav-list__item {
    /* 2 columns on Tablet (md) */
    width: auto;
    min-width: calc((100% - 40px) / 2); /* gap 40px */
    flex: 0 1 auto;
  }
}
@media (min-width: 1024px) {
  .entry-nav-list__item {
    /* 3 columns on Desktop (lg) */
    min-width: calc((100% - 80px) / 3); /* gap 40px * 2 */
  }
}
.entry-nav-list__link {
  display: flex;
  align-items: center;
  text-decoration: none;
  transition: all 0.3s ease;
}
.entry-nav-list__link:hover {
  opacity: 1;
}
.entry-nav-list__link:hover .text {
  color: var(--orange);
}
.entry-nav-list__link {
  /* Icon Styling */
}
.entry-nav-list__link .icon-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 2px solid #fff;
  background-color: var(--lightorange);
  border-radius: 50%;
  margin-right: 10px;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .entry-nav-list__link .icon-arrow {
    width: 40px;
    height: 40px;
  }
}
.entry-nav-list__link .icon-arrow::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  margin-left: -2px; /* Visual center adjustment */
}
.entry-nav-list__link .text {
  font-size: 16px;
  font-weight: 700;
  transition: color 0.3s ease;
  white-space: nowrap;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .entry-nav-list__link .text {
    font-size: 18px;
  }
}
@media (min-width: 1024px) {
  .entry-nav-list__link .text {
    font-size: 20px;
  }
}

/* -----------------------------------------
   Job Sections
   ----------------------------------------- */
.entry-section {
  margin-bottom: 80px;
  scroll-margin-top: 100px; /* Offset for sticky header */
}
@media (min-width: 1024px) {
  .entry-section {
    margin-bottom: 120px;
  }
}
.entry-section {
  /* Target Clerk sections for specific styling */
}
.entry-section[id^=clerk-] .entry-card--border {
  border-color: var(--green);
}
.entry-section[id^=clerk-] .entry-list {
  border-top-color: var(--green);
}
.entry-section[id^=clerk-] .entry-list__row dt {
  background-color: rgba(1, 111, 63, 0.1); /* Green 10% */
}
.entry-section__title {
  text-align: center;
  margin-bottom: 30px;
}

/* -----------------------------------------
   Entry Card / List
   ----------------------------------------- */
.entry-card {
  background: transparent;
}
.entry-card__footer {
  margin-top: 20px;
  text-align: center;
}
@media (min-width: 768px) {
  .entry-card__footer {
    margin-top: 50px;
  }
}

.entry-list {
  border-top: 3px solid var(--orange);
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
}
.entry-list__row {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .entry-list__row {
    flex-direction: row;
  }
  .entry-list__row:not(:last-child) {
    margin-bottom: 10px;
  }
}
.entry-list__row dt {
  background-color: rgba(255, 145, 74, 0.3); /* Orange 30% */
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 768px) {
  .entry-list__row dt {
    width: 160px; /* Fixed width */
    height: auto;
    padding: 14px;
  }
}
.entry-list__row dd {
  background-color: #fff;
  padding: 10px 0;
  flex: 1;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .entry-list__row dd {
    font-size: 16px;
    margin-left: 30px;
  }
}

/* -----------------------------------------
   Campaign Section
   ----------------------------------------- */
.entry-campaign {
  margin-bottom: 80px;
}
@media (min-width: 1024px) {
  .entry-campaign {
    margin-bottom: 120px;
  }
}
.entry-campaign__inner {
  background-color: #feffd2; /* Light yellow/cream */
  border-radius: 20px;
  padding: 25px 0;
  text-align: center;
  max-width: 830px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .entry-campaign__inner {
    padding: 20px 0;
  }
}
.entry-campaign__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--orange);
  margin-bottom: 10px;
  line-height: 1.3;
}
@media (min-width: 768px) {
  .entry-campaign__title {
    font-size: 24px;
  }
}
.entry-campaign__note {
  font-size: 14px;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .entry-campaign__note br.sp-only {
    display: none;
  }
}

/* -----------------------------------------
   Contact Info Section
   ----------------------------------------- */
/* -----------------------------------------
   Contact Info Section
   ----------------------------------------- */
.entry-contact {
  margin-bottom: 100px;
  scroll-margin-top: 100px; /* Offset for sticky header */
}
.entry-contact__inner {
  max-width: 600px;
  margin: 0 auto;
  /* Remove border and background for clean look */
  /* border: 1px solid #7cbcf6; */
  /* background-color: #fff; */
  /* border-radius: 5px; */
}
.entry-contact__title {
  /* Styles largely handled by .c-title-sankaku */
  margin-bottom: 20px;
}
.entry-contact__body {
  /* Center the text block visually by constraining width or padding if needed */
  text-align: left;
  max-width: -moz-fit-content;
  max-width: fit-content; /* Constrain width to keep text block compact */
  margin: 0 auto;
}
.entry-contact__row {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .entry-contact__row {
    font-size: 20px;
  }
}
.entry-contact__row:last-child {
  margin-bottom: 0;
}
.entry-contact__note {
  margin-top: 20px;
  font-size: 14px;
}
@media (min-width: 768px) {
  .entry-contact__note {
    text-align: center;
  }
}

/* -----------------------------------------
   Pharmacist New Grad / Specific Table Styles
   ----------------------------------------- */
/* Card with orange border */
.entry-card--border {
  border: 2px solid var(--orange);
  border-radius: 20px;
  background-color: #fff;
  padding: 20px;
  overflow: hidden;
  max-width: 1000px;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .entry-card--border {
    padding: 50px 100px;
  }
}
.entry-card--border {
  /* When inside bordered card, list styles might need tweak */
}
.entry-card--border .entry-list {
  box-shadow: none;
  border-top: none; /* Remove top border if inside card */
}
/* Specific button text size adjustment */
.c-btn--orange {
  /* SP: 220px width, allow wrap */
  width: 220px;
  min-height: 60px;
  background-color: var(--lightorange);
  color: #fff;
  border: 2px solid var(--lightorange);
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-weight: 700;
  border-radius: 50px; /* Pillow shape as seen in nav */
  line-height: 1.3;
  font-size: 15px;
  letter-spacing: 0.09em;
  text-align: center;
}
.c-btn--orange:hover {
  background-color: #fff;
  color: var(--lightorange);
}
@media (min-width: 768px) {
  .c-btn--orange {
    width: 360px;
    height: 80px;
  }
}
@media (min-width: 1024px) {
  .c-btn--orange {
    width: 400px;
    height: 60px;
    white-space: nowrap;
    padding: 0;
  }
  .c-btn--orange br.sp-only {
    display: none;
  }
}

/* Note style inside dd */
.note {
  font-size: 13px;
  display: block;
  margin-top: 5px;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .note {
    font-size: 14px;
  }
}

/* -----------------------------------------
   Internship Section
   ----------------------------------------- */
.entry-text-center {
  line-height: 1.8;
  margin-bottom: 30px;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .entry-text-center br {
    display: none;
  }
}

/* Specific fix for Internship Title Break */
@media (min-width: 1024px) {
  #internship .c-title-sankaku br {
    display: none;
  }
}

/* PC Only Line Break */
br.u-br-pc {
  display: none;
}
@media (min-width: 768px) {
  br.u-br-pc {
    display: block;
  }
}

/* =========================================
   Recruit Archive
   ========================================= */
.p-recruit__in {
  max-width: 1060px;
  margin: 0 auto;
  padding-inline: 30px;
}
.p-recruit {
  /* Override entry-nav to be responsive: 1 col (SP), 2 cols (MD), 3 cols (LG) */
}
.p-recruit .entry-nav-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 50px;
}
@media (min-width: 768px) {
  .p-recruit .entry-nav-list {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px 40px;
  }
}
.p-recruit .entry-nav-list__item {
  width: 100%;
}
@media (min-width: 768px) {
  .p-recruit .entry-nav-list__item {
    width: auto;
    min-width: calc((100% - 40px) / 2); /* 2 columns */
    flex: 0 1 auto;
  }
}
@media (min-width: 1024px) {
  .p-recruit .entry-nav-list__item {
    min-width: calc((100% - 80px) / 3); /* 3 columns */
  }
}

/* -----------------------------------------
   Area Sections
   ----------------------------------------- */
.p-recruit-area {
  margin-bottom: 80px;
  scroll-margin-top: 100px; /* Offset for sticky header */
}
@media (min-width: 1024px) {
  .p-recruit-area {
    margin-bottom: 154px;
    scroll-margin-top: 140px; /* PC offset */
  }
}
.p-recruit-area {
  /* Area Title (e.g. 仙台市太白区エリア) */
}
.p-recruit-area__title {
  text-align: center;
  margin-bottom: 45px;
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: var(--orange);
}
@media (min-width: 1024px) {
  .p-recruit-area__title {
    font-size: 36px;
    margin-bottom: 66px;
  }
}
.p-recruit-area__title {
  /* Background graphic (sankaku/triangle/orange decoration) */
}
.p-recruit-area__title::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* slightly offset to match design */
  width: 66px;
  height: 62px;
  background-image: url("./img/common/logo/title_sankaku.svg"); /* Triangle Illustration */
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 10;
  opacity: 1; /* Match design visibility */
}
@media (min-width: 1024px) {
  .p-recruit-area__title::before {
    width: 130px;
    height: 122px;
  }
}
.p-recruit-area__list {
  display: flex;
  flex-direction: column;
  gap: 50px; /* Increased gap between stores */
  background-color: transparent; /* Background moved to card body */
  border-radius: 0;
  padding: 0;
}
@media (min-width: 1024px) {
  .p-recruit-area__list {
    gap: 35px;
  }
}
.p-recruit-area__empty {
  text-align: center;
  font-size: 16px;
}

/* -----------------------------------------
   Recruit Card (Store Information)
   ----------------------------------------- */
.p-recruit-card {
  /* Background moved to card body */
  /* border-radius: 20px; */
  /* padding: 30px 20px; */
  /* @media (min-width: $bp-lg) {
      padding: 40px 50px;
  } */
  /* Store Name with green left border */
}
.p-recruit-card__name {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 30px;
  border-left: 5px solid var(--green); /* Green primary color */
  line-height: 1.4;
  padding-left: 15px;
}
@media (min-width: 768px) {
  .p-recruit-card__name {
    font-size: 24px;
    line-height: 1.5;
  }
}
.p-recruit-card {
  /* Yellow background box starting BELOW the name, limited to 800px wide */
}
.p-recruit-card__body {
  background-color: #feffd2;
  border-radius: 20px;
  padding: 20px 15px; /* Reduced side padding for better mobile space */
  max-width: 1000px;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  .p-recruit-card__body {
    padding: 50px 100px; /* Reduced side padding for better mobile space */
  }
}
.p-recruit-card {
  /* Grid/Flex layout for responsive columns */
}
.p-recruit-card__grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (min-width: 1024px) {
  .p-recruit-card__grid {
    flex-direction: row;
    justify-content: space-between;
    gap: 6.25%; /* 50px / 800px */
  }
}
@media (min-width: 1024px) {
  .p-recruit-card__left {
    width: 50%; /* 400px / 800px */
    flex-shrink: 0;
  }
}
@media (min-width: 1024px) {
  .p-recruit-card__right {
    width: 43.75%; /* 350px / 800px */
    flex-shrink: 0;
  }
}
.p-recruit-card__image {
  margin-bottom: 20px;
}
.p-recruit-card__image img {
  width: 100%;
  height: auto;
  aspect-ratio: 768/524; /* 画像部分のみにアスペクト比を適用 */
  -o-object-fit: cover;
     object-fit: cover;
}
.p-recruit-card__jobs {
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .p-recruit-card__jobs {
    -moz-column-gap: 30px;
         column-gap: 30px;
    margin-bottom: 10px;
  }
}
.p-recruit-card__job {
  font-weight: 700;
  font-size: 20px;
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .p-recruit-card__job {
    margin-bottom: 0;
  }
}
.p-recruit-card__address {
  line-height: 1.6;
  font-size: 16px;
}
@media (min-width: 768px) {
  .p-recruit-card__address {
    font-size: 14px;
  }
}
.p-recruit-card__access {
  font-weight: 500;
  margin-bottom: 10px;
  font-size: 16px;
  line-height: 1.8;
}
.p-recruit-card__access-label {
  font-weight: 700;
  font-size: 20px;
  margin-bottom: 10px;
}
.p-recruit-card__map {
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  .p-recruit-card__map {
    margin-bottom: 10px;
  }
}
.p-recruit-card__map iframe {
  width: 100%;
  aspect-ratio: 275/160;
  display: block;
  height: auto;
}
.p-recruit-card__buttons {
  display: flex;
  flex-direction: column;
  gap: 15px;
  width: 100%;
  max-width: 400px; /* Match left column width */
  margin-inline: auto;
  margin-bottom: 20px;
}
@media (min-width: 1024px) {
  .p-recruit-card__buttons {
    flex-direction: row;
    gap: 15px;
    margin-inline: 0;
    max-width: none;
    margin-bottom: unset;
  }
}
.p-recruit-card {
  /* Common Button Base */
}
.p-recruit-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  width: 100%;
  border-radius: 50px;
  height: 60px;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .p-recruit-card__btn {
    font-size: 16px;
  }
}
@media (min-width: 1024px) {
  .p-recruit-card__btn {
    flex: 1;
  }
}
.p-recruit-card {
  /* WEB entry button - Solid Orange */
}
.p-recruit-card__btn--entry {
  background-color: var(--lightorange);
  color: #fff;
  /* No white border added per screenshot. But kept hover logic */
  border: 2px solid var(--lightorange);
}
.p-recruit-card__btn--entry:hover {
  background-color: #fff;
  color: var(--lightorange);
  border-color: var(--lightorange);
}
.p-recruit-card {
  /* Detail button - Outlined Orange with light background */
}
.p-recruit-card__btn--detail {
  background-color: #fff0e6;
  color: var(--lightorange);
  border: 2px solid var(--lightorange);
}
.p-recruit-card__btn--detail:hover {
  background-color: #fff;
  color: var(--lightorange);
}
.p-recruit-card .recruit-card__access-label {
  font-weight: 700;
  font-size: 20px;
  margin-bottom: 10px;
}
@media (min-width: 1024px) {
  .p-recruit-card .recruit-card__address {
    font-size: 16px;
  }
}

/* -----------------------------------------
   Recruit Single Page (single-recruit.php)
   ----------------------------------------- */
.p-recruit-single .entry-nav-list.p-recruit-single__nav-list {
  margin-top: unset;
  align-items: center;
}
.p-recruit-single .entry-nav-list__item.p-recruit-single__nav-item {
  text-align: center;
  display: flex;
  justify-content: center;
}
.p-recruit-single__in {
  max-width: var(--myw);
  margin: 0 auto;
  padding: 50px 30px 100px;
  letter-spacing: 0;
}
@media (min-width: 1024px) {
  .p-recruit-single__in {
    padding: 80px 40px 120px;
  }
}
@media (min-width: 1200px) {
  .p-recruit-single__in {
    padding: 50px 0px 120px;
  }
}
.p-recruit-single__nav {
  margin-bottom: 50px;
  max-width: 800px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .p-recruit-single__nav .p-recruit-single__nav-list {
    justify-content: unset;
  }
}
.p-recruit-single__nav-list {
  justify-content: center;
}
@media (min-width: 1024px) {
  .p-recruit-single .p-recruit-single__nav-list {
    margin-bottom: 120px;
  }
}
.p-recruit-single__content {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (min-width: 1024px) {
  .p-recruit-single__content {
    gap: 120px;
  }
}
@media (min-width: 1024px) {
  .p-recruit-single .p-job-section__title {
    font-size: 36px;
    margin-bottom: 30px;
  }
}
.p-recruit-single__empty {
  text-align: center;
  font-size: 16px;
  padding: 50px 0;
}
.p-recruit-single__footer {
  margin-top: 80px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
}
@media (min-width: 768px) {
  .p-recruit-single__footer {
    flex-direction: row;
    margin-top: 120px;
    justify-content: center;
  }
}
.p-recruit-single__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  width: 100%;
  max-width: 300px;
  border-radius: 50px;
  height: 60px;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.1em;
  transition: all 0.3s ease;
}
.p-recruit-single__btn--entry {
  background-color: var(--lightorange);
  color: #fff;
  border: 2px solid var(--lightorange);
}
.p-recruit-single__btn--entry:hover {
  background-color: #fff;
  color: var(--lightorange);
}
.p-recruit-single__btn--back {
  background-color: transparent;
  color: var(--orange);
  background-color: #fff;
  border: 2px solid var(--orange);
}
.p-recruit-single__btn--back:hover {
  background-color: var(--lightorange);
  color: #fff;
  border-color: var(--lightorange);
}

.p-job-section {
  position: relative;
  scroll-margin-top: 80px;
}
@media (min-width: 1024px) {
  .p-job-section {
    scroll-margin-top: 110px;
  }
}
.p-job-section:first-child {
  padding-top: 0;
}
.p-job-section__title {
  color: var(--orange);
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 30px;
  text-align: center;
}
@media (min-width: 1024px) {
  .p-job-section__title {
    font-size: 32px;
    margin-bottom: 40px;
  }
}
.p-job-section__catch {
  margin-bottom: 50px;
}
.p-job-section__catch ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-job-section__catch ul li {
  position: relative;
  padding-left: 1em;
  margin-bottom: 5px;
  font-weight: 700;
}
@media (min-width: 1024px) {
  .p-job-section__catch ul li {
    font-size: 20px;
  }
}
.p-job-section__catch ul li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: #ff914a;
  font-size: 16px;
}
@media (min-width: 1024px) {
  .p-job-section__catch ul li::before {
    font-size: 20px;
  }
}
.p-job-section__heading-block {
  margin-bottom: 20px;
  margin-top: 50px;
}
.p-job-section__heading {
  font-size: 20px;
  font-weight: 700;
  position: relative;
  padding-left: 15px;
  line-height: 1.4;
}
@media (min-width: 1024px) {
  .p-job-section__heading {
    font-size: 16px;
  }
}
.p-job-section__heading::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 0;
  width: 5px;
  height: 20px;
  background-color: var(--green);
}
.p-job-section__heading .u-show-sp {
  display: block;
}
@media (min-width: 1024px) {
  .p-job-section__heading .u-show-sp {
    display: none;
  }
}
@media (min-width: 1024px) {
  .p-job-section__heading {
    font-size: 24px;
    line-height: 1.7;
  }
  .p-job-section__heading::before {
    top: 5px;
    height: 34px;
  }
}
.p-job-section__desc {
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 40px;
}
@media (min-width: 1024px) {
  .p-job-section__desc {
    font-size: 16px;
  }
}
.p-job-section__recommends {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-bottom: 40px;
}
.p-job-section__table-wrap {
  background-color: #fff; /* デフォルト(奇数)の背景色 */
  border: 2px solid var(--lightorange); /* デフォルトの枠線 */
  border-radius: 20px;
  padding: 20px;
  margin-top: 50px;
}
@media (min-width: 1024px) {
  .p-job-section__table-wrap {
    padding: 50px 100px;
  }
}
.p-job-section__table-wrap {
  /* デフォルト(奇数)の見出し背景色 */
}
.p-job-section__table-wrap .p-req-table th {
  background-color: rgba(255, 145, 74, 0.3);
}
.p-job-section {
  /* 偶数番目のセクションの場合は緑色に変更 */
}
.p-job-section:nth-of-type(even) .p-job-section__table-wrap {
  background-color: #fff;
  border-color: var(--green);
}
.p-job-section:nth-of-type(even) .p-job-section__table-wrap .p-req-table th {
  background-color: #dcefe7;
}

.p-recommend-item__title {
  color: var(--orange);
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 10px;
}
@media (min-width: 1024px) {
  .p-recommend-item__title {
    font-size: 24px;
  }
}
.p-req-table {
  width: 100%;
  border-collapse: collapse;
}
.p-req-table tr {
  display: block;
  margin-bottom: 25px;
}
@media (min-width: 1024px) {
  .p-req-table tr {
    display: flex;
    align-items: stretch;
    gap: 18px;
    margin-bottom: 10px;
  }
}
.p-req-table tr:last-child {
  margin-bottom: 0;
}
.p-req-table tr:last-child td {
  padding-bottom: 0;
}
.p-req-table th,
.p-req-table td {
  display: block;
  width: 100%;
  line-height: 1.6;
}
@media (min-width: 1024px) {
  .p-req-table th,
  .p-req-table td {
    width: auto;
    font-size: 16px;
    padding: 0;
  }
}
.p-req-table th {
  text-align: center;
  padding: 6px 10px;
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 1024px) {
  .p-req-table th {
    width: 180px;
    flex-shrink: 0;
    white-space: nowrap;
    padding: 10px 15px;
    font-size: 16px;
  }
}
.p-req-table td {
  padding: 10px 0 0;
}
@media (min-width: 1024px) {
  .p-req-table td {
    padding: 10px 0 0;
    flex: 1;
  }
}

@media (max-width: 1024px) {
  .page-hero.is-404 .page-hero__title-main {
    font-size: 18px;
  }
}
@media (min-width: 1024px) {
  .page-hero.is-404 .page-hero__title-main {
    font-size: 32px;
  }
}

.p-404 {
  padding-top: 60px;
  padding-bottom: 80px;
}
@media (min-width: 1024px) {
  .p-404 {
    padding-top: 80px;
    padding-bottom: 120px;
  }
}
.p-404__inner {
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
}
.p-404__text {
  line-height: 2;
  margin-bottom: 40px;
  font-size: 15px;
}
@media (min-width: 1024px) {
  .p-404__text {
    margin-bottom: 60px;
    font-size: 16px;
  }
}
.p-404__btn-area {
  display: flex;
  justify-content: center;
}
.p-404__btn-area .c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 240px;
  height: 56px;
  background: var(--orange);
  color: #fff;
  border-radius: 28px;
  text-decoration: none;
  font-weight: 700;
  transition: opacity 0.3s;
}
.p-404__btn-area .c-btn:hover {
  opacity: 0.8;
}/*# sourceMappingURL=style.css.map */