@charset "UTF-8";
/* ==========================================================================
   棚照結神 SP版スタイル（XD sp_0702 390x6280 完全準拠・gen_sp_top.py 機械生成）
   - 切替: 850px以下=SP canvas / 851px以上=PC canvas（佐藤さん指定 2026-07-08）
   - .canvas--sp 内の座標は index.html 側インライン%（390x6280基準）
   ========================================================================== */

/* ---- 切替（デフォルト=PC表示・SP非表示） ----
   only-*は表示切替専用ユーティリティ: .menu__label img等の(0,1,1)詳細度に負けないよう!important */
.canvas--sp{ display:none; }
.only-sp{ display:none !important; }

/* ---- SP canvas 基本 ---- */
.canvas--sp{
  position:relative;
  width:100%;
  aspect-ratio:390/6280;
  overflow:hidden;
  background:#fff;
  container-type:inline-size;
}
.canvas--sp > *{ position:absolute; }
/* SPはアートボード幅390を超える配置画像が多数(HERO背景733/キャラ列495等)
   → リセットのmax-width:100%クランプを解除(インライン%指定が正) */
.canvas--sp img{ max-width:none; }

/* ---- 背景（XD agc実測グラデ・SP版ストップ位置） ---- */
.intro-bg-sp{ background:linear-gradient(to bottom, #823891 0%, #B45FC6 16.256%, #B45FC6 100%); }
.char-bg-sp{ background:linear-gradient(to bottom, #C7A720 0%, #F5EED1 9.852%, #F5EED1 100%); }
.pattern-tile-sp{
  background-image:url("../img/bg/haikei_pattern.png");
  background-size:33.3333cqw 33.3333cqw;   /* 130px @390 */
  background-repeat:repeat;
}

/* ---- テキスト（SP実測 line-height / 中央基準） ---- */
.intro-body-sp{
  transform:translateX(-50%);
  text-align:center; white-space:nowrap;
  color:#F4DF92; line-height:2.125;            /* 16px/34px */
}
.canvas--sp .hero-copy{ line-height:4.5; }      /* 8px/36px */
.canvas--sp .g-catch{ line-height:4; }          /* 15px/60px */
.canvas--sp .ci-name{ line-height:2.5; }        /* 24px/60px */
.canvas--sp .ci-kana{ line-height:5; }          /* 12px/60px */
.canvas--sp .ci-fac{ line-height:3.75; }        /* 16px/60px */
.canvas--sp .ci-rule{ width:80%; }              /* 160/200 */
.canvas--sp .car-dots{ column-gap:3.8462cqw; }  /* 15px @390 */
.canvas--sp .car-dot{ width:3.0769cqw; height:3.0769cqw; }  /* 12px @390 */

/* ---- NEWS SP（絶対%直置き） ---- */
.news-sp{ background:#8B28A0; }
.news-sp .news-head{ position:absolute; color:#fff; line-height:2; font-weight:600; }
.nsp-date{ position:absolute; color:#fff; line-height:2.5714; }   /* 14px/36px */
.nsp-tag{
  position:absolute;
  display:flex; align-items:center; justify-content:center;
  color:#F4DF92; border:1px solid #F4DF92; line-height:1;
}
.nsp-text{ position:absolute; color:#fff; line-height:2; white-space:nowrap; }  /* 14px/28px */

/* ---- 施設リンク SP（14px/36px・8行） ---- */
.foot-links-sp{
  transform:translateX(-50%);
  text-align:center; white-space:nowrap;
  color:#96790D; line-height:2.5714;
  font-family:"Noto Sans JP",sans-serif; font-weight:500;
}
.foot-links-sp a{ text-decoration:underline; text-underline-offset:0.18em; }
.foot-links-sp a:hover{ opacity:.75; }

/* ---- 850px切替 ---- */
@media (max-width: 850px){
  .canvas--pc{ display:none; }
  .canvas--sp{ display:block; }
  .only-pc{ display:none !important; }
  .only-sp{ display:block !important; }

  /* ハンバーガー: XD実測 (325,5) 60x50 カプセル・白地・金枠#E1BD61 */
  .hamburger{
    top:1.2821vw;
    right:1.2821vw;
    width:15.3846vw;
    height:12.8205vw;
    border-radius:9999px;
    border-color:#E1BD61;
  }
  .hamburger span{
    width:8.8462vw;                 /* 線34.5px @390 */
    height:max(1px, 0.2564vw);
    background:#E1BD61;
  }
  .hamburger span:nth-child(1){ transform:translate(-50%,-50%) translateY(-0.641vw); }
  .hamburger span:nth-child(2){ transform:translate(-50%,-50%) translateY(0.641vw); }
  body.menu-open .hamburger span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
  body.menu-open .hamburger span:nth-child(2){ transform:translate(-50%,-50%) rotate(-45deg); }

  /* メニュー: XD sp menu = ヘッダー白帯60px + 全幅ダークパネル(左下角丸20) */
  .menu__panel{
    width:100%;
    border-radius:0 0 0 5.1282vw;        /* XD r=[0,0,0,20] 左下のみ */
    box-shadow:none;
    padding:40.2564vw 0 8vw 10.1051vw;   /* 項目1行目上端y=157 / ラベルx=39.41 */
    justify-content:flex-start;
    overflow-y:auto;
  }
  .menu__list{ gap:10.2564vw; }          /* 項目pitch 73px - ラベル高33px = 40px */
  .menu__label img{ width:100%; height:auto; }
  .menu__label--top{    width:22.4308vw; }   /* 87.48/390 */
  .menu__label--intro{  width:72.7385vw; }   /* 283.68/390 */
  .menu__label--char{   width:61.0487vw; }   /* 238.09/390 */
  .menu__label--sokan{  width:28.9436vw; }   /* 112.88/390 */
  .menu__label--nenrei{ width:28.6179vw; }   /* 111.61/390 */
  .menu__link .arrow{ font-size:5.5vw; }
  .menu__x{ width:13.8462vw; margin-top:10.5128vw; }  /* 54px / X上端523-(年齢表449+33)=41px */
  /* メニュー開時もヘッダー白帯+ロゴを表示(XD sp menu 準拠) */
  .menu__sphead{
    display:block;
    position:absolute; left:0; top:0;
    width:100%; height:15.3846vw;         /* 60px @390 */
    background:#fff;
  }
  .menu__sphead img{
    position:absolute;
    left:1.9949vw; top:3.0872vw;          /* 7.78,12.04 @390 */
    width:70.3308vw; height:8.7692vw;     /* 274.29x34.2 */
  }
}
@media (min-width: 850.02px){
  .menu__sphead{ display:none; }
}
