@charset "UTF-8";
/* ==========================================================
   コンコンピルクリニック 共通スタイル
   ブレイクポイント: 750px（SP < 750px <= PC）
   PCファースト（SP調整は末尾の @media (max-width: 749.98px) に集約）
========================================================== */

:root {
  --c-rose: #f43f5e;
  --c-rose-l: #fb7185;
  --c-salmon: #ff8f78;
  --c-salmon-l: #ffc8bb;
  --c-pink: #fff1f2;
  --c-pink-line: #f8d1d4;
  --c-green: #00b900;
  --f-base: "Zen Kaku Gothic Antique", "Hiragino Kaku Gothic ProN", sans-serif;
  --f-maru: "Zen Maru Gothic", var(--f-base);
  --f-antique: "Zen Antique", serif;
  --f-antique-soft: "Zen Antique Soft", serif;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}

body {
  font-family: var(--f-base);
  font-weight: 400;
  color: #000;
  background: #fff;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  min-width: 1240px;
}

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

ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

.sp-only {
  display: none !important;
}

.inner {
  width: 1200px;
  margin: 0 auto;
}

/* ===== 見出しコンポーネント（英字＋和文） ===== */
.tit {
  text-align: center;
}
.tit .tit-en {
  display: block;
  font-family: var(--f-base);
  font-weight: 700;
  color: var(--c-rose);
  font-size: 40px;
  line-height: 1.5;
}
.tit .tit-ja {
  display: block;
  font-family: var(--f-maru);
  font-weight: 500;
  font-size: 48px;
  line-height: 1.5;
}

/* ===== CTAボタン（LINE予約） ===== */
.btn-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-green);
  color: #fff;
  font-weight: 700;
  border-radius: 60px;
  box-shadow: 0 4px 10px rgba(0, 133, 0, 0.25);
  transition: transform 0.25s, box-shadow 0.25s;
}
.btn-cta:hover,
.btn-cta:active {
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(0, 133, 0, 0.4);
}
.btn-cta::after {
  content: "〉";
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  font-size: 18px;
  font-weight: 400;
  transition: transform 0.25s;
}
.btn-cta:hover::after,
.btn-cta:active::after {
  transform: translateY(-50%) translateX(5px);
}

/* ===== ヘッダー ===== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  min-width: 1240px;
  height: 100px;
  background: #fff;
  z-index: 100;
}
.header-inner {
  display: flex;
  align-items: center;
  width: 1200px;
  height: 100px;
  margin: 0 auto;
}
.head-logo {
  flex-shrink: 0;
  width: 234px;
}
.head-logo img {
  width: 100%;
}
.gnav {
  margin-left: auto;
}
.gnav-list {
  display: flex;
  align-items: center;
}
.gnav-list li {
  margin-left: 24px;
}
.gnav-list a {
  font-size: 18px;
  font-weight: 700;
  transition: color 0.3s;
}
.gnav-list a:hover,
.gnav-list a.is-active {
  color: var(--c-rose);
}
.header .btn-cta {
  width: 230px;
  height: 40px;
  font-size: 19px;
  margin-left: 28px;
}
.header .btn-cta::after {
  font-size: 16px;
  right: 4px;
}

/* ===== フッター ===== */
.footer {
  background: #fff;
  padding: 42px 0 40px;
}
.footer a:hover {
  color: var(--c-rose);
}
.footer-inner {
  width: 1200px;
  margin: 0 auto;
  display: flex;
}
.foot-about {
  width: 423px;
  margin-right: 70px;
}
.foot-logo {
  width: 293px;
}
.foot-logo img {
  width: 100%;
}
.foot-desc {
  font-size: 16px;
  line-height: calc(24 / 16);
  font-weight: 500;
  margin-top: 26px;
}
.foot-note {
  font-size: 14px;
  font-weight: 500;
  margin-top: 18px;
}
.foot-nav {
  display: flex;
  flex: 1;
  justify-content: space-between;
}
.foot-col dt {
  font-size: 22px;
  font-weight: 700;
  color: #622b2c;
  margin-bottom: 8px;
}
.foot-col dd li {
  font-size: 18px;
  font-weight: 500;
  line-height: calc(28 / 18);
}
.foot-col:last-child .foot-info {
  font-size: 16px;
  font-weight: 500;
  line-height: calc(24 / 16);
}
.foot-bottom {
  margin-top: 44px;
  border-top: 1px solid #000;
}
.foot-copy {
  width: 1200px;
  margin: 0 auto;
  text-align: left;
  font-size: 16px;
  font-weight: 500;
  padding-top: 14px;
}

/* ==========================================================
   SP（<= 749.98px）
========================================================== */
@media (max-width: 749.98px) {
  html {
    scroll-padding-top: min(calc(100 / 750 * 100vw), 100px);
    overflow-x: hidden;
  }
  .pc-only {
    display: none !important;
  }
  .sp-only {
    display: revert !important;
  }
  body {
    min-width: 0;
  }
  /* 横オーバーフロー（plan波テクスチャ等のフルブリード装飾）でSP実機のレイアウト
     ビューポートが広がり全体が見切れるのを防ぐ。overflow-x:clipはX軸のみクリップ
     （縦のはみ出し=キャラ等は温存／アンカースクロールにも影響しない）。 */
  #wrapper {
    overflow-x: clip;
  }

  .inner {
    width: calc(670 / 750 * 100%);
  }

  /* 見出し */
  .tit .tit-en {
    font-size: min(calc(40 / 750 * 100vw), 40px);
    margin-bottom: 3%;
  }
  .tit .tit-ja {
    font-size: min(calc(48 / 750 * 100vw), 48px);
  }

  /* CTAボタン */
  .btn-cta::after {
    right: min(calc(36 / 750 * 100vw), 36px);
    font-size: min(calc(28 / 750 * 100vw), 28px);
  }

  /* ヘッダー */
  .header {
    min-width: 0;
    height: min(calc(100 / 750 * 100vw), 100px);
  }
  .header-inner {
    width: calc(714 / 750 * 100%);
    height: 100%;
    justify-content: space-between;
  }
  .head-logo {
    width: min(calc(234 / 750 * 100vw), 234px);
  }
  .header .btn-cta {
    width: min(calc(300 / 750 * 100vw), 300px);
    height: min(calc(52 / 750 * 100vw), 52px);
    font-size: min(calc(19 / 750 * 100vw), 19px);
    margin-left: auto;
    margin-right: calc(24 / 750 * 100%);
  }
  .header .btn-cta::after {
    font-size: min(calc(20 / 750 * 100vw), 20px);
    right: min(calc(16 / 750 * 100vw), 16px);
  }

  /* ハンバーガー（静止・モーフィングなし） */
  .menu-toggle {
    flex-shrink: 0;
    width: min(calc(46 / 750 * 100vw), 46px);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: var(--f-base);
    margin-top: 2%;
  }
  .menu-toggle .bars {
    display: block;
    width: 100%;
    height: min(calc(32 / 750 * 100vw), 32px);
    position: relative;
  }
  .menu-toggle .bars::before,
  .menu-toggle .bars::after,
  .menu-toggle .bars span {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: max(calc(2 / 750 * 100vw), 1px);
    background: #000;
  }
  .menu-toggle .bars::before {
    top: 0;
  }
  .menu-toggle .bars span {
    top: 50%;
    left: 50%;
    width: calc(34 / 46 * 100%);
    transform: translate(-50%, -50%);
  }
  .menu-toggle .bars::after {
    bottom: 0;
  }
  .menu-toggle .label {
    display: block;
    font-size: min(calc(15 / 750 * 100vw), 15px);
    text-align: center;
    font-weight: 600;
    margin-top: calc(60 / 750 * 100%);
  }

  /* SPメニューオーバーレイ */
  .gnav {
    position: fixed;
    inset: 0;
    background: #ffd1d4;
    z-index: 200;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
  }
  .gnav.is-open {
    opacity: 1;
    visibility: visible;
  }
  /* 中身のみ上からスライドイン（×は固定） */
  .gnav-list,
  .gnav-logo {
    transform: translateY(calc(-40 / 750 * 100vw));
    transition: transform 0.3s ease;
  }
  .gnav.is-open .gnav-list,
  .gnav.is-open .gnav-logo {
    transform: translateY(0);
  }
  .gnav-list {
    display: block;
    align-items: normal;
    padding: min(calc(160 / 750 * 100vw), 160px) 0 min(calc(60 / 750 * 100vw), 60px);
    text-align: center;
  }
  .gnav-list li {
    margin-left: 0;
  }
  .gnav-list li + li {
    margin-top: min(calc(48 / 750 * 100vw), 48px);
  }
  .gnav-list a {
    font-size: min(calc(34 / 750 * 100vw), 34px);
    font-weight: 700;
  }
  .gnav-close {
    position: absolute;
    z-index: 10;
    top: min(calc(28 / 750 * 100vw), 28px);
    right: calc(18 / 750 * 100%);
    width: min(calc(46 / 750 * 100vw), 46px);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: var(--f-base);
  }
  .gnav-close .cross {
    display: block;
    width: 100%;
    height: min(calc(32 / 750 * 100vw), 32px);
    position: relative;
  }
  .gnav-close .cross::before,
  .gnav-close .cross::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: #000;
  }
  .gnav-close .cross::before {
    transform: rotate(45deg);
  }
  .gnav-close .cross::after {
    transform: rotate(-45deg);
  }
  .gnav-close .label {
    display: block;
    font-size: min(calc(14 / 750 * 100vw), 14px);
    text-align: center;
    margin-top: calc(80 / 750 * 100%);
  }
  .gnav-logo {
    width: min(calc(376 / 750 * 100vw), 376px);
    margin: min(calc(80 / 750 * 100vw), 80px) auto 0;
  }

  /* フッター */
  .footer {
    padding: min(calc(60 / 750 * 100vw), 60px) 0 min(calc(40 / 750 * 100vw), 40px);
  }
  .footer-inner {
    width: calc(640 / 750 * 100%);
    flex-direction: column;
  }
  .foot-about {
    order: 2;
    width: auto;
    margin-right: 0;
    margin-top: min(calc(60 / 750 * 100vw), 60px);
    text-align: center;
  }
  .foot-logo {
    width: min(calc(292 / 750 * 100vw), 292px);
    margin: 0 auto;
  }
  .foot-desc {
    font-size: min(calc(22 / 750 * 100vw), 22px);
    font-weight: 500;
    line-height: calc(28/20);
    margin-top: min(calc(30 / 750 * 100vw), 30px);
  }
  .foot-note {
    font-size: min(calc(20 / 750 * 100vw), 20px);
    margin-top: calc(60 / 750 * 100%);
  }
  .foot-about .foot-desc,
  .foot-about .foot-note {
    text-align: left;
  }
  .foot-nav {
    order: 1;
    flex: 0 1 auto;
    flex-wrap: wrap;
  }
  .foot-col {
    width: 48%;
  }
  /* 運営元は長文のため全幅 */
  .foot-col:last-child {
    width: 100%;
    margin-top: min(calc(40 / 750 * 100vw), 40px);
  }
  .foot-col dt {
    font-size: min(calc(26 / 750 * 100vw), 26px);
    margin-bottom: calc(16 / 750 * 100%);
  }
  .foot-col dd li {
    font-size: min(calc(22 / 750 * 100vw), 22px);
    font-weight: 500;
    line-height: 2;
  }
  .foot-col:last-child .foot-info {
    font-size: min(calc(22 / 750 * 100vw), 22px);
    font-weight: 500;
    line-height: 2.1;
  }
  .foot-bottom {
    margin-top: min(calc(50 / 750 * 100vw), 50px);
  }
  .foot-copy {
    width: auto;
    text-align: center;
    font-size: min(calc(20 / 750 * 100vw), 20px);
    padding-top: min(calc(40 / 750 * 100vw), 40px);
  }
}
