@charset "utf-8";
/* ============================================================
   TOP ページ固有
   ============================================================ */

/* ============ FV ============ */
.p-hero{position:relative;background:#fff}
.p-hero__inner{
  position:relative;
  width:min(100%,1440px);margin-inline:auto;
  min-height:min(61vw,879px);
  overflow:hidden;
}
/* 低ポリ背景 */
.p-hero__bg{position:absolute;inset:0;z-index:0}
.p-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:left top}
/* 赤いカーブ装飾 */
.p-hero__wave{position:absolute;inset:0;z-index:1;pointer-events:none}
.p-hero__wave img{width:100%;height:100%;object-fit:cover;object-position:left top}

/* --- 写真マーキー --- */
.p-hero__photos{
  position:absolute;z-index:2;
  top:0;bottom:0;left:63.33%;right:2.36%;
  display:grid;grid-template-columns:1fr 1fr;gap:15px;
  overflow:hidden;
}
.p-hero__col{overflow:hidden}
.p-hero__track{display:flex;flex-direction:column;gap:15px;will-change:transform}
.p-hero__col:nth-child(1) .p-hero__track{animation:heroUp 44s linear infinite}
.p-hero__col:nth-child(2) .p-hero__track{animation:heroDown 52s linear infinite}
.p-hero__photos:hover .p-hero__track{animation-play-state:paused}
.p-hero__track figure{margin:0;flex:none}
.p-hero__track img{width:100%;aspect-ratio:3/4;object-fit:cover}
@keyframes heroUp{  from{transform:translateY(0)}      to{transform:translateY(calc(-50% - 7.5px))} }
@keyframes heroDown{from{transform:translateY(calc(-50% - 7.5px))} to{transform:translateY(0)} }
@media (prefers-reduced-motion:reduce){ .p-hero__track{animation:none!important} }

/* --- テキスト側 --- */
.p-hero__body{
  position:relative;z-index:3;
  width:63%;
  padding:26px 0 53px 120px;
}
@media (max-width:1439px){ .p-hero__body{padding-left:var(--gutter)} }

.p-hero__ttl{
  font-size:clamp(4.4rem,5.9vw,8.5rem);
  font-weight:900;line-height:.94;letter-spacing:0;
}
.p-hero__ttl em{font-style:normal;color:var(--c-red)}
.p-hero__sub{
  margin-top:.15em;
  font-size:clamp(2rem,2.92vw,4.2rem);
  font-weight:700;line-height:1.2;letter-spacing:0;
}
.p-hero__band{
  display:inline-block;margin-top:.25em;
  padding:.05em .44em;
  background:var(--c-ink);color:#fff;
  font-size:clamp(1.9rem,3.02vw,4.35rem);
  font-weight:700;line-height:1.25;letter-spacing:.12em;
}
.p-hero__data{
  display:flex;align-items:center;gap:clamp(16px,4.03vw,58px);
  margin-top:clamp(20px,3.1vw,45px);
}
.p-hero__graph{flex:none;width:clamp(200px,27.8vw,400px)}
.p-hero__stats{display:flex;flex-direction:column;gap:clamp(14px,3.54vw,51px)}
.p-hero__note{
  margin-top:clamp(16px,2.36vw,34px);
  font-size:clamp(1.3rem,1.46vw,2.1rem);
  font-weight:700;line-height:1.5;
}
.p-hero__note em{font-style:normal;color:var(--c-red)}

/* --- 実績バッジ --- */
.c-stat{display:flex;align-items:center;justify-content:center;gap:clamp(2px,.42vw,6px)}
.c-stat__laurel{flex:none;width:clamp(34px,4.79vw,69px)}
.c-stat__laurel--r{transform:scaleX(-1)}
.c-stat__body{flex:none;width:clamp(70px,7.5vw,108px);text-align:center;line-height:1.2}
.c-stat__label{font-size:clamp(1.1rem,1.25vw,1.8rem);font-weight:700;letter-spacing:.02em;white-space:nowrap}
.c-stat__num{
  display:flex;align-items:baseline;justify-content:center;gap:.08em;
  font-family:var(--f-num);font-weight:600;color:var(--c-red);
  font-size:clamp(3.4rem,4.44vw,6.4rem);line-height:1.08;letter-spacing:.01em;white-space:nowrap;
}
.c-stat__unit{font-family:var(--f-sans);font-size:.42em;font-weight:700;color:var(--c-ink)}
.c-stat__under{font-size:clamp(1.1rem,1.32vw,1.9rem);font-weight:700}

/* --- SP の FV --- */
@media (max-width:767px){
  .p-hero__inner{min-height:0;padding-bottom:0}
  .p-hero__body{width:100%;padding:28px var(--gutter) 0}
  .p-hero__ttl{font-size:3.4rem;line-height:1.1}
  .p-hero__sub{font-size:1.8rem;margin-top:.6em}
  .p-hero__band{font-size:1.8rem;margin-top:.6em}
  .p-hero__data{flex-direction:column;gap:20px;margin-top:24px}
  .p-hero__graph{width:min(300px,78%)}
  .p-hero__stats{flex-direction:row;gap:16px;width:100%;justify-content:center}
  .p-hero__note{font-size:1.3rem;margin-top:20px;text-align:center}
  .c-stat__num{font-size:3.6rem}
  .c-stat__laurel{width:26px}
  /* 写真は横流しに切替 */
  .p-hero__photos{
    position:relative;left:auto;right:auto;top:auto;bottom:auto;
    margin-top:24px;
    grid-template-columns:none;grid-auto-flow:column;gap:0;
    height:170px;
  }
  .p-hero__col:nth-child(2){display:none}
  .p-hero__col{width:100%}
  .p-hero__track{flex-direction:row;gap:8px;animation:heroLeft 36s linear infinite!important;height:100%}
  .p-hero__track figure{height:100%}
  .p-hero__track img{width:128px;height:100%;aspect-ratio:auto}
  @keyframes heroLeft{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 4px))}}
}

/* ============ 01 お悩み ============ */
.p-trouble{padding:104px 0 108px}
.p-trouble__list{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:48px}
.p-trouble__item{display:flex;gap:20px;align-items:flex-start}
.p-trouble__icon{flex:none;width:72px;height:72px;border-radius:50%;background:var(--c-red);display:grid;place-items:center}
.p-trouble__icon img{width:38px;height:auto}
.p-trouble__ttl{font-size:1.9rem;font-weight:700;margin-bottom:6px;letter-spacing:.02em}
.p-trouble__txt{font-size:1.5rem;line-height:1.85}
@media (max-width:1023px){ .p-trouble__list{grid-template-columns:1fr;gap:28px;max-width:640px;margin-inline:auto} }
@media (max-width:767px){
  .p-trouble{padding:48px 0 52px}
  .p-trouble__list{margin-top:28px}
  .p-trouble__icon{width:58px;height:58px}
  .p-trouble__icon img{width:30px}
  .p-trouble__ttl{font-size:1.7rem}
  .p-trouble__txt{font-size:1.4rem}
}

/* ============ 02 強み ============ */
.p-strength{padding:80px 0 88px;background:var(--c-bg-gray)}
.p-strength__inner{display:grid;grid-template-columns:1fr 700px;gap:0;align-items:stretch}
.p-strength__body{display:flex;flex-direction:column;padding-right:48px}
.p-strength__ttl{font-size:3.2rem;font-weight:700;line-height:1.5;margin:8px 0 24px}
.p-strength__txt{font-size:1.5rem;line-height:1.95}
.p-strength__txt + .p-strength__txt{margin-top:1.4em}
.p-strength__btn{margin-top:auto;padding-top:32px}
.p-strength__btn .c-btn{min-width:280px;height:60px;padding:0 24px}

.p-strength__compare{display:grid;grid-template-columns:300px 100px 300px;align-items:stretch;justify-content:start}
.p-strength__card{background:#fff;display:flex;flex-direction:column}
.p-strength__head{padding:12px;text-align:center;font-size:1.9rem;font-weight:700;color:#fff;background:var(--c-ink-mute)}
.p-strength__card--now .p-strength__head{background:var(--c-red)}

/* 従来の契約：アイコン2×2＋下部キャプション */
.p-strength__figs{
  flex:1;display:grid;grid-template-columns:1fr 1fr;
  place-items:center;gap:26px 10px;padding:30px 26px 10px;
}
.p-strength__figs img{width:auto;height:auto;max-width:92px;max-height:88px}
.p-strength__cap{padding:16px 24px 32px;font-size:1.6rem;font-weight:700;line-height:1.55}

/* PotentCompanyなら */
.p-strength__card--now .p-strength__figs{grid-template-columns:1fr;flex:0 0 auto;padding:26px 24px 8px;gap:0}
.p-strength__card--now .p-strength__figs img{width:216px;max-width:216px;max-height:none}
.p-strength__card--now .p-strength__cap{
  padding:6px 20px 0;text-align:center;font-size:2.2rem;font-weight:700;letter-spacing:.02em;
}
.p-strength__merit{margin:20px 22px 30px;padding-top:20px;border-top:1px solid var(--c-line);text-align:center}
.p-strength__merit dt{font-size:1.7rem;font-weight:700;color:var(--c-red);margin-bottom:12px;letter-spacing:.01em}
.p-strength__merit dd{font-size:1.5rem;font-weight:500;line-height:1.75}

/* 太い二重シェブロン */
.p-strength__arrow{display:grid;place-items:center}
.p-strength__arrow span{
  display:block;width:34px;height:52px;background:var(--c-ink);
  clip-path:polygon(0 0,44% 0,100% 50%,44% 100%,0 100%,56% 50%);
}
.p-strength__arrow span + span{margin-left:-14px}
.p-strength__arrow{grid-auto-flow:column}

@media (max-width:1279px){
  .p-strength__inner{grid-template-columns:1fr;gap:36px}
  .p-strength__body{padding-right:0}
  .p-strength__ttl{font-size:2.6rem}
  .p-strength__btn{margin-top:0}
}
@media (max-width:767px){
  .p-strength{padding:48px 0 52px}
  .p-strength__ttl{font-size:2.1rem}
  .p-strength__compare{grid-template-columns:1fr;gap:12px}
  .p-strength__arrow{transform:rotate(90deg);padding:6px 0}
  .p-strength__btn .c-btn{width:100%;min-width:0}
  .p-strength__card--now .p-strength__cap{font-size:1.9rem}
}

/* ============ 03 サービス概要 ============ */
.p-service{position:relative;padding:80px 0 96px;overflow:hidden}
.p-service__wave{position:absolute;left:0;right:0;bottom:-40px;z-index:0;pointer-events:none}
.p-service__wave img{width:100%}
.p-service__inner{position:relative;z-index:1}
.p-service__lead{text-align:center;font-size:3.2rem;font-weight:700;letter-spacing:.02em;margin:24px 0 48px}
.p-service__cards{display:grid;grid-template-columns:repeat(3,350px);gap:75px;justify-content:space-between}
.p-service__card{background:#fff;border:2px solid var(--c-red);display:flex;flex-direction:column}
.p-service__card--guard{border-color:var(--c-ink)}
.p-service__card--base{border-color:var(--c-ink-mute)}
.p-service__head{padding:11px;text-align:center;font-size:1.9rem;font-weight:700;color:#fff;background:var(--c-red)}
.p-service__card--guard .p-service__head{background:var(--c-ink)}
.p-service__card--base .p-service__head{background:var(--c-ink-mute)}
.p-service__sub{padding:22px 16px 14px;text-align:center;font-size:1.8rem;font-weight:700}
.p-service__ico{display:grid;place-items:center;padding-bottom:16px}
.p-service__ico img{width:54px;height:auto}
.p-service__list{align-self:center;width:max-content;max-width:calc(100% - 40px);padding:0 0 26px;font-size:1.8rem;font-weight:500;line-height:2.05}
.p-service__list li{position:relative;padding-left:1em}
.p-service__list li::before{content:"・";position:absolute;left:0}
.p-service__foot{margin-top:auto;padding:0 0 24px;text-align:center}
@media (max-width:1199px){ .p-service__cards{grid-template-columns:1fr;gap:24px;max-width:560px;margin-inline:auto} }
@media (max-width:767px){
  .p-service{padding:48px 0 56px}
  .p-service__lead{font-size:2rem;margin:16px 0 28px}
}

/* ============ 04 導入事例 ============ */
.p-case{padding:72px 0 108px;background:var(--c-bg-pink)}
.p-case__lead{font-size:3.2rem;font-weight:700;margin:16px 0 60px}
.p-case__flow{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}

.p-case__item{
  --acc:var(--c-ink-mute);
  position:relative;background:#fff;
  margin:0 10px 0 18px;               /* 左は矢印のはみ出し分、右は影の分 */
  box-shadow:10px 10px 0 var(--acc);
  padding:34px 0 40px;
}
.p-case__item--plan{--acc:var(--c-red)}
.p-case__item--after{--acc:var(--c-ink)}

/* リボン矢印（カード左端より18px外にはみ出す） */
.p-case__step{position:relative;width:calc(100% - 92px);margin-left:-18px}
.p-case__step span{
  display:block;padding:16px 50px 16px 26px;
  background:var(--acc);color:#fff;
  font-size:2.4rem;font-weight:700;letter-spacing:.04em;line-height:1.35;
  clip-path:polygon(0 0,calc(100% - 38px) 0,100% 50%,calc(100% - 38px) 100%,0 100%);
}
.p-case__step::after{                 /* 左下の折り返し */
  content:"";position:absolute;left:0;top:100%;
  width:18px;height:14px;background:#7D8488;
  clip-path:polygon(0 0,100% 0,100% 100%);
}
.p-case__txt{padding:30px 34px 26px 36px;font-size:1.8rem;font-weight:700;line-height:1.75;color:var(--c-ink)}
.p-case__img{padding-left:38px}
.p-case__img img{width:271px;max-width:calc(100% - 38px);aspect-ratio:271/111;object-fit:cover}
@media (max-width:1023px){
  .p-case__flow{grid-template-columns:1fr;gap:34px;max-width:560px;margin-inline:auto}
}
@media (max-width:767px){
  .p-case{padding:48px 0 60px}
  .p-case__lead{font-size:2.1rem;margin:12px 0 32px}
  .p-case__item{margin:0 7px 0 14px;box-shadow:7px 7px 0 var(--acc);padding:24px 0 28px}
  .p-case__step{width:calc(100% - 60px);margin-left:-14px}
  .p-case__step span{font-size:1.9rem;padding:11px 38px 11px 20px}
  .p-case__txt{padding:22px 26px 20px 28px;font-size:1.5rem}
  .p-case__img{padding-left:28px}
  .p-case__img img{width:100%;max-width:calc(100% - 28px)}
}

/* ============ パララックス帯 ============ */
.p-parallax{position:relative;height:300px;margin-bottom:104px;display:grid;place-items:center;overflow:hidden}
.p-parallax__bg{position:absolute;inset:0}
.p-parallax__bg img{width:100%;height:100%;object-fit:cover;object-position:48% 78%;transform:scale(1.5);opacity:.72}
.p-parallax__bg::after{          /* メインの赤を敷いて白を重ね、文字を読みやすく */
  content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,
              rgba(255,9,1,.46) 0%,
              rgba(255,9,1,.16) 52%,
              rgba(255,255,255,.34) 100%),
             linear-gradient(to bottom,
              rgba(255,255,255,.26) 0%,
              rgba(255,255,255,.62) 100%);
}
.p-parallax__ttl{
  position:relative;z-index:1;text-align:center;
  font-family:var(--f-serif);font-size:3.4rem;font-weight:500;letter-spacing:.14em;color:var(--c-ink);
}
@media (max-width:767px){
  .p-parallax{height:190px;margin-bottom:56px}
  .p-parallax__ttl{font-size:1.9rem;padding-inline:var(--gutter);letter-spacing:.06em}
}

/* ============ 05-08 ブロック ============ */
.p-blocks{display:grid;grid-template-columns:repeat(3,1fr)}
.p-blocks__cell{
  position:relative;display:flex;flex-direction:column;
  padding:100px 40px;min-height:600px;overflow:hidden;
}
.p-blocks__bg{position:absolute;inset:0;z-index:0}
.p-blocks__bg img{width:100%;height:100%;object-fit:cover}
.p-blocks__cell--about .p-blocks__bg img{object-position:32% 50%}
.p-blocks__cell > *:not(.p-blocks__bg){position:relative;z-index:1}

/* 05 About：暗いフィルター＋白文字 */
.p-blocks__cell--about .p-blocks__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.38)}
.p-blocks__cell--about,
.p-blocks__cell--about .c-secttl__label,
.p-blocks__cell--about .p-blocks__txt,
.p-blocks__cell--about .p-blocks__ttl{color:#fff}

/* 06 Topics：フィルターなし・文字は #333333 */
.p-blocks__cell--topics .p-blocks__bg::after{content:none}

/* 07・08：1枚の背景を貫通、内容はすべて中央揃え */
.p-blocks__right{position:relative;display:grid;grid-template-rows:1fr 1fr;overflow:hidden}
.p-blocks__bg--through{position:absolute;inset:0;z-index:0}
.p-blocks__bg--through::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.62)}
.p-blocks__right .p-blocks__cell{
  position:relative;z-index:1;min-height:300px;padding:40px;
  justify-content:center;align-items:center;text-align:center;
}
.p-blocks__right .c-secttl{justify-content:center}
.p-blocks__right .p-blocks__txt{max-width:22em}

.p-blocks__ttl{font-size:2.8rem;font-weight:700;line-height:1.55;margin-bottom:18px;letter-spacing:.02em}
.p-blocks__txt{font-size:1.5rem;font-weight:500;line-height:1.85;color:var(--c-ink);margin-bottom:24px;max-width:27em}
.p-blocks__date{font-family:var(--f-num);font-size:1.6rem;letter-spacing:.06em;margin-bottom:12px}
.p-blocks__news{font-size:2.6rem;font-weight:700;line-height:1.45;margin-bottom:24px}
.p-blocks__btn{margin-top:auto;text-align:center}   /* ボタンはセル内で中央 */
.p-blocks .c-secttl{margin-bottom:24px}
.p-blocks .c-btn{min-width:286px;height:54px;padding:0 22px}

@media (max-width:1279px){
  .p-blocks{grid-template-columns:1fr 1fr}
  .p-blocks__right{grid-column:1/-1;grid-template-rows:none;grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .p-blocks{grid-template-columns:1fr}
  .p-blocks__right{grid-template-columns:1fr}
  .p-blocks__cell{min-height:0;padding:44px var(--gutter)}
  .p-blocks__right .p-blocks__cell{min-height:0;padding:36px var(--gutter)}
  .p-blocks__ttl{font-size:2.1rem}
  .p-blocks__news{font-size:1.9rem}
  .p-blocks .c-btn{width:100%;min-width:0}
}
