@charset "UTF-8";
/* Color Palette */
/* Padding */
/* Heder Space */
/* Wrap */
/* Padding */
:root {
  /* デフォルト */
  --large: 8rem;
  --medium: 3rem;
  --small: 1rem;
  --section-padding: 8rem 0; }

@media screen and (max-width: 880px) {
  :root {
    --section-padding: 5rem 0; } }
@media screen and (max-width: 480px) {
  :root {
    --large: 3rem;
    --medium: 2rem;
    --small: .5rem;
    --section-padding: 3rem 0; } }
.max-img {
  width: 100%;
  height: auto; }

h2 {
  font-size: clamp(18px, 8vw, 40px); }
  h2 p {
    font-size: 50%; }

.sm {
  font-weight: normal;
  font-size: 50%; }

/* ------------------
MAIN VISUAL 
------------------*/
.mv {
  width: 100%;
  height: calc(100vh - 8rem);
  min-height: 680px;
  position: relative; }
  @media (max-width: 480px) {
    .mv {
      min-height: auto;
      height: 109vw; } }
  .mv .ttl {
    position: absolute;
    top: calc(50% + 45px);
    left: 50%;
    transform: translate(-50%, -50%); }
    @media (max-width: 480px) {
      .mv .ttl {
        top: auto;
        bottom: 2rem;
        transform: translateX(-50%); } }
    .mv .ttl h1 {
      margin: 0 0 1rem;
      font-weight: 500;
      text-align: left;
      font-size: clamp(60px, 18vw, 170px);
      line-height: 1;
      letter-spacing: -.05em; }
    .mv .ttl p {
      font-size: clamp(18px, 5.5vw, 30px);
      font-weight: 600;
      letter-spacing: .2em; }
  .mv video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center; }
    @media (max-width: 480px) {
      .mv video {
        height: 110vw; } }
  .mv .news-bnr {
    position: absolute;
    z-index: 2;
    bottom: 2rem;
    right: 5%;
    text-decoration: none;
    background: #ffdc8c;
    border-radius: 4px;
    display: flex;
    align-items: center;
    color: #000;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
    opacity: 0;
    animation: .5s slideIn 1s ease-in-out forwards; }
    @media (max-width: 880px) {
      .mv .news-bnr {
        width: 90%;
        max-width: 388px;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        animation: none;
        opacity: 1; } }
    .mv .news-bnr__img {
      width: 140px; }
      @media (max-width: 480px) {
        .mv .news-bnr__img {
          width: 30%; } }
      .mv .news-bnr__img img {
        border-radius: 4px 0 0 4px; }
    .mv .news-bnr__txt {
      margin: 0 4rem 0 2rem;
      font-weight: 600;
      font-feature-settings: 'palt';
      font-size: clamp(12px, 4vw, 16px); }
      .mv .news-bnr__txt span {
        font-weight: normal;
        font-size: 80%; }
      @media (max-width: 480px) {
        .mv .news-bnr__txt {
          margin: 0 4vw; } }
    .mv .news-bnr:after {
      content: '\f054';
      font-family: "Font Awesome 5 Free";
      font-weight: 900;
      position: absolute;
      top: 50%;
      right: 1.6rem;
      transform: translateY(-50%);
      font-size: 80%; }
    .mv .news-bnr__catch {
      position: absolute;
      top: -2px;
      left: -2px; }

/* ------------------
INTRODUCTION
------------------*/
.intro {
  padding: 10rem 0; }
  @media (max-width: 480px) {
    .intro {
      padding: 3rem 0; } }
  .intro .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap; }
  .intro__txt {
    width: 45%;
    font-weight: 500; }
    .intro__txt p {
      margin: 2rem 0;
      font-size: clamp(16px, 1.6vw, 20px);
      letter-spacing: .1em;
      line-height: 1.8; }
      @media (max-width: 480px) {
        .intro__txt p {
          margin: 0 0 2rem;
          letter-spacing: .04em; } }
    @media (max-width: 880px) {
      .intro__txt {
        width: 100%; } }
    .intro__txt-btn {
      display: flex;
      justify-content: center;
      flex-wrap: wrap; }
      .intro__txt-btn a:first-child {
        width: 100%;
        max-width: 100%; }
      .intro__txt-btn a {
        margin: 1rem;
        width: calc(50% - 2rem);
        padding: 1.4rem 3rem; }
        @media (max-width: 480px) {
          .intro__txt-btn a {
            width: 100%; } }
  .intro__img {
    width: 40%; }
    @media (max-width: 880px) {
      .intro__img {
        margin: var(--medium) 0 0;
        width: 100%; }
        .intro__img img {
          height: 50vw;
          max-height: 400px;
          object-fit: cover; } }

/* ------------------
グアムファミリーページへのリンク
------------------*/
.guam-family {
  margin: 8rem 0 4rem;
  border-radius: 10px;
  display: flex;
  height: 200px;
  text-decoration: none;
  box-shadow: 0 0px 20px rgba(0, 0, 0, 0.3); }
  @media (max-width: 880px) {
    .guam-family {
      margin: 5rem 0 1.5rem; } }
  @media (max-width: 640px) {
    .guam-family {
      margin: 4rem 0 0; } }
  .guam-family .banner-text, .guam-family .banner-image {
    width: 50%;
    overflow: hidden;
    position: relative; }
    .guam-family .banner-text img, .guam-family .banner-image img {
      display: block;
      width: 100%;
      height: 100%;
      border-radius: 0 10px 10px 0;
      object-fit: cover;
      object-position: right bottom; }
      @media (max-width: 880px) {
        .guam-family .banner-text img, .guam-family .banner-image img {
          object-position: right 20% bottom 50%; } }
      .guam-family .banner-text img.guampay, .guam-family .banner-image img.guampay {
        object-position: left top; }
    .guam-family .banner-text .logo, .guam-family .banner-image .logo {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 30%; }
      .guam-family .banner-text .logo img, .guam-family .banner-image .logo img {
        width: 100%;
        height: auto; }
      @media (max-width: 480px) {
        .guam-family .banner-text .logo, .guam-family .banner-image .logo {
          width: 80%; } }
    .guam-family .banner-text .credit, .guam-family .banner-image .credit {
      position: absolute;
      bottom: 3%;
      right: 3%; }
      .guam-family .banner-text .credit > p, .guam-family .banner-image .credit > p {
        font-size: 50%;
        display: inline-block;
        text-align: right; }
        @media (max-width: 480px) {
          .guam-family .banner-text .credit > p, .guam-family .banner-image .credit > p {
            font-size: 8px; } }
  .guam-family .banner-text {
    border-radius: 10px 0 0 10px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3rem 4rem 4rem; }
    @media (max-width: 880px) {
      .guam-family .banner-text {
        padding: 2rem 2rem 3rem; } }
    .guam-family .banner-text p {
      display: inline-block; }
      @media (max-width: 880px) {
        .guam-family .banner-text p {
          font-size: 80%; } }
      @media (max-width: 480px) {
        .guam-family .banner-text p {
          font-size: 100%; } }
    .guam-family .banner-text p.main-title {
      font-size: 230%; }
      @media (max-width: 880px) {
        .guam-family .banner-text p.main-title {
          font-size: 200%; } }
      @media (max-width: 640px) {
        .guam-family .banner-text p.main-title {
          font-size: 140%; } }
      @media (max-width: 480px) {
        .guam-family .banner-text p.main-title {
          font-size: 150%;
          margin: .5rem 0; } }
    .guam-family .banner-text .btn {
      border: 1px solid #ffffff;
      display: inline-block;
      width: auto;
      align-self: flex-start;
      margin-top: 1rem;
      padding: 1rem 2rem;
      line-height: 1.5; }
      @media (max-width: 640px) {
        .guam-family .banner-text .btn {
          font-size: 80%; } }
  @media (max-width: 1200px) {
    .guam-family .banner-text {
      width: 60%; }
    .guam-family .banner-image {
      width: 40%; } }
  @media (max-width: 640px) {
    .guam-family .banner-text {
      width: 70%; }
    .guam-family .banner-image {
      width: 30%; } }

/* ------------------
羽田線限定ページへのリンク
------------------*/
.swiper-loop-wrapper {
  position: relative;
  padding: 1rem 0; }
  .swiper-loop-wrapper .wrap {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    height: 100%; }
    @media (max-width: 880px) {
      .swiper-loop-wrapper .wrap {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        height: auto; } }
  .swiper-loop-wrapper__ttl-block {
    width: 40%;
    min-width: 450px;
    padding: var(--medium);
    margin-left: auto;
    background: #ffffff;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    box-sizing: border-box; }
    @media (max-width: 880px) {
      .swiper-loop-wrapper__ttl-block {
        width: 100%;
        min-width: 100%; } }
    .swiper-loop-wrapper__ttl-block h2 {
      font-size: clamp(20px, 3vw, 30px);
      margin: 2rem 0; }
    @media (max-width: 480px) {
      .swiper-loop-wrapper__ttl-block .icon {
        width: 40px;
        height: auto; } }

.swiper-loop, .swiper-loop-reverse {
  overflow: hidden; }
  .swiper-loop .swiper-wrapper, .swiper-loop-reverse .swiper-wrapper {
    transition-timing-function: linear; }
    .swiper-loop .swiper-wrapper .swiper-slide, .swiper-loop-reverse .swiper-wrapper .swiper-slide {
      width: auto;
      height: 100%;
      max-height: 600px; }
      @media (max-width: 880px) {
        .swiper-loop .swiper-wrapper .swiper-slide, .swiper-loop-reverse .swiper-wrapper .swiper-slide {
          max-height: 200px; } }
      .swiper-loop .swiper-wrapper .swiper-slide img, .swiper-loop-reverse .swiper-wrapper .swiper-slide img {
        width: auto;
        height: 600px; }
        @media (max-width: 880px) {
          .swiper-loop .swiper-wrapper .swiper-slide img, .swiper-loop-reverse .swiper-wrapper .swiper-slide img {
            max-height: 200px; } }

/* ------------------
TRAVEL PLAN
------------------*/
.tab-btn-fixed {
  display: none;
  position: fixed;
  left: 0;
  top: 66px;
  z-index: 10;
  width: 100%; }
  @media (max-width: 480px) {
    .tab-btn-fixed {
      top: 52px; } }
  .tab-btn-fixed .tab-btn {
    padding: 2rem 0;
    justify-content: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden; }
    @media (max-width: 880px) {
      .tab-btn-fixed .tab-btn {
        justify-content: flex-start; } }
    @media (max-width: 480px) {
      .tab-btn-fixed .tab-btn {
        padding: 1rem 0; } }
    @media (max-width: 880px) {
      .tab-btn-fixed .tab-btn.wrap {
        width: 100%; } }
    .tab-btn-fixed .tab-btn .tab {
      width: 20%;
      min-width: 260px;
      padding: .5rem;
      opacity: .6;
      margin: 0 1rem; }
      @media (max-width: 480px) {
        .tab-btn-fixed .tab-btn .tab {
          min-width: 200px; } }
      .tab-btn-fixed .tab-btn .tab .icon {
        width: 40px;
        height: 40px; }
        @media (max-width: 480px) {
          .tab-btn-fixed .tab-btn .tab .icon {
            margin-right: 1rem; } }
      .tab-btn-fixed .tab-btn .tab .txt {
        font-size: clamp(12px, 1vw, 18px); }
        .tab-btn-fixed .tab-btn .tab .txt p:first-child {
          display: none; }
    .tab-btn-fixed .tab-btn .active-tab {
      opacity: 1; }

.tab-btn {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center; }
  @media (max-width: 880px) {
    .tab-btn {
      justify-content: center; } }
  .tab-btn a {
    color: #000; }
  .tab-btn .tab {
    width: 30%;
    display: flex;
    align-items: center;
    background: #ffffff;
    border-radius: 55px;
    padding: 1rem;
    box-sizing: border-box; }
    @media (max-width: 880px) {
      .tab-btn .tab {
        width: 90%;
        flex-wrap: wrap;
        margin: 1rem 0; } }
    .tab-btn .tab .icon {
      width: 100px;
      height: 100px;
      object-fit: cover;
      border-radius: 50%;
      margin-right: 2rem; }
      @media screen and (max-width: 1080px) {
        .tab-btn .tab .icon {
          width: 50px;
          height: 50px; } }
    .tab-btn .tab .txt {
      font-weight: 500; }
      .tab-btn .tab .txt p:last-child {
        font-size: 120%; }

a.active-tab {
  box-shadow: 0 0 0 3px #1414d2;
  animation: scale-anim 1s ease-in-out infinite;
  position: relative;
  z-index: 10;
  border-radius: 4px;
  color: #1414d2; }

.plan {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap; }
  .plan h2 {
    width: 100%;
    color: #ffffff;
    margin: 0 0 var(--medium); }
    @media (max-width: 880px) {
      .plan h2 {
        text-align: center; } }
  .plan-tab {
    width: 100%;
    top: 0;
    cursor: pointer;
    z-index: 10;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: var(--large) 0;
    background-position: center;
    background-size: cover; }
    @media (max-width: 480px) {
      .plan-tab {
        height: auto;
        overflow: auto; } }
    .plan-tab .bg-rainbow {
      background: url("../img/common/bg_rainbow_01.jpg") no-repeat center/cover;
      margin: 0 !important;
      padding: 2rem 0; }
    .plan-tab .btn-wrap {
      margin: 1rem auto;
      display: flex;
      justify-content: space-between;
      padding: 1rem 2rem;
      position: relative; }
      .plan-tab .btn-wrap:before {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: 0;
        width: 100%;
        height: 1px;
        background: #d7d7d4; }
      .plan-tab .btn-wrap button {
        font-size: clamp(12px, 3.3vw, 16px);
        color: #d7d7d4;
        background-color: transparent;
        border: none;
        cursor: pointer;
        outline: none;
        padding: 0;
        appearance: none;
        font-weight: bold;
        transition: .3s; }
      .plan-tab .btn-wrap .filter-button.active {
        color: #695fe6;
        position: relative; }
        .plan-tab .btn-wrap .filter-button.active:after {
          content: '';
          position: absolute;
          bottom: -1rem;
          left: 50%;
          transform: translateX(-50%);
          width: 100%;
          height: 3px;
          background: #695fe6; }
    @media screen and (max-width: 1080px) {
      .plan-tab {
        position: static;
        width: 100%;
        display: block;
        height: auto; } }
    .plan-tab__wrap {
      width: 100%; }
    .plan-tab .note {
      padding: 0 2rem 2rem;
      color: #000; }
  .plan-contents {
    width: 100%; }
    @media screen and (max-width: 1080px) {
      .plan-contents {
        width: 100%; } }
    .plan-contents .tab-content {
      display: none;
      position: relative;
      padding: 0 0 1rem; }
      .plan-contents .tab-content:before {
        content: '';
        position: absolute;
        width: 80%;
        max-width: 1380px;
        height: calc(100% - 3rem);
        top: 1rem;
        left: 50%;
        transform: translateX(-50%);
        border-left: dashed 2px #1414d2;
        z-index: 1; }
        @media (max-width: 480px) {
          .plan-contents .tab-content:before {
            width: 90%; } }
      .plan-contents .tab-content .btn {
        margin: 2rem 0 0;
        line-height: 1.2; }
      .plan-contents .tab-content__mv {
        padding: var(--large) 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 90%;
        max-width: 1380px;
        margin: auto;
        position: relative;
        z-index: 1; }
        @media (max-width: 880px) {
          .plan-contents .tab-content__mv {
            flex-wrap: wrap; } }
        .plan-contents .tab-content__mv h3 {
          width: calc(40% - 2rem);
          font-size: clamp(20px, 7vw, 50px); }
          @media (max-width: 880px) {
            .plan-contents .tab-content__mv h3 {
              width: 100%;
              text-align: center;
              margin: 0 0 var(--medium); } }
          .plan-contents .tab-content__mv h3 p {
            font-size: 50%; }
        .plan-contents .tab-content__mv img {
          width: 60%;
          height: auto; }
          @media (max-width: 880px) {
            .plan-contents .tab-content__mv img {
              width: 100%; } }
      .plan-contents .tab-content__1row--txt-only, .plan-contents .tab-content__2rows, .plan-contents .tab-content__link-card, .plan-contents .tab-content__price-card, .plan-contents .tab-content__note, .plan-contents .tab-content__separator {
        width: 80%;
        max-width: 1380px;
        margin: 4rem auto;
        position: relative;
        z-index: 1;
        font-size: clamp(13px, 3.4vw, 16px); }
        @media (max-width: 480px) {
          .plan-contents .tab-content__1row--txt-only, .plan-contents .tab-content__2rows, .plan-contents .tab-content__link-card, .plan-contents .tab-content__price-card, .plan-contents .tab-content__note, .plan-contents .tab-content__separator {
            margin: 3rem auto; }
            .plan-contents .tab-content__1row--txt-only .sp-vertical, .plan-contents .tab-content__2rows .sp-vertical, .plan-contents .tab-content__link-card .sp-vertical, .plan-contents .tab-content__price-card .sp-vertical, .plan-contents .tab-content__note .sp-vertical, .plan-contents .tab-content__separator .sp-vertical {
              height: 55vw;
              object-fit: cover;
              object-position: center; } }
        @media (max-width: 480px) {
          .plan-contents .tab-content__1row--txt-only, .plan-contents .tab-content__2rows, .plan-contents .tab-content__link-card, .plan-contents .tab-content__price-card, .plan-contents .tab-content__note, .plan-contents .tab-content__separator {
            width: 90%; } }
      .plan-contents .tab-content__1row p.day, .plan-contents .tab-content__1row--txt-only p.day, .plan-contents .tab-content__2rows p.day, .plan-contents .tab-content__link-card p.day, .plan-contents .tab-content__separator p.day {
        position: relative;
        font-size: clamp(24px, 6vw, 34px);
        font-weight: 600;
        margin: 0 0 1rem; }
        @media (max-width: 480px) {
          .plan-contents .tab-content__1row p.day, .plan-contents .tab-content__1row--txt-only p.day, .plan-contents .tab-content__2rows p.day, .plan-contents .tab-content__link-card p.day, .plan-contents .tab-content__separator p.day {
            margin: 0; } }
      .plan-contents .tab-content__1row p.add-icon, .plan-contents .tab-content__1row--txt-only p.add-icon, .plan-contents .tab-content__2rows p.add-icon, .plan-contents .tab-content__link-card p.add-icon, .plan-contents .tab-content__separator p.add-icon {
        position: relative; }
        .plan-contents .tab-content__1row p.add-icon:before, .plan-contents .tab-content__1row--txt-only p.add-icon:before, .plan-contents .tab-content__2rows p.add-icon:before, .plan-contents .tab-content__link-card p.add-icon:before, .plan-contents .tab-content__separator p.add-icon:before {
          content: '';
          position: absolute;
          left: -64px;
          top: 50%;
          transform: translateY(-50%);
          width: 48px;
          height: 48px; }
          @media (max-width: 880px) {
            .plan-contents .tab-content__1row p.add-icon:before, .plan-contents .tab-content__1row--txt-only p.add-icon:before, .plan-contents .tab-content__2rows p.add-icon:before, .plan-contents .tab-content__link-card p.add-icon:before, .plan-contents .tab-content__separator p.add-icon:before {
              left: -29px;
              width: 24px;
              height: 24px; } }
      .plan-contents .tab-content__1row p.airplane:before, .plan-contents .tab-content__1row--txt-only p.airplane:before, .plan-contents .tab-content__2rows p.airplane:before, .plan-contents .tab-content__link-card p.airplane:before, .plan-contents .tab-content__separator p.airplane:before {
        background: url("../img/common/icon_airplane.svg") no-repeat center/contain; }
      .plan-contents .tab-content__1row p.gift:before, .plan-contents .tab-content__1row--txt-only p.gift:before, .plan-contents .tab-content__2rows p.gift:before, .plan-contents .tab-content__link-card p.gift:before, .plan-contents .tab-content__separator p.gift:before {
        background: url("../img/common/icon_gift_united-blue-circle.svg") no-repeat center/contain; }
      .plan-contents .tab-content__1row p.circle:before, .plan-contents .tab-content__1row--txt-only p.circle:before, .plan-contents .tab-content__2rows p.circle:before, .plan-contents .tab-content__link-card p.circle:before, .plan-contents .tab-content__separator p.circle:before {
        background: #1414d2;
        border-radius: 50%;
        transform: scale(0.2) translateY(-50%);
        transform-origin: top; }
        @media (max-width: 880px) {
          .plan-contents .tab-content__1row p.circle:before, .plan-contents .tab-content__1row--txt-only p.circle:before, .plan-contents .tab-content__2rows p.circle:before, .plan-contents .tab-content__link-card p.circle:before, .plan-contents .tab-content__separator p.circle:before {
            transform: scale(0.35) translateY(-50%); } }
      .plan-contents .tab-content__1row p.time, .plan-contents .tab-content__1row--txt-only p.time, .plan-contents .tab-content__2rows p.time, .plan-contents .tab-content__link-card p.time, .plan-contents .tab-content__separator p.time {
        margin: 1rem 0;
        border-top: solid 1px;
        border-bottom: solid 1px;
        display: inline-block;
        font-feature-settings: 'palt';
        font-weight: 700;
        font-size: clamp(14px, 4.6vw, 18px);
        position: relative; }
      .plan-contents .tab-content__1row p.heading, .plan-contents .tab-content__1row--txt-only p.heading, .plan-contents .tab-content__2rows p.heading, .plan-contents .tab-content__link-card p.heading, .plan-contents .tab-content__separator p.heading {
        font-size: clamp(14px, 4vw, 26px) !important;
        font-weight: 500;
        margin: 2rem 0;
        border: none !important; }
        @media (max-width: 480px) {
          .plan-contents .tab-content__1row p.heading, .plan-contents .tab-content__1row--txt-only p.heading, .plan-contents .tab-content__2rows p.heading, .plan-contents .tab-content__link-card p.heading, .plan-contents .tab-content__separator p.heading {
            margin: .5rem 0; } }
        .plan-contents .tab-content__1row p.heading span, .plan-contents .tab-content__1row--txt-only p.heading span, .plan-contents .tab-content__2rows p.heading span, .plan-contents .tab-content__link-card p.heading span, .plan-contents .tab-content__separator p.heading span {
          font-weight: 700;
          color: #1414d2; }
      .plan-contents .tab-content__1row p.hukidashi, .plan-contents .tab-content__1row--txt-only p.hukidashi, .plan-contents .tab-content__2rows p.hukidashi, .plan-contents .tab-content__link-card p.hukidashi, .plan-contents .tab-content__separator p.hukidashi {
        color: #1414d2;
        display: inline-block;
        margin: 2rem auto 0;
        font-size: clamp(18px, 5vw, 26px);
        border: solid 1px;
        border-radius: 2rem;
        padding: 1rem 2rem;
        box-sizing: border-box;
        position: relative; }
        .plan-contents .tab-content__1row p.hukidashi:after, .plan-contents .tab-content__1row--txt-only p.hukidashi:after, .plan-contents .tab-content__2rows p.hukidashi:after, .plan-contents .tab-content__link-card p.hukidashi:after, .plan-contents .tab-content__separator p.hukidashi:after {
          content: '';
          position: absolute;
          background: #ffffff;
          left: 50%;
          bottom: -.7rem;
          width: 1.4rem;
          height: 1.4rem;
          border-right: solid 1px;
          border-bottom: solid 1px;
          transform: translateX(-50%) rotate(45deg); }
      .plan-contents .tab-content__separator {
        padding-left: 4rem;
        box-sizing: border-box; }
        @media (max-width: 880px) {
          .plan-contents .tab-content__separator {
            padding-left: 1.7rem; } }
        .plan-contents .tab-content__separator .btn {
          margin: 0; }
      .plan-contents .tab-content__1row {
        position: relative;
        width: 100%;
        height: 60vw;
        max-height: 600px;
        margin: auto;
        background-size: auto 100%;
        background-repeat: no-repeat;
        background-position: center;
        background-color: #1414d2;
        z-index: 0; }
        .plan-contents .tab-content__1row .txt {
          width: 80%;
          max-width: 1380px;
          margin: 0 auto;
          padding: var(--medium) 4rem;
          box-sizing: border-box;
          position: relative;
          z-index: 3;
          box-sizing: border-box; }
          @media (max-width: 880px) {
            .plan-contents .tab-content__1row .txt {
              padding: 1.7rem; } }
          @media (max-width: 480px) {
            .plan-contents .tab-content__1row .txt {
              padding: 1rem calc(1.7rem + 5%);
              width: 100%; } }
        .plan-contents .tab-content__1row--txt-only {
          border: solid 1px;
          padding: 2rem;
          background: #276ef1;
          box-sizing: border-box; }
        .plan-contents .tab-content__1row-txt {
          padding: 1rem 0; }
        .plan-contents .tab-content__1row.m-0 {
          margin: auto; }
        .plan-contents .tab-content__1row .medium-photo {
          width: 70%;
          margin: 0 0 0 auto; }
          .plan-contents .tab-content__1row .medium-photo p {
            font-size: unset !important;
            font-weight: normal; }
      .plan-contents .tab-content__2rows {
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: none;
        flex-direction: row-reverse; }
        .plan-contents .tab-content__2rows .slider-wrapper {
          width: 46%; }
        @media (max-width: 880px) {
          .plan-contents .tab-content__2rows {
            flex-wrap: wrap;
            flex-direction: column-reverse; } }
        .plan-contents .tab-content__2rows .pic {
          width: 46%; }
          @media (max-width: 880px) {
            .plan-contents .tab-content__2rows .pic {
              width: 100%;
              margin: 2rem 0 0;
              padding-left: 2rem;
              box-sizing: border-box; } }
        @media (max-width: 880px) {
          .plan-contents .tab-content__2rows .slider-wrapper {
            width: 100%;
            margin: 1rem 0 0;
            padding-left: 1.7rem;
            box-sizing: border-box; } }
        .plan-contents .tab-content__2rows .txt {
          width: 46%;
          padding-left: 4rem;
          box-sizing: border-box; }
          @media (max-width: 880px) {
            .plan-contents .tab-content__2rows .txt {
              width: 100%;
              padding-left: 1.7rem; } }
        .plan-contents .tab-content__2rows.is-swiper img {
          width: 100%; }
        .plan-contents .tab-content__2rows:last-child {
          margin: 3rem auto 0; }
      .plan-contents .tab-content__bnr-wrap {
        position: relative;
        z-index: 2; }
        .plan-contents .tab-content__bnr-wrap .wrap {
          width: 80%;
          box-sizing: border-box;
          margin: var(--medium) auto;
          padding-left: 4rem; }
          @media (max-width: 880px) {
            .plan-contents .tab-content__bnr-wrap .wrap {
              min-width: 300px;
              padding-left: 3rem; } }
          .plan-contents .tab-content__bnr-wrap .wrap .bnr {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            text-decoration: none;
            border-radius: 1rem;
            box-shadow: 0 0px 20px rgba(0, 0, 0, 0.3); }
            .plan-contents .tab-content__bnr-wrap .wrap .bnr .txt {
              width: 50%;
              padding: 2rem 4rem;
              box-sizing: border-box; }
              @media (max-width: 880px) {
                .plan-contents .tab-content__bnr-wrap .wrap .bnr .txt {
                  padding: 2rem;
                  width: 70%; } }
              .plan-contents .tab-content__bnr-wrap .wrap .bnr .txt p {
                font-size: clamp(13px, 3vw, 18px); }
              .plan-contents .tab-content__bnr-wrap .wrap .bnr .txt .btn {
                border: solid 1px; }
            .plan-contents .tab-content__bnr-wrap .wrap .bnr img {
              width: 50%;
              object-fit: cover;
              border-radius: 0 1rem 1rem 0;
              height: 160px; }
              @media (max-width: 880px) {
                .plan-contents .tab-content__bnr-wrap .wrap .bnr img {
                  width: 30%;
                  height: 180px; } }
      .plan-contents .tab-content__link-card {
        padding: 1rem 0;
        margin: 0 auto; }
        .plan-contents .tab-content__link-card p:first-child {
          display: block;
          text-align: center;
          border: none; }
        .plan-contents .tab-content__link-card a.card {
          max-width: 480px;
          margin: 0 auto .5rem;
          font-feature-settings: 'palt';
          background: #fff;
          color: #051464;
          display: flex;
          border-radius: 10px;
          font-weight: 600;
          text-decoration: none;
          align-items: center;
          line-height: 1.6;
          box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.3);
          font-size: clamp(10px, 3vw, 14px); }
          .plan-contents .tab-content__link-card a.card img {
            width: 20%;
            max-width: 66px;
            height: auto;
            border-radius: 10px 0 0 10px;
            margin: 0 1rem 0 0; }
        .plan-contents .tab-content__link-card .note {
          text-align: center; }
      .plan-contents .tab-content__price-card {
        display: flex;
        overflow: scroll;
        margin: 0 auto;
        padding: 2rem 0; }
        .plan-contents .tab-content__price-card a.card {
          min-width: 230px;
          width: 30%;
          border-radius: 4px;
          background: #ffffff;
          box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.3);
          display: block;
          margin: 0 2rem 0 0;
          color: #051464;
          text-decoration: none;
          text-align: center; }
          @media (max-width: 480px) {
            .plan-contents .tab-content__price-card a.card {
              margin: 0 1rem 0 0;
              min-width: 170px; } }
          .plan-contents .tab-content__price-card a.card img {
            border-radius: 4px 4px 0 0; }
          .plan-contents .tab-content__price-card a.card .txt {
            padding: 2rem 1rem;
            font-weight: 600; }
            .plan-contents .tab-content__price-card a.card .txt p {
              font-size: clamp(12px, 3vw, 16px); }
            @media (max-width: 480px) {
              .plan-contents .tab-content__price-card a.card .txt {
                padding: 1rem; } }
            .plan-contents .tab-content__price-card a.card .txt .price p {
              line-height: 1.1; }
            .plan-contents .tab-content__price-card a.card .txt .price p:first-child {
              margin: 1rem 0 0;
              color: #ff4b4b;
              font-size: 80%;
              font-weight: normal; }
            .plan-contents .tab-content__price-card a.card .txt .price p:nth-child(2) {
              color: #ff4b4b;
              font-size: clamp(16px, 5vw, 22px); }
            .plan-contents .tab-content__price-card a.card .txt .price p:last-child {
              margin: .25rem 0 0;
              font-size: 80%;
              font-weight: normal; }
      .plan-contents .tab-content__note {
        margin: 1rem auto;
        padding: 0 0 4rem;
        text-align: right;
        font-size: 80%; }
        @media (max-width: 480px) {
          .plan-contents .tab-content__note {
            text-align: left; } }
    .plan-contents #friends .rand-photo-1 {
      margin: 4rem auto 0; }
      @media (max-width: 480px) {
        .plan-contents #friends .rand-photo-1 {
          margin: 2rem auto; } }
    .plan-contents #friends .rand-photo-2 {
      margin: -10rem auto 0; }
      @media (max-width: 480px) {
        .plan-contents #friends .rand-photo-2 {
          margin: -5rem auto 0; } }
  @media (max-width: 480px) {
    .plan .sp_bg-position-left {
      background-position: left; } }

.sticky-active {
  background: none !important; }

.active {
  display: block; }

@keyframes scale-anim {
  0% {
    transform: scale(1); }
  50% {
    transform: scale(1.015); }
  100% {
    transform: scale(1); } }
.swiper-button-next, .swiper-button-prev {
  --swiper-navigation-color: #fff; }

.swiper-pagination-bullet {
  background-color: #fff !important; }

/* ------------------
大きい背景セクション
------------------*/
.bg-cover {
  height: 50vw;
  max-height: 600px;
  background-size: cover;
  position: relative;
  background-position: center;
  padding: 3rem;
  box-sizing: border-box; }
  @media (max-width: 480px) {
    .bg-cover {
      padding: 3rem 0; } }
  .bg-cover .txt {
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%);
    width: 70%; }
    .bg-cover .txt .btn-wrapper {
      width: 45%;
      margin: var(--medium) 0 0; }
      .bg-cover .txt .btn-wrapper .btn:first-child {
        margin: 0 0 1rem; }
    .bg-cover .txt .uabr {
      display: none; }
      @media screen and (max-width: 1350px) {
        .bg-cover .txt .uabr {
          display: block; } }
  .bg-cover h2 {
    font-weight: 500; }
    .bg-cover h2 p.en-heading {
      margin: 0 0 2rem; }
      @media (max-width: 880px) {
        .bg-cover h2 p.en-heading {
          margin: 0 0 1rem; } }
  @media (max-width: 480px) {
    .bg-cover.mp .txt {
      width: 90%; } }
  .bg-cover.mp h2, .bg-cover.mp .btn-wrapper {
    width: 45%;
    text-align: center; }
  .bg-cover.mp .logo-mp {
    width: 100%;
    max-width: 450px;
    height: auto;
    margin: 0 0 2rem; }
  .bg-cover.mp p.ja-heading {
    line-height: 2; }

/* ------------------
SERVICE
------------------*/
#service .wrap {
  width: 80%;
  padding: var(--large) 0; }
  @media (max-width: 480px) {
    #service .wrap {
      padding: 0;
      width: 90%; } }

.sec2rows {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 6rem 0; }
  @media (max-width: 480px) {
    .sec2rows {
      padding: 3rem 0; } }
  .sec2rows:nth-child(odd) {
    flex-direction: row-reverse; }
  .sec2rows__box {
    width: 48%; }
    @media (max-width: 880px) {
      .sec2rows__box {
        width: 100%; } }
    .sec2rows__box.img {
      position: relative; }
      .sec2rows__box.img img {
        height: 100%;
        object-fit: cover; }
      .sec2rows__box.img .caption {
        position: absolute;
        left: 1rem;
        bottom: 1rem;
        font-size: 80%;
        line-height: 1;
        opacity: .8; }
    .sec2rows__box h3 {
      font-size: clamp(18px, 8vw, 40px);
      font-weight: 500;
      margin: 0 0 1rem;
      letter-spacing: -.03em; }
      .sec2rows__box h3 p {
        font-size: 50%;
        letter-spacing: 0; }
  .sec2rows ul li {
    padding: 1rem 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap; }
    @media (max-width: 480px) {
      .sec2rows ul li {
        padding: 1rem 0; } }
    .sec2rows ul li svg {
      width: 28px;
      height: auto;
      margin: 0 20px 0 0; }
    .sec2rows ul li p {
      width: calc(100% - 48px); }
      .sec2rows ul li p + .note {
        width: 100%;
        margin: 100px 0 0; }
        @media (max-width: 480px) {
          .sec2rows ul li p + .note {
            margin: 20px 0 0; } }
  .sec2rows svg {
    fill: #fff; }

#hotel, #tour, #mileage-plus, #bnr, #schedule, #fare {
  padding: var(--large) 0; }

/* ------------------
737max8
------------------*/
.b737max-banner {
  text-align: center;
  padding: var(--large) 0; }
  @media (max-width: 480px) {
    .b737max-banner.wrap {
      width: 90%; } }
  .b737max-banner img {
    width: 100%;
    height: auto;
    border-radius: var(--border-radius-default); }

/* ------------------
運賃
------------------*/
#fare .btn-wrapper .btn {
  width: 496px; }
  @media screen and (max-width: 1128px) {
    #fare .btn-wrapper .btn {
      margin: .5rem 0; } }
  @media (max-width: 880px) {
    #fare .btn-wrapper .btn {
      width: 90%; } }
@media (max-width: 480px) {
  #fare .btn-wrapper .check-btn {
    line-height: 1.4; } }

.check-btn {
  line-height: 1.4; }

.fuel-surchargese {
  margin: var(--medium) auto; }

.fares-box {
  background: #fff;
  padding: var(--medium);
  box-sizing: border-box;
  height: 82%; }
  @media (max-width: 880px) {
    .fares-box {
      height: auto; } }
  .fares-box h3 {
    font-weight: 600;
    padding: var(--small) 0;
    font-size: clamp(16px, 5vw, 24px); }
  .fares-box .headline {
    font-weight: 600; }
  .fares-box .fare-price {
    color: #1414d2;
    font-size: clamp(16px, 8vw, 34px);
    font-weight: 600;
    line-height: 1; }
    .fares-box .fare-price span.small {
      font-size: 60%;
      position: relative;
      bottom: 2px; }
  .fares-box a.restrictions-link {
    margin: 1rem 0 0;
    display: inline-block; }

.flex-wrapper {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }
  .flex-wrapper .box-ttl {
    width: 100%;
    padding: var(--small);
    box-sizing: border-box;
    font-size: clamp(18px, 6.5vw, 30px);
    border-radius: 1rem 1rem 0 0; }
  .flex-wrapper .economy-box, .flex-wrapper .business-box {
    display: flex;
    flex-wrap: wrap; }
  .flex-wrapper .economy-box {
    width: 69%; }
    @media (max-width: 880px) {
      .flex-wrapper .economy-box {
        width: 100%; } }
    .flex-wrapper .economy-box .fares-box {
      width: 50%; }
      @media (max-width: 880px) {
        .flex-wrapper .economy-box .fares-box {
          width: 100%; } }
      .flex-wrapper .economy-box .fares-box.basic-economy {
        position: relative;
        border-radius: 0 0 0 1rem; }
        @media (max-width: 880px) {
          .flex-wrapper .economy-box .fares-box.basic-economy {
            border-radius: 0; } }
        .flex-wrapper .economy-box .fares-box.basic-economy:after {
          content: '';
          position: absolute;
          right: 0;
          top: 50%;
          transform: translateY(-50%);
          height: 80%;
          border-right: solid 1px #ccc; }
          @media (max-width: 880px) {
            .flex-wrapper .economy-box .fares-box.basic-economy:after {
              height: auto;
              width: 90%;
              top: auto;
              left: 50%;
              right: auto;
              bottom: 0;
              transform: translateX(-50%);
              border-top: solid 1px #ccc;
              border-right: none; } }
      .flex-wrapper .economy-box .fares-box.economy {
        border-radius: 0 0 1rem 0; }
        @media (max-width: 880px) {
          .flex-wrapper .economy-box .fares-box.economy {
            border-radius: 0 0 1rem 1rem; } }
  .flex-wrapper .business-box {
    width: 29%; }
    @media (max-width: 880px) {
      .flex-wrapper .business-box {
        width: 100%;
        margin: 1rem 0 0; } }
    .flex-wrapper .business-box .fares-box {
      width: 100%;
      border-radius: 0 0 1rem 1rem; }

.flex-align-c {
  display: flex;
  align-items: center;
  flex-wrap: wrap; }

.website-link {
  margin: var(--medium) 0 0; }

.popup {
  padding: var(--medium);
  box-sizing: border-box; }
  .popup table.restrictions {
    width: 100%; }
    .popup table.restrictions svg {
      width: 24px;
      height: auto;
      margin-right: 10px; }
    .popup table.restrictions th {
      padding: 1.6rem 1rem; }
    .popup table.restrictions tbody tr {
      border-top: solid 1px #ccc; }
      .popup table.restrictions tbody tr:last-child {
        border-bottom: solid 1px #ccc; }
      .popup table.restrictions tbody tr td {
        vertical-align: middle;
        padding: 1.6rem 1rem; }
        .popup table.restrictions tbody tr td p {
          font-weight: 600;
          width: calc(100% - 34px); }
          .popup table.restrictions tbody tr td p sup {
            font-weight: normal;
            font-size: 50%; }
        .popup table.restrictions tbody tr td.txt-align-c svg {
          margin: 0;
          width: 16px; }
  .popup .fare-note {
    margin: 2rem 0; }
    .popup .fare-note svg {
      width: 16px;
      height: auto;
      margin-right: 10px; }
    .popup .fare-note p {
      width: calc(100% - 26px); }
  .popup ol {
    font-size: 13px; }
    .popup ol li {
      list-style: decimal;
      margin: 2rem 0 2rem 2rem; }
      .popup ol li span {
        font-weight: 600; }
      .popup ol li .note {
        margin: 1rem 0 0;
        font-size: 13px;
        font-style: italic; }

.airticket-modal .modaal-container {
  background: #1414d2; }
  .airticket-modal .modaal-container h2 {
    padding: var(--medium);
    font-weight: 900;
    font-feature-settings: 'palt';
    font-size: clamp(18px, 7vw, 40px); }

.sec4rows {
  position: relative;
  z-index: 1;
  padding: 0 8rem;
  display: flex;
  justify-content: space-between;
  gap: var(--medium);
  flex-wrap: wrap; }
  @media screen and (max-width: 1164px) {
    .sec4rows {
      padding: 0 var(--medium); } }
  .sec4rows .box {
    flex: 1;
    display: flex;
    flex-grow: 1;
    min-width: 200px;
    flex-wrap: wrap; }
    @media (max-width: 880px) {
      .sec4rows .box {
        min-width: 40%; } }
    .sec4rows .box h3 {
      font-feature-settings: 'palt';
      color: #fff;
      width: 100%;
      font-weight: 900;
      font-size: clamp(13px, 3.6vw, 20px); }
      .sec4rows .box h3 a {
        color: #fff; }
      .sec4rows .box h3 .num {
        box-sizing: border-box;
        font-size: 30px;
        margin: 0 auto 1rem;
        background: #fff;
        color: #1414d2;
        border-radius: 50%;
        width: 50px;
        height: 50px;
        display: flex;
        align-items: center;
        justify-content: center; }
    .sec4rows .box .img {
      position: relative;
      margin: auto auto 0; }
      .sec4rows .box .img .process-img {
        margin: 1rem 0 0;
        width: 100%;
        max-width: 200px;
        height: auto; }
      .sec4rows .box .img .code-img {
        position: absolute;
        z-index: 2;
        top: 30%;
        right: -10%;
        width: 50%;
        max-width: 100px;
        height: auto;
        box-shadow: 0 0px 20px rgba(0, 0, 0, 0.3);
        border-radius: 10px; }

.airticket-footer {
  background: #fff;
  margin: -8rem 0 0;
  padding: 12rem 4rem 4rem;
  border-radius: 0 0 10px 10px; }

/* ------------------
マイレージプラス
------------------*/
.mp-list {
  display: flex;
  justify-content: space-between;
  max-width: 1100px;
  margin: auto;
  flex-wrap: wrap; }
  .mp-list li {
    text-align: center; }
    @media (max-width: 880px) {
      .mp-list li {
        width: 46%;
        text-align: center;
        padding-bottom: 4vh; }
        .mp-list li img {
          max-width: 100px; } }
    .mp-list li p span {
      font-weight: 600; }

.padbottom {
  padding-bottom: var(--large);
  font-weight: 600; }

/* ------------------
ホテル
------------------*/
#hotel {
  background: url("../img/common/bg_hotel_01.jpg") no-repeat center/cover; }
  #hotel .card-wrapper {
    margin: var(--medium) 0 0; }

/* ------------------
ツアー
------------------*/
#tour {
  background: #f7f4f2; }

.one-bnr {
  max-width: 600px;
  margin: var(--medium) auto 0; }

/* ------------------
バナー
------------------*/
#bnr .bnr-item {
  border-radius: 1rem;
  margin: var(--medium) 0;
  box-shadow: 0 0px 20px rgba(0, 0, 0, 0.3); }
