/* PISOLA 福袋2027：編集可能なテキストと背景・写真を分離した本文用CSS。
   共通ヘッダー／フッターへの影響を避け、全セレクタをmain内に限定しています。 */
#pisola-fukubukuro {
  --fb-header-height: 120px;
  --fb-max-width: 550px;
  --fb-sand: #d2bfae;
  --fb-ink: #635147;
  --fb-paper: #ededed;
  --fb-teal: #239aa2;
  display: block;
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--fb-header-height) 0 0;
  background: #eae5df;
  color: var(--fb-ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.7;
  text-align: left;
  -webkit-text-size-adjust: 100%;
}
#pisola-fukubukuro *,
#pisola-fukubukuro *::before,
#pisola-fukubukuro *::after { box-sizing: border-box; }
#pisola-fukubukuro :where(h1,h2,h3,p,ul,ol,li,figure) {
  margin: 0; padding: 0; border: 0; background: none;
  color: inherit; font-family: inherit; text-align: inherit;
  letter-spacing: normal; float: none;
}
#pisola-fukubukuro :where(h1,h2,h3) { font-weight: 700; line-height: 1.4; }
#pisola-fukubukuro section { display: block; float: none; width: 100%; margin: 0; padding: 0; }
#pisola-fukubukuro img { display: block; max-width: 100%; height: auto; margin: 0; padding: 0; border: 0; box-shadow: none; }
#pisola-fukubukuro :where(a,button) { font-family: inherit; }
#pisola-fukubukuro a { color: inherit; text-decoration: none; }
#pisola-fukubukuro button { cursor: pointer; }
#pisola-fukubukuro :is(a,button):focus-visible { outline: 3px solid #4b392b; outline-offset: 4px; }
#pisola-fukubukuro :is(a,button) { -webkit-tap-highlight-color: transparent; }
#pisola-fukubukuro :is(a,button):focus:not(:focus-visible),
#pisola-fukubukuro.fb-pointer-input :is(a,button):focus { outline: none !important; }
#pisola-fukubukuro .fb-page {
  width: 100%; max-width: var(--fb-max-width); margin: 0 auto;
  background: var(--fb-paper); container-type: inline-size; overflow: hidden;
}
#pisola-fukubukuro .fb-sr { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }


/* 表示している実テキストをドラッグ選択・コピーできるよう明示。
   説明文・注釈の前に画像や装飾のクリック領域を重ねません。 */
#pisola-fukubukuro .fb-page :is(h1,h2,h3,p,li,dt,dd,small,time,span,strong) {
  -webkit-user-select: text;
  user-select: text;
}
#pisola-fukubukuro .fb-page :is(p,li,dt,dd) { cursor: text; }
#pisola-fukubukuro .fb-page *::selection { background: #b3dde0; color: #302b27; }
#pisola-fukubukuro .fb-page img {
  pointer-events: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  user-select: none;
}
/* 追記は段落を増やすだけ。注釈用領域は通常フローで高さが伸びます。 */
#pisola-fukubukuro .fb-description p + p { margin-top: .8em; }
#pisola-fukubukuro .fb-additional-notes { padding: 0 7cqw 6cqw; }
#pisola-fukubukuro .fb-additional-notes:empty { display: none; }
#pisola-fukubukuro .fb-additional-notes :is(p,li) { font-size: 2.7cqw; line-height: 1.8; }
#pisola-fukubukuro .fb-additional-notes p + p { margin-top: .6em; }
#pisola-fukubukuro .fb-additional-notes ul { padding-left: 1.3em; }

/* 丸いリゾート写真＋帯が一つのリンク。文字とバッグを避けた輪郭のみが反応。 */
#pisola-fukubukuro .fb-hero-art-wrap { position: relative; }
#pisola-fukubukuro .fb-hero-art { width: 100%; }
#pisola-fukubukuro .fb-hero-link-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
#pisola-fukubukuro .fb-hero-campaign-link {
  position: absolute; inset: 0; width: 100%; height: 100%;
  clip-path: url(#fb-hero-campaign-clip);
  background: transparent; transition: background-color .2s;
}
#pisola-fukubukuro .fb-hero-campaign-link:hover { background-color: #ffffff20; }
#pisola-fukubukuro .fb-hero-campaign-link:focus-visible { background-color: #ffffff55; }
#pisola-fukubukuro .fb-offer { background: var(--fb-sand); padding: 1.7cqw 0 5.5cqw; text-align: center; }
#pisola-fukubukuro .fb-offer h1 { font-size: 6.25cqw; line-height: 1.4; font-weight: 800; }
#pisola-fukubukuro .fb-tagline { font-size: 2.55cqw; font-weight: 700; margin-top: .2cqw; }
#pisola-fukubukuro .fb-value { display: grid; grid-template-columns: 1fr 8cqw 1fr; align-items: center; width: 86.5%; margin: 3cqw auto 5.5cqw; gap: 2cqw; }
#pisola-fukubukuro .fb-value>p { display: flex; flex-direction: column; justify-content: center; min-height: 17.3cqw; padding: 2cqw 1cqw; background: var(--fb-ink); border: 1px solid #f1e4d2; color: #f8efdd; font-size: 3.8cqw; line-height: 1.3; }
#pisola-fukubukuro .fb-value>p:first-child { text-align: left; padding-left: 4.8cqw; }
#pisola-fukubukuro .fb-value>p:first-child>span:first-child { font-size: 3cqw; }
#pisola-fukubukuro .fb-value strong { font-family: Arial, sans-serif; font-size: 6.7cqw; font-style: italic; font-weight: 800; }
#pisola-fukubukuro .fb-value>p:last-child>span { font-size: 2.9cqw; font-weight: 700; }
#pisola-fukubukuro .fb-value .fb-value-items { font-family: inherit; font-style: normal; font-size: 4.6cqw; font-weight: 500; }
#pisola-fukubukuro .fb-plus { font-size: 7cqw; line-height: 1; font-weight: 700; }
#pisola-fukubukuro .fb-price { display: flex; align-items: center; justify-content: center; gap: 3.3cqw; line-height: 1; }
#pisola-fukubukuro .fb-limited { border: 1px solid var(--fb-ink); padding: 2.5cqw 3.7cqw; font-size: 4cqw; font-weight: 700; letter-spacing: .1em; }
#pisola-fukubukuro .fb-price strong { font-family: Arial, sans-serif; font-size: 11.3cqw; font-style: italic; font-weight: 800; letter-spacing: -.04em; white-space: nowrap; }
#pisola-fukubukuro .fb-price strong>span { font-size: 7.4cqw; font-style: normal; }
#pisola-fukubukuro .fb-price small { align-self: flex-end; font-size: 2.2cqw; font-weight: 700; margin: 0 0 1.5cqw -3.3cqw; }
#pisola-fukubukuro .fb-receive { font-size: 3.35cqw; font-weight: 700; margin: 3.3cqw 5cqw 5.4cqw; }
#pisola-fukubukuro .fb-receive-note { display: block; margin-top: .9cqw; font-size: 90%; line-height: 1.6; }
#pisola-fukubukuro .fb-sales-copy { color: #c96c09; font-size: 4.35cqw; line-height: 1.5; font-weight: 700; margin-bottom: 4cqw; }
#pisola-fukubukuro .fb-intro { font-size: 3.4cqw; font-weight: 700; line-height: 2; margin: 7cqw 5cqw 0; }

/* ボタンは画像ではなく、ラベル・背景・矢印ともHTML/CSSです。 */
#pisola-fukubukuro .fb-button {
  appearance: none; position: relative; display: flex; align-items: center; justify-content: center;
  width: 75%; min-height: 12.3cqw; margin: 0 auto; padding: 2.7cqw 6cqw;
  border: 1px solid #f9cf70; border-radius: 999px;
  background: linear-gradient(180deg,#fbb438 0%,#ee9d2d 45%,#d68125 100%);
  box-shadow: inset 0 1px 0 #ffffff35; color: #fff;
  font-size: 3.7cqw; line-height: 1.5; font-weight: 700; text-align: center;
  text-decoration: none; transition: filter .2s, transform .2s;
}
#pisola-fukubukuro .fb-button>span { position: absolute; right: 4.5cqw; top: 50%; transform: translateY(-50%); font-size: 6cqw; font-family: Arial,sans-serif; line-height: 1; font-weight: 400; }
#pisola-fukubukuro .fb-button:hover { filter: brightness(1.07); }
#pisola-fukubukuro .fb-button:active { transform: translateY(1px); }

#pisola-fukubukuro .fb-sale-button { width: 80%; font-size: 3.35cqw; padding-left: 3cqw; padding-right: 7cqw; white-space: nowrap; }

/* 商品：本文は通常フロー。min-heightを超える文章でもセクションが伸びます。 */
#pisola-fukubukuro .fb-product { position: relative; overflow: hidden; background: var(--fb-paper); }
#pisola-fukubukuro .fb-product-stage { position: relative; min-height: 104cqw; }
/* 番号は支給データの左上だけを等倍比率で表示。各セクション内でクリップします。 */
#pisola-fukubukuro .fb-number { position: absolute; top: 0; left: 0; z-index: 1; display: block; width: 100cqw; height: 18cqw; overflow: hidden; pointer-events: none; }
#pisola-fukubukuro .fb-number img { width: 100cqw; max-width: none; height: auto; }
#pisola-fukubukuro .fb-product-art { position: absolute; top: 22.8cqw; right: 0; width: 48.55%; z-index: 0; }
#pisola-fukubukuro .fb-product-copy { position: relative; z-index: 1; width: 54%; padding: 22.5cqw 4.5cqw 7cqw 7cqw; }
#pisola-fukubukuro .fb-product-copy h2 { font-size: 5.8cqw; line-height: 1.4; letter-spacing: -.045em; font-weight: 800; }
#pisola-fukubukuro .fb-product-copy h2 small { display: block; font-size: 3.9cqw; letter-spacing: -.04em; }
#pisola-fukubukuro .fb-description { margin-top: 4.5cqw; font-size: 3cqw; line-height: 1.62; letter-spacing: 0; overflow-wrap: anywhere; }
#pisola-fukubukuro .fb-description p { font-size: inherit; line-height: inherit; letter-spacing: inherit; }
#pisola-fukubukuro .fb-specs { margin-top: 4.4cqw; font-size: 2.65cqw; line-height: 1.5; }
#pisola-fukubukuro .fb-specs p { font-size: inherit; line-height: inherit; }
#pisola-fukubukuro .fb-sand { background: var(--fb-sand); }
#pisola-fukubukuro .fb-sand .fb-number { color: #af8f76; }

/* 01：数字・背景・3枚の写真を一つの画像に統合。見出し・説明・仕様はHTML。 */
#pisola-fukubukuro .fb-tote { background: #edeef0; }
#pisola-fukubukuro .fb-tote-artboard { position: relative; }
#pisola-fukubukuro .fb-tote-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; }
#pisola-fukubukuro .fb-tote .fb-product-stage { min-height: 100.961538cqw; }
#pisola-fukubukuro .fb-tote .fb-product-copy { padding-top: 29cqw; padding-bottom: 4cqw; }
#pisola-fukubukuro .fb-tote .fb-product-copy h2 { line-height: 1.3; }
#pisola-fukubukuro .fb-tote .fb-description { margin-top: 3.7cqw; font-size: 2.95cqw; line-height: 1.58; }
#pisola-fukubukuro .fb-tote .fb-specs { margin-top: 3.6cqw; font-size: 2.45cqw; line-height: 1.5; letter-spacing: -.03em; }
#pisola-fukubukuro .fb-tote .fb-specs p { white-space: nowrap; letter-spacing: inherit; }
#pisola-fukubukuro .fb-tote-detail-space { position: relative; height: 43.557692cqw; }
/* 02 ブランケット：写真・ポーチ・吹き出しのみ合成画像。 */
#pisola-fukubukuro .fb-blanket .fb-product-stage { min-height: 104.33cqw; }
#pisola-fukubukuro .fb-blanket .fb-product-art { top: 22.79cqw; width: 57.69%; }
#pisola-fukubukuro .fb-blanket .fb-description { font-size: 2.8cqw; line-height: 1.75; }
/* 03 ドレッシング */
#pisola-fukubukuro .fb-dressing .fb-product-stage { min-height: 80.3cqw; }
#pisola-fukubukuro .fb-dressing .fb-product-copy { width: 64%; padding-right: 4cqw; padding-bottom: 0; }
#pisola-fukubukuro .fb-dressing .fb-product-copy h2 { font-size: 5.5cqw; letter-spacing: -.055em; }
#pisola-fukubukuro .fb-dressing-title { white-space: nowrap; }
#pisola-fukubukuro .fb-dressing .fb-product-art { top: 8.65cqw; width: 36.06%; }
#pisola-fukubukuro .fb-dressing .fb-specs { margin-top: 2.5cqw; }
#pisola-fukubukuro .fb-salad-art { width: 81.25%; margin: 0 0 0 5.29%; }
#pisola-fukubukuro .fb-dressing { padding-bottom: 4.5cqw; }
/* 04 紅茶 */
#pisola-fukubukuro .fb-tea .fb-product-stage { min-height: 89.2cqw; }
#pisola-fukubukuro .fb-tea .fb-product-copy { padding-bottom: 2cqw; }
#pisola-fukubukuro .fb-tea .fb-product-art { top: 24.04cqw; width: 50%; }
#pisola-fukubukuro .fb-tea .fb-description { margin-top: 6cqw; }
#pisola-fukubukuro .fb-tea .fb-description p + p { margin-top: 0; }
/* 短い3行を写真左側へ引き上げる。4行目は写真下端100.002cqwより下。 */
#pisola-fukubukuro .fb-tea .fb-tea-allergy { padding: 0 7cqw 7cqw; }
#pisola-fukubukuro .fb-tea .fb-tea-allergy p { font-size: 2.65cqw; line-height: 1.5; }
#pisola-fukubukuro .fb-tea .fb-tea-allergy span { white-space: nowrap; }
/* 05 お食事券 */
#pisola-fukubukuro .fb-tickets .fb-product-stage { min-height: 76.5cqw; }
#pisola-fukubukuro .fb-tickets .fb-product-art { top: 9.134615cqw; width: 48.076923%; height: 72.596154cqw; overflow: hidden; clip-path: polygon(0 0,100% 0,100% 100%,0 80%); }
/* 元画像のチケットと影だけを表示。左下の注意文は斜めの表示領域から除外。 */
#pisola-fukubukuro .fb-ticket-art .fb-ticket-source { position: absolute; width: 100cqw; max-width: none; height: auto; left: -51.923077cqw; top: -9.134615cqw; }
#pisola-fukubukuro .fb-ticket-title { white-space: nowrap; }
#pisola-fukubukuro .fb-tickets .fb-product-copy h2 { font-size: 5.45cqw; letter-spacing: -.045em; }
#pisola-fukubukuro .fb-tea .fb-number { height: 18.5cqw; }
#pisola-fukubukuro .fb-tickets .fb-product-copy { padding-bottom: 4cqw; }
#pisola-fukubukuro .fb-tickets .fb-specs { display: none; }
#pisola-fukubukuro .fb-ticket-details { padding: 0 6.8cqw; }
#pisola-fukubukuro .fb-validity { display: grid; grid-template-columns: 18.2cqw 1fr; gap: 3.2cqw; align-items: stretch; margin-bottom: 6.5cqw; }
#pisola-fukubukuro .fb-validity h3 { display: grid; align-content: center; text-align: center; background: var(--fb-ink); color: #fff; font-size: 5.1cqw; font-weight: 400; line-height: 1.4; padding: 2cqw 0; }
#pisola-fukubukuro .fb-validity p { font-size: 3.75cqw; line-height: 1.5; margin: -.3cqw 0 .7cqw; }
#pisola-fukubukuro .fb-validity ul { list-style: none; color: #d99113; font-size: 3.95cqw; line-height: 1.65; letter-spacing: -.025em; }
#pisola-fukubukuro .fb-validity li::before { content: "・"; }
#pisola-fukubukuro .fb-ticket-conditions { padding-left: 2.9cqw; font-size: 2.7cqw; line-height: 1.65; list-style: disc; }
#pisola-fukubukuro .fb-ticket-conditions li { padding-left: .4cqw; margin-bottom: .55cqw; font-size: inherit; line-height: inherit; }
#pisola-fukubukuro .fb-tickets>.fb-button { margin-top: 7.8cqw; }
#pisola-fukubukuro .fb-tickets { padding-bottom: 8.5cqw; }

/* 購入注意事項。背景、角丸、見出し下罫線もCSS。 */
#pisola-fukubukuro .fb-notice-section { padding: 10cqw 6.9cqw; background: var(--fb-sand); }
#pisola-fukubukuro .fb-notice-card { min-height: 68.6cqw; padding: 6.5cqw 4.5cqw 8cqw; border-radius: 3.5cqw; background: #eee7de; }
#pisola-fukubukuro .fb-notice-card h2 { display: block; width: 100%; max-width: none; margin: 0; padding: 0; font-size: 3.4cqw; text-align: center; }
#pisola-fukubukuro .fb-rule { width: 7.5cqw; height: 1px; background: currentColor; margin: 2cqw auto 4.5cqw; }
#pisola-fukubukuro .fb-notice-card ul { list-style: none; font-size: 2.7cqw; line-height: 1.65; }
#pisola-fukubukuro .fb-notice-card li { position: relative; padding-left: 3.5cqw; margin-bottom: .45cqw; font-size: inherit; line-height: inherit; }
#pisola-fukubukuro .fb-notice-card li::before { content: "※"; position: absolute; left: 0; }

/* バリ島キャンペーン */
#pisola-fukubukuro .fb-campaign { background: var(--fb-teal); color: #fff; scroll-margin-top: calc(var(--fb-header-height) + 8px); }
#pisola-fukubukuro .fb-campaign:focus { outline: none; }
#pisola-fukubukuro .fb-bali-art-wrap { position: relative; }
#pisola-fukubukuro .fb-bali-art { width: 100%; }
#pisola-fukubukuro .fb-bali-art-wrap::after { content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 7cqw; background: linear-gradient(transparent,var(--fb-teal)); }
#pisola-fukubukuro .fb-campaign-copy { padding: 0 6.8cqw 4cqw; }
#pisola-fukubukuro .fb-campaign-copy h2 { font-size: 6.1cqw; font-weight: 700; line-height: 1.45; margin-bottom: 4.4cqw; }
#pisola-fukubukuro .fb-campaign-copy p { font-size: 3.1cqw; line-height: 1.65; letter-spacing: .015em; }
#pisola-fukubukuro .fb-entry { padding: 0 6.8cqw 13.5cqw; }
#pisola-fukubukuro .fb-period { background: #fff; color: var(--fb-teal); border-radius: 3.5cqw; padding: 4.5cqw 5.6cqw 5.3cqw; }
#pisola-fukubukuro .fb-period h3 { text-align: center; font-size: 5.2cqw; }
#pisola-fukubukuro .fb-period .fb-rule { margin-top: 2cqw; margin-bottom: 3.4cqw; }
#pisola-fukubukuro .fb-dates { font-size: 5.2cqw; font-weight: 700; line-height: 1.35; text-align: center; margin-bottom: 4.7cqw; }
#pisola-fukubukuro .fb-eligibility { font-size: 2.65cqw; line-height: 1.65; margin: 0 2.3cqw 4.5cqw; }
#pisola-fukubukuro .fb-eligibility-first { white-space: nowrap; }
#pisola-fukubukuro .fb-period .fb-button { width: 100%; font-size: 3.7cqw; padding-left: 3cqw; padding-right: 6cqw; }
#pisola-fukubukuro .fb-steps { list-style: none; margin-top: 11cqw; }
#pisola-fukubukuro .fb-steps>li { display: grid; grid-template-columns: 19.2cqw 1fr; gap: 4.5cqw; align-items: center; border-bottom: 1px solid #ffffff77; padding: 0 0 7cqw; margin-bottom: 5.7cqw; min-height: 38cqw; }
#pisola-fukubukuro .fb-steps>li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
#pisola-fukubukuro .fb-step-badge { display: flex; flex-direction: column; justify-content: center; padding: 3cqw 0 8cqw; background: #5cb1b6; clip-path: polygon(0 0,100% 0,100% 77%,50% 100%,0 77%); height: 32.3cqw; text-align: center; font-family: Arial,sans-serif; font-style: italic; font-weight: 800; font-size: 5.4cqw; line-height: 1.1; }
#pisola-fukubukuro .fb-step-badge strong { font-size: 10.5cqw; margin-top: 1cqw; }
#pisola-fukubukuro .fb-step-content { min-width: 0; }
#pisola-fukubukuro .fb-step-content h3 { font-size: 4.9cqw; line-height: 1.45; font-weight: 700; letter-spacing: -.04em; }
#pisola-fukubukuro .fb-step-content p { font-size: 3.8cqw; line-height: 1.3; font-weight: 700; margin-top: 1cqw; }
#pisola-fukubukuro .fb-step-content .fb-button { width: 100%; margin-top: 5cqw; padding-left: 2cqw; padding-right: 6cqw; font-size: 3.7cqw; }
#pisola-fukubukuro .fb-step-repost { position: relative; min-height: 32.3cqw; padding-right: 20cqw; }
#pisola-fukubukuro .fb-step-repost p { font-size: 3.05cqw; line-height: 1.4; margin-top: 3cqw; }
#pisola-fukubukuro .fb-step-repost .fb-repost-illustration { position: absolute; top: .3cqw; right: 0; width: 19.2cqw; height: auto; }

/* 販売前の小窓：dialogのトップレイヤーで既存固定ヘッダーより前に表示。 */
#pisola-fukubukuro .fb-dialog {
  position: fixed; inset: 0; width: min(340px,88vw); max-width: calc(100vw - 32px);
  max-height: 85vh; overflow: auto; overscroll-behavior: contain;
  margin: auto; padding: 49px 24px 23px; border: 0; border-radius: 12px;
  background: #fff; color: var(--fb-ink); box-shadow: 0 18px 70px #0003;
  text-align: center; font-family: inherit; line-height: 1.7;
}
#pisola-fukubukuro .fb-dialog::backdrop { background: rgba(0,0,0,.6); }
#pisola-fukubukuro .fb-dialog p { color: inherit; font: 700 17px/1.8 "Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; text-align: center; margin: 0; padding: 0; }
#pisola-fukubukuro .fb-dialog-ok { display: block; min-width: 110px; min-height: 42px; margin: 25px auto 0; padding: 8px 24px; border: 1px solid #d8cabc; border-radius: 6px; background: #f3eee8; color: var(--fb-ink); font-size: 14px; line-height: 1.6; }
#pisola-fukubukuro .fb-noscript { max-width: var(--fb-max-width); margin: auto; padding: 20px; background: white; font-size: 14px; }
@media(max-width:900px) { #pisola-fukubukuro { --fb-header-height: 50px; } }
@media(prefers-reduced-motion:reduce) { #pisola-fukubukuro .fb-button,#pisola-fukubukuro .fb-hero-campaign-link { transition: none; } }

/* アニメーション：JSが有効な場合だけ開始前を隠します。 */
#pisola-fukubukuro .fb-flight-overlay { display: block; position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; z-index: 1; }
#pisola-fukubukuro .fb-hero-campaign-link { z-index: 4; }
#pisola-fukubukuro .fb-hero-announcement { position: absolute; left: 80.656934%; top: 13.461538%; width: 19.343066%; height: 17.692308%; overflow: hidden; z-index: 2; pointer-events: none; transform-origin: 50% 70%; }
#pisola-fukubukuro .fb-hero-announcement img { position: absolute; width: 100cqw; max-width: none; height: auto; left: -80.656934cqw; top: -17.03163cqw; }
#pisola-fukubukuro .fb-flight-plane { transform-box: view-box; transform-origin: 0 0; }
#pisola-fukubukuro .fb-flight-trail { stroke-dasharray: 1; stroke-dashoffset: 0; }
#pisola-fukubukuro.fb-motion-ready [data-motion] { opacity: 0; transition: opacity .75s ease, transform .85s cubic-bezier(.2,.65,.3,1); transition-delay: var(--fb-motion-delay,0ms); }
#pisola-fukubukuro.fb-motion-ready [data-motion="fade"] { transform: translateY(4cqw); }
#pisola-fukubukuro.fb-motion-ready [data-motion="right"] { transform: translateX(8cqw); }
#pisola-fukubukuro.fb-motion-ready [data-motion="pop"] { transform: translateY(2cqw) scale(.82); transform-origin: 65% 65%; transition-timing-function: ease,cubic-bezier(.18,.88,.3,1.28); }
#pisola-fukubukuro.fb-motion-ready [data-motion].fb-in-view { opacity: 1; transform: none; }
#pisola-fukubukuro.fb-motion-ready [data-fb-flight]:not(.fb-flight-active) .fb-flight-plane,
#pisola-fukubukuro.fb-motion-ready [data-fb-flight]:not(.fb-flight-active) .fb-flight-trail,
#pisola-fukubukuro.fb-motion-ready [data-fb-flight]:not(.fb-flight-active) .fb-hero-announcement { opacity: 0; }
#pisola-fukubukuro.fb-motion-ready .fb-flight-active .fb-flight-hero .fb-flight-plane { animation: fb-plane-arrive 1.35s cubic-bezier(.16,.65,.24,1) both; }
#pisola-fukubukuro.fb-motion-ready .fb-flight-active .fb-flight-bali .fb-flight-plane { animation: fb-bali-plane-arrive 1.45s cubic-bezier(.16,.65,.24,1) both; }
#pisola-fukubukuro.fb-motion-ready .fb-flight-active .fb-flight-trail { animation: fb-trail-draw 1.35s cubic-bezier(.16,.65,.24,1) both; }
#pisola-fukubukuro.fb-motion-ready .fb-flight-active .fb-hero-announcement { animation: fb-announcement-pop .6s cubic-bezier(.18,.85,.3,1.22) 1.1s both; }
@keyframes fb-plane-arrive { 0% { opacity: 0; transform: translate(-73%,30%); } 12% { opacity: 1; } 100% { opacity: 1; transform: translate(0,0); } }
@keyframes fb-bali-plane-arrive { 0% { opacity: 0; transform: translate(-62%,23%); } 12% { opacity: 1; } 100% { opacity: 1; transform: translate(0,0); } }
@keyframes fb-trail-draw { from { stroke-dashoffset: 1; opacity: 0; } 10% { opacity: 1; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes fb-announcement-pop { 0% { opacity: 0; transform: scale(.55) rotate(-5deg); } 65% { opacity: 1; transform: scale(1.08) rotate(1deg); } 100% { opacity: 1; transform: scale(1) rotate(0); } }
/* 動きを減らす設定では静止表示。印刷でも全要素を表示します。 */
@media(prefers-reduced-motion:reduce) {
  #pisola-fukubukuro.fb-motion-ready [data-motion],
  #pisola-fukubukuro .fb-flight-plane,
  #pisola-fukubukuro .fb-flight-trail,
  #pisola-fukubukuro .fb-hero-announcement { animation: none !important; transition: none !important; transform: none !important; opacity: 1 !important; stroke-dashoffset: 0 !important; }
}
@media print { #pisola-fukubukuro [data-motion],#pisola-fukubukuro .fb-flight-plane,#pisola-fukubukuro .fb-flight-trail,#pisola-fukubukuro .fb-hero-announcement { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; stroke-dashoffset: 0 !important; } }

/* 第9版：静止した装飾と動く装飾を分離し、画像内の旧軌跡を表示しません。 */
#pisola-fukubukuro .fb-hero-art-wrap { background: #f3f7f6; }
#pisola-fukubukuro .fb-hero-art { mask: url(#fb-hero-base-mask); }
#pisola-fukubukuro .fb-hero-lettering,
#pisola-fukubukuro .fb-hero-products,
#pisola-fukubukuro .fb-hero-resort { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; pointer-events: none; }
#pisola-fukubukuro .fb-hero-lettering { mask: url(#fb-hero-letter-mask); z-index: 1; }
#pisola-fukubukuro .fb-hero-products { clip-path: inset(61.0576% 0 0); z-index: 2; }
#pisola-fukubukuro .fb-hero-resort { clip-path: url(#fb-hero-campaign-clip); z-index: 3; }
#pisola-fukubukuro .fb-flight-hero { z-index: 3; }
#pisola-fukubukuro .fb-hero-announcement { z-index: 4; }
#pisola-fukubukuro .fb-hero-campaign-link { z-index: 5; }
#pisola-fukubukuro .fb-bali-cleanup { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; mask: url(#fb-bali-clean-mask); z-index: 1; }
#pisola-fukubukuro .fb-flight-bali { z-index: 2; }
#pisola-fukubukuro .fb-tote-fixed-arc { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; clip-path: url(#fb-tote-arc-clip); z-index: 1; }
#pisola-fukubukuro .fb-tote-background { clip-path: url(#fb-tote-body-clip); }
#pisola-fukubukuro.fb-motion-ready [data-fb-flight]:not(.fb-flight-active) .fb-hero-products { opacity: 0; }
#pisola-fukubukuro.fb-motion-ready .fb-flight-active .fb-hero-products { animation: fb-products-arrive 1s ease 1.75s both; }
@keyframes fb-products-arrive { from { opacity: 0; transform: translateY(2cqw); } to { opacity: 1; transform: none; } }
@keyframes fb-plane-arrive { 0% { opacity: 0; transform: translate(-72.628%,30.77%); } 12% { opacity: 1; } 100% { opacity: 1; transform: translate(0,0); } }
@keyframes fb-bali-plane-arrive { 0% { opacity: 0; transform: translate(-66%,23.53%); } 12% { opacity: 1; } 100% { opacity: 1; transform: translate(0,0); } }
#pisola-fukubukuro.fb-motion-ready .fb-flight-active .fb-flight-bali .fb-flight-trail { animation-duration: 1.45s; }
@media(prefers-reduced-motion:reduce) { #pisola-fukubukuro .fb-hero-products { opacity: 1 !important; transform: none !important; animation: none !important; } }
@media print { #pisola-fukubukuro .fb-hero-products { opacity: 1 !important; transform: none !important; animation: none !important; } }

/* 第10版：固定背景と可動写真の境界を分離。 */
#pisola-fukubukuro .fb-hero-fixed-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
#pisola-fukubukuro .fb-hero-products { clip-path: none; mask: url(#fb-hero-photo-mask); }
/* 番号用の元画像に写り込んでいた蓋・金券上端を表示しない。 */
#pisola-fukubukuro .fb-number { width: 32cqw; }
@keyframes fb-bali-plane-arrive { 0% { opacity: 0; transform: translate(-78%,27.72%); } 12% { opacity: 1; } 100% { opacity: 1; transform: translate(0,0); } }

/* 第11版：STEP03の下に追加した当選発表。既存要素の指定は変更しません。 */
#pisola-fukubukuro .fb-winner { position: relative; min-height: 37cqw; margin-top: 6cqw; }
#pisola-fukubukuro .fb-winner-art { position: absolute; left: -6.8cqw; top: 0; width: 35.5cqw; height: 37cqw; overflow: hidden; pointer-events: none; }
#pisola-fukubukuro .fb-winner-art img { position: absolute; width: 100cqw; max-width: none; height: auto; left: 0; top: -205.036cqw; }
#pisola-fukubukuro .fb-winner-copy { margin-left: 31.3cqw; padding-top: 6.5cqw; }
#pisola-fukubukuro .fb-winner-copy h3 { color: #ffe54c; font-size: 6.1cqw; line-height: 1.3; font-weight: 800; white-space: nowrap; }
#pisola-fukubukuro .fb-winner-date { margin-top: 1cqw; font-size: 5.2cqw; line-height: 1.4; font-weight: 700; white-space: nowrap; }
#pisola-fukubukuro .fb-winner-description { margin-top: 1cqw; font-size: 3.2cqw; line-height: 1.4; font-weight: 700; }

/* 第12版：背景の継ぎ目を同色で重ね、端数ピクセルによる白線を防止。 */
#pisola-fukubukuro .fb-offer { position: relative; z-index: 1; }
#pisola-fukubukuro .fb-offer::before,
#pisola-fukubukuro .fb-offer::after { content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: var(--fb-sand); pointer-events: none; }
#pisola-fukubukuro .fb-offer::before { top: -1px; }
#pisola-fukubukuro .fb-offer::after { bottom: -1px; }
#pisola-fukubukuro .fb-tote-fixed-arc { clip-path: none; pointer-events: none; }
/* 支給画像のアレルギー表示を実テキストで追加。サラダ写真との間隔を確保。 */
#pisola-fukubukuro .fb-dressing .fb-product-stage { min-height: 90.3cqw; }
#pisola-fukubukuro .fb-dressing .fb-product-copy { padding-bottom: 5cqw; }
#pisola-fukubukuro .fb-dressing .fb-allergy { font-size: 2.45cqw; white-space: nowrap; }

/* 第13版：透過ヘッダー背面と、スクロールから独立したPC背景。 */
html:has(#pisola-fukubukuro),
body:has(#pisola-fukubukuro) { background-color: #f3f7f6; }
#pisola-fukubukuro { position: relative; isolation: isolate; background: transparent; clip-path: inset(0); }
#pisola-fukubukuro::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-color: #d8c4b5;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%3E%3Cfilter%20id%3D%22grain%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.82%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3CfeComponentTransfer%3E%3CfeFuncA%20type%3D%22linear%22%20slope%3D%22.16%22%2F%3E%3C%2FfeComponentTransfer%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url%28%23grain%29%22%20opacity%3D%22.42%22%2F%3E%3C%2Fsvg%3E"),
    radial-gradient(ellipse at 12% 18%, #eee1d8 0%, transparent 58%),
    radial-gradient(ellipse at 88% 78%, #bda18f 0%, transparent 62%),
    linear-gradient(130deg, #c7a99b 0%, #e5d6c8 48%, #ccb9a5 100%);
  background-size: 180px 180px, cover, cover, cover;
  background-repeat: repeat, no-repeat, no-repeat, no-repeat;
}
/* 上部の予約領域もMVと同色。メニューの表示・非表示で背景が途切れません。 */
#pisola-fukubukuro::after {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: min(100%, var(--fb-max-width)); height: calc(var(--fb-header-height) + 2px);
  background: #f3f7f6; pointer-events: none; z-index: 0;
}
#pisola-fukubukuro .fb-page { position: relative; z-index: 1; }
@media print { #pisola-fukubukuro::before { display: none; } }

/* 第16版：MVは切り抜き済みSVGを使用し、ページ内CSSマスクへの依存を解消。 */
#pisola-fukubukuro .fb-hero-art,
#pisola-fukubukuro .fb-hero-lettering,
#pisola-fukubukuro .fb-hero-products { -webkit-mask: none; mask: none; }
#pisola-fukubukuro .fb-hero-resort { clip-path: none; }
/* 後読みスクリプトを待つ間も、動く要素だけを初回描画前から隠す。 */
#pisola-fukubukuro.fb-hero-pending [data-fb-flight="hero"] :is(.fb-flight-plane,.fb-flight-trail,.fb-hero-announcement,.fb-hero-products) { opacity: 0; visibility: hidden; }
#pisola-fukubukuro.fb-hero-static [data-fb-flight="hero"] :is(.fb-flight-plane,.fb-flight-trail,.fb-hero-announcement,.fb-hero-products) { opacity: 1 !important; visibility: visible !important; animation: none !important; transform: none !important; stroke-dashoffset: 0 !important; }
/* スマホではスクロール演出をゆったり。飛行機の時間指定には触れません。 */
@media (max-width: 600px), (hover: none) and (pointer: coarse) {
  #pisola-fukubukuro.fb-motion-ready [data-motion] { transition-duration: 1.05s, 1.15s; }
  #pisola-fukubukuro.fb-motion-ready [data-motion="fade"]:not(.fb-in-view) { transform: translateY(clamp(18px,5cqw,28px)); }
  #pisola-fukubukuro.fb-motion-ready [data-motion="right"]:not(.fb-in-view) { transform: translateX(clamp(32px,9cqw,48px)); }
}
@media (prefers-reduced-motion: reduce) {
  #pisola-fukubukuro.fb-hero-pending [data-fb-flight="hero"] :is(.fb-flight-plane,.fb-flight-trail,.fb-hero-announcement,.fb-hero-products) { opacity: 1 !important; visibility: visible !important; }
}
@media print {
  #pisola-fukubukuro.fb-hero-pending [data-fb-flight="hero"] :is(.fb-flight-plane,.fb-flight-trail,.fb-hero-announcement,.fb-hero-products) { opacity: 1 !important; visibility: visible !important; }
}
