@charset "UTF-8";
/*
 Theme Name: SANGO Child
 Theme URI: https://saruwakakun.design
 Author: SARUWAKA
 Author URI: https://saruwakakun.com
 Template: sango-theme
 Version: 4.0
*/

/* =============================================================
   .aivy-scope  ―  親テーマ漏れ防止用ベースリセット
   このスコープ配下にすべてのカスタムCSSを書く。
   font-size は em で組むため、ここに明示的な基準サイズを設定する。
   ============================================================= */
.aivy-scope {
  /* フォントファミリー（CDN 経由で読み込み済み、functions.php 参照） */
  --aivy-font-jp: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴシック", "Yu Gothic", "YuGothic", sans-serif;
  --aivy-font-en: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --aivy-font-mixed: "Inter", "Noto Sans JP", "Hiragino Sans", sans-serif;

  font-size: 16px;
  line-height: 1.6;
  color: inherit;
}

/* サイドバー見出し */
.sidebar .wp-block-group div.wp-block-heading, .drawer .wp-block-group div.wp-block-heading {
    color: #fff;
    background-color: #0096b2;
    padding: 6px 18px;
    margin: 0;
    font-size: 1.2em;
    font-weight: 700;
    line-height: 1.5;
    display: block;
}

/* 見出し・段落・リスト類の親テーマスタイルを無効化 */
.aivy-scope h1,
.aivy-scope h2,
.aivy-scope h3,
.aivy-scope h4,
.aivy-scope h5,
.aivy-scope h6 {
  all: unset;
  display: block;
  font-weight: inherit;
  line-height: 1.3;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
}

.aivy-scope p,
.aivy-scope li,
.aivy-scope dt,
.aivy-scope dd,
.aivy-scope ul,
.aivy-scope ol,
.aivy-scope dl {
  all: unset;
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
  background: none;
  border: none;
}

.aivy-scope li {
  display: list-item;
  list-style: none;
}

.aivy-scope a {
  color: inherit;
  text-decoration: none;
}

.aivy-scope button {
  all: unset;
  cursor: pointer;
}

.aivy-scope img,
.aivy-scope svg {
  max-width: 100%;
  height: auto;
  display: block;
}

.aivy-scope * {
  box-sizing: border-box;
}

/* =============================================================
   SVG アイコン共通ヘルパー（グローバル定義）
   - <span class="aivy-icon aivy-icon--name"></span> で使用
   - 各 modifier クラスで mask-image を指定（下記）
   - currentColor で色追従、font-size 連動でサイズ調整
   ============================================================= */
.aivy-icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  background-color: currentColor;
  -webkit-mask-image: var(--aivy-icon);
          mask-image: var(--aivy-icon);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  flex-shrink: 0;
}

.aivy-icon--chevron  { --aivy-icon: url('assets/icons/material-keyboard-arrow-up.svg'); }
.aivy-icon--arrow    { --aivy-icon: url('assets/icons/material-symbols-arrow-forward.svg'); }
.aivy-icon--download { --aivy-icon: url('assets/icons/material-file-download.svg'); }
.aivy-icon--email    { --aivy-icon: url('assets/icons/material-email.svg'); }
.aivy-icon--x        { --aivy-icon: url('assets/icons/x.svg'); }
.aivy-icon--close    { --aivy-icon: url('assets/icons/material-close.svg'); }

/* =============================================================
   ヘッダー + ドロワー + フッター 共通リセット
   `<body>` 直下に出るため `.aivy-scope` 外に独自スコープを設ける。
   ============================================================= */
.aivy-header,
.aivy-drawer,
.aivy-footer {
  --aivy-font-jp: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴシック", "Yu Gothic", "YuGothic", sans-serif;
  --aivy-font-mixed: "Inter", "Noto Sans JP", "Hiragino Sans", sans-serif;
  --aivy-color-text: #222;
  --aivy-color-text-secondary: #333;
  --aivy-color-accent: #007E95;
  --aivy-color-bg-dark: #333;
  --aivy-color-white: #fff;
  --aivy-color-copyright: #aaa;
  --aivy-color-footer-bg: #222;
  --aivy-color-footer-sep: #333;

  font-family: var(--aivy-font-mixed);
  font-size: 14px;
  line-height: 1.4;
  color: var(--aivy-color-text);
  letter-spacing: 0.05em;
}

/* リセットは :where() で specificity 0 にして、コンポーネントクラスの色等を上書きしないようにする */
:where(.aivy-header, .aivy-drawer, .aivy-footer) * {
  box-sizing: border-box;
}

:where(.aivy-header, .aivy-drawer, .aivy-footer) :where(ul, li) {
  margin: 0;
  padding: 0;
  list-style: none;
}

:where(.aivy-header, .aivy-drawer, .aivy-footer) :where(p) {
  margin: 0;
}

:where(.aivy-header, .aivy-drawer, .aivy-footer) :where(a) {
  color: inherit;
  text-decoration: none;
}

:where(.aivy-header, .aivy-drawer, .aivy-footer) :where(button) {
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

:where(.aivy-header, .aivy-drawer, .aivy-footer) :where(img) {
  display: block;
  max-width: 100%;
  height: auto;
}

/* =============================================================
   ヘッダー本体  ―  fixed, top:16px (mobile) / top:20px (≥481px)
   3段階サイズ：Small (~480) / Medium (481-1023) / Large (≥1024)
   ============================================================= */
/* 外殻：fixed + 左右 gutter のみ持つ透明コンテナ */
.aivy-header {
  position: fixed;
  top: 16px;
  left: 0;
  right: 0;
  z-index: 5;
  padding: 0 16px;
  background-color: transparent;
}

/* 内側：白角丸の "浮島"（H-α 観察値踏襲） */
.aivy-header__inner {
  display: flex;
  align-items: center; /* モバイル時の hamburger / logo 縦中央揃え */
  height: 52px;
  padding: 16px;
  margin: 0 auto;
  gap: 16px;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  box-shadow: 0 5px 25px -5px rgba(0, 0, 0, 0.12);
	backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.aivy-header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.aivy-header__logo img {
  width: 110px;
  height: 25px;
  object-fit: contain;
  display: block;
}

/* ヘッダー右端へのスペーサ（PC で nav と ctas を伸縮） */
.aivy-header__nav {
  display: none;
  flex: 1;
  justify-content: center;
}

.aivy-header__menu {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
}

.aivy-header__item {
  display: flex;
  align-items: center;
  position: relative;
}

.aivy-nav-link,
.aivy-dropdown__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  gap: 4px;
  padding: 12px;
  font-family: var(--aivy-font-mixed);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--aivy-color-text);
  line-height: 1.4;
  text-align: center;
}

/* dropdown trigger → panel 間の 8px 隙間に不可視ブリッジを置き、
   カーソル移動で hover が一瞬切れて閉じるバグを防止 */
.aivy-dropdown::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 8px;
}

/* dropdown — 白角丸の浮島（H-α 観察値踏襲） */
.aivy-dropdown__panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  overflow: hidden;
  max-height: 0;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.1);
  transition: max-height 0.3s cubic-bezier(0.4, 0.4, 0, 1);
  pointer-events: none;
}

.aivy-dropdown.is-open .aivy-dropdown__panel,
.aivy-dropdown:hover .aivy-dropdown__panel,
.aivy-dropdown:focus-within .aivy-dropdown__panel {
  max-height: 240px;
  pointer-events: auto;
}

.aivy-dropdown__menu {
  display: flex;
  flex-direction: column;
  padding: 12px;
  margin: 0;
  min-width: 192px;
}

/* dropdown 内のアイコンは 16×19 — 観察値 */
.aivy-dropdown__menu .aivy-icon {
  width: 16px;
  height: 19px;
}

.aivy-dropdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 0;
  font-family: var(--aivy-font-mixed);
  font-size: 14px;
  font-weight: 500;
  color: var(--aivy-color-text);
  transition: color 0.3s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-dropdown-item:hover,
.aivy-dropdown-item:hover .aivy-icon {
  color: var(--aivy-color-accent);
}

.aivy-icon--chevron { width: 16px; height: 16px; }
.aivy-icon--arrow   { width: 16px; height: 16px; }

/* dropdown 内の矢印・chevron は #333（親の white を打ち消す、ヘッダー dropdown 専用） */
.aivy-dropdown__trigger .aivy-icon--chevron,
.aivy-dropdown-item .aivy-icon--arrow {
  color: var(--aivy-color-text-secondary);
}

/* chevron : デフォルトは下向き（∨）、open時に上向き（∧）— ユーザー希望のカスタム挙動 */
.aivy-dropdown .aivy-icon--chevron {
  transform: rotate(180deg);
  transition: transform 0.3s cubic-bezier(0.4, 0.4, 0, 1);
}
.aivy-dropdown.is-open .aivy-icon--chevron,
.aivy-dropdown:hover .aivy-icon--chevron,
.aivy-dropdown:focus-within .aivy-icon--chevron {
  transform: rotate(0);
}

/* CTA cluster */
.aivy-header__ctas {
  display: none;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.aivy-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-cta:hover {
  opacity: 0.7;
}

.aivy-cta--outline {
  width: 150px;
  height: 42px;
  padding: 0;
  gap: 12px;
  border: 2px solid var(--aivy-color-text);
  border-radius: 64px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: var(--aivy-color-text);
  line-height: 1.4;
}

.aivy-cta--outline .aivy-icon {
  width: 24px;
  height: 24px;
  color: var(--aivy-color-text-secondary);
}

.aivy-cta--filled {
  width: 42px;
  height: 42px;
  background-color: var(--aivy-color-text);
  color: var(--aivy-color-white);
  border-radius: 64px;
}

/* 黒丸内 icon は実描画 20x20（H-β 観察値）→ 1em で 20px = font-size 20px */
.aivy-cta--filled .aivy-icon {
  width: 20px;
  height: 20px;
}

/* ヘッダー X : .aivy-cta--filled と同じ装飾（黒丸 + 白X） — H-3 */
.aivy-cta--x {
  width: 42px;
  height: 42px;
  background-color: var(--aivy-color-text);
  color: var(--aivy-color-white);
  border-radius: 64px;
}

.aivy-cta--x .aivy-icon {
  width: 20px;
  height: 20px;
}

/* ハンバーガー（モバイル時のみ表示） */
.aivy-hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 32px;
  height: 40px;
  margin-left: auto;
  flex-shrink: 0;
}

.aivy-hamburger span {
  display: block;
  width: 26px;
  height: 2px;
  background-color: var(--aivy-color-text);
  transition: transform 0.3s cubic-bezier(0.4, 0.4, 0, 1),
              opacity   0.3s cubic-bezier(0.4, 0.4, 0, 1);
}

/* ハンバーガー open 状態の三本→×トランス（任意装飾） */
.aivy-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.aivy-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.aivy-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* =============================================================
   ブレークポイント
   - Small  (default, ≤480)  ：header h:52, top:16, pad:16, logo 110×25
   - Medium (481-1023)         ：header h:62, top:20, pad:26, logo 150×35
   - Large  (≥1024)            ：header h:74, top:20, pad:40, logo 150×35
   - PC nav (≥1141)            ：horizontal nav + CTA cluster 表示、hamburger 非表示
   ============================================================= */
@media (min-width: 481px) {
  .aivy-header { top: 20px; padding: 0 26px; }
  .aivy-header__inner { height: 62px; }
  .aivy-header__logo img { width: 150px; height: 35px; }
}

@media (min-width: 1024px) {
  .aivy-header { padding: 0 40px; }
  .aivy-header__inner { height: 74px; width: 1380px; }
}

@media (min-width: 1141px) {
  .aivy-header__inner { align-items: flex-start; } /* PC は観察値どおり上揃え */
  .aivy-header__nav  { display: flex; }
  .aivy-header__ctas { display: flex; }
  .aivy-hamburger    { display: none; }
}

/* =============================================================
   ドロワー（モバイル時のみ）
   右寄せ 320px 固定、bg #333、左に半透明 backdrop
   ============================================================= */
.aivy-drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.4, 0.4, 0, 1),
              visibility 0s linear 0.3s;
}

.aivy-drawer[aria-hidden="false"] {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
  transition: opacity 0.3s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-drawer__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.16);
  border: 0;
  cursor: pointer;
  padding: 0;
  margin: 0;
}

.aivy-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 320px;
  max-width: 100vw;
  height: 100vh;
  background-color: var(--aivy-color-bg-dark);
  padding: 80px 40px 60px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0.4, 0, 1);
  color: var(--aivy-color-white);
  overflow-y: auto;
}

.aivy-drawer[aria-hidden="false"] .aivy-drawer__panel {
  transform: translateX(0);
}

.aivy-drawer__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--aivy-color-white);
}

.aivy-drawer__close .aivy-icon {
  font-size: 32px;
}

.aivy-drawer__nav {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.aivy-drawer__section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.aivy-drawer__section-title {
  font-family: var(--aivy-font-jp);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.4;
  color: var(--aivy-color-white);
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #707070;
}

.aivy-drawer__menu {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0;
}

.aivy-drawer-link {
  display: inline-block;
  font-family: var(--aivy-font-mixed);
  font-size: 14px;
  font-weight: 400;
  color: var(--aivy-color-white);
  letter-spacing: 0.05em;
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-drawer-link:hover {
  opacity: 0.7;
}

.aivy-drawer__ctas {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.aivy-cta--block {
  width: 100%;
  height: 50px;
  border-radius: 4px;
  font-size: 15px;
  letter-spacing: 0.05em;
  padding: 0 20px;
  gap: 12px;
  justify-content: center;
}

.aivy-cta--block.aivy-cta--outline {
  background-color: var(--aivy-color-white);
  border: 0;
  color: var(--aivy-color-text);
}

.aivy-cta--block.aivy-cta--filled {
  width: 100%;
  height: 50px;
  border-radius: 4px;
  color: var(--aivy-color-white);
}

.aivy-cta--block .aivy-icon {
  font-size: 18px;
  color: currentColor;
}

/* ドロワー X : 見本踏襲で画像直貼り（黒丸+白X が描き込み済み） */
.aivy-drawer__sns {
  display: inline-flex;
  width: 50px;
  height: 50px;
  align-items: center;
  justify-content: center;
  align-self: center;
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-drawer__sns:hover {
  opacity: 0.7;
}

.aivy-drawer__sns img {
  display: block;
  width: 100%;
  height: 100%;
}

/* PC レイアウトでは drawer 完全非表示 */
@media (min-width: 1141px) {
  .aivy-drawer { display: none; }
}

/* =============================================================
   ページ本体の上部余白（fixed header に隠れないよう）
   ============================================================= */
body.aivy-has-header { padding-top: 68px; }                       /* Small: 52 + 16 */
@media (min-width: 481px)  { body.aivy-has-header { padding-top: 82px; } }  /* Medium: 62 + 20 */
@media (min-width: 1024px) { body.aivy-has-header { padding-top: 94px; } }  /* Large: 74 + 20 */

/* =============================================================
   フッター
   - bg #222 / 文字色白
   - 切替境界：min-width: 991px（PC 2カラム ↔ モバイル縦積）
   - モバイルでは RIGHT block を display:none で 9 リンク消滅（見本踏襲）
   ============================================================= */
.aivy-footer {
  position: relative;
  width: 100%;
  background-color: transparent;
  color: var(--aivy-color-white);
}

/* ---- TOP : CTA カード 2枚 ---- */
.aivy-footer__top {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.aivy-footer-card {
  position: relative;
  display: block;
  width: 100%;
  height: 300px;
  background-color: var(--aivy-color-footer-bg);
  overflow: hidden;
}

/* 画像レイヤー：カードの暗い bg の上に半透明配置、hover で明るく + 拡大 */
.aivy-footer-card__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.5;
  transform: scale(1);
  transition: opacity 0.3s cubic-bezier(0.4, 0.4, 0, 1),
              transform 0.3s cubic-bezier(0.4, 0.4, 0, 1);
  pointer-events: none;
}

.aivy-footer-card[data-card="company"] .aivy-footer-card__bg {
  background-image: url('assets/images/cta-company.webp');
}

.aivy-footer-card[data-card="request"] .aivy-footer-card__bg {
  background-image: url('assets/images/cta-request.webp');
}

.aivy-footer-card:hover .aivy-footer-card__bg {
  opacity: 0.8;
  transform: scale(1.05);
}

.aivy-footer-card__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 16px;
  padding: 0 20px;
  text-align: center;
}

.aivy-footer-card__en {
  font-family: var(--aivy-font-mixed);
  font-size: 32px;
  font-weight: 800;
  line-height: 1.4;
  color: var(--aivy-color-white);
}

.aivy-footer-card__ja {
  font-family: var(--aivy-font-mixed);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--aivy-color-white);
}

.aivy-footer-card__bar {
  display: block;
  width: 18px;
  height: 2px;
  background-color: var(--aivy-color-white);
  margin: 22px 0;
}

/* CTA カード矢印 — F-β 観察値：白円リング 44×44 + 内側矢印 18×18 */
.aivy-footer-card__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 2px solid var(--aivy-color-white);
  border-radius: 50%;
  background-color: transparent;
  color: var(--aivy-color-white);
}

.aivy-footer-card__arrow .aivy-icon {
  width: 18px;
  height: 18px;
}

/* ---- BOTTOM : bg #222 のフッター本体（見本: padding 100px 0 + 内側 0 60px gutter） ---- */
.aivy-footer__bottom {
  background-color: var(--aivy-color-footer-bg);
  padding: 100px 0;
}

.aivy-footer__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 0 24px;
  margin: 0 auto;
}

/* ---- LEFT block : info, contact, X ---- */
/* gap 0、各要素の margin で間隔調整（F-β 観察値踏襲） */
.aivy-footer__left {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  max-width: 320px;
  text-align: center;
}

.aivy-footer__logo {
  margin-bottom: 21px;
}

.aivy-footer__logo img {
  width: 220px;
  height: 51px;
  object-fit: contain;
  display: block;
}

.aivy-footer__tagline {
  font-family: var(--aivy-font-mixed);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.7;
  color: var(--aivy-color-white);
  margin: 0 0 52px; /* 観察値 */
}

/* info@aivy.tokyo : 28px / 500 / lh 1.0（F-α 観察値） */
.aivy-footer__email {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--aivy-font-mixed);
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
  color: var(--aivy-color-white);
}

.aivy-footer__email .aivy-icon {
  font-size: 24px;
}

.aivy-footer__hours {
  font-family: var(--aivy-font-mixed);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--aivy-color-white);
  margin: 0;
}

.aivy-footer__note {
  font-family: var(--aivy-font-jp); /* Noto Sans JP only — 見本踏襲 */
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--aivy-color-white);
  margin: 0 0 22px; /* 観察値 */
}

.aivy-footer__email {
  margin-bottom: 6px;
}

.aivy-footer__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* お問い合わせボタン（F-4：枠 2px white / bg #222 / radius 12px） */
.aivy-footer__contact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 240px;
  height: 52px;
  background-color: var(--aivy-color-footer-bg);
  border: 2px solid var(--aivy-color-white);
  border-radius: 12px;
  color: var(--aivy-color-white);
  font-family: var(--aivy-font-mixed);
  font-size: 15px;
  font-weight: 800;
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-footer__contact-btn:hover { opacity: 0.7; }

.aivy-footer__contact-btn .aivy-icon { font-size: 18px; }

/* フッター X（F-5：contact-btn と同じ枠装飾、ヘッダー X とは別） */
/* フッター X : 見本踏襲で画像直貼り（黒丸+白X が描き込み済み） */
.aivy-footer__x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-footer__x:hover { opacity: 0.7; }

.aivy-footer__x img {
  display: block;
  width: 100%;
  height: 100%;
}

/* ---- RIGHT block : MENU + ピタリー ナビ（F-6：title 上 / ul 横並び 下） ---- */
.aivy-footer__right {
  display: none; /* モバイルでは非表示（見本踏襲、9リンク消滅） */
  flex-direction: column;
  gap: 24px; /* F-β 観察値：sep, section, sep, section, sep を等間隔配置 */
  width: 100%;
  flex: 2.5 1 0%; /* F-γ 観察値：見本の flex 比率 */
}

.aivy-footer__sep {
  width: 100%;
  height: 1px;
  background-color: var(--aivy-color-footer-sep);
}

.aivy-footer__section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 0;
}

.aivy-footer__section-title {
  font-family: var(--aivy-font-jp);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.4;
  color: var(--aivy-color-white);
}

.aivy-footer__list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px 32px;
  margin: 0;
}

.aivy-footer__list a {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--aivy-color-white);
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-footer__list--menu a {
  font-family: var(--aivy-font-mixed);
}

.aivy-footer__list--pitaly a {
  font-family: var(--aivy-font-jp);
}

.aivy-footer__list a:hover { opacity: 0.7; }

/* ---- COPYRIGHT ---- */
/* モバイル用補助リンク（利用規約 / プライバシーポリシー / お問い合わせ / 運営者情報）
   - スマホ時のみ表示、コピーライト直前、フッターのナビリンクと同じ装飾系 */
.aivy-footer__mobile-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 20px;
  margin-top: 32px;
  padding: 0 24px;
}

.aivy-footer__mobile-links a {
  font-family: var(--aivy-font-mixed);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--aivy-color-white);
  transition: opacity 0.2s cubic-bezier(0.4, 0.4, 0, 1);
}

.aivy-footer__mobile-links a:hover { opacity: 0.7; }

@media (min-width: 991px) {
  .aivy-footer__mobile-links { display: none; }
}

.aivy-footer__copy {
  margin-top: 24px;
  padding: 0 24px;
  text-align: center;
}

.aivy-footer__copy p {
  font-family: var(--aivy-font-mixed);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--aivy-color-copyright);
}

/* =============================================================
   フッター ブレークポイント
   ≥991px : TOP CTA 横並び、main row 横並び、RIGHT block 表示、gutter 60px
   ============================================================= */
@media (min-width: 991px) {
  .aivy-footer__top {
    flex-direction: row;
  }
  .aivy-footer-card {
    flex: 1;
    height: 300px;
  }
  .aivy-footer__main {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 50px;
    padding: 0 60px;
    max-width: 1380px;
  }
  .aivy-footer__left {
    align-items: flex-start;
    text-align: left;
    max-width: 313px;
    flex-shrink: 0;
  }
  .aivy-footer__right {
    display: flex;
    flex: 2.5 1 0%;
  }
  .aivy-footer__copy {
    padding: 0 60px;
  }
}
