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

html {
  margin: 0;
  padding: 0;
  font-size: 16px;
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-y: auto;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 400;
  color: #333333;
  background-color: #ffffff;
  overflow-x: hidden;
  overflow-y: clip;
  line-height: 1.8;
}

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

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

body.cp2026-body {
  margin: 0;
  overflow-x: hidden;
  background: #ffffff;
}

.cp2026-page {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow-x: hidden;
}

/* ============================================================
   カラー変数
   ============================================================ */
:root {
  --miyako-blue:      #00a8d4;
  --miyako-blue-dark: #0086b0;
  --miyako-blue-light:#e0f6fd;
  --yellow:           #FFE600;
  --pink:             #e8007d;
  --orange:           #f07000;
  --cream:            #fffde7;
  --white:            #ffffff;
  --text-dark:        #333333;
}

/* ============================================================
   共通幅
   ============================================================ */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ============================================================
   波形区切り（仮用共通 / 本番SVGがない箇所）
   ============================================================ */
.wave-divider {
  position: relative;
  width: 100%;
  line-height: 0;
  margin-top: -2px;
}
.wave-divider svg {
  display: block;
  width: 100%;
  height: 80px;
}
.wave-svg-img {
  display: block;
  width: 100%;
  height: auto;
}

/* ============================================================
   kv1：ヒーロー
   基準：PC 1920px幅 / 背景SVG 1920px × 1401.42px
   ============================================================ */
.kv1 {
  position: relative;
  z-index: 3;
  width: 100vw;
  max-width: none;
  margin: 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
  background: none;
}

.kv1-bg {
  display: block;
  width: 100%;
  height: auto;
}
.kv1-product {
  position: absolute;
  top: 3.996%;
  left: 16.979%;
  width: 63.906%;
  height: auto;
  transform: rotate(0deg);
  z-index: 2;
}

.kv1-number {
  position: absolute;
  top: 64.791%;
  left: 35.833%;
  width: 45.365%;
  height: auto;
  transform: rotate(0deg);
  z-index: 3;
}

.kv1-total-sales {
  position: absolute;
  top: 70.714%;
  left: 11.667%;
  width: 22.917%;
  height: auto;
  transform: rotate(0deg);
  z-index: 3;
}

.kv1-okinawa {
  position: absolute;
  top: 12.559%;
  left: 5.573%;
  width: 11.615%;
  height: auto;
  transform: rotate(0deg);
  z-index: 3;
}

.kv1-thanks {
  position: absolute;
  top: 8.777%;
  left: 81.771%;
  width: 11.979%;
  height: auto;
  transform: rotate(0deg);
  z-index: 3;
}

.kv1-campaign {
  position: absolute;
  top: 81.917%;
  left: 34.531%;
  width: 54.948%;
  height: auto;
  transform: rotate(0deg);
  z-index: 3;
}

/* ============================================================
   kv2：宮古島旅行キャンペーン
   基準：PC 1920px幅 / 背景 1920px × 1039px
   ============================================================ */
.kv2 {
  position: relative;
  z-index: 2;
  width: 100vw;
  max-width: none;
  margin-top: calc(-4vw - 3px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
  background: none;
}
.kv2-bg {
  display: block;
  width: 100%;
  height: auto;
}


.kv2-campaign-ribbon,
.kv2-want-win,
.kv2-want-go,
.kv2-airplane,
.kv2-airplane-trail,
.kv2-cloud,
.kv2-lifebuoy,
.kv2-sandals,
.kv2-starfish,
.kv2-sun-cloud,
.kv2-logo,
.kv2-product-sand {
  position: absolute;
  height: auto;
  transform: rotate(0deg);
}

.kv2-campaign-ribbon {
  top: 62.453%;
  left: 18.125%;
  width: 68.333%;
  z-index: 3;
}

.kv2-want-win {
  top: 22.659%;
  left: 23.854%;
  width: 27.135%;
  z-index: 5;
}

.kv2-want-go {
  top: 22.659%;
  left: 53.438%;
  width: 28.75%;
  z-index: 5;
}

.kv2-airplane-trail {
  top: 35.393%;
  left: 12.24%;
  width: 10%;
  z-index: 2;
}

.kv2-airplane {
  top: 23.876%;
  left: 15.573%;
  width: 7.135%;
  z-index: 6;
}

.kv2-cloud {
  top: 46.816%;
  left: 10.938%;
  width: 10.417%;
  z-index: 3;
}

.kv2-lifebuoy {
  top: 50%;
  left: 19.323%;
  width: 7.812%;
  z-index: 6;
}

.kv2-sandals {
  top: 38.202%;
  left: 18.021%;
  width: 6.615%;
  z-index: 6;
}

.kv2-starfish {
  top: 47.285%;
  left: 87.448%;
  width: 4.74%;
  z-index: 6;
}

.kv2-sun-cloud {
  top: 23.689%;
  left: 76.927%;
  width: 14.792%;
  z-index: 3;
}

.kv2-logo {
  top: 35.112%;
  left: 28.698%;
  width: 44.219%;
  z-index: 4;
}

.kv2-product-sand {
  top: 45.225%;
  left: 73.073%;
  width: 16.25%;
  z-index: 5;
}
/* ============================================================
   kv3：キャンペーン情報
   基準：PC 1920px幅 / 推定高さ 約1125px
   ============================================================ */
.kv3 {
  position: relative;
  z-index: 1;
  width: 100vw;
  max-width: none;
  min-height: 58.6vw;
  margin-top: calc(-4vw - 6px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #0099d9;
  color: #fff;
  overflow: visible;
}

.kv3-inner {
  width: min(calc(100% - 64px), 1360px);
  margin-left: auto;
  margin-right: auto;
  padding: clamp(56px, 6.4vw, 122px) clamp(28px, 6.5vw, 125px) clamp(64px, 6.8vw, 130px);
}

.kv3-block {
  text-align: center;
}

.kv3-block + .kv3-block {
  margin-top: clamp(42px, 5.2vw, 100px);
}

.kv3-heading {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.28em 1.55em 0.34em;
  border-radius: 999px;
  background: #fff;
  color: #0099d9;
  font-size: clamp(28px, 3.4vw, 64px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.04em;
  box-shadow: 0 10px 0 rgba(255, 230, 0, 0.95);
}

.kv3-heading::before,
.kv3-heading::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 0.28em;
  height: 0.28em;
  border-radius: 50%;
  background: #FFE600;
  transform: translateY(-50%);
}

.kv3-heading::before {
  left: 0.55em;
}

.kv3-heading::after {
  right: 0.55em;
}

.kv3-content {
  margin-top: 1.25em;
  font-size: clamp(20px, 2.05vw, 39px);
  font-weight: 800;
  line-height: 1.72;
  letter-spacing: 0.02em;
  text-align: left;
}

.kv3-period .kv3-content {
  width: min(100%, 1400px);
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(21px, 2.35vw, 45px);
  line-height: 1.55;
}

.kv3-overview .kv3-content {
  width: min(100%, 1620px);
  margin-left: auto;
  margin-right: auto;
}

.kv3-content p {
  margin: 0;
}

.kv3-content p + p {
  margin-top: 0.32em;
}
.kv3-bottom-wave {
  position: absolute;
  left: 0;
  bottom: -1px;
  display: block;
  width: 100%;
  height: auto;
  z-index: 5;
  pointer-events: none;
  transform: translateY(calc(100% - 4px));
}

/* ============================================================
   kv4：雪塩ソフト割引券
   基準：PC 1920px幅 / 推定高さ 約1970px
   ============================================================ */
.kv4 {
  position: relative;
  z-index: auto;
  width: 100vw;
  max-width: none;
  min-height: 102.6vw;
  margin-top: calc(-3vw - 4px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fdebd1;
  overflow: visible;
}

.kv4-inner {
  position: relative;
  width: min(calc(100% - 64px), 1360px);
  margin-left: auto;
  margin-right: auto;
  min-height: inherit;
}

.kv4-label-quiz,
.kv4-heading-bg,
.kv4-copy-predict,
.kv4-product-sand,
.kv4-copy-answer,
.kv4-product-softcream,
.kv4-copy-easy-entry {
  position: absolute;
  height: auto;
  transform: rotate(0deg);
}

.kv4-label-quiz {
  top: 0.4%;
  left: 4.063%;
  width: 25.156%;
  z-index: 30;
}

.kv4-heading-bg {
  top: 6.9%;
  left: 6.354%;
  width: 89.115%;
  z-index: 28;
}

.kv4-copy-predict {
  top: 3.2%;
  left: 31.146%;
  width: 62.031%;
  z-index: 31;
}

.kv4-product-sand {
  top: 11.0%;
  left: 9.063%;
  width: 24.01%;
  z-index: 29;
}

.kv4-copy-answer {
  top: 30.2%;
  left: 15.208%;
  width: 67.083%;
  z-index: 3;
}

.kv4-product-softcream {
  top: 37.3%;
  left: 54%;
  width: 43%;
  z-index: 3;
}

.kv4-copy-easy-entry {
  top: 73.6%;
  left: 29.583%;
  width: 35.104%;
  z-index: 3;
}

.kv4-sp-tab-quiz {
  display: none;
}

.kv4-text-area {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 42vw;
  pointer-events: auto;
}

.kv4-lead,
.kv4-note,
.kv4-steps {
  margin: 0;
  font-weight: 900;
  letter-spacing: 0.02em;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.kv4-lead {
  max-width: min(37vw, 560px);
  margin-left: 7.1vw;
  color: #231815;
  font-size: clamp(24px, 2.55vw, 49px);
  line-height: 1.32;
}

.kv4-note {
  max-width: min(37vw, 560px);
  margin-top: clamp(28px, 4.2vw, 80px);
  margin-left: 7.1vw;
  color: #0099d9;
  font-size: clamp(17px, 1.9vw, 36px);
  line-height: 1.26;
  font-weight: 800;
}

.kv4-steps {
  max-width: min(96vw, 1840px);
  margin: clamp(72px, 12vw, 230px) auto 0;
  padding: 0 2vw;
  color: #231815;
  font-size: clamp(22px, 2.8vw, 54px);
  line-height: 1.2;
  text-align: center;
}

.kv4-steps-line {
  display: inline;
  background: linear-gradient(transparent 68%, #fff100 68%);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.kv4-steps::after {
  content: none;
}

.kv4-bottom-wave {
  position: absolute;
  left: 0;
  bottom: 15px;
  display: block;
  width: 100%;
  height: auto;
  z-index: 20;
  pointer-events: none;
  transform: translateY(calc(100% - 20px));
}

/* ============================================================
   kv5：プレゼント注意書き
   基準：PC 1920px幅 / 推定高さ 約2150px
   ============================================================ */
.kv5 {
  position: relative;
  z-index: 1;
  width: 100vw;
  max-width: none;
  min-height: 116vw;
  margin-top: calc(-1.5vw - 4px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #0099d9;
  color: #fff;
  overflow: visible;
}

.kv5-inner {
  position: relative;
  width: min(calc(100% - 64px), 1360px);
  min-height: inherit;
  margin-left: auto;
  margin-right: auto;
}

.kv5-asset {
  position: absolute;
  height: auto;
  transform: rotate(0deg);
}

.kv5-copy-lottery {
  top: 8.2%;
  left: 0;
  width: 100%;
  z-index: 3;
}

.kv5-heading-miyako-trip {
  top: 14.6%;
  left: 0;
  width: 52.5%;
  z-index: 4;
}

.kv5-badge-pair {
  top: 24.0%;
  left: 2.1%;
  width: 16.1%;
  z-index: 5;
}

.kv5-badge-2nights-text {
  top: 23.5%;
  left: 21.0%;
  width: 32.5%;
  color: #fff;
  font-size: clamp(28px, 2.55vw, 49px);
  font-weight: 900;
  line-height: 1.16;
  letter-spacing: 0.01em;
  text-align: left;
  text-shadow: 0 3px 0 rgba(0, 0, 0, 0.25);
  z-index: 6;
}

.kv5-badge-2nights-text span {
  display: block;
  white-space: nowrap;
}

.kv5-image-miyako-trip {
  top: 14.8%;
  left: 51.8%;
  width: 47.8%;
  z-index: 3;
}

.kv5-heading-tokusan-set {
  top: 43.7%;
  left: 0.8%;
  width: 47.2%;
  z-index: 4;
}

.kv5-image-specialty {
  top: 50.1%;
  left: 15.5%;
  width: 29.7%;
  z-index: 3;
}

.kv5-badge-specialty {
  top: 52.2%;
  left: 0.8%;
  width: 15.3%;
  z-index: 5;
}

.kv5-heading-sweets {
  top: 43.7%;
  left: 52.2%;
  width: 47.2%;
  z-index: 4;
}

.kv5-badge-sweets {
  top: 52.2%;
  left: 52.8%;
  width: 15.3%;
  z-index: 5;
}

.kv5-image-sweets {
  top: 48.4%;
  left: 68.8%;
  width: 29.7%;
  z-index: 3;
}

.kv5-copy-dont-give-up {
  top: 67.0%;
  left: 9.5%;
  width: 81.0%;
  z-index: 3;
}

.kv5-badge-w-chance {
  top: 74.6%;
  left: 3.7%;
  width: 17.0%;
  z-index: 5;
}

.kv5-heading-w-chance {
  top: 74.7%;
  left: 22.5%;
  width: 43.5%;
  z-index: 4;
}

.kv5-image-w-chance {
  top: 73.4%;
  left: 65.1%;
  width: 33.5%;
  z-index: 3;
}

.kv5-note {
  position: absolute;
  top: 91.0%;
  left: 10.2%;
  width: 78%;
  margin: 0;
  color: #fff;
  font-size: clamp(20px, 2.35vw, 45px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: anywhere;
  z-index: 4;
}

.kv5-bottom-wave {
  position: absolute;
  left: 0;
  bottom: -1px;
  display: block;
  width: 100%;
  height: auto;
  z-index: 20;
  pointer-events: none;
  transform: translateY(calc(100% - 4px));
}

@media (min-width: 1600px) {
  .kv5-image-specialty {
    top: 49.65%;
  }
}

/* ============================================================
   kv6：ヒント / 応募締切
   ============================================================ */
.kv6 {
  position: relative;
  width: 100vw;
  max-width: none;
  margin-top: calc(-4vw - 4px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fdebd1;
  color: #231815;
  overflow: visible;
}

.kv6-inner {
  position: relative;
  width: min(calc(100% - 64px), 1360px);
  margin-left: auto;
  margin-right: auto;
  padding: clamp(150px, 12vw, 230px) 0 0;
}

.kv6-hero {
  position: relative;
  min-height: clamp(390px, 31vw, 590px);
}

.kv6-asset {
  position: absolute;
  display: block;
  height: auto;
}

.kv6-product-sand {
  top: 9.2%;
  left: 0.4%;
  width: 30.2%;
  transform: rotate(-5deg);
  z-index: 4;
}

.kv6-label-quiz {
  top: -3.2%;
  left: 66.0%;
  width: 26.2%;
  transform: rotate(-5deg);
  z-index: 6;
}

.kv6-heading {
  top: 20.0%;
  left: 5.4%;
  width: 89.6%;
  z-index: 2;
}

.kv6-copy-predict {
  top: 10.8%;
  left: 29.6%;
  width: 62.0%;
  z-index: 5;
}

.kv6-label-hint {
  top: 75.0%;
  left: 1.0%;
  width: 25.2%;
  transform: rotate(-5deg);
  z-index: 6;
}

.kv6-sp-tab-quiz {
  display: none;
}

.kv6-hint-box {
  position: relative;
  z-index: 5;
  width: min(100%, 1180px);
  margin: clamp(-14px, -0.8vw, -4px) auto 0;
  padding: clamp(32px, 3.2vw, 58px) clamp(28px, 5vw, 80px);
  background: #fff;
  border-radius: clamp(18px, 2vw, 36px);
  box-shadow: 0 8px 0 rgba(0, 153, 217, 0.18);
  text-align: center;
}

.kv6-hint-label-hint,
.kv6-hint-label-quiz {
  display: none;
}

.kv6-hint-text {
  margin: 0;
  color: #231815;
  font-size: clamp(28px, 3.3vw, 62px);
  font-weight: 900;
  line-height: 1.22;
  letter-spacing: 0.03em;
}

.kv6-hint-line,
.kv6-hint-number {
  display: block;
}

.kv6-hint-number {
  color: #0099d9;
  font-size: 1.34em;
  line-height: 1.06;
  background: linear-gradient(transparent 68%, #fff100 68%);
}

.kv6-form-area {
  margin-top: clamp(36px, 5vw, 84px);
  text-align: center;
}

.kv6-form-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(78vw, 700px);
  padding: 0.58em 1.4em;
  border: none;
  outline: none;
  border-radius: clamp(10px, 1vw, 18px);
  background: #0099d9;
  color: #fff100;
  font-size: clamp(26px, 3.2vw, 60px);
  font-weight: 900;
  line-height: 1.15;
  text-decoration: none;
  box-shadow: 0 8px 0 #007dae;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.kv6-form-button:hover {
  transform: translateY(5px);
  box-shadow: 0 3px 0 #007dae;
}

.kv6-entry {
  position: relative;
  width: min(36vw, 380px);
  margin: 0 auto clamp(64px, 6vw, 112px);
  z-index: 5;
}

.kv6-deadline-band {
  display: grid;
  grid-template-columns: minmax(260px, 35%) 1fr;
  align-items: center;
  width: 100vw;
  margin-top: clamp(42px, 4.8vw, 86px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fff100;
}

.kv6-foot-logo-box {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(120px, 10vw, 190px);
  padding: clamp(18px, 2.2vw, 34px);
  background: #0099d9;
}

.kv6-foot-logo {
  display: block;
  width: min(84%, 390px);
  height: auto;
}

.kv6-deadline-copy {
  position: relative;
  z-index: 3;
  padding: clamp(20px, 2.6vw, 46px) clamp(24px, 4.2vw, 80px);
  color: #0099d9;
  font-weight: 900;
  line-height: 1.08;
}

.kv6-deadline-label {
  margin: 0;
  font-size: clamp(22px, 2.4vw, 44px);
}

.kv6-deadline-date {
  margin: 0.12em 0 0;
  font-size: clamp(34px, 4.4vw, 82px);
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.kv6-announcement-text {
  margin: 0.34em 0 0;
  font-size: clamp(23px, 2.7vw, 50px);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* ============================================================
   仕上げ：軽いモーション / kv2影
   ============================================================ */
@keyframes lpFadeSlideUp {
  from {
    opacity: 0;
    translate: 0 24px;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}

@keyframes lpFadeSlideLeft {
  from {
    opacity: 0;
    translate: -30px 0;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}

@keyframes lpFadeSlideRight {
  from {
    opacity: 0;
    translate: 30px 0;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}

@keyframes lpSoftFloat {
  0%, 100% {
    translate: 0 0;
  }
  50% {
    translate: 0 -9px;
  }
}

.kv1-product,
.kv1-number,
.kv1-total-sales,
.kv1-okinawa,
.kv1-thanks,
.kv1-campaign,
.kv2-campaign-ribbon,
.kv2-want-win,
.kv2-want-go,
.kv2-airplane-trail,
.kv2-airplane,
.kv2-cloud,
.kv2-lifebuoy,
.kv2-sandals,
.kv2-starfish,
.kv2-sun-cloud,
.kv2-logo,
.kv2-product-sand,
.kv3-heading,
.kv4-label-quiz,
.kv4-heading-bg,
.kv4-copy-predict,
.kv4-product-sand,
.kv4-copy-answer,
.kv4-product-softcream,
.kv4-copy-easy-entry,
.kv4-sp-tab-quiz,
.kv5-asset,
.kv6-asset,
.kv6-hint-box,
.kv6-form-button,
.kv6-deadline-band,
.kv7-contact-button {
  animation: lpFadeSlideUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.kv2-want-win,
.kv2-logo,
.kv3-heading,
.kv4-heading-bg,
.kv5-heading-miyako-trip,
.kv5-heading-tokusan-set,
.kv5-heading-sweets,
.kv5-heading-w-chance,
.kv6-heading,
.kv6-sp-tab-quiz {
  animation: lpFadeSlideLeft 0.82s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.kv2-want-go,
.kv4-copy-predict,
.kv5-image-miyako-trip,
.kv5-image-sweets,
.kv5-image-w-chance,
.kv6-copy-predict {
  animation: lpFadeSlideRight 0.82s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.kv2-airplane,
.kv2-cloud,
.kv2-lifebuoy,
.kv2-sandals,
.kv2-starfish,
.kv2-sun-cloud,
.kv2-product-sand,
.kv5-image-miyako-trip,
.kv5-image-sweets,
.kv5-image-w-chance,
.kv6-product-sand {
  animation:
    lpFadeSlideUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) both,
    lpSoftFloat 3.2s ease-in-out 0.8s infinite;
}

.kv2-want-go,
.kv2-want-win,
.kv2-logo {
  filter:
    drop-shadow(0 1px 0 rgba(17, 87, 180, 0.7))
    drop-shadow(0 3px 0 rgba(10, 76, 164, 0.48))
    drop-shadow(0 6px 5px rgba(0, 58, 132, 0.18));
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   kv7：注意事項 / お問い合わせ / コピーライト
   ============================================================ */
.kv7 {
  position: relative;
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fdebd1;
  color: #231815;
  overflow: visible;
}

.kv7-inner {
  width: min(calc(100% - 64px), 1360px);
  margin-left: auto;
  margin-right: auto;
  padding: clamp(56px, 6vw, 112px) 0 clamp(48px, 5vw, 96px);
}

.kv7-notes-box {
  background: #fff;
  padding: clamp(36px, 5vw, 78px);
  color: #231815;
  font-size: clamp(15px, 1.45vw, 26px);
  font-weight: 500;
  line-height: 1.82;
}

.kv7-note-section + .kv7-note-section {
  margin-top: 1.65em;
}

.kv7-note-section h3 {
  margin: 0 0 0.25em;
  color: #231815;
  font-size: clamp(18px, 1.7vw, 30px);
  font-weight: 900;
  line-height: 1.6;
}

.kv7-note-section p {
  margin: 0;
}

.kv7-note-section p + p {
  margin-top: 0.15em;
}

.kv7-contact-area {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 2vw, 34px);
  margin-top: clamp(42px, 5vw, 86px);
  text-align: center;
}

.kv7-contact-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(82vw, 520px);
  padding: 0.86em 1.8em;
  border-radius: 8px;
  background: #0099d9;
  color: #fff000;
  font-size: clamp(20px, 2.1vw, 34px);
  font-weight: 900;
  line-height: 1.1;
  text-decoration: none;
  box-shadow: 0 8px 0 #007dae;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.kv7-contact-button:hover {
  transform: translateY(5px);
  box-shadow: 0 3px 0 #007dae;
}

.kv7-host-text {
  margin: clamp(30px, 4vw, 62px) 0 0;
  color: #231815;
  font-size: clamp(18px, 1.8vw, 30px);
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}

.kv7-copyright {
  width: 100%;
  padding: clamp(18px, 2vw, 34px) 16px;
  background: #0099d9;
  color: #fff;
  text-align: center;
}

.kv7-copyright p {
  margin: 0;
  font-size: clamp(14px, 1.4vw, 20px);
  font-weight: 700;
  line-height: 1.6;
}

/* ============================================================
   レスポンシブ（Phase 11で本格実装）
   ============================================================ */
@media (max-width: 1024px) {
  .container {
    padding: 0 16px;
  }

  .kv3-inner,
  .kv4-inner,
  .kv5-inner,
  .kv6-inner,
  .kv7-inner {
    width: min(calc(100% - 32px), 1360px);
  }

  .kv6-inner {
    padding-top: 30vw;
  }

  .kv6-hero {
    min-height: auto;
    display: flex;
    flex-direction: column;
    gap: 4vw;
  }

  .kv6-asset {
    position: relative;
    top: auto;
    left: auto;
    display: block;
    transform: none;
  }

  .kv6-product-sand,
  .kv6-label-quiz,
  .kv6-label-hint {
    width: min(100%, 520px);
    margin: 0 auto;
  }

  .kv6-heading,
  .kv6-copy-predict {
    width: min(100%, 640px);
    margin: 0 auto;
  }

  .kv6-product-sand,
  .kv6-label-quiz,
  .kv6-heading,
  .kv6-copy-predict,
  .kv6-label-hint {
    display: none !important;
  }

  .kv6-sp-tab-quiz {
    display: block;
    width: min(92vw, 760px);
    height: auto;
    margin: 0 auto clamp(24px, 6vw, 56px);
  }

  .kv6-entry {
    width: min(70vw, 320px);
    margin-bottom: 10vw;
  }

  .kv6-hint-box {
    width: 100%;
    margin-top: 6vw;
  }

  .kv6-form-button {
    min-width: min(86vw, 520px);
    width: min(86vw, 520px);
    padding-left: 0.8em;
    padding-right: 0.8em;
    font-size: clamp(22px, 6.2vw, 42px);
    white-space: nowrap;
  }

  .kv6-deadline-band {
    grid-template-columns: 1fr;
  }

  .kv6-foot-logo-box {
    min-height: auto;
  }

  .kv6-deadline-copy {
    text-align: center;
    padding: 28px 18px;
  }

  .kv6-deadline-date,
  .kv6-announcement-text {
    white-space: normal;
  }

  .kv7-notes-box {
    padding: 24px 18px;
    line-height: 1.75;
  }

  .kv7-contact-area {
    flex-direction: column;
  }

  .kv5 {
    min-height: auto;
    padding-bottom: 18vw;
  }

  .kv5-inner {
    display: flex;
    flex-direction: column;
    min-height: auto;
    padding: 14vw 4vw 20vw;
  }

  .kv5-asset {
    position: relative;
    top: auto;
    left: auto;
    display: block;
  }

  .kv5-copy-lottery {
    order: 1;
    width: 100%;
    margin: 0 auto 8vw;
  }

  .kv5-heading-miyako-trip,
  .kv5-heading-tokusan-set,
  .kv5-heading-sweets,
  .kv5-copy-dont-give-up,
  .kv5-heading-w-chance {
    width: 100%;
    margin: 0 auto 4vw;
  }

  .kv5-heading-miyako-trip { order: 10; }
  .kv5-badge-pair { order: 11; }
  .kv5-badge-2nights-text { order: 12; }
  .kv5-image-miyako-trip { order: 13; }
  .kv5-heading-tokusan-set { order: 20; }
  .kv5-badge-specialty { order: 21; }
  .kv5-image-specialty { order: 22; }
  .kv5-heading-sweets { order: 30; }
  .kv5-badge-sweets { order: 31; }
  .kv5-image-sweets { order: 32; }
  .kv5-copy-dont-give-up { order: 39; }
  .kv5-heading-w-chance { order: 40; }
  .kv5-badge-w-chance { order: 41; }
  .kv5-image-w-chance { order: 42; }
  .kv5-note { order: 50; }

  .kv5-badge-pair,
  .kv5-badge-specialty,
  .kv5-badge-sweets,
  .kv5-badge-w-chance {
    width: min(44%, 240px);
    margin: 0 auto 5vw;
  }

  .kv5-badge-2nights-text {
    width: min(92vw, 620px);
    margin: 0 auto 6vw;
    color: #fff;
    font-size: clamp(28px, 9vw, 52px);
    line-height: 1.14;
    text-align: center;
    white-space: normal;
  }

  .kv5-badge-2nights-text span {
    display: block;
    white-space: nowrap;
  }

  .kv5-image-miyako-trip,
  .kv5-image-specialty,
  .kv5-image-sweets,
  .kv5-image-w-chance {
    width: 92%;
    margin: 0 auto 9vw;
  }

  .kv5-note {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    margin: 6vw 0 0;
    font-size: clamp(18px, 5.2vw, 28px);
    line-height: 1.6;
  }

  .kv4 {
    min-height: auto;
    padding-bottom: 28vw;
  }

  .kv4-inner {
    min-height: auto;
    padding: 10vw 5vw 18vw;
  }

  .kv4-label-quiz,
  .kv4-heading-bg,
  .kv4-copy-predict,
  .kv4-product-sand,
  .kv4-copy-answer,
  .kv4-product-softcream,
  .kv4-copy-easy-entry {
    position: relative;
    top: auto;
    left: auto;
    display: block;
  }

  .kv4-label-quiz {
    width: 46%;
    margin: 0 0 -2vw 0;
  }

  .kv4-heading-bg {
    width: 100%;
    margin: 0 auto;
  }

  .kv4-copy-predict {
    width: 92%;
    margin: -15vw auto 5vw;
  }

  .kv4-product-sand {
    width: 46%;
    margin: -3vw auto 8vw 4vw;
  }

  .kv4-label-quiz,
  .kv4-heading-bg,
  .kv4-product-sand,
  .kv4-copy-predict {
    display: none;
  }

  .kv4-sp-tab-quiz {
    display: block;
    width: min(92vw, 760px);
    height: auto;
    margin: 0 auto clamp(24px, 6vw, 56px);
  }

  .kv4-copy-answer {
    width: 96%;
    margin: 0 auto 7vw;
  }

  .kv4-product-softcream {
    width: min(92%, 520px);
    margin: 0 auto 7vw;
  }

  .kv4-copy-easy-entry {
    width: min(80%, 420px);
    margin: 0 auto 6vw;
  }

  .kv4-bottom-wave {
    bottom: 10px;
  }

  .kv4-text-area {
    padding-top: 0;
  }

  .kv4-lead,
  .kv4-note,
  .kv4-steps {
    max-width: 100%;
    margin-left: 0;
    text-align: left;
  }

  .kv4-note {
    margin-top: clamp(16px, 5vw, 28px);
    line-height: 1.55;
  }

  .kv4-steps {
    margin-top: clamp(22px, 7vw, 40px);
    padding: 0;
    text-align: left;
  }

  .kv4-steps::after {
    content: none;
  }

  .kv6-hint-label-quiz {
    display: none !important;
  }

  .kv6-hint-box {
    position: relative;
    padding-top: clamp(42px, 8vw, 72px);
  }

  .kv6-hint-label-hint {
    position: absolute;
    display: block;
    width: clamp(72px, 22vw, 150px);
    height: auto;
    left: clamp(12px, 4vw, 32px);
    top: clamp(-28px, -4vw, -14px);
    z-index: 8;
    transform: rotate(-5deg);
  }
}




















