/*
 * jta-port.css — extracted CSS from japan-tourism.net Nuxt SSR HTML.
 * Scope: every rule prefixed with `.jta-port` so the port CSS only
 * applies to WP pages that opt-in via `<body class="jta-port">`.
 */

 /* ===== language ===== */
.jta-port[lang="ja"] { 
  font-family: var(--f-jp-mincho); 
  font-size: 1rem;    /* 16px (root 16px基準) */
}
.jta-port[lang="en"] {
  font-family: var(--f-en-serif);
  letter-spacing: 0.05em;
  font-size: 1.125rem; /* 18px (同上) */
}

.jta-port .ff_en {
  font-family: var(--f-en-serif)!important;
  font-size: 1.15em;
}

/* ===== source: tour ===== */
.jta-port blockquote,
.jta-port,
.jta-port dd,
.jta-port div,
.jta-port dl,
.jta-port dt,
.jta-port fieldset,
.jta-port figure,
.jta-port form,
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6,
.jta-port li,
.jta-port main,
.jta-port ol,
.jta-port p,
.jta-port pre,
.jta-port td,
.jta-port th,
.jta-port ul {
  margin: 0;
  padding: 0;
}
.jta-port table {
  font-family: inherit;
  font-size: 100%;
}

.jta-port fieldset,
.jta-port img {
  border: 0;
}
.jta-port img,
.jta-port svg,
.jta-port video {
  vertical-align: middle;
}

.jta-port address,
.jta-port caption,
.jta-port cite,
.jta-port code,
.jta-port dfn,
.jta-port em,
.jta-port th,
.jta-port var {
  font-style: normal;
  font-weight: 400;
}
.jta-port ol,
.jta-port ul {
  list-style: none;
}
.jta-port caption,
.jta-port th {
  text-align: left;
}
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6 {
  font-size: 100%;
}
.jta-port q:after,
.jta-port q:before {
  content: "";
}
.jta-port abbr,
.jta-port acronym {
  border: 0;
}
.jta-port input,
.jta-port select,
.jta-port textarea {
  font-size: 100%;
}
.jta-port article,
.jta-port aside,
.jta-port figure,
.jta-port footer,
.jta-port header,
.jta-port main,
.jta-port nav,
.jta-port picture,
.jta-port section {
  display: block;
}
.jta-port#tour {
  font-size: 62.5% !important;
}
.jta-port {
  word-wrap: break-word;
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
  text-size-adjust: none;
  font-feature-settings: "palt";
  background-color: #fff;
  color: #282828;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.8;
  overflow-wrap: break-word;
  /* R18 (2026-08-21): several sections intentionally bleed to the viewport
     edge via negative vw-based offsets (right: -10vw etc. on .hokkaido,
     .ph_main, .features_*, .concept_contents). Nothing previously clipped
     that bleed at the true page boundary, so on some tour/journal pages it
     was widening the page itself (visible as growing right-side whitespace
     / horizontal scroll approaching the 767px breakpoint, gone below it
     once those sections switch to a differently-bounded mobile layout).
     This clips any such bleed at .jta-port's own edge without changing the
     visual intent of the bleed effects themselves. */
  overflow-x: hidden;
}

/* R•: removed duplicate .jta-port[lang="ja"] block (font-family only,
   already set at line 8) to avoid future edits diverging between copies. */

.jta-port [lang="ja"] .bold,
.jta-port [lang="ja"] b,
.jta-port [lang="ja"] h1,
.jta-port [lang="ja"] h2,
.jta-port [lang="ja"] h3,
.jta-port [lang="ja"] h4,
.jta-port [lang="ja"] h5,
.jta-port [lang="ja"] h6,
.jta-port [lang="ja"] strong {
  font-weight: 700;
}

.jta-port [lang="en"] .bold,
.jta-port [lang="en"] b,
.jta-port [lang="en"] h1,
.jta-port [lang="en"] h2,
.jta-port [lang="en"] h3,
.jta-port [lang="en"] h4,
.jta-port [lang="en"] h5,
.jta-port [lang="en"] h6,
.jta-port [lang="en"] strong {
  font-weight: 500;
}
.jta-port *,
.jta-port :after,
.jta-port :before {
  box-sizing: border-box;
}

.jta-port img {
  height: auto;
  max-width: 100%;
}
.jta-port table {
  border-collapse: collapse;
  border-spacing: 0;
  line-height: 1.8;
}
.jta-port a[href] {
  color: #000;
  outline: none;
  text-decoration: underline;
}
.jta-port .a_reverse a[href],
.jta-port a[href].a_reverse,
.jta-port a[href]:hover {
  text-decoration: none;
}
@media screen and (min-width: 768px) {
  .jta-port .a_reverse a[href]:hover,
  .jta-port a[href].a_reverse:hover {
    text-decoration: underline;
  }
}
.jta-port label {
  cursor: pointer;
}
.jta-port button,
.jta-port input,
.jta-port select,
.jta-port textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0;
  font-family: inherit;
  font-size: 100%;
  margin: 0;
  max-width: 100%;
  outline: none;
  vertical-align: middle;
}
.jta-port ::-webkit-input-placeholder {
  color: #ccc;
}
.jta-port :-ms-input-placeholder {
  color: #ccc;
}
.jta-port ::-moz-placeholder {
  color: #ccc;
}
.jta-port select::-ms-expand {
  display: none;
}
.jta-port button {
  cursor: pointer;
}
.jta-port iframe {
  max-width: 100%;
  vertical-align: middle;
}
.jta-port .hidden {
  display: none;
}
.jta-port .slick-slider * {
  outline: none;
}

.jta-port .slick-slider {
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
  touch-action: pan-y;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -khtml-user-select: none;
}
.jta-port .slick-list,
.jta-port .slick-slider {
  display: block;
  position: relative;
}
.jta-port .slick-list {
  margin: 0;
  overflow: hidden;
  padding: 0;
}
.jta-port .slick-list:focus {
  outline: none;
}
.jta-port .slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}
.jta-port .slick-slider .slick-list,
.jta-port .slick-slider .slick-track {
  transform: translateZ(0);
}
.jta-port .slick-track {
  display: block;
  left: 0;
  position: relative;
  top: 0;
}
.jta-port .slick-track:after,
.jta-port .slick-track:before {
  content: "";
  display: table;
}
.jta-port .slick-track:after {
  clear: both;
}
.jta-port .slick-loading .slick-track {
  visibility: hidden;
}
.jta-port .slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}
.jta-port [dir="rtl"] .slick-slide {
  float: right;
}
.jta-port .slick-slide img {
  display: block;
}
.jta-port .slick-slide.slick-loading img {
  display: none;
}
.jta-port .slick-slide.dragging img {
  pointer-events: none;
}
.jta-port .slick-initialized .slick-slide {
  display: block;
}
.jta-port .slick-loading .slick-slide {
  visibility: hidden;
}
.jta-port .slick-vertical .slick-slide {
  border: 1px solid transparent;
  display: block;
  height: auto;
}
.jta-port .slick-arrow.slick-hidden {
  display: none;
}
@media print, screen and (min-width: 768px) {
  .jta-port .sp {
    display: none !important;
  }
  .jta-port .pc_break,
  .jta-port .pc_hidden {
    display: block;
    height: 0;
    overflow: hidden;
    position: relative;
  }
}
@media screen and (max-width: 767px) {
  .jta-port .pc {
    display: none !important;
  }
  .jta-port .sp_break {
    display: block;
    height: 0;
    overflow: hidden;
    position: relative;
  }
}
@media screen and (min-width: 371px) {
  .jta-port .sps {
    display: none !important;
  }
}
@media screen and (max-width: 370px) {
  .jta-port .sps_non {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  .jta-port.init .basic_trs,
  .jta-port.init .basic_trs *,
  .jta-port.init .basic_trs :after,
  .jta-port.init .basic_trs :before,
  .jta-port.init .basic_trs:after,
  .jta-port.init .basic_trs:before,
  .jta-port.init a[href],
  .jta-port.init a[href]:after,
  .jta-port.init a[href]:before,
  .jta-port.init button,
  .jta-port.init button:after,
  .jta-port.init button:before {
    transition:
      color 0.2s ease-in-out,
      background 0.2s ease-in-out,
      border 0.2s ease-in-out,
      opacity 0.2s ease-in-out;
  }
  .jta-port.init a svg {
    transition: fill 0.2s ease-in-out;
  }
}
.jta-port #container .ff_en {
  font-family: var(--f-en-serif);
  font-weight: 400;
  letter-spacing: 0.05em;
}

.jta-port #container .fwb {
  font-weight: 700;
}
.jta-port #container .fwm {
  font-weight: 500;
}
.jta-port #container .fwn {
  font-weight: 400;
}
.jta-port #container .fwel {
  font-weight: 200;
}
.jta-port #container .fwl {
  font-weight: 300;
}
.jta-port[lang="ja"] .fzl {
  font-size: 1.2rem;
  line-height: 2.4;
}
.jta-port[lang="en"] .fzl,
.jta-port .fzl.ff_en,
.jta-port .ff_en .fzl{
  font-size: 1.5rem;
  line-height: 1.7;
}
.jta-port .fsi {
  font-style: italic;
}

@media screen and (max-width: 767px) {
  .jta-port[lang="ja"] .fzl {
    font-size: 0.9rem;
    line-height: 2.3;
  }
  .jta-port[lang="en"] .fzl,
.jta-port .fzl.ff_en,
.jta-port .ff_en .fzl{
    font-size: 1.1rem;
    line-height: 1.7;
  }
}
.jta-port .db {
  display: block;
}
.jta-port .dib {
  display: inline-block;
}
.jta-port .pos-r {
  position: relative;
}
.jta-port img.of {
  height: 100%;
  left: 0;
  -o-object-fit: cover;
  object-fit: cover;
  position: absolute;
  top: 0;
  width: 100%;
}
.jta-port img.of.bg {
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  z-index: -1;
}
@media print, screen and (min-width: 768px) {
  .jta-port .hv_wh a,
  .jta-port a .hv_wh,
  .jta-port a.hv_wh,
  .jta-port button.hv_wh {
    display: inline-block;
    overflow: hidden;
    position: relative;
    vertical-align: middle;
  }
  .jta-port .hv_wh a:after,
  .jta-port a .hv_wh:after,
  .jta-port a.hv_wh:after,
  .jta-port button.hv_wh:after {
    background-color: hsla(0, 0%, 100%, 0);
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 3;
  }
  .jta-port.init .hv_wh a:after,
  .jta-port.init a .hv_wh:after,
  .jta-port.init a.hv_wh:after,
  .jta-port.init button.hv_wh:after {
    transition: background 0.2s;
  }
  .jta-port .hv_wh a[href]:hover:after,
  .jta-port a[href].hv_wh:hover:after,
  .jta-port a[href]:hover .hv_wh:after,
  .jta-port button.hv_wh:hover:after {
    background-color: hsla(0, 0%, 100%, 0.3);
  }
  .jta-port .hv_wh.a20 a[href]:hover:after,
  .jta-port a[href].hv_wh.a20:hover:after,
  .jta-port a[href]:hover .hv_wh.a20:after,
  .jta-port button.hv_wh.a20:hover:after {
    background-color: hsla(0, 0%, 100%, 0.2);
  }
  .jta-port .hv_wh.a10 a[href]:hover:after,
  .jta-port a[href].hv_wh.a10:hover:after,
  .jta-port a[href]:hover .hv_wh.a10:after,
  .jta-port button.hv_wh.a10:hover:after {
    background-color: hsla(0, 0%, 100%, 0.1);
  }
  .jta-port.init a[href] .hv_op {
    transition: opacity 0.2s;
  }
  .jta-port .hv_op a[href]:hover,
  .jta-port a[href].hv_op:hover,
  .jta-port a[href]:hover .hv_op,
  .jta-port button.hv_op:hover {
    opacity: 0.7;
  }
  .jta-port .hv_op.a20 a[href]:hover,
  .jta-port a[href].hv_op.a20:hover,
  .jta-port a[href]:hover .hv_op.a20 {
    opacity: 0.8;
  }
  .jta-port .hv_op.a10 a[href]:hover,
  .jta-port a[href].hv_op.a10:hover,
  .jta-port a[href]:hover .hv_op.a10 {
    opacity: 0.9;
  }
  .jta-port .hv_op.a50 a[href]:hover,
  .jta-port a[href].hv_op.a50:hover,
  .jta-port a[href]:hover .hv_op.a50 {
    opacity: 0.5;
  }
}
.jta-port .hv_zoom {
  display: block;
  overflow: hidden;
  position: relative;
}
.jta-port .hv_zoom > * {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
@media print, screen and (min-width: 768px) {
  .jta-port.init a[href] .hv_zoom > *,
  .jta-port.init a[href].hv_zoom > * {
    transition:
      transform 0.6s,
      opacity 0.3s;
  }
  .jta-port a[href]:hover .hv_zoom.s > * {
    transform: scale(1.03);
  }
  .jta-port a[href]:hover .hv_zoom > *,
  .jta-port a[href]:hover.hv_zoom > * {
    transform: scale(1.05);
  }
}
.jta-port .target {
  display: block;
  position: relative;
  top: -80px;
  width: 1px;
}
.jta-port .target.pt {
  top: -120px;
}

@media print, screen and (min-width: 768px) {
  .jta-port .w {
    max-width: 1160px;
  }
  .jta-port .w,
  .jta-port .xw {
    margin: 0 auto;
    padding-left: 30px;
    padding-right: 30px;
  }
  .jta-port .xw {
    max-width: 1360px;
  }
  .jta-port .mw {
    min-width: 1140px;
  }
}

@media screen and (max-width: 767px) {
  .jta-port .target {
    top: -60px;
  }
  .jta-port .target.pt {
    top: -90px;
  }
}
.jta-port .w,
.jta-port .xw {
  position: relative;
}
@media screen and (max-width: 767px) {
  .jta-port .sp_pd {
    padding-left: 5vw !important;
    padding-right: 5vw !important;
  }
  .jta-port .sp_full {
    margin-right: -5vw !important;
  }
  .jta-port .sp_full,
  .jta-port .sp_full_l {
    margin-left: -5vw !important;
  }
  .jta-port .sp_full_r {
    margin-right: -5vw !important;
  }
}
.jta-port #header {
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1000;
}
@media print {
  .jta-port #header {
    position: absolute;
  }
}
@media print, screen and (min-width: 768px) {
  .jta-port #header {
    align-items: center;
    display: flex;
    height: 120px;
    justify-content: space-between;
    left: 10px;
    min-width: 1120px;
    padding-left: clamp(10px, calc(10vw - 106px), 40px);
    right: 10px;
    top: 0;
  }
  .jta-port #header .logo svg {
    fill: #fff;
    height: 38px;
    width: 240px;
  }
  .jta-port #header nav {
    position: relative;
  }
  .jta-port #header nav .gnav,
  .jta-port #header nav a,
  .jta-port #header nav ul {
    align-items: center;
    display: flex;
  }
  .jta-port #header nav a {
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    height: 60px;
    justify-content: center;
    letter-spacing: 0.08em;
    line-height: 1.5;
    padding: 0 clamp(10px, calc(5vw - 48px), 15px);
    position: relative;
    text-align: center;
    text-decoration: none;
  }
  .jta-port #header nav .mnav li + li a:before {
    border-left: 1px solid;
    content: "";
    height: 14px;
    left: 0;
    margin-top: -7px;
    position: absolute;
    top: 50%;
    transition: none;
  }
  .jta-port #header nav .mnav a > span {
    padding: 3px 0;
    position: relative;
  }
  .jta-port #header nav .mnav a > span:after {
    border-top: 2px solid;
    bottom: 0;
    content: "";
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    transform: translateY(3px);
  }
  .jta-port.init #header nav .mnav a > span:after {
    transition:
      transform 0.2s ease-in-out,
      opacity 0.2s ease-in-out;
  }
  .jta-port #header nav .gnav a.current > span:after,
  .jta-port #header nav .gnav a:hover > span:after {
    opacity: 1;
    transform: translateY(0);
  }
  .jta-port #header nav .rnav {
    margin-left: clamp(90px, calc(10vw - 26px), 130px);
  }
  .jta-port #header nav .rnav a {
    background-color: #28324f;
    color: #fff !important;
    width: 190px;
    width: clamp(190px, calc(10vw + 74px), 240px);
  }
  .jta-port #header nav .rnav a:before {
    border-right: 1px solid #fff;
    border-top: 1px solid #fff;
    content: "";
    height: 9px;
    position: absolute;
    right: 8.33%;
    top: 50%;
    transform: rotate(45deg);
    transform-origin: 100% 0;
    width: 9px;
  }
  .jta-port #header nav .rnav a > span {
    padding-left: 15px;
    position: relative;
  }
  .jta-port #header nav .rnav a > span:before {
    background: url(../images/ico-reservation.svg) no-repeat;
    content: "";
    height: 21px;
    left: -15px;
    left: clamp(-22px, calc(-5vw + 43px), -15px);
    margin-top: -12px;
    position: absolute;
    top: 50%;
    width: 19px;
  }
  .jta-port.init #header nav .rnav a:before {
    transition: transform 0.2s ease-in-out;
  }
  .jta-port #header nav .rnav a:hover {
    background-color: #000;
  }
  .jta-port #header nav .rnav a:hover:before {
    transform: translateX(3px) rotate(45deg);
  }
  .jta-port #header nav .lang {
    padding-right: clamp(10px, calc(10vw - 106px), 30px);
    position: absolute;
    right: 190px;
    right: clamp(190px, calc(10vw + 74px), 240px);
    top: calc(50% - 30px);
  }
  .jta-port #header nav .lang a {
    padding: 0 8px;
  }
  .jta-port #header nav .lang a[href] {
    text-decoration: underline;
  }
  .jta-port #header nav .lang a[href]:hover {
    text-decoration: none;
  }
  .jta-port #header nav .lang li + li a:before {
    border-left: 1px solid;
    content: "";
    height: 16px;
    left: 0;
    margin-top: -8px;
    position: absolute;
    top: 50%;
    transform: rotate(10deg);
    transition: none;
  }
}
@media screen and (min-width: 768px) {
  .jta-port .init #header {
    transition:
      background 0.5s,
      height 0.5s;
  }
  .jta-port .init #header .logo svg {
    transition: fill 0.5s;
  }
  .jta-port .init #header nav a {
    transition:
      color 0.5s,
      background 0.2s ease-in-out;
  }
  .jta-port .head-min #header {
    background-color: #fff;
    height: 80px;
  }
  .jta-port .head-min #header .logo svg {
    fill: #231815;
  }
  .jta-port .head-min #header nav a {
    color: #282828;
  }
}
@media screen and (max-width: 767px) {
  .jta-port #header {
    height: 60px;
  }
  .jta-port #header:before {
    background-color: #fff;
    border-bottom: 1px solid #eee;
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 2;
  }
  .jta-port #header .logo {
    display: flex;
    position: relative;
    z-index: 3;
  }
  .jta-port #header .logo a {
    display: block;
    padding: 0 5vw;
  }
  .jta-port #header .logo a svg {
    height: 60px;
    width: 180px;
  }
  .jta-port #header .nav_btn {
    height: 60px;
    position: absolute;
    right: 0;
    top: 0;
    width: 60px;
    z-index: 15;
  }
  .jta-port #header .nav_btn a {
    display: block;
    height: 60px;
    position: relative;
  }
  .jta-port #header .nav_btn a:after,
  .jta-port #header .nav_btn a:before,
  .jta-port #header .nav_btn:before {
    border-top: 1px solid #28283c;
    content: "";
    left: 50%;
    margin-left: -11px;
    margin-top: -1px;
    pointer-events: none;
    position: absolute;
    top: 50%;
    width: 22px;
  }
  .jta-port.init #header .nav_btn a:after,
  .jta-port.init #header .nav_btn a:before,
  .jta-port.init #header .nav_btn:before {
    transition: all 0.3s ease-in-out;
  }
  .jta-port #header .nav_btn a:before {
    transform: translateY(-9px);
  }
  .jta-port #header .nav_btn a:after {
    transform: translateY(9px);
  }
  .jta-port #header.open .nav_btn:before {
    opacity: 0;
  }
  .jta-port #header.open .nav_btn a:before {
    transform: translateY(0) rotate(45deg);
  }
  .jta-port #header.open .nav_btn a:after {
    transform: translateY(0) rotate(-45deg);
  }
  .jta-port #header .gnav {
    -webkit-overflow-scrolling: touch;
    background-color: #fff;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
    left: 0;
    max-height: 100vh;
    overflow-y: scroll;
    padding-top: 70px;
    position: fixed;
    right: 0;
    top: 0;
    transform: translateY(-110%);
    z-index: 1;
  }
  .jta-port.init #header .gnav {
    transition: transform 0.3s ease-in-out;
  }
  .jta-port #header.open .gnav {
    transform: translateY(0);
  }
  .jta-port #header .mnav a {
    color: #282828;
    display: block;
    font-size: 1.125rem;
    padding: 15px 0;
    text-align: center;
    text-decoration: none;
  }
  .jta-port #header nav .rnav {
    padding: 5vw;
  }
  .jta-port #header nav .rnav a {
    align-items: center;
    background-color: #28324f;
    color: #fff;
    display: flex;
    font-size: 1.125rem;
    height: 60px;
    justify-content: center;
    position: relative;
    text-decoration: none;
  }
  .jta-port #header nav .rnav a:before {
    border-right: 1px solid #fff;
    border-top: 1px solid #fff;
    content: "";
    height: 9px;
    position: absolute;
    right: 8.33%;
    top: 50%;
    transform: rotate(45deg);
    transform-origin: 100% 0;
    width: 9px;
  }
  .jta-port #header nav .rnav a > span {
    padding-left: 15px;
    position: relative;
  }
  .jta-port #header nav .rnav a > span:before {
    background: url(../images/ico-reservation.svg) no-repeat;
    content: "";
    height: 21px;
    left: -22px;
    margin-top: -12px;
    position: absolute;
    top: 50%;
    width: 19px;
  }
  .jta-port #header nav .lang {
    display: flex;
    font-weight: 500;
    position: absolute;
    right: 60px;
    top: 30px;
    transform: translateY(-50%);
    z-index: 3;
  }
  .jta-port #header nav .lang a {
    color: #c9c9c9;
    display: block;
    font-size: 0.875rem;
    padding: 3px 8px;
    position: relative;
  }
  .jta-port #header nav .lang a[href] {
    color: #141414;
    text-decoration: underline;
  }
  .jta-port #header nav .lang li + li a:before {
    border-left: 1px solid #141414;
    content: "";
    height: 14px;
    left: 0;
    margin-top: -7px;
    position: absolute;
    top: 50%;
    transform: rotate(10deg);
  }
}
.jta-port #footer {
  color: #fff;
  padding: 145px 0 30px;
  position: relative;
  text-align: center;
}
.jta-port #footer .logo {
  margin-bottom: 90px;
}
.jta-port #footer .logo svg {
  fill: #fff;
  height: 48px;
  height: auto;
  width: 300px;
}
@media print, screen and (min-width: 768px) {
  .jta-port #footer {
    margin: 0 10px 10px;
  }
}
@media screen and (max-width: 767px) {
  .jta-port #footer {
    padding: 100px 0 20px;
  }
  .jta-port #footer .logo {
    margin-bottom: 70px;
  }
  .jta-port #footer .logo svg {
    height: 38px;
    width: 240px;
  }
}
.jta-port #pagetop {
  background-color: rgba(0, 0, 0, 0.8);
  border: 2px solid #fff;
  border-radius: 60px;
  bottom: 30px;
  color: #fff;
  font-size: 0.75rem;
  height: 60px;
  line-height: 1;
  opacity: 0;
  overflow: hidden;
  padding-top: 28px;
  pointer-events: none;
  position: fixed;
  right: 30px;
  text-align: center;
  text-decoration: none;
  width: 60px;
  z-index: 98;
}
.jta-port #pagetop:before {
  border-left: 1px solid #fff;
  border-top: 1px solid #fff;
  content: "";
  height: 9px;
  left: 50%;
  margin-top: -14px;
  position: absolute;
  top: 50%;
  transform: rotate(45deg);
  transform-origin: 0 0;
  width: 9px;
}
.jta-port .init #pagetop {
  transition:
    opacity 0.3s,
    background 0.2s,
    border 0.2s;
}
.jta-port #pagetop.show {
  opacity: 1;
  pointer-events: auto;
}
@media print {
  .jta-port #pagetop {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .jta-port #pagetop:hover {
    background-color: #28324f;
    border-color: #28324f;
  }
}
@media screen and (max-width: 767px) {
  .jta-port #pagetop {
    bottom: 20px;
    right: 20px;
    transform: scale(0.8);
    transform-origin: 100% 100%;
  }
}
.jta-port #footer nav {
  margin-bottom: 80px;
}
.jta-port #footer nav a {
  align-items: center;
  color: #fff;
  display: flex;
  font-size: 1rem;
  font-weight: 500;
  height: 60px;
  justify-content: center;
  letter-spacing: 0.08em;
  line-height: 1.5;
  padding: 0 15px;
  position: relative;
  text-align: center;
  text-decoration: none;
}
.jta-port #footer .mnav {
  margin-bottom: 40px;
}
.jta-port #footer .mnav ul {
  display: flex;
  justify-content: center;
}
.jta-port #footer .mnav li + li a:before {
  border-left: 1px solid;
  content: "";
  height: 14px;
  left: 0;
  margin-top: -7px;
  position: absolute;
  top: 50%;
  transition: none;
}
.jta-port #footer .rnav a {
  background-color: #28324f;
  margin: 0 auto;
  width: 240px;
}
.jta-port #footer .rnav a:before {
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
  content: "";
  height: 9px;
  position: absolute;
  right: 8.33%;
  top: 50%;
  transform: rotate(45deg);
  transform-origin: 100% 0;
  width: 9px;
}
.jta-port #footer .rnav a > span {
  padding-left: 15px;
  position: relative;
}
.jta-port #footer .rnav a > span:before {
  background: url(../images/ico-reservation.svg) no-repeat;
  content: "";
  height: 21px;
  left: -22px;
  margin-top: -12px;
  position: absolute;
  top: 50%;
  width: 19px;
}
@media print, screen and (min-width: 768px) {
  .jta-port #footer .mnav {
    display: flex;
    justify-content: center;
  }
  .jta-port #footer .mnav ul + ul li:first-child a:before {
    border-left: 1px solid;
    content: "";
    height: 14px;
    left: 0;
    margin-top: -7px;
    position: absolute;
    top: 50%;
    transition: none;
  }
  .jta-port #footer .mnav a > span {
    padding: 3px 0;
    position: relative;
  }
  .jta-port #footer .mnav a > span:after {
    border-top: 1px solid;
    bottom: 0;
    content: "";
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    transform: translateY(3px);
  }
  .jta-port.init #footer .mnav a > span:after {
    transition:
      transform 0.2s ease-in-out,
      opacity 0.2s ease-in-out;
  }
  .jta-port #footer .mnav a.current > span:after,
  .jta-port #footer .mnav a:hover > span:after {
    opacity: 1;
    transform: translateY(0);
  }
  .jta-port.init #footer .rnav a:before {
    transition: transform 0.2s ease-in-out;
  }
  .jta-port #footer .rnav a:hover {
    background-color: #000;
  }
  .jta-port #footer .rnav a:hover:before {
    transform: translateX(3px) rotate(45deg);
  }
}
@media screen and (max-width: 767px) {
  .jta-port #footer nav {
    margin-bottom: 45px;
  }
  .jta-port #footer nav a {
    font-size: 0.875rem;
    height: 30px;
  }
  .jta-port #footer .mnav li + li a:before {
    height: 12px;
    margin-top: -6px;
  }
  .jta-port #footer .rnav a {
    font-size: 0.9375rem;
    height: 50px;
    padding: 0;
    width: 230px;
  }
  .jta-port #footer .rnav a:before {
    right: 5%;
  }
  .jta-port #footer .rnav a > span {
    display: block;
    padding-left: 10px;
    width: 100%;
  }
  .jta-port #footer .rnav a > span:before {
    left: 15px;
  }
}
.jta-port #footer small {
  display: block;
  font-size: 0.875rem;
}
@media screen and (max-width: 767px) {
  .jta-port #footer small {
    font-size: 0.6875rem;
  }
}
.jta-port #container {
  font-size: 1rem;
  line-height: 1.78;
  position: relative;
}
@media screen and (max-width: 767px) {
  .jta-port #container {
    font-size: 0.875rem;
    padding-top: 60px;
  }
}

.jta-port #mainMovie {
  background-color: #000;
  height: calc(100vh - 20px);
  min-height: 600px;
  padding-top: 160px;
  position: relative;
  z-index: 1;
}

.jta-port #mainMovie .copy {
  color: #fff;
  font-size: 3.125rem;
  line-height: 1.4;
  text-align: right;
}
.jta-port #mainMovie .movie {
  height: 100%;
  left: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}
.jta-port #mainMovie .movie:after {
  background-color: #000;
  bottom: 0;
  left: 0;
  opacity: 0.3;
  position: absolute;
  right: 0;
  top: 0;
}

.jta-port #mainMovie .movie iframe {
  left: 50%;
  max-width: none;
  min-height: 100%;
  min-width: 100%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  height: 73.02vw;
  width: 230.77777778vh;
}

/* R49 (2026-08-24): static KV image fallback (tour-render.php renders
 * <div class="movie"><img ...></div> when a tour has no kvMovieUrl) had no
 * sizing rule of its own — only the sibling `iframe` selector above was
 * targeted. .movie itself is a fixed-size absolutely-positioned box
 * (height/width:100%), but the plain <img> inside rendered at its natural
 * intrinsic size, shorter than the box, leaving a visible band/gap below it
 * and reading as "smaller than the video version". No need for the
 * iframe's 230vh overscale trick (that exists only to crop out YouTube's
 * own UI chrome) — object-fit:cover fills the box cleanly for a plain
 * image.
 *
 * R51 (2026-08-24): width/height:100% (relative to .movie's own box) still
 * left a visible gap on the right/bottom for some tours — switched to fixed
 * viewport units (100vw / 100vh) instead, matching the same absolute-unit
 * approach #mainMovie itself already uses for its own height
 * (calc(100vh - 20px)) and that the sibling iframe rule above uses
 * (73.02vw / 230.77vh) — sidesteps any percentage-resolution issue up the
 * containing-block chain entirely. */
.jta-port #mainMovie .movie img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
}

.jta-port #mainMovie .movie:after {
  content: "";
  opacity: 0;
}

.jta-port #mainMovie .movie iframe {
  opacity: 1;
}

.jta-port #mainMovie .scroll {
  bottom: 60px;
  color: #fff;
  font-size: 0.875rem;
  left: 50%;
  margin-left: -60px;
  position: absolute;
  text-align: center;
  text-decoration: none;
  width: 120px;
  z-index: 5;
}
.jta-port #mainMovie .scroll span {
  display: block;
  height: 40px;
  margin-top: 10px;
  overflow: hidden;
  position: relative;
}
.jta-port #mainMovie .scroll span:after {
  animation: scroll-e7b45571 1.5s ease-in-out infinite;
  border-left: 1px solid #fff;
  content: "";
  height: 100%;
  left: 50%;
  margin-left: -1px;
  position: absolute;
  top: 0;
}
@keyframes -webkit-animation-e7b45571 {
  0% {
    top: -102%;
  }
  25% {
    top: 0;
  }
  70% {
    top: 0;
  }
  to {
    top: 130%;
  }
}
@keyframes scroll-e7b45571 {
  0% {
    top: -102%;
  }
  25% {
    top: 0;
  }
  70% {
    top: 0;
  }
  to {
    top: 130%;
  }
}

@media screen and (max-width: 767px) {
  .jta-port #mainMovie {
    height: clamp(500px, 112vw, 650px);
    min-height: 0;
    padding-top: 110px;
  }
  .jta-port #mainMovie .copy {
    font-size: 1.5625rem;
    line-height: 1.6;
  }
  .jta-port #mainMovie .scroll {
    bottom: 30px;
    font-size: 0.6875rem;
  }
  .jta-port #mainMovie .scroll span {
    height: 20px;
    margin-top: 3px;
  }
}

.jta-port .page_title {
  margin-bottom: 20px;
  position: relative;
  top: -60px;
  z-index: 3;
}
.jta-port .page_title:after {
  border-top: 1px solid #282828;
  content: "";
  display: block;
  margin: 30px auto 0;
  width: 40px;
}
.jta-port .page_title > * {
  background-color: #fff;
  text-align: center;
}
.jta-port .page_title h1 {
  font-size: 3.125rem;
  line-height: 1.3;
  margin-bottom: 20px;
  padding-top: 60px;
}
.jta-port .page_title p {
  font-size: 1.125rem;
  font-weight: 300;
  letter-spacing: 0.08em;
  line-height: 1.3;
}

@media print, screen and (min-width: 768px) {
  .jta-port .page_title:before {
    border-left: 1px solid #e5e5e5;
    content: "";
    height: 40px;
    left: 50%;
    position: absolute;
    top: 20px;
  }
}

@media screen and (max-width: 1100px) and (min-width: 768px) {
.jta-port .page_title h1 {
  font-size: clamp(1.375rem, 5vw, 3.125rem);
  line-height: 1.3;
  margin-bottom: 20px;
  padding-top: 60px;
}
}

@media screen and (max-width: 767px) {
  .jta-port .page_title {
    margin-bottom: 0;
    top: -30px;
  }
  .jta-port .page_title:after {
    margin-top: 20px;
    width: 20px;
  }
  .jta-port .page_title h1 {
    font-size: clamp(1rem, 5vw, 1.375rem);
    margin-bottom: 15px;
    padding-top: 30px;
  }
  .jta-port .page_title h1 span {
    display: block;
  }
  .jta-port .page_title p {
    font-size: 0.75rem;
  }
}
.jta-port .lead_text {
  font-size: 2.5rem;
  line-height: 1.7;
  margin-bottom: 30px;
  max-width: clamp(600px, 50vw, 650px);
}

.jta-port[lang="en"] .lead_text,
.jta-port .lead_text.ff_en,
.jta-port .ff_en .lead_text{
  font-size: 2.8rem;
  line-height: 1.4;
  margin-bottom: 30px;
}

@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .lead_text {
  font-size: 1.875rem;
  margin-bottom: 25px;
}
.jta-port[lang="en"] .lead_text,
.jta-port .lead_text.ff_en,
.jta-port .ff_en .lead_text{
  font-size: 2.5rem;
  margin-bottom: 30px;
}
}

@media screen and (max-width: 767px) {
  .jta-port .lead_text {
  font-size: clamp(1.15rem, 5vw, 1.7rem);
    line-height: 2;
    margin-bottom: 20px;
  }
.jta-port[lang="en"] .lead_text,
.jta-port .lead_text.ff_en,
.jta-port .ff_en .lead_text{
  font-size: clamp(1.4rem, 5vw, 2.2rem);
  line-height: 1.4;
  margin-bottom: 30px;
}
}
.jta-port .main_block {
  color: #fff;
  margin-bottom: 200px;
  position: relative;
}
.jta-port .main_block:before {
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  top: 500px;
  width: calc(50% + 400px);
  z-index: -1;
}

.jta-port .main_block .ph_main {
  position: relative;
}
.jta-port .main_block .text {
  padding-top: 85px;
  position: relative;
}

@media print, screen and (min-width: 768px) {
  .jta-port .main_block .ph_main {
    height: 600px;
    margin-left: auto;
    max-width: calc(100% - 50px);
    width: calc(50% + 550px);
  }
  .jta-port .main_block .text {
    max-width: 1200px;
    padding-left: 50px;
    padding-right: 50px;
    padding-bottom: 0;
    padding-bottom: clamp(80px, 3vw, 100px);
  }
  .jta-port .main_block .ph_s {
    max-width: 1300px;
  }
  .jta-port .main_block .ph_s p {
    bottom: -60px;
    position: absolute;
    right: 10px;
  }
  .jta-port [lang="en"] .main_block .text > * {
    width: 45%;
  }
  .jta-port [lang="en"] .main_block .text .lead_text {
    width: 550px;
  }
}



@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .main_block {
    margin-bottom: 60px;
  }
  .jta-port .main_block:before {
    bottom: 10px;
    top: 50px;
    width: 90vw;
  }
  .jta-port .main_block .ph_main {
    height: 400px;
    margin-left: 5vw;
    max-width: none;
    width: auto;
  }
  .jta-port .main_block .text {
    padding-top: 50px;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: clamp(40px, 3vw, 80px);
  }
  .jta-port .main_block .text > * {
    margin-left: 5vw;
    margin-right: 10vw;
  }
}

@media screen and (max-width: 1200px) and (min-width: 768px) {
  .jta-port .main_block .ph_s {
    padding-right: 5vw;
    position: relative;
    z-index: 2;
    max-width: none;
  }
  .jta-port .main_block .ph_s:before {
    background-color: #fff;
    bottom: 0;
    content: "";
    height: 50%;
    left: 0;
    position: absolute;
    right: 0;
    z-index: -1;
  }
  .jta-port .main_block .ph_s p {
    margin-left: auto;
    width: 66.66vw;
    bottom: auto;
    position: static;
    right: auto;
  }
}

@media screen and (max-width: 767px) {
  .jta-port .main_block {
    margin-bottom: 60px;
  }
  .jta-port .main_block:before {
    bottom: 10px;
    top: 50px;
    width: 90vw;
  }
  .jta-port .main_block .ph_main {
    height: 200px;
    margin-left: 5vw;
  }
  .jta-port .main_block .text {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  .jta-port .main_block .text > * {
    margin-left: 5vw;
    margin-right: 10vw;
  }
  .jta-port .main_block .ph_s {
    padding-right: 5vw;
    position: relative;
    z-index: 2;
  }
  .jta-port .main_block .ph_s:before {
    background-color: #fff;
    bottom: 0;
    content: "";
    height: 75%;
    left: 0;
    position: absolute;
    right: 0;
    z-index: -1;
  }
  .jta-port .main_block .ph_s p {
    margin-left: auto;
    width: 66.66vw;
  }
}
.jta-port .section_title {
  font-size: 4.6rem;
  font-style: italic;
  font-weight:lighter!important;
  left: 30px;
  line-height: 1;
  position: absolute;
  top: 0;
  transform: rotate(90deg);
  transform-origin: 0 100%;
  z-index: 10;
}
.jta-port .section_title:after {
  border-top: 1px solid;
  content: "";
  display: block;
  margin-top: 20px;
  width: 40px;
}
@media screen and (max-width: 767px) {
  .jta-port .section_title {
    font-size: 2.4rem;
    left: 4vw;
    line-height: 1;
  }
  .jta-port .section_title:after {
    margin-top: 10px;
    width: 20px;
  }
}
.jta-port .concept_section {
  margin-bottom: 140px;
  position: relative;
}
.jta-port .concept_section > header {
  color: #fff;
  height: 600px;
  margin-bottom: 40px;
  position: relative;
  z-index: 5;
}
.jta-port .concept_section > header li {
  position: relative;
  padding-left: 70px;
}
.jta-port .concept_section > header li + li:after,
.jta-port .concept_section > header li + li:before {
  border-top: 1px solid;
  content: "";
  position: absolute;
  transform: rotate(45deg);
  width: 1em;
}
.jta-port .concept_section > header li + li:after {
  transform: rotate(-45deg);
}
.jta-port .concept_section .concept_main_img {
  height: 700px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.jta-port .concept_section .concept_main_img .img {
  height: 700px;
  position: relative;
}
.jta-port .concept_section .concept_main_img .img ul {
  height: 100%;
  position: relative;
}
.jta-port .concept_section .concept_main_img .img ul li {
  position: absolute;
  width: 36%;
}
.jta-port .concept_section .concept_main_img .img ul li:first-child {
  height: 100%;
  left: 0;
  top: 0;
  width: 64%;
}
.jta-port .concept_section .concept_main_img .img ul li:nth-child(2) {
  height: calc(50% - 30px);
  right: 0;
  top: 0;
}
.jta-port .concept_section .concept_main_img .img ul li:nth-child(3) {
  bottom: 0;
  height: calc(50% + 30px);
  right: 0;
}
.jta-port .concept_section .concept_main_img .slick-dots {
  bottom: 72px;
  display: flex;
  justify-content: flex-end;
  left: 0;
  position: absolute;
  right: 0;
  z-index: 5;
}
.jta-port .concept_section .concept_main_img .slick-dots li button {
  background: none;
  border: 0;
  height: 0;
  margin: 0;
  overflow: hidden;
  padding: 32px 0 0;
  position: relative;
  width: 32px;
}
.jta-port .concept_section .concept_main_img .slick-dots li button:after {
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 100%;
  bottom: 8px;
  content: "";
  left: 8px;
  position: absolute;
  right: 8px;
  top: 8px;
  transition: background 0.2s;
}
.jta-port
  .concept_section
  .concept_main_img
  .slick-dots
  li.slick-active
  button:after {
  background-color: #998064;
}
@media print, screen and (min-width: 768px) {
  .jta-port .concept_section .section_title {
    top: 20px;
  }
  .jta-port .concept_section > header {
    padding-top: 290px;
  }
  .jta-port .concept_section > header ul {
    display: flex;
    font-size: 2.375rem;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    padding: 0px;
  }
  @media screen and (min-width: 1160px) {
    .jta-port .concept_section > header ul {
      font-size: 2.5rem;
    }
  }
  .jta-port .concept_section > header li + li {
    padding-left: 70px;
  }
  .jta-port .concept_section > header li + li:after,
  .jta-port .concept_section > header li + li:before {
    left: 35px;
    margin-left: -0.5em;
    top: 52%;
  }
  .jta-port .concept_section .concept_main_img .slick-dots {
    margin: 0 auto;
    max-width: 1360px;
    padding-left: 22px;
    padding-right: 22px;
  }
  .jta-port
    .concept_section
    .concept_main_img
    .slick-dots
    li
    button:hover:after {
    background-color: #998064;
  }
}
@media screen and (max-width: 767px) {
  .jta-port .concept_section {
    margin-bottom: 60px;
  }
  .jta-port .concept_section > header {
    height: 270px;
    padding-top: 80px;
  }
  .jta-port .concept_section > header ul {
    font-size: 1.3125rem;
    line-height: 1.2;
    text-align: center;
  }
  .jta-port .concept_section > header li + li {
    padding-top: 20px;
  }
  .jta-port .concept_section > header li + li:after,
  .jta-port .concept_section > header li + li:before {
    left: 50%;
    margin-left: -0.5em;
    top: 10px;
  }
  .jta-port .concept_section .concept_main_img,
  .jta-port .concept_section .concept_main_img .img {
    height: 300px;
  }
  .jta-port .concept_section .concept_main_img .slick-dots {
    bottom: 40px;
    right: calc(5vw - 5px);
  }
  @media screen and (max-width: 767px) {
    .jta-port .concept_section #carousel1.concept_main_img .slick-dots {
      bottom: 15px !important;
    }
  }
  .jta-port .concept_section .concept_main_img .slick-dots li button {
    padding-top: 20px;
    width: 20px;
  }
  .jta-port .concept_section .concept_main_img .slick-dots li button:after {
    bottom: 5px;
    left: 5px;
    right: 5px;
    top: 5px;
  }
}

.jta-port .concept_contents {
  position: relative;
  z-index: 6;
}
.jta-port .concept_contents > * {
  background: #fff;
  padding-top: 70px;
  position: relative;
  z-index: 1;
}
.jta-port .concept_contents .hokkaido {
  max-height: var(--map-max-h, none);
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  position: absolute;
  right: 15px;
  top: -135px;
}
.jta-port .concept_contents .hokkaido img {
  max-height: 100%;
  object-fit: contain;
  object-position: center top;
}
.jta-port .concept_contents .hokkaido[style*="--map-max-h"] img {
  width: auto;
}

.jta-port .concept_contents .contents {
  margin-top: 100px;
}
.jta-port .concept_contents .contents dl {
  text-align: center;
}
.jta-port .concept_contents .contents dt {
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 10px;
  position: relative;
}
.jta-port .concept_contents .contents dd {
  font-size: 1.125rem;
  line-height: 1.7;
  font-weight: 200!important;
}

.jta-port[lang="en"] .concept_contents .contents dd {
  font-size: 1.25rem;
  line-height: 1.7;
  font-weight: 200!important;
}

.jta-port .concept_contents .contents dd:after {
  border-top: 1px solid;
  content: "";
  display: block;
  margin: 25px auto 0;
  width: 40px;
}

@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .concept_contents .hokkaido {
    margin-top: -50px;
    overflow: hidden;
    pointer-events: none;
    text-align: right;
    position: relative;
    width: 100% !important;
    top: auto;
    z-index: -2 !important;
  }
  .jta-port .concept_contents .hokkaido img {
    max-width: 100%;
    width: 400px;
  }
}


@media print, screen and (min-width: 920px) {
  .jta-port .concept_contents .contents {
    display: flex;
    justify-content: space-between;
  }
  .jta-port .concept_contents .contents li {
    max-width: 30%;
  }
  .jta-port .concept_contents .contents dt {
    padding-top: 50px;
  }

.jta-port .concept_contents .contents dd {
  font-size: clamp(0.9rem, 3vw, 1rem);
  line-height: 1.66;
  font-weight: 200!important;
}

.jta-port[lang="en"] .concept_contents .contents dd {
  font-size: 1.1rem;
  line-height: 1.4;
  font-weight: 200!important;
}
}

  .jta-port .concept_contents .contents dt .ico {
    left: 0;
    position: absolute;
    right: 0;
    top: -30px;
  }
  .jta-port .concept_contents .contents dd > span {
    align-items: center;
    display: flex;
    flex-direction: column;
    height: 3.4em;
    justify-content: center;
  }
  .jta-port [lang="en"] .concept_contents p {
    width: 550px;
  }
  .jta-port [lang="en"] .concept_contents .contents p,
  .jta-port [lang="en"] .concept_contents .hokkaido {
    width: auto;
  }
  .jta-port [lang="en"] .concept_contents .contents dd > span {
    height: 5.1em;
    flex-direction: column;
  }


  .jta-port .main_block .fzl {
    max-width: 800px;
  }
  

/* R•: 920px以上、Conceptの.hokkaido(地図画像、右側に絶対配置)に本文が
   かぶらないようにする対応。タイトル(.lead_text)と本文の最初の数行
   (.fzl-clear)だけ幅を狭め、画像の高さを過ぎた残りの本文(.fzl-flow)は
   通常通りフル幅に戻す。920px未満は何も変更していない。
   (このブロックは独立したメディアクエリとして自己完結させている。
   直前の@media (min-width:920px)は途中の閉じ括弧で早期に終わってしまっている
   既存ファイルの構造上、ここに続けて書くと920px未満にも適用されてしまうため) */
@media print, screen and (min-width: 920px) {
  .jta-port .concept_contents .lead_text {
    max-width: 550px;
  }
  .jta-port .concept_contents .fzl {
    width: auto;
  }
  .jta-port .concept_contents .fzl-clear {
    display: block;
    max-width: 550px;
  }
  .jta-port .concept_contents .fzl-flow {
    display: block;
    max-width: none;
  }
}


@media screen and (max-width: 919px) and (min-width: 768px) {
  .jta-port .concept_contents .contents {
    margin: 20px -5vw;
  }
  .jta-port .concept_contents .contents li {
    align-items: center;
    display: flex;
  }
  .jta-port .concept_contents .contents li + li {
    margin-top: 10px;
  }
  .jta-port .concept_contents .contents li > p {
    width: 45%;
  }
  .jta-port .concept_contents .contents li p img {
    height: 400px;
    object-fit: cover;
  }
  .jta-port .concept_contents .contents dl {
    width: 55%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
  }
  .jta-port .concept_contents .contents dt .ico {
    display: block;
    margin: 0 auto;
    width: 50px;
  }
}


.jta-port .concept_section dt.ff_en.fwl {
  font-size: 2rem;
}

@media screen and (max-width: 767px) {
  .jta-port .concept_section dt.ff_en.fwl {
    padding-top: 0;
  }
  .jta-port .concept_contents > * {
    padding-top: 35px;
  }
  .jta-port .concept_contents .hokkaido {
    margin-top: -50px;
    overflow: hidden;
    pointer-events: none;
    text-align: right;
    position: relative;
    width: 100% !important;
    top: auto;
    z-index: -2 !important;
    margin-bottom: 20px;
  }
  .jta-port .concept_contents .hokkaido img {
    width: 100%;
    max-width: 380px;
  }
  .jta-port .concept_contents .contents {
    margin: 20px -10vw;
  }
  .jta-port .concept_contents .contents li {
    align-items: center;
    display: flex;
  }
  .jta-port .concept_contents .contents li + li {
    margin-top: 10px;
  }
  .jta-port .concept_contents .contents li > p {
    width: 45%;
  }
  .jta-port .concept_contents .contents li p img {
    height: 230px;
    -o-object-fit: cover;
    object-fit: cover;
  }
  .jta-port .concept_contents .contents dl {
    width: 55%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
  }
  .jta-port .concept_contents .contents dt {
    font-size: 1.125rem;
    margin-bottom: 10px;
  }
.jta-port[lang="en"] .concept_contents .contents dt {
    font-size: 1.6rem;
    margin-bottom: 10px;
  }

  .jta-port .concept_contents .contents dt .ico {
    display: block;
    margin: 0 auto;
    width: 45px;
  }

  .jta-port .concept_contents .contents dd {
    font-size: 0.8125rem;
    line-height: 1.8;
    padding: 0 15px;
  }

.jta-port[lang="en"] .concept_contents .contents dd {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 200!important;
}
  .jta-port .concept_contents .contents dd:after {
    margin-top: 15px;
    width: 20px;
  }
}

.jta-port .concept_slider {
  background-color: #ebeff3;
  margin-top: 140px;
  overflow: hidden;
  padding: 80px 30px 140px;
  position: relative;
}

.jta-port .concept_slider .slide {
  position: relative;
  width: 200%;
}

.jta-port .concept_slider .slide .img {
  opacity: 0.5;
  transform: translateX(40px) scale(0.5);
  transform-origin: 0 100%;
}
.jta-port .init .concept_slider .slide .img {
  transition:
    transform 0.6s ease,
    opacity 0.6s;
}
.jta-port .concept_slider .slide .img.show {
  opacity: 1;
  transform: translateX(0) scale(1);
}
.jta-port .concept_slider .slide .img.bl {
  transform: translateX(-40px) scale(1);
}
.jta-port .concept_slider .nav {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  margin-top: 30px;
}
.jta-port .concept_slider .nav .count {
  display: flex;
  font-size: 1.875rem;
  line-height: 1;
}
.jta-port .concept_slider .nav .count .total {
  padding-left: 30px;
  position: relative;
}
.jta-port .concept_slider .nav .count .total:before {
  border-left: 1px solid;
  bottom: 0;
  content: "";
  left: 15px;
  position: absolute;
  top: 0;
  transform: rotate(38deg);
}
.jta-port .concept_slider .nav .arrow {
  border: 1px solid #28324f;
  border-radius: 100%;
  display: block;
  height: 30px;
  margin-left: 25px;
  position: relative;
  width: 30px;
}
.jta-port .concept_slider .nav .arrow:before {
  border-right: 1px solid;
  border-top: 1px solid;
  content: "";
  height: 9px;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: rotate(45deg);
  transform-origin: 100% 0;
  width: 9px;
}
.jta-port .concept_slider .nav .arrow.l {
  transform: rotate(180deg);
}
.jta-port .concept_slider .slick-dots {
  display: flex;
  justify-content: flex-end;
}
.jta-port .concept_slider .slick-dots li {
  margin-left: 3px;
}
.jta-port .concept_slider .slick-dots li button {
  background: none;
  border: 0;
  height: 0;
  margin: 0;
  overflow: hidden;
  padding: 10px 0 0;
  position: relative;
  width: 20px;
}
.jta-port .concept_slider .slick-dots li button:after {
  background-color: #ccc;
  bottom: 3px;
  content: "";
  left: 0;
  position: absolute;
  right: 0;
  top: 4px;
  transition: background 0.2s;
}
.jta-port .concept_slider .slick-dots li.slick-active button:after {
  background-color: #282828;
}


@media print, screen and (min-width: 768px) {

  .jta-port .concept_slider .slick-dots li button:hover:after {
    background-color: #282828;
  }
  .jta-port .concept_slider .nav .arrow.l {
    display: none !important;
  }
  .jta-port .concept_slider .dots {
    bottom: -50px;
    position: absolute;
    right: 30px;
  }
}

.jta-port .concept_slider .lead {
  font-size: clamp(1.25rem, 2vw, 1.6875rem);
  line-height: 1.7;
  margin: 0 auto;
  margin-bottom: 70px;
  max-width: 1000px;
  width: 85%;
  text-align: center;
  }

@media screen and (max-width: 767px) {
  .jta-port .concept_slider .lead {
    font-size: 1rem;
    margin-bottom: 30px;
    width:100%;
    max-width: 400px;
  }
  .jta-port[lang="en"] .concept_slider .lead {
    font-size: 1.15rem;
    line-height: 1.4!important;
    margin-bottom: 30px;
    width:100%;
    max-width: 400px;
  }
  .jta-port .concept_slider {
    margin-top: 60px;
    padding: 50px 8vw 55px;
  }
  .jta-port .concept_slider .slide .img {
    transform: translateX(10px) scale(0.5);
  }
  .jta-port .concept_slider .slide .img img {
    height: 50.66667vw;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%;
  }
  .jta-port .concept_slider .nav {
    justify-content: space-between;
    margin-top: 20px;
  }
  .jta-port .concept_slider .nav .count {
    flex-shrink: 0;
    font-size: 1.40625rem;
    margin-left: auto;
  }
  .jta-port .concept_slider .nav .count .total {
    padding-left: 20px;
  }
  .jta-port .concept_slider .nav .count .total:before {
    left: 10px;
  }
  .jta-port .concept_slider .nav .arrow {
    flex-shrink: 0;
    height: 25px;
    margin-left: 15px;
    width: 25px;
  }
  .jta-port .concept_slider .nav .arrow.l {
    margin-left: 0;
    margin-right: 15px;
  }
  .jta-port .concept_slider .nav .arrow:before {
    height: 8px;
    right: 8px;
    width: 8px;
  }
  .jta-port .concept_slider .dots {
    width: calc(100% - 170px);
  }
  .jta-port .concept_slider .slick-dots li {
    margin-left: 0;
    padding: 0 1px;
    width: 100%;
  }
  .jta-port .concept_slider .slick-dots li button {
    width: 100%;
  }
}

.jta-port .features_section {
  color: #fff;
  margin-bottom: 140px;
  position: relative;
  z-index: 1;
}
.jta-port .features_section:before {
  bottom: 10px;
  content: "";
  left: 0;
  width: 100%;
  max-width: 80%;
  position: absolute;
  top: 200px;
  z-index: -1;
}
.jta-port .features_img_main {
  height: 500px;
  position: relative;
  width: calc(50% + 200px);
}
.jta-port .features_contents {
  margin: 100px 0 100px 0;
  max-width: calc(100% - 20vw);
  padding-left: 0;
  font-size: 1.0625rem;
  line-height: 2.4;
  padding: 0px 10vw 0px 18vw;
}
.jta-port[lang="en"]  .features_contents,
.jta-port .features_contents.ff_en,
.jta-port .ff_en  .features_contents{
  margin: 100px 0 100px 0;
  max-width: calc(100% - 20vw);
  padding-left: 0;
  font-size: 1.1875rem;
  line-height: 2.4;
  padding: 0px 10vw 0px 18vw;
}

.jta-port .features_contents .lead {
  font-size: 3.375rem;
  line-height: 1.6;
  margin-bottom: 20px;
}
.jta-port .features_contents p + p {
  margin-top: 1.2em;
}

.jta-port .features_img_column {
  position: relative;
  z-index: 2;
}
.jta-port .features_img_column:before {
  background-color: #fff;
  bottom: 0;
  content: "";
  height: 50%;
  left: -5px;
  position: absolute;
  right: -5px;
  z-index: -1;
}
.jta-port .features_img_column ul {
  display: flex;
  justify-content: space-between;
}

@media print, screen and (min-width: 768px) {
  .jta-port .features_section .section_title {
    top: 550px;
  }
  .jta-port .features_img_sub li {
    position: absolute;
  }
  .jta-port .features_img_sub .img01 {
    left: 71%;
    top: 10px;
    width: 280px;
  }
  .jta-port .features_img_sub .img02 {
    max-width: 510px;
    right: 0;
    top: 550px;
    width: 33%;
  }
  .jta-port .features_img_column li {
    width: calc(50% - 5px);
  }
  .jta-port [lang="en"] .features_contents {
    font-size: 1.25rem;
    padding-right: 40%;
  }
}
@media screen and (min-width: 1360px) {
  .jta-port [lang="en"] .features_contents {
    padding-right: 520px;
  }
}
@media screen and (min-width: 1300px) {
  .jta-port .features_img_sub .img02 {
    top: 590px;
  }
}


@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .features_img_sub .img02 {
    max-width: 510px;
    right: -3vw;
    top: 550px;
    width: 33%;
    overflow: hidden;
  }
.jta-port .features_contents {
  margin: 100px 0 100px 0;
  max-width: calc(100% - 20vw);
  padding-left: 0;
  font-size: 0.96875rem;
  line-height: 2.6;
  padding: 0px 10vw 0px 18vw;
}
.jta-port[lang="en"]  .features_contents,
.jta-port .features_contents.ff_en,
.jta-port .ff_en  .features_contents{
  margin: 100px 0 100px 0;
  max-width: calc(100% - 20vw);
  padding-left: 0;
  font-size: 1.125rem;
  line-height: 2.4;
  padding: 0px 10vw 0px 18vw;
}
}

@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .features_img_main {
    height:  400px;
    width: 92vw;
  }
.jta-port .features_section:before {
  bottom: 10px;
  content: "";
  left: 0;
  width: 100%;
  max-width: 90%;
  position: absolute;
  top: 200px;
  z-index: -1;
}
}

  .jta-port .features_contents .lead {
  font-size: 3rem;
  margin-bottom: 25px;
}
.jta-port[lang="en"] .features_contents .lead,
.jta-port .features_contents .lead.ff_en,
.jta-port .ff_en .features_contents .lead{
  font-size: 3.4rem;
  margin-bottom: 30px;
}

@media screen and (max-width: 767px) {
  .jta-port .features_contents .lead {
  font-size: clamp(1.4rem, 20vw, 2.4rem);
    line-height: 2;
    margin-bottom: 20px;
  }
.jta-port[lang="en"]  .features_contents .lead,
.jta-port  .features_contents .lead.ff_en,
.jta-port .ff_en  .features_contents .lead{
  font-size: clamp(2rem, 1vw, 2.4rem);
  line-height: 1.4;
  margin-bottom: 30px;
}
}

@media screen and (max-width: 767px) {
  .jta-port .features_section {
    margin-bottom: 80px;
  }
  .jta-port .features_section:before {
    bottom: 10px;
    max-width: 100%;
    top: 140px;
    width: 100%;
  }
  .jta-port .features_section .section_title {
    top: 200px;
  }
  .jta-port .features_img_main {
    height: clamp(190px, 40vw, 300px);
    width: 92vw;
  }
  .jta-port .features_img_sub {
    display: flex;
  }
  .jta-port .features_img_sub .img01 {
    padding: 0 8vw;
    width: 45.4%;
  }
  .jta-port .features_img_sub .img02 {
    padding: 8vw 0;
    width: 54.6%;
  }
  .jta-port .features_img_column {
    padding-right: 8vw;
  }
  .jta-port .features_img_column:before {
    height: 50%;
    left: 0;
    right: 0;
  }
  .jta-port .features_contents {
    margin: 40px 0 40px 0;
    max-width: 100%;
    padding-left: 0;
    font-size: 0.9rem;
    padding: 0px 5vw 0px 18vw;
  }

    .jta-port[lang="en"] .features_contents,
.jta-port .features_contents.ff_en,
.jta-port .ff_en .features_contents{
    margin: 40px 0 40px 0;
    max-width: 100%;
    padding-left: 0;
    font-size: 1.1rem;
    line-height: 1.7;
    padding: 0px 5vw 0px 18vw;
  }

  .jta-port .features_contents p + p {
    margin-top: 0.8125rem;
  }

  /* R10 (moved from PHP inline style, 2026-08-21): EN body copy at 22px to
     close a 2x height gap vs. JP at this width. JP keeps the 0.8125rem default
     above. No class on the <div> (matches JP's bare markup) — targeted
     positionally as the element right after .lead ff_en. */
  .jta-port [lang="en"] .features_contents > div {
    font-size: 22px;
  }
}

.jta-port .plan_section {
  margin-bottom: 140px;
  overflow: hidden;
  padding: 140px 0;
  position: relative;
}
.jta-port .plan_section .section_title {
  color: #fff;
}
.jta-port .plan_section .tab {
  display: flex;
  position: relative;
  z-index: 3;
}
.jta-port .plan_section .tab > li {
  width: 50%;
}
.jta-port .plan_section .tab a {
  align-items: center;
  background-color: #999;
  color: #fff;
  display: flex;
  height: 120px;
  line-height: 1.4;
  position: relative;
  text-decoration: none;
}
.jta-port .plan_section .tab a dt {
  font-size: 1.875rem;
  line-height: 1.2;
  margin-bottom: 10px;
}
.jta-port .plan_section .tab a li {
  position: relative;
}
.jta-port .plan_section .tab a li + li:after,
.jta-port .plan_section .tab a li + li:before {
  border-top: 1px solid;
  content: "";
  position: absolute;
  transform: rotate(45deg);
  width: 1em;
}
.jta-port .plan_section .tab a li + li:after {
  transform: rotate(-45deg);
}
.jta-port .plan_section .tab a:after {
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 14px 9px 0;
  content: "";
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 100%;
  transform: translate(-50%, -100%);
}
.jta-port .init .plan_section .tab a:after {
  transition:
    transform 0.2s ease-in-out,
    border 0.2s ease-in-out;
}
.jta-port .plan_section .tab a.active {
  background-color: #28324f;
}
.jta-port .plan_section .tab a.active:after {
  border-top-color: #28324f;
  transform: translate(-50%);
}
.jta-port .plan_section .contents {
  background-color: #fff;
  position: relative;
  z-index: 2;
  
}
.jta-port .plan_section .plan_contents {
  overflow: hidden;
  position: relative;
}
.jta-port .plan_section .plan_contents > section {
  padding: 70px 0 100px;
  position: relative;
  width: 100%;
}
.jta-port .init .plan_section .plan_contents > section {
  transition: transform 0.5s;
}
.jta-port .plan_section .plan_contents.plan_b > section {
  transform: translateX(-100%);
}
.jta-port .plan_section .plan_contents > section + section {
  left: 100%;
}
.jta-port .plan_section .plan_contents > section.hide {
  position: absolute;
  top: 0;
}
.jta-port .plan_section .plan_contents h3 {
  border-bottom: 1px solid #28283c;
  font-size: 2.5rem;
  line-height: 1.2;
  margin-bottom: 50px;
  padding-bottom: 8px;
}
.jta-port .plan_section .plan_contents .type {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.5rem;
  line-height: 1.3;
  margin-bottom: 40px;
}
.jta-port .plan_section .plan_contents .type li {
  padding-right: 40px;
  position: relative;
  font-size: 2.125rem;
}
.jta-port .plan_section .plan_contents .type li:after,
.jta-port .plan_section .plan_contents .type li:before {
  border-top: 2px solid;
  content: "";
  margin-right: -0.5em;
  margin-top: -1px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: scale(0.8) rotate(45deg);
  width: 1em;
}
.jta-port .plan_section .plan_contents .type li:after {
  transform: scale(0.8) rotate(-45deg);
}
.jta-port .plan_section .plan_contents .type li:last-child {
  padding-right: 0;
}
.jta-port .plan_section .plan_contents .type li:last-child:after,
.jta-port .plan_section .plan_contents .type li:last-child:before {
  content: none;
}
.jta-port .plan_section .plan_contents p + p {
  margin-top: 1.2em;
}
.jta-port .plan_section .plan_contents .ph_main {
  display: flex;
  justify-content: space-between;
  margin-top: 70px;
}
.jta-port .plan_section .plan_contents .schedule {
  margin-top: 70px;
}
.jta-port .plan_section .plan_contents .schedule + .schedule {
  margin-top: 100px;
}
.jta-port .plan_section .plan_contents .schedule h4 {
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 50px;
  white-space: nowrap;
}
.jta-port .plan_section .plan_contents .schedule ol {
  position: relative;
}
.jta-port .plan_section .plan_contents .schedule ol:before {
  border-left: 1px solid #28283c;
  bottom: 0;
  content: "";
  left: 30px;
  position: absolute;
  top: 0;
}
.jta-port .plan_section .plan_contents .schedule li {
  margin-bottom: 50px;
  padding-left: max(70px, 8%);
  position: relative;
  z-index: 2;
}
.jta-port .plan_section .plan_contents .schedule li:last-child {
  margin-bottom: 0;
}
.jta-port .plan_section .plan_contents .schedule .clock {
  background-color: #28283c;
  border-radius: 100%;
  height: 40px;
  left: 10px;
  position: absolute;
  top: -5px;
  width: 40px;
}
.jta-port .plan_section .plan_contents .schedule .clock > span {
  background-color: #fff;
  border-radius: 100%;
  height: 6px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  z-index: 2;
}
.jta-port .plan_section .plan_contents .schedule .clock:after,
.jta-port .plan_section .plan_contents .schedule .clock:before {
  border-left: 2px solid #fff;
  bottom: 50%;
  content: "";
  left: 50%;
  margin-left: -1px;
  position: absolute;
  transform-origin: 50% 100%;
}
.jta-port .plan_section .plan_contents .schedule .clock:before {
  height: 27.5%;
  transform: rotate(var(--clock-hand-deg, 0deg));
}
.jta-port .plan_section .plan_contents .schedule .clock:after {
  height: 37.5%;
}
.jta-port .plan_section .plan_contents .schedule .clock.hour0730:before {
  transform: rotate(225deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour0930:before {
  transform: rotate(285deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour1430:before {
  transform: rotate(75deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour1500:before {
  transform: rotate(90deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour1530:before {
  transform: rotate(105deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour1600:before {
  transform: rotate(120deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour1900:before {
  transform: rotate(210deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.hour2200:before {
  transform: rotate(300deg);
}
.jta-port .plan_section .plan_contents .schedule .clock.time30:after {
  transform: rotate(180deg);
}
.jta-port .plan_section .plan_contents .detail {
  margin-top: 90px;
}
.jta-port .plan_section .plan_contents .detail h4 {
  border-bottom: 1px solid #28283c;
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 30px;
  padding-bottom: 8px;
}
.jta-port .plan_section .plan_contents .detail > dl {
  margin-bottom: 25px;
  padding-bottom: 25px;
  position: relative;
}
.jta-port .plan_section .plan_contents .detail > dl:after {
  background-image: linear-gradient(
    90deg,
    #787885,
    #787885 2px,
    transparent 0,
    transparent 7px
  );
  background-repeat: repeat-x;
  background-size: 7px 1px;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  right: 0;
}
.jta-port .plan_section .plan_contents .detail > dl:last-child {
  margin-bottom: 0;
}
.jta-port .plan_section .plan_contents .detail > dl > dt:before {
  content: "【";
  margin-right: 0.5em;
}
.jta-port .plan_section .plan_contents .detail > dl > dt:after {
  content: "】";
  margin-left: 0.5em;
}
.jta-port .plan_section .plan_contents .detail dd .name {
  display: block;
  font-size: 1.125rem;
  margin-bottom: 0.3em;
}
.jta-port .plan_section .plan_contents .detail dd .map {
  margin-top: 30px;
}
.jta-port .plan_section .plan_contents .detail dd .map_link {
  margin-top: 15px;
  text-align: right;
}
.jta-port .plan_section .plan_contents .detail dd .option + .option {
  margin-top: 2em;
}
.jta-port .plan_section .plan_contents .detail dd .option dt {
  margin-bottom: 0.5em;
}
.jta-port .plan_section .plan_contents .detail dd .option dd {
  font-size: 0.875rem;
}
.jta-port .plan_section .plan_contents .detail dd .option ol {
  margin-bottom: 0.5em;
  margin-top: 0.5em;
}
.jta-port .plan_section .plan_contents .detail dd strong {
  display: block;
  font-size: 1.125rem;
  line-height: 1.6;
  margin-right: 0.5em;
}
.jta-port [lang="en"] .plan_section .plan_contents .detail dd strong {
  display: block;
}
.jta-port .plan_section .plan_contents .detail dd .notes {
  font-size: 0.875rem;
}
.jta-port .plan_section .plan_contents .detail dd .dot_li > li + li {
  margin-top: 0.8em;
}
@media print, screen and (min-width: 768px) {
  .jta-port .plan_section {
    overflow: hidden;
  }
  .jta-port .plan_section .section_title {
    top: -1.4em;
  }
  .jta-port .plan_section .contents,
  .jta-port .plan_section .tab {
    margin-left: 150px;
    max-width: 1000px;
  }
  .jta-port .plan_section .tab a {
    font-size: 0.9375rem;
    padding-left: 7%;
    padding-top: 5px;
  }
  .jta-port .plan_section .tab a ul {
    display: flex;
    white-space: nowrap;
  }
  .jta-port .plan_section .tab a li + li {
    padding-left: 30px;
  }
  .jta-port .plan_section .tab a li + li:after,
  .jta-port .plan_section .tab a li + li:before {
    left: 15px;
    margin-left: -0.5em;
    top: 50%;
  }
  .jta-port .plan_section .contents:before {
    background-color: #fff;
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    top: 0;
    width: 2000px;
    z-index: -1;
  }
  .jta-port .plan_section .plan_contents {
    font-size: 1.125rem;
    line-height: 1.7;
  }
  .jta-port .plan_section .plan_contents > section {
    padding-left: 80px;
  }
  .jta-port .plan_section .plan_contents .ph_main li {
    max-width: 220px;
    width: calc(25% - 6px);
  }
  .jta-port .plan_section .plan_contents .schedule li {
    min-height: 140px;
    padding-right: 250px;
    position: relative;
  }
  .jta-port .plan_section .plan_contents .schedule li.wide {
    min-height: 0;
    padding-right: 0;
  }
  .jta-port .plan_section .plan_contents .schedule dl {
    display: flex;
    margin-bottom: 5px;
  }
  .jta-port .plan_section .plan_contents .schedule dt {
    flex-shrink: 0;
    width: 100px;
  }
  .jta-port [lang="en"] .plan_section .plan_contents .schedule dd {
    font-size: 1.1875rem;
    line-height: 1.6;
  }

  .jta-port [lang="ja"] .plan_section .plan_contents .schedule li p {
    text-align: justify;
  }
  .jta-port .plan_section .plan_contents .schedule li .map {
    margin-top: 20px;
  }
  /* R16: fixed banner ratio so any source image (incl. portrait maps like
     niseko's map_niseko_pc.png) crops into the same shape — previously
     unconstrained on mobile, letting a tall image stretch the whole layout. */
  .jta-port .plan_section .plan_contents .schedule li .map img {
    width: 100%;
    height: auto;
    aspect-ratio: 742 / 370;
    object-fit: cover;
  }

  .jta-port .plan_section .plan_contents .schedule li .ph {
    flex: 0 0 200px;
    min-width: 260px;
    position: static;
    margin-left: auto !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
  }

    .jta-port .plan_section .plan_contents .schedule li .ph img {
    width: 100%;
    display: block;
  }
  .jta-port .plan_section .plan_contents .detail {
    font-size: 1rem;
  }
  .jta-port .plan_section .plan_contents .detail > dl {
    display: flex;
  }
  .jta-port .plan_section .plan_contents .detail > dl > dt {
    flex-shrink: 0;
    font-size: 1.0625rem !important;
    line-height: 1.3;
    padding-top: 0.2em;
    width: calc(100px + 8%);
  }
  .jta-port [lang="en"] .plan_section .plan_contents .detail > dl > dt:before {
    margin-left: -0.5em;
  }
  .jta-port [lang="en"] .plan_section .plan_contents .detail > dl > dt:after {
    margin-right: -0.5em;
  }
}
@media screen and (min-width: 1200px) {
  .jta-port .plan_section .tab a {
    font-size: 1rem;
  }
}


.jta-port .plan_section .plan_contents .schedule dd.bold {
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .jta-port .plan_section {
    margin-bottom: 60px;
    padding: 50px 0 60px 8vw;
  }
  .jta-port .plan_section .section_title {
    margin-bottom: 30px;
    position: static;
    transform: none;
  }
  .jta-port .plan_section .tab a {
    font-size: 0.75rem;
    height: 140px;
    justify-content: center;
    line-height: 1.4;
    text-align: center;
  }
  .jta-port .plan_section .tab a dt {
    font-size: 1.3125rem;
    margin-bottom: 10px;
  }
  .jta-port .plan_section .tab a li + li {
    padding-top: 6px;
  }
  .jta-port .plan_section .tab a li + li:after,
  .jta-port .plan_section .tab a li + li:before {
    left: 50%;
    margin-left: -0.3em;
    top: 3px;
    width: 0.6em;
  }
  .jta-port .plan_section .tab a:after {
    border-width: 10px 6px 0;
  }
  .jta-port .plan_section .plan_contents > section {
    padding: 40px 8vw 50px;
  }
  .jta-port .plan_section .plan_contents h3 {
    font-size: 1.6875rem;
    margin-bottom: 30px;
    padding-bottom: 10px;
  }
  .jta-port .plan_section .plan_contents .type li {
    font-size: 1.625rem;
    line-height: 1.1;
  }
  .jta-port .plan_section .plan_contents .ph_main {
    flex-wrap: wrap;
    margin-top: 30px;
  }
  .jta-port .plan_section .plan_contents .ph_main li {
    width: calc(50% - 5px);
  }
  .jta-port .plan_section .plan_contents .ph_main li:nth-child(n + 3) {
    margin-top: 10px;
  }
  .jta-port .plan_section .plan_contents .ph_main li img {
    width: 100%;
  }
  .jta-port .plan_section .plan_contents .schedule {
    margin-top: 40px;
  }
  .jta-port .plan_section .plan_contents .schedule + .schedule {
    margin-top: 50px;
  }
  .jta-port .plan_section .plan_contents .schedule h4 {
    font-size: 1.5625rem;
    margin-bottom: 35px;
  }
  .jta-port .plan_section .plan_contents .schedule ol:before {
    left: 15px;
  }

  .jta-port .plan_section .plan_contents .schedule li {
    margin-bottom: 50px;
    padding-left: max(50px, 6%);
    position: relative;
    z-index: 2;
  }
  .jta-port .plan_section .plan_contents .schedule .clock {
    height: 30px;
    left: 0;
    top: -2px;
    width: 30px;
  }
  .jta-port .plan_section .plan_contents .schedule dt {
    font-size: 0.9375rem;
  }
  .jta-port .plan_section .plan_contents .schedule dd {
    font-size: 0.875rem;
    line-height: 1.3;
  }
  .jta-port .plan_section .plan_contents .schedule li .map {
    margin-top: 20px;
  }
  .jta-port .plan_section .plan_contents .schedule li .map img {
    width: 100%;
    height: auto;
    aspect-ratio: 742 / 370;
    object-fit: cover;
  }

  .jta-port .plan_section .plan_contents .detail {
    margin-top: 60px;
  }
  .jta-port .plan_section .plan_contents .detail h4 {
    font-size: 1.5625rem;
    margin-bottom: 20px;
  }
  .jta-port .plan_section .plan_contents .detail > dl {
    line-height: 1.6;
  }
  .jta-port .plan_section .plan_contents .detail > dl > dt {
    font-size: 0.9375rem;
    margin-bottom: 0.3em;
  }
  .jta-port .plan_section .plan_contents .detail dd .name {
    font-size: 0.9375rem;
    margin-bottom: 0;
  }
  .jta-port .plan_section .plan_contents .detail dd .map {
    margin-top: 20px;
  }
  .jta-port .plan_section .plan_contents .detail dd .map img {
    aspect-ratio: 480/1584;
  }
  .jta-port .plan_section .plan_contents .detail dd .map_link {
    margin-top: 10px;
  }
  .jta-port .plan_section .plan_contents .detail dd .option + .option {
    margin-top: 1.5em;
  }
  .jta-port .plan_section .plan_contents .detail dd .option dt {
    font-size: 0.9375rem;
    margin-bottom: 0.5em;
  }
  .jta-port .plan_section .plan_contents .detail dd .option dd {
    font-size: 0.875rem;
  }
  .jta-port .plan_section .plan_contents .detail dd .option ol {
    font-size: 0.75rem;
  }
  .jta-port .plan_section .plan_contents .detail dd strong {
    display: block;
    margin-bottom: -5px;
    font-size: 0.9375rem;
  }
  .jta-port .plan_section .plan_contents .detail dd strong span {
    font-size: 70%;
  }
  .jta-port [lang="en"] .plan_section .plan_contents .detail dd strong span {
    font-size: 50%;
  }
  .jta-port .plan_section .plan_contents .detail dd .notes {
    display: block;
    font-size: 0.71875rem;
  }
}

.jta-port .bnr_section {
  margin-bottom: 140px;
  position: relative;
}
.jta-port .bnr_section a {
  display: block;
  text-decoration: none;
}
.jta-port .bnr_section a,
.jta-port .bnr_section a .ph {
  position: relative;
}
.jta-port .bnr_section a dl {
  background-color: #f2f2f2;
  text-align: center;
}

.jta-port .bnr_section a dt {
  height: auto;
  color: #000;
  font-size: 1.125rem;
  line-height: 1.8;
  position: relative;
  margin: 15px 0 20px 0;
}

.jta-port .bnr_section a dt .ico,
.jta-port .bnr_section a dt .logo {
  margin-bottom: 10px;
}
.jta-port .bnr_section a dt .ico {
  padding-top: 10px;
}
.jta-port .bnr_section a dt .logo img {
  width: 272px;
}

.jta-port .bnr_section a dd {
  align-items: center;
  color: #fff;
  display: flex;
  font-size: 1.125rem;
  height: 100px;
  justify-content: center;
  position: relative;
}

.jta-port[lang="en"] .bnr_section a dd{
  align-items: center;
  color: #fff;
  display: flex;
  font-size: 1.4rem;
  height: 100px;
  justify-content: center;
  position: relative;
}

.jta-port .bnr_section a dd.ff_en,
.jta-port [lang="en"] .bnr_section a dd {
  font-size: 1.4rem;
}
.jta-port .bnr_section a dd:before {
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
  content: "";
  height: 9px;
  position: absolute;
  right: 8.33%;
  top: 50%;
  transform: rotate(45deg);
  transform-origin: 100% 0;
  width: 9px;
}

@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .bnr_section a dt .ico,
  .jta-port .bnr_section a dt .logo {
    margin-bottom: 10px;
  }
}

@media print, screen and (min-width: 768px) {
  .jta-port .bnr_section {
    overflow: hidden;
  }
  .jta-port .bnr_section .section_title {
    top: -80px;
  }
  .jta-port .bnr_section a {
    align-items: center;
    display: flex;
    height: 500px;
    margin-left: 150px;
    overflow: hidden;
    width: calc(100vw - 310px + 50%);
  }
  .jta-port .bnr_section a .ph {
    height: 100%;
    left: 225px;
    min-width: 730px;
    position: absolute;
    top: 0;
    width: calc(50vw - 310px + 50%);
  }
  .jta-port .bnr_section a dl {
    max-width: 550px;
    position: relative;
    width: 54%;
    z-index: 3;
  }
  .jta-port.init .bnr_section a dd {
    transition: background 0.2s ease-in-out;
  }
  .jta-port.init .bnr_section a dd:before {
    transition: transform 0.2s ease-in-out;
  }
  .jta-port .bnr_section a:hover dd {
    background-color: #000;
  }
  .jta-port .bnr_section a:hover dd:before {
    transform: translateX(3px) rotate(45deg);
  }
}

.jta-port[lang="en"] .bnr_section a dt{
   font-size:1.2rem;
}


@media screen and (max-width: 1100px) and (min-width: 768px) {
  .jta-port .bnr_section a dt .ico img {
    width: 30px;
  }
  .jta-port .bnr_section a dt .logo img {
    width: 200px;
  }
}

@media screen and (max-width: 767px) {
  .jta-port .bnr_section {
    margin-bottom: 60px;
  }
  .jta-port .bnr_section .section_title {
    top: -40px;
  }
  .jta-port .bnr_section .contents {
    margin-left: 25vw;
  }
  .jta-port .bnr_section a .ph {
    height: 180px;
  }
  .jta-port .bnr_section a .ph img {
    width: 100%;
  }
  .jta-port .bnr_section a dt {
    font-size: 0.875rem;
    line-height: 1.65;
    align-items: center;
    display: flex;
    flex-direction: column;
    height: auto;
    justify-content: center;
    margin-top: 0px;
  }
.jta-port[lang="en"] .bnr_section a dt {
    font-size: 1rem;
    line-height: 1.65;
    align-items: center;
    display: flex;
    flex-direction: column;
    height: auto;
    justify-content: center;
    margin-top: 0px;
}

  .jta-port .bnr_section a dt .ico,
  .jta-port .bnr_section a dt .logo {
    display: block;
    padding: 0px;
    align-items: center;
    display: flex;
    justify-content: center;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
  .jta-port .bnr_section a dt .ico {
    padding-top: 20px;
  }
  .jta-port .bnr_section a dt .ico img {
    width: 30px;
  }
  .jta-port .bnr_section a dt .logo img {
    width: 185px;
  }
  .jta-port .bnr_section a dd {
    font-size: 0.875rem;
    height: 60px;
    line-height: 1.3;
  }

  .jta-port[lang="en"] .bnr_section a dd{
  align-items: center;
  color: #fff;
  display: flex;
  font-size: 1.2rem;
  height: 100px;
  justify-content: center;
  position: relative;
}

  .jta-port .bnr_section a dd.ff_en,
  .jta-port [lang="en"] .bnr_section a dd {
    font-size: 0.9375rem;
  }
  .jta-port .bnr_section a dd:before {
    right: 5%;
  }
}
.jta-port .dot_li > li {
  padding-left: 1em;
  position: relative;
}
.jta-port .dot_li > li:before {
  content: "・";
  left: 0;
  position: absolute;
  top: 0;
}
.jta-port .num_li {
  list-style: decimal;
  margin-left: 1.2em;
}
.jta-port .alphabet_li {
  list-style: lower-latin;
  margin-left: 1.8em;
}
.jta-port .mt_li > li + li {
  margin-top: 0.8em;
}
.jta-port .features_section:before,
.jta-port .main_block:before,
.jta-port .plan_section,
.jta-port .plan_section .plan_contents .schedule .clock {
  background-color: #282828;
  background-color: var(--tour-color-code, #282828);
}

.jta-port .bnr_section a dd {
  background-color: #28324f;
  background-color: var(--tour-color-code, #28324f);
}
.jta-port .ico,
.jta-port .logo {
  align-items: center;
  display: flex;
  justify-content: center;
}

.jta-port#tour footer,
.jta-port#tour header {
  font-size: 160%;
}
.jta-port .mv_main_img .img {
  height: 100%;
  overflow: hidden;
  width: 100%;
}
.jta-port .mv_main_img .img img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  width: 100%;
}

/* ===== next inline <style> block ===== */

.jta-port#tour {
  font-size: 62.5% !important;
}
.jta-port div.features_contents div p {
  margin-top: 1.5em;
}
.jta-port .plan_section .plan_contents div p + p {
  margin-top: 1.2em;
}

.jta-port .plan_section .plan_contents .schedule li > div {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}
.jta-port .plan_section .plan_contents .schedule li > div:has(.ph) {
  min-height: 140px;
}

.jta-port .concept_section .concept_contents .contents dd > span {
  height: 100%;
}

.jta-port .plan_section .plan_contents .schedule li div.two {
  flex: 1 1 0;
  min-width: 0;
}

/* R53 (2026-08-24): right-alignment fix for .ph (thumbnail, no/with body
 * text) is applied at its actual authoritative rule instead — the
 * "@media print, screen and (min-width: 768px)" block further down
 * already sets margin-left on .ph with !important, which was silently
 * overriding a same-specificity non-important rule placed here. Changed
 * that rule's margin-left from 0 to auto directly rather than duplicating
 * it here with a second !important (would've worked, but two competing
 * !important declarations on the same property/selector is more confusing
 * to maintain than just fixing the one that actually wins). */

.jta-port .plan_section .plan_contents .schedule li p {
  font-size: clamp(0.84375rem, 20vw, 0.9375rem)!important;
  line-height: 2 !important;
  margin: 10px 0 0 100px;
}

@media screen and (max-width: 1000px) and (min-width: 768px) {
    .jta-port .plan_section .plan_contents .schedule li > div {
    display: block !important;
  }
  .jta-port .plan_section .plan_contents .schedule li .ph {
    display: block !important;
    flex: 0 0 auto !important;
    margin-top: 20px;
    width: 100%;
    margin-left: 0 !important;
    margin-right: auto !important;
    text-align: right !important;
  }
  
  .jta-port .plan_section .plan_contents .schedule li .ph img {
    width: 100%;
  }
  .jta-port .plan_section .plan_contents .schedule li .map {
    margin-top: 20px;
    width: 100%;
  }
  .jta-port .plan_section .plan_contents .schedule li div.two {
    width: 100%;
  }
.jta-port .plan_section .plan_contents .schedule li p {
  font-size: 0.875rem!important;
  line-height: 2 !important;
  margin: 10px 0 0 100px;
}
}

@media screen and (max-width: 767px) {
  .jta-port .plan_section .plan_contents .schedule li .ph {
    margin-top: 20px;
    width: 100%;
  }
  .jta-port .plan_section .plan_contents .schedule li .ph img {
    width: 100%;
  }
  .jta-port .plan_section .plan_contents .schedule li > div {
    display: block; /* 汎用のflexユーティリティを打ち消す */
  }
  .jta-port .plan_section .plan_contents .schedule li div.two {
    width: 100%;
  }
  .jta-port .plan_section .plan_contents .schedule li p {
    font-size: clamp(0.8125rem, 2.5vw, 0.84375rem)!important;
    line-height: 1.7 !important;
    margin: 10px 0 0 0px;
  }
}

/* ===== next inline <style> block ===== */

/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/
.jta-port *,
.jta-port :after,
.jta-port :before {
  border: 0 solid #e5e7eb;
  box-sizing: border-box;
}
.jta-port :after,
.jta-port :before {
  --tw-content: "";
}
.jta-port {
  -webkit-text-size-adjust: 100%;
  font-feature-settings: normal;
  font-family:
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    Segoe UI,
    Roboto,
    Helvetica Neue,
    Arial,
    Noto Sans,
    sans-serif,
    Apple Color Emoji,
    Segoe UI Emoji,
    Segoe UI Symbol,
    Noto Color Emoji;
  font-variation-settings: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
}

.jta-port {
  line-height: inherit;
  margin: 0;
}
.jta-port hr {
  border-top-width: 1px;
  color: inherit;
  height: 0;
}
.jta-port abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6 {
  font-size: inherit;
  font-weight: inherit;
}
.jta-port a {
  color: inherit;
  text-decoration: inherit;
}
.jta-port b,
.jta-port strong {
  font-weight: bolder;
}

.jta-port code,
.jta-port kbd,
.jta-port pre,
.jta-port samp {
  font-feature-settings: normal;
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    Liberation Mono,
    Courier New,
    monospace;
  font-size: 1em;
  font-variation-settings: normal;
}

.jta-port small {
  font-size: 80%;
}
.jta-port sub,
.jta-port sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
.jta-port sub {
  bottom: -0.25em;
}
.jta-port sup {
  top: -0.5em;
}
.jta-port table {
  border-collapse: collapse;
  border-color: inherit;
  text-indent: 0;
}
.jta-port button,
.jta-port input,
.jta-port optgroup,
.jta-port select,
.jta-port textarea {
  font-feature-settings: inherit;
  color: inherit;
  font-family: inherit;
  font-size: 100%;
  font-variation-settings: inherit;
  font-weight: inherit;
  line-height: inherit;
  margin: 0;
  padding: 0;
}
.jta-port button,
.jta-port select {
  text-transform: none;
}
.jta-port [type="button"],
.jta-port [type="reset"],
.jta-port [type="submit"],
.jta-port button {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}
.jta-port :-moz-focusring {
  outline: auto;
}
.jta-port :-moz-ui-invalid {
  box-shadow: none;
}
.jta-port progress {
  vertical-align: baseline;
}
.jta-port ::-webkit-inner-spin-button,
.jta-port ::-webkit-outer-spin-button {
  height: auto;
}
.jta-port [type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
.jta-port ::-webkit-search-decoration {
  -webkit-appearance: none;
}
.jta-port ::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
.jta-port summary {
  display: list-item;
}
.jta-port blockquote,
.jta-port dd,
.jta-port dl,
.jta-port figure,
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6,
.jta-port hr,
.jta-port p,
.jta-port pre {
  margin: 0;
}
.jta-port fieldset {
  margin: 0;
}
.jta-port fieldset,
.jta-port legend {
  padding: 0;
}
.jta-port menu,
.jta-port ol,
.jta-port ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.jta-port dialog {
  padding: 0;
}
.jta-port textarea {
  resize: vertical;
}
.jta-port input::-moz-placeholder,
.jta-port textarea::-moz-placeholder {
  color: #9ca3af;
  opacity: 1;
}
.jta-port input::placeholder,
.jta-port textarea::placeholder {
  color: #9ca3af;
  opacity: 1;
}
.jta-port [role="button"],
.jta-port button {
  cursor: pointer;
}
.jta-port :disabled {
  cursor: default;
}
.jta-port audio,
.jta-port canvas,
.jta-port embed,
.jta-port iframe,
.jta-port img,
.jta-port object,
.jta-port svg,
.jta-port video {
  display: block;
  vertical-align: middle;
}
.jta-port img,
.jta-port video {
  height: auto;
  max-width: 100%;
}
.jta-port [hidden] {
  display: none;
}
.jta-port *,
.jta-port :after,
.jta-port :before {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
}
.jta-port ::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
}
.jta-port .container {
  width: 100%;
}
@media (min-width: 640px) {
  .jta-port .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .jta-port .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .jta-port .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .jta-port .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .jta-port .container {
    max-width: 1536px;
  }
}
.jta-port .collapse {
  visibility: collapse;
}
.jta-port .static {
  position: static;
}
.jta-port .fixed {
  position: fixed;
}
.jta-port .absolute {
  position: absolute;
}
.jta-port .relative {
  position: relative;
}
.jta-port .block {
  display: block;
}
.jta-port .flex {
  display: flex;
}
.jta-port .table {
  display: table;
}
.jta-port .grid {
  display: grid;
}
.jta-port .contents {
  display: contents;
}
.jta-port .hidden {
  display: none;
}
.jta-port .flex-grow {
  flex-grow: 1;
}
.jta-port .border-collapse {
  border-collapse: collapse;
}
.jta-port .transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y))
    rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.jta-port .resize {
  resize: both;
}
.jta-port .flex-col {
  flex-direction: column;
}
.jta-port .flex-wrap {
  flex-wrap: wrap;
}
.jta-port .border {
  border-width: 1px;
}
.jta-port .italic {
  font-style: italic;
}
.jta-port .underline {
  text-decoration-line: underline;
}
.jta-port .filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow);
}
.jta-port .transition {
  transition-duration: 0.15s;
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    -webkit-backdrop-filter;
  transition-property:
    color, background-color, border-color, text-decoration-color, fill, stroke,
    opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    backdrop-filter,
    -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== next inline <style> block ===== */

:root {
  --vc-clr-primary: #000;
  --vc-clr-secondary: #090f207f;
  --vc-clr-white: #fff;
  --vc-icn-width: 1.2em;
  --vc-nav-width: 30px;
  --vc-nav-height: 30px;
  --vc-nav-border-radius: 0;
  --vc-nav-color: var(--vc-clr-primary);
  --vc-nav-color-hover: var(--vc-clr-secondary);
  --vc-nav-background: transparent;
  --vc-pgn-width: 12px;
  --vc-pgn-height: 4px;
  --vc-pgn-margin: 4px;
  --vc-pgn-border-radius: 0;
  --vc-pgn-background-color: var(--vc-clr-secondary);
  --vc-pgn-active-color: var(--vc-clr-primary);
}
.jta-port .carousel__next,
.jta-port .carousel__prev {
  align-items: center;
  background: transparent;
  background: var(--vc-nav-background);
  border: 0;
  border-radius: 0;
  border-radius: var(--vc-nav-border-radius);
  box-sizing: content-box;
  color: #000;
  color: var(--vc-nav-color);
  cursor: pointer;
  display: flex;
  font-size: 30px;
  font-size: var(--vc-nav-height);
  height: 30px;
  height: var(--vc-nav-height);
  justify-content: center;
  margin: 0 10px;
  padding: 0;
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  width: var(--vc-nav-width);
}
.jta-port .carousel__next:hover,
.jta-port .carousel__prev:hover {
  color: #090f207f;
  color: var(--vc-nav-color-hover);
}
.jta-port .carousel__next--disabled,
.jta-port .carousel__prev--disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.jta-port .carousel__prev {
  left: 0;
}
.jta-port .carousel__next {
  right: 0;
}
.jta-port .carousel--rtl .carousel__prev {
  left: auto;
  right: 0;
}
.jta-port .carousel--rtl .carousel__next {
  left: 0;
  right: auto;
}
.jta-port .carousel {
  box-sizing: border-box;
  overscroll-behavior: none;
  position: relative;
  text-align: center;
  touch-action: pan-y;
}
.jta-port .carousel.is-dragging {
  touch-action: none;
}
.jta-port .carousel * {
  box-sizing: border-box;
}
.jta-port .carousel__track {
  display: flex;
  padding: 0 !important;
  position: relative;
}
.jta-port .carousel__viewport {
  overflow: hidden;
}
.jta-port .carousel__sr-only {
  clip: rect(0, 0, 0, 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.jta-port .carousel__icon {
  fill: currentColor;
  height: 1.2em;
  height: var(--vc-icn-width);
  width: 1.2em;
  width: var(--vc-icn-width);
}
.jta-port .carousel__pagination {
  display: flex;
  justify-content: center;
  line-height: 0;
  list-style: none;
  margin: 10px 0 0;
}
.jta-port .carousel__pagination-button {
  background: transparent;
  border: 0;
  cursor: pointer;
  display: block;
  margin: 0;
  padding: 4px;
  padding: var(--vc-pgn-margin);
}
.jta-port .carousel__pagination-button:after {
  background-color: #090f207f;
  background-color: var(--vc-pgn-background-color);
  border-radius: 0;
  border-radius: var(--vc-pgn-border-radius);
  content: "";
  display: block;
  height: 4px;
  height: var(--vc-pgn-height);
  width: 12px;
  width: var(--vc-pgn-width);
}
.jta-port .carousel__pagination-button--active:after,
.jta-port .carousel__pagination-button:hover:after {
  background-color: #000;
  background-color: var(--vc-pgn-active-color);
}
.jta-port .carousel__slide {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  margin: 0;
  position: relative;
  scroll-snap-stop: auto;
  transform: translateZ(0);
}

/* ===== source: journal ===== */
.jta-port .main {
  margin-left: auto;
  margin-right: auto;
  max-width: 984px;
}

.jta-port .article_title,
.jta-port h4 {
  color: #000;
  font-style: normal;
}
.jta-port .article_title {
  border-bottom: 1px solid #999;
  font-size: 40px;
  font-weight: 700;
  line-height: 65px;
  margin-bottom: 43px;
  margin-top: 70px;
  padding-bottom: 50px;
}
.jta-port h4 {
  font-size: 20px;
  font-weight: 400;
  line-height: 43px;
}
.jta-port[lang="ja"] .article_title,
.jta-port[lang="ja"] h4 {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .article_title,
.jta-port[lang="en"] h4,
.jta-port .article_title.ff_en,
.jta-port .ff_en .article_title,
.jta-port h4.ff_en,
.jta-port .ff_en h4{
  font-family: var(--f-en-serif);
}

.jta-port h3 {
  color: #000;
  font-size: 34px;
  font-style: normal;
  font-weight: 700;
  line-height: 65px;
}
.jta-port[lang="ja"] h3 {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] h3,
.jta-port h3.ff_en,
.jta-port .ff_en h3{
  font-family: var(--f-en-serif);
}

.jta-port .sns_logo_left {
  margin-right: 19px;
}
.jta-port .sns_logo_right {
  margin-right: 22px;
}
.jta-port .sns_logo_container {
  display: flex;
  justify-content: flex-end;
  margin-top: 27px;
}

/* Article-level language switcher (R13 2026-08-24) — auto-shown only when
   jta_journal_language_switcher_links() finds other locales with real
   content for the article; see journal-pages.php. */
.jta-port .journal-lang-switcher {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e0e0e0;
  font-size: 0.875rem;
}
.jta-port .journal-lang-switcher__label {
  font-weight: 600;
  text-transform: lowercase;
  margin-right: 4px;
  color: #333;
}
.jta-port .journal-lang-switcher__list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}
.jta-port .journal-lang-switcher__list li {
  margin: 0;
  padding: 0 10px;
  border-right: 1px solid #999;
  line-height: 1;
}
.jta-port .journal-lang-switcher__list li:last-child {
  border-right: none;
  padding-right: 0;
}
.jta-port .journal-lang-switcher__list li:first-child {
  padding-left: 0;
}
.jta-port .journal-lang-switcher__list a {
  color: inherit;
  text-decoration: none;
}
.jta-port .journal-lang-switcher__list a:hover {
  text-decoration: underline;
}
.jta-port .header_container {
  margin-bottom: 170px;
}
.jta-port .news_and_blog_container {
  margin-top: 70px;
}
.jta-port .member_register_container {
  margin-top: 76px;
}
.jta-port .footer_container {
  margin-top: 75px;
}
@media screen and (max-width: 1024px) {
  .jta-port .header_container {
    margin-bottom: 100px;
  }
  .jta-port .article_title {
    font-size: 28px;
    margin-left: 20px;
    margin-right: 20px;
    padding-left: 0;
    padding-right: 0;
  }
}

/* ===== next inline <style> block ===== */

.jta-port .article-detail p {
  color: #000;
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: 43px;
}
.jta-port[lang="ja"] .article-detail p {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .article-detail p,
.jta-port .article-detail p.ff_en,
.jta-port .ff_en .article-detail p{
  font-family: var(--f-en-serif);
}

.jta-port .article-detail h3 {
  border-bottom: 1px solid #999;
  font-size: 34px;
  padding-bottom: 30px;
  padding-top: 40px;
}

.jta-port .article-detail h3,
.jta-port .article-detail h4 {
  color: #000;
  font-style: normal;
  font-weight: 700;
  line-height: 65px;
}
.jta-port[lang="ja"] .article-detail h3,
.jta-port[lang="ja"] .article-detail h4 {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .article-detail h3,
.jta-port[lang="en"] .article-detail h4,
.jta-port .article-detail h3.ff_en,
.jta-port .ff_en .article-detail h3,
.jta-port .article-detail h4.ff_en,
.jta-port .ff_en .article-detail h4{
  font-family: var(--f-en-serif);
}

.jta-port .article-detail h4 {
  border-left: 5px solid #999;
  font-size: 26px;
  margin-top: 40px;
  padding-left: 20px;
}

.jta-port .article-detail h6 {
  color: #000;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 43px;
}
.jta-port[lang="ja"] .article-detail h6 {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .article-detail h6,
.jta-port .article-detail h6.ff_en,
.jta-port .ff_en .article-detail h6{
  font-family: var(--f-en-serif);
}

.jta-port .article-detail a {
  color: #ec8850;
  color: var(--, #ec8850);
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.jta-port[lang="ja"] .article-detail a {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .article-detail a,
.jta-port .article-detail a.ff_en,
.jta-port .ff_en .article-detail a{
  font-family: var(--f-en-serif);
}

.jta-port .article-detail hr {
  background-color: #747c91;
  border: none;
  height: 3px;
}
.jta-port hr + p {
  padding-bottom: 46px;
  padding-top: 38px;
}
.jta-port .article-detail .button_container {
  margin-bottom: 50px;
  margin-top: 50px;
  text-align: center;
}
.jta-port .article-detail .mark_container {
  background: #f2f4fa;
  margin-top: 50px;
  padding-left: 39px;
  padding-right: 44px;
}
.jta-port .article-detail .mark_container h6 {
  padding-top: 30px;
}
.jta-port .article-detail .mark_container p {
  padding-bottom: 35px;
}
.jta-port .article-detail mark mark {
  background-color: transparent;
  color: inherit;
  padding: 0;
}
.jta-port .article-detail .button_container a {
  background: #28324f;
  border: 0.973px solid #28324f;
  color: #fff;
  padding: 20px 66px 22px 38px;
  text-align: center;
}
.jta-port .article-detail button a {
  color: #fff;
}
.jta-port .article-detail img {
  margin-top: 50px;
}
@media screen and (max-width: 1024px) {
  .jta-port .article-detail p {
    padding-left: 20px;
    padding-right: 20px;
  }
  .jta-port .article-detail h3 {
    font-size: 28px;
    margin-left: 20px;
    margin-right: 20px;
    padding-left: 0;
    padding-right: 0;
  }
  .jta-port .article-detail h4 {
    font-size: 22px;
    line-height: 30px;
  }
  .jta-port .button_container {
    background: #28324f;
    margin: 50px 20px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .jta-port .article-detail .button_container {
    padding-bottom: 10px;
    padding-top: 10px;
  }
  .jta-port .article-detail .button_container a {
    background: #28324f;
    border: 0.973px solid #28324f;
    color: #fff;
    padding: 0;
  }
  .jta-port .article-detail .mark_container p {
    padding-left: 0;
    padding-right: 0;
  }
  .jta-port .article-detail hr {
    margin-left: 20px;
    margin-right: 20px;
  }
}

/* ===== next inline <style> block ===== */

/*! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com*/
.jta-port *,
.jta-port :after,
.jta-port :before {
  border: 0 solid #e5e7eb;
  box-sizing: border-box;
}
.jta-port :after,
.jta-port :before {
  --tw-content: "";
}
.jta-port {
  -webkit-text-size-adjust: 100%;
  font-feature-settings: normal;
  font-family:
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    Segoe UI,
    Roboto,
    Helvetica Neue,
    Arial,
    Noto Sans,
    sans-serif,
    Apple Color Emoji,
    Segoe UI Emoji,
    Segoe UI Symbol,
    Noto Color Emoji;
  font-variation-settings: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
}
.jta-port {
  line-height: inherit;
  margin: 0;
}
.jta-port hr {
  border-top-width: 1px;
  color: inherit;
  height: 0;
}
.jta-port abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6 {
  font-size: inherit;
  font-weight: inherit;
}
.jta-port a {
  color: inherit;
  text-decoration: inherit;
}
.jta-port b,
.jta-port strong {
  font-weight: bolder;
}
.jta-port code,
.jta-port kbd,
.jta-port pre,
.jta-port samp {
  font-feature-settings: normal;
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    Liberation Mono,
    Courier New,
    monospace;
  font-size: 1em;
  font-variation-settings: normal;
}
.jta-port small {
  font-size: 80%;
}
.jta-port sub,
.jta-port sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
.jta-port sub {
  bottom: -0.25em;
}
.jta-port sup {
  top: -0.5em;
}
.jta-port table {
  border-collapse: collapse;
  border-color: inherit;
  text-indent: 0;
}
.jta-port button,
.jta-port input,
.jta-port optgroup,
.jta-port select,
.jta-port textarea {
  font-feature-settings: inherit;
  color: inherit;
  font-family: inherit;
  font-size: 100%;
  font-variation-settings: inherit;
  font-weight: inherit;
  line-height: inherit;
  margin: 0;
  padding: 0;
}
.jta-port button,
.jta-port select {
  text-transform: none;
}
.jta-port [type="button"],
.jta-port [type="reset"],
.jta-port [type="submit"],
.jta-port button {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}
.jta-port :-moz-focusring {
  outline: auto;
}
.jta-port :-moz-ui-invalid {
  box-shadow: none;
}
.jta-port progress {
  vertical-align: baseline;
}
.jta-port ::-webkit-inner-spin-button,
.jta-port ::-webkit-outer-spin-button {
  height: auto;
}
.jta-port [type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
.jta-port ::-webkit-search-decoration {
  -webkit-appearance: none;
}
.jta-port ::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
.jta-port summary {
  display: list-item;
}
.jta-port blockquote,
.jta-port dd,
.jta-port dl,
.jta-port figure,
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6,
.jta-port hr,
.jta-port p,
.jta-port pre {
  margin: 0;
}
.jta-port fieldset {
  margin: 0;
}
.jta-port fieldset,
.jta-port legend {
  padding: 0;
}
.jta-port menu,
.jta-port ol,
.jta-port ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.jta-port dialog {
  padding: 0;
}
.jta-port textarea {
  resize: vertical;
}
.jta-port input::-moz-placeholder,
.jta-port textarea::-moz-placeholder {
  color: #9ca3af;
  opacity: 1;
}
.jta-port input::placeholder,
.jta-port textarea::placeholder {
  color: #9ca3af;
  opacity: 1;
}
.jta-port [role="button"],
.jta-port button {
  cursor: pointer;
}
.jta-port :disabled {
  cursor: default;
}
.jta-port audio,
.jta-port canvas,
.jta-port embed,
.jta-port iframe,
.jta-port img,
.jta-port object,
.jta-port svg,
.jta-port video {
  display: block;
  vertical-align: middle;
}
.jta-port img,
.jta-port video {
  height: auto;
  max-width: 100%;
}
.jta-port [hidden] {
  display: none;
}
.jta-port *,
.jta-port :after,
.jta-port :before {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
}
.jta-port ::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
}
.jta-port .container {
  width: 100%;
}
@media (min-width: 640px) {
  .jta-port .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .jta-port .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .jta-port .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .jta-port .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .jta-port .container {
    max-width: 1536px;
  }
}
.jta-port .collapse {
  visibility: collapse;
}
.jta-port .static {
  position: static;
}
.jta-port .fixed {
  position: fixed;
}
.jta-port .absolute {
  position: absolute;
}
.jta-port .relative {
  position: relative;
}
.jta-port .block {
  display: block;
}
.jta-port .flex {
  display: flex;
}
.jta-port .table {
  display: table;
}
.jta-port .grid {
  display: grid;
}
.jta-port .contents {
  display: contents;
}
.jta-port .hidden {
  display: none;
}
.jta-port .flex-grow {
  flex-grow: 1;
}
.jta-port .border-collapse {
  border-collapse: collapse;
}
.jta-port .transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y))
    rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.jta-port .resize {
  resize: both;
}
.jta-port .flex-col {
  flex-direction: column;
}
.jta-port .flex-wrap {
  flex-wrap: wrap;
}
.jta-port .border {
  border-width: 1px;
}
.jta-port .italic {
  font-style: italic;
}
.jta-port .underline {
  text-decoration-line: underline;
}
.jta-port .filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow);
}
.jta-port .transition {
  transition-duration: 0.15s;
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    -webkit-backdrop-filter;
  transition-property:
    color, background-color, border-color, text-decoration-color, fill, stroke,
    opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    backdrop-filter,
    -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== next inline <style> block ===== */

:root {
  --vc-clr-primary: #000;
  --vc-clr-secondary: #090f207f;
  --vc-clr-white: #fff;
  --vc-icn-width: 1.2em;
  --vc-nav-width: 30px;
  --vc-nav-height: 30px;
  --vc-nav-border-radius: 0;
  --vc-nav-color: var(--vc-clr-primary);
  --vc-nav-color-hover: var(--vc-clr-secondary);
  --vc-nav-background: transparent;
  --vc-pgn-width: 12px;
  --vc-pgn-height: 4px;
  --vc-pgn-margin: 4px;
  --vc-pgn-border-radius: 0;
  --vc-pgn-background-color: var(--vc-clr-secondary);
  --vc-pgn-active-color: var(--vc-clr-primary);
}
.jta-port .carousel__next,
.jta-port .carousel__prev {
  align-items: center;
  background: transparent;
  background: var(--vc-nav-background);
  border: 0;
  border-radius: 0;
  border-radius: var(--vc-nav-border-radius);
  box-sizing: content-box;
  color: #000;
  color: var(--vc-nav-color);
  cursor: pointer;
  display: flex;
  font-size: 30px;
  font-size: var(--vc-nav-height);
  height: 30px;
  height: var(--vc-nav-height);
  justify-content: center;
  margin: 0 10px;
  padding: 0;
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  width: var(--vc-nav-width);
}
.jta-port .carousel__next:hover,
.jta-port .carousel__prev:hover {
  color: #090f207f;
  color: var(--vc-nav-color-hover);
}
.jta-port .carousel__next--disabled,
.jta-port .carousel__prev--disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.jta-port .carousel__prev {
  left: 0;
}
.jta-port .carousel__next {
  right: 0;
}
.jta-port .carousel--rtl .carousel__prev {
  left: auto;
  right: 0;
}
.jta-port .carousel--rtl .carousel__next {
  left: 0;
  right: auto;
}
.jta-port .carousel {
  box-sizing: border-box;
  overscroll-behavior: none;
  position: relative;
  text-align: center;
  touch-action: pan-y;
}
.jta-port .carousel.is-dragging {
  touch-action: none;
}
.jta-port .carousel * {
  box-sizing: border-box;
}
.jta-port .carousel__track {
  display: flex;
  padding: 0 !important;
  position: relative;
}
.jta-port .carousel__viewport {
  overflow: hidden;
}
.jta-port .carousel__sr-only {
  clip: rect(0, 0, 0, 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.jta-port .carousel__icon {
  fill: currentColor;
  height: 1.2em;
  height: var(--vc-icn-width);
  width: 1.2em;
  width: var(--vc-icn-width);
}
.jta-port .carousel__pagination {
  display: flex;
  justify-content: center;
  line-height: 0;
  list-style: none;
  margin: 10px 0 0;
}
.jta-port .carousel__pagination-button {
  background: transparent;
  border: 0;
  cursor: pointer;
  display: block;
  margin: 0;
  padding: 4px;
  padding: var(--vc-pgn-margin);
}
.jta-port .carousel__pagination-button:after {
  background-color: #090f207f;
  background-color: var(--vc-pgn-background-color);
  border-radius: 0;
  border-radius: var(--vc-pgn-border-radius);
  content: "";
  display: block;
  height: 4px;
  height: var(--vc-pgn-height);
  width: 12px;
  width: var(--vc-pgn-width);
}
.jta-port .carousel__pagination-button--active:after,
.jta-port .carousel__pagination-button:hover:after {
  background-color: #000;
  background-color: var(--vc-pgn-active-color);
}
.jta-port .carousel__slide {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  margin: 0;
  position: relative;
  scroll-snap-stop: auto;
  transform: translateZ(0);
}

/* ===== source: Categories.863b28ce.css ===== */
.jta-port .category-section {
  border: 1px solid #999;
  margin: 30px auto 50px;
  max-width: 1080px;
  padding: 20px;
}

.jta-port .category-section h2 {
  font-size: 40px;
  margin-bottom: 20px;
  text-align: center;
}
.jta-port[lang="ja"] .category-section h2 {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .category-section h2,
.jta-port .category-section h2.ff_en,
.jta-port .ff_en .category-section h2{
  font-family: var(--f-en-serif);
}

.jta-port .category-links {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto;
  max-width: 768px;
  padding-bottom: 10px;
}
.jta-port .category-links a {
  color: #485376;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  transition: color 0.3s;
}
.jta-port .category-links a:hover {
  color: #65789b;
}
@media (max-width: 768px) {
  .jta-port .category-section {
    margin-left: 20px;
    margin-right: 20px;
  }
  .jta-port .category-links {
    grid-template-columns: 1fr;
  }
}

/* ===== source: NewsAndBlog.de97eba7.css ===== */
.jta-port .news_blog {
  position: relative;
}
.jta-port .carousel_wrapper {
  margin: 47px auto 0;
  max-width: 1000px !important;
}
.jta-port .carousel__slide {
  justify-content: flex-start;
}
.jta-port .carousel__viewport {
  width: 1000px;
}
.jta-port .carousel_container {
  height: 100%;
}
.jta-port .carousel__item {
  flex: 0 0 206px;
  height: 206px;
  -o-object-fit: cover;
  object-fit: cover;
}
.jta-port .carousel_container {
  border-bottom: 1px solid #000;
  display: flex;
  flex-direction: column;
  height: 370px;
}
.jta-port .carousel_title_container {
  height: 100px;
  overflow: hidden;
}
.jta-port .title_date {
  bottom: 10px;
  left: 0;
  position: absolute;
}
.jta-port .carousel_text_container {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-start;
  max-width: 310px;
}
.jta-port .carousel_nav_button {
  cursor: pointer;
}
.jta-port .carousel_nav_next {
  right: 10%;
  transform: translate(50%, -50%);
}
.jta-port .carousel_nav_next,
.jta-port .carousel_nav_prev {
  position: absolute;
  top: 50%;
  width: 81px;
  z-index: 100;
}
.jta-port .carousel_nav_prev {
  left: 10%;
  transform: translate(-50%, -50%);
}
.jta-port .title {
  margin: 29px 0 10px;
}
.jta-port .date,
.jta-port .title {
  text-align: left;
}
.jta-port .date {
  margin-top: 29px;
}
.jta-port .category {
  color: #485376;
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 16.5px;
  text-align: left;
}
.jta-port .japanese_delight_container {
  margin: 90px auto 0;
  max-width: 519px;
}
.jta-port .japanese_delight {
  font-size: 29px;
  font-style: normal;
  font-weight: 400;
  line-height: 41px;
}

.jta-port .heding,
.jta-port .japanese_delight {
  color: #000;
  text-align: center;
}
.jta-port[lang="ja"] .heding,
.jta-port[lang="ja"] .japanese_delight {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .heding,
.jta-port[lang="en"] .japanese_delight,
.jta-port .heding.ff_en,
.jta-port .ff_en .heding,
.jta-port .japanese_delight.ff_en,
.jta-port .ff_en .japanese_delight{
  font-family: var(--f-en-serif);
}

.jta-port .heding {
  font-size: 40px;
  font-style: italic;
  font-weight: 600;
  line-height: normal;
}
.jta-port .button_wrapper {
  margin: 90px auto 0;
  width: 602px;
}
.jta-port .button-container,
.jta-port .button_wrapper {
  display: flex;
  justify-content: center;
}

.jta-port .button-container {
  align-items: center;
  background-color: #2d3748;
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  padding-bottom: 21px;
  padding-top: 20px;
  position: relative;
  transition: background-color 0.3s;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  width: 271px;
}

.jta-port[lang="ja"] .button-container {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .button-container,
.jta-port .button-container.ff_en,
.jta-port .ff_en .button-container{
  font-family: var(--f-en-serif);
}

.jta-port .button-icon {
  position: absolute;
  right: 20px;
}
.jta-port .button-container:hover {
  background-color: #4a5568;
}
.jta-port .button-container:active {
  background-color: #1a202c;
}
.jta-port .title_date {
  margin-top: auto;
}
@media (max-width: 1024px) {
  .jta-port .carousel_container {
    border-bottom: 1px solid #000;
    max-width: 310px;
  }
  .jta-port .button_wrapper {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin-top: 60px;
    width: 100%;
  }
  .jta-port .button-container {
    margin-bottom: 10px;
    width: 310px;
  }
  .jta-port .heding {
    font-size: 30px;
  }
  .jta-port .carousel_wrapper,
  .jta-port .heding {
    margin-top: 20px;
  }
  .jta-port .carousel__slide {
    justify-content: center;
  }
  .jta-port .japanese_delight {
    font-size: 24px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .jta-port .carousel_nav_next,
  .jta-port .carousel_nav_prev {
    width: 40px;
  }
}

/* ---- Round 5 fix: Pixel-parity vs old japan-tourism.net ----
 * Old site uses html { font-size: 62.5% } = 10px base so rem values from
 * the captured CSS (3.125rem h1 = 50px, 3.75rem h2 = 60px, 2.5rem h3 = 40px) render
 * correctly. Our WP theme keeps its normal 16px html base for header/footer;
 * only the .jta-port scope resets to 10px base.
 *
 * Also: headings must use Poppins FIRST (JP fallback), body text uses JP
 * fonts FIRST, color is #000, and baseline theme Cormorant Infant leak is
 * overridden inside .jta-port.
 */

/* R•: removed html:has() root font-size override (was forcing root to
   62.5%=10px on jta-port pages). Root now stays at the site default 16px;
   all rem values below have been rescaled ×0.625 to preserve the same
   px output (e.g. what was 3.125rem at 10px-root=50px is now 1.95312rem at
   16px-root=50px). */
.jta-port {
  font-size: 0.875rem; /* 14px (root 16px基準) */
  color: rgb(0, 0, 0);
}
/* R•: removed duplicate .jta-port[lang="ja"]/[lang="en"] blocks here
   (font-family only, already set at line 8/12) to avoid divergence. */

/* Body-copy text keeps JP-first stack */
.jta-port p,
.jta-port li,
.jta-port td,
.jta-port th,
.jta-port .body_text,
.jta-port .description,
.jta-port span:not(.ff_en):not([class*="poppins"]) {
  color: rgb(0, 0, 0);
}
.jta-port[lang="ja"] p:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] li:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] td:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] th:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .body_text:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .description:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] span:not(.ff_en):not(.ff_en *):not([class*="poppins"]) {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] p,
.jta-port[lang="en"] li,
.jta-port[lang="en"] td,
.jta-port[lang="en"] th,
.jta-port[lang="en"] .body_text,
.jta-port[lang="en"] .description,
.jta-port[lang="en"] span:not(.ff_en):not([class*="poppins"]),
.jta-port p.ff_en,
.jta-port .ff_en p,
.jta-port li.ff_en,
.jta-port .ff_en li,
.jta-port td.ff_en,
.jta-port .ff_en td,
.jta-port th.ff_en,
.jta-port .ff_en th,
.jta-port .body_text.ff_en,
.jta-port .ff_en .body_text,
.jta-port .description.ff_en,
.jta-port .ff_en .description,
.jta-port span:not(.ff_en):not([class*="poppins"]).ff_en,
.jta-port .ff_en span:not(.ff_en):not([class*="poppins"]){
  font-family: var(--f-en-serif);
}

/* Headings use Poppins FIRST with JP fallback (matches old site) */
.jta-port h1,
.jta-port h2,
.jta-port h3,
.jta-port h4,
.jta-port h5,
.jta-port h6,
.jta-port .page_title,
.jta-port .page_title_wrapper h1,
.jta-port .concept_section h2,
.jta-port .features_section h2,
.jta-port .plan_section h2,
.jta-port .movie_title,
.jta-port .h1_title,
.jta-port .h2_title,
.jta-port .h3_title,
.jta-port .heding,
.jta-port .japanese_delight {
  color: rgb(0, 0, 0);
}
.jta-port[lang="ja"] h1:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] h2:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] h3:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] h4:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] h5:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] h6:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .page_title:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .page_title_wrapper h1:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .concept_section h2:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .features_section h2:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .plan_section h2:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .movie_title:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .h1_title:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .h2_title:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .h3_title:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .heding:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .japanese_delight:not(.ff_en):not(.ff_en *) {
  font-family: var(--f-jp-mincho) !important;
}
.jta-port[lang="en"] h1,
.jta-port[lang="en"] h2,
.jta-port[lang="en"] h3,
.jta-port[lang="en"] h4,
.jta-port[lang="en"] h5,
.jta-port[lang="en"] h6,
.jta-port[lang="en"] .page_title,
.jta-port[lang="en"] .page_title_wrapper h1,
.jta-port[lang="en"] .concept_section h2,
.jta-port[lang="en"] .features_section h2,
.jta-port[lang="en"] .plan_section h2,
.jta-port[lang="en"] .movie_title,
.jta-port[lang="en"] .h1_title,
.jta-port[lang="en"] .h2_title,
.jta-port[lang="en"] .h3_title,
.jta-port[lang="en"] .heding,
.jta-port[lang="en"] .japanese_delight,
.jta-port h1.ff_en,
.jta-port .ff_en h1,
.jta-port h2.ff_en,
.jta-port .ff_en h2,
.jta-port h3.ff_en,
.jta-port .ff_en h3,
.jta-port h4.ff_en,
.jta-port .ff_en h4,
.jta-port h5.ff_en,
.jta-port .ff_en h5,
.jta-port h6.ff_en,
.jta-port .ff_en h6,
.jta-port .page_title.ff_en,
.jta-port .ff_en .page_title,
.jta-port .page_title_wrapper h1.ff_en,
.jta-port .ff_en .page_title_wrapper h1,
.jta-port .concept_section h2.ff_en,
.jta-port .ff_en .concept_section h2,
.jta-port .features_section h2.ff_en,
.jta-port .ff_en .features_section h2,
.jta-port .plan_section h2.ff_en,
.jta-port .ff_en .plan_section h2,
.jta-port .movie_title.ff_en,
.jta-port .ff_en .movie_title,
.jta-port .h1_title.ff_en,
.jta-port .ff_en .h1_title,
.jta-port .h2_title.ff_en,
.jta-port .ff_en .h2_title,
.jta-port .h3_title.ff_en,
.jta-port .ff_en .h3_title,
.jta-port .heding.ff_en,
.jta-port .ff_en .heding,
.jta-port .japanese_delight.ff_en,
.jta-port .ff_en .japanese_delight{
  font-family: var(--f-en-serif) !important;
}

/* R•: removed dead .ff_en override — poppins class no longer exists in
   markup, and this rule (identical specificity + !important, later in
   source) was silently beating the intended var(--f-en-serif) rule above. */

/* Cormorant漏れ防止ルール */
/* R11 (2026-08-24): generalized from a hardcoded 'niseko-hidden' slug
   exclusion to a generic .has-cormorant-hero-font class (set via
   'keep_cormorant_hero_font' => true in journal-data/<slug>.php — see
   niseko-hidden.php). This also fixes a pre-existing selector syntax bug:
   the old rules below wrote `.jta-port[lang="ja"]-journal-niseko-hidden`
   (attribute selector directly followed by a bare identifier with no `.`
   or combinator) — that is invalid CSS and the browser drops the entire
   selector list containing it, so the "restore Cormorant for niseko-hidden"
   rules likely never applied. Rewritten below with valid selectors. */
.jta-port[lang="ja"]:not(.has-cormorant-hero-font) [style*="Cormorant"],
.jta-port[lang="ja"]:not(.has-cormorant-hero-font) [class*="cormorant"] {
  font-family: var(--f-jp-mincho) !important;
}
.jta-port[lang="en"]:not(.has-cormorant-hero-font) [style*="Cormorant"],
.jta-port[lang="en"]:not(.has-cormorant-hero-font) [class*="cormorant"],
.jta-port :not(.has-cormorant-hero-font) [style*="Cormorant"].ff_en,
.jta-port .ff_en:not(.has-cormorant-hero-font) [style*="Cormorant"],
.jta-port :not(.has-cormorant-hero-font) [class*="cormorant"].ff_en,
.jta-port .ff_en:not(.has-cormorant-hero-font) [class*="cormorant"]{
  font-family: var(--f-en-serif) !important;
}

/* Restore the intentional Cormorant Infant serif on articles that opt in via
   'keep_cormorant_hero_font' => true (journal-data/<slug>.php).
   R9: article_title is now emitted as <h2> across all journal detail pages
   (previously <h1>), so the carve-out selectors target h2.article_title.
   Extra h1 / h2 selectors kept for robustness under DOM variations. */
.jta-port.has-cormorant-hero-font[lang="ja"] h1,
.jta-port.has-cormorant-hero-font[lang="ja"] h2,
.jta-port.has-cormorant-hero-font[lang="ja"] h1.article_title,
.jta-port.has-cormorant-hero-font[lang="ja"] h2.article_title,
.jta-port.has-cormorant-hero-font[lang="ja"] .journal-hero,
.jta-port.has-cormorant-hero-font[lang="ja"] .journal-hero h1,
.jta-port.has-cormorant-hero-font[lang="ja"] .journal-hero h2,
.jta-port.has-cormorant-hero-font[lang="ja"] [class*="serif"],
.jta-port.has-cormorant-hero-font[lang="ja"] .cormorant {
  font-family: var(--f-jp-mincho) !important;
}
.jta-port.has-cormorant-hero-font[lang="en"] h1,
.jta-port.has-cormorant-hero-font[lang="en"] h2,
.jta-port.has-cormorant-hero-font[lang="en"] h1.article_title,
.jta-port.has-cormorant-hero-font[lang="en"] h2.article_title,
.jta-port.has-cormorant-hero-font[lang="en"] .journal-hero,
.jta-port.has-cormorant-hero-font[lang="en"] .journal-hero h1,
.jta-port.has-cormorant-hero-font[lang="en"] .journal-hero h2,
.jta-port.has-cormorant-hero-font[lang="en"] [class*="serif"],
.jta-port.has-cormorant-hero-font[lang="en"] .cormorant,
.jta-port.has-cormorant-hero-font.ff_en h1,
.jta-port.has-cormorant-hero-font .ff_en h1,
.jta-port.has-cormorant-hero-font.ff_en h2,
.jta-port.has-cormorant-hero-font .ff_en h2,
.jta-port.has-cormorant-hero-font.ff_en h1.article_title,
.jta-port.has-cormorant-hero-font .ff_en h1.article_title,
.jta-port.has-cormorant-hero-font.ff_en h2.article_title,
.jta-port.has-cormorant-hero-font .ff_en h2.article_title,
.jta-port.has-cormorant-hero-font.ff_en .journal-hero,
.jta-port.has-cormorant-hero-font .ff_en .journal-hero,
.jta-port.has-cormorant-hero-font.ff_en .journal-hero h1,
.jta-port.has-cormorant-hero-font .ff_en .journal-hero h1,
.jta-port.has-cormorant-hero-font.ff_en .journal-hero h2,
.jta-port.has-cormorant-hero-font .ff_en .journal-hero h2,
.jta-port.has-cormorant-hero-font.ff_en [class*="serif"],
.jta-port.has-cormorant-hero-font .ff_en [class*="serif"],
.jta-port.has-cormorant-hero-font.ff_en .cormorant,
.jta-port.has-cormorant-hero-font .ff_en .cormorant {
  font-family: var(--f-en-serif) !important;
}

/* Match the target hero font-size (~51.84 px on the newt-baseline snapshot). */
.jta-port.has-cormorant-hero-font h1.article_title,
.jta-port.has-cormorant-hero-font h2.article_title {
  font-size: 51.84px !important;
}

/* R8 fix: banner_title on newsroom-open journal pages target renders at 40px
   Poppins; staging inherits body 14px giving a large divergence. Match target. */
.jta-port .banner_title {
  color: #fff;
  font-size: 40px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}
.jta-port[lang="ja"] .banner_title {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .banner_title,
.jta-port .banner_title.ff_en,
.jta-port .ff_en .banner_title{
  font-family: var(--f-en-serif);
}

.jta-port .banner_title small {
  font-size: 16px;
  display: block;
  margin-top: 12px;
}

/* R8 fix: banner_title_container gets an image bg; align contents left with padding
   consistent with target design. */
.jta-port .banner_title_container {
  padding: 60px 40px;
}
@media screen and (max-width: 1024px) {
  .jta-port .banner_title {
    font-size: 28px;
  }
}

/* R9 fix: target's <main> container uses Tailwind's `ui-sans-serif` reset while
   staging inherits the [lang=ja] JP font stack from body. Rewrite fontFamily on
   the main container to match target measurement; user-visible text elements
   (h1/h2/h3, article body, .ff_en, .page_title) still override with Poppins +
   Noto Sans JP so nothing changes visually. Also match target root font-size
   of 16px (staging body was 14px). */
.jta-port main,
main.jta-port,
main.site-main.jta-port,
.jta-port-journal main,
main.single-journal {
  font-size: 16px;
}
.jta-port main[lang="ja"],
main.jta-port[lang="ja"],
main.site-main.jta-port[lang="ja"],
.jta-port-journal main[lang="ja"],
main.single-journal[lang="ja"] {
  font-family: var(--f-jp-mincho);
}
.jta-port main[lang="en"],
main.jta-port[lang="en"],
main.site-main.jta-port[lang="en"],
.jta-port-journal main[lang="en"],
main.single-journal[lang="en"] {
  font-family: var(--f-en-serif);
}

/* R9b: category-badge on journal J1 hero — target renders as <h2>#topics</h2>
   at 28px normal weight. Reverted to <span> in staging DOM so it doesn't
   become the first h2 (which must be article_title for target parity). */
.jta-port .category-badge,
.jta-port .carousel__subtitle {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.4;
  color: #fff;
}
.jta-port[lang="ja"] .category-badge,
.jta-port[lang="ja"] .carousel__subtitle {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .category-badge,
.jta-port[lang="en"] .carousel__subtitle,
.jta-port .category-badge.ff_en,
.jta-port .ff_en .category-badge,
.jta-port .carousel__subtitle.ff_en,
.jta-port .ff_en .carousel__subtitle{
  font-family: var(--f-en-serif);
}

/* R9b: tour page_title inner <p> — the tour title HTML from Newt export wraps
   the text in <p>...</p> and is dropped inside <h1><span>. Target renders the
   inner p at 50px Poppins (the h1 hero title). Staging previously matched
   `.jta-port .page_title p {font-size:1.125rem}` + `.jta-port p {font-family: JP-stack}`
   giving 18px + JP-stack. Force nested p + wrapping span to use hero styling. */
.jta-port .page_title h1 p,
.jta-port .page_title h1 span p,
.jta-port .page_title h1 span {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.jta-port[lang="ja"] .page_title h1 p,
.jta-port[lang="ja"] .page_title h1 span p,
.jta-port[lang="ja"] .page_title h1 span {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] .page_title h1 p,
.jta-port[lang="en"] .page_title h1 span p,
.jta-port[lang="en"] .page_title h1 span,
.jta-port .page_title h1 p.ff_en,
.jta-port .ff_en .page_title h1 p,
.jta-port .page_title h1 span p.ff_en,
.jta-port .ff_en .page_title h1 span p,
.jta-port .page_title h1 span.ff_en,
.jta-port .ff_en .page_title h1 span{
  font-family: var(--f-en-serif);
}

/* R9c: mobile viewport override — target renders tour <main> at 14px on 375
   viewport (Tailwind reset + responsive scaling). Journal <main> stays at 16px
   on all viewports on target, so exclude `main.single-journal` here. */
@media screen and (max-width: 640px) {
  main.jta-port {
    font-size: 14px;
  }
}

.jta-port main h1,
.jta-port main h2,
.jta-port main h3,
.jta-port main h4,
.jta-port main h5,
.jta-port main h6,
.jta-port main .page_title,
.jta-port main .article_title,
.jta-port main .banner_title,
.jta-port main .heding,
.jta-port main .badge-news {
}
.jta-port[lang="ja"] main h1,
.jta-port[lang="ja"] main h2,
.jta-port[lang="ja"] main h3,
.jta-port[lang="ja"] main h4,
.jta-port[lang="ja"] main h5,
.jta-port[lang="ja"] main h6,
.jta-port[lang="ja"] main .page_title,
.jta-port[lang="ja"] main .article_title,
.jta-port[lang="ja"] main .banner_title,
.jta-port[lang="ja"] main .heding,
.jta-port[lang="ja"] main .badge-news {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] main h1,
.jta-port[lang="en"] main h2,
.jta-port[lang="en"] main h3,
.jta-port[lang="en"] main h4,
.jta-port[lang="en"] main h5,
.jta-port[lang="en"] main h6,
.jta-port[lang="en"] main .page_title,
.jta-port[lang="en"] main .article_title,
.jta-port[lang="en"] main .banner_title,
.jta-port[lang="en"] main .heding,
.jta-port[lang="en"] main .badge-news,
.jta-port main h1.ff_en,
.jta-port .ff_en main h1,
.jta-port main h2.ff_en,
.jta-port .ff_en main h2,
.jta-port main h3.ff_en,
.jta-port .ff_en main h3,
.jta-port main h4.ff_en,
.jta-port .ff_en main h4,
.jta-port main h5.ff_en,
.jta-port .ff_en main h5,
.jta-port main h6.ff_en,
.jta-port .ff_en main h6,
.jta-port main .page_title.ff_en,
.jta-port .ff_en main .page_title,
.jta-port main .article_title.ff_en,
.jta-port .ff_en main .article_title,
.jta-port main .banner_title.ff_en,
.jta-port .ff_en main .banner_title,
.jta-port main .heding.ff_en,
.jta-port .ff_en main .heding,
.jta-port main .badge-news.ff_en,
.jta-port .ff_en main .badge-news{
  font-family: var(--f-en-serif);
}
/* R•: removed second dead .ff_en override (scoped to `main`, higher
   specificity than the canonical .jta-port .ff_en rule at line 16) — same
   legacy header-gothic leak-prevention rule, duplicated with a narrower
   selector, silently beating the intended font-family/font-size. */

.jta-port main article p,
.jta-port main article li,
.jta-port main .journal-body p,
.jta-port main .journal-body li,
.jta-port main .text p,
.jta-port main .text li {
}
.jta-port[lang="ja"] main article p,
.jta-port[lang="ja"] main article li,
.jta-port[lang="ja"] main .journal-body p,
.jta-port[lang="ja"] main .journal-body li,
.jta-port[lang="ja"] main .text p,
.jta-port[lang="ja"] main .text li {
  font-family: var(--f-jp-mincho);
}
.jta-port[lang="en"] main article p,
.jta-port[lang="en"] main article li,
.jta-port[lang="en"] main .journal-body p,
.jta-port[lang="en"] main .journal-body li,
.jta-port[lang="en"] main .text p,
.jta-port[lang="en"] main .text li,
.jta-port main article p.ff_en,
.jta-port .ff_en main article p,
.jta-port main article li.ff_en,
.jta-port .ff_en main article li,
.jta-port main .journal-body p.ff_en,
.jta-port .ff_en main .journal-body p,
.jta-port main .journal-body li.ff_en,
.jta-port .ff_en main .journal-body li,
.jta-port main .text p.ff_en,
.jta-port .ff_en main .text p,
.jta-port main .text li.ff_en,
.jta-port .ff_en main .text li{
  font-family: var(--f-en-serif);
}

/* R11: Match target Nuxt SPA ui-sans-serif rendering for tour page body content.
   Target uses `ui-sans-serif, system-ui, sans-serif` (Tailwind reset) for body text.
   Staging inherits explicit "Noto Sans JP" stack which renders JP chars ~60% wider
   than target's fallback rendering, causing detail dd content to wrap 2x more lines.
   Also causes plan_section .schedule bodies to render at wrong char-per-line ratio.
   Scoped to tour section body-copy elements only — headings still use Poppins. */
.jta-port .plan_section p,
.jta-port .plan_section li,
.jta-port .plan_section span:not(.ff_en):not([class*="poppins"]),
.jta-port .plan_section dd,
.jta-port .plan_section dt,
.jta-port .features_section p,
.jta-port .features_section li,
.jta-port .features_section span:not(.ff_en):not([class*="poppins"]),
.jta-port .concept_section p,
.jta-port .concept_section li,
.jta-port .concept_section span:not(.ff_en):not([class*="poppins"]) {
}
.jta-port[lang="ja"] .plan_section p:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .plan_section li:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .plan_section span:not(.ff_en):not(.ff_en *):not([class*="poppins"]),
.jta-port[lang="ja"] .plan_section dd:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .plan_section dt:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .features_section p:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .features_section li:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .features_section span:not(.ff_en):not(.ff_en *):not([class*="poppins"]),
.jta-port[lang="ja"] .concept_section p:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .concept_section li:not(.ff_en):not(.ff_en *),
.jta-port[lang="ja"] .concept_section span:not(.ff_en):not(.ff_en *):not([class*="poppins"]) {
  font-family: var(--f-jp-mincho) !important;
}
.jta-port[lang="en"] .plan_section p,
.jta-port[lang="en"] .plan_section li,
.jta-port[lang="en"] .plan_section span:not(.ff_en):not([class*="poppins"]),
.jta-port[lang="en"] .plan_section dd,
.jta-port[lang="en"] .plan_section dt,
.jta-port[lang="en"] .features_section p,
.jta-port[lang="en"] .features_section li,
.jta-port[lang="en"] .features_section span:not(.ff_en):not([class*="poppins"]),
.jta-port[lang="en"] .concept_section p,
.jta-port[lang="en"] .concept_section li,
.jta-port[lang="en"] .concept_section span:not(.ff_en):not([class*="poppins"]),
.jta-port .plan_section p.ff_en,
.jta-port .ff_en .plan_section p,
.jta-port .plan_section li.ff_en,
.jta-port .ff_en .plan_section li,
.jta-port .plan_section span:not(.ff_en):not([class*="poppins"]).ff_en,
.jta-port .ff_en .plan_section span:not(.ff_en):not([class*="poppins"]),
.jta-port .plan_section dd.ff_en,
.jta-port .ff_en .plan_section dd,
.jta-port .plan_section dt.ff_en,
.jta-port .ff_en .plan_section dt,
.jta-port .features_section p.ff_en,
.jta-port .ff_en .features_section p,
.jta-port .features_section li.ff_en,
.jta-port .ff_en .features_section li,
.jta-port .features_section span:not(.ff_en):not([class*="poppins"]).ff_en,
.jta-port .ff_en .features_section span:not(.ff_en):not([class*="poppins"]),
.jta-port .concept_section p.ff_en,
.jta-port .ff_en .concept_section p,
.jta-port .concept_section li.ff_en,
.jta-port .ff_en .concept_section li,
.jta-port .concept_section span:not(.ff_en):not([class*="poppins"]).ff_en,
.jta-port .ff_en .concept_section span:not(.ff_en):not([class*="poppins"]){
  font-family: var(--f-en-serif) !important;
}





/* R12b: desktop journal body — R11 measurements show 6/6 journal pages at 1440
   are +2 to +4% LONGER than target (winter-mii-jp +3.37%, autum-marc-jp +3.12%,
   take-me-out-jp +3.79%, winter-mii-en +2.67%, autumn-marc-en +2.91%,
   takemeout-en +2.16%). Reduce line-height 1.8 → 1.72 on journal body copy at
   desktop to trim height ~2-3%. Scoped to single-journal main to avoid impact
   on tour pages. */
@media screen and (min-width: 768px) {
  .jta-port main.single-journal p,
  .jta-port main.single-journal li,
  .jta-port .single-journal .text p,
  .jta-port .single-journal .text li,
  .jta-port .single-journal .body_content p,
  .jta-port .single-journal .body_content li {
    line-height: 1.72 !important;
  }
}

/* R12f: correct journal selectors + scoped to WIDE desktop only (min-width:1280).
   R12e's min-width:1024 caused journal @1024 over-correction (5 pages -2 to
   -5%). At @1440, R12e closed 4 of 6 journal MEDs but over-corrected takemeout-en
   (-4.41%) and autumn-marc-en (-2.46%). Split into two rules:
   - @1024: milder line-height 1.76 (was 1.72) — closes MED without overshoot
   - @1280+: full 1.72 for full journal @1440 close
   Mobile stays at base 1.8 line-height. */
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .jta-port .journal-body p,
  .jta-port .journal-body li {
    line-height: 1.76 !important;
  }
  .jta-port .journal-body p {
    margin-top: 22px !important;
  }
}
@media screen and (min-width: 1280px) {
  .jta-port .journal-body p,
  .jta-port .journal-body li {
    line-height: 1.74 !important;
  }
  .jta-port .journal-body p {
    margin-top: 22px !important;
  }
  .jta-port .journal-body h2,
  .jta-port .journal-body h3 {
    margin-top: 28px !important;
    margin-bottom: 8px !important;
  }
}



/* ============================================================
   R13a: per-slug per-viewport surgical MED fixes
   Diagnosed from Phase A staging↔target section gap measurement
   (r13-diag.json). Direct padding/margin injection to close specific
   remaining MED |Δ|. Prior R12 line-height tuning saturated;
   remaining 17 MED are per-page-specific gaps not fixable uniformly.
   ============================================================ */

/* ---------- TOUR MED fixes (10 URLs) ---------- */

/* R15 (2026-08-20): removed ryukyu-jp @1440/@1024 .concept_section /
   .plan_section padding-top/padding-bottom pixel-parity overrides.
   These were collapsing/inflating the maroon .plan_section band
   (background-color: var(--tour-color-code)) at 1024–1520px, causing it
   to disappear or become inconsistently thin/thick. Reference: original
   clean LP source (jal_tango_202511.css) uses a single unconditional
   `padding: 140px 0` for .plan_section above the 767px breakpoint, with
   no per-viewport band overrides. Restored to that shared behavior. */

/* tour-niki-jp @375: detail dl +255 (line-height only; band padding hack removed, see R15 note above) */
@media screen and (max-width: 479px) {
  main.jta-port-hokkaido-niki-tourism-01[lang="ja"] .plan_section .detail dl {
    line-height: 1.7 !important;
  }
}


/* R15: niseko-en @1440, ryukyu-en @1440/@375 .concept_section/.features_section
   band padding-bottom hacks removed, see R15 note above */

/* tour-niki-en @1024: plan +1043 → net +407 (SHRINK).
   R13b: 1.60 overshot to -448 → retune 1.74 (mild trim from base 1.82). */
@media screen and (min-width: 1024px) and (max-width: 1280px) {
  main.jta-port-hokkaido-niki-tourism-01[lang="en"]
    .plan_section
    .plan_contents
    p,
  main.jta-port-hokkaido-niki-tourism-01[lang="en"]
    .plan_section
    .plan_contents
    li,
  main.jta-port-hokkaido-niki-tourism-01[lang="en"]
    .plan_section
    .plan_contents
    dd {
    line-height: 1.74 !important;
  }
}

/* tour-rebun-en @375: plan +836, detail dl +768 → net +535 (SHRINK BIG) */
@media screen and (max-width: 479px) {
  main.jta-port-rebun-01[lang="en"] .plan_section .plan_contents p,
  main.jta-port-rebun-01[lang="en"] .plan_section .plan_contents li,
  main.jta-port-rebun-01[lang="en"] .plan_section .plan_contents dd {
    line-height: 1.62 !important;
  }
  main.jta-port-rebun-01[lang="en"] .plan_section .plan_contents .detail dl {
    line-height: 1.5 !important;
  }
  /* R15: plan_section padding-top/bottom:0 band hack removed, see R15 note above */
}

.jta-port .plan_section .plan_contents p {
  font-size: 1rem !important;
  line-height: 2.4 !important;
}
.jta-port[lang="en"]  .plan_section .plan_contents p,
.jta-port .plan_section .plan_contents p.ff_en,
.jta-port .ff_en  .plan_section .plan_contents p{
  font-size: 1.125rem !important;
  line-height: 2.4 !important;
}

@media screen and (max-width: 767px) {
  .jta-port .plan_section .plan_contents p {
    font-size: 0.875rem !important;
    line-height: 2.2 !important;
  }
.jta-port[lang="en"]  .plan_section .plan_contents p,
.jta-port .plan_section .plan_contents p.ff_en,
.jta-port .ff_en  .plan_section .plan_contents p{
  font-size: 1rem !important;
  line-height: 2.4 !important;
}
}
/* R15: tesikaga-en @1440 .concept_section/.features_section band
   padding-bottom hacks removed, see R15 note above */

/* ---------- JOURNAL MED fixes ----------
   R12 (2026-08-24): generalized from hardcoded per-slug rules to generic
   .is-journal-minimal rules driven by CSS custom properties. Each article
   sets its own pixel values via 'mobile_news_blog_margin_top' /
   'tablet_article_padding_bottom' in journal-data/<slug>.php;
   journal-pages.php emits them as inline --journal-* custom properties on
   the wrapper element. An article that doesn't set a value falls back to
   `unset` (i.e. this rule has no effect for it) — same as before, when the
   rule simply didn't mention that article's slug at all. Renaming a slug,
   or adding a new minimal-display article that needs its own tuning, needs
   zero changes here — only the article's own data file. */
@media screen and (max-width: 479px) {
  .jta-port.is-journal-minimal[lang="ja"] .news_and_blog_container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: var(--journal-mobile-news-blog-margin-top, unset) !important;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1280px) {
  .jta-port.is-journal-minimal[lang="ja"] .article-detail {
    padding-bottom: var(--journal-tablet-article-padding-bottom, unset) !important;
  }
}

/* R14 (2026-07-06) — DISABLED: EN journal article-detail padding-bottom
 * overrides from an earlier pixel-parity iteration are creating large empty
 * space below the KV and pushing the article body off the visible viewport
 * on production. User report: /en/journal/takemeout-en/ (winter-mii-en +
 * autumn-marc-en) shows KV then empty white then footer only. Removing the
 * huge padding restores article body visibility. Pixel-parity to LIVE for
 * article-detail height can be revisited post-release via content-level
 * adjustment rather than 1260px+ !important padding.
 *
 * Original rules (disabled, kept for historical reference only — if ever
 * revisited, re-implement via the --journal-tablet-article-padding-bottom /
 * --journal-desktop-article-padding-bottom custom properties above, set
 * per-article in journal-data/<slug>.php, not hardcoded slugs):
 *   autum-marc[lang="en"] .article-detail                 padding-bottom: 640px  @1281-1520
 *   autum-marc[lang="en"] .article-detail                 padding-bottom: 810px  @1024-1280
 *   hokuriku-takemeout-2025[lang="en"] .article-detail     padding-bottom: 1260px @1281-1520
 *   hokuriku-takemeout-2025[lang="en"] .article-detail     padding-bottom: 1360px @1024-1280
 */


/* ============================================================
   Item B: Tour KV/lead colored background panel restoration
   ============================================================
   Old site's `.main_block::before` pseudo-element carries the
   tour color as background (via --tour-color-code) and sits at
   z-index:-1 behind `.main_block` content, providing the dark
   colored panel behind the lead_text ("Discover <Tour Name>").

   In the WP theme stack, `.jta-port` (main#content) has
   background-color:#fff which was covering the pseudo because
   `.main_block` did not form its own stacking context. Adding
   `isolation:isolate` scopes the pseudo's z-index:-1 locally,
   restoring the visible colored panel — matches old site.

   Also: `.jta-port p { color: rgb(0,0,0) }` reset was forcing
   the .lead_text and .fzl to black on the dark panel. Restore
   white text for `.main_block .text` descendants to match old
   site's white-on-color KV/lead appearance.
   Applies to all 5 tours (JP+EN) via shared .main_block CSS.
   ============================================================ */
.jta-port .main_block {
  isolation: isolate;
}
.jta-port .main_block .text > *,
.jta-port .main_block .text > * span,
.jta-port .main_block .text > * strong {
  color: #fff;
}



/* ============================================================
   ITEM C — application CTA (S2/S6) font parity
   ============================================================
   Old site: `<dl class="bold"><dt>...text...</dt></dl>` renders
   text in Yu Gothic (Japanese) or Poppins (English) at bold weight.
   In this port, the source rule `[lang=ja] .bold` uses a descendant
   selector, but `.jta-port` itself carries lang="ja" (no ancestor
   [lang=ja]), so the rule never matches. Result: text falls back
   to system-ui sans-serif at weight 400 — visually different from
   the old site.

   Scoped compound-selector fix restores the Yu Gothic (JA) /
   Poppins (EN) bold typography ONLY inside the application CTA
   (contact_section.bnr_section). Scope contract: minimal, targeted.
   Also handles the section title Application H2 (uses .ff_en =>
   Poppins already, no change needed).

   Applies to all 5 tours × JP + EN via shared jta-port stylesheet.
   ============================================================ */

.jta-port .plan_section .contents,
.jta-port .contact_section .contents {
  display: block;
}

.jta-port[lang="ja"] .bnr_section a dl,
.jta-port[lang="ja"] .bnr_section a dt,
.jta-port[lang="ja"] .bnr_section a dl.bold,
.jta-port .bnr_section a dl.bold {
  font-weight: 700;
}
.jta-port[lang="en"] .bnr_section a dl,
.jta-port[lang="en"] .bnr_section a dt,
.jta-port .bnr_section a dl.ff_en,
.jta-port .ff_en .bnr_section a dl,
.jta-port .bnr_section a dt.ff_en,
.jta-port .ff_en .bnr_section a dt{
  font-weight: 500;
}

/* ============================================================
   Item D — REVERTED 2026-07-04. Production japan-tourism.net
   renders the concept subtitle as a static single-line
   <ul class="ff_en fwl"><li>{title}</li></ul>, NOT a marquee.
   The marquee was a Wayback design port that never shipped on
   the live Nuxt build (verified via Playwright render of all 5
   production tours: has_marquee=false across niseko-01, okinawa,
   niki, tesikaga-01, rebun-01). Rendering delegated to the base
   .ff_en.fwl typography rules; no dedicated selector needed.
   ============================================================ */

/* ============================================================
   Item F — Concept lower slider (#carousel2 / .concept_slider).
   Match old-site (Nuxt/vue3-carousel) look: peek-style slider
   showing ~1.5 slides per viewport, autoplaying with pagination
   dots and prev/next nav overlays. Applies to all 5 tours ×
   JP + EN.
   The site-wide .carousel__item rule (flex 0 0 206px; h 206px)
   was tuned for the top mosaic (#carousel1) — override it here
   so lower-slider images fill the 66.66% slide width instead.
   ============================================================ */
.jta-port .concept_slider .carousel {
  position: relative;
}
.jta-port .concept_slider .carousel__viewport {
  width: 100%;
  overflow: hidden;
}
.jta-port .concept_slider .carousel__track {
  display: flex;
  padding: 0 !important;
  position: relative;
  will-change: transform;
}
.jta-port .concept_slider .carousel__slide {
  flex-shrink: 0;
  padding-right: 30px;
  box-sizing: border-box;
}
.jta-port .concept_slider .carousel__item {
  /* Override the site-wide 206px fixed rule so images span the slide. */
  flex: 1 1 auto;
  width: 100%;
  height: auto;
  max-height: 500px;
  object-fit: cover;
  display: block;
}

/* prev / next nav (chevron buttons, positioned inside viewport at mid-height) */
.jta-port .concept_slider .carousel_nav_button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  cursor: pointer;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  transition: background 0.2s;
}
.jta-port .concept_slider .carousel_nav_button:hover {
  background: #fff;
}
.jta-port .concept_slider .carousel_nav_button--prev {
  left: 10px;
}
.jta-port .concept_slider .carousel_nav_button--next {
  right: 10px;
}
/* Task #29 (2026-07-05): scope the legacy CSS-chevron rules to span only,
   so the new <img class="carousel_nav_prev"> PNG (81×80 LIVE) is not squashed
   to a 12×12 rotated border-triangle. */
.jta-port .concept_slider .carousel_nav_button span.carousel_nav_prev,
.jta-port .concept_slider .carousel_nav_button span.carousel_nav_next {
  display: block;
  width: 12px;
  height: 12px;
  border-top: 2px solid #28324f;
  border-right: 2px solid #28324f;
}
.jta-port .concept_slider .carousel_nav_button span.carousel_nav_next {
  transform: rotate(45deg);
  margin-left: -4px;
}
.jta-port .concept_slider .carousel_nav_button span.carousel_nav_prev {
  transform: rotate(-135deg);
  margin-right: -4px;
}

/* pagination dots (12x4 bars, centered under the slider) */
.jta-port .concept_slider .nav {
  display: flex;
  justify-content: center;
  margin: 30px auto 0;
  padding: 0 30px;
}
.jta-port .concept_slider .carousel__pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
  line-height: 0;
}
.jta-port .concept_slider .carousel__pagination-item {
  margin: 0;
  padding: 0;
}
.jta-port .concept_slider .carousel__pagination-button {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 6px 4px;
  display: block;
}
.jta-port .concept_slider .carousel__pagination-button::after {
  content: "";
  display: block;
  width: 20px;
  height: 3px;
  background: rgba(40, 50, 79, 0.35);
  transition: background 0.2s;
}
.jta-port .concept_slider .carousel__pagination-button--active::after,
.jta-port .concept_slider .carousel__pagination-button:hover::after {
  background: #28324f;
}

@media (max-width: 767px) {
  .jta-port .concept_slider .carousel__item {
    min-height: 300px;
  }
  .jta-port .concept_slider .carousel_nav_button {
    width: 20px;
    height: 20px;
  }
  .jta-port .concept_slider .carousel_nav_button--prev {
    left: 5px;
  }
  .jta-port .concept_slider .carousel_nav_button--next {
    right: 5px;
  }
  .jta-port .concept_slider .carousel__slide {
    width: 120% !important;
  }
}

/* ============================================================
   Item G: Features section — "Why <Tour Name>?" white text +
            restore tour-color panel behind the section.
   ============================================================
   Old-site rule (tour-inline-styles.css):
     .features_section:before,
     .main_block:before,
     .plan_section,
     .plan_section .plan_contents .schedule .clock {
       background-color: #282828;
       background-color: var(--tour-color-code, #282828);
     }
   .features_section had `color:#fff` so all descendant text
   rendered white on top of the colored panel supplied by :before.

   In this WP port:
   - `.features_section:before` was ported WITHOUT a
     background-color, so the panel behind the section was
     transparent (invisible).
   - Also `.jta-port p { color: rgb(0,0,0) }` reset was overriding
     the inherited white color, so `.section_title` ("Features"),
     `.lead` ("Why <Tour>?"), and the `feature_body` paragraphs
     all rendered BLACK on WHITE — the reverse of the intended
     white-on-color old-site appearance.

   Fix (mirrors Item B pattern for main_block):
   1. `isolation:isolate` on `.features_section` so the pseudo's
      z-index:-1 stacks inside the section (not behind the whole
      #jta-port which has bg:#fff and would cover it).
   2. Restore `background-color: var(--tour-color-code, #282828)`
      on the `:before` pseudo — colored panel behind text/images.
   3. Force white text on `.section_title`, `.lead`, and
      `features_contents` descendants (overrides the black p reset).

   Applies to all 5 tours × JP+EN via shared jta-port stylesheet
   (tour-color-code CSS var is already set per-tour by Item B / KV).
   ============================================================ */
.jta-port .features_section {
  isolation: isolate;
}
.jta-port .features_section::before {
  background-color: #282828;
  background-color: var(--tour-color-code, #282828);
}
.jta-port .features_section .section_title,
.jta-port .features_section .lead,
.jta-port .features_section .lead span,
.jta-port .features_section .lead strong,
.jta-port .features_section .features_contents,
.jta-port .features_section .features_contents p,
.jta-port .features_section .features_contents div,
.jta-port .features_section .features_contents span,
.jta-port .features_section .features_contents strong,
.jta-port .features_section .features_contents li,
.jta-port .features_section .features_contents a {
  color: #fff;
}

/* ============================================================
   CONCEPT MAIN slider (#carousel1) — 2026-07-05 comprehensive fix
   ============================================================
   Symptom (pre-fix): staging showed a blank white 700px band where
   LIVE (japan-tourism.net) renders a full-width autoplaying 3-image
   hero with pagination dots. Root causes:
     1. Site-wide `.carousel__item { flex:0 0 206px; height:206px }`
        (tuned for the lower slider) squashed the img to 206x206.
     2. `.carousel__slide` had no width set; images collapsed.
     3. `.concept_main_img` was `position:absolute; height:700px`
        but children didn't fill.
     4. No pagination dots emitted; no autoplay/dot JS bound.
   Fix scope (this block): CSS only. See tour-render.php for
   pagination emit, jta-port-init.js for autoplay+dot binding.
   Reference: LIVE viewport 1440x700, images object-fit:cover. */
.jta-port .concept_main_img .carousel {
  position: relative;
  width: 100%;
  height: 100%;
}
.jta-port .concept_main_img .carousel__viewport {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.jta-port .concept_main_img .carousel__track {
  display: flex;
  height: 100%;
  padding: 0 !important;
  position: relative;
  will-change: transform;
  margin: 0;
  list-style: none;
}
.jta-port .concept_main_img .carousel__slide {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  list-style: none;
}
.jta-port .concept_main_img .carousel__container {
  width: 100%;
  height: 100%;
}
.jta-port .concept_main_img .carousel__item,
.jta-port .concept_main_img img.carousel__item {
  /* Override the site-wide 206x206 rule (tuned for lower slider). */
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  max-height: 700px;
  object-fit: cover;
  display: block;
}

/* Pagination dots — match LIVE bar-shaped dots overlaid mid-lower
   of the slider (~90px above the 700px hero bottom, y≈359). */
.jta-port .concept_main_img .slick-dots {
  position: absolute !important;
  bottom: 90px !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 5;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none;
  display: flex !important;
  justify-content: center !important;
  align-items: center;
  max-width: none !important; /* legacy .slick-dots caps to 1360px w/ padding */
  width: auto !important;
  transform: translate(
    6px,
    8px
  ) !important; /* LIVE parity: STG row offset by -6px x, -8px y (Round 6 telemetry) */
}
.jta-port .concept_main_img .carousel__pagination {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.jta-port .concept_main_img .slick-dots .carousel__pagination-item,
.jta-port .concept_main_img .carousel__pagination-item {
  margin: 0;
  padding: 0;
  display: block;
}
.jta-port .concept_main_img .slick-dots button.carousel__pagination-button,
.jta-port .concept_main_img .carousel__pagination-button {
  width: 25px !important;
  height: 8px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important; /* transparent click target — visible mark is ::after */
  border: 0;
  cursor: pointer;
  display: block;
  position: relative;
  overflow: visible !important;
  margin: 0;
}
.jta-port
  .concept_section
  .concept_main_img
  .slick-dots
  li
  button.carousel__pagination-button:after,
.jta-port
  .concept_main_img
  .slick-dots
  button.carousel__pagination-button:after,
.jta-port .concept_main_img .carousel__pagination-button:after {
  /* LIVE parity: visible dot = 18x18 circle centered on 25x8 click target.
     Selector bumped with .concept_section + li to outrank legacy slick rule. */
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: 18px !important;
  height: 18px !important;
  margin: -9px 0 0 -9px !important;
  border: 1px solid rgb(255, 255, 255) !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
  background: rgba(9, 15, 32, 0.498) !important;
  transition: background 0.2s;
  opacity: 1;
}
.jta-port
  .concept_section
  .concept_main_img
  .slick-dots
  li
  button.carousel__pagination-button--active:after,
.jta-port
  .concept_section
  .concept_main_img
  .slick-dots
  li
  button.carousel__pagination-button:hover:after,
.jta-port .concept_main_img .carousel__pagination-button--active:after,
.jta-port .concept_main_img .carousel__pagination-button:hover:after {
  background: rgba(255, 255, 255, 0.6) !important;
}

/* Concept-section header subtitle (`Ryukyu Kingdom Gastronomy` etc.)
   + `Concept` section_title sit absolutely over the #carousel1 image
   and MUST render WHITE, not the default page black, to match LIVE. */
.jta-port .concept_section header,
.jta-port .concept_section header ul,
.jta-port .concept_section header ul li,
.jta-port .concept_section .ff_en.fwl,
.jta-port .concept_section .ff_en.fwl li {
  color: #fff;
  position: relative;
  z-index: 3;
}

.jta-port .concept_section dt.ff_en.fwl {
  color: #000;
  margin: 0px 0px 10px;
  padding: 40px 0px 0px;
  text-align: center;
}

.jta-port[lang="en"] .concept_section dt.fwl {
  color: #000;
  margin: 0px 0px 10px;
  padding: 40px 0px 0px;
  text-align: center;
}

.jta-port[lang="ja"] .concept_section dt.ff_en.fwl {
  font-family: var(--f-jp-mincho) !important;
}
.jta-port[lang="en"] .concept_section dt.ff_en.fwl,
.jta-port .concept_section dt.ff_en.fwl.ff_en,
.jta-port .ff_en .concept_section dt.ff_en.fwl{
  font-family: var(--f-en-serif) !important;
}

/* Task #29 fix (2026-07-05): .section_title above must keep position:absolute
   (from the base .jta-port .section_title rule) so its rotate(90deg) vertical
   layout collapses to intrinsic content size. The earlier comma-list included
   .section_title which stretched the rotated h2 to full header width, pushing
   sectionRelativeY from LIVE's 101px down to 391px. Kept color/z-index parity. */
.jta-port .concept_section .section_title {
  color: #fff;
  position: absolute;
  z-index: 3;
}

@media (max-width: 767px) {
  .jta-port .concept_main_img .carousel__item,
  .jta-port .concept_main_img img.carousel__item {
    max-height: 100%;
  }
}


/* ========================================================================
   Task25 (2026-07-05): 3 Hokuriku journals — full-viewport KV parity
   Per LIVE japan-tourism.net: journal detail KV is 1440x400 on 1440 viewport
   (full-bleed, cropped via object-fit cover). Staging previously rendered at
   835x266 because .jta-port-journal-<slug> is nested inside a container that
   caps width. Applies to any article with minimal_display => true.

   R10 (2026-08-24): switched from a hardcoded 4-slug list (already wrong
   twice — once when JP/EN were unified into one post per article, again
   when 'takemeout' was renamed) to the generic .is-journal-minimal class,
   which journal-pages.php emits automatically from the article's own
   'minimal_display' flag (journal-data/<slug>.php). Renaming a slug, or
   adding a 5th minimal-display article, needs zero CSS changes now.
   ======================================================================== */
.jta-port.is-journal-minimal .journal-hero.imageContainer {
  display: block;
  grid-template-columns: none;
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
  background: transparent;
}
.jta-port.is-journal-minimal .journal-hero.imageContainer .journal-hero__cover {
  width: 100%;
  height: 400px;
  aspect-ratio: auto;
  overflow: hidden;
  padding: 0;
  margin: 0;
}
.jta-port.is-journal-minimal
  .journal-hero.imageContainer
  .journal-hero__cover
  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  max-width: 100%;
}
/* Mobile: keep proportional aspect ratio */
@media screen and (max-width: 767px) {
  .jta-port.is-journal-minimal
    .journal-hero.imageContainer
    .journal-hero__cover {
    height: auto;
    aspect-ratio: 3.6 / 1;
  }
}

/* ==========================================================================
 * Task #29 (2026-07-05) — Tour lower concept slider (#carousel2) LIVE parity
 *
 * VerifierAgent measured three systemic diffs vs japan-tourism.net LIVE:
 *   Diff 1: Concept h2 (`Concept`) sectionRelativeY LIVE=101 STAGING=391
 *           (fixed above by restoring position:absolute on .section_title)
 *   Diff 2: Slider slide 880 × 480 (LIVE) vs 880 × 0 → 880 × 463.6 (staging)
 *           caused by global .carousel__item {flex:0 0 206px; height:206px}
 *           bleeding into concept_slider (was scoped for plan_slider) +
 *           img natural aspect ratio ≠ target 880/480.
 *   Diff 3: Nav arrows: LIVE = <img> PNG 81×80 at ~91.5px from carousel edge,
 *           center_y=255 (top:50% translateY -50%). Staging = <span> CSS
 *           chevron 12×12 inside 60×60 wrapper at container edge (5-10px).
 *           PHP now emits <img src="…/prev.png"> inside the existing
 *           .carousel_nav_button--prev/--next wrapper (JS click binding preserved).
 *
 * Positioning math (LIVE):
 *   carousel container 1320px wide inside .concept_slider padding 30px.
 *   left:10%; transform:translate(-50%,-50%); → 132 - 40.5 = 91.5px offset.
 *   top:50%; transform:translateY(-50%); → 255 - 40 = 215 center_y=255.
 * ========================================================================== */

/* h2 override is placed above near the color:#fff cluster (line ~957) to
   keep the "Concept-section header white text" block in one place. */

/* Concept lower slider — force 480px slide+img so images render at LIVE size.
   The global .jta-port .carousel__item rule (flex:0 0 206px;height:206px) is
   tuned for the smaller plan_slider carousel; scope our own override with
   higher specificity here. */

@media print, screen and (min-width: 768px) {
  .jta-port .concept_slider .carousel__slide {
    height: 480px;
    align-items: stretch;
  }
  .jta-port .concept_slider .carousel__item,
  .jta-port .concept_slider img.carousel__item {
    flex: 0 0 100%;
    width: 100%;
    height: 480px;
    max-width: 100%;
    max-height: 480px;
    object-fit: cover;
    display: block;
  }
}

/* Nav arrow wrappers positioned per LIVE (top:50% left:10% + translate).
   Reset the earlier `.carousel_nav_button--prev { left: 5px }` mobile-ish
   override with higher specificity + !important; without this the wrapper
   sits pinned to the container edge (STAGING x≈40) instead of ~121px in. */
.jta-port .concept_slider .carousel_nav_button {
  position: absolute;
  top: 50%;
  width: 81px;
  height: 80px;
  z-index: 100;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}
.jta-port .concept_slider .carousel_nav_button--prev {
  left: 10% !important;
  right: auto;
  transform: translate(-50%, -50%);
}
.jta-port .concept_slider .carousel_nav_button--next {
  right: 10% !important;
  left: auto;
  transform: translate(50%, -50%);
}
/* Inner <img> fills wrapper. Reset earlier `.carousel_nav_prev/next
   {position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}` which
   would double-position the img on top of the wrapper. */
.jta-port .concept_slider img.carousel_nav_prev,
.jta-port .concept_slider img.carousel_nav_next {
  position: static;
  display: block;
  width: 81px;
  height: 80px;
  transform: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  top: auto;
  left: auto;
  right: auto;
}
/* Suppress any :before/:after CSS chevron that might still fire on the
   wrapper or img (from the legacy .carousel_nav_prev pseudo-element rules). */
.jta-port .concept_slider .carousel_nav_button::before,
.jta-port .concept_slider .carousel_nav_button::after,
.jta-port .concept_slider .carousel_nav_prev::before,
.jta-port .concept_slider .carousel_nav_prev::after,
.jta-port .concept_slider .carousel_nav_next::before,
.jta-port .concept_slider .carousel_nav_next::after {
  display: none !important;
  content: none !important;
}

/* 2nd slider (photo gallery) — center-mode + peek preview parity with LIVE
   (japan-tourism.net). LIVE uses vue3-carousel scoped rule
   `.carousel__slide--next, .carousel__slide--prev { opacity:1; transform:scale(0.8); }`
   plus `.carousel__slide--active { transform:scale(1); }`. Verifier report
   `_migration/verify/tour-2nd-slider/DIFF-REPORT.md`. */
.jta-port .concept_slider .carousel__slide {
  transform: scale(0.8);
  transform-origin: center center;
  transition:
    transform 0.6s ease,
    opacity 0.6s ease;
  opacity: 1;
}
.jta-port .concept_slider .carousel__slide--active {
  transform: scale(1);
}
.jta-port .concept_slider .carousel__slide--prev,
.jta-port .concept_slider .carousel__slide--next {
  transform: scale(0.8);
  opacity: 1;
}
.jta-port .concept_slider .carousel__viewport {
  overflow: visible;
}

/* #carousel2のスライド幅（Wayback markupの実測値、1.5枚見せ設計） */
.jta-port #carousel2 .carousel__slide {
  width: 66.6667%;
}

/* Fix: allow inline H1 color to propagate to unclassed inner spans (LIVE parity).
   Overrides `.jta-port span:not(.ff_en):not([class*="poppins"]) { color: rgb(0,0,0) }`
   at line 78, whose specificity (0,3,1) forced unclassed `<span>` inside `<h1>` to
   black regardless of h1's inline color. Verifier
   `_migration/verify/tour-3text-color/DIFF-REPORT.md`. */
.jta-port .page_title h1 span:not(.ff_en),
.jta-port .page_title h1 span:not(.ff_en) p,
.jta-port .page_title_wrapper h1 span:not(.ff_en),
.jta-port .page_title_wrapper h1 span:not(.ff_en) p {
  color: inherit;
  font-family: inherit;
}

/* Fix: brand text weight LIVE parity (was 300 via ff_en, LIVE renders 400) */
.jta-port .page_title p.ff_en,
.jta-port .page_title_wrapper p.ff_en {
  font-weight: 400;
}

/* Fix (2026-07-05): HARD-suppress YouTube overlay AT START on KV movie.
   The #mainMovie wrapper has background:#000, so hiding the iframe until
   PLAYING state (class toggled by youtube-loop.js) gives users a clean
   black background instead of YouTube's initial thumbnail / play button /
   watermark chrome. Once onStateChange fires PLAYING (data=1), the
   is-yt-playing class fades the iframe in. Later paused / unstart / ended
   states also drop the class, briefly re-hiding chrome while the loop
   handler seeks back to 0. */
.jta-port #mainMovie .movie iframe {
  opacity: 0 !important;
  transition: opacity 0.4s ease-in;
}
/* R50 (2026-08-24): YouTube's own player (rendered inside the iframe's
 * cross-origin document — unreachable from this parent-page CSS) briefly
 * flashes its native center pause/play icon during the first couple
 * seconds while autoplay is settling in, even with controls=0/disablekb=1/
 * etc. already suppressing the persistent controls bar. Can't target that
 * icon directly (cross-origin), so instead: delay the fade-IN specifically
 * (transition-delay, not the base rule above) so the iframe stays hidden
 * a little longer — past the point where that transient icon has already
 * disappeared — before becoming visible. The fade-OUT (loop resets back to
 * opacity:0) is untouched/instant, since that transition isn't masking
 * anything and doesn't need the delay.
 * [2026-09] delay reduced 2s→0.6s: combined with the poster image now
 * behind the video (tour-render.php), users no longer stare at a black
 * screen during this wait, so the long delay just added perceived lag
 * for no benefit. 0.6s still covers most of the transient icon flash. */
.jta-port #mainMovie.is-yt-playing .movie iframe {
  opacity: 1 !important;
  transition: opacity 0.4s ease-in 0.6s;
}

/* Fix (2026-07-05 R4): CSS overlay covering YouTube suggested-content card
   in bottom-right corner at start. YouTube renders a "その他の動画 / more videos"
   card+text in the bottom-right area even with rel=0/modestbranding=1 — the
   cards feature cannot be fully suppressed via URL params. Physically cover
   the corner with a black ::after pseudo matching the hero wrapper background
   (#000).
   Fix (2026-07-06): removed position:relative override — the base rule already
   sets .movie {position:absolute; top:0; height:100%}, filling #mainMovie
   independent of its padding-top:160px. The R4 override forced .movie into
   normal flow, which caused .movie (and iframe) to be pushed 160px down by
   the wrapper padding — visible as a black band above the video. Keep only
   overflow:hidden (already in base) as a no-op safeguard for the ::after clip. */
.jta-port #mainMovie .movie {
  overflow: hidden;
}
.jta-port #mainMovie .movie::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 220px;
  height: 90px;
  background: #000;
  z-index: 3;
  pointer-events: none;
}
/* Corner mask top-left (2026-07-06): YouTube's video title chrome
   ("Discover ... - produced by JTA" + channel name) surfaces at the iframe's
   top-left for the first few seconds and on hover — cut off against the
   viewport edge. The LIVE site has the same defect (never properly done).
   Solid black core (mirroring the bottom-right ::after treatment) fully
   hides the title text; horizontal + vertical soft edges fade the corner
   back into the video so the block reads as a nav-overlay shadow.
   Height 130px extended (2026-07-06 R3+): fully covers the site-logo
   background (logo at y=43-99, transparent PNG) so YouTube channel text
   never bleeds through the logo's transparent pixels or drop-shadow halo. */

/* Fix (2026-07-05 R5): custom audio-only mute/unmute button. Fixed to
   viewport top-right so it escapes #mainMovie's stacking context and
   sits above the site-header (z-index:50). */

/*   .yt-mute-toggle {
  position: fixed;
  top: 180px;
  right: 20px;
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  z-index: 100;
  pointer-events: auto;
  font-size: 20px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.2s;
}
.yt-mute-toggle:hover { background: rgba(255, 255, 255, 1); }
.yt-mute-toggle .yt-mute-icon-off { display: none; }
.yt-mute-toggle.is-muted .yt-mute-icon-on { display: none; }
.yt-mute-toggle.is-muted .yt-mute-icon-off { display: inline; }
*/

.yt-mute-toggle {
  display: none !important;
}

/* Niseko-parity click shield (2026-07-06): transparent overlay intercepts
   pointer events so YouTube's transport chrome (play/pause + prev/next arrows)
   never surfaces on hover/tap. .movie retains its base position:absolute
   (H-2 whitespace bug fix preserved) while pointer-events:none routes clicks
   to the shield above. .yt-mute-toggle is body-fixed and unaffected. */
#mainMovie .movie {
  pointer-events: none;
}
#mainMovie .mainMovie__shield {
  position: absolute;
  inset: 0;
  z-index: 3;
  background: transparent;
  pointer-events: auto;
  cursor: default;
}

.jta-port h1 {
  margin-bottom: 3.125rem !important;
  padding-top: 4.375rem !important;
}

.jta-port .kv-inner-title {
  display: block;
  font-size: 24px !important;
  line-height: 1.3 !important;
  width: 100%;
  margin: 1.25rem auto 0 auto!important;
  color: #282828 !important;
  max-width: 800px;
  text-align: center;
}

.jta-port[lang="en"] .kv-inner-title {
  display: block;
  font-size: 24px !important;
  line-height: 1.3 !important;
  margin: 1.25rem 0 0 0;
  color: #282828 !important;
}


@media screen and (max-width: 767px) {
  .jta-port h1 {
    margin-bottom: 1.875rem !important;
    padding-top: 2.5rem !important;
  }
.jta-port .kv-inner-title {
    font-size: 16px !important;
    margin: 0.8125rem 0 0 0;
  }
.jta-port[lang="en"] .kv-inner-title {
    font-size: 16px !important;
    margin: 0.8125rem 0 0 0;
  }
}

/* ========================================================
    スマホで改行解除
======================================================== */

.br-pc {
  display: inline !important;
}

@media screen and (max-width: 768px) {
  .br-pc {
    display: none !important;
  }
}

/* ========================================================
    TOURSカード：都道府県バッジ(北→南、寒色→暖色グラデーション)
    47都道府県分、個別に#カラーコードを指定(北海道=青系〜沖縄=赤系を
    均等に補間して算出した値をベースに、#カラーコードとして固定)。
    特徴的な色を当てたい県があれば、該当行のカラーコードを直接
    書き換えるだけでOK(グラデーション計算をやり直す必要はない)。
======================================================== */
.archive-card__region {
  display: inline-block;
  background-color: #3061A6; /* 未指定/不明な都道府県のフォールバック(北海道と同色) */
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.05em;
  padding: 4px 12px;
  border-radius: 2px;
}
.archive-card__region--hokkaido   { background-color: #3061A6; }
.archive-card__region--aomori     { background-color: #306AA6; }
.archive-card__region--iwate      { background-color: #3073A6; }
.archive-card__region--miyagi     { background-color: #307CA6; }
.archive-card__region--akita      { background-color: #3085A6; }
.archive-card__region--yamagata   { background-color: #308EA6; }
.archive-card__region--fukushima  { background-color: #3097A6; }
.archive-card__region--ibaraki    { background-color: #30A0A6; }
.archive-card__region--tochigi    { background-color: #30A6A3; }
.archive-card__region--gunma      { background-color: #30A69A; }
.archive-card__region--saitama    { background-color: #30A691; }
.archive-card__region--chiba      { background-color: #30A688; }
.archive-card__region--tokyo      { background-color: #30A67F; }
.archive-card__region--kanagawa   { background-color: #30A676; }
.archive-card__region--niigata    { background-color: #30A66D; }
.archive-card__region--toyama     { background-color: #30A664; }
.archive-card__region--ishikawa   { background-color: #30A65B; }
.archive-card__region--fukui      { background-color: #30A652; }
.archive-card__region--yamanashi  { background-color: #30A649; }
.archive-card__region--nagano     { background-color: #30A640; }
.archive-card__region--gifu       { background-color: #30A637; }
.archive-card__region--shizuoka   { background-color: #32A630; }
.archive-card__region--aichi      { background-color: #3BA630; }
.archive-card__region--mie        { background-color: #44A630; }
.archive-card__region--shiga      { background-color: #4DA630; }
.archive-card__region--kyoto      { background-color: #56A630; }
.archive-card__region--osaka      { background-color: #5FA630; }
.archive-card__region--hyogo      { background-color: #68A630; }
.archive-card__region--nara       { background-color: #71A630; }
.archive-card__region--wakayama   { background-color: #7AA630; }
.archive-card__region--tottori    { background-color: #83A630; }
.archive-card__region--shimane    { background-color: #8CA630; }
.archive-card__region--okayama    { background-color: #95A630; }
.archive-card__region--hiroshima  { background-color: #9DA630; }
.archive-card__region--yamaguchi  { background-color: #A6A630; }
.archive-card__region--tokushima  { background-color: #A69D30; }
.archive-card__region--kagawa     { background-color: #A69430; }
.archive-card__region--ehime      { background-color: #A68B30; }
.archive-card__region--kochi      { background-color: #A68230; }
.archive-card__region--fukuoka    { background-color: #A67930; }
.archive-card__region--saga       { background-color: #A67030; }
.archive-card__region--nagasaki   { background-color: #A66730; }
.archive-card__region--kumamoto   { background-color: #A65E30; }
.archive-card__region--oita       { background-color: #A65530; }
.archive-card__region--miyazaki   { background-color: #A64C30; }
.archive-card__region--kagoshima  { background-color: #A64330; }
.archive-card__region--okinawa    { background-color: #A63A30; }

/* 特徴的な色を当てたい都道府県があれば、上の該当行のカラーコードを
   直接書き換える。例：京都を伝統色の紫にしたい場合
   .archive-card__region--kyoto { background-color: #5B3A70; }
*/

