@charset "UTF-8";

/* ================================================================
   カラーパレット (Figmaより)
================================================================ */
:root {
  --color-brown:        #4F4034; /* メインテキスト・見出し */
  --color-brown-btn:   #78534A; /* CTAボタン背景 */
  --color-terracotta:  #A26457; /* アクセント */
  --color-salmon:      #E57B7E; /* トップバー・フッター */
  --color-pink:        #EDABAB; /* 英語サブタイトル */
  --color-cream:       #FDF7F3; /* ヘッダー背景 */
  --color-pink-light:  #F8E9E9; /* featuresセクション背景 */
  --color-pink-pale:   #F5E2E2; /* contactセクション背景 */
}

/* ================================================================
   リセット・ベース
================================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--color-brown);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
}

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

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

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

/* ================================================================
   レイアウト
================================================================ */
.l-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 136px;
}

/* ================================================================
   共通コンポーネント: セクション見出し
================================================================ */
.c-section-head {
  text-align: center;
  margin-bottom: 70px;
}

.c-section-head__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--color-brown);
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.c-section-head__en {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: var(--color-pink);
  margin-top: 10px;
  letter-spacing: 0.08em;
}

/* ================================================================
   ヘッダー (Figma: 1470 × 216px / 上段: ロゴ+CTA / 下段: ナビ)
================================================================ */
.l-header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  /* 合体2の波形シェイプをSVGで再現 (viewBox: 0 0 1470 216) */
  background: url('../images/header-wave.svg') top left / 100% 216px no-repeat;
}

/* トップバー (Figma: 長方形23=全幅サーモン, 長方形25=x21白, 長方形26=x1428白) */
.l-header__topbar {
  height: 7px;
  background: var(--color-salmon);
  position: relative;
}
.l-header__topbar::before {
  content: '';
  position: absolute;
  left: 21px;
  top: 0;
  width: 21px;
  height: 7px;
  background: #fff;
}
.l-header__topbar::after {
  content: '';
  position: absolute;
  right: 21px;
  top: 0;
  width: 21px;
  height: 7px;
  background: #fff;
}

/* インナー全体: 209px (= 216 - 7) / position:relative で子要素を絶対配置 */
.l-header__inner {
  position: relative;
  max-width: 1470px;
  margin: 0 auto;
  height: 209px;
}

/* ━━ 上段: ロゴ + CTA ━━
   Figma: グループ50 y=14 (fromFrame) → inner内 top=7px
   左端 x=135, CTA x=1025 */

.l-header__logo {
  position: absolute;
  top: 7px;   /* y=14(frame) - 7(topbar) = 7 */
  left: 135px;
  display: flex;
  align-items: center;
  gap: 17px;
}

.l-header__logo-mark {
  width: 57px;
  height: 57px;
  object-fit: contain;
  flex-shrink: 0;
}

.l-header__logo-text {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.l-header__logo-name {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-brown);
  white-space: nowrap;
  line-height: 1.2;
}

.l-header__logo-en {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--color-pink);
  white-space: nowrap;
  letter-spacing: 0.03em;
}

/* CTAボタン: Figma パス30のオーガニックシェイプをclip-pathで再現 */
.l-header__cta {
  position: absolute;
  top: 16px;
  right: 135px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--color-brown-btn);
  color: #fff;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 16px;
  font-weight: 700;
  width: 310px;
  height: 50px;
  border-radius: 0;
  clip-path: path('M28.9482 0.506791L49.8704 0.506791L74.0157 0.308049L106.146 0.208679L136.689 0.109308L178.08 0L232.074 0.308049L254.56 0.506791L276.372 1.10302C283.563 1.10302 288.544 0.279012 294.151 2.5C299.079 4.4482 302.234 5.61208 304.89 9C309.274 14.8258 310 20.4088 310 25.1507C310 28.3646 308.344 34.9306 306.197 38C304.078 41.3196 302.191 43.5303 295.085 46.5C292.023 47.7809 288.794 47.5317 283.879 48.5C279.758 49.3146 273.853 48.9997 269.565 48.9997L230.496 49.4966L201.794 50L111.455 49.7947L64.0411 49.4966L38.75 48.9997C32.4022 48.9997 27.7757 49.4091 22.4115 48C17.3571 47.1189 12.7509 44.8954 9.33812 43C5.25314 40.7358 3.57792 37.0271 1.5947 33.2745C0.552789 31.3104 0 27.627 0 25.1507C0 22.5721 0.651682 19.8548 1.5947 17.146C2.9205 13.317 3.95727 7.8765 9.33812 5C16.159 1.34965 19.2125 1.53815 28.9482 0.506791Z');
  transition: opacity 0.2s;
  letter-spacing: 0.02em;
}

.l-header__cta:hover {
  opacity: 0.85;
}

.l-header__cta-arrow {
  flex-shrink: 0;
}

/* ━━ 下段: ナビゲーション ━━
   Figma: グループ6 y=91 (fromFrame) → inner top=84, 高さ82px
   x=276, width=917px → 1470px幅内で中央寄せ */

.l-header__nav {
  position: absolute;
  top: 84px;  /* y=91(frame) - 7(topbar) = 84 */
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
}

.l-header__nav-list {
  display: flex;
  align-items: stretch;
  height: 82px;
}

/* 各ナビアイテム: 幅183px (= 917 / 5) / 区切りは点線 */
.l-header__nav-item {
  width: 183px;   /* 917px / 5 items */
  flex-shrink: 0;
  border-left: 2px dotted #707070;
}
.l-header__nav-item:last-child {
  border-right: 2px dotted #707070;
}

.l-header__nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px;
  height: 100%;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-brown);
  transition: opacity 0.2s;
}

.l-header__nav-link:hover {
  opacity: 0.7;
}

/* アイコン (Figma: 47×47) */
.l-header__nav-icon {
  width: 47px;
  height: 47px;
  object-fit: contain;
}

/* ================================================================
   ヒーローセクション (Figma: 681px visible below header)
================================================================ */
.p-hero {
  position: relative;
  height: 681px;
  overflow: hidden;
  background: #fff;
  margin-top: -20px;
}

/* 旧背景画像 → 非表示 */
.p-hero__bg { display: none; }

/* オーバーレイ (旧: 写真+テキスト焼込み → 非表示) */
.p-hero__overlay { display: none; }

/* ================================================================
   働きやすい環境づくり (Figma: y=897〜1690)
================================================================ */
.p-benefits {
  padding: 100px 0 110px;
  background: #fff;
}

.p-benefits__grid {
  display: flex;
  gap: 89px;
  justify-content: center;
}

/* ベネフィットカード */
.p-benefits__card {
  width: 340px;
  flex-shrink: 0;
}

.p-benefits__card-img {
  width: 340px;
  height: 200px;
  overflow: hidden;
}

.p-benefits__card-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-benefits__card-body {
  padding-top: 33px;
}

.p-benefits__card-title-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin-bottom: 18px;
}

.p-benefits__card-title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: #000;
  line-height: 1.3;
}

/* 装飾アイコン (Figma: 46×30px 画像) */
.p-benefits__card-deco {
  display: block;
  width: 46px;
  height: 30px;
  flex-shrink: 0;
  align-self: center;
}

.p-benefits__card-text {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-brown);
  line-height: 1.85;
}

/* ================================================================
   メッセージ / Features (Figma: 1470×679px)
================================================================ */
.p-features {
  position: relative;
  height: 679px;
  overflow: hidden;
}

/* 背景SVG */
.p-features__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
}

/* 左写真サークル (Figma: x=89, y=63, 261×260px) */
.p-features__circle-left,
.p-features__circle-right {
  position: absolute;
  width: 290px;
  height: 275px;
}
.p-features__circle-left { left: 6.1%; top: 63px; }
.p-features__circle-right { left: 73.1%; top: 277px; }

/* デコ円（背景カラー）: パス8 → オフセット位置 */
.p-features__circle-deco {
  position: absolute;
  top: 13px; left: 29px;
  width: 261px; height: auto;
}
/* 写真円（前面）: パス9 → 基準位置 */
.p-features__circle-photo {
  position: absolute;
  top: 0; left: 0;
  width: 261px; height: auto;
  clip-path: circle(50%);
}

/* テキスト (Figma: 中央, title y=136, Features y=220, body y=328) */
.p-features__content {
  position: absolute;
  top: 136px;
  left: 50%;
  transform: translateX(-50%);
  width: 566px;
  text-align: center;
  z-index: 1;
}

/* 動物イラスト */
.p-features__animal {
  position: absolute;
  height: auto;
}

.p-features__title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 25px;
  font-weight: 700;
  color: var(--color-brown);
  line-height: 1.68; /* 42px / 25px */
  letter-spacing: 0.03em;
}

.p-features__en {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: var(--color-pink);
  margin-top: 0;
  margin-bottom: 0;
  line-height: 42px;
  letter-spacing: 0.08em;
}

.p-features__body {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-brown);
  line-height: 1.85;
  margin-top: 14px;
}

/* ================================================================
   採用の流れ (Figma: y=2369〜3190)
================================================================ */
.p-process {
  position: relative;
  padding: 86px 0 146px;
  background: #fff;
}
.p-process .l-container {
  position: relative;
}
.p-process__deco-giraffe {
  position: absolute;
  right: -60px;
  top: 70px;
  width: 90px;
  height: auto;
}
.p-process__deco-stump {
  position: absolute;
  left: 60px;
  bottom: -40px;
  width: 200px;
  height: auto;
}

.p-process__steps {
  display: flex;
  gap: 40px;
  justify-content: center;
}

.p-process__step {
  width: 323px;
  flex-shrink: 0;
  text-align: center;
}

.p-process__step-circle {
  width: 265px;
  height: 265px;
  margin: 0 auto 40px;
}

.p-process__step-circle img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-process__step-title {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--color-brown);
  margin-bottom: 20px;
  line-height: 1.4;
}

.p-process__step-text {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-brown);
  line-height: 1.85;
  text-align: left;
}

/* ================================================================
   園見学・エントリー (Figma: y=3190〜3891)
================================================================ */
.p-contact {
  padding: 86px 0 100px;
  background: rgba(245, 226, 226, 0.4); /* Rectangle 9: #F5E2E2 at opacity 0.4 */
}

.p-contact__grid {
  display: flex;
  gap: 70px;
  justify-content: center;
}

.p-contact__card {
  width: 333px;
  flex-shrink: 0;
}

/* 学校写真サークル */
.p-contact__card-circle {
  width: 333px;
  height: 200px;
  overflow: hidden;
  margin-bottom: 0;
}

.p-contact__card-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 学校情報 */
.p-contact__card-info {
  padding-top: 20px;
}

.p-contact__card-name {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--color-brown);
  margin-bottom: 8px;
  line-height: 1.4;
}

.p-contact__card-charge {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-brown);
  margin-bottom: 18px;
  line-height: 1.4;
}

/* TELボタン (Figma: パス35 オーガニックシェイプ 234×62px) */
.p-contact__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 234px;
  height: 62px;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  transition: opacity 0.2s;
}

.p-contact__tel:hover {
  opacity: 0.85;
}

.p-contact__tel--01 { background-image: url('../images/tel-bg-01.svg'); }
.p-contact__tel--02 { background-image: url('../images/tel-bg-02.svg'); }
.p-contact__tel--03 { background-image: url('../images/tel-bg-03.svg'); }

.p-contact__tel-label {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

.p-contact__tel-number {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.02em;
}

/* ================================================================
   募集要項 (Figma: y=3983〜4994)
================================================================ */
.p-jobs {
  padding: 100px 0 120px;
  background: #fff;
}

.p-jobs__content {
  text-align: center;
}

.p-jobs__img {
  max-width: 1117px;
  width: 100%;
  margin: 0 auto;
  display: block;
}

/* ================================================================
   フッター (Figma: y=4994〜5049, 55px)
================================================================ */
.l-footer {
  height: 55px;
  background: var(--color-salmon);
  display: flex;
  align-items: center;
  justify-content: center;
}

.l-footer__copy {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.03em;
}

/* ================================================================
   ページトップボタン
================================================================ */
.p-pagetop {
  position: fixed;
  right: 40px;
  bottom: 40px;
  width: 82px;
  height: 81px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  z-index: 50;
}

.p-pagetop.is-visible {
  opacity: 1;
  visibility: visible;
}

.p-pagetop:hover {
  opacity: 0.8;
}

.p-pagetop img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* SP専用要素 (PC: 非表示) */
.u-sp-only { display: none; }

/* SP用ヒーロー要素 → PC含め全サイズで使用 */
.p-hero__sp-bg {
  display: block;
  position: absolute;
  inset: 0;
}
.p-hero__sp-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-hero__sp-text {
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 90px;
  width: 300px;
}

/* ハンバーガー・ドロワー (PC: 非表示) */
.l-header__hamburger { display: none; }
.l-nav-drawer        { display: none; }
.l-nav-overlay       { display: none; }

/* ================================================================
   ≤1024px 共通: ハンバーガーメニュー
================================================================ */
@media (max-width: 1024px) {

  .l-header {
    background: var(--color-cream);
  }
  .l-header__topbar {
    height: 5px;
  }
  .l-header__topbar::before,
  .l-header__topbar::after {
    display: none;
  }
  .l-header__nav,
  .l-header__cta {
    display: none;
  }

  /* ハンバーガーボタン */
  .l-header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
  }
  .l-header__hamburger-bar {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-brown);
    border-radius: 2px;
    transition: transform 0.3s, opacity 0.3s;
  }
  .l-header__hamburger.is-open .l-header__hamburger-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .l-header__hamburger.is-open .l-header__hamburger-bar:nth-child(2) {
    opacity: 0;
  }
  .l-header__hamburger.is-open .l-header__hamburger-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  /* ナビドロワー */
  .l-nav-drawer {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    right: 0;
    width: 300px;
    height: 100%;
    background: var(--color-cream);
    z-index: 200;
    padding: 80px 30px 40px;
    transform: translateX(100%);
    transition: transform 0.35s ease;
    overflow-y: auto;
  }
  .l-nav-drawer.is-open {
    transform: translateX(0);
  }
  .l-nav-drawer__close {
    position: absolute;
    top: 20px;
    right: 16px;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
  }
  .l-nav-drawer__close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 2px;
    background: var(--color-brown);
    border-radius: 2px;
  }
  .l-nav-drawer__close span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .l-nav-drawer__close span:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  .l-nav-drawer__list {
    display: flex;
    flex-direction: column;
  }
  .l-nav-drawer__item {
    border-bottom: 1px dotted #ccc;
  }
  .l-nav-drawer__link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--color-brown);
  }
  .l-nav-drawer__icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
  }
  .l-nav-drawer__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 30px;
    background: var(--color-brown-btn);
    color: #fff;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 14px;
    font-weight: 700;
    padding: 14px 20px;
    border-radius: 30px;
    text-align: center;
  }

  /* オーバーレイ */
  .l-nav-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 190;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s, visibility 0.35s;
  }
  .l-nav-overlay.is-open {
    opacity: 1;
    visibility: visible;
  }
}

/* ================================================================
   タブレット (481px - 1024px)
================================================================ */
@media (min-width: 481px) and (max-width: 1024px) {

  .l-container {
    padding: 0 40px;
  }

  /* ── Header ── */
  .l-header__inner {
    height: 80px;
  }
  .l-header__logo {
    top: 50%;
    transform: translateY(-50%);
    left: 24px;
    gap: 12px;
  }
  .l-header__logo-mark {
    width: 44px;
    height: 44px;
  }
  .l-header__logo-name {
    font-size: 18px;
    white-space: normal;
    line-height: 1.4;
  }
  .l-header__logo-en {
    font-size: 9px;
    white-space: normal;
  }

  /* ── Hero ── */
  .p-hero {
    height: 480px;
    margin-top: 0;
  }
  .p-hero__bg,
  .p-hero__overlay {
    display: none;
  }
  .p-hero__sp-bg {
    display: block;
    position: absolute;
    inset: 0;
  }
  .p-hero__sp-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
  .p-hero__sp-text {
    display: block;
    position: absolute;
    bottom: 70px;
    left: 24px;
    width: 40%;
    max-width: 260px;
  }
  .p-hero__sp-text img {
    width: 100%;
    height: auto;
  }

  /* ── セクション見出し ── */
  .c-section-head {
    margin-bottom: 50px;
  }
  .c-section-head__title {
    font-size: 24px;
  }
  .c-section-head__en {
    font-size: 16px;
  }

  /* ── フォントサイズ ── */
  .p-benefits__card-title,
  .p-process__step-title,
  .p-contact__card-name   { font-size: 22px; }
  .p-benefits__card-text,
  .p-process__step-text,
  .p-contact__card-charge { font-size: 13px; }
  .p-contact__tel-number  { font-size: 20px; }
  .p-contact__tel-label   { font-size: 12px; }
  .l-footer__copy         { font-size: 12px; }

  /* ── Benefits ── */
  .p-benefits {
    padding: 70px 0 80px;
  }
  .p-benefits__grid {
    flex-wrap: wrap;
    gap: 50px 40px;
    justify-content: center;
  }

  /* ── Features ── */
  .p-features {
    height: auto;
    overflow: visible;
    background: var(--color-pink-light);
    padding: 60px 40px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 30px;
  }
  .p-features__bg,
  .p-features__animal {
    display: none;
  }
  .p-features__circle-left,
  .p-features__circle-right {
    position: relative;
    width: 220px;
    height: 210px;
    flex-shrink: 0;
  }
  .p-features__circle-left  { order: 1; left: auto; top: auto; }
  .p-features__content      { order: 2; position: static; transform: none; width: auto; flex: 1; text-align: center; }
  .p-features__circle-right { order: 3; left: auto; top: auto; }
  .p-features__circle-deco  { top: 10px; left: 22px; width: 200px; }
  .p-features__circle-photo { top: 0; left: 0; width: 200px; }
  .p-features__title { font-size: 18px; }
  .p-features__title br,
  .p-features__body br { display: none; }
  .p-features__body { font-size: 13px; }

  /* ── Process ── */
  .p-process {
    padding: 70px 0 100px;
  }
  .p-process__deco-giraffe,
  .p-process__deco-stump {
    display: none;
  }
  .p-process__steps {
    gap: 20px;
  }
  .p-process__step {
    width: auto;
    flex: 1;
    min-width: 0;
  }
  .p-process__step-circle {
    width: 180px;
    height: 180px;
  }

  /* ── Contact ── */
  .p-contact {
    padding: 70px 0 80px;
  }
  .p-contact__grid {
    flex-wrap: wrap;
    gap: 50px 40px;
    justify-content: center;
  }

  /* ── Jobs ── */
  .p-jobs {
    padding: 70px 0 90px;
  }
  .p-jobs__content {
    overflow-x: auto;
    padding: 0 20px;
  }
  .p-jobs__img {
    width: 900px;
    max-width: none;
  }
}

/* ================================================================
   SP (≤480px)
================================================================ */
@media (max-width: 480px) {

  .u-sp-only { display: inline; }

  /* ── レイアウト ── */
  .l-container {
    padding: 0 20px;
  }

  /* ── Header ── */
  .l-header__inner {
    height: 64px;
  }
  .l-header__logo {
    top: 50%;
    transform: translateY(-50%);
    left: 16px;
    gap: 10px;
  }
  .l-header__logo-mark {
    width: 36px;
    height: 36px;
  }
  .l-header__logo-name {
    font-size: 13px;
    white-space: normal;
    line-height: 1.4;
  }
  .l-header__logo-en {
    font-size: 9px;
    white-space: normal;
  }

  /* ── セクション見出し ── */
  .c-section-head {
    margin-bottom: 40px;
  }
  .c-section-head__title {
    font-size: 22px;
  }
  .c-section-head__en {
    font-size: 15px;
    margin-top: 6px;
  }

  /* ── Hero ── */
  .p-hero {
    height: 480px;
    margin-top: 0;
  }
  .p-hero__bg,
  .p-hero__overlay {
    display: none;
  }
  .p-hero__sp-bg {
    display: block;
    position: absolute;
    inset: 0;
  }
  .p-hero__sp-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 81% center;
  }
  .p-hero__sp-text {
    display: block;
    position: absolute;
    bottom: 70px;
    left: 16px;
    width: 55%;
    max-width: 220px;
  }
  .p-hero__sp-text img {
    width: 100%;
    height: auto;
  }

  /* ── フォントサイズ調整 ── */
  .p-benefits__card-title,
  .p-process__step-title,
  .p-contact__card-name      { font-size: 20px; }
  .p-benefits__card-text,
  .p-process__step-text,
  .p-contact__card-charge    { font-size: 12px; }
  .p-contact__tel-number     { font-size: 18px; }
  .p-contact__tel-label      { font-size: 11px; }
  .l-footer__copy            { font-size: 11px; }

  /* ── Benefits ── */
  .p-benefits {
    padding: 60px 0 70px;
  }
  .p-benefits__grid {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }
  .p-benefits__card {
    width: 100%;
  }
  .p-benefits__card-img {
    width: 100%;
    height: auto;
  }

  /* ── Features ── */
  .p-features {
    height: auto;
    overflow: visible;
    background: var(--color-pink-light);
    padding: 50px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }
  .p-features__bg,
  .p-features__animal {
    display: none;
  }
  .p-features__circle-left,
  .p-features__circle-right {
    position: relative;
    width: 220px;
    height: 210px;
    flex-shrink: 0;
  }
  .p-features__circle-left  { order: 1; left: auto; top: auto; }
  .p-features__content      { order: 2; position: static; transform: none; width: 100%; }
  .p-features__circle-right { order: 3; left: auto; top: auto; }
  .p-features__circle-deco  { top: 10px; left: 22px; width: 200px; }
  .p-features__circle-photo { top: 0; left: 0; width: 200px; }
  .p-features__title { font-size: 18px; }
  .p-features__title br,
  .p-features__body br { display: none; }
  .p-features__body { font-size: 12px; }

  /* ── Process ── */
  .p-process {
    padding: 60px 0 80px;
  }
  .p-process__deco-giraffe,
  .p-process__deco-stump {
    display: none;
  }
  .p-process__steps {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }
  .p-process__step {
    width: 100%;
    max-width: 280px;
  }
  .p-process__step-circle {
    width: 240px;
    height: 240px;
  }

  /* ── Contact ── */
  .p-contact {
    padding: 60px 0 70px;
  }
  .p-contact__grid {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }
  .p-contact__card {
    width: 100%;
  }
  .p-contact__card-circle {
    width: 100%;
  }

  /* ── Jobs ── */
  .p-jobs {
    padding: 60px 0 70px;
  }
  .p-jobs__content {
    overflow-x: auto;
    padding: 0 20px;
  }
  .p-jobs__img {
    width: 800px;
    max-width: none;
  }

  /* ── PageTop ── */
  .p-pagetop {
    right: 16px;
    bottom: 16px;
    width: 56px;
    height: 55px;
  }
}
