/* ==========================================================================
   宿の日week 2026 LP — style.css
   スキャフォルド（CTO 2026-07-07 夜間）
   ・Figma v11を基準に、既存HTML＋正式分割SVG＋背景mediaを差分更新
   ・S6 FAQ・S7 フッター・ナビ＝実コード（機能）
   ・書体：Noto Sans JP／Zen Maru Gothic／Zen Kaku Gothic New（Figma実書体と一致）
   ========================================================================== */

:root{
  --red:#d70c18;
  --blue:#00a0e9;
  --blue-d:#26466d;
  --yellow:#fff8a5;
  --ink:#231815;
  --white:#fff;
  --hero-video:#1f8eac;
  --maxw:1440px;      /* デザイン基準幅 */
  --contentw:1200px;  /* 中身の基準幅 */
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-weight:500;                 /* 正本実測＝Source Han Sans JP Medium（本文）。既定400では細すぎ（2026-07-09 検査機実測） */
  color:var(--ink);
  background:#fff;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* 和文の約物詰め（、。「」（）等の余分な空きを締める）＝Illustrator的な文字詰めをWeb側で再現
     ③ palt + letter-spacing -0.02em（社長確定 2026-07-09・バランス最良） */
  font-feature-settings:"palt" 1;
  letter-spacing:-.02em;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}

.container{width:min(100% - 40px,var(--contentw));margin-inline:auto;}

/* ============ ヘッダー / ナビ（スクロールで出現） ============ */
.site-header{
  position:fixed;top:0;left:0;width:100%;z-index:100;
  background:#111;                 /* パターン②：黒帯（③にするなら #fff） */
  transform:translateY(-100%);
  transition:transform .3s ease;
}
.site-header.visible{transform:translateY(0);}
.nav-inner{
  width:min(100% - 32px,var(--maxw));margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;
  height:64px;
}
/* ナビロゴ＝本物のブランドロゴ（意匠は打ち直さない）。パターン②=カラーのまま */
.nav-logo{display:flex;align-items:center;height:100%;}
.nav-logo img{height:42px;width:auto;display:block;}
.gnav ul{display:flex;gap:28px;}
.gnav a{color:var(--white);font-weight:700;font-size:15px;position:relative;padding:6px 0;}
.gnav a::before{content:"◉";color:var(--red);margin-right:6px;font-size:11px;vertical-align:middle;}
.gnav a:hover{opacity:.75;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--white);transition:.3s;}
.nav-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:3px;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============ セクション共通（S1は下記で個別上書き） ============ */
main{display:block;}
.sec{width:100%;}
.sec img{width:100%;max-width:var(--maxw);margin-inline:auto;}
/* ============ S1 ヒーロー正式再構築（2026-07-13・v=20260715x） ============
   Figma：座標・寸法・PC/SP構成。Illustrator v06：個別SVG・正式曲線・可視寸法。
   375〜390=SP正本の等比縮小、1200〜1440=PC正本の等比縮小、391〜1199=両正本の実測値を連続補間。
   背景は社長提供の1920×1080動画。前景SVG／live HTMLとは独立して表示する。 */
.sec-hero{
  position:relative;width:100%;max-width:none;margin:0;background:var(--yellow);
  overflow:hidden;overflow:clip;isolation:isolate;
}
.hero-mask-defs{position:absolute;inset:0;pointer-events:none;}
.hero-canvas{position:absolute;top:0;transform-origin:top center;}
.hero-media{position:absolute;z-index:1;overflow:hidden;}
.hero-media-content{position:absolute;}
.hero-background-fallback,.hero-background-video{
  position:absolute;inset:0;width:100%;height:100%;max-width:none!important;object-fit:cover;margin:0!important;
}
.hero-background-fallback{
  z-index:1;
  background-color:var(--hero-video);
  background-image:url("../assets/video/hero_fireworks_poster.jpg");
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.hero-background-video{z-index:2;opacity:0;transition:opacity .25s linear;}
.hero-media.is-video-ready .hero-background-video{opacity:1;}
.hero-art,.hero-brand-logo,.hero-initial-nav,.hero-join{position:absolute;max-width:none;margin:0;}
.hero-art{z-index:6;}
.hero-art picture,.hero-art>img,.hero-art>picture,.hero-art picture>img{display:block;width:100%;height:100%;max-width:none;margin:0;}
.hero-brand-logo{z-index:12;}
.hero-white-shape{z-index:4;}
.hero-main-title{z-index:6;}
.hero-week-ribbon{z-index:7;}
.hero-period-target,.hero-period-campaign{z-index:8;}
.hero-week-ribbon>picture,.hero-period-target>picture{position:absolute;inset:0;}
.hero-pc-only{display:none;z-index:9;}
.hero-initial-nav{display:none;z-index:12;}
.hero-initial-nav ul{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;padding:0 52px;gap:45px;background:#fff;border-radius:999px;}
.hero-initial-nav li{white-space:nowrap;}
.hero-initial-nav a{display:flex;align-items:center;color:var(--ink);font-size:20px;font-weight:700;line-height:1;letter-spacing:.05em;}
.hero-initial-nav a::before{content:"";width:12px;height:12px;flex:0 0 12px;margin-right:5px;border:4px solid #d70c18;border-radius:50%;background:#fff;}
.hero-initial-nav a:hover,.hero-initial-nav a:focus-visible{opacity:.78;}
.hero-join{
  z-index:14;display:flex;align-items:center;justify-content:center;gap:.9em;
  color:#fff;background:#00a0e9;border-radius:999px;font-weight:700;line-height:1;
  letter-spacing:.03em;white-space:nowrap;transition:transform .2s ease,filter .2s ease;
}
.hero-join-arrow{display:inline-block;font-family:system-ui,sans-serif;font-weight:400;line-height:.75;transform:translateY(-.04em);}
.hero-join:hover{transform:translateY(-3px);filter:brightness(1.04);}
.hero-join:focus-visible{outline:4px solid #fff;outline-offset:3px;}

/* SP正本座標系：390×700.82。375pxは座標・マスク・前景を同率縮小する */
@media (max-width:390px){
  .sec-hero{--hero-scale:calc(100vw / 390px);height:calc(700.82px * var(--hero-scale));}
  .hero-canvas{left:50%;width:390px;height:700.82px;transform:translateX(-50%) scale(var(--hero-scale));}
  .hero-media{left:0;top:0;width:390px;height:626.0661px;clip-path:url(#hero-fireworks-sp);}
  .hero-media-content{left:-345.0603px;top:.0072px;width:1080.3701px;height:605.4821px;}
  .hero-brand-logo{left:14.8146px;top:11.5898px;width:123.4444px!important;height:68.8118px!important;}
  .hero-white-shape{left:54.4185px;top:144.1192px;width:280.3485px;height:278.3367px;}
  .hero-main-title{left:104.1194px;top:179.7177px;width:177.6745px;height:164.1592px;}
  .hero-airplane-small{left:95.314px;top:147.0845px;width:56.2354px;height:28.078px;}
  .hero-cloud-top{left:249.8922px;top:151.7977px;width:43.1219px;height:24.3px;}
  .hero-cloud-left{left:39.9681px;top:236.5829px;width:43.1219px;height:24.3px;}
  .hero-bag-upper{left:312.2448px;top:228.4708px;width:33.661px;height:51.435px;}
  .hero-car{left:53.0863px;top:336.4712px;width:39.6903px;height:22.032px;}
  .hero-train{left:292.4099px;top:334.7059px;width:58.402px;height:24.9932px;}
  .hero-week-ribbon{left:13.1762px;top:357.2721px;width:363.6475px;height:109.7261px;}
  .hero-week-ribbon>.hero-week-ribbon-copy{inset:auto;left:99.02px;top:8.1843px;width:165.6076px;height:53.7484px;}
  .hero-period-target{left:34.9031px;top:483.0177px;width:71.8134px;height:66.9351px;}
  .hero-period-campaign{left:109.5872px;top:487.9052px;width:238.8105px;height:55.2246px;}
  .hero-join{left:48.9721px;top:621.1254px;width:292.0558px;height:47.4212px;font-size:17.2px;}
  .hero-join-arrow{font-size:30px;}
}

/* 中間幅：SP/PC両正本の実測値を幅391→1200で線形補間。背景は常に全幅で、固定430pxと白余白を作らない */
@media (min-width:391px) and (max-width:1199px){
  .sec-hero{height:calc(700.82px + (100vw - 390px) * .38376132);}
  .hero-canvas{left:0;width:100%;height:100%;transform:none;}
  .hero-media{
    left:0;top:0;width:100vw;height:calc(626.066091px + (100vw - 390px) * .38958748);
    clip-path:ellipse(
      calc(345.057706px + (100vw - 390px) * .78108277)
      calc(345.057706px + (100vw - 390px) * .53412365)
      at calc(194.137892px + (100vw - 390px) * .50004148)
      calc(252.303691px - (100vw - 390px) * .18341421)
    );
  }
  .hero-media-content{
    left:calc(-345.060319px + (100vw - 390px) * .05490316);
    top:calc(.007165px - (100vw - 390px) * .00539212);
    width:calc(1080.370106px + (100vw - 390px) * .95247347);
    height:calc(605.482147px + (100vw - 390px) * .53279886);
  }
  .hero-brand-logo{left:calc(14.814629px + (100vw - 390px) * .04527129);top:calc(11.589822px + (100vw - 390px) * .0227467);width:calc(123.444392px + (100vw - 390px) * .09236506)!important;height:calc(68.811802px + (100vw - 390px) * .0514872)!important;}
  .hero-white-shape{left:calc(54.418543px + (100vw - 390px) * .34814074);top:calc(144.119226px + (100vw - 390px) * .02127594);width:calc(280.348454px + (100vw - 390px) * .30472293);height:calc(278.336692px + (100vw - 390px) * .30253626);}
  .hero-main-title{left:calc(104.119368px + (100vw - 390px) * .40216272);top:calc(179.717741px + (100vw - 390px) * .05996952);width:calc(177.674509px + (100vw - 390px) * .19311919);height:calc(164.159161px + (100vw - 390px) * .17843853);}
  .hero-airplane-small{left:calc(95.314001px + (100vw - 390px) * .39259179);top:calc(147.084459px + (100vw - 390px) * .02449898);width:calc(56.235365px + (100vw - 390px) * .06112466);height:calc(28.078037px + (100vw - 390px) * .03051924);}
  .hero-cloud-top{left:calc(249.892223px + (100vw - 390px) * .56060958);top:calc(151.797657px + (100vw - 390px) * .02962196);width:calc(43.121892px + (100vw - 390px) * .04687106);height:calc(24.299972px + (100vw - 390px) * .0264127);}
  .hero-cloud-left{left:calc(39.968056px + (100vw - 390px) * .33243387);top:calc(236.58292px + (100vw - 390px) * .12177875);width:calc(43.121892px + (100vw - 390px) * .04687106);height:calc(24.299972px + (100vw - 390px) * .0264127);}
  .hero-bag-upper{left:calc(312.244806px + (100vw - 390px) * .62838331);top:calc(228.470821px + (100vw - 390px) * .11296136);width:calc(33.661025px + (100vw - 390px) * .03658763);height:calc(51.435027px + (100vw - 390px) * .05590697);}
  .hero-car{left:calc(53.086317px + (100vw - 390px) * .34669268);top:calc(336.47117px + (100vw - 390px) * .23035164);width:calc(39.690348px + (100vw - 390px) * .04314117);height:calc(22.031998px + (100vw - 390px) * .02394754);}
  .hero-train{left:calc(292.409901px + (100vw - 390px) * .60682389);top:calc(334.705914px + (100vw - 390px) * .2284329);width:calc(58.402043px + (100vw - 390px) * .06347972);height:calc(24.993187px + (100vw - 390px) * .02716618);}
  .hero-week-ribbon{left:calc(13.176249px + (100vw - 390px) * .30331269);top:calc(357.272071px + (100vw - 390px) * .25296104);width:calc(363.647502px + (100vw - 390px) * .39526428);height:calc(109.7261px + (100vw - 390px) * .11926607);}
  .hero-week-ribbon>.hero-week-ribbon-copy{
    inset:auto;
    left:calc(99.02px + (100vw - 390px) * .1123519);
    top:calc(8.1843px + (100vw - 390px) * .0076971);
    width:calc(165.6076px + (100vw - 390px) * .1745196);
    height:calc(53.7484px + (100vw - 390px) * .0566415);
  }
  .hero-period-target{left:calc(34.903108px + (100vw - 390px) * .45421552);top:calc(483.017663px + (100vw - 390px) * .28373528);width:calc(71.81339px + (100vw - 390px) * .02291604);height:calc(66.935145px + (100vw - 390px) * .02135936);}
  .hero-period-campaign{left:calc(109.587159px + (100vw - 390px) * .4780476);top:calc(487.905217px + (100vw - 390px) * .28529493);width:calc(238.810531px + (100vw - 390px) * .07620491);height:calc(55.224614px + (100vw - 390px) * .01762393);}
  .hero-join{left:calc(48.972094px + (100vw - 390px) * .35607926);top:calc(621.125368px + (100vw - 390px) * .38024756);width:calc(292.055812px + (100vw - 390px) * .28784149);height:calc(47.421167px + (100vw - 390px) * .04673834);font-size:calc(17.2px + (100vw - 390px) * .01735);}
  .hero-join-arrow{font-size:calc(30px + (100vw - 390px) * .031);}
}

/* PC正本座標系：1440×1214。1200〜1440pxは全要素を同率縮小する */
@media (min-width:1200px){
  .sec-hero{--hero-scale:clamp(.8333333333,calc(100vw / 1440px),1);height:calc(1214.469px * var(--hero-scale));}
  .hero-canvas{left:50%;width:1440px;height:1214.469px;transform:translateX(-50%) scale(var(--hero-scale));}
  .hero-media{left:0;top:0;width:1440px;height:1129.9583px;clip-path:url(#hero-fireworks-pc);}
  .hero-media-content{inset:0;width:100%;height:100%;}
  .hero-brand-logo{left:61.7813px;top:36.0176px;width:237.9121px!important;height:132.6197px!important;}
  .hero-initial-nav{display:block;left:618.305px;top:35.293px;width:791.113px;height:60px;}
  .hero-white-shape{left:403.695px;top:193.6233px;width:632.6088px;height:628.0693px;}
  .hero-main-title{left:515.8454px;top:273.9517px;width:400.9213px;height:370.4332px;}
  .hero-airplane-small{left:495.976px;top:200.3144px;width:126.8956px;height:63.3583px;}
  .hero-cloud-top{left:844.7832px;top:210.9497px;width:97.3049px;height:54.8331px;}
  .hero-cloud-left{left:371.0874px;top:402.2685px;width:97.3049px;height:54.8331px;}
  .hero-bag-upper{left:985.4823px;top:383.9634px;width:75.9564px;height:116.0636px;}
  .hero-car{left:400.6889px;top:627.6672px;width:89.5616px;height:49.7154px;}
  .hero-train{left:940.7247px;top:623.6839px;width:131.7847px;height:56.3974px;}
  .hero-week-ribbon{left:310.6314px;top:674.6046px;width:820.5739px;height:247.5979px;}
  .hero-week-ribbon>.hero-week-ribbon-copy{inset:auto;left:228.0291px;top:17.3032px;width:368.3629px;height:119.5534px;}
  .hero-period-target{left:483.3812px;top:855.4119px;width:108.4505px;height:101.0835px;}
  .hero-period-campaign{left:596.1669px;top:862.7929px;width:360.6438px;height:83.4px;}
  .hero-pc-only{display:block;}
  .hero-people-pc{left:95.3153px;top:829.0634px;width:209.1937px!important;height:360.2698px!important;}
  .hero-airplane-large{left:1028.8801px;top:921.9542px;width:185.0385px!important;height:117.1104px!important;}
  .hero-suitcase-lower{left:1122.5128px;top:1064.2847px;width:79.0012px!important;height:103.6292px!important;}
  .hero-bag-lower{left:1237.0982px;top:1028.3206px;width:72.3207px!important;height:65.2188px!important;}
  .hero-join{left:404.8756px;top:1114.9511px;width:630.2489px;height:99.5179px;font-size:36.8px;}
  .hero-join-arrow{font-size:68px;}
}

/* 1440px超では背景映像だけをviewportへ連続拡張する。
   前景は1440px正本のまま固定し、1920px動画を広く自然に見せる。 */
@media (min-width:1440px){
  .hero-media{
    left:50%;
    width:100vw;
    transform:translateX(-50%);
    clip-path:ellipse(81.477896% 82.589543% at 49.930958% 11.016849%);
  }
}

/* 599px以下は社長提供の縦型1080×1920動画を使用する。
   縦素材を横長の旧トリミング枠へ押し込まず、SP Video枠全体をcoverする。 */
@media (max-width:599px){
  .hero-media-content{inset:0;width:100%;height:100%;}
  .hero-background-fallback{background-image:url("../assets/video/hero_fireworks_poster_sp.jpg");}
}

@media (prefers-reduced-motion:reduce){
  .hero-background-video{display:none!important;}
  .hero-join{transition:none;}
}

/* ============ S2 宿の日とは（清書・キャラ＋吹き出し横並び） ============ */
.sec-about{background:var(--yellow);padding:48px 0 64px;}
.about-card{width:min(100% - 32px,1000px);margin-inline:auto;background:#fff;border-radius:24px;padding:36px 32px 48px;}
/* キャラが吹き出しで喋っている風＝横並び */
.about-head{display:flex;align-items:flex-end;justify-content:center;gap:6px;}
.about-char{width:160px;display:flex;flex-direction:column;align-items:center;gap:8px;}
.about-char img{width:100%;height:auto;}
.about-char .about-noren{width:88%;} /* のれん（湯）＝夫婦の頭上に掲げる */
.about-bubble{width:240px;height:auto;margin-bottom:44px;} /* 吹き出しをキャラの頭の高さへ */
.about-text{max-width:660px;margin:20px auto 34px;font-size:16px;line-height:1.95;}
.about-text-pc{display:none;}
.cat-buttons{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;}
.cat-buttons li{flex:1 1 200px;max-width:240px;list-style:none;}
.cat-buttons img{width:100%;height:auto;transition:transform .2s;}
.cat-buttons a:hover img{transform:translateY(-3px);}

/* ②宿の日とは SP390本実装（正本＝Figma 2001:2画素実測＋イラレv06ベクター実測。両者±1px一致を確認済み 2026-07-12）
   白カード=v06長方形uuid15531: x20 y703.29 350x870.22 r30 ／ ボタン=uuid17340系: x48.97 w294.75 h131.00 ピッチ150.84
   本文=uuid19364: x48.97 w292.11 6行 行送り28.504 両端揃え ／ キャンペーン金背景開始=y1603.38
   上部3素材は可視インク実測へ配置（バブルx41.18 y732.17 173.04幅／のれん=幕基準x224-330 y692-723／夫婦x231.4 y729 幅102.6）
   ※のれんは素材(242.66:78.12)と正本SPの棒/幕比が異なるため幕優先スケール（素材差し替え禁止による最適配置） */
@media (max-width:899px){
  .sec-about{padding:2.47px 0 29.9px;}
  .about-card{width:min(100% - 40px,350px);padding:0 26.28px 35.1px 28.97px;border-radius:30px;}
  .about-head{display:block;position:relative;height:207.731px;}
  .about-bubble{position:absolute;left:-7.79px;top:28.88px;width:173.04px;max-width:none;margin:0;}
  .about-char{display:contents;}
  .about-char .about-noren{position:absolute;left:172.4px;top:-17.63px;width:114.2px;}
  .about-char img:nth-child(2){position:absolute;left:182.4px;top:25.7px;width:102.6px;}
  /* Figma v11本文 node 4:299：Noto Sans JP Medium 14px/29px、幅293px、字送り0.28px。
     本文の6px増分は下余白で相殺し、ボタンとS-2開始位置を動かさない。 */
  .about-text{
    position:relative;left:-.09px;width:293px;max-width:none;margin:0 0 20.777px;
    font-family:"Noto Sans JP",sans-serif;font-size:14px;font-weight:500;
    line-height:29px;letter-spacing:.28px;text-align:left;font-feature-settings:"palt" 0;
  }
  .about-text-sp{display:block;}
  .about-text-pc{display:none;}
  .cat-buttons{flex-direction:column;align-items:flex-start;gap:19.93px;}
  .cat-buttons li{flex:none;width:294.75px;max-width:none;}
}

/* Figma v11 PC S-1：白カード996×358.283、S-1下端に街並み帯を含む */
@media (min-width:900px){
  .sec-about{
    position:relative;overflow:visible;
    height:clamp(625.098px,calc(902.5px - (100vw - 1200px) * 1.155842),902.5px);
    padding:59.047px 0 0;
  }
  .sec-about::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:124.745px;
    background:#fff8a5 url(../assets/img/parts/bg_yellow_city.svg) center bottom/1440px auto no-repeat;
    pointer-events:none;z-index:0;
  }
  .about-card{
    position:absolute;z-index:1;left:50%;top:clamp(59.047px,calc(244.7px - (100vw - 1200px) * .773554),244.7px);
    width:996px;height:358.283px;margin:0;border-radius:20px;padding:0;display:block;
    transform:translateX(-50%);
  }
  .about-head{display:contents;}
  .about-bubble{position:absolute;left:-102px;top:-69.921px;width:308.885px;max-width:none;margin:0;}
  .about-char{display:contents;}
  .about-char .about-noren{position:absolute;left:766.744px;top:-28.423px;width:201.416px;max-width:none;}
  .about-char img:nth-child(2){position:absolute;left:783.955px;top:60.004px;width:179.464px;height:272.733px;max-width:none;object-fit:fill;transform:none;}
  .about-text-sp{display:none;}
  .about-text-pc{
    display:block;position:absolute;left:230px;top:50.484px;width:519px;max-width:none;margin:0;
    font-family:"Noto Sans JP",system-ui,sans-serif;font-size:14.1195px;font-weight:500;
    line-height:30.1216px;letter-spacing:.075em;text-align:justify;font-feature-settings:"palt" 0;
  }
  .cat-buttons{position:absolute;left:31.117px;top:235.821px;display:flex;justify-content:flex-start;flex-wrap:nowrap;gap:14.169px;margin:0;}
  .cat-buttons li{flex:0 0 229.33px;width:229.33px;max-width:none;height:96.429px;}
  .cat-buttons img{width:100%;height:100%;object-fit:fill;}
}

/* v11のSP/PC構成をつなぐ中間幅。カード左の吹き出しまで含めて画面内へ連続縮尺し、
   1199→1200pxで下流セクションが跳ねないようS-1の縦寸法も連続させる。 */
@media (min-width:900px) and (max-width:1199px){
  .about-card{
    top:clamp(244.7px,calc(270.7px - (100vw - 900px) * .131313),270.7px);
    left:min(102px,9.289617vw);
    --about-scale:min(1,calc(100vw / 1098px));
    transform:scale(var(--about-scale));transform-origin:top left;
  }
}

/* Figma v11 PC専用town。1440×124.745の専用SVGで下端基準線を固定する。 */
@media (min-width:1200px){
  .sec-about::after{
    background:#fff8a5 url(../assets/img/parts/bg_town_s1_pc_v11.svg) center bottom/min(1440px,100vw) auto no-repeat;
  }
}

/* ============ 共通：セクション見出し帯 ============ */
.bar-title{background:var(--blue);color:#fff;text-align:center;font-weight:700;font-size:22px;padding:12px 8px;border-radius:8px;margin-bottom:18px;}
.bar-title.red{background:var(--red);}
.soon{background:#c7c7c7;border-radius:14px;display:grid;place-items:center;text-align:center;font-weight:700;color:var(--ink);line-height:1.3;}
/* リンク先未確定の要素：クリック無効（確定したらクラスを外す） */
.pending-link{pointer-events:none;cursor:default;}
/* hidden属性をdisplay指定より必ず優先させる（footer-nav等のflex上書き対策） */
[hidden]{display:none !important;}

/* ============ S3 キャンペーン（清書） ============ */
.sec-campaign{background:var(--yellow);padding:52px 0 60px;}
.cam-inner{width:min(100% - 32px,1080px);margin-inline:auto;}
.cam-head{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:36px;}
.cam-badge{width:150px;height:auto;}
.cam-headline{width:min(100%,580px);height:auto;}
.cam-onsen{display:none;height:auto;}/* 既定は非表示（SPは温泉なし＝現状維持）。PCのみ表示 */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px;list-style:none;}
.step-card{background:#fff;border-radius:20px;padding:26px 24px 22px;display:flex;flex-direction:column;}
.step-head{display:flex;align-items:center;gap:12px;font-size:26px;font-weight:700;line-height:1;}
.step-num{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;
  background:var(--red);color:#fff;display:grid;place-items:center;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:20px;
}
.step-text{font-size:14.5px;line-height:1.8;margin:14px 0 16px;}
.step-illust{width:100%;max-width:250px;height:auto;margin:auto auto 0;} /* 下端に揃える */
.sched{margin-bottom:40px;}
.sched-rows{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;}
.sched-rows li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-radius:10px;}
.sched-rows li.y{background:#fff8a5;} /* 正本の実色 */
.sched-rows li.b{background:#9fd9f6;} /* 正本の実色 */
.sched-rows .date{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:21px;}
.sched-rows .date-run{display:inline-flex;align-items:baseline;font:inherit;line-height:inherit;}
.sched-rows .date-lead,.sched-rows .date-rest{font:inherit;line-height:inherit;}
.sched-rows .lbl{font-family:"Noto Sans JP",system-ui,sans-serif;font-weight:500;font-size:13px;text-align:right;}
.cond-ex{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:20px;align-items:start;}
.cond-list{list-style:none;}
.cond-list li{color:var(--ink);font-weight:500;font-size:16px;padding:9px 0 9px 28px;position:relative;}/* 正本SP：本文は黒・ブレットのみ青 */
.cond-list li::before{content:"●";position:absolute;left:0;top:9px;color:var(--blue);font-size:14px;}
/* キャッシュバック事例（HTML+公式お札SVG） */
.prices{
  background:#fff;border-radius:14px;padding:20px 12px;
  display:grid;grid-template-columns:1fr 1fr;
}
.price-case{
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  padding:4px 10px;
}
.price-case+.price-case{border-left:1px solid #d9d9d9;}
.price-case img{width:min(100%,150px);height:auto;}
.pc-cond{font-size:13.5px;font-weight:500;line-height:1.5;}
.pc-cond strong{font-size:16px;}
.pc-result{color:var(--red);font-weight:700;font-size:14px;line-height:1.45;}
.pc-result strong{font-size:21px;}
.pc-limit{font-size:13px;margin-right:2px;}
/* F2：金額の数字だけ丸ゴ（正本実測＝Zen Maru Gothic Bold。円は源ノ角のまま）。※社長判断で戻す場合はこの1行を削除 */
.yen-num{font-family:"Zen Maru Gothic",sans-serif;}
.cam-notes{font-size:12px;color:#555;line-height:1.75;margin-top:6px;}
.cam-note-line{display:inline;}
.cam-note-line:last-child::before{content:"\A";white-space:pre;}
/* 参加条件内の注記2行＝PC専用（SPは非表示・cam-notesの.notes-sponlyで表示）。SP完全非破壊 */
.cond-notes{display:none;}
/* STEP2イラスト：SPは暫定PNG(.sns-tmp)のみ表示＝従来どおり非破壊。PC正規2レイヤー(.sns-pc)はSPで非表示 */
.sns-pc{display:none;}
/* STEPタイトルの黄マーカー（正本v06：宿泊/投稿/当選DMの下半分に黄帯）。既定はマーカー無し＝span追加のみ影響 */
.step-title{padding:0 2px;}

/* Figma v11 PC S-2。HTMLと意味構造は維持し、完成フレームの実測値へ整理する。 */
@media (min-width:1200px){
  .sec-campaign{
    position:relative;height:min(1487.607px,103.306042vw);overflow:hidden;padding:0;
    background:#fcc926 url(../assets/img/parts/bg_orange_confetti.svg) center top/min(1440px,100vw) auto no-repeat;
  }
  .sec-campaign::before{display:none;}
  .sec-campaign::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:min(124.745px,8.662847vw);
    background:url(../assets/img/parts/bg_town_s2_pc_v11.svg) center bottom/min(1440px,100vw) auto no-repeat;
    z-index:0;pointer-events:none;
  }
  .cam-inner{
    position:relative;left:50%;z-index:1;width:1440px;height:1487.607px;margin:0;
    --cam-scale:min(1,calc(100vw / 1440px));
    transform:translateX(-50%) scale(var(--cam-scale));transform-origin:top center;
  }
  .cam-head{position:absolute;inset:0;margin:0;display:block;}
  .cam-head picture{display:contents;}
  .cam-badge,.cam-headline,.cam-onsen{position:absolute;max-width:none;margin:0;}
  .cam-badge{left:120px;top:82.648px;width:308.382px;height:287.435px;}
  .cam-headline{left:454.398px;top:72.482px;width:592.49px;height:296.14px;}
  .cam-onsen{display:block;left:1029.5px;top:120.628px;width:288.531px;height:276.735px;}

  .steps{
    position:absolute;left:223.141px;top:437.953px;width:993.872px;height:304.422px;
    display:grid;grid-template-columns:repeat(3,319.429px);gap:17.793px;margin:0;
  }
  .step-card{position:relative;height:304.422px;padding:0;background:#fff;border-radius:40px;overflow:visible;display:block;}
  .step-card::before{display:none;}
  .step-head{
    position:absolute;left:20.876px;top:19.89px;z-index:2;display:flex;align-items:center;gap:5px;
    min-height:52.907px;padding:0;font-size:35.6px;line-height:1;transform:none!important;
  }
  .step-num{width:52.907px;height:52.907px;flex:0 0 52.907px;font-size:36.5px;}
  .step-title{position:relative;isolation:isolate;padding:0 7px 0 5px;letter-spacing:.0625em;font-feature-settings:"palt" 0;transform:none;}
  .step-title::before{content:"";position:absolute;left:0;right:0;top:31.5px;height:13.899px;background:#fcc926;z-index:-1;}
  .step-card:nth-child(3) .step-title{padding-right:9px;letter-spacing:.047em;}
  .step-text{
    position:absolute;left:27.859px;top:87.787px;z-index:2;margin:0;padding:0;
    font-size:15.1px;font-weight:700;line-height:28px;letter-spacing:.12em;transform:none;
  }
  .step-illust{
    position:absolute;left:50%;bottom:-2.543px;z-index:1;width:343.158px;height:168.598px;
    max-width:none;margin:0;transform:translateX(-50%);object-fit:fill;
  }
  .sns-tmp{display:none;}
  .sns-pc{display:block;}
  .sns-bg{display:block;width:100%;height:100%;object-fit:fill;}
  .sns-person{position:absolute;left:97.14px;top:-17.14px;width:153.448px;height:auto;z-index:1;}

  .sched{
    position:absolute;left:223.141px;top:758.355px;z-index:2;width:993.872px;height:206.045px;margin:0;
    background:#fff;border-radius:18px;overflow:hidden;
  }
  .bar-title{display:grid;place-items:center;margin:0;border-radius:0;font-size:33.9px;line-height:1;padding:0;}
  .sched .bar-title{height:56.601px;margin:0;}
  .sched-rows{
    display:grid;grid-template-columns:repeat(4,1fr);gap:0;height:149.444px;
    margin:0;padding:21px 14px 25px;background:#fff;border-radius:0;
  }
  .sched-rows li{
    flex-direction:column;align-items:center;justify-content:center;gap:0;padding:4px 3px;border-radius:0;
    clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%,15px 50%);
  }
  .sched-rows li:first-child{clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%);}
  .sched-rows li:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,15px 50%);}
  .sched-rows .date{text-align:center;font-weight:900;line-height:1.05;letter-spacing:0;}
  .sched-rows li:nth-child(1) .date{font-size:34.7px;}
  .sched-rows li:nth-child(2) .date{font-size:35.5px;}
  .sched-rows li:nth-child(n+3) .date{font-family:"Noto Sans JP",system-ui,sans-serif;font-size:30.2px;font-weight:700;}
  .sched-rows .lbl{
    width:94%;margin-top:6px;padding-top:6px;border-top:1.25px solid rgba(35,24,21,.25);
    text-align:center;font-size:17px;line-height:1.15;letter-spacing:0;font-feature-settings:"palt" 0;
  }
  .sched-rows li:nth-child(4) .lbl{letter-spacing:-.0625em;}

  .cond-ex{
    position:absolute;left:223.141px;top:982.233px;z-index:2;width:993.872px;height:272.172px;
    display:grid;grid-template-columns:repeat(2,496.936px);gap:0;margin:0;
  }
  .cond .bar-title,.ex .bar-title{height:56.442px;margin:0;font-size:33.9px;}
  .cond-panel{position:relative;height:215.73px;padding:10.8px 20px 0 27.86px;background:#fff;border-radius:0 0 0 43px;}
  .cond-list li{height:37px;padding:0 0 0 22px;font-size:20px;font-weight:700;line-height:37px;letter-spacing:.07em;}
  .cond-list li::before{content:"";left:0;top:9px;width:18px;height:18px;background:var(--blue);border-radius:50%;}
  .cond-notes{
    display:block;position:absolute;left:47.86px;top:165px;margin:0;padding:0;
    font-size:14.1px;line-height:20px;letter-spacing:.02em;color:var(--ink);font-feature-settings:"palt" 0;
  }
  .ex-panel{height:215.73px;padding:14.086px 19.672px 17.614px 20.013px;background:#fff8a5;border-radius:0 0 43px 0;}
  .prices{height:184.03px;min-height:0;padding:13px 0 0;border-radius:26px;}
  .price-case{gap:0;padding:0 5px;}
  .pc-cond{font-size:15.7px;font-weight:700;line-height:1.25;letter-spacing:.015em;font-feature-settings:"palt" 0;}
  .pc-cond strong{font-size:17.3px;}
  .pc-cond .yen-num{font-size:20.7px;}
  .price-case:last-child .pc-cond .yen-num{font-size:20.7px;}
  .price-case img{max-width:none;}
  .price-case:first-child img{width:189.482px;margin:3px auto 0;}
  .price-case:last-child img{width:152.343px;margin:3px auto 0;}
  .price-case:last-child > *{transform:translateX(-5px);}
  .price-case:first-child .pc-cond{letter-spacing:.015em;transform:translateX(3.7px);}
  .price-case:first-child .pc-result{transform:translateX(-4px);}
  .price-case:last-child .pc-cond{transform:translateX(-8px);}
  .pc-result{margin-top:4px;font-size:19px;line-height:1.1;}
  .pc-result strong{font-size:19px;}
  .pc-result .yen-num{font-size:27.3px;}
  .pc-limit{font-size:14px;}

  .cam-notes{
    position:absolute;left:206px;top:1267.74px;z-index:2;width:1057px;margin:0;
    color:var(--ink);font-size:13.3px;line-height:20px;letter-spacing:-.012em;white-space:normal;
  }
  .notes-sponly{display:none;}
}

/* v11のSP縦積みとPC水平構成の間をつなぐタブレット帯。
   要素を縮小キャンバス化せず、グリッドの可用幅で自然に組み替える。 */
@media (min-width:600px) and (max-width:1199px){
  .sec-campaign{
    position:relative;overflow:hidden;padding:clamp(44px,6vw,70px) 0 clamp(92px,10vw,122px);
    background:#fcc926 url(../assets/img/parts/bg_orange_confetti.svg) center top/100% auto no-repeat;
  }
  .sec-campaign::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(72px,8.662847vw,104px);
    background:url(../assets/img/parts/bg_orange_city_v10.svg) center bottom/100% auto no-repeat;
    z-index:0;pointer-events:none;
  }
  .cam-inner{position:relative;z-index:1;width:min(calc(100% - 40px),1080px);margin-inline:auto;}
  .cam-head{
    display:grid;grid-template-columns:clamp(150px,20vw,230px) minmax(0,1fr);align-items:center;
    gap:clamp(18px,3vw,34px);margin:0 0 clamp(28px,4vw,44px);
  }
  .cam-head picture{display:block;min-width:0;}
  .cam-badge{width:100%;}
  .cam-headline{display:block;width:100%;max-width:620px;margin-inline:auto;}
  .cam-onsen{display:none;}

  .steps{
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(14px,2vw,20px);
    margin:0 0 clamp(28px,4vw,42px);
  }
  .step-card{position:relative;min-height:clamp(286px,31vw,318px);padding:22px 20px 18px;border-radius:clamp(24px,3vw,34px);overflow:hidden;}
  .step-head{gap:8px;font-size:clamp(25px,3.2vw,34px);}
  .step-num{width:clamp(40px,5vw,50px);height:clamp(40px,5vw,50px);font-size:clamp(23px,3vw,32px);}
  .step-text{font-size:clamp(13px,1.55vw,16px);line-height:1.75;margin:12px 0 8px;white-space:nowrap;}
  .step-illust{position:absolute;left:50%;bottom:-2px;width:min(120%,310px);max-width:none;margin:0;transform:translateX(-50%);}
  .sns-tmp{display:none;}
  .sns-pc{display:block;position:absolute;}
  .sns-pc .sns-bg{display:block;width:100%;}
  .sns-pc .sns-person{position:absolute;left:29%;top:-10%;width:44%;}

  .sched{margin:0 0 clamp(28px,4vw,42px);background:#fff;border-radius:24px;overflow:hidden;}
  .bar-title{height:clamp(50px,6vw,60px);margin:0;border-radius:0;display:grid;place-items:center;padding:0;font-size:clamp(24px,3vw,32px);}
  .sched-rows{grid-template-columns:repeat(2,1fr);gap:10px;padding:18px;}
  .sched-rows li{min-height:88px;padding:12px 16px;border-radius:12px;}
  .sched-rows .date{font-size:clamp(22px,3vw,31px);}
  .sched-rows .lbl{font-size:clamp(12px,1.5vw,15px);}

  .cond-ex{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.5vw,26px);margin:0 0 18px;align-items:stretch;}
  .cond,.ex{overflow:hidden;border-radius:24px;background:#fff;}
  .cond-panel{height:260px;padding:18px 18px 14px;background:#fff;}
  .cond-list li{padding:7px 0 7px 22px;font-size:clamp(13px,1.65vw,17px);line-height:1.45;}
  .cond-list li::before{top:8px;font-size:12px;}
  .cond-notes{display:none;}
  .ex-panel{height:260px;padding:16px;background:#fff8a5;}
  .prices{height:100%;padding:12px 8px;border-radius:18px;}
  .price-case{gap:5px;padding:2px 6px;}
  .price-case img{width:min(100%,130px);}
  .pc-cond{font-size:clamp(11px,1.3vw,14px);}
  .pc-cond strong{font-size:clamp(14px,1.55vw,17px);}
  .pc-result{font-size:clamp(12px,1.45vw,16px);}
  .pc-result strong{font-size:clamp(17px,1.9vw,21px);}
  .cam-notes{margin:0;font-size:clamp(11px,1.15vw,13px);line-height:1.65;color:var(--ink);}
}

@media (min-width:900px) and (max-width:1199px){
  .cam-head{grid-template-columns:clamp(180px,18vw,220px) minmax(0,1fr) clamp(150px,16vw,190px);margin-bottom:30px;}
  .cam-onsen{display:block;width:100%;}
  .cam-headline{max-width:500px;}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:30px;}
  .step-card{min-height:292px;}
  .sched{margin-bottom:30px;}
  .sched-rows{grid-template-columns:repeat(4,minmax(0,1fr));}
  .sched-rows li{min-height:88px;padding-inline:8px;}
  .cond-panel,.ex-panel{height:200px;}
}

/* ============ S4 宿の日week（清書） ============ */
.sec-week{background:var(--yellow);padding:52px 0 60px;}
.week-inner{width:min(100% - 32px,1080px);margin-inline:auto;}
.week-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;margin-bottom:36px;}
.week-badge{width:180px;height:auto;}
.week-title{color:var(--red);font-size:36px;line-height:1.25;margin-bottom:12px;}
.week-text{font-size:15px;line-height:1.85;}
.week-people{width:180px;}
.week-people img{width:100%;height:auto;display:block;}
.events{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none;}
.events img{width:100%;height:auto;border-radius:12px;}
.events .soon{min-height:220px;font-size:20px;}
/* PC専用の再構築カード群＝SP（base）では非表示。SP完全非破壊 */
.events-pc-wrap{display:none;}
/* SP専用の花火ロゴSP版＝既定非表示（SPブロックでのみ表示・PC非影響）。PCブロックの.ev-photo>img(0,1,1)に勝つ詳細度(0,2,1)で指定 */
.ev-photo img.ev-photo-logo-sp{display:none;}
/* 説明本文のPC専用改行＝SPでは非表示（従来の連続文表示を維持） */
.pc-br{display:none;}

/* ============================================================
   S4イベント PC専用（Figma準拠・第1周実装 2026-07-12）
   セクション y3475→予約サイト4418／上部Grid（バッジ315+見出し61.1px白マーカー+右イラストトリミング）
   ＋4カード（白2/グレー2・写真+ラベル+ライブテキスト+ボタン）＋静的矢印＋下端街並み
   合成PNGは最終表示に使わずライブテキストで再構築。SP（@media max-width:768）は不変
   ============================================================ */
@media (min-width:1200px){
  .sec-week{position:relative;height:min(940.278px,65.297083vw);overflow:hidden;padding:0;}
  .week-inner{
    position:relative;left:50%;z-index:1;width:1440px;height:940.278px;margin:0;
    --week-scale:min(1,calc(100vw / 1440px));
    transform:translateX(-50%) scale(var(--week-scale));transform-origin:top center;
  }
  .week-head{position:absolute;inset:0;display:block;margin:0;min-height:0;}
  .week-badge{position:absolute;left:120px;top:83.904px;width:282px;max-width:none;margin:0;}
  .week-copy{position:absolute;left:431px;top:69.109px;width:570px;padding:0;}
  .week-copy .week-title{margin:0 0 18px 6.712px;}
  .week-title{font-size:47px;line-height:68.5px;letter-spacing:.4375px;background:none;color:var(--red);}
  .wk-mark{position:relative;z-index:0;display:inline;white-space:nowrap;background:none;padding:0;}
  .wk-mark::before{content:"";position:absolute;left:-11.712px;bottom:6px;width:450.152px;height:21.369px;background:#fff;z-index:-1;}
  .week-text{width:570px;margin:0;font-size:19px;font-weight:700;line-height:44px;letter-spacing:1.1875px;text-align:left;}
  .wl{display:block;line-height:44px;white-space:nowrap;letter-spacing:inherit;}
  .week-people{position:absolute;left:902.866px;top:49.95px;width:467px;height:auto;overflow:visible;}
  .week-people img{width:100%;height:auto;display:block;object-fit:contain;}

  /* SP合成カードはPCで非表示、PC再構築を表示 */
  .events{display:none;}
  .events-pc-wrap{
    position:absolute;left:50%;top:min(399.693px,27.756458vw);z-index:2;display:block;width:1440px;height:362.163px;margin:0;
    --week-scale:min(1,calc(100vw / 1440px));
    transform:translateX(-50%) scale(var(--week-scale));transform-origin:top center;
  }
  .events-pc{position:absolute;left:222.001px;top:0;display:grid;grid-template-columns:repeat(4,239.727px);gap:12.938px;width:997.722px;height:362.163px;}

  .ev-card{position:relative;height:362.163px;border-radius:40px;overflow:hidden;}
  .ev-white{background:#fff;}
  .ev-soon{background:#c9caca;display:grid;place-items:center;text-align:center;font-weight:700;font-size:31px;color:#231815;line-height:1.2;}
  /* ラベルタブ＝固定寸法113.5×51.5（Figma bg 113.538×51.459）・カードから左-8.9/上-2.6 */
  .ev-label{position:absolute;left:13.434px;top:13.431px;z-index:3;width:90px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:20px;line-height:1;border-radius:27px 0 18px 0;}
  .ev-label-red{background:#ff0000;}
  .ev-label-purple{background:#92539d;}
  /* 写真＝カード内14px余白・Figma比224.6/179.6 */
  .ev-photo{position:absolute;left:13.434px;top:13.431px;width:212.859px;height:201.762px;margin:0;border-radius:27px;overflow:hidden;aspect-ratio:auto;}
  .ev-photo>img{width:100%;height:100%;object-fit:cover;display:block;}
  /* カード1花火ロゴ（Illustrator正本＝Figma白ベクター14ノードを合成したillust_event1_logo.svg）。写真相対 left57/top111.8 117.3×61.3。詳細度を.ev-photo>imgより上げてサイズ上書き */
  .ev-photo>img.ev-photo-logo{position:absolute;left:20.89%;top:61.93%;width:61.2%;height:auto;object-fit:contain;pointer-events:none;}
  .ev-photo-split{display:grid;grid-template-columns:1fr 1fr;gap:0;}
  /* カード2写真＝東京/大阪の2分割。各半分に白ラベル（Figma 1:11180 x517.164/1:11181 x625.844 y4028.7 20px Bold白） */
  .ev-photo-half{position:relative;overflow:hidden;}
  .ev-photo-half img{width:100%;height:100%;object-fit:cover;display:block;}
  .ev-photo-label{position:absolute;left:0;right:0;bottom:2px;text-align:center;color:#fff;font-weight:700;font-size:19px;line-height:1;text-shadow:none;}
  /* 東京/大阪を個別Figma位置へ（東京x517.164=中央から右へ／大阪x625.844） */
  .ev-photo-half:nth-child(1) .ev-photo-label{transform:translateX(7px);}
  .ev-photo-half:nth-child(2) .ev-photo-label{transform:translateX(2px);}
  /* カード内ライブ文字＝カード相対absoluteでFigma実インク位置へ（カード1/2で個別）。left≈27.3(x221) */
  .ev-title{position:absolute;left:25.12px;right:12px;font-size:20px;font-weight:700;color:var(--ink);line-height:27px;margin:0;}
  .ev-date{position:absolute;left:25.24px;font-size:15px;font-weight:500;color:var(--ink);line-height:1.35;margin:0;}
  .ev-venue{position:absolute;left:25.24px;right:10px;font-size:15px;font-weight:500;color:var(--ink);line-height:1.35;margin:0;}
  /* カード別の縦位置（ローカルtop）。ink実測でtop=Figmaローカル+2〜3に調整 */
  .ev-card:nth-child(1) .ev-title{top:233px;}
  .ev-card:nth-child(2) .ev-title{top:226px;}
  .ev-date{top:288px;}
  .ev-venue{top:310px;}
  /* 青ボタン＝カード下部（Figma 211.6x36.8 y4187） */
  .ev-btn{display:none;}
  .ev-btn-arrow{font-size:15px;}
  /* 静的矢印＝白丸56.4px＋黒山形。絶対配置でFigma実座標へ（左x115.192/右x1263.638・上y4023.664＝行top3858から165.7）。aria-hidden */
  .ev-arrow{position:absolute;top:155.095px;width:56.362px;height:56.362px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12);z-index:2;}
  .ev-arrow-l{left:115.192px;}
  .ev-arrow-r{left:1263.638px;}
  .ev-arrow::before{content:"";position:absolute;top:50%;left:50%;width:15px;height:15px;border-top:3.5px solid #231815;border-right:3.5px solid #231815;}
  .ev-arrow-l::before{transform:translate(-20%,-50%) rotate(-135deg);}
  .ev-arrow-r::before{transform:translate(-80%,-50%) rotate(45deg);}
  /* 下端街並み（Figma v11 S-3_town専用SVG） */
  .sec-week::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:min(124.745px,8.662847vw);background:url(../assets/img/parts/bg_town_s3_pc_v11.svg) center bottom/min(1440px,100vw) auto no-repeat;pointer-events:none;z-index:0;}
}

/* ============ S5 予約サイト（清書） ============ */
.sec-ota{background:#b0dff8;padding:52px 0 60px;}
.ota-inner{width:min(100% - 32px,1080px);margin-inline:auto;}
.ota-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;margin-bottom:32px;}
.ota-badge{width:190px;height:auto;}
.ota-title{color:var(--red);font-size:36px;line-height:1.25;margin-bottom:10px;}
.ota-sub{font-weight:700;font-size:16px;}
.ota-br-pc{display:none;}
.ota-family{width:170px;height:auto;}
.ota-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none;}
.ota-cards li{background:#fff;border-radius:14px;min-height:78px;font-weight:700;font-size:19px;display:grid;place-items:center;}
.ota-cards li.soon{font-size:16px;}
.ota-cards a{display:grid;place-items:center;width:100%;height:100%;}
/* PC専用の再構築カード群＝SP（base）では非表示。SP完全非破壊 */
.ota-cards-pc-wrap{display:none;}

/* ============================================================
   S5予約サイト PC専用（Figma準拠・第1周実装 2026-07-12）
   セクションy4418.6→FAQ4418.6+728=5146.6／上部Grid（バッジ315+見出し61.1px白マーカー+サブ22px+家族237）
   ＋4カード（白3/グレー1・252.913×157.778・gap13.649・角丸43・31px）＋静的矢印＋下端青街並み
   event同型だが ota-* 専用クラスで実装（eventCSSは変更・共通化しない）。SP（@media max-width:768）は不変
   ============================================================ */
@media (min-width:1200px){
  .sec-ota{position:relative;height:min(731.458px,50.795694vw);overflow:hidden;padding:0;background:#b0dff8;}
  .ota-inner{position:relative;left:50%;z-index:1;width:1440px;height:731.458px;margin:0;--ota-scale:min(1,calc(100vw / 1440px));transform:translateX(-50%) scale(var(--ota-scale));transform-origin:top center;}
  .ota-head{position:absolute;inset:0;display:block;margin:0;min-height:0;}
  .ota-badge{position:absolute;left:120px;top:81.051px;width:282px;max-width:none;margin:0;}
  .ota-copy{position:absolute;left:436.348px;top:65.929px;width:584px;padding:0;}
  /* 見出し＝61.1px Bold 赤＋各行に白マーカー（Figma実寸・文字下部）。行送り1.35でFigma行間82.4px */
  .ota-title{font-size:47px;line-height:68.5px;letter-spacing:.4063px;margin:0 0 16.148px 1.365px;color:var(--red);background:none;}
  .ota-mark{position:relative;white-space:nowrap;}
  .ota-mark-1{letter-spacing:0;} /* 行1インク幅577へ */
  .ota-mark-2{letter-spacing:-.0045em;} /* 行2インク幅537へ（左端434=フロー位置） */
  .ota-mark::before{content:"";position:absolute;left:-11.712px;bottom:6px;width:549px;height:21.369px;background:#fff;z-index:-1;}
  .ota-mark-1::before,.ota-mark-2::before{width:549px;}
  .ota-sub{width:584px;font-size:19px;font-weight:700;line-height:44px;margin:0;padding:0;letter-spacing:.4375px;}
  .ota-br-pc{display:block;}
  /* 右家族イラスト＝原寸比1:1（Figma 236.943×310.213）。absoluteで右端x≈1290・左端x≈1053へ（inset70） */
  .ota-family{position:absolute;left:1053.307px;top:60.408px;width:236.949px;height:auto;max-width:none;}

  .ota-cards{display:none;}
  .ota-cards-pc-wrap{display:block;position:absolute;left:50%;top:min(399.367px,27.733819vw);z-index:1;width:1440px;height:149.335px;margin:0;--ota-scale:min(1,calc(100vw / 1440px));transform:translateX(-50%) scale(var(--ota-scale));transform-origin:top center;}
  .ota-cards-pc{position:absolute;left:220.686px;top:0;display:grid;grid-template-columns:repeat(4,239.39px);gap:12.92px;width:996.32px;}
  .ota-card{height:149.335px;border-radius:43px;background:#fff;display:grid;place-items:center;text-align:center;font-size:31px;font-weight:700;color:#231815;line-height:1.15;letter-spacing:-.02em;padding:0;text-indent:0;}
  .ota-card:nth-child(1),.ota-card:nth-child(2),.ota-card:nth-child(3){text-indent:0;}
  .ota-card.ota-soon{background:#c9caca;line-height:1.42;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;}
  .ota-card.ota-soon br{display:none;}
  .ota-soon span{display:inline;line-height:inherit;transform:none;}
  .ota-soon .soon-l1,.ota-soon .soon-l2{transform:none;}
  /* 静的矢印＝白丸56.362px＋黒山形。絶対配置でFigma実座標（左丸x120/右丸x1263.638・y中心=行4810.3から+...）。aria-hidden */
  .ota-arrow{position:absolute;top:40.996px;width:56.362px;height:56.362px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12);z-index:2;}
  .ota-arrow-l{left:120px;}
  .ota-arrow-r{left:1263.638px;}
  .ota-arrow::before{content:"";position:absolute;top:50%;left:50%;width:15px;height:15px;border-top:3.5px solid #231815;border-right:3.5px solid #231815;}
  .ota-arrow-l::before{transform:translate(-20%,-50%) rotate(-135deg);}
  .ota-arrow-r::before{transform:translate(-80%,-50%) rotate(45deg);}
  /* 下端青街並み（Figma v11 S-4_town専用SVG） */
  .sec-ota::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:min(124.745px,8.662847vw);background:url(../assets/img/parts/bg_town_s4_pc_v11.svg) center bottom/min(1440px,100vw) auto no-repeat;pointer-events:none;z-index:0;}
}

@media (max-width:599px){
  /* ============================================================
     ③キャンペーン SP390本実装（Figma v11再監査 2026-07-15）
     正本＝Figma v11 node 2:23722（390px本体）
     セクション：y1603.376〜4841.34（h3237.96）金背景#fcc926
     紙吹雪＝v11 node 2:23726を正式SVGとして一体配置（x=-22.212 y=-19.169 w439.751 h487.524）
     ============================================================ */
  .sec-campaign{
    position:relative;overflow:hidden;
    padding:0 0 7.168px; /* v11注記140px化後もイベント開始4841.34を維持 */
    background-color:#fcc926;
    background-image:url(../assets/img/parts/bg_confetti_sp_v11.svg);
    background-position:calc(50% - 217.212px) -19.169px;
    background-size:439.751px 487.524px;
    background-repeat:no-repeat;
  }
  /* v11の390px本体を常に中央基準にする。375pxは左右7.5pxを自然にトリミングし、391〜599pxは背景だけを拡張する。 */
  .cam-inner{width:390px;margin-inline:auto;}
  /* --- 上部MV＝1グループ（内部は装飾のみabsolute）。高さ=STEP1白カード上端2061.88-1603.38 ---
     バッジ=既存badge_campaign.svg（v06 uuid19368とアスペクト一致1.011=同一アートワーク）173.04px
     温泉=既存illust_onsen.svg（uuid15851とアスペクト一致1.043）153.69px
     8100見出し=SP版正規書き出しheading_8100_cashback_sp.svg（uuid17525・黒注釈込み339.63×215.89）
     ※HTMLは<picture>でSP時のみSP版へ切替（PC素材・PC表示は不変） */
  .cam-head{display:block;position:relative;height:458.5px;margin:0;}
  .cam-badge{position:absolute;left:41.18px;top:38.02px;width:173.04px;}
  .cam-onsen{display:block;position:absolute;left:199.05px;top:44.27px;width:153.69px;}
  .cam-headline{position:absolute;left:29.08px;top:226.66px;width:339.63px;max-width:none;}
  /* --- STEPカード3枚：x20 350×363.62 r30 gap19.85（v06 uuid15534/19650/19641） --- */
  .steps{grid-template-columns:1fr;gap:19.85px;width:350px;margin:0 auto 19.84px;}
  .step-card{position:relative;background:#fff;border-radius:30px;padding:0;height:363.62px;overflow:visible;display:block;}
  /* 番号赤丸=可視63.5px（x39〜102.5 カード内y24.2）／見出し43px SHS JP Bold（ink x114.77） */
  .step-head{margin:24.2px 0 0 19px;gap:6.58px;align-items:center;font-size:43px;line-height:1;display:flex;}
  .step-num{width:63.5px;height:63.5px;flex:0 0 63.5px;font-size:45px;} /* v06数字ink h33.24=45px相当（円63.88） */
  .step-title{ /* 黄マーカー＝v06矩形uuid19520実測：文字ink左-5.7/右+9.8/下+6.1へ張り出し（h16.78） */
    background:linear-gradient(transparent 0 65.8%,#ffdb3d 65.8% 100%);
    padding:0 9.8px 6.1px 5.7px;
  }
  .step-card:nth-child(3) .step-title{padding-right:14.8px;} /* 当選DMのマーカー右端=v06グループ右へ */
  /* Figma v11本文 node 4:305 / 4:307 / 4:310：3枚ともNoto Sans JP Bold 20px/39px、字送り1.7188px。 */
  .step-text{
    position:absolute;left:18.586px;top:97.119px;z-index:2;width:238px;margin:0;padding:0;
    font-family:"Noto Sans JP",sans-serif;font-size:20px;font-weight:700;line-height:39px;
    letter-spacing:1.7188px;white-space:nowrap;font-feature-settings:"palt" 0;
  }
  .step-card:nth-child(2) .step-text{top:96.652px;width:331px;letter-spacing:1.7188px;}
  .step-card:nth-child(3) .step-text{top:97.184px;width:335px;letter-spacing:1.7188px;font-feature-settings:"palt" 0;}
  /* イラスト=PC正規素材414.33px幅を正本位置へ（カードから左右はみ出し・sectionのoverflow:hiddenで390にクリップ）
     カード内重なり装飾のためabsolute（本家指示の許容範囲） */
  .step-illust{position:absolute;left:-32.59px;top:160.06px;width:414.33px;max-width:none;margin:0;}
  .step-card:nth-child(3) .step-illust{left:-31.4px;top:166.98px;}
  /* STEP2=正規2レイヤーをSPでも使用（本家指示：暫定PNGで正本再現不可のため）。
     bg=x-16.12 y2612.30(カード内166.95)／人物=x105.5 y2591.60(カード内146.27)＝PCと同素材1:1 */
  .step-card:nth-child(2) .sns-tmp{display:none;}
  .step-card:nth-child(2) .sns-pc{display:block;left:-36.12px;top:146.27px;}
  .sns-pc .sns-bg{display:block;width:414.33px;margin-top:20.68px;}
  .sns-pc .sns-person{position:absolute;left:121.62px;top:0;width:185.27px;}
  /* --- 共通：帯付き白箱（帯r25上・箱r30下＝Figma画素実測） --- */
  .bar-title{margin:0;padding:0;height:52.96px;border-radius:25px 25px 0 0;display:grid;place-items:center;font-size:25px;font-weight:700;letter-spacing:0;}
  /* --- スケジュール：箱=x20 350×591.89(y3212.28〜3804.17)／シェブロン x49.05 w294.96 --- */
  .sched{width:350px;margin:0 auto 19.85px;background:#fff;border-radius:25px 25px 30px 30px;}
  .sched-rows{display:block;background:transparent;border-radius:0;padding:19.88px 0 24.64px 29.05px;}
  .sched-rows li{
    display:block;width:294.96px;aspect-ratio:294.96/123.79;margin:0 0 5.79px;padding:0 3.07px 0 0;border-radius:0;text-align:center; /* 内容中心=v06フレーム中心195 */
    -webkit-mask:url(../assets/img/parts/sched_shape.svg) center/100% 100% no-repeat;
    mask:url(../assets/img/parts/sched_shape.svg) center/100% 100% no-repeat;
  }
  .sched-rows li:last-child{ /* 4段目のみ尖りなし＝v06 uuid19938書き出し形状（294.98×105.73） */
    aspect-ratio:294.98/105.73;margin-bottom:0;
    -webkit-mask-image:url(../assets/img/parts/sched_shape_last_sp.svg);
    mask-image:url(../assets/img/parts/sched_shape_last_sp.svg);
  }
  /* Figma行別文字組み：row1-2=Zen Kaku Black、row3-4=Noto Sans JP Bold。
     SP row3-4は先頭数字36.5px＋残り32pxの混植を独立spanで再現し、文言「〜」は社長確定原稿を維持する。 */
  .sched-rows .date{display:flex;align-items:center;justify-content:center;height:59.16px;padding-top:2.5px;line-height:1;letter-spacing:0;}
  .sched-rows li:nth-child(1) .date{font-size:41.9724px;}
  .sched-rows li:nth-child(2) .date{font-size:42.9671px;}
  .sched-rows li:nth-child(n+3) .date{padding-top:0;font-family:"Noto Sans JP",system-ui,sans-serif;font-size:0;font-weight:700;}
  .sched-rows li:nth-child(n+3) .date-lead{font-size:36.5px;}
  .sched-rows li:nth-child(n+3) .date-rest{font-size:32px;}
  .sched-rows li:nth-child(3) .date-lead,.sched-rows li:nth-child(3) .date-rest{letter-spacing:.2852px;}
  .sched-rows li:nth-child(3) .date-rest{margin-left:.2852px;}
  .sched-rows li:nth-child(4) .date-lead,.sched-rows li:nth-child(4) .date-rest{letter-spacing:.8555px;}
  .sched-rows li:nth-child(4) .date-rest{margin-left:.8555px;}
  .sched-rows .lbl{display:block;width:252.37px;margin:0 auto;border-top:1px solid rgba(35,24,21,.45);padding-top:7px;font-size:20.5946px;line-height:1;text-align:center;font-feature-settings:"palt" 0;letter-spacing:0;}
  .sched-rows li:nth-child(1) .lbl{letter-spacing:.3203px;}
  .sched-rows li:nth-child(2) .lbl{letter-spacing:.6406px;}
  .sched-rows li:nth-child(4) .lbl{letter-spacing:-1.2012px;}
  /* --- 参加条件：箱=x20 350×247.23(y3824.02〜4071.25)。帯文言はHTML正《 参加条件 》維持（Figma側の誤記は不採用・本家指示） --- */
  .cond-ex{display:block;width:350px;margin:0 auto;gap:0;}
  .cond{margin:0 0 19.84px;background:#fff;border-radius:25px 25px 30px 30px;height:247.23px;} /* 外形=正本y3824.02〜4071.25 */
  .cond-panel{padding:11.023px 21px 0 22.879px;background:transparent;height:auto;}
  /* Figma v11本文 node 4:315：Noto Sans JP Bold 18px/33px、字送り0.9px。 */
  .cond-list{width:326px;font-family:"Noto Sans JP",sans-serif;font-feature-settings:"palt" 0;}
  .cond-list li{font-size:18px;line-height:33px;font-weight:700;letter-spacing:.9px;padding:0 0 0 19.8px;white-space:nowrap;}
  .cond-list li::before{font-size:18px;line-height:33px;letter-spacing:.9px;top:0;}
  .cond-list .cl2{display:block;padding-left:1em;} /* Figmaの全角1字下げを再現 */
  /* --- キャッシュバック事例：外箱=x20 350×598.67(y4091.09〜4689.76)薄黄／内側白=x48.99 295.08×497.21 r20 --- */
  .ex{background:transparent;}
  .ex-panel{background:#fff8a5;border-radius:0 0 30px 30px;padding:19.84px 0 28.66px;height:auto;}
  .prices{display:block;width:295.08px;margin:0 0 0 28.99px;background:#fff;border-radius:20px;padding:0;height:497.21px;}
  .price-case{display:block;padding:0;text-align:center;}
  .price-case:first-child{height:245.4px;} /* 横罫=内側白カード上端+245.4（y4409.29） */
  .price-case+.price-case{border:0;margin:0;padding:0;}
  .price-case+.price-case::before{content:"";display:block;width:245.46px;height:1px;background:#9f9f9f;margin:0 auto;}
  /* 事例文字（v06実測：cond行送り24.75／result行送り39.54・数字=Zen Maru Bold） */
  .pc-cond{font-size:19px;line-height:24.75px;font-weight:700;padding-top:17px;font-feature-settings:"palt" 0;letter-spacing:.02em;transform:translateX(1.4px);}
  .price-case:last-child .pc-cond{transform:translateX(-1.2px);}
  .pc-cond strong{font-size:19px;}
  .pc-cond .yen-num{font-size:28px;}
  .price-case:last-child .pc-cond .yen-num{font-size:26px;}
  .price-case img{max-width:none;}
  .price-case:first-child img{width:228.78px;margin:8px auto 0;} /* 札束=x80.61 y4242.92（PC素材と同一・原寸） */
  .price-case:last-child img{width:183.94px;margin:8px auto 0;}  /* 札束2=x102.36 y4491.80 */
  .pc-result{font-size:29.5px;line-height:36.5px;margin-top:25px;font-feature-settings:"palt" 0;letter-spacing:-.1em;transform:translateX(-3.5px);}
  .pc-result .pc-limit,.pc-result strong{letter-spacing:0;}
  .price-case:last-child .pc-cond{padding-top:18px;}
  .price-case:last-child .pc-result{margin-top:20px;}
  .pc-result strong{font-size:31px;}
  .pc-result .yen-num{font-size:40px;}
  .pc-limit{font-size:23px;margin-right:2px;}
  /* Figma v11本文 node 4:316：Noto Sans JP Medium 11px/20px、幅358px、字送り-0.55px、7行。 */
  .cam-notes{
    width:358px;margin:4.453px 0 0 16.879px;
    font-family:"Noto Sans JP",sans-serif;font-size:11px;font-weight:500;line-height:20px;
    letter-spacing:-.55px;color:var(--ink);text-align:left;font-feature-settings:"palt" 0;
  }
  .cam-note-line{display:block;}
  .cam-note-line:last-child::before{content:none;}
}

@media (max-width:1199px){
  /* ============================================================
     S4イベント SP390本実装（本家指示 2026-07-13・v=20260713c）
     正本＝Figma 2001:2画素＋イラレv06 SP_390_TOPベクター実測（±1px一致確認）
     セクション：y4841.34〜6675.76（h1834.42）
     カード外形＝Figma 2001:18132/18239＝イラレuuid25316/25422（x20 349.54×528.07 r60）
     ============================================================ */
  .sec-week{padding:0 0 35.61px;} /* 下pad=SOON下端6640.15→予約サイト開始6675.76 */
  .week-inner{width:390px;margin-inline:auto;}
  /* 上部＝バッジ(uuid20110 x40.35 y4868.82 173.87幅=既存badge_yadonohi_week.svgアスペクト一致)
     ＋女性イラスト(uuid20719書き出し x218.15 y4860.34 143.58幅)＋見出し＋説明 */
  .week-head{display:block;position:relative;height:445.83px;margin:0;gap:0;}
  .week-badge{position:absolute;left:40.35px;top:27.48px;width:173.87px;max-width:none;}
  .week-people{position:absolute;left:218.15px;top:19px;width:143.58px;max-width:none;}
  .week-people img{width:100%;height:auto;display:block;}
  .week-copy{padding-top:215px;text-align:left;margin:0;}
  /* 見出し=v06 uuid25741：SHS JP Bold 29.44px/行送り39.97 左揃え ink x54.92
     白マーカー=v06矩形 uuid25738(242.05×10.28)/25737(219.53×10.28) x48.97 */
  .week-title{font-size:29.44px;line-height:39.97px;display:block;background:none;padding:0;margin:0 0 0 54.92px;color:var(--red);text-align:left;letter-spacing:0;position:relative;z-index:0;}
  .wk-mark{position:relative;white-space:nowrap;background:none;padding:0;}
  .wk-mark::before{content:"";position:absolute;left:-5.95px;bottom:1px;height:10.28px;background:#fff;z-index:-1;}
  .week-title .wk-mark:first-child::before{width:242.05px;}
  .week-title .wk-mark:last-of-type::before{width:219.53px;left:-5.1px;}
  /* 説明=v06 uuid19367：SHS JP Medium 14px/28.5 justify tracking+20（宿の日とは本文と同仕様）
     正本4行の改行を再現（幅292.09・字送りは実測ループで確定） */
  .week-text{width:292.09px;margin:14px 0 0 48.97px;font-size:14px;line-height:28.5px;letter-spacing:0.37px;text-align:justify;} /* 正本4行改行の可行域[0.25,0.5]の中央 */
  /* SP=旧合成PNGカードを廃止しPC用ライブテキストDOMを再スタイル（原稿・構造不変） */
  .events{display:none;}
  .ev-arrow{display:none;}
  .events-pc-wrap{display:block;width:349.54px;margin:0 auto;}
  .events-pc{display:grid;grid-template-columns:repeat(2,170.18px);column-gap:9.18px;row-gap:20.2455px;}
  .ev-card{position:relative;grid-column:1/-1;justify-self:start;width:349.327px;height:527.739px;margin-left:.268px;border-radius:60px;}
  .ev-soon{width:170.18px;margin-left:0;justify-self:start;}
  .ev-white{background:#fff;}
  /* 写真=カード内19.6px四方インセット 310.36×248.17 r40（イラレclip 25328/25443） */
  .ev-photo{position:absolute;left:19.578px;top:19.57px;width:310.173px;height:294.005px;border-radius:40px;overflow:hidden;margin:0;aspect-ratio:auto;}
  .ev-photo>img{width:100%;height:100%;object-fit:cover;display:block;}
  /* ラベルタブ=写真クリップ内側左上（v06 rect 25324可視部125.09×47.9・BR角のみr20） */
  .ev-label{position:absolute;left:19.59px;top:19.57px;width:125.09px;height:47.9px;z-index:3;display:grid;place-items:center;color:#fff;font-weight:700;font-size:27.64px;letter-spacing:.05em;line-height:1;border-radius:40px 0 20px 0;}
  .ev-label-red{background:#ff0000;}
  .ev-label-purple{background:#92539d;}
  /* 花火ロゴ=SP版書き出しillust_event1_logo_sp.svg（uuid25337・162.17×66.73）を写真相対配置。PC版ロゴはSPで非表示 */
  .ev-photo img.ev-photo-logo{display:none;}
  .ev-photo img.ev-photo-logo-sp{display:block;position:absolute;left:64.804px;top:182.08px;width:189.838px;height:78.119px;object-fit:contain;pointer-events:none;}
  /* カード2写真=左156.30/右154.10の2分割・gap0（クリップ195.9で接する） */
  .ev-photo-split{display:grid;grid-template-columns:repeat(2,155.0865px);gap:0;}
  .ev-photo-half{position:relative;overflow:hidden;}
  .ev-photo-half img{width:100%;height:100%;object-fit:cover;display:block;}
  /* 半透明黒帯=v06 rect 25440/25434（y6065.86〜写真下端・実測α0.65） */
  .ev-photo-half::before{content:"";position:absolute;left:0;right:0;bottom:0;height:37.15px;background:rgba(0,0,0,.65);z-index:1;}
  /* 東京/大阪=白27.64px・帯上に中央（v06フレーム25454/25455・正本に文字影なし） */
  .ev-photo-label{position:absolute;left:0;right:0;bottom:3px;text-align:center;color:#fff;font-weight:700;font-size:27.64px;line-height:1;z-index:2;}
  .ev-photo-half:nth-child(1) .ev-photo-label{transform:translateX(6.85px);} /* v06フレーム25454中心124.6へ */
  .ev-photo-half:nth-child(2) .ev-photo-label{transform:translateX(1.3px);} /* v06フレーム25455中心274.2へ */
  /* カード内ライブ文字（v06実測：タイトル30.41/39.39・日付/会場22.11/31.1・ink左x56.05=カード内36.46） */
  .ev-title{position:absolute;left:36.46px;right:20px;font-size:30.41px;font-weight:700;line-height:39.39px;color:var(--ink);margin:0;letter-spacing:0;}
  .ev-card:nth-child(1) .ev-title{top:343px;}
  .ev-card:nth-child(2) .ev-title{top:333px;}
  .ev-card:nth-child(2) .ev-date{letter-spacing:-.82px;} /* 原稿=全角（）〜 vs 正本=半角の幅差を字送りで正本ink幅230へ */
  .ev-date{position:absolute;left:36.46px;font-size:22.11px;font-weight:500;line-height:31.1px;color:var(--ink);margin:0;top:421px;}
  .ev-venue{position:absolute;left:36.46px;right:16px;font-size:22.11px;font-weight:500;line-height:31.1px;color:var(--ink);margin:0;top:452px;}
  .ev-card:nth-child(2) .ev-date{top:423px;}
  .ev-card:nth-child(2) .ev-venue{top:454px;}
  /* 青ボタン=v06 rect 25332/25447：x49.74 292.38×50.84 r20・文字24.87px Bold trk60・＞は右寄せ */
  .ev-btn{display:none;}
  .ev-btn-arrow{position:absolute;right:16px;font-size:22px;letter-spacing:0;}
  /* COMING SOON=170.18×257.10 r30 #c9caca（v06 25458/25461）文字20.86px/36.5 */
  .ev-soon{grid-column:auto;width:170.18px;height:257.10px;justify-self:start;background:#c9caca;border-radius:30px;display:grid;place-items:center;text-align:center;font-weight:700;font-size:20.86px;line-height:36.5px;color:#231815;padding-bottom:5px;}
  /* ============================================================
     S5予約サイト SP390本実装（本家指示 2026-07-13・v=20260713d）
     正本＝Figma 2001:2画素＋イラレv06 SP_390_TOPベクター実測（v06可視位置=HANDOFF section相対値一致）
     セクション：y6675.76〜7289.11（h613.35）背景#b0dff8。イベント終了(=開始)は不動
     ※Figma/v06見出しは誤ってイベント文言。正式原稿「対象の予約サイトから／ご予約いただけます！」を維持（本家判断）
     ============================================================ */
  .sec-ota{height:689.357px;padding:0;background:#b0dff8;position:relative;overflow:hidden;}
  .ota-inner{position:relative;width:390px;max-width:none;height:100%;margin-inline:auto;}
  /* 上部＝バッジ(v06 25468 x38.80 y30.20 w175.42=既存badge_limited.svg)＋家族(v06 25669 x219.37 y29.92 w124.52=既存illust_family.svg) */
  .ota-head{display:block;position:absolute;inset:0;margin:0;gap:0;}
  .ota-badge{position:absolute;left:38.796px;top:30.201px;width:175.422px;max-width:none;}
  .ota-family{position:absolute;left:219.36px;top:29.92px;width:124.53px;max-width:none;}
  .ota-copy{position:absolute;left:48.879px;top:216.653px;width:293px;padding:0;text-align:left;margin:0;}
  /* 見出し=weekと同一様式（v06はweekの複製＝SHS JP Bold 29.44px/39.97・赤＋白マーカー）。開始x48.97 y224.92 */
  .ota-title{font-size:28.5px;line-height:42.5px;display:block;color:var(--red);background:none;padding:0;margin:0;text-align:left;letter-spacing:0;position:relative;z-index:0;}
  .ota-mark{position:relative;white-space:nowrap;background:none;padding:0;}
  .ota-mark::before{content:"";position:absolute;left:-5px;right:-5px;bottom:2px;height:10.28px;background:#fff;z-index:-1;}
  .ota-mark-1{letter-spacing:0;}
  .ota-mark-2{letter-spacing:0;}
  /* サブ=v06 25744 SHS JP Medium 14px/28.5 trk20・ink左x48.97・y320.26 */
  .ota-sub{width:293px;font-size:14px;font-weight:500;line-height:29px;letter-spacing:.28px;text-align:left;margin:11.584px 0 0;padding:0;}
  /* 4カード：170.40×106.30 r29・h-gap9.196・v-gap9.9（v06 25753/25756/25765/25771）。card4のみ#c9caca */
  .ota-cards{position:absolute;left:20px;top:434.353px;display:grid;grid-template-columns:repeat(2,170.402px);column-gap:9.196px;row-gap:9.932px;width:350px;margin:0;}
  .ota-cards li{min-height:0;background:#fff;border-radius:30px;height:106.304px;display:grid;place-items:center;text-align:center;font-family:"Noto Sans JP",sans-serif;font-weight:700;font-size:20.89px;line-height:36.55px;color:var(--ink);letter-spacing:0;font-feature-settings:"palt" 0;}
  .ota-cards li:nth-child(4){height:106.172px;}
  .ota-cards li.soon{background:#c9caca;font-size:20.86px;line-height:29.78px;}
}

@media (max-width:599px){
  /* 390px正本を375pxでも画面中央から均等に7.5pxずつトリミングし、横スクロールを発生させない。 */
  .sec-week{overflow:hidden;}
  .cam-inner,.week-inner,.ota-inner{position:relative;left:50%;margin-inline:0;transform:translateX(-50%);}
  /* Figma v11 S-3：390px本体内x20／x199.36へカード列を固定する。 */
  .events-pc-wrap{position:relative;left:calc(50% - 175px);margin-inline:0;}
  .ev-card{margin-left:0;}

  /* Figma v11 S-3（4:157 / 4:319 / marker 2:23720, 2:23721） */
  .week-copy{padding-top:212.077px;}
  .week-title{
    width:234px;margin-left:54.92px;
    font-family:"Zen Kaku Gothic New",sans-serif;font-size:28.5px;font-weight:900;font-style:normal;
    line-height:0;letter-spacing:.4375px;
  }
  .week-title::before,.week-title::after{
    content:"";position:absolute;left:-5.947px;width:264.085px;height:10.282px;background:#fff;z-index:0;pointer-events:none;
  }
  .week-title::before{top:30.697px;}
  .week-title::after{top:73.081px;}
  .wk-mark{position:relative;z-index:1;display:inline-block;letter-spacing:.4375px;}
  .wk-mark:first-child{line-height:42px;}
  .wk-mark:last-of-type{line-height:43.003px;}
  .wk-mark::before{content:none;}
  .week-text{
    width:293px;margin:12.576px 0 0 48.879px;
    font-family:"Noto Sans JP",sans-serif;font-size:14px;font-weight:500;line-height:29px;letter-spacing:.28px;text-align:left;
  }

  /* Figma v11 S-4（4:290 / 4:497 / marker 2:18172, 2:18173） */
  .ota-title{
    width:292px;font-family:"Zen Kaku Gothic New",sans-serif;font-size:28.5px;font-weight:900;font-style:normal;
    line-height:0;letter-spacing:.375px;
  }
  .ota-title::before,.ota-title::after{
    content:"";position:absolute;left:.093px;width:299.28px;height:10.282px;background:#fff;z-index:0;pointer-events:none;
  }
  .ota-title::before{top:30.697px;}
  .ota-title::after{top:73.081px;}
  .ota-mark{position:relative;z-index:1;display:inline-block;letter-spacing:.375px;}
  .ota-mark-1{line-height:42px;}
  .ota-mark-2{line-height:43.003px;}
  .ota-mark::before{content:none;}
  .ota-sub{
    width:293.125px;margin-top:12.581px;
    font-family:"Noto Sans JP",sans-serif;font-size:14px;font-weight:500;line-height:29px;letter-spacing:.28px;text-align:left;
    font-feature-settings:"palt" 0;
  }
}

/* Figma v11 S-2の390px紙吹雪を、390px超のSP表示幅へ比率維持で拡大する。
   ロゴ・見出し・カードDOMは390px中央軸を維持し、背景装飾だけが画面端まで自然に密度を保つ。 */
@media (min-width:391px) and (max-width:599px){
  .sec-campaign{
    background-position:-5.695385vw -4.915128vw;
    background-size:112.756708vw 125.006154vw;
  }
}

/* S-3 タブレット：SPの1列とPCの4列を、カード内部を焼き込まずにつなぐ。 */
@media (min-width:600px) and (max-width:1199px){
  .sec-week{position:relative;overflow:hidden;padding:clamp(38px,5vw,58px) 0 clamp(92px,9vw,118px);background:#fff8a5;}
  .sec-week::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(70px,8.662847vw,104px);
    background:url(../assets/img/parts/bg_yellow_city.svg) center bottom/100% auto no-repeat;pointer-events:none;z-index:0;
  }
  .week-inner{position:relative;z-index:1;width:min(calc(100% - 40px),1080px);max-width:none;margin-inline:auto;}
  .week-head{
    position:relative;display:grid;grid-template-columns:clamp(140px,18vw,210px) minmax(0,1fr) clamp(110px,15vw,170px);
    align-items:center;gap:clamp(14px,2.2vw,28px);min-height:0;margin:0 0 clamp(30px,4vw,46px);
  }
  .week-badge{position:static;width:100%;max-width:none;margin:0;}
  .week-copy{padding:0;}
  .week-title{margin:0 0 14px;font-size:clamp(27px,3.8vw,44px);line-height:1.34;letter-spacing:.02em;color:var(--red);}
  .wk-mark{position:relative;z-index:0;white-space:nowrap;background:none;padding:0;}
  .wk-mark::before{content:"";position:absolute;left:-5px;right:-8px;bottom:2px;height:.34em;background:#fff;z-index:-1;}
  .week-text{width:auto;margin:0;font-size:clamp(13px,1.7vw,18px);font-weight:500;line-height:2;letter-spacing:.02em;text-align:left;}
  .wl{display:inline;white-space:normal;line-height:inherit;letter-spacing:inherit;}
  .week-people{position:static;width:100%;height:auto;overflow:visible;}
  .week-people img{width:100%;height:auto;display:block;object-fit:contain;}

  .events{display:none;}
  .events-pc-wrap{position:relative;z-index:1;display:block;width:min(calc(100% - 40px),1080px);margin:0 auto;}
  .events-pc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,20px);width:auto;}
  .ev-card{
    --ev-photo-h:clamp(210px,28vw,260px);
    position:relative;grid-column:auto;justify-self:stretch;width:auto;height:calc(var(--ev-photo-h) + 156px);margin:0;
    border-radius:clamp(34px,5vw,50px);overflow:hidden;
  }
  .ev-white{background:#fff;}
  .ev-photo{
    position:absolute;left:14px;top:14px;width:calc(100% - 28px);height:var(--ev-photo-h);margin:0;
    border-radius:clamp(24px,3.5vw,34px);overflow:hidden;aspect-ratio:auto;
  }
  .ev-photo>img{width:100%;height:100%;object-fit:cover;display:block;}
  .ev-photo img.ev-photo-logo{display:block;position:absolute;left:20%;top:60%;width:60%;height:auto;object-fit:contain;}
  .ev-photo img.ev-photo-logo-sp{display:none;}
  .ev-photo-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;}
  .ev-photo-half{position:relative;overflow:hidden;}
  .ev-photo-half img{width:100%;height:100%;object-fit:cover;}
  .ev-photo-half::before{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;background:rgba(0,0,0,.58);z-index:1;}
  .ev-photo-label{position:absolute;left:0;right:0;bottom:4px;z-index:2;text-align:center;color:#fff;font-size:clamp(18px,2.5vw,24px);font-weight:700;line-height:1;transform:none!important;}
  .ev-label{
    position:absolute;left:14px;top:14px;z-index:3;width:clamp(88px,12vw,116px);height:clamp(38px,5vw,48px);
    display:grid;place-items:center;border-radius:30px 0 20px 0;color:#fff;font-size:clamp(20px,2.8vw,27px);font-weight:700;line-height:1;
  }
  .ev-title{position:absolute;left:28px;right:18px;top:calc(var(--ev-photo-h) + 30px);margin:0;font-size:clamp(20px,2.8vw,28px);line-height:1.3;font-weight:700;}
  .ev-card:nth-child(1) .ev-title,.ev-card:nth-child(2) .ev-title{top:calc(var(--ev-photo-h) + 30px);}
  .ev-date{position:absolute;left:28px;top:calc(var(--ev-photo-h) + 94px);margin:0;font-size:clamp(15px,2vw,20px);line-height:1.35;font-weight:500;letter-spacing:-.02em;}
  .ev-venue{position:absolute;left:28px;right:14px;top:calc(var(--ev-photo-h) + 120px);margin:0;font-size:clamp(15px,2vw,20px);line-height:1.35;font-weight:500;}
  .ev-card:nth-child(2) .ev-date{top:calc(var(--ev-photo-h) + 94px);}
  .ev-card:nth-child(2) .ev-venue{top:calc(var(--ev-photo-h) + 120px);}
  .ev-btn,.ev-arrow{display:none;}
  .ev-soon{
    grid-column:auto;width:auto;height:calc(var(--ev-photo-h) + 156px);margin:0;border-radius:clamp(34px,5vw,50px);
    display:grid;place-items:center;background:#c9caca;text-align:center;font-size:clamp(24px,3vw,31px);font-weight:700;line-height:1.45;
  }
}

@media (min-width:900px) and (max-width:1199px){
  .events-pc{grid-template-columns:repeat(4,minmax(0,1fr));}
  .ev-card{--ev-photo-h:clamp(190px,18vw,216px);height:calc(var(--ev-photo-h) + 146px);}
  .ev-soon{height:calc(var(--ev-photo-h) + 146px);}
  .ev-title,.ev-card:nth-child(1) .ev-title,.ev-card:nth-child(2) .ev-title{top:calc(var(--ev-photo-h) + 24px);font-size:clamp(18px,1.8vw,21px);}
  .ev-date,.ev-card:nth-child(2) .ev-date{top:calc(var(--ev-photo-h) + 81px);font-size:clamp(14px,1.45vw,16px);}
  .ev-venue,.ev-card:nth-child(2) .ev-venue{top:calc(var(--ev-photo-h) + 103px);font-size:clamp(14px,1.45vw,16px);}
}

/* S-4 タブレット：SPの2列とPCの固定キャンバスの間を、同じlive HTMLで連続化する。 */
@media (min-width:600px) and (max-width:1199px){
  .sec-ota{
    position:relative;height:auto;overflow:hidden;
    padding:clamp(40px,5vw,60px) 0 clamp(100px,10vw,132px);background:#b0dff8;
  }
  .sec-ota::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(74px,8.662847vw,104px);
    background:url(../assets/img/parts/bg_blue_city.svg) center bottom/100% auto no-repeat;pointer-events:none;z-index:0;
  }
  .ota-inner{position:relative;z-index:1;width:min(calc(100% - 40px),1080px);max-width:none;height:auto;margin-inline:auto;}
  .ota-head{
    position:relative;inset:auto;display:grid;
    grid-template-columns:clamp(145px,19vw,210px) minmax(0,1fr) clamp(112px,15vw,170px);
    align-items:center;gap:clamp(14px,2.2vw,28px);margin:0 0 clamp(30px,4vw,46px);
  }
  .ota-badge{position:static;width:100%;max-width:none;margin:0;}
  .ota-copy{position:static;width:auto;margin:0;padding:0;}
  .ota-title{margin:0 0 12px;font-size:clamp(27px,3.8vw,44px);line-height:1.34;letter-spacing:.02em;color:var(--red);}
  .ota-mark{position:relative;z-index:0;white-space:nowrap;background:none;padding:0;}
  .ota-mark::before{content:"";position:absolute;left:-5px;right:-8px;bottom:2px;width:auto;height:.34em;background:#fff;z-index:-1;}
  .ota-sub{width:auto;margin:0;padding:0;font-size:clamp(13px,1.7vw,18px);font-weight:500;line-height:2;letter-spacing:.02em;text-align:left;}
  .ota-family{position:static;width:100%;max-width:none;height:auto;margin:0;}
  .ota-cards{
    position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(14px,2vw,20px);width:auto;margin:0;
  }
  .ota-cards li,.ota-cards li:nth-child(4){
    height:clamp(112px,16vw,150px);min-height:0;border-radius:clamp(30px,4vw,43px);
    font-size:clamp(21px,2.8vw,30px);line-height:1.4;
  }
  .ota-cards li.soon{font-size:clamp(21px,2.8vw,30px);line-height:1.4;}
  .ota-cards-pc-wrap{display:none;}
}

@media (min-width:900px) and (max-width:1199px){
  .ota-cards{grid-template-columns:repeat(4,minmax(0,1fr));}
  .ota-cards li,.ota-cards li:nth-child(4){height:clamp(124px,12.4vw,149px);}
}

/* ============ S6 よくある質問（実コード） ============ */
.sec-faq{background:var(--white);padding:64px 0 72px;}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.faq-title{margin:0;}
/* 見出し＝正本の装飾（赤ブロブ左＋スーツケース左下＋女性右＋？バブル） */
.faq-head{position:relative;width:min(100% - 24px,540px);margin:0 auto 34px;}
/* .sec img{width:100%} を上回る詳細度で指定（FAQは class="sec sec-faq"） */
.faq-head .faq-blob{width:58%;max-width:none;display:block;margin:0 0 0 2%;}
.faq-head .faq-woman{position:absolute;right:1%;bottom:0;width:38%;max-width:none;height:auto;margin:0;}
.faq-head .faq-suitcase{position:absolute;left:25%;bottom:-1%;width:17%;max-width:none;height:auto;margin:0;z-index:3;}
.faq-head .faq-woman-pc{display:none;}   /* PC専用素材（空白吹き出し込み元画像）。SPは従来素材のまま */
.faq-list{width:min(100%,760px);margin-inline:auto;display:flex;flex-direction:column;gap:16px;}
.faq-item{border:2px solid var(--red);border-radius:12px;overflow:hidden;background:#fff;}
.faq-q{
  width:100%;display:flex;align-items:center;gap:14px;
  background:none;border:0;cursor:pointer;text-align:left;
  font-family:inherit;font-weight:700;font-size:17px;color:var(--ink);
  padding:18px 22px;line-height:1.5;
}
.q-mark{
  flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;
  display:grid;place-items:center;font-size:14px;font-weight:700;
}
.q-toggle{margin-left:auto;flex:0 0 auto;color:var(--red);font-size:24px;font-weight:700;transition:transform .3s;}
.faq-item.open .q-toggle{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-a p{padding:0 22px 20px 62px;color:#555;font-size:15px;}

/* ============================================================
   S6 FAQ PC専用（Figma準拠・第1周実装 2026-07-12）
   行=本家正式値（x427.086 幅585.827 高69.024 角丸20 枠1px赤 ピッチ99.067 gap30.043 Q丸34.092）
   表示10問（Q7非表示）を通常フローで縦積み→フッター開始目標y6257.5（FAQ開始5146.35+76.57+960.627+73.93）
   装飾=sec-faq基準absolute。badge_faq.svg=ブロブ+スーツケース2個の一体素材のため単体配置
   （illust_suitcase.svgを重ねると二重表示になるためPCでは非表示）
   右装飾=illust_woman_question.png（空白吹き出し込みの元素材＝Figma構成と一致。woman_qは吹き出し無しの切出版）
   SP（max-width:768）は既存のまま不変
   ============================================================ */
@media (min-width:1200px){
  .sec-faq{position:relative;overflow:hidden;padding:76.57px 0 73.93px;}   /* overflow=ota同様、1280等で右装飾のはみ出しを断つ */
  .faq-head{position:static;width:auto;margin:0;}
  .faq-head .faq-blob{position:absolute;left:calc(50% - 628.6px);top:59.2px;width:315.69px;margin:0;}
  .faq-head .faq-suitcase{display:none;}
  .faq-head .faq-woman{display:none;}
  .faq-head .faq-woman-pc{display:block;position:absolute;left:calc(50% + 356.6px);top:134.6px;width:259px;margin:0;}
  .faq-list{width:585.827px;gap:30.043px;}
  .faq-item{border-width:1px;border-radius:20px;}
  /* 行内=Q丸x444.935(左17.849)・質問文x484.685(丸右+5.658)・＋記号x964.921(右padding24.6) */
  .faq-q{min-height:67.024px;padding:0 24.6px 0 16.85px;gap:5.658px;font-size:20.4px;line-height:1.45;letter-spacing:-.01171875em;color:#231815;}
  .q-mark{width:34.092px;height:34.092px;font-size:20.4px;}
  .q-toggle{font-size:22.4px;line-height:1;}
  .faq-a p{padding:0 26px 20px 57.6px;}
  /* 個別詰め（HANDOFF「必要な場合だけ個別調整」）：8行目（家族名義・24字）のみ共通値では1行に収まらないため */
  .faq-list .faq-item:nth-child(8) .faq-q{letter-spacing:-.032em;}
}

/* S-5 PC移行域：1199pxのSP行寸法から1440pxのFigma寸法まで連続補間する。 */
@media (min-width:1200px) and (max-width:1439px){
  .sec-faq{
    min-height:calc(100.26vw - 332.82px);
    padding-top:5.317361vw;padding-bottom:5.134028vw;
  }
  .faq-head .faq-blob{left:6.347222vw;top:4.111111vw;width:21.923vw;}
  .faq-head .faq-woman-pc{left:74.763889vw;top:9.347222vw;width:17.986111vw;}
  .faq-list{width:calc(98.26125vw - 829.135px);gap:calc(5.042917vw - 42.575px);}
  .faq-q{
    min-height:calc(11.155833vw - 93.62px);
    padding-right:calc(3.8875vw - 31.38px);padding-left:calc(2.577917vw - 20.272px);
    gap:calc(.8675vw - 6.834px);font-size:calc(3.416667vw - 28.8px);
    letter-spacing:calc(-.04vw + .337px);
  }
  .q-mark{
    width:calc(5.718333vw - 48.252px);height:calc(5.718333vw - 48.252px);
    font-size:calc(3.416667vw - 28.8px);
  }
  .q-toggle{font-size:calc(3.749583vw - 31.594px);}
  .faq-a p{
    padding-right:calc(4.166667vw - 34px);padding-bottom:calc(2.5vw - 16px);
    padding-left:calc(9.583333vw - 80.4px);
  }
}

/* ============ 注意事項ブロック（要GOで表示） ============ */
.sec-notes{background:#f4f4f4;padding:56px 0;}
.notes-inner h2{font-size:22px;color:var(--red);margin-bottom:16px;}
.notes-inner h3{font-size:17px;margin:22px 0 8px;}
.notes-inner ul{list-style:disc;padding-left:1.4em;display:flex;flex-direction:column;gap:8px;}
.notes-inner p{font-size:14px;color:#333;}

/* ============ S7 フッター（実コード） ============ */
/* 正本フッター＝中央スタック（ロゴ→組織名→住所→TEL→ナビ→コピーライト） */
.site-footer{background:var(--red);color:#fff;padding:40px 0 20px;text-align:center;}
.footer-inner{display:flex;flex-direction:column;align-items:center;gap:12px;}
.footer-logo{width:min(58%,230px);height:auto;margin-bottom:8px;}
.footer-org{font-size:20px;font-weight:700;}
.footer-addr{font-size:14px;opacity:.95;}
.footer-tel{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:20px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;}
.footer-nav{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:700;margin-top:4px;}
.footer-nav a:hover{text-decoration:underline;}
.footer-nav a:not([href]){cursor:default;text-decoration:none;}
.footer-nav a:not([href]):hover{text-decoration:none;}
.footer-nav span{opacity:.6;}
.copyright{
  width:min(100% - 40px,var(--contentw));margin:24px auto 0;
  font-size:12px;opacity:.9;border-top:1px solid rgba(255,255,255,.3);padding-top:16px;
}
.footer-couple-pc{display:none;}   /* PC専用素材（客室の年配夫婦）。SPでは常に非表示 */

/* ============================================================
   S7 フッター PC専用（Figma準拠・第1周実装 2026-07-12）
   外形h267.891 #d70c18／3カラム=白ロゴ(115.55, ly49.56, 222.92)＋中央情報(左基準x494.314)
   ＋夫婦イラスト(1058.46, ly27.55, 273.911=正本UUID1987原寸)
   下段=©(x117.015)とナビ(x494.314起点・gap13px=全角スペース相当)を同一行(ink ly197.9〜209.9)
   配置はフッター内ローカル座標のみ（ページ絶対Yはハードコードしない）。SP（max-width:768）は不変
   ============================================================ */
@media (min-width:1200px){
  .site-footer{position:relative;overflow:hidden;height:267.891px;padding:0;text-align:left;}
  .footer-inner{display:block;width:auto;margin:0;}
  /* X座標=画面中央基準（1440pxで従来値と同一・1280pxでは全体が80px左へ→右イラスト見切れ解消） */
  .footer-logo{position:absolute;left:calc(50% - 604.45px);top:49.56px;width:222.92px;margin:0;}
  .footer-brand{position:absolute;left:calc(50% - 225.686px);top:0;}
  .footer-org{font-size:20px;font-weight:700;letter-spacing:.04em;line-height:1;margin-top:54.2px;}
  .footer-addr{font-size:14px;font-weight:400;letter-spacing:.03em;line-height:1;margin-top:13.5px;padding-left:4px;opacity:1;} /* 第2周：〒インク左端500へ+4・右端861維持 */
  .footer-tel{font-size:22px;letter-spacing:.04em;line-height:1;margin-top:11.3px;justify-content:flex-start;gap:21.1px;} /* 第2周：インク中心126.4へ+1.1 */
  /* ナビ=正本(AI)は全角ベタ組み。paltを解除して｜位置559.3/728.3/923.3を字送りで再現 */
  .footer-nav{position:absolute;left:calc(50% - 225.686px);top:196.3px;margin:0;justify-content:flex-start;gap:13px;letter-spacing:0;line-height:1;font-size:13px;font-feature-settings:"palt" 0;}
  .copyright{position:absolute;left:calc(50% - 602.985px);top:196.6px;width:auto;margin:0;padding:0;border-top:0;font-weight:700;letter-spacing:-.03515625em;line-height:1;opacity:1;}
  .footer-couple-pc{display:block;position:absolute;left:calc(50% + 338.46px);top:27.55px;width:273.911px;}
}

/* ============ レスポンシブ（SP） ============ */
/* ⚠️ S1-S5は1440px設計の画像＝SPでは縮小表示（文字が小さくなる）。
   本番SPは各セクションを390px向けに再構成する必要あり＝Fable-5工程。 */
@media (max-width:1199px){
  .nav-inner{height:56px;}
  .gnav{position:fixed;inset:56px 0 auto 0;background:rgba(20,26,46,.98);
    max-height:0;overflow:hidden;overscroll-behavior:contain;visibility:hidden;opacity:0;
    transition:max-height .3s ease,opacity .2s ease,visibility 0s linear .3s;}
  .gnav.open{max-height:60vh;visibility:visible;opacity:1;transition-delay:0s;}
  .gnav ul{flex-direction:column;gap:0;padding:8px 0;}
  .gnav li{border-bottom:1px solid rgba(255,255,255,.12);}
  .gnav a{display:block;padding:16px 24px;}
  .nav-toggle{display:flex;}
  body.menu-open{overflow:hidden;}
  body.menu-open .site-header{transform:translateY(0);}
  .nav-inner{height:56px;}
  .nav-logo img{height:38px;}
  /* SPもPC同様スクロールで出現（初期はヒーローの焼き込みロゴを見せる） */

  /* ============================================================
     S6 FAQ SP390本実装（本家指示 2026-07-13・v=20260713e）
     正本＝Figma 2001:2画素＋イラレv06 SP_390_TOPベクター実測（v06可視位置=HANDOFF section相対値一致）
     FAQ開始y7289.016維持。Figma5問見本の1行設計を確定原稿10問へ適用（Q7非表示）
     10問版高860.298＝行10下端825.28＋余白35.017。フッター開始≈y8149.313
     ============================================================ */
  .sec-faq{padding:0 0 35.017px;position:relative;overflow:hidden;}
  .sec-faq .container{width:min(100% - 40px,350px);} /* SP FAQ行=x20 w350（FAQ内にスコープ・他セクション非影響） */
  /* 上部装飾＝badge_faq.svg(ブロブ+スーツケース一体・v06 25836: x38.279 rel27.177 w175.940)＋女性?(v06 25956: x225.755 rel65.226 w113.491)。別.faq-suitcaseは二重回避で非表示 */
  .faq-head{position:relative;width:auto;height:251.355px;margin:0;}
  .faq-head .faq-blob{position:absolute;left:18.279px;top:27.177px;width:175.940px;margin:0;}
  .faq-head .faq-woman{position:absolute;left:205.755px;top:65.226px;width:113.491px;bottom:auto;right:auto;margin:0;}
  .faq-head .faq-suitcase{display:none;} /* badge_faq.svg内蔵と二重になるため非表示（本家指示） */
  .faq-head .faq-woman-pc{display:none;}
  /* 行＝x20 w350・可視h41.835(nominal41.238)・border0.6px#d70c18・r11.95・ピッチ59.1875(gap17.9495) */
  .faq-list{width:100%;margin:0;gap:17.9495px;}
  .faq-item{border:0.6px solid #d70c18;border-radius:11.95px;overflow:hidden;background:#fff;}
  /* 行内部＝Q赤丸x30.663(row内10.663)dia20.368・質問文左x54.607(row内34.607)・＋左x341.328(row内321.328) */
  .faq-q{min-height:40.25px;display:flex;align-items:center;gap:3.576px;padding:0 15.27px 0 10.663px;font-size:12.2px;font-weight:700;line-height:1.3;letter-spacing:-0.143px;color:#231815;background:none;border:0;}
  .q-mark{width:20.368px;height:20.368px;flex:0 0 20.368px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:11.6px;font-weight:700;}
  .q-toggle{margin-left:auto;flex:0 0 auto;color:var(--red);font-size:13.401px;font-weight:700;line-height:1;}
  /* 全質問1行（nowrap）。長い質問だけ個別に最小限詰める（本家許可） */
  .faq-q{white-space:nowrap;}
  .faq-list .faq-item:nth-child(8) .faq-q{letter-spacing:-0.35px;} /* 「家族の名義で予約・宿泊した場合は応募できますか？」最長23字を1行に収める */
  /* 回答＝開時のみ表示（JS）。読みやすさ優先・SP用余白 */
  .faq-a p{padding:2px 16px 14px 34.6px;color:#555;font-size:13px;line-height:1.75;white-space:normal;}

  /* ============================================================
     S7 フッター SP390本実装＋法務ナビ外側｜（本家監査1点修正 2026-07-13・v=20260713g）
     正本＝Figma 2001:2画素＋イラレv06 SP_390_TOP（v06可視位置=HANDOFF相対座標一致）
     フッター開始y8149.313維持・高386.419（現行407→−21）・ページ下端8535.732。中央スタック
     区切り線なし（正本にコピーライト上の白線なし）。文言・リンク・素材は不変
     ============================================================ */
  .site-footer{padding:0 0 51.5px;background:#d70c18;text-align:center;}
  .footer-inner{flex-direction:column;align-items:center;gap:0;padding-top:35.925px;width:min(100% - 40px,350px);}
  /* 白ロゴ＝v06 16195: rel35.93 x107.51 181.234×101.021 */
  .footer-logo{width:181.234px;margin:0;}
  /* 団体名インクをrel165.5へ（ロゴ下端136.95→+28.5） */
  .footer-brand{margin-top:17.5px;width:100%;} /* 全幅化＝内部TEL/FAXをspace-betweenで正本幅347へ広げる */
  .footer-org{font-size:17.8px;font-weight:700;letter-spacing:0.695px;line-height:1;margin:0;}       /* Noto Sans JP Bold 17.8 tracking0.695 */
  .footer-addr{font-size:12.5px;font-weight:400;letter-spacing:0.488px;line-height:1;margin-top:12.5px;opacity:1;} /* Source Han Sans JP Regular 12.5・インクrel195.5 */
  /* TEL/FAX＝Zen Kaku Gothic New Black 19.6・TEL左/FAX右で正本幅347へ */
  .footer-tel{font-size:19.6px;letter-spacing:0.766px;line-height:1;margin-top:9.5px;gap:0;justify-content:space-between;width:100%;flex-wrap:nowrap;}
  /* 法務ナビ＝Source Han Sans JP Bold 13・2行（運営会社｜PP／特商法｜お問い合わせ）。2番目の区切り｜を改行役に */
  .footer-nav{font-size:13px;font-weight:700;line-height:25.553px;gap:0 16px;margin-top:23.5px;letter-spacing:0;}
  .footer-nav span:nth-of-type(2){flex-basis:100%;height:0;font-size:0;margin:0;}
  /* 法務ナビ外側の囲み区切り｜（正本v06・本家監査1点修正 v=20260713g）。
     各行の先頭リンク(1/3)::before・末尾リンク(2/4)::afterで装飾追加。内部span｜と同一様式(opacity.6)・16px間隔。
     ::before/::afterはSPの@media内のみ＝PCへ流入しない。HTML・href・文言・改行構造は不変 */
  .footer-nav a:nth-of-type(1)::before,
  .footer-nav a:nth-of-type(3)::before{content:"｜";opacity:.6;margin-right:16px;font-weight:700;pointer-events:none;}
  .footer-nav a:nth-of-type(2)::after,
  .footer-nav a:nth-of-type(4)::after{content:"｜";opacity:.6;margin-left:16px;font-weight:700;pointer-events:none;}
  /* コピーライト＝Noto Sans JP Bold 12・インクrel335.5・区切り線なし */
  .copyright{width:auto;font-size:12px;font-weight:700;letter-spacing:-0.422px;line-height:1;border-top:0;margin:22px auto 0;padding:0;opacity:1;}
}

/* SPのS-2〜S-4はFigma v11の390px本体を共通の中央軸として扱う。
   430px専用の固定箱は設けず、375〜599pxで同一座標系を連続利用する。 */

/* ============================================================
   中間幅レスポンシブ 第1工程：1200〜1399px＝コンパクトPC調整（本家指示 2026-07-13・v=20260713h）
   PC構造(min-width:1200)を維持しつつ、1440基準で画面外へ出る装飾を画面内へ収める。
   FAQ質問列・イベント/予約カードのPC外形/文字は維持。overflow隠しに頼らない。min-width:1400のPC正本は不変
   ============================================================ */
@media (min-width:1200px) and (max-width:1399px){
  /* ③フッター右夫婦＝1200付近で見切れるため非表示（§5「縮小または非表示」） */
  .footer-couple-pc{display:none;}
}

/* ============================================================
   法務下層ページ（privacy / company / tokushoho / contact）
   ＝確認用の器（staging）。共通レイアウト
   ============================================================ */
.legal-header{background:#111;position:sticky;top:0;z-index:100;}
.legal-header .legal-logo{display:inline-flex;align-items:center;padding:9px 16px;}
.legal-header .legal-logo img{height:38px;width:auto;display:block;}
.legal-main{background:#fff;padding:36px 0 64px;}
.legal-inner{width:min(100% - 40px,860px);margin-inline:auto;}
.legal-status{background:#fff3cd;border:1px solid #ffdf7a;color:#7a5b00;font-size:13px;line-height:1.7;padding:11px 15px;border-radius:8px;margin-bottom:26px;}
.legal-inner h1{font-size:28px;color:var(--ink);margin-bottom:6px;font-weight:700;}
.legal-lead{font-size:14.5px;color:#444;line-height:1.95;margin-bottom:22px;}
.legal-inner h2{font-size:17px;color:var(--red);margin:26px 0 10px;padding-left:11px;border-left:4px solid var(--red);line-height:1.5;}
.legal-inner h3{font-size:15px;margin:16px 0 6px;color:var(--ink);}
.legal-inner p{font-size:14.5px;line-height:1.95;margin-bottom:10px;color:#333;}
.legal-inner ul,.legal-inner ol{margin:6px 0 14px 1.5em;}
.legal-inner li{font-size:14.5px;line-height:1.9;margin-bottom:4px;color:#333;}
.legal-inner ul{list-style:disc;}
.legal-inner ol{list-style:decimal;}
.legal-note{color:#c0392b;font-size:13.5px;}       /* 【要確認】等の注記 */
.legal-box{background:#f7f7f7;border-radius:10px;padding:16px 20px;font-size:14.5px;line-height:2;margin:6px 0 14px;}
.legal-table{width:100%;border-collapse:collapse;font-size:14.5px;margin:6px 0 16px;}
.legal-table th,.legal-table td{border:1px solid #e2e2e2;padding:10px 12px;text-align:left;vertical-align:top;line-height:1.8;}
.legal-table th{background:#f4f4f4;width:32%;white-space:nowrap;font-weight:700;}
.legal-updated{margin-top:32px;font-size:13px;color:#666;line-height:1.9;}
.legal-back{display:inline-block;margin-top:28px;font-size:14px;color:var(--blue);font-weight:700;}
@media (max-width:768px){
  .legal-inner h1{font-size:23px;}
  .legal-inner h2{font-size:15.5px;}
  .legal-table th{width:40%;white-space:normal;}
}

/* ============ スクロール／ホバーモーション（2026-07-15） ============
   JSが有効で軽減モーション指定がない場合だけ動かす。
   Figmaの最終座標・寸法はis-visible時に完全復帰し、レイアウト値は変更しない。 */
.motion-ready .motion-reveal{
  opacity:0;
  transform:translate3d(0,28px,0);
  transition:none;
  will-change:opacity,transform;
}
.motion-ready .motion-reveal.motion-pop{
  transform:translate3d(0,20px,0) scale(.96);
}
.motion-ready .motion-reveal.is-visible{
  opacity:1;
  transform:none;
  transition:
    opacity .55s ease var(--motion-delay,0s),
    transform .75s cubic-bezier(.22,1,.36,1) var(--motion-delay,0s);
}

/* 白マーカー見出し：1行目→2行目の線、その後に各行の文字を表示する。 */
.motion-ready .motion-marker.week-title::before,
.motion-ready .motion-marker.week-title::after,
.motion-ready .motion-marker.ota-title::before,
.motion-ready .motion-marker.ota-title::after,
.motion-ready .motion-marker .wk-mark::before,
.motion-ready .motion-marker .ota-mark::before{
  transform:scaleX(0);
  transform-origin:left center;
  transition:none;
}
.motion-ready .motion-marker .motion-heading-text{
  color:transparent;
  transition:none;
}
.motion-ready .motion-marker.is-visible.week-title::before,
.motion-ready .motion-marker.is-visible.week-title::after,
.motion-ready .motion-marker.is-visible.ota-title::before,
.motion-ready .motion-marker.is-visible.ota-title::after,
.motion-ready .motion-marker.is-visible .wk-mark::before,
.motion-ready .motion-marker.is-visible .ota-mark::before{
  transform:scaleX(1);
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.motion-ready .motion-marker.is-visible.week-title::after,
.motion-ready .motion-marker.is-visible.ota-title::after,
.motion-ready .motion-marker.is-visible .wk-mark:last-of-type::before,
.motion-ready .motion-marker.is-visible .ota-mark:last-of-type::before{
  transition-delay:.10s;
}
.motion-ready .motion-marker.is-visible .motion-heading-text{
  color:var(--red);
  transition:color .34s ease .48s;
}
.motion-ready .motion-marker.is-visible .wk-mark:last-of-type .motion-heading-text,
.motion-ready .motion-marker.is-visible .ota-mark:last-of-type .motion-heading-text{
  transition-delay:.58s;
}

.hero-join-arrow,
.cat-buttons img,
.faq-q{
  transition:transform .24s ease,filter .24s ease,background-color .24s ease;
}
@media (hover:hover) and (pointer:fine){
  .hero-join:hover .hero-join-arrow{transform:translate(.22em,-.04em);}
  .cat-buttons a:hover img{transform:translateY(-5px) scale(1.015);filter:brightness(1.025);}
  .faq-q:hover{background:#fff8f0;}
  .faq-q:hover .q-toggle{transform:translateX(3px);}
  .faq-item.open .faq-q:hover .q-toggle{transform:translateX(3px) rotate(45deg);}
}

/* 正式SVG/PNGを一体のまま動かす、数pxだけのキャラクターモーション。
   transformはスクロール表示に使うため、独立したtranslate/rotateプロパティで合成する。 */
@keyframes character-glide{
  0%,100%{translate:0 0;rotate:0deg;}
  50%{translate:4px -3px;rotate:.45deg;}
}
@keyframes character-drift{
  0%,100%{translate:0 0;}
  50%{translate:4px -2px;}
}
@keyframes character-nudge{
  0%,100%{translate:0 0;}
  42%,58%{translate:3px -1px;}
}
@keyframes character-bob{
  0%,100%{translate:0 0;rotate:0deg;}
  44%,58%{translate:0 -3px;rotate:.18deg;}
}
@keyframes character-sway{
  0%,100%{translate:0 0;rotate:0deg;}
  36%{translate:0 -3px;rotate:-.28deg;}
  70%{translate:0 -1px;rotate:.22deg;}
}
.character-motion.character-active{will-change:translate,rotate;}
.character-motion.character-active.character-glide{
  animation:character-glide 4.7s ease-in-out var(--character-delay,0s) infinite;
}
.character-motion.character-active.character-drift{
  animation:character-drift 6.2s ease-in-out var(--character-delay,0s) infinite;
}
.character-motion.character-active.character-nudge{
  animation:character-nudge 4.2s ease-in-out var(--character-delay,0s) infinite;
}
.character-motion.character-active.character-bob{
  animation:character-bob 3.5s ease-in-out var(--character-delay,0s) infinite;
  transform-origin:50% 100%;
}
.character-motion.character-active.character-sway{
  animation:character-sway 4s ease-in-out var(--character-delay,0s) infinite;
  transform-origin:50% 100%;
}

@media (prefers-reduced-motion:reduce){
  .motion-ready .motion-reveal,
  .motion-ready .motion-marker .motion-heading-text{
    opacity:1!important;
    color:inherit!important;
    transform:none!important;
    transition:none!important;
  }
  .motion-ready .motion-marker.week-title::before,
  .motion-ready .motion-marker.week-title::after,
  .motion-ready .motion-marker.ota-title::before,
  .motion-ready .motion-marker.ota-title::after,
  .motion-ready .motion-marker .wk-mark::before,
  .motion-ready .motion-marker .ota-mark::before{
    transform:scaleX(1)!important;
    transition:none!important;
  }
  .hero-join-arrow,.cat-buttons img,.faq-q{transition:none!important;}
  .character-motion{
    animation:none!important;
    translate:none!important;
    rotate:none!important;
  }
}
