@charset "UTF-8";
/* Color Palette */
/* Padding */
/* Header Space */
/* Wrap */
/* Padding */
/*-----------
Root
-------------*/
:root {
  --large: 8rem;
  --medium: 5rem;
  --small: 2rem;
  --section-padding: 8rem 0;
  --transition: all 0.3s ease;
  --gutter: calc((100vw - 90vw) / 2);
}

@media screen and (max-width: 1412px) {
  :root {
    --large: 6rem;
    --medium: 4rem;
    --small: 1.5rem;
    --section-padding: 6rem 0;
  }
}
@media screen and (max-width: 880px) {
  :root {
    --large: 5rem;
    --medium: 3rem;
    --small: 1.5rem;
    --section-padding: 5rem 0;
  }
}
@media screen and (max-width: 640px) {
  :root {
    --large: 3rem;
    --medium: 2rem;
    --small: 1rem;
    --section-padding: 3rem 0;
  }
}
:root {
  --font-size-large: clamp(20px, 7vw, 52px);
  --font-size-medium: clamp(16px, 4.6vw, 28px);
  --font-size-small: 0.75rem;
  --line-height-default: 1.7;
  --border-radius-default: 10px;
  --large: 6rem;
  --medium: 3rem;
  --small: 2rem;
  --shadow-card: 5px 5px 20px 1px rgba(0, 0, 0, .3);
  --shadow-button: 0 1px 2px rgba(0, 0, 0, 0.2);
}

@media screen and (max-width: 640px) {
  :root {
    --font-size-default: 15px;
    --line-height-default: 1.6;
    --large: 3rem;
    --medium: 2rem;
    --small: 1.5rem;
    --border-radius-default: 5px;
  }
}
.sp-only {
  display: none;
}
@media (max-width: 640px) {
  .sp-only {
    display: block;
  }
}

body {
  background: #1414d2;
  color: #ffffff;
}

.wrap {
  width: 88%;
  max-width: 1380px;
}

h1,
h2,
h3,
h4 {
  line-height: 1.5;
}

@media (max-width: 1024px) {
  .pc-only {
    display: none;
  }
}

.hashtag {
  text-decoration: underline;
  font-size: clamp(16px, 4.4vw, 32px);
  margin-right: 1rem;
  font-weight: 700;
}

.bars {
  margin: var(--small) 0;
  display: flex;
  flex-direction: column;
}

.bar {
  width: 0;
  height: 16px;
  background: var(--bg);
  transform-origin: left;
  transition: width 900ms cubic-bezier(0.2, 0.9, 0.2, 1);
  will-change: width;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06) inset;
}
@media (max-width: 640px) {
  .bar:nth-child(2) {
    width: 300px !important;
  }
}
@media (max-width: 640px) {
  .bar {
    height: 13px;
  }
}

.schedule-block__main-contents table td .border:before {
  left: -50%;
  width: 120%;
}

.table-title {
  padding: 1rem 2rem;
  box-sizing: border-box;
}

/* in-view が付いたら左→右に伸びる */
.bar.in-view {
  width: var(--w);
}

/* ------------------
Hero
------------------*/
.hero {
  display: flex;
  align-items: center;
  border-bottom: solid 60px #a5ebff;
}
@media (max-width: 1024px) {
  .hero {
    flex-wrap: wrap;
    flex-direction: column-reverse;
    border-bottom: solid 30px #a5ebff;
  }
}
.hero__txt, .hero__slideshow {
  width: 50%;
}
@media (max-width: 1024px) {
  .hero__txt, .hero__slideshow {
    width: 100%;
  }
}
.hero__txt {
  box-sizing: border-box;
  padding: 5% var(--large) 0;
}
@media (max-width: 1024px) {
  .hero__txt {
    padding: var(--large) 6%;
  }
}
.hero__txt-wrapper {
  max-width: 640px;
  margin-left: auto;
}
@media (max-width: 1024px) {
  .hero__txt-wrapper {
    margin: auto;
  }
}
.hero__txt h1 {
  text-align: left;
  line-height: 1;
  font-size: clamp(22px, 12vw, 100px);
}
@media screen and (max-width: 1414px) {
  .hero__txt h1 {
    font-size: clamp(22px, 6vw, 70px);
  }
}
@media (max-width: 1024px) {
  .hero__txt h1 {
    font-size: clamp(22px, 12vw, 70px);
  }
}
.hero__txt h1 + p {
  font-weight: 600;
  margin: var(--medium) 0;
  font-size: clamp(13px, 4.1vw, 28px);
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1414px) {
  .hero__txt h1 + p {
    font-size: clamp(13px, 1.9vw, 28px);
  }
}
@media (max-width: 1024px) {
  .hero__txt h1 + p {
    font-size: clamp(13px, 4.1vw, 28px);
  }
}
.hero__bnr {
  background: #a5ebff;
  color: #000;
  display: flex;
  align-items: center;
  box-shadow: var(--shadow-card);
  border-radius: var(--border-radius-default);
}
.hero__bnr img {
  width: 30%;
  height: auto;
  border-radius: var(--border-radius-default) 0 0 var(--border-radius-default);
}
.hero__bnr p {
  line-height: 1.4;
  font-size: clamp(10px, 3vw, 16px);
  padding: 1rem;
  box-sizing: border-box;
}
@media (max-width: 1024px) {
  .hero__slideshow .swiper {
    height: 100vw;
    max-height: 980px;
  }
  .hero__slideshow .pic {
    -o-object-fit: cover;
       object-fit: cover;
    height: 100%;
  }
}

/* ------------------
Introduction
------------------*/
.intro {
  background: #276ef1;
  padding: var(--large) 0;
}
.intro .lead {
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
@media (max-width: 1024px) {
  .intro .lead {
    margin-top: 2rem;
  }
}
.intro .lead span {
  letter-spacing: -0.1em;
}
.intro .wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 1024px) {
  .intro .wrap {
    flex-direction: column-reverse;
  }
}
.intro__hashtags {
  margin: 2rem 0 3rem;
}
.intro__map {
  width: 100%;
  max-width: 400px;
  margin-bottom: var(--medium);
}
.intro__map img {
  border: solid 1px #fff;
}
.intro__content {
  width: 55%;
}
@media (max-width: 1024px) {
  .intro__content {
    width: 100%;
  }
}
.intro__content .intro__buttons {
  display: flex;
  gap: 1rem;
}
@media (max-width: 640px) {
  .intro__content .intro__buttons {
    width: 100%;
    gap: 0;
    flex-direction: column;
    align-items: center;
  }
}
.intro__content .btn {
  width: calc(500px + 1rem);
  /*@include tab {
      width: 200px;
  }*/
  /* &:first-child {
       margin: 0 1rem 1rem 0;
   }*/
}
@media (max-width: 640px) {
  .intro__content .btn {
    width: 100%;
    font-size: clamp(10px, 3.6vw, 16px);
    box-sizing: border-box;
    font-feature-settings: "palt";
    padding: 1.2rem;
  }
}
.intro__content .btn.booking-btn {
  width: 250px;
  background: #fff;
  color: #1414d2;
  font-weight: 600;
  line-height: 1.2;
  border-radius: 50px;
  margin-top: 1rem;
}
@media (max-width: 640px) {
  .intro__content .btn.booking-btn {
    width: 100%;
    font-size: clamp(10px, 3.6vw, 16px);
    box-sizing: border-box;
    font-feature-settings: "palt";
    padding: 1.2rem;
  }
}
.intro__content .btn.booking-btn:hover {
  background: #0D0D8F;
  color: #fff;
}
.intro__img {
  display: flex;
  width: 45%;
  flex-wrap: wrap;
}
@media (max-width: 1024px) {
  .intro__img {
    width: 100%;
  }
}
.intro__img video {
  width: 60%;
}
.intro__img img {
  width: 37%;
  margin-left: auto;
}
.intro__img .mention {
  width: 100%;
  font-size: 80%;
}

/* ------------------
YouTube
------------------*/
.youtube {
  padding: var(--large) 0;
}
.youtube h2 {
  font-size: var(--font-size-medium);
}
.youtube__video-wrapper {
  margin-top: var(--medium);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 1024px) {
  .youtube__video-wrapper {
    grid-template-columns: repeat(1, 1fr);
    gap: 1rem;
  }
}
.youtube__video-wrapper .video-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.youtube__video-wrapper .video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ------------------
City
------------------*/
.city__header {
  color: #fff;
  max-height: 500px;
  height: 60vw;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
}
@media (max-width: 1024px) {
  .city__header {
    background-attachment: scroll;
  }
}
.city__header h2 {
  font-size: var(--font-size-large);
  text-shadow: 2px 3px 20px rgba(0, 0, 0, 0.6);
}
.city__header h2 span {
  display: block;
}
.city__desc {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: var(--large) auto;
  flex-wrap: wrap;
}
@media (max-width: 1024px) {
  .city__desc {
    flex-direction: column-reverse;
  }
}
.city__desc-img {
  width: 48%;
}
@media (max-width: 1024px) {
  .city__desc-img {
    width: 100%;
    margin-top: var(--large);
  }
}
.city__desc-txt {
  width: 48%;
}
@media (max-width: 1024px) {
  .city__desc-txt {
    width: 100%;
  }
}
.city__desc-txt h3 + p {
  margin: var(--medium) 0;
}
.city__desc-txt .btn {
  width: 250px;
}
@media (max-width: 1024px) {
  .city__desc-txt .btn {
    width: 200px;
  }
}
@media (max-width: 640px) {
  .city__desc-txt .btn {
    width: calc(50% - 1rem);
    font-size: clamp(10px, 3.6vw, 16px);
    box-sizing: border-box;
    font-feature-settings: "palt";
    padding: 1.2rem;
  }
}
.city__desc-txt .btn:first-child {
  margin: 0 1rem 1rem 0;
}
.city__cards {
  display: flex;
  align-items: center;
  padding-left: 6%;
}
@media (max-width: 1024px) {
  .city__cards {
    flex-wrap: wrap;
  }
}
.city__cards-ttl {
  min-width: 400px;
}
@media (max-width: 640px) {
  .city__cards-ttl {
    min-width: auto;
  }
}
.city__cards-ttl h3 {
  font-size: var(--font-size-large);
}
@media (max-width: 1024px) {
  .city__cards-ttl h3 {
    width: 100%;
  }
}
.city__cards-ttl h3 span {
  display: block;
  margin-top: 1rem;
  font-size: 70%;
}
.city__cards-wrapper {
  overflow: scroll;
  display: flex;
}
.city__cards-wrapper .card {
  display: flex;
  flex-direction: column;
  color: #000;
  min-width: 480px;
  max-width: 480px;
  margin: 0 var(--small) var(--large) 0;
  background: #fff;
  border-radius: var(--border-radius-default);
  transition: 0.3s;
  box-shadow: var(--shadow-card);
}
@media (max-width: 640px) {
  .city__cards-wrapper .card {
    min-width: 280px;
  }
}
.city__cards-wrapper .card-img {
  position: relative;
}
.city__cards-wrapper .card-img p.category {
  position: absolute;
  right: 10px;
  top: 10px;
  background: #fff;
  border-radius: 5px;
  color: #1414d2;
  padding: 8px 10px;
  line-height: 1;
  font-size: 14px;
}
.city__cards-wrapper .card-img img {
  border-radius: var(--border-radius-default) var(--border-radius-default) 0 0;
}
.city__cards-wrapper .card__body {
  padding: var(--small);
  box-sizing: border-box;
  flex: 1;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
@media (max-width: 640px) {
  .city__cards-wrapper .card__body {
    font-size: 12px;
  }
}
.city__cards-wrapper .card__body h4 {
  line-height: 1.2;
  font-size: var(--font-size-medium);
}
.city__cards-wrapper .card__body h4 span {
  font-size: 70%;
  font-feature-settings: "palt";
  margin-top: 0.5rem;
  display: block;
}
.city__cards-wrapper .card__body h4 span.thin {
  display: block;
  transform: scale(0.68, 1);
  transform-origin: top left;
  width: 160%;
}
.city__cards-wrapper .card__body h4 + p {
  margin: var(--small) 0;
}
.city__cards-wrapper .card__body .btn {
  margin: auto 0 0;
  padding: 1.4rem 2rem;
  width: 200px;
}
@media (max-width: 640px) {
  .city__cards-wrapper .card__body .btn {
    width: 160px;
  }
}
.city.column {
  border: solid 1px #fff;
  border-radius: var(--border-radius-default);
  padding: var(--large);
  box-sizing: border-box;
  margin-bottom: var(--large);
}
.city.column .city__desc {
  margin: 0;
}
.city.column .city__desc-img {
  margin: 0;
}
.city.column h2 {
  font-size: var(--font-size-large);
}
@media (max-width: 1024px) {
  .city.column h2 {
    margin-top: var(--small);
  }
}
.city.column h2 + p {
  margin: var(--small) 0;
  font-size: var(--font-size-medium);
  font-weight: 600;
}
@media (max-width: 640px) {
  .city.column h2 + p {
    margin: 0.25rem 0 1rem;
  }
}
@media (max-width: 640px) {
  .city.column h2 + p svg {
    height: 3vw;
  }
}
.city.destination .city__header {
  background-position: left;
  background-size: 60%;
  height: 36vw;
}
@media (max-width: 1024px) {
  .city.destination .city__header {
    height: 60vw;
    background-size: cover;
    background-position: center;
  }
}
.city.destination .city__header .h2-wrapper {
  position: relative;
  left: 50%;
  width: 50%;
  height: 100%;
  display: flex;
  align-items: center;
  padding: var(--large);
  box-sizing: border-box;
}
@media (max-width: 1024px) {
  .city.destination .city__header .h2-wrapper {
    width: 60%;
    left: 40%;
    padding: 1.3rem;
  }
}
.city.destination .city__header h2 {
  text-shadow: none;
  color: #000;
  font-feature-settings: "palt";
}
.city.destination .city__header h2 .code {
  font-size: clamp(20px, 7vw, 80px);
  font-weight: 500;
  display: flex;
  align-items: center;
  line-height: 1;
  margin-bottom: 1rem;
}
.city.destination .city__header h2 .code .icon {
  margin-right: 1rem;
  width: 40px;
  height: auto;
}
@media (max-width: 1024px) {
  .city.destination .city__header h2 .code .icon {
    width: 20px;
  }
}
.city.destination.blue .h2-wrapper {
  background: #a5ebff;
}
.city.destination.blue .city__desc {
  background: #051464;
}
.city.destination.blue .city__cards {
  background: #276ef1;
}
.city.destination.red .h2-wrapper {
  background: #ffe6dc;
}
.city.destination.red .city__desc {
  background: #7D283C;
}
.city.destination.red .city__cards {
  background: #d7aaaa;
}
.city.destination.red .city__cards-ttl {
  color: #000;
}
.city.destination.red .city__desc .btn {
  background: none;
}
.city.destination .city__desc {
  margin: 0;
}
.city.destination .city__desc-img, .city.destination .city__desc-txt {
  width: 50%;
}
@media (max-width: 1024px) {
  .city.destination .city__desc-img, .city.destination .city__desc-txt {
    width: 100%;
    margin-top: 0;
  }
}
@media (max-width: 1024px) {
  .city.destination .city__desc-img {
    margin-top: 0.6rem;
  }
}
.city.destination .city__desc-txt {
  padding: var(--large);
  box-sizing: border-box;
}
.city.destination .city__desc-txt-wrapper {
  max-width: 640px;
  margin-left: auto;
}
.city.destination .city__cards {
  padding: var(--large) 0 0 5%;
}

/*カリフォルニア観光局バナー*/
.bg-banner {
  background-size: cover;
  background-position: center;
  padding: var(--large) 0;
}
.bg-banner__main {
  padding: var(--large) 0;
  background: #fff;
  color: #000;
  text-align: center;
  max-width: 440px;
}
@media (max-width: 1024px) {
  .bg-banner__main {
    margin: auto;
  }
}
.bg-banner__main .vca-logo {
  margin-bottom: 2rem;
}
@media (max-width: 1024px) {
  .bg-banner__main .vca-logo {
    width: 50%;
  }
}
.bg-banner__main .btn {
  margin-top: var(--medium);
}

#flight-schedule_domestic {
  padding: var(--large) 0;
}
#flight-schedule_domestic h2 {
  font-size: var(--font-size-large);
}
#flight-schedule_domestic h2 span {
  display: block;
  font-size: clamp(18px, 1.7vw, 24px);
  font-weight: normal;
}

/*ユナイテッド航空バナー*/
.ua-banner {
  background: #051464;
  padding: var(--large) 0;
}
.ua-banner__banner {
  display: flex;
  align-items: center;
  background: #fff;
  color: #000;
  border-radius: var(--border-radius-default);
  flex-wrap: wrap;
}
.ua-banner__banner-img, .ua-banner__banner-txt {
  width: 50%;
}
@media (max-width: 1024px) {
  .ua-banner__banner-img, .ua-banner__banner-txt {
    width: 100%;
  }
}
.ua-banner__banner-img {
  height: 400px;
}
@media (max-width: 1024px) {
  .ua-banner__banner-img {
    height: 50vw;
  }
}
.ua-banner__banner-img .pic {
  border-radius: var(--border-radius-default) 0 0 var(--border-radius-default);
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 1024px) {
  .ua-banner__banner-img .pic {
    border-radius: var(--border-radius-default) var(--border-radius-default) 0 0;
  }
}
.ua-banner__banner-txt {
  padding: var(--medium);
  box-sizing: border-box;
}
.ua-banner__banner-txt .ua-logo {
  width: 50%;
  max-width: 220px;
  height: auto;
  display: block;
  margin: var(--medium) 1rem;
}
.ua-banner__banner-txt h2 {
  margin: var(--small) 0;
}
.ua-banner__banner-txt .btn {
  max-width: 340px;
  width: 100%;
  margin-top: 0.5rem;
}/*# sourceMappingURL=roadtrips.css.map */