/* philosophy section. Same grid as actbe.co.jp/career (pPhilosophy): 90 columns on phones, 128 on desktop,
   tight tiles with a mono label, a headline and, on the Value tile, a numbered two-column list. */
.pPhilosophy .pPhilosophy__inner {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2rem;
  height: auto !important; min-height: 100vh; min-height: 100dvh;
  padding: calc(var(--header-height-constant) + 4.86svh) var(--padding-wrapper) 10.81svh;
}
.pPhilosophy .pPhilosophy__subtext { display: none; }

/* small mono heading (their cCommonHeadline) with a typing cursor */
.pPhilosophy .cCommonHeadline { display: flex; align-items: center; justify-content: flex-start; }
.pPhilosophy .cCommonHeadline__inner { position: relative; display: flex; align-items: center; justify-content: flex-start; padding-left: 32px; }
.pPhilosophy .cCommonHeadline__inner::before { position: absolute; left: .25rem; content: "/"; font: var(--t-label-14-mono); font-size: 1rem; line-height: 1; }
.pPhilosophy .cCommonHeadline__text { font: var(--t-label-14-mono); font-size: 1rem; line-height: 1; letter-spacing: 0; }
.pPhilosophy .cCommonHeadline__text h2 { margin: 0; font: inherit; letter-spacing: inherit; }
.pPhilosophy .cCommonHeadline__text .-main-text { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
.pPhilosophy .cCommonHeadline__text .-char { display: block; flex-shrink: 0; opacity: var(--init-opacity); }
.pPhilosophy .-slash { flex: 0 0 1px; align-self: stretch; width: 1px; margin-left: 1px; background: currentcolor; animation: pPhilosophy-blink .7s steps(1) infinite; }
@keyframes pPhilosophy-blink { 50% { opacity: 0; } }

/* grid */
.pPhilosophy .pPhilosophy__grid { display: grid; grid-template-columns: repeat(90, 1fr); grid-auto-rows: auto; gap: 2px; width: 100%; height: auto; margin: auto 0; }
.pPhilosophy .pPhilosophy__grid_item { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 2.16svh; opacity: var(--init-opacity); }
.pPhilosophy .pPhilosophy__grid_item_background { position: absolute; inset: 0; z-index: -1; background-color: var(--c-white); border-radius: 4px; }
.pPhilosophy .pPhilosophy__grid_item_type_inner { position: relative; display: flex; align-items: center; justify-content: flex-start; }
.pPhilosophy .pPhilosophy__grid_item_type_text { font: var(--t-label-12-mono); font-size: .625rem; line-height: 1; letter-spacing: 0; color: var(--c-gray); }
.pPhilosophy .pPhilosophy__grid_item_type_text .-main-text { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; }
.pPhilosophy .pPhilosophy__grid_item_type_text .-char { flex-shrink: 0; opacity: var(--init-opacity); }
.pPhilosophy .pPhilosophy__grid_item_headline { display: flex; flex-direction: column; justify-content: space-between; height: 100%; margin-top: min(16px, 2.16svh); }
.pPhilosophy .pPhilosophy__grid_item_headline_main { margin: 0; font: var(--t-heading-24); font-size: min(20px, 2.7svh); line-height: 1; letter-spacing: -.05em; color: var(--c-ink); }
.pPhilosophy .pPhilosophy__grid_item_headline_sub { margin: 8px 0 0; font: var(--t-copy-14); font-size: min(14px, 1.89svh); line-height: 1; letter-spacing: -.05em; color: var(--c-ink); word-break: keep-all; overflow-wrap: anywhere; }
.pPhilosophy .pPhilosophy__grid_item:nth-child(3) .pPhilosophy__grid_item_headline_main,
.pPhilosophy .pPhilosophy__grid_item:nth-child(4) .pPhilosophy__grid_item_headline_main { font-size: min(24px, 3.24svh); }
.pPhilosophy .pPhilosophy__grid_item_value { display: grid; grid-template-columns: 1fr 1fr; gap: 2.16svh; margin: 2.16svh 0 0; padding: 0; list-style: none; counter-reset: value-item; }
.pPhilosophy .pPhilosophy__grid_item_value_text { display: flex; align-items: flex-start; gap: 8px; font: var(--t-copy-14); font-size: min(14px, 1.89svh); line-height: 1.6; letter-spacing: -.05em; color: var(--c-ink); counter-increment: value-item; }
.pPhilosophy .pPhilosophy__grid_item_value_text_inner { margin: auto 0; }
.pPhilosophy .pPhilosophy__grid_item_value_text::before { content: counter(value-item, decimal-leading-zero); flex-shrink: 0; margin-top: -.5em; font: var(--t-label-12-mono); font-size: 10px; letter-spacing: 0; color: var(--c-gray); }
.pPhilosophy .pPhilosophy__grid_item[data-type="Mission"] { grid-column: 1 / 46; }
.pPhilosophy .pPhilosophy__grid_item[data-type="Vision"] { grid-column: 46 / 91; }
.pPhilosophy .pPhilosophy__grid_item[data-type="Value"] { grid-column: 1 / 91; }
.pPhilosophy .pPhilosophy__grid_item[data-type="Principle"] { grid-column: 1 / -1; }
.pPhilosophy .pPhilosophy__grid_item[data-type="Principle"] .pPhilosophy__grid_item_headline_main { font-weight: 500; }
.pPhilosophy .pPhilosophy__grid_item_paragraph { margin-top: 16px; }
.pPhilosophy .pPhilosophy__grid_item_paragraph_text { margin: 0; font: var(--t-copy-14); font-size: min(14px, 1.89svh); color: var(--c-gray); }
.pPhilosophy .pPhilosophy__grid_item_paragraph_custom { opacity: var(--init-opacity); }
.pPhilosophy .js-philosophy-last-text { opacity: var(--init-opacity); }

@media screen and (min-width: 960px) {
  .pPhilosophy .pPhilosophy__inner { height: 100vh !important; padding: calc(var(--header-height-constant) + 4.69vh) var(--padding-wrapper) 4.69vh; gap: 2rem; }
  .pPhilosophy .cCommonHeadline__text { font-size: min(1.17vw, calc(16px * var(--r-max-scale))); }
  .pPhilosophy .pPhilosophy__subtext { display: block; margin-top: 2rem; font: var(--t-heading-20); font-size: 20px; color: var(--c-ink); opacity: var(--init-opacity); }
  .pPhilosophy .pPhilosophy__grid { grid-template-columns: repeat(128, 1fr); gap: min(.59vw, calc(8px * var(--r-max-scale))); margin-top: auto; }
  .pPhilosophy .pPhilosophy__grid_item { padding: 3.13vh; }
  .pPhilosophy .pPhilosophy__grid_item_background { border-radius: 8px; }
  .pPhilosophy .pPhilosophy__grid_item_type { grid-column: 1 / 3; margin-left: 0; }
  .pPhilosophy .pPhilosophy__grid_item_type_text { font-size: min(1.56vh, .88vw); }
  .pPhilosophy .pPhilosophy__grid_item_headline { display: block; grid-column: 1 / 2; margin-top: 24px; }
  .pPhilosophy .pPhilosophy__grid_item_headline_main { font-size: min(5.21vh, 2.93vw); }
  .pPhilosophy .pPhilosophy__grid_item_headline_sub { margin-top: .25em; font-size: min(2.08vh, 1.17vw); }
  .pPhilosophy .pPhilosophy__grid_item:nth-child(3) .pPhilosophy__grid_item_headline_main { font-size: min(5.21vh, 2.93vw); }
  .pPhilosophy .pPhilosophy__grid_item:nth-child(4) .pPhilosophy__grid_item_headline_main { font-size: min(4.17vh, 2.34vw); }
  .pPhilosophy .pPhilosophy__grid_item_value { grid-column: 2 / 3; gap: 1.04vh; width: min(104.17vh, 58.57vw); margin-top: min(2.08vh, 1.17vw); margin-left: auto; }
  .pPhilosophy .pPhilosophy__grid_item_value_text { gap: min(2.08vh, 1.17vw); font-size: min(2.08vh, 1.17vw); }
  .pPhilosophy .pPhilosophy__grid_item_value_text::before { margin-top: .25em; font-size: min(1.3vh, .73vw); }
  .pPhilosophy .pPhilosophy__grid_item_paragraph_text { font-size: min(2.08vh, 1.17vw); }
  .pPhilosophy .pPhilosophy__grid_item[data-type="Mission"] { grid-column: 1 / 65; }
  .pPhilosophy .pPhilosophy__grid_item[data-type="Vision"] { grid-column: 65 / 129; }
  .pPhilosophy .pPhilosophy__grid_item[data-type="Value"] { display: grid; grid-template-columns: auto auto; grid-column: 1 / 129; }
}

/* ACTBE headline weight */
.cr-philosophy .pPhilosophy__grid_item_headline_main { font-weight: 600; }

/* Type refinement: tighter but readable headlines, calmer supporting text, clearer mono labels */
.cr-philosophy .pPhilosophy__grid_item_headline_main { font-weight: 600; letter-spacing: -.035em; line-height: 1.04; }
.cr-philosophy .pPhilosophy__grid_item_headline_sub { letter-spacing: -.01em; line-height: 1.35; font-weight: 400; }
.cr-philosophy .pPhilosophy__grid_item_value_text { letter-spacing: -.01em; line-height: 1.4; }
.cr-philosophy .pPhilosophy__grid_item_type_text { letter-spacing: .06em; text-transform: uppercase; }
.cr-philosophy .pPhilosophy__subtext { font-weight: 400; letter-spacing: -.01em; line-height: 1.35; }
.cr-philosophy .pPhilosophy__grid_item_paragraph_text { line-height: 1.5; }

.pPhilosophy .pPhilosophy__headline { margin-top: -20px; }
