@charset "UTF-8";
/* ============================================================
   kaigaidppack | app-pc.css
   PC＋タブレット（min-width: 768px）向けの上書き専用。
   ベースは app-common.css。ここではグリッド段組・タイポ拡大などを定義。
   ============================================================ */

.html-scroll-lock,
html,
body,
#wrapper,
main,
.App {
  overflow-x: clip;
}

@supports not (overflow: clip) {
  .html-scroll-lock,
  html,
  body,
  #wrapper,
  main,
  .App {
    overflow-x: hidden;
  }
}

.Section { padding: 72px 24px; }
.SectionTitle { font-size: 40px; margin-bottom: 24px; }
.SectionHeadingEng { font-size: 83px; opacity: .3; margin-bottom: 32px; }
.App { font-size: 16px; }

/* Hero */
.Section.Hero { padding: 0; min-height: 0; height: min(39vw, 562px); aspect-ratio: auto; display: block; }
.HeroBlob.cyan { top: -620px; left: -250px; width: 582px; max-width: none; }
.HeroBlob.pink { top: auto; left: auto; right: -250px; bottom: -560px; width: 574px; max-width: none; }
.HeroPiece--sp { display: none; }
.HeroPiece--pc,
.HeroPiece--deco { transform: translate(-50%, -50%); }
.HeroPiece--pc-photo-center { left: 30.95%; top: calc(46.95% - 36px); width: min(25.1%, 361px); }
.HeroPiece--pc-photo-right { left: 70.2%; top: calc(50.1% - 36px); width: min(27%, 389px); }
.HeroPiece--pc-photo-bottom-left { left: 20.7%; top: calc(72.9% + 36px); width: min(29.6%, 426px); }
.HeroPiece--pc-photo-top-right { left: 92.5%; top: calc(34.1% - 66px); width: min(25.4%, 366px); }
.HeroPiece--pc-photo-left-mid { left: 8.45%; top: calc(56.6% - 36px); width: min(19.4%, 279px); }
.HeroPiece--pc-photo-right-lower { left: 86.8%; top: calc(61.7% - 16px); width: min(22.4%, 323px); }
.HeroPiece--deco-guard1 { left: 3.7%; top: 12.3%; width: min(3.4%, 49px); }
.HeroPiece--deco-guard2 { left: 7.5%; top: 10.5%; width: min(3.2%, 46px); }
.HeroPiece--deco-tower { left: 34.5%; top: 65.9%; width: min(5.1%, 48px); }
.HeroPiece--deco-colosseum { left: 67%; top: 73.8%; width: min(8%, 122px); }
.HeroPiece--deco-taxi { left: 94.6%; top: 43.35%; width: min(9.8%, 141px); }
.HeroPiece--deco-lantern { left: 83.95%; top: 34.75%; width: min(3.3%, 48px); }
.HeroPiece--deco-pizza { left: 19%; top: 38.32%; width: min(6.9%, 114px); }
.HeroPiece--deco-bus { left: 29.95%; top: 87.91%; width: min(6.3%, 91px); }
.HeroPiece--deco-mermaid { left: 6.3%; top: 78.95%; width: min(7%, 101px); }
.HeroPiece--deco-flower { left: 75.35%; top: 14.99%; width: min(4.5%, 65px); }
.HeroPiece--deco-hula { left: 76.9%; top: 70.08%; width: min(6.2%, 89px); }
.HeroPiece--deco-opera { left: 96.3%; top: 78.13%; width: min(7%, 115px); }

@media (min-width: 768px) and (max-width: 1023px) {
  .Section.Hero { height: min(46vw, 470px); }
  .HeroInner { width: 46%; }
  .HeroPiece--pc-photo-center { left: 20%; top: calc(45% - 22px); width: 21%; }
  .HeroPiece--pc-photo-right { left: 80%; top: calc(47% - 22px); width: 22%; }
  .HeroPiece--pc-photo-bottom-left { left: 18%; top: calc(78% + 12px); width: 25%; }
  .HeroPiece--pc-photo-top-right { left: 88%; top: calc(32% - 34px); width: 22%; }
  .HeroPiece--pc-photo-left-mid { left: 7%; top: calc(57% - 20px); width: 17%; }
  .HeroPiece--pc-photo-right-lower { left: 92%; top: calc(64% - 2px); width: 20%; }
  .HeroPiece--deco-pizza { left: 21%; top: 38%; width: 7.4%; }
  .HeroPiece--deco-tower { left: 35%; top: 68%; width: 3.6%; }
  .HeroPiece--deco-colosseum { left: 68%; top: 73%; width: 8%; }
  .HeroPiece--deco-hula { left: 75%; top: 75%; width: 6%; }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .Section.Hero { height: min(43vw, 515px); }
  .HeroInner { width: 44%; }
  .HeroPiece--pc-photo-center { left: 31.5%; top: calc(42% - 26px); width: min(24.5%, 288px); }
  .HeroPiece--pc-photo-right { left: 70%; top: calc(45% - 26px); width: min(25.5%, 301px); }
  .HeroPiece--pc-photo-bottom-left { left: 21%; top: calc(70% + 18px); width: min(30%, 333px); }
  .HeroPiece--pc-photo-top-right { left: 92%; top: calc(31% - 44px); width: min(23%, 294px); }
  .HeroPiece--pc-photo-left-mid { left: 8%; top: calc(55% - 26px); width: min(19.5%, 224px); }
  .HeroPiece--pc-photo-right-lower { left: 86%; top: calc(64% - 6px); width: min(21%, 256px); }
  .HeroPiece--deco-pizza { left: 19%; top: 39%; }
  .HeroPiece--deco-tower { left: 34.5%; top: 65%; }
  .HeroPiece--deco-colosseum { left: 68%; top: 70%; }
  .HeroPiece--deco-hula { left: 76%; top: 77%; }
}

@media (min-width: 1280px) and (max-width: 1439px) {
  .HeroInner { width: 43.4%; }
  .HeroPiece--pc-photo-center { left: 31%; top: calc(41% - 22px); width: min(25.8%, 340px); }
  .HeroPiece--pc-photo-right { left: 70%; top: calc(43% - 22px); width: min(25%, 390px); }
  .HeroPiece--pc-photo-bottom-left { left: 20.5%; top: calc(73% + 22px); width: min(30%, 400px); }
  .HeroPiece--pc-photo-top-right { left: 90%; top: calc(36% - 54px); width: min(26.6%, 370px); }
  .HeroPiece--pc-photo-left-mid { left: 8%; top: calc(53% - 28px); width: min(21.2%, 280px); }
  .HeroPiece--pc-photo-right-lower { left: 85%; top: calc(68% - 8px); width: min(21.2%, 300px); }
  .HeroPiece--deco-taxi { left: 95%; top: 49%; }
  .HeroPiece--deco-lantern { left: 81%; top: 39%; }
  .HeroPiece--deco-hula { left: 75.5%; top: 81%; width: min(8.2%, 92px); }
}

@media (min-width: 1440px) {
  .HeroBlob.cyan { top: -620px; left: -250px; width: 582px; }
  .HeroBlob.pink { top: auto; left: auto; right: -250px; bottom: -531px; width: 574px; }
  /* 1440px幅の見た目を基準に、装飾群は中央起点で固定する。
     大画面で left:% のまま外側へ広がるのを防ぐ。 */
  .HeroPiece--pc-photo-center { left: calc(50% - 273.6px); top: calc(41% - 22px); width: min(25.8%, 340px); }
  .HeroPiece--pc-photo-right { left: calc(50% + 288px); top: calc(43% - 22px); width: min(25%, 390px); }
  .HeroPiece--pc-photo-bottom-left { left: calc(50% - 424.8px); top: calc(73% + 22px); width: min(30%, 400px); }
  .HeroPiece--pc-photo-top-right { left: calc(50% + 576px); top: calc(36% - 54px); width: min(26.6%, 370px); }
  .HeroPiece--pc-photo-left-mid { left: calc(50% - 604.8px); top: calc(53% - 28px); width: min(21.2%, 280px); }
  .HeroPiece--pc-photo-right-lower { left: calc(50% + 504px); top: calc(68% - 8px); width: min(21.2%, 300px); }
  .HeroPiece--deco-guard1 { left: calc(50% - 666.7px); top: 12.3%; width: min(3.4%, 49px); }
  .HeroPiece--deco-guard2 { left: calc(50% - 612px); top: 10.5%; width: min(3.2%, 46px); }
  .HeroPiece--deco-tower { left: calc(50% - 223.2px); top: 65.9%; width: min(5.1%, 48px); }
  .HeroPiece--deco-colosseum { left: calc(50% + 244.8px); top: 73.8%; width: min(8%, 122px); }
  .HeroPiece--deco-taxi { left: calc(50% + 648px); top: 49%; }
  .HeroPiece--deco-lantern { left: calc(50% + 446.4px); top: 39%; }
  .HeroPiece--deco-pizza { left: calc(50% - 446.4px); top: 38.32%; width: min(6.9%, 114px); }
  .HeroPiece--deco-bus { left: calc(50% - 288.7px); top: 87.91%; width: min(6.3%, 91px); }
  .HeroPiece--deco-mermaid { left: calc(50% - 604px); right: auto; top: 472px; width: 101px; }
  .HeroPiece--deco-flower { left: calc(50% + 365px); top: 14.99%; width: min(4.5%, 65px); }
  .HeroPiece--deco-hula { left: calc(50% + 367.2px); top: 81%; width: min(8.2%, 92px); }
  .HeroPiece--deco-opera { left: calc(50% + 666.7px); top: 78.13%; width: min(7%, 115px); }
}
.HeroInner { top: 4.1%; width: 43.4%; max-width: 624px; }
.HeroCatch {
  display: flex;
  justify-content: center;
  font-size: clamp(22px, 1.85vw, 36px);
}
.HeroCatch::before,
.HeroCatch::after {
  content: '';
  position: absolute;
  bottom: 4px;
  width: 67px;
  height: 8px;
  background: radial-gradient(circle, #f8c9cf 0 4px, transparent 4.5px) left center / 17px 8px repeat-x;
}
.HeroCatch::before { left: 44%; }
.HeroCatch::after { left: 78.4%; }
.HeroLogo {
  width: 56%;
  max-width: 100%;
  margin: 6.2% auto 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.HeroLogoImg { width: 86%; max-width: 301px; }
.HeroProductName { height: auto; font-size: clamp(20px, 1.58vw, 31px); padding: .33em .45em; }
.HeroPoints { width: 59.3%; max-width: 370px; margin-top: 9.4%; }
.HeroPointsIcons, .HeroPointsLabels { width: 100%; max-width: 100%; }
.HeroPoints .HeroPointsLabels { height: 21px; }
.HeroPointsLabels li { font-size: clamp(14px, 1.21vw, 24px); }

@media (min-width: 1440px) {
  .HeroCatch { font-size: 26px; }
  .HeroProductName { font-size: 22.752px; }
  .HeroPointsLabels li { font-size: 17.424px; }
}

/* Theme nav: まずはここから / 5カードを横一列 */
.Section.ThemeNavWrap { padding: 10px 20px; z-index: 1; margin-top: -80px; }
.ThemeNavTitle { max-width: 1380px; font-size: 40px; line-height: 80px; }
.ThemeNavDeco--bus { top: -10px; left: calc(50% - 458px); width: 90px; }
.ThemeNavDeco--flower { top: -26px; left: calc(50% + 230px); width: 65px; }
.ThemeNavWrap .SectionContent { margin-top: 16px; }
.ThemeNavGrid { grid-template-columns: repeat(2, 260px); justify-content: center; gap: 16px; }
.ThemeNavWrap .ThemeNavGrid { max-width: 1380px; margin: 0 auto; padding: 32px 8px; }
.ThemeNavCard a {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  width: 100%;
  height: 172px;
  min-height: 172px;
  padding: 32px 10px 12px;
  text-align: center;
  font-size: 20px;
  line-height: 1.45;
  white-space: nowrap;
}
.ThemeNavCardText {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 58px;
}
.ThemeNavCardLine--small { font-size: 18px; }
@media (min-width: 1320px) {
  .ThemeNavGrid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 1420px) {
  .ThemeNavGrid { grid-template-columns: repeat(5, 260px); }
  .ThemeNavCard a { width: 260px; }
}
.StickyLocalNav {
  padding: 8px 24px;
}
.StickyLocalNavInner {
  display: flex;
  align-items: center;
  gap: 12px;
  width: min(100%, 1280px);
  min-height: 72px;
  margin: 0 auto;
  padding: 8px;
  border-radius: 10px;
}
.StickyLocalNavList {
  flex: 1 1 auto;
  align-items: stretch;
  gap: 8px;
  min-width: 0;
}
.StickyLocalNavItem {
  flex: 0 1 auto;
  min-width: 0;
}
.StickyLocalNavItem a {
  min-height: 56px;
  border-radius: 8px;
  padding: 8px 10px 8px 12px;
  font-size: 14px;
  line-height: 1.35;
}
.StickyLocalNavItem:nth-child(1) {
  flex-basis: 152px;
  flex-grow: 0;
}
.StickyLocalNavItem:nth-child(2) {
  flex-basis: 224px;
  flex-grow: 0;
}
.StickyLocalNavItem:nth-child(3) {
  flex-basis: 170px;
  flex-grow: 0;
}
.StickyLocalNavItem:nth-child(4) {
  flex-basis: 142px;
  flex-grow: 0;
}
.StickyLocalNavItem:nth-child(5) {
  flex-basis: 264px;
  flex-grow: 0;
}
.StickyLocalNavDeparture {
  display: flex;
  gap: 10px;
  padding-left: 6px;
  font-size: 14px;
}
.StickyLocalNavDeparture select {
  min-width: 128px;
  height: 48px;
  border-radius: 8px;
  font-size: 16px;
  padding-left: 14px;
}
@media (min-width: 1600px) {
  .StickyLocalNavInner {
    gap: 16px;
    min-height: 80px;
  }
  .StickyLocalNavList {
    gap: 10px;
  }
  .StickyLocalNavItem a {
    min-height: 64px;
    padding: 10px 12px 10px 16px;
    font-size: 16px;
  }
  .StickyLocalNavItem:nth-child(1) { flex-basis: 178px; }
  .StickyLocalNavItem:nth-child(2) { flex-basis: 248px; }
  .StickyLocalNavItem:nth-child(3) { flex-basis: 186px; }
  .StickyLocalNavItem:nth-child(4) { flex-basis: 164px; }
  .StickyLocalNavItem:nth-child(5) { flex-basis: 288px; }
  .StickyLocalNavDeparture { font-size: 16px; }
  .StickyLocalNavDeparture select {
    min-width: 140px;
    height: 52px;
    font-size: 18px;
  }
}

/* Feature: 写真バンド＋4カード横並び */
.Section.FeatureWrap { padding-bottom: 242px; }
.FeatureWrap .SectionInner { max-width: 1343px; padding-top: 32px; }
.Section.FeatureWrap::after {
  bottom: -364px;
  width: 2800px;
  height: 567px;
}
.FeatureHero { min-height: 500px; }
.FeatureHeroSlide { height: 100% !important; }
.FeatureMarkLogo {
  top: 33px;
  left: calc(50% - 660px);
  width: 137px;
}
.FeatureHeroTitle { font-size: 48px; line-height: 1.45; }
.FeatureHeroLogo { width: 389px; margin-top: 16px; }
.FeatureFlightBand {
  height: 64px;
  --flight-dot-size: 9px;
  --flight-dot-radius: 4.5px;
  --flight-dot-fade: 5px;
  --flight-dot-step: 34px;
}
.FeatureFlightPlane { width: 58px; }
.FeatureHeading { font-size: 36px; line-height: 1.44; margin-top: 36px; margin-bottom: 32px; padding: 0 90px; }
.FeatureHeading::before,
.FeatureHeading::after {
  width: 12px;
  height: 102px;
  background-size: 12px 20px;
}
.FeatureHeading::before { left: 0; }
.FeatureHeading::after { right: 0; }
.FeatureList {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  max-width: 1323px;
  margin: 0 auto;
}
.FeatureItem { gap: 24px; }
.FeatureItem:nth-child(1),
.FeatureItem:nth-child(4) { padding-top: 32px; }
.FeaturePhoto,
.FeaturePhoto img {
  width: 240px;
  height: 240px;
}
.FeatureCheck {
  width: 56px;
  height: 56px;
}
.FeatureCheck::after {
  width: 30px;
  height: 15px;
  border-left-width: 5px;
  border-bottom-width: 5px;
}
.FeatureItem p { font-size: 20px; line-height: 30px; }


/* Search */
.SearchWrap { padding: 36px 24px 55px; background: none !important; }
.SearchWrap::after {
  right: -360px;
  bottom: -560px;
  width: 807px;
  height: 1121px;
}
.SearchBox { min-height: 349px; padding: 30px 24px; border-radius: 24px; }
.App .SearchBox img {max-width: max-content;}
/*.SearchBox .kaigaiS > ul { grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: 24px; }
.SearchBox .kaigaiS > ul > li { min-height: 54px; border-radius: 0; border-right-width: 0; font-size: 15px; }
.SearchBox .kaigaiS > ul > li:first-child { border-radius: 8px 0 0 8px; }
.SearchBox .kaigaiS > ul > li:last-child { border-right-width: 2px; border-radius: 0 8px 8px 0; }
.SearchBox dl { grid-template-columns: 130px minmax(0, 1fr) !important; align-items: center; gap: 12px; }
.SearchBox #kaigai_dp_tour form { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 952px; margin: 0 auto; gap: 10px; }
.SearchBox #kaigai_dp_tour dl { grid-template-columns: 130px minmax(0, 1fr) !important; }
.SearchBox #kaigai_dp_tour #traveldays_wrap,
.SearchBox #kaigai_dp_tour #roomNum_wrap { max-width: 610px !important; }
.SearchBox .topDropdownModalWrap { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.SearchBox .column2WrapA01 .kaigaiTourWrap,
.SearchBox #topMainArea .kaigaiTourWrap,
.SearchBox #kaigai_dp .column2WrapA01 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 28px;
  max-width: 952px;
  margin: 0 auto;
}
.SearchBox #kaigai_tour .kaigaiTourWrap,
.SearchBox #topMainArea .kaigaiTourWrap,
.SearchBox #kaigai_dp .column2WrapA01 {
  align-items: start;
}
.SearchBox #kaigai_tour .gadget_left_box,
.SearchBox #kaigai_tour .gadget_right_box,
.SearchBox #topMainArea .gadget_left_box,
.SearchBox #topMainArea .gadget_right_box,
.SearchBox #kaigai_dp .gadget_left_box,
.SearchBox #kaigai_dp .gadget_right_box {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
.SearchBox #kaigai_tour .kaigaiTourWrap dl,
.SearchBox #topMainArea dl,
.SearchBox #kaigai_dp dl { grid-template-columns: 130px minmax(0, 1fr) !important; }
.SearchBox #kaigai_tour .gadget_left_box .selectBlock:first-child {
  grid-template-columns: 130px 112px 112px 34px !important;
  align-items: center;
}
.SearchBox #kaigai_tour .gadget_left_box .selectBlock:first-child dd {
  min-width: 0;
}
.SearchBox #kaigai_tour #NTA_W_calendar {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
}
.SearchBox #kaigai_tour #NTA_W_calendar .ic_cal {
  position: static;
  width: 22px;
  height: 22px;
  transform: none;
}
.SearchBox #kaigai_tour .tx10,
.SearchBox #topMainArea p.btnSeach,
.SearchBox #kaigai_dp p.btnSeach,
.SearchBox #kaigai_dp .tx_L {
  grid-column: 1 / -1 !important;
}
.SearchBox #topMainArea .forcia_airperson dt,
.SearchBox #kaigai_dp .forcia_person dt { align-self: start; padding-top: 7px; }
.SearchBox #topMainArea .forcia_dest dd,
.SearchBox #kaigai_dp .forcia_dest dd { grid-template-columns: 1fr 1fr; }
.SearchBox #topMainArea .forcia_dest .airport { grid-column: 1 / -1; }
.SearchBox #kaigai_dp .forcia_person { grid-template-columns: minmax(0, 1fr); }*/
.SearchBanners {
	display: flex;
	gap: 1%;
/*  grid-template-columns: repeat(5, 159px);
  gap: 26px;*/
  justify-content: center;
  width: max-content;
  max-width: 100%;
}
.SearchBox + .SearchBanners {
  margin-top: 36px !important;
}

/* Trip */
.Section.TripWrap { padding-top: 120px; padding-bottom: 86px; }
.TripWrap .SectionTitle { font-size: 40px; line-height: 1.6; margin: 0 auto 48px; }
.TripWrap .SectionHeadingEng { top: -93px; font-size: 64px; }
.TripHeaderDecos {
  position: absolute;
  inset: 0;
  z-index: 100;
  pointer-events: none;
}
.TripHeaderDeco--left { top: 31px; left: 25%; width: 148px; height: 109px; }
.TripHeaderDeco--photo { display: block; top: 79px; right: calc(50% - 654px); width: 300px; height: 335px; }
.TripHeaderDeco--plane { display: block; top: 8px; right: 30%; width: 119px; height: 73px; }
.TripHeaderDeco--right { display: block; top: 92px; right: 23%; width: 128px; height: 259px; z-index: 100; }
.TripHeaderDeco--person1 { top: 164px; left: 18%; width: 64px; height: 117px; }
.TripHeaderDeco--person2 { top: 144px; left: 14%; width: 57px; height: 104px; }
.TripWrap .SectionContent { margin-top: 34px; --trip-tabs-bg-height: 515px; }
.TripFlightBand {
  height: 64px;
  --flight-dot-size: 9px;
  --flight-dot-radius: 4.5px;
  --flight-dot-fade: 5px;
  --flight-dot-step: 34px;
}
.TripFlightPlane { width: 58px; }
.TripTabs { max-width: 1441px; min-height: 515px; }
.TripFigmaStack { max-width: 1240px; gap: 140px; padding-bottom: 56px; }
.TripBlock { width: 1240px; max-width: calc(100vw - 80px); margin: 0 auto; padding: 0; z-index: 0; isolation: isolate; }
.TripBlock::before,
.TripBlock::after {
  content: "";
  position: absolute;
  z-index: -2;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}
#Trip01::before,
#Trip03::before,
#Trip05::before {
  top: -10px;
  left: -335px;
  width: 543px;
  height: 772px;
}
#Trip02::after,
#Trip04::after {
  top: -136px;
  right: -312px;
  width: 581px;
  height: 955px;
}
.TripBlockFlight--pink {
  top: -10px;
  left: -335px;
  width: 543px;
  height: 772px;
}
.TripBlockFlight--cyan {
  top: -136px;
  right: -312px;
  width: 581px;
  height: 955px;
}
.TripBlockFlight {
  position: absolute;
  z-index: -1;
  pointer-events: none;
}
.TripBlockFlight--pink .TripBlockFlightOrbit {
  offset-path: path("M 255.2 61.2 C 352.2 59.3 473.6 79.9 495 143.3 C 516.5 207.7 448.4 253.5 412.9 288.9 C 365.3 338.4 399.8 402.8 443.7 453.2 C 503.4 520.4 398.9 565.2 276.6 588.5 C 194.5 604.4 161.8 640.8 142.2 708.9");
}
.TripBlockFlight--cyan .TripBlockFlightOrbit {
  offset-path: path("M 428.2 76.6 C 411.4 143.8 385.2 190.5 327.4 217.6 C 248 236.2 140.7 267 96.8 321.2 C 54.8 374.4 152.8 433.2 159.4 509.7 C 166.8 588.1 89.4 626.4 58.6 693.6 C 25 766.4 40.8 840.1 110.8 877.4 C 183.6 912.9 304 906.4 408.6 906.4");
}
.TripBlockFlightOrbit {
  width: 48px;
  height: 43px;
}
.TripBlockFlightPlane {
  width: 100%;
}
@media (min-width: 1400px) {
  #Trip01::before,
  #Trip03::before,
  #Trip05::before,
  .TripBlockFlight--pink {
    left: calc(385px - 50vw);
  }
  #Trip02::after,
  #Trip04::after,
  .TripBlockFlight--cyan {
    right: calc(408px - 50vw);
  }
}
@media (min-width: 1181px) and (max-width: 1399px) {
  #Trip01::before,
  #Trip03::before,
  #Trip05::before,
  .TripBlockFlight--pink {
    left: -520px;
  }

  #Trip02::after,
  #Trip04::after,
  .TripBlockFlight--cyan {
    right: -560px;
  }
}
.TripBlockHead {
  grid-template-columns: 120px minmax(0, 1fr) 280px;
  gap: 24px;
  align-items: start;
  padding: 0 34px;
}
.TripBlockBadge { width: 120px; height: 120px; transform: translateY(-12px); }
.TripBlockBadge span { font-size: 28px; }
.TripBlockBadge b { font-size: 64px; }
.TripBlockTitle h3 { font-size: 40px; }
.TripBlockTitle p { font-size: 16px; }
.TripDepartureSelect {
  justify-self: end;
  min-width: 286px;
  min-height: 52px;
  margin-top: 20px;
  padding: 11px 18px;
  gap: 18px;
  font-size: 14px;
}
.TripDepartureSelect select {
  flex: 1 1 auto;
  min-width: 176px;
  height: 34px;
  font-size: 14px;
}
.TripBlockBody {
  grid-template-columns: 563px minmax(0, 1fr);
  justify-content: start;
  gap: 0;
  align-items: start;
  margin-top: 4px;
  height: 436px;
  padding: 30px 36px 28px;
}
.App .TripMainPhoto { width: 563px; height: 376px; aspect-ratio: auto; }
.TripProducts {
  position: absolute;
  top: 12px;
  left: 637px;
  width: 575px;
  height: 497px;
}
.TripProductSlide { grid-template-columns: repeat(2, 281px); gap: 13px; }
.TripProductCard { height: 497px; }
.TripProductCard img { height: 158px; }
.TripProductHotel p {
	display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
    overflow: hidden;
}
.TripAreaBar {
  display: block;
  min-height: 110px;
  padding: 30px 32px 24px;
  z-index: 0;
}
.TripAreaControl {
  width: 563px;
  height: 48px;
  justify-content: flex-start;
  gap: 18px;
  padding-left: 70px;
}
.TripAreaFlower {
  flex: 0 0 auto;
  margin-right: 22px;
  padding-left: 0;
  font-size: 22px;
}
.TripAreaFlower::before { width: 48px; height: 48px; left: -60px; }
.TripAreaControl .TripAreaArrow { flex: 0 0 32px; width: 32px; height: 32px; min-height: 32px; font-size: 20px; line-height: 1; }
.TripAreaCurrent { flex: 0 0 220px; min-width: 220px; height: 54px; padding: 7px 48px 6px 18px; font-size: 14px; }
.TripAreaCurrentText { max-width: 148px; }
.TripAreaDots { gap: 5px; margin-top: 6px; }
.TripAreaDots button { width: 6px; height: 6px; }
.TripAreaControl .TripAreaAutoplay { right: 13px; width: 30px; height: 30px; }
.App .TripAreaBar ul {
  flex-wrap: nowrap;
  margin-top: 26px;
  justify-content: stretch;
  gap: 8px;
  background: #fff;
  border-radius: 8px;
  padding: 13px 18px;
}
.TripAreaBar li {
  flex: 1 1 0;
  min-width: 0;
  font-size: 16px;
  line-height: 1.35;
  white-space: nowrap;
}
.TripAreaBar li button { min-height: 38px; padding: 8px 8px; }

/* Popular cities: 5列 */
.Section.CityWrap { padding: 113px 0 90px; }
.Section.CityWrap::before { width: 740px; height: 740px; top: 95px; left: -232px; }
.Section.CityWrap::after { width: 740px; height: 740px; right: -232px; bottom: 112px; }
.CityCircleFlight { width: 740px; height: 740px; }
.CityCircleFlight--pink { top: 95px; left: -232px; }
.CityCircleFlight--cyan { right: -232px; bottom: 112px; width: 740px; height: 740px; }
.CityCircleFlightPlane { top: -22px; width: 58px; }
.CityScript { top: 21px; transform: translateX(250px) rotate(-6.15deg); }
.CityScriptPopular { font-size: 128px; }
.CityScriptCities { display: block; color: var(--c-cyan); opacity: .2; font-size: 96px; margin-left: 240px; }
.CityDecoImg--tower { width: 62px; top: 139px; left: 29%; }
.CityDecoImg--person { width: 70px; top: 262px; right: 24%; transform: rotate(10.83deg); }
.CityHeading { font-size: 40px; line-height: 52px; margin: 66px auto 12px; }
.CityWrap .SectionInner { max-width: 1451px; }
.CityWrap .SectionContent { margin-top: 0; padding: 32px 16px; }
.CitySubHeading { width: 100%; max-width: 1391px; margin-bottom: 16px; font-size: 36px; }
.CitySubHeading--other { margin-top: 48px; }
.App .CityGrid {
  grid-auto-flow: initial;
  grid-template-rows: initial;
  grid-auto-columns: initial;
  grid-template-columns: repeat(5, 259px);
  column-gap: 16px;
  row-gap: 32px;
  justify-content: center;
  box-sizing: border-box;
  max-width: 1391px;
  margin: 0 auto;
  padding: 8px 16px;
  overflow: visible;
}
.CityTile { width: 259px; height: 259px; }
.CityName { font-size: 30px; }
.App .CityOtherList { box-sizing: border-box; width: 1200px; max-width: 100%; justify-content: flex-start; gap: 32px; margin: 0 auto; padding: 16px 32px; }
.CityChip { width: 201px; height: 54px; min-height: 54px; border-radius: 8px; box-shadow: 4px 4px 0 var(--c-pink); padding: 0; font-size: 19px; }
.CityChip a { padding: 15px; }
@media (max-width: 1439px) {
  .App .CityGrid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .CityTile { width: auto; height: auto; }
  .App .CityOtherList { justify-content: center; }
}

/* Article grids: model course 4列 / hotel ranking 3列 */
.ArticleGrid { grid-template-columns: repeat(4, 1fr); gap: 20px; }
.HotelRankingWrap .ArticleGrid { grid-template-columns: repeat(2, minmax(0, 400px)); gap: 48px; justify-content: center; }
.RecommendHeading { font-size: 32px; }
.RecommendGrid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
.RecommendItem { min-height: 150px; }

/* About */
.Section.AboutWrap {
  padding-top: 110px;
}
.AboutWrap .SectionTitle {
  margin-bottom: 48px;
  font-size: 42px;
  line-height: 1.25;
  font-family: var(--font-base);
  font-weight: 900;
  letter-spacing: 0;
}
.AboutTitleScript {
  font-size: 94px;
}
.AboutDecoBalloon {
  top: 98px;
  right: calc(50% - 604px);
  width: 136px;
}
.AboutWrap .SectionInner {
  position: relative;
}
.AboutWrap .SectionInner::before {
  display: none;
}
/* ページ内ナビ（PC: 4カード横並び） */
.App ul.AboutNav {
  grid-template-columns: repeat(4, 270px);
  justify-content: center;
  align-items: center;
  width: 1198px;
  max-width: 100%;
  min-height: 404px;
  box-sizing: border-box;
  border-radius: 32px;
  padding: 28px;
  gap: 18px;
  margin: 0 auto 96px;
}
.NavCard {
  width: 270px;
  height: 348px;
  border-radius: 26px;
  padding: 24px 22px 34px;
  gap: 0;
  justify-content: center;
}
.NavCardImg {
  height: 162px;
  margin-bottom: 12px;
}
.NavCardTtl {
  min-height: 78px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-size: 24px;
  line-height: 1.42;
}
.NavCardTtlSm {
  font-size: 14px;
}
.NavCardChev {
  padding-top: 0;
}
.NavCardChev img {
  width: 30px;
}
.AboutPointIntro {
  min-height: 232px;
  margin: 48px auto;
  padding: 40px 64px;
  gap: 32px;
  border-radius: 14px;
  box-shadow: 16px 16px 0 var(--c-cyan);
}
.AboutPointIntroLogo {
  width: 143px;
}
.AboutPointIntroText {
  font-size: 40px;
  line-height: 1.45;
}
.SupportHeading {
  width: 778px;
  min-height: 0;
  margin: 58px auto 34px;
  padding: 29px;
  border-width: 3px;
  border-radius: 16px;
  box-shadow: 16px 16px 0 var(--c-cyan);
}
.SupportHeadingText {
  width: 714px;
  height: auto;
  line-height: normal;
}
.SupportHeadingText span:first-child {
  font-size: 30px;
}
.SupportHeadingText strong {
  font-size: 40px;
}
.SupportHeadingText span:last-child {
  font-size: 40px;
}
.SupportHeadingChar {
  left: 656px;
  top: 89px;
  right: auto;
  bottom: auto;
  width: 141px;
}
.TaskalIntro {
  width: 1198px;
  min-height: 504px;
  margin: 68px auto 70px;
  padding: 48px 32px;
  border-radius: 32px;
}
.TaskalIntroMain {
  flex-direction: row;
  justify-content: center;
  gap: 16px;
  padding: 32px;
}
.TaskalIntroDevice {
  flex: 0 0 auto;
  width: 320px;
}
.TaskalIntroText {
  flex: 1 1 auto;
  font-size: 26px;
  line-height: 45px;
}
.TaskalIntroNotes {
  gap: 10px;
  margin-top: 0;
  font-size: 20px;
  line-height: normal;
}
.SupportExamplesHtml {
  --support-side-bleed: max(0px, calc((100vw - 1440px) / 2));
  margin-top: 74px;
  margin-bottom: 58px;
}
.SupportStage {
  padding: 0;
}
.SupportStage + .SupportStage {
  margin-top: 105px;
}
.SupportStage--before {
  min-height: 826px;
}
.SupportStage--during {
  min-height: 1036px;
}
.SupportStage--after {
  min-height: 864px;
}
.SupportSidePill {
  width: calc(180px + var(--support-side-bleed));
  height: 148px;
  border-radius: 0;
}
.SupportSidePill--left {
  left: calc(-1 * var(--support-side-bleed));
  border-radius: 0 74px 74px 0;
}
.SupportSidePill--right {
  right: calc(-1 * var(--support-side-bleed));
  border-radius: 74px 0 0 74px;
}
.SupportExamplesKicker {
  margin: 0 0 24px;
  font-size: 30px;
}
.SupportStageHead {
  gap: 8px;
  margin-bottom: 83px;
}
.SupportStageHead h3 {
  font-size: 40px;
}
.SupportStageHead p {
  font-size: 30px;
}
.SupportCaseGrid {
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.SupportQuestion {
  width: 333px;
}
.SupportQuestionBadge {
  font-size: 17.174px;
}
.SupportQuestion p {
  font-size: 21.729px;
}
.SupportAnswer span {
  font-size: 16.851px;
}
.SupportAnswer strong {
  font-size: 30px;
}
.SupportMoreDetails {
  margin-top: 75px;
}
.SupportMoreLink {
  min-height: 106px;
  padding: 24px 32px;
  font-size: 28px;
}
.SupportMoreBody {
  padding: 36px 48px 42px;
}
.SupportMoreList {
  gap: 10px;
  font-size: 18px;
  line-height: 1.55;
}
.SupportAfterGrid {
  grid-template-columns: 1fr 507px;
  gap: 24px;
  justify-items: center;
}
.SupportScreen p {
  font-size: 30px;
}
.SupportAfterNote {
  font-size: 15px;
}
/* FAQ（PC） */
.FaqHeading {
  width: 778px;
  height: 157px;
  min-height: 0;
  margin: 140px auto 108px;
  padding: 29px;
  box-shadow: 16px 16px 0 var(--c-cyan);
}
.FaqHeadingTitle {
  width: 714px;
  font-size: 40px;
  line-height: 1.45;
}
.FaqSection { padding: 40px 48px; max-width: 1040px; margin: 36px auto 0; }
.FaqAccHead { padding: 22px 28px; font-size: 26px; }
.FaqAccToggle { width: 30px; height: 30px; }
.FaqAccToggle::before, .FaqAccToggle::after { width: 26px; }
.FaqAccBody { padding: 10px 30px 16px; }
.FaqQ, .FaqA { gap: 16px; }
.FaqA { padding-left: 44px; }
.FaqMark { width: 32px; height: 32px; font-size: 17px; }
.FaqTxt { font-size: 20px; }
.FaqAcc:first-of-type .FaqAccBody { padding-bottom: 32px; }
.FaqA .FaqTxt { color: var(--c-text); }
.FaqMore {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  background: var(--c-cyan);
  color: #fff !important;
  font-weight: 700;
  font-size: 18px;
  border-radius: 14px;
  padding: 16px 20px;
  max-width: 640px;
  margin: 36px auto 0;
}
.FaqChar { width: 328px; bottom: -54px; right: -196px; }
/* DPパックとは：Figma書き出し画像ブロック（PC版）。
   1440幅フレーム内の各ブロックを共通スケール（約0.75倍）で表示し、
   ブロック間で文字サイズが揃うよう実寸×0.75を max-width に設定して中央寄せ。 */
.AboutFig { margin: 28px auto; }
.AboutFig img { width: 100%; }

/* ============================================================
   DPパックとは：3つのPOINT（PC上書き）
   ============================================================ */
.Pt { max-width: 1198px; margin: 52px auto; padding: 80px 53px 48px; border-radius: 32px; }
.PtHead { justify-content: center; gap: 32px; margin-bottom: 36px; padding: 0; }
.PtBadge { width: 164px; height: 164px; }
.PtBadgeP { font-size: 30px; }
.PtBadgeN { font-size: 80px; }
.PtTitle { font-size: 36px; line-height: 1.45; }
.PtBox { width: 1027px; max-width: 100%; box-sizing: border-box; margin: 0 auto; padding: 46px 48px 42px; }
/* POINT1 PC */
.PtQa { padding: 12px 0 72px; }
.PtQa + .PtQa { border-top: 0; }
.PtQ { align-items: center; font-size: 28px; line-height: 1.42; gap: 28px; }
.PtQMark {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border: 2px solid var(--c-navy);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  font-weight: 700;
  color: var(--c-navy);
}
.PtSol { padding: 26px 34px; border-radius: 8px; margin-top: 40px; }
.PtSol p { font-size: 22px; line-height: 1.55; }
.PtNote { font-size: 15px; text-align: center; }
.Point1Section {
  min-height: 1885px;
  padding-top: 48px;
  padding-bottom: 48px;
  margin-bottom: 108px;
}
.Point1Section .PtHead {
  justify-content: flex-start;
  gap: 20px;
  width: 680px;
  height: 210px;
  margin: 0 0 10px 206px;
  padding: 28px 32px;
  box-sizing: border-box;
}
.Point1Section .PtTitle {
  font-size: 36px;
  line-height: 1.44;
}
.Point1Section .PtBox {
  width: 1027px;
  max-width: none;
  height: 1552px;
  margin-left: 32px;
  margin-right: 0;
  padding: 0;
}
.Point1Section .PtQa {
  position: absolute;
  z-index: 1;
  padding: 0;
}
.Point1Section .PtQa:nth-of-type(1) {
  top: 48px;
  left: 47px;
  width: 777px;
}
.Point1Section .PtQa:nth-of-type(2) {
  top: 517px;
  left: 47px;
  width: 931px;
}
.Point1Section .PtQa:nth-of-type(3) {
  top: 841px;
  left: 212px;
  width: 767px;
}
.Point1Section .PtQa:nth-of-type(4) {
  top: 1218px;
  left: 68px;
  width: 910px;
}
.Point1Section .PtQ {
  gap: 28px;
  font-size: 26px;
  line-height: 1.42;
}
.Point1Section .PtQMark {
  width: 32px;
  height: 32px;
  font-size: 19px;
  line-height: 1;
  color: var(--c-navy);
}
.Point1Section .PtQTxt {
  flex: 1 1 auto;
}
.Point1Section .PtSol {
  margin-top: 28px;
  padding: 22px 30px;
  border-radius: 8px;
}
.Point1Section .PtQa:not(:first-of-type) .PtSol {
  margin-top: 28px;
}
.Point1Section .PtSol p {
  font-size: 22px;
  line-height: 1.55;
}
.Point1Section .PtNote {
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
}
.Point1Section .PtQa:nth-of-type(2) .PtSol,
.Point1Section .PtQa:nth-of-type(4) .PtSol {
  padding-left: 34px;
  padding-right: 34px;
}
.Point1Section .PtQa:nth-of-type(3) .PtNote {
  padding-left: 48px;
}
/* POINT2 PC */
.PtLead { font-size: 20px; margin-bottom: 22px; }
.PtCircles { grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: none; }
.PtCircleBadge { width: 84px; height: 84px; font-size: 14px; top: 2px; }
.PtCircleQ { font-size: 15px; top: 96px; padding: 0 30px; }
.PtTaskal { flex-direction: row; align-items: center; gap: 22px; padding: 28px 32px; text-align: left; }
.PtTaskalPhone { flex: 0 0 auto; }
.PtTaskalPhone img { width: 116px; }
.PtTaskalCallout { flex: 0 0 28%; }
.PtTaskalBody { flex: 1 1 auto; font-size: 14px; }
.PtFurtherHead { font-size: 20px; }
.PtFurtherBox { font-size: 18px; padding: 18px 26px; }
#Support {
  min-height: 1600px;
  padding-top: 80px;
  padding-bottom: 48px;
  margin-bottom: 108px;
}
#Support .PtHead {
  justify-content: flex-start;
  gap: 18px;
  margin-bottom: 12px;
  padding-left: 147px;
}
#Support .PtBox {
  width: 1134px;
  max-width: none;
  min-height: 1270px;
  margin-left: -21px;
  margin-right: 0;
  padding: 50px 48px 44px;
}
#Support .PtLead {
  font-size: 22px;
  line-height: 1.55;
  margin: 0 0 96px;
}
#Support .PtCircles {
  width: 1092px;
  grid-template-columns: repeat(3, 326px);
  justify-content: center;
  gap: 57px;
  margin: 0 0 60px -27px;
}
#Support .PtCircle {
  width: 326px;
  height: 326px;
  aspect-ratio: auto;
  overflow: visible;
}
#Support .PtCircleBadge {
  top: -50px;
  width: 102px;
  height: 102px;
  font-size: 15px;
  line-height: 1.35;
}
#Support .PtCircleQ {
  top: 76px;
  padding: 0 32px;
  font-size: 18px;
  line-height: 1.5;
}
#Support .PtCircleImg {
  height: auto;
  max-width: none;
}
#Support .PtCircleImg--c1 {
  width: 256px;
  height: auto;
  aspect-ratio: auto;
  bottom: -4px;
}
#Support .PtCircleImg--c2 {
  width: 60px;
  height: auto;
  aspect-ratio: auto;
  bottom: 10px;
}
#Support .PtCircleImg--c3 {
  width: 122px;
  height: auto;
  aspect-ratio: auto;
  bottom: -10px;
}
#Support .PtTaskal {
  box-sizing: border-box;
  position: relative;
  gap: 32px;
  height: 306px;
  min-height: 0;
  padding: 36px 32px;
  border-radius: 8px;
}
#Support .PtTaskalPhone {
  box-sizing: border-box;
  flex: 0 0 444px;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 36px;
  border-radius: 48px;
  background: var(--c-yellow);
}
#Support .PtTaskalPhone img {
  width: 128px;
  height: 256px;
  aspect-ratio: 244 / 488;
}
#Support .PtTaskalCallout {
  flex: 0 0 0;
  width: 0;
  min-width: 0;
}
#Support .PtTaskalHead,
#Support .PtTaskalLead {
  position: absolute;
  left: 205px;
  width: 260px;
  text-align: center;
}
#Support .PtTaskalHead {
  top: 60px;
  font-size: 26px;
  line-height: 1.25;
}
#Support .PtTaskalLead {
  top: 108px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin: 0;
  color: #000;
  font-weight: 700;
  line-height: 1.2;
}
#Support .PtTaskalLeadSmall {
  display: block;
  font-size: 18px;
  line-height: 1.18;
}
#Support .PtTaskalName {
  display: block;
  margin-top: 4px;
  color: var(--c-navy);
  font-size: 34px;
  line-height: 1;
}
#Support .PtTaskalKana {
  display: block;
  color: var(--c-navy);
  font-size: 18px;
  line-height: 1.15;
}
#Support .PtTaskalSupport {
  display: block;
  margin-top: 4px;
  color: #000;
  font-size: 18px;
  line-height: 1.18;
}
#Support .PtTaskalBody {
  flex: 1 1 auto;
  padding: 0;
  background: transparent;
  border-radius: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.65;
}
#Support .PtTaskalBody strong {
  font-size: 20px;
  color: var(--c-text);
}
#Support .PtTaskalLink {
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.45;
}
#Support .PtFurther {
  margin-top: 48px;
}
#Support .PtFurtherHead {
  font-size: 28px;
  margin-bottom: 18px;
}
#Support .PtFurtherBox {
  border-radius: 8px;
  padding: 22px 44px;
  font-size: 24px;
  line-height: 1.6;
}
#Support .PtFurther .PtNote {
  margin-top: 22px;
}
/* POINT3 PC */
#Point3 {
  min-height: 804px;
  padding-top: 70px;
  padding-bottom: 58px;
  margin-bottom: 160px;
}
#Point3 .PtHead {
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 24px;
}
#Point3 .PtTitle {
  font-size: 36px;
  line-height: 1.45;
  white-space: nowrap;
}
#Point3 .PtBox--p3 {
  display: block;
  width: 100%;
  max-width: none;
  min-height: 469px;
  margin-left: 0;
  margin-right: 0;
  padding: 58px 218px 38px 52px;
}
#Point3 .PtP3Txt {
  position: relative;
  z-index: 2;
  width: 720px;
}
#Point3 .PtP3Para {
  margin: 0 0 28px;
  color: var(--c-navy);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
}
#Point3 .PtNote {
  margin-top: 52px;
  color: #000;
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}
#Point3 .PtP3Decs {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  pointer-events: none;
}
#Point3 .PtP3Dec {
  position: absolute;
  display: block;
  max-width: none;
  height: auto;
}
#Point3 .PtP3Dec--cal {
  width: 100px;
  height: auto;
  aspect-ratio: auto;
  top: 2px;
  left: 954px;
}
#Point3 .PtP3Dec--new {
  width: 242px;
  height: auto;
  aspect-ratio: auto;
  top: 76px;
  left: 895px;
}
#Point3 .PtP3Dec--woman {
  width: 440px;
  height: auto;
  aspect-ratio: auto;
  top: 296px;
  left: 650px;
}
/* POINT1：本文は左揃え・一定幅で揃える（Figma準拠／ジグザグはやめる）。左右の余白に装飾を配置 */
.PtBox .PtQa { max-width: none; margin-left: 0; margin-right: 0; }
/* 装飾位置（PC）。POINT1はボックス内（白の上・テキストの下）、ハートはブロック背面 */
.PtDec--p1planes { display: block; width: 326px; top: -115px; left: -139px; }
.PtDec--p1person { display: block; width: 104px; top: 531px; left: -75px; }
.PtDec--p1devices { display: block; width: 229px; top: 787px; left: 894px; right: auto; }
.PtDec--p1kayak { display: block; width: 255px; top: 1524px; right: auto; left: 513px; }
.PtDec--p2heart { display: block; width: 240px; top: -8px; right: -6px; }
.Point1Section .PtDec--p1planes { width: 326px; top: 165px; left: -69px; z-index: 100; }
.Point1Section .PtDec--p1person { width: 83px; top: 849px; left: 28px; z-index: 100; }
.Point1Section .PtDec--p1laptop { display: block; width: 227px; top: 310px; right: 16px; z-index: 100; }
.Point1Section .PtDec--p1phoneperson { display: block; width: 202px; top: 1126px; left: -47px; z-index: 100; }
.Point1Section .PtDec--p1devices { width: 229px; top: 1037px; left: 1004px; right: auto; z-index: 100; }
.Point1Section .PtDec--p1kayak { width: 255px; top: 1804px; left: 683px; right: auto; z-index: 100; }
#Support .PtDec--p2heart { width: 500px; height: auto; aspect-ratio: auto; top: -12px; right: auto; left: 855px; z-index: 100; }
#Support .PtDec--p2heart img { height: auto; object-fit: contain; }
#Support .PtDec--p2luggage { display: block; width: 184px; top: auto; bottom: 0; left: -70px; z-index: 3; }

.FlowSection {
  width: 1198px;
  margin-top: 74px;
  margin-bottom: 64px;
}
.FlowBg--cyan {
  display: none;
  right: -150px;
  top: -160px;
  width: 360px;
  height: 590px;
}
.FlowBg--pink {
  display: none;
  left: -350px;
  top: 675px;
  width: 390px;
  height: 540px;
}
.FlowDeco--planes {
  left: 29px;
  top: 191px;
  width: 240px;
}
.FlowDeco--person {
  right: 177px;
  top: 87px;
  width: 128px;
}
.FlowHeading {
  width: 778px;
  min-height: 0;
  margin-top: 108px;
  margin-bottom: 108px;
  padding: 29px;
  box-shadow: 16px 16px 0 var(--c-cyan);
}
.FlowHeading h2 {
  width: 714px;
  line-height: normal;
}
.FlowHeading strong {
  font-size: 40px;
}
.FlowHeading em {
  font-size: 40px;
}
.FlowTimeline {
  width: 1020px;
  gap: 10px;
  padding: 10px;
}
.FlowTimeline::before {
  left: 73px;
  top: 72px;
  bottom: 80px;
  width: 6px;
}
.FlowAccHead {
  grid-template-columns: 86px minmax(0, 1fr) 160px 34px;
  min-height: 73px;
  padding: 8px 16px;
  gap: 24px;
}
.FlowBadge {
  width: 76px;
  height: 76px;
  margin-left: -4px;
}
.FlowBadge span {
  font-size: 15px;
}
.FlowBadge b {
  font-size: 42px;
}
.FlowAccTitle {
  font-size: 24px;
}
.FlowIcon {
  max-width: 129px;
  max-height: 92px;
}
.App img.FlowIcon {
  max-width: 79px;
  max-height: 62px;
}
.FlowToggle {
  width: 34px;
  height: 34px;
}
.FlowAccBody {
  width: 864px;
  box-sizing: border-box;
  margin: 0 0 0 auto;
  padding: 24px;
  font-size: 16px;
}
.FlowLead {
  font-size: 20px;
}

/* PC section spacing / article overrides */
.SectionLead {
  text-align: center;
  color: var(--c-text-sub);
  margin: 38px 0 54px;
}
.MoreBtnWrap {
  text-align: center;
  margin-top: 58px;
}
.MoreBtn {
  display: inline-block;
  min-width: 220px;
  padding: 14px 32px;
  background: var(--c-cyan);
  color: #fff !important;
  font-weight: 700;
  border-radius: 999px;
  box-shadow: 0 3px 0 var(--c-cyan-deep);
}
.Section.HotelRankingWrap {
  background: #fff;
  position: relative;
  z-index: 1;
}
.Section.ModelCourseWrap {
  background: var(--c-yellow);
  position: relative;
  padding-top: 200px;
}
section#ModelCourse::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  top: -520px;
  width: 2500px;
  max-width: none;
  min-width: 118vw;
  height: 630px;
  border-radius: 50%;
  background: #fff;
  transform: translateX(-50%);
  pointer-events: none;
}
.Section.AboutWrap::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 20px;
  width: 2500px;
  max-width: none;
  min-width: 118vw;
  height: 530px;
  border-radius: 50%;
  background: #fff;
  transform: translateX(-50%);
  pointer-events: none;
}
.Footnote {
  font-size: 12px;
  color: var(--c-text-sub);
  margin-top: 24px;
  text-align: center;
}

/* Contact */
.ContactWrap .SectionInner { max-width: 1170px; }
.ContactHeading { font-size: 30px; }
.ContactSubHeading { font-size: 20px; }

/*copyright*/
.copyright {
	position:absolute;
	left: 3%;
	bottom: 1%;
	font-size:12px;
}