:root{
  --bg:#fff;
  --text:#1b1e24;
  --muted:#5d6472;
  --line:rgba(0,0,0,.08);

  --primary:#4EA9B8;
  --soft:#f6fbfc;

  --shadow:0 14px 40px rgba(20,30,50,.10);
  --shadow2:0 8px 24px rgba(20,30,50,.08);

  --radius:22px;
  --max:1120px;
  --pad:18px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:86px;}
body.fc{
  margin:0;
  color:var(--text);
  background:var(--bg);

  /* 明朝系 */
  font-family:
    "Noto Serif JP",
    "Hiragino Mincho ProN",
    "Yu Mincho",
    "MS Mincho",
    serif;
}

a{color:inherit; text-decoration:none;}
img{max-width:100%; height:auto; vertical-align:bottom;}
.fcContainer{width:min(var(--max),100%); margin:0 auto; padding:0 var(--pad);}

/* Header */
.fcHeader{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(10px);
}
.fcHeader__inner{
  height:74px; display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.fcBrand__logo{height:42px;}

.fcNav{
  display:flex; align-items:center; gap:18px;
  font-size:13px; color:rgba(27,30,36,.82);
}
.fcNav a{padding:10px 8px;}
.fcNav a:hover{color:rgba(27,30,36,.95);}
.fcNav__cta{
  padding:10px 14px !important;
  border-radius:999px;
  background:var(--primary);
  color:#fff !important;
  box-shadow:0 10px 22px rgba(78,169,184,.22);
}
.fcNav__subLink{
  color:rgba(44,125,138,.95);
  border-bottom:1px solid rgba(44,125,138,.35);
  padding-bottom:2px;
}

.fcHamburger{
  display:none;
  width:44px; height:44px; border-radius:12px;
  border:1px solid var(--line);
  background:#fff; cursor:pointer;
}
.fcHamburger span{display:block; width:18px; height:2px; margin:4px auto; background:rgba(0,0,0,.7);}

.fcMobileNav{
  display:none;
  border-top:1px solid var(--line);
  padding:12px var(--pad) 16px;
  background:rgba(255,255,255,.96);
}
.fcMobileNav a{display:block; padding:12px 10px; border-radius:12px;}
.fcMobileNav.is-open{display:block;}

@media (max-width:1080px){
  .fcNav{display:none;}
  .fcHamburger{display:block;}
}

/* Buttons */
.fcBtn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px; border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-weight:700; font-size:14px;
  transition:.18s ease;
}
.fcBtn:hover{transform:translateY(-1px); box-shadow:var(--shadow2);}
.fcBtn--primary{border:none; background:var(--primary); color:#fff; box-shadow:0 14px 26px rgba(78,169,184,.22);}
.fcBtn--ghost{background:#fff;}
.fcBtn--block{width:100%;}

/* Hero */
.fcHero{padding:26px 0 42px;}
.fcHero__grid{
  display:grid; grid-template-columns:1.15fr .85fr; gap:28px; align-items:center;
}
@media (max-width:980px){ .fcHero__grid{grid-template-columns:1fr;} }

.fcHeroTitleWrap{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  min-height:420px;
  padding:34px 32px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:#fff;
}

/* ✅ 背景写真は ::before で確実に表示させる */
.fcHeroTitleWrap::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--heroPhoto);
  background-size:cover;
  background-position:center;
  filter:saturate(1.05);
  transform:scale(1.02);
}

/* ✅ 文字が読みやすいように白いグラデで上から覆う */
.fcHeroTitleWrap::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.96) 0%,
      rgba(255,255,255,.90) 52%,
      rgba(255,255,255,.20) 100%);
}

.fcHeroTitleWrap > *{ position:relative; z-index:1; }

@media (max-width:760px){
  .fcHeroTitleWrap{min-height:360px; padding:26px 20px;}
  .fcHeroTitleWrap::after{
    background: linear-gradient(180deg,
      rgba(255,255,255,.95) 0%,
      rgba(255,255,255,.88) 62%,
      rgba(255,255,255,.30) 100%);
  }
}

.fcHero__kicker{
  margin:0 0 10px;
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(0,0,0,.55);
}
.fcHero__title{margin:0; line-height:1.05;}
.fcHero__titleSmall{
  display:block;
  font-size:clamp(18px,2.2vw,26px);
  color:rgba(44,125,138,.95);
}
.fcHero__titleBig{
  display:block;
  margin-top:10px;
  font-size:clamp(40px,5.2vw,70px);
  font-weight:700;
  color:rgba(44,125,138,.95);
}
.fcHero__lead{
  margin:16px 0 0;
  color:rgba(0,0,0,.68);
  line-height:1.9;
  font-size:14px;
  max-width:520px;
}
.fcHero__cta{margin-top:18px; display:flex; gap:12px; flex-wrap:wrap;}
.fcHero__mini{margin-top:18px; display:flex; gap:10px; flex-wrap:wrap;}
.fcMiniLine{
  display:flex; gap:10px; align-items:center;
  padding:10px 12px; border-radius:999px;
  border:1px solid rgba(0,0,0,.06);
  background:rgba(255,255,255,.88);
}
.fcMiniLine .k{font-size:11px; letter-spacing:.12em; color:rgba(0,0,0,.55);}
.fcMiniLine .v{font-weight:700;}

/* hero mark */
.fcHeroMark{
  display:flex; align-items:center; justify-content:center;
  padding:22px;
  border-radius:var(--radius);
  border:1px solid var(--line);
  box-shadow:var(--shadow2);
  background:#fff;
}

/* Sections */
.fcSection{padding:70px 0;}
.fcSection--tint{background:var(--soft); border-top:1px solid rgba(0,0,0,.05); border-bottom:1px solid rgba(0,0,0,.05);}
.fcHead{margin-bottom:24px;}
.fcHead--center{text-align:center;}
.fcKicker{display:inline-block; font-size:12px; letter-spacing:.18em; color:rgba(0,0,0,.55); margin-bottom:12px;}
.fcH2{margin:0 0 12px; font-size:clamp(30px,2.7vw,78px); line-height:1.25;}
.fcH3{margin:0 0 10px; font-size:26px;}
.fcP{margin:0; color:rgba(0,0,0,.70); line-height:1.9; font-size:18px;}
.fcSmall{color:rgba(0,0,0,.58); font-size:12px; line-height:1.7; margin-top:10px;}

/* About */
.fcAboutGrid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:980px){ .fcAboutGrid{grid-template-columns:1fr;} }
.fcAboutCard{
  border-radius:var(--radius);
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow2);
  padding:18px;
}
.fcAboutCard--soft{background:linear-gradient(180deg,#fff 0%, rgba(78,169,184,.04) 100%);}
.fcDivider{height:1px; background:rgba(0,0,0,.06); margin:14px 0;}

.fcTags{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
.fcTag{
  display:inline-flex;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid rgba(78,169,184,.22);
  background:rgba(78,169,184,.10);
  font-weight:600;
  font-size:12px;
}

.fcReasonList{display:grid; gap:10px;}
.fcReason__title{margin:0; font-size:14px; font-weight:700;}
.fcReason__text{margin:4px 0 0; color:rgba(0,0,0,.66); font-size:13px; line-height:1.85;}

.fcAlert{
  margin-top:14px;
  border-radius:18px;
  border:1px solid rgba(44,125,138,.16);
  background:rgba(78,169,184,.10);
  padding:12px;
}
.fcAlert__kicker{font-size:12px; letter-spacing:.12em; color:rgba(44,125,138,.95); font-weight:700;}
.fcAlert__title{margin-top:6px; font-weight:700;}
.fcAlert__text{margin-top:6px; color:rgba(0,0,0,.66); font-size:13px; line-height:1.85;}

.fcPointRow{margin-top:14px; display:grid; gap:12px;}
.fcPoint{display:flex; gap:12px; padding:12px; border-radius:18px; border:1px solid rgba(0,0,0,.06); background:#fff;}
.fcPoint__title{font-weight:700; font-size:13px;}
.fcPoint__desc{color:rgba(0,0,0,.64); font-size:13px; margin-top:2px;}
.fcInlineCta{margin-top:14px; display:flex; gap:10px; flex-wrap:wrap;}

/* Price */
.fcPriceClean{display:grid; gap:18px;}
.fcPriceBlock{
  background:#fff;
  border-radius:var(--radius);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow2);
  overflow:hidden;
}
.fcPriceBlock__head{
  position:relative;
  padding:18px 18px 16px;
}
.fcPriceBlock__head::before{
  content:"";
  position:absolute; inset:0;
  background: var(--illust);
  background-repeat:no-repeat;
  background-size:180px auto;
  background-position:right 14px center;
  opacity:.20;
  pointer-events:none;
}
@media (max-width:760px){
  .fcPriceBlock__head::before{background-size:140px auto; background-position:right 10px top 8px;}
}
.fcPriceBlock__head > *{position:relative; z-index:1;}
.fcPriceBlock__title{margin:0; font-size:20px; font-weight:700;}
.fcPriceBlock__sub{margin:6px 0 0; color:rgba(0,0,0,.62); font-size:13px; line-height:1.8;}

.fcPriceList{margin:0; padding:0 18px 18px;}
.fcPriceRow{
  display:flex; justify-content:space-between; gap:16px;
  padding:14px 0;
  border-top:1px solid rgba(0,0,0,.06);
}
.fcPriceRow dt{margin:0; flex:1;}
.fcPriceRow .name{font-weight:700;}
.fcPriceRow .desc{margin-top:4px; color:rgba(0,0,0,.64); font-size:13px; line-height:1.7;}
.fcPriceRow dd{margin:0; display:flex; flex-direction:column; align-items:flex-end; gap:6px; white-space:nowrap;}
.fcPriceRow .time{font-size:12px; color:rgba(0,0,0,.55);}
.fcPriceRow .yen{font-size:16px; font-weight:700;}
.fcPriceRow--strong .yen{color:rgba(44,125,138,.95);}
@media (max-width:760px){
  .fcPriceRow{flex-direction:column;}
  .fcPriceRow dd{align-items:flex-start;}
}

/* =========================
   Circle Gallery（横一列 / スクロールなし）
   ========================= */
.fcCircleGallery{
  display:flex;
  gap:10px;                 /* 画像同士の幅を狭める */
  justify-content:space-between;
  align-items:center;

  flex-wrap:nowrap;         /* ✅ PCは1列固定（スクロールなし） */
  margin-top:12px;
}

/* ✅ 1列の中で均等に配分しつつ、最大サイズも持たせる */
.fcCircle{
  flex: 1 1 0;              /* 横幅を均等割り */
  max-width: 220px;         /* これ以上は大きくしない（PCで巨大化防止） */
  aspect-ratio: 1 / 1;      /* 正円を保証 */
  border-radius: 50%;
  overflow:hidden;

  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow2);
  background:#fff;
}

.fcCircle img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* ✅ スマホ：2列でOK */
@media (max-width:760px){
  .fcCircleGallery{
    flex-wrap:wrap;         /* 2列にするため折り返し */
    justify-content:center;
    gap:12px;
  }
  .fcCircle{
    flex: 0 0 calc(50% - 6px); /* 2列固定 */
    max-width: none;
  }
}

/* Staff */
.fcStaff{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:18px;
  align-items:center;
}
@media (max-width:980px){ .fcStaff{grid-template-columns:1fr;} }
.fcStaff__photo{
  max-width: 420px;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow2);
}
.fcStaff__photo img{width:100%; height:560px; object-fit:cover; object-position:center 25%; display:block;}
@media (max-width:760px){ .fcStaff__photo img{height:340px;} }

/* Staff（右上に寄せる＝上揃え） */
.fcStaff{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:18px;
  align-items:start; /* ← center になっていたら start に */
}
@media (max-width:980px){
  .fcStaff{ grid-template-columns:1fr; }
}

/* 右側テキスト（上に寄せて、文字も大きく） */
.fcStaff__text{
  border-radius:var(--radius);
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  box-shadow:var(--shadow2);
  padding:22px;      /* 18 → 22 */
  margin-top:0;      /* 念のため */
}

/* 肩書き */
.fcStaff__role{
  font-size:13px;    /* 12 → 13 */
  letter-spacing:.16em;
  color:rgba(0,0,0,.55);
}

/* 名前 */
.fcStaff__name{
  margin-top:8px;    /* 6 → 8 */
  font-size:28px;    /* 22 → 28 */
  font-weight:700;
  line-height:1.2;
}

/* 英語表記 */
.fcStaff__en{
  margin-top:4px;    /* 2 → 4 */
  color:rgba(0,0,0,.55);
  font-size:15px;    /* 13 → 15 */
  letter-spacing:.08em;
}

/* 本文（もし .fcStaff__text の中で .fcP を使っているなら大きく） */
.fcStaff__text .fcP{
  font-size:16px;
  line-height:1.95;
}

/* Contact */
.fcContactGrid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:980px){ .fcContactGrid{grid-template-columns:1fr;} }
.fcContactCard,.fcFormCard{
  border-radius:var(--radius);
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  box-shadow:var(--shadow2);
  padding:18px;
}
.fcContactLines{margin-top:10px; display:grid; gap:10px;}
.fcContactLine{display:flex; gap:12px; align-items:flex-start;}
.fcContactLine .k{min-width:54px; font-size:12px; color:rgba(0,0,0,.55); letter-spacing:.08em;}
.fcContactLine .v{font-weight:700;}

.fcForm{margin-top:10px; display:grid; gap:10px;}
.fcField span{display:block; font-size:12px; color:rgba(0,0,0,.55); margin-bottom:6px;}
.fcField input,.fcField textarea{
  width:100%;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  outline:none;
  font-size:14px;
}
.fcField input:focus,.fcField textarea:focus{
  border-color:rgba(78,169,184,.55);
  box-shadow:0 0 0 6px rgba(78,169,184,.12);
}

/* Footer */
.fcFooter{
  padding:40px 0;
  border-top:1px solid rgba(0,0,0,.06);
  background:#fff;
}
.fcFooter__inner{display:flex; justify-content:space-between; align-items:center; gap:16px;}
.fcFooterLogo{height:40px;}

/* =========================
   Hero: ロゴ削除 → 1カラムで横幅MAX
   ========================= */
.fcHero__grid.fcHero__grid--wide{
  grid-template-columns: 1fr;
}

/* 枠を横に伸ばして余白も少し増やす */
.fcHeroTitleWrap.fcHeroTitleWrap--wide{
  min-height: 460px;
  padding: 44px 44px;
}

/* 文字全体を大きく */
.fcHero__kicker{
  font-size: 13px;
}

.fcHero__titleSmall{
  font-size: clamp(22px, 2.4vw, 30px);
}

.fcHero__titleBig{
  margin-top: 12px;
  font-size: clamp(52px, 5.6vw, 84px);
  letter-spacing: .02em;
}

/* リード文も読みやすく少し大きく */
.fcHero__lead{
  font-size: 15px;
  max-width: 720px;
  margin-top: 18px;
}

/* CTAも少し大きく */
.fcBtn{
  font-size: 15px;
  padding: 13px 18px;
}

/* ミニ連絡行も少し大きく */
.fcMiniLine{
  padding: 11px 14px;
}
.fcMiniLine .k{ font-size: 12px; }
.fcMiniLine .v{ font-size: 14px; }

/* スマホ調整 */
@media (max-width: 760px){
  .fcHeroTitleWrap.fcHeroTitleWrap--wide{
    min-height: 380px;
    padding: 28px 22px;
  }
  .fcHero__titleBig{
    font-size: clamp(40px, 9vw, 54px);
  }
}