/*
 * front-page.css - Progress HR Solutions
 * assets/css/front-page.css
 */

/* ============================================================
   トークン
   ============================================================ */
:root {
  --phrs-navy:      #0D1F3C;
  --phrs-navy-mid:  #1A3258;
  --phrs-gold:      #B8973A;
  --phrs-gold-lt:   #D4AF6A;
  --phrs-white:     #FFFFFF;
  --phrs-bg:        #F7F8FA;
  --phrs-border:    #E0E3EC;
  --phrs-text:      #1A1A2E;
  --phrs-sub:       #555870;

  --phrs-serif-ja: 'Noto Serif JP', 'Yu Mincho', '游明朝', serif;
  --phrs-sans-ja:  'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  --phrs-en:       'Cormorant Garamond', Georgia, serif;

  --phrs-max: 1180px;
  --phrs-gap: 100px;
  --phrs-ease: cubic-bezier(.25,.46,.45,.94);
}

/* ============================================================
   ベース
   ============================================================ */
.phrs-top {
	font-family: var(--phrs-sans-ja);
	overflow-x: hidden;
	background: url("../images/hero-new.png");
	background-size: contain;
	background-repeat: no-repeat;
}

.phrs-inner {
  max-width: var(--phrs-max);
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 60px);
}

/* ============================================================
   ボタン
   ============================================================ */
.phrs-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--phrs-en);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .18em;
  text-decoration: none;
  padding: 15px 36px;
  border: 2px solid transparent;
  transition: background .25s var(--phrs-ease),
              color .25s,
              border-color .25s,
              transform .2s;
  cursor: pointer;
}
.phrs-btn--dark {
  background: var(--phrs-navy);
  color: var(--phrs-white);
  border-color: var(--phrs-navy);
}
.phrs-btn--dark:hover {
  background: var(--phrs-navy-mid);
  border-color: var(--phrs-navy-mid);
  transform: translateX(3px);
}
.phrs-btn--outline {
  background: transparent;
  color: var(--phrs-navy);
  border-color: var(--phrs-navy);
}
.phrs-btn--outline:hover {
  background: var(--phrs-navy);
  color: var(--phrs-white);
}
.phrs-btn--gold {
  background: var(--phrs-gold);
  color: var(--phrs-navy);
  border-color: var(--phrs-gold);
  font-weight: 700;
}
.phrs-btn--gold:hover {
  background: var(--phrs-gold-lt);
  border-color: var(--phrs-gold-lt);
}

/* ============================================================
   セクションタイトル
   ============================================================ */
.phrs-section-title {
  font-family: var(--phrs-en);
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 600;
  letter-spacing: .22em;
  color: var(--phrs-navy);
  margin-bottom: 40px;
  padding-bottom: 14px;
  position: relative;
  display: inline-block;
}
.phrs-section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 2px;
  background: var(--phrs-gold);
}
.phrs-section-title--light { color: var(--phrs-white); }
.phrs-section-title--light::after { background: var(--phrs-gold); }

/* ============================================================
   HERO
   ============================================================ */
.phrs-hero {
  position: relative;
  height: clamp(520px, 85vh, 750px);
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* 背景画像 */
.phrs-hero__bg {
  position: absolute;
  inset: 0;
}
.phrs-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
}

/* 左→右へのホワイトグラデーションオーバーレイ */
.phrs-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(255,255,255,.98)  0%,
    rgba(255,255,255,.95) 28%,
    rgba(255,255,255,.75) 48%,
    rgba(255,255,255,.20) 65%,
    rgba(255,255,255,.00) 78%
  );
}

/* コンテンツ */
.phrs-hero__body {
  position: relative;
  z-index: 2;
  padding-left: clamp(28px, 7vw, 100px);
  padding-right: 20px;
  max-width: 750px;
}

.phrs-hero__label {
  font-family: var(--phrs-en);
  font-size: clamp(13px, 1.4vw, 16px);
  font-weight: 400;
  letter-spacing: .26em;
  color: var(--phrs-navy-mid);
  margin-bottom: 18px;
  opacity: 0;
  animation: phrs-up .8s var(--phrs-ease) .15s forwards;
}

.phrs-hero__title {
  font-family: var(--phrs-serif-ja);
  font-size: clamp(34px, 5vw, 64px);
  font-weight: 700;
  line-height: 1.45;
  color: var(--phrs-navy);
  margin-bottom: 36px;
  opacity: 0;
  animation: phrs-up .9s var(--phrs-ease) .35s forwards;
}
/* em = 金色アクセント（斜体を解除） */
.phrs-hero__title em {
  font-style: normal;
  color: var(--phrs-gold);
}

.phrs-hero__body .phrs-btn {
  opacity: 0;
  animation: phrs-up .8s var(--phrs-ease) .6s forwards;
}

/* ============================================================
   OUR VALUE
   ============================================================ */
.phrs-value {
	background: linear-gradient(
      to right,
      rgba(255,255,255,.98)  0%,
      rgba(255,255,255,.95) 28%,
      rgba(255,255,255,.75) 48%,
      rgba(255,255,255,.20) 65%,
      rgba(255,255,255,.00) 78%
    );
  padding-block: var(--phrs-gap) * 0.5 calc(var(--phrs-gap) * 0.5);
}

.phrs-value__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 8px;
}

.phrs-value__card {
  background: var(--phrs-bg);
  border: .5px solid var(--phrs-border);
  padding: 44px 28px 38px;
  text-align: center;
  transition: transform .3s var(--phrs-ease),
              box-shadow .3s;
}
.phrs-value__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 48px rgba(13,31,60,.09);
}

.phrs-value__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  margin-bottom: 18px;
}
.phrs-value__icon svg {
  width: 50px;
  height: 50px;
  stroke: var(--phrs-gold);
  fill: none;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.phrs-value__en {
  font-family: var(--phrs-en);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .2em;
  color: var(--phrs-navy);
  margin-bottom: 5px;
}
.phrs-value__ja {
  font-size: 12px;
  color: var(--phrs-sub);
  letter-spacing: .1em;
}

/* ============================================================
   SERVICES
   ============================================================ */
.phrs-services {
  background: var(--phrs-navy);
  padding-block: var(--phrs-gap);
}

.phrs-services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.phrs-services__card {
  background: rgba(255,255,255,.05);
  border: .5px solid rgba(255,255,255,.12);
  padding: 36px 28px;
  transition: background .3s;
}
.phrs-services__card:hover { background: rgba(255,255,255,.09); }

.phrs-services__name {
  font-family: var(--phrs-serif-ja);
  font-size: 18px;
  color: var(--phrs-white);
  margin-bottom: 10px;
}
.phrs-services__excerpt {
  font-size: 13px;
  color: rgba(255,255,255,.65);
  line-height: 1.8;
  margin-bottom: 18px;
}
.phrs-link-arrow {
  font-family: var(--phrs-en);
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--phrs-gold-lt);
  text-decoration: none;
}

/* ============================================================
   NEWS
   ============================================================ */
.phrs-news {
	background: linear-gradient(
      to right,
      rgba(255,255,255,.98)  0%,
      rgba(255,255,255,.95) 28%,
      rgba(255,255,255,.75) 48%,
      rgba(255,255,255,.20) 65%,
      rgba(255,255,255,.00) 78%
    );
	padding-block: var(--phrs-gap);
}

.phrs-news__list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  border-top: .5px solid var(--phrs-border);
}
.phrs-news__item {
  display: flex;
  align-items: baseline;
  gap: 24px;
  padding: 18px 0;
  border-bottom: .5px solid var(--phrs-border);
}
.phrs-news__date {
  font-family: var(--phrs-en);
  font-size: 13px;
  color: var(--phrs-sub);
  letter-spacing: .05em;
  white-space: nowrap;
  flex-shrink: 0;
}
.phrs-news__link {
  font-size: 14px;
  color: var(--phrs-text);
  text-decoration: none;
  line-height: 1.65;
  transition: color .2s;
}
.phrs-news__link:hover { color: var(--phrs-gold); }

.phrs-news__more { text-align: center; }

/* ============================================================
   CTA
   ============================================================ */
.phrs-cta {
  background: var(--phrs-navy);
  padding-block: 80px;
}
.phrs-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.phrs-cta__title {
  font-family: var(--phrs-serif-ja);
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 600;
  color: var(--phrs-white);
  line-height: 1.55;
}

/* ============================================================
   中ページCSS
   ============================================================ */

   /* Page Service */

.container{
max-width:1100px;
margin:auto;
padding:0;
}

.sub-hero{
padding:120px 0 60px;
background:linear-gradient(to right,#fff,#eef5ff);
text-align:center;
}

.lead{
font-size:18px;
margin-bottom:40px;
}

.feature-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.feature{
padding:30px;
background:#fff;
border-radius:10px;
box-shadow:0 10px 30px rgba(0,0,0,0.05);
}

.section-flex{
display:grid;
grid-template-columns:1fr 1fr;
gap:50px;
align-items:center;
margin:80px 0;
}

.section-flex.reverse{
direction:rtl;
}

.section-flex.reverse *{
direction:ltr;
}

.image{
height:280px;
background:linear-gradient(135deg,#dbe9ff,#ffffff);
border-radius:10px;
}

.flow{
display:flex;
margin-top:60px;
}

.flow div{
flex:1;
text-align:center;
padding:20px;
border-bottom:2px solid #0B2A4A;
}

.cta{
background:#0B2A4A;
color:#fff;
padding:80px 20px;
text-align:center;
}

.btn{
display:inline-block;
margin-top:20px;
padding:12px 30px;
background:#fff;
color:#0B2A4A;
border-radius:30px;
}

/* Page Company&Contact */
.company-table{
width:100%;
border-collapse:collapse;
margin-top:20px;
}

.company-table th{
text-align:left;
padding:15px;
background:#f5f8fc;
width:30%;
}

.company-table td{
padding:15px;
border-bottom:1px solid #eee;
}

.contact-box{
max-width:600px;
margin:auto;
padding:40px;
background:#fff;
box-shadow:0 10px 30px rgba(0,0,0,0.05);
border-radius:10px;
}

.contact-lead{
text-align:center;
margin-bottom:40px;
}

/* Service */
.lead{
font-size:20px;
margin-bottom:40px;
font-weight:bold;
}

.benefit{
background:#f5f8fc;
padding:40px;
border-radius:10px;
}

.faq{
background:#fff;
padding:40px;
border-radius:10px;
box-shadow:0 10px 30px rgba(0,0,0,0.05);
}

/* Result */
.case-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.case-card{
display:block;
background:#fff;
padding:20px;
border-radius:10px;
box-shadow:0 10px 30px rgba(0,0,0,0.05);
transition:.3s;
}

.case-card:hover{
transform:translateY(-5px);
}

.case-image{
width:100%;
border-radius:10px;
margin:20px 0;
}

.case-section{
margin:60px 0;
}

.case-section.result{
background:#f5f8fc;
padding:30px;
border-radius:10px;
}


/* ============================================================
   スクロールアニメーション
   ============================================================ */
@keyframes phrs-up {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

.phrs-fade {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s var(--phrs-ease),
              transform .7s var(--phrs-ease);
}
.phrs-fade.is-visible {
  opacity: 1;
  transform: none;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 768px) {
  :root { --phrs-gap: 64px; }

  .phrs-hero { height: auto; min-height: 500px; padding-block: 80px; }
  .phrs-hero__overlay {
    background: linear-gradient(
      to bottom,
      rgba(255,255,255,.95) 0%,
      rgba(255,255,255,.80) 55%,
      rgba(255,255,255,.40) 100%
    );
  }
  .phrs-hero__body { padding-inline: 24px; max-width: 100%; }

  .phrs-value__grid { grid-template-columns: 1fr; max-width: 340px; margin-inline: auto; }

  .phrs-cta__inner { flex-direction: column; text-align: center; }

  .phrs-news__item { flex-direction: column; gap: 4px; }
}

@media (max-width: 480px) {
  .phrs-hero__title { font-size: clamp(28px, 9vw, 40px); }
  .phrs-btn { padding: 13px 24px; }
}
