.elementor-3060 .elementor-element.elementor-element-acb345d{--display:flex;}.elementor-3060 .elementor-element.elementor-element-4c9a49c{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-713bfe3{--display:flex;}.elementor-3060 .elementor-element.elementor-element-1e3c24e{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-2102ed3{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-98dea48{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-ec77c39{--display:flex;}.elementor-3060 .elementor-element.elementor-element-a220e96{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-3d499b3{--display:flex;}.elementor-3060 .elementor-element.elementor-element-ba207d7{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-9adfc95{--display:flex;}.elementor-3060 .elementor-element.elementor-element-09777b5{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-cc648d8{--display:flex;}.elementor-3060 .elementor-element.elementor-element-d96ce74{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-55444ee{--display:flex;}.elementor-3060 .elementor-element.elementor-element-8ccfb4d{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-bfb418b{--display:flex;}.elementor-3060 .elementor-element.elementor-element-78955e9{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-80b5c39{--display:flex;}.elementor-3060 .elementor-element.elementor-element-011f0e5{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-aff691f{--display:flex;}.elementor-3060 .elementor-element.elementor-element-96e3062{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3060 .elementor-element.elementor-element-7d1daf6{--display:flex;}.elementor-3060 .elementor-element.elementor-element-e50b887{--display:flex;--margin-top:-20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS for html, class: .elementor-element-c10cd35 *//* =========================================================
   KENYA COUNTRY SHELL v2
   GLOBAL HEADER + FULLSCREEN MENU

   JAPAN PR DESK
   PASSPORT × EDITORIAL × COUNTRY SERIES
========================================================= */

.kcountry-header{

  --navy:#093D52;
  --navy-deep:#052F3E;
  --navy-dark:#032631;

  --gold:#A67C37;
  --gold-light:#D4B779;

  --orange:#BD6637;

  --paper:#F2E9DA;
  --paper-light:#FBF7EF;

  --ink:#16272D;
  --muted:#77847F;

  --line-light:rgba(255,255,255,.13);
  --line-dark:rgba(9,61,82,.14);

  position:fixed;

  z-index:9998;

  top:0;
  left:0;
  right:0;

  width:100%;

  color:#fff;

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;
}


.kcountry-header,
.kcountry-header *,
.kcountry-header *::before,
.kcountry-header *::after{
  box-sizing:border-box;
}


.kcountry-header a{
  color:inherit;
  text-decoration:none;
}


.kcountry-header button{
  font:inherit;
}


/* =========================================================
   WORDPRESS ADMIN BAR
========================================================= */

body.admin-bar
.kcountry-header{
  top:32px;
}


@media(max-width:782px){

  body.admin-bar
  .kcountry-header{
    top:46px;
  }

}


/* =========================================================
   HEADER BAR
========================================================= */

.kcountry-header__bar{

  position:relative;

  z-index:40;

  display:grid;

  grid-template-columns:
    170px
    minmax(190px,1fr)
    auto
    92px;

  align-items:center;

  gap:
    clamp(18px,3vw,45px);

  height:72px;

  padding:
    0
    clamp(25px,4.5vw,70px);

  border-bottom:
    1px solid
    rgba(255,255,255,.12);

  background:
    linear-gradient(
      180deg,
      rgba(3,38,49,.72),
      rgba(3,38,49,.35)
    );

  -webkit-backdrop-filter:
    blur(8px);

  backdrop-filter:
    blur(8px);

  transition:
    height .25s ease,
    background .25s ease,
    opacity .18s ease;
}


/* SCROLL */

.kcountry-header.is-scrolled
.kcountry-header__bar{

  height:62px;

  background:
    rgba(5,47,62,.94);

  -webkit-backdrop-filter:
    blur(14px);

  backdrop-filter:
    blur(14px);

  box-shadow:
    0 8px 28px
    rgba(0,0,0,.08);
}


/*
  JSにはis-hiddenが残っていても、
  このデザインではヘッダーを常時表示。
*/

.kcountry-header.is-hidden{
  transform:none;
}


/* =========================================================
   BRAND
========================================================= */

.kcountry-header__brand{

  display:flex;

  align-items:center;

  gap:6px;

  width:max-content;
}


.kcountry-header__brand span,
.kcountry-header__brand strong{

  font-family:
    Arial,
    sans-serif;

  font-size:7px;

  font-weight:900;

  line-height:1;

  letter-spacing:.14em;

  white-space:nowrap;
}


.kcountry-header__brand span{
  color:
    rgba(255,255,255,.52);
}


.kcountry-header__brand strong{
  color:#fff;
}


/* =========================================================
   COUNTRY
========================================================= */

.kcountry-header__country{

  justify-self:start;

  display:flex;

  align-items:center;

  gap:11px;

  min-width:0;
}


.kcountry-header__country > span{

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:21px;

  font-style:italic;

  line-height:1;
}


.kcountry-header__country > i{

  display:block;

  width:27px;
  height:1px;

  background:
    var(--gold-light);
}


.kcountry-header__country > small{

  color:
    rgba(255,255,255,.42);

  font-family:
    Arial,
    sans-serif;

  font-size:5px;

  font-weight:900;

  letter-spacing:.17em;

  white-space:nowrap;
}


/* =========================================================
   CURRENT PAGE
========================================================= */

.kcountry-header__current{

  display:flex;

  align-items:center;

  justify-self:end;

  gap:15px;

  min-width:0;
}


.kcountry-header__current-count{

  min-width:50px;

  color:
    var(--gold-light);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:13px;

  font-style:italic;

  text-align:right;
}


.kcountry-header__current-name{

  min-width:0;

  padding-left:15px;

  border-left:
    1px solid
    rgba(255,255,255,.15);
}


.kcountry-header__current-name small{

  display:block;

  margin-bottom:4px;

  color:
    rgba(255,255,255,.34);

  font-family:
    Arial,
    sans-serif;

  font-size:5px;

  font-weight:900;

  line-height:1;

  letter-spacing:.15em;
}


.kcountry-header__current-name strong{

  display:block;

  max-width:205px;

  overflow:hidden;

  color:#fff;

  font-family:
    Arial,
    sans-serif;

  font-size:8px;

  font-weight:900;

  line-height:1;

  letter-spacing:.08em;

  text-overflow:ellipsis;
  white-space:nowrap;
}


/* =========================================================
   MENU BUTTON
========================================================= */

.kcountry-header__menu-button{

  appearance:none;

  justify-self:end;

  display:flex;

  align-items:center;

  gap:12px;

  margin:0;
  padding:0;

  border:0;

  background:transparent;

  color:#fff;

  cursor:pointer;
}


.kcountry-header__menu-label{

  font-family:
    Arial,
    sans-serif;

  font-size:6px;

  font-weight:900;

  line-height:1;

  letter-spacing:.17em;
}


.kcountry-header__hamburger{

  position:relative;

  display:block;

  width:27px;
  height:18px;
}


.kcountry-header__hamburger i{

  position:absolute;

  left:0;

  display:block;

  width:100%;
  height:1px;

  background:#fff;

  transition:
    top .25s ease,
    transform .25s ease;
}


.kcountry-header__hamburger i:first-child{
  top:5px;
}


.kcountry-header__hamburger i:last-child{
  top:13px;
}


/* =========================================================
   PAGE PROGRESS
========================================================= */

.kcountry-header__progress{

  position:absolute;

  z-index:41;

  left:0;
  right:0;
  bottom:-1px;

  height:2px;

  overflow:hidden;

  pointer-events:none;
}


.kcountry-header__progress i{

  display:block;

  width:
    var(--country-page-progress,0%);

  height:100%;

  background:
    linear-gradient(
      90deg,
      var(--orange),
      var(--gold-light)
    );
}


/* =========================================================
   MENU OPEN
========================================================= */

.kcountry-header.is-menu-open
.kcountry-header__bar{

  opacity:0;

  pointer-events:none;
}


.kcountry-header.is-menu-open
.kcountry-header__progress{

  opacity:0;
}


/* =========================================================
   FULLSCREEN MENU
========================================================= */

.kcountry-menu{

  position:fixed;

  z-index:50;

  inset:0;

  width:100%;
  height:100svh;

  overflow:hidden;

  visibility:hidden;

  opacity:0;

  pointer-events:none;

  background:
    var(--navy-deep);

  color:#fff;

  clip-path:
    inset(0 0 100% 0);

  transition:
    clip-path .65s
      cubic-bezier(.22,.8,.2,1),
    opacity .18s ease,
    visibility .65s;
}


.kcountry-header.is-menu-open
.kcountry-menu{

  visibility:visible;

  opacity:1;

  pointer-events:auto;

  clip-path:
    inset(0 0 0 0);
}


/* =========================================================
   MENU TOP
========================================================= */

.kcountry-menu__top{

  position:absolute;

  z-index:60;

  top:0;
  left:0;
  right:0;

  display:grid;

  grid-template-columns:
    1fr
    auto
    1fr;

  align-items:center;

  height:72px;

  padding:
    0
    clamp(25px,4.5vw,70px);

  border-bottom:
    1px solid
    rgba(255,255,255,.11);

  background:
    rgba(3,38,49,.96);
}


.kcountry-menu__kenya{

  justify-self:start;

  color:#fff;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:22px;

  font-style:italic;

  line-height:1;
}


.kcountry-menu__top > span{

  color:
    rgba(255,255,255,.38);

  font-family:
    Arial,
    sans-serif;

  font-size:5px;

  font-weight:900;

  letter-spacing:.20em;
}


/* CLOSE */

.kcountry-menu__close{

  appearance:none;

  justify-self:end;

  display:flex;

  align-items:center;

  gap:12px;

  margin:0;
  padding:0;

  border:0;

  background:transparent;

  color:#fff;

  cursor:pointer;
}


.kcountry-menu__close span{

  font-family:
    Arial,
    sans-serif;

  font-size:6px;

  font-weight:900;

  letter-spacing:.17em;
}


.kcountry-menu__close i{

  position:relative;

  display:block;

  width:24px;
  height:24px;
}


.kcountry-menu__close i::before,
.kcountry-menu__close i::after{

  content:"";

  position:absolute;

  left:50%;
  top:50%;

  background:#fff;

  transform:
    translate(-50%,-50%);
}


.kcountry-menu__close i::before{

  width:100%;
  height:1px;

  transform:
    translate(-50%,-50%)
    rotate(45deg);
}


.kcountry-menu__close i::after{

  width:100%;
  height:1px;

  transform:
    translate(-50%,-50%)
    rotate(-45deg);
}


/* =========================================================
   MENU BODY
========================================================= */

.kcountry-menu__body{

  display:grid;

  grid-template-columns:
    minmax(540px,58%)
    minmax(0,42%);

  height:100%;

  padding-top:72px;
}


/* =========================================================
   LEFT / NAVIGATION
========================================================= */

.kcountry-menu__navigation{

  min-height:0;

  overflow-y:auto;

  padding:
    clamp(42px,5vw,66px)
    clamp(38px,5.5vw,82px)
    70px;

  background:
    var(--paper-light);

  color:
    var(--ink);

  scrollbar-width:thin;

  scrollbar-color:
    rgba(9,61,82,.2)
    transparent;
}


.kcountry-menu__navigation::-webkit-scrollbar{
  width:5px;
}


.kcountry-menu__navigation::-webkit-scrollbar-thumb{

  border-radius:999px;

  background:
    rgba(9,61,82,.18);
}


/* =========================================================
   SECTION SHARED
========================================================= */

.kcountry-menu__section{

  margin-bottom:
    clamp(34px,4vw,50px);
}


.kcountry-menu__section-label{

  margin:0;

  color:
    var(--orange);

  font-family:
    Arial,
    sans-serif;

  font-size:7px;

  font-weight:900;

  line-height:1;

  letter-spacing:.16em;
}


.kcountry-menu__section-head{

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:25px;

  margin-bottom:14px;
}


.kcountry-menu__section-head > span{

  color:
    rgba(22,39,45,.38);

  font-family:
    Arial,
    sans-serif;

  font-size:6px;

  font-weight:900;

  letter-spacing:.13em;
}


/* =========================================================
   COUNTRY TOP
========================================================= */

.kcountry-menu__top-link{

  position:relative;

  display:grid;

  grid-template-columns:
    46px
    minmax(0,1fr)
    auto;

  align-items:end;

  gap:14px;

  margin-top:15px;

  padding:
    20px
    0;

  border-top:
    1px solid
    var(--line-dark);

  border-bottom:
    1px solid
    var(--line-dark);

  color:
    var(--ink);

  transition:
    padding-left .22s ease;
}


.kcountry-menu__top-link::before{

  content:"";

  position:absolute;

  left:0;
  top:0;
  bottom:0;

  width:0;

  background:
    var(--navy);

  transition:
    width .22s ease;
}


.kcountry-menu__top-link:hover,
.kcountry-menu__top-link.is-current{

  padding-left:13px;
}


.kcountry-menu__top-link:hover::before,
.kcountry-menu__top-link.is-current::before{

  width:3px;
}


.kcountry-menu__top-link > span{

  color:
    var(--orange);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:17px;

  font-style:italic;
}


.kcountry-menu__top-link strong{

  color:
    var(--ink);

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(27px,2.8vw,42px);

  font-weight:900;

  line-height:.9;

  letter-spacing:-.05em;
}


.kcountry-menu__top-link small{

  color:
    rgba(22,39,45,.40);

  font-family:
    Arial,
    sans-serif;

  font-size:6px;

  font-weight:900;

  letter-spacing:.12em;
}


/* =========================================================
   STORIES
========================================================= */

.kcountry-menu__stories{

  border-top:
    1px solid
    var(--line-dark);
}


.kcountry-menu__stories a{

  position:relative;

  display:grid;

  grid-template-columns:
    38px
    minmax(190px,1fr)
    minmax(110px,.58fr)
    22px;

  align-items:center;

  gap:
    clamp(10px,1.8vw,20px);

  min-height:
    clamp(55px,4.5vw,66px);

  border-bottom:
    1px solid
    rgba(9,61,82,.11);

  color:
    var(--ink);

  transition:
    padding-left .2s ease,
    background .2s ease;
}


.kcountry-menu__stories a::before{

  content:"";

  position:absolute;

  left:0;
  top:0;
  bottom:0;

  width:0;

  background:
    var(--navy);

  transition:
    width .2s ease;
}


.kcountry-menu__stories a:hover,
.kcountry-menu__stories a.is-current{

  padding-left:12px;

  background:
    rgba(9,61,82,.025);
}


.kcountry-menu__stories a:hover::before,
.kcountry-menu__stories a.is-current::before{

  width:3px;
}


.kcountry-menu__stories small{

  position:relative;

  color:
    var(--orange);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:14px;

  font-style:italic;
}


.kcountry-menu__stories strong{

  position:relative;

  min-width:0;

  color:
    var(--ink);

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(12px,1.15vw,16px);

  font-weight:900;

  line-height:1.2;

  letter-spacing:-.01em;
}


.kcountry-menu__stories span{

  position:relative;

  color:
    rgba(22,39,45,.48);

  font-size:9px;

  line-height:1.5;
}


.kcountry-menu__stories i{

  position:relative;

  color:
    rgba(22,39,45,.34);

  font-family:
    Georgia,
    serif;

  font-size:15px;

  font-style:normal;

  transition:
    transform .2s ease,
    color .2s ease;
}


.kcountry-menu__stories a:hover i{

  color:
    var(--orange);

  transform:
    translate(3px,-3px);
}


/* CURRENT STORY */

.kcountry-menu__stories
a.is-current
strong::after{

  content:"NOW";

  display:inline-flex;

  align-items:center;

  margin-left:8px;

  padding:
    3px
    5px;

  vertical-align:middle;

  border-radius:999px;

  background:
    var(--navy);

  color:#fff;

  font-family:
    Arial,
    sans-serif;

  font-size:4px;

  font-weight:900;

  letter-spacing:.12em;
}


/* =========================================================
   TRAVEL
   Published / Current-aware
========================================================= */

.kcountry-menu__travel{

  margin:
    clamp(38px,4.5vw,55px)
    0;
}


.kcountry-menu__travel
> div{

  width:100%;
}


.kcountry-menu__travel-link{

  position:relative;

  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    auto;

  align-items:center;

  gap:25px;

  width:100%;

  margin-top:15px;

  padding:
    clamp(22px,3vw,31px);

  overflow:hidden;

  border:
    1px solid
    rgba(9,61,82,.08);

  border-radius:18px;

  background:
    var(--navy);

  color:#fff;

  box-shadow:
    0 12px 30px
    rgba(9,61,82,.08);

  transition:
    transform .2s ease,
    background .2s ease,
    box-shadow .2s ease;
}


.kcountry-menu__travel-link:hover{

  transform:
    translateY(-2px);

  background:
    #073649;

  box-shadow:
    0 18px 38px
    rgba(9,61,82,.14);
}


.kcountry-menu__travel-link::after{

  content:"TRAVEL";

  position:absolute;

  right:-1%;
  bottom:-18px;

  color:
    rgba(255,255,255,.035);

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(72px,8vw,122px);

  font-weight:900;

  line-height:.75;

  letter-spacing:-.07em;

  pointer-events:none;
}


.kcountry-menu__travel-link > div{

  position:relative;

  z-index:2;

  min-width:0;
}


.kcountry-menu__travel-link span{

  display:block;

  margin-bottom:8px;

  color:
    var(--gold-light);

  font-family:
    Arial,
    sans-serif;

  font-size:7px;

  font-weight:900;

  line-height:1;

  letter-spacing:.16em;
}


.kcountry-menu__travel-link strong{

  display:block;

  color:#fff;

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(24px,2.8vw,39px);

  font-weight:900;

  line-height:.95;

  letter-spacing:-.04em;
}


.kcountry-menu__travel-link small{

  display:block;

  margin-top:12px;

  color:
    rgba(255,255,255,.58);

  font-size:9px;

  line-height:1.7;
}


/* VIEW / CURRENT */

.kcountry-menu__travel-link em{

  position:relative;

  z-index:2;

  display:inline-flex;

  align-items:center;

  justify-content:center;

  min-width:74px;

  padding:
    8px
    11px;

  border:
    1px solid
    rgba(255,255,255,.20);

  border-radius:999px;

  background:
    rgba(255,255,255,.06);

  color:
    rgba(255,255,255,.67);

  font-family:
    Arial,
    sans-serif;

  font-size:6px;

  font-style:normal;

  font-weight:900;

  line-height:1;

  letter-spacing:.10em;

  white-space:nowrap;
}


.kcountry-menu__travel-link.is-current{

  border-color:
    rgba(212,183,121,.60);

  box-shadow:
    inset 0 0 0 1px
    rgba(212,183,121,.16),
    0 15px 35px
    rgba(9,61,82,.13);
}


.kcountry-menu__travel-link.is-current em{

  border-color:
    transparent;

  background:
    var(--gold);

  color:#fff;
}


/* =========================================================
   JAPAN PR DESK
========================================================= */

.kcountry-menu__desk{

  position:relative;

  padding-top:
    clamp(34px,4vw,48px);

  border-top:
    1px solid
    var(--line-dark);
}


.kcountry-menu__desk a{

  position:relative;

  display:grid;

  grid-template-columns:
    auto
    minmax(0,1fr)
    auto;

  align-items:end;

  gap:
    2px 12px;

  margin-top:17px;

  color:
    var(--ink);
}


.kcountry-menu__desk a > span{

  grid-column:1;

  color:
    var(--orange);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(26px,3.4vw,45px);

  font-style:italic;

  line-height:.9;
}


.kcountry-menu__desk a strong{

  grid-column:2;

  color:
    var(--ink);

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(27px,3.5vw,46px);

  font-weight:900;

  line-height:.9;

  letter-spacing:-.045em;
}


.kcountry-menu__desk a small{

  grid-column:2;

  margin-top:9px;

  color:
    rgba(22,39,45,.47);

  font-size:9px;

  line-height:1.6;
}


.kcountry-menu__desk a i{

  grid-column:3;
  grid-row:1 / span 2;

  align-self:center;

  color:
    var(--orange);

  font-family:
    Georgia,
    serif;

  font-size:21px;

  font-style:normal;

  transition:
    transform .2s ease;
}


.kcountry-menu__desk a:hover i{

  transform:
    translate(3px,-3px);
}


/* =========================================================
   RIGHT / PREVIEW
========================================================= */

.kcountry-menu__preview{

  position:relative;

  min-width:0;

  overflow:hidden;

  background:
    var(--navy-dark);

  isolation:isolate;
}


/* subtle frame */

.kcountry-menu__preview::after{

  content:"";

  position:absolute;

  z-index:5;

  inset:
    clamp(24px,3vw,42px);

  border:
    1px solid
    rgba(255,255,255,.10);

  pointer-events:none;
}


/* =========================================================
   PREVIEW LAYERS
========================================================= */

.kcountry-menu__preview-layer{

  position:absolute;

  inset:0;

  opacity:0;

  transform:
    scale(1.045);

  background-position:center;
  background-size:cover;

  pointer-events:none;

  transition:
    opacity .42s ease,
    transform .9s
      cubic-bezier(.2,.8,.2,1);
}


.kcountry-menu__preview-layer::before{

  content:"";

  position:absolute;

  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(3,38,49,.04),
      rgba(3,38,49,.13) 45%,
      rgba(3,38,49,.88) 100%
    ),
    linear-gradient(
      90deg,
      rgba(3,38,49,.30),
      transparent 60%
    );
}


.kcountry-menu__preview-layer.is-active{

  opacity:1;

  transform:
    scale(1);
}


/* =========================================================
   PREVIEW BACKGROUNDS

   写真を使う時は
   --menu-country-image:url(...)
   のように指定
========================================================= */

.kcountry-menu__preview-layer[data-preview-layer="country"]{

  background-image:
    var(
      --menu-country-image,
      linear-gradient(
        135deg,
        #53695A,
        #B48A55
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="nature"]{

  background-image:
    var(
      --menu-nature-image,
      linear-gradient(
        135deg,
        #4C654A,
        #AF9255
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="nairobi"]{

  background-image:
    var(
      --menu-nairobi-image,
      linear-gradient(
        135deg,
        #263E4B,
        #9A654A
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="coast"]{

  background-image:
    var(
      --menu-coast-image,
      linear-gradient(
        135deg,
        #3A7981,
        #D1BD87
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="food"]{

  background-image:
    var(
      --menu-food-image,
      linear-gradient(
        135deg,
        #6B4232,
        #D58D4D
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="heritage"]{

  background-image:
    var(
      --menu-heritage-image,
      linear-gradient(
        135deg,
        #6D6250,
        #B6A276
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="music"]{

  background-image:
    var(
      --menu-music-image,
      linear-gradient(
        135deg,
        #3F274D,
        #B95C51
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="people"]{

  background-image:
    var(
      --menu-people-image,
      linear-gradient(
        135deg,
        #466357,
        #C1885F
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="travel"]{

  background-image:
    var(
      --menu-travel-image,
      linear-gradient(
        135deg,
        #315C6C,
        #BBA266
      )
    );
}


.kcountry-menu__preview-layer[data-preview-layer="desk"]{

  background-image:
    var(
      --menu-desk-image,
      linear-gradient(
        135deg,
        var(--navy),
        var(--gold)
      )
    );
}


/* =========================================================
   PREVIEW COPY
========================================================= */

.kcountry-preview__copy{

  position:absolute;

  z-index:3;

  left:
    clamp(42px,5vw,75px);

  right:
    clamp(42px,5vw,75px);

  bottom:
    clamp(78px,8vw,118px);

  color:#fff;
}


.kcountry-preview__copy small{

  display:block;

  margin-bottom:13px;

  color:
    var(--gold-light);

  font-family:
    Arial,
    sans-serif;

  font-size:6px;

  font-weight:900;

  line-height:1;

  letter-spacing:.17em;
}


.kcountry-preview__copy strong{

  display:block;

  color:#fff;

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(48px,6vw,88px);

  font-weight:900;

  line-height:.82;

  letter-spacing:-.065em;

  overflow-wrap:anywhere;
}


.kcountry-preview__copy span{

  display:block;

  margin-top:20px;

  color:
    rgba(255,255,255,.60);

  font-family:
    Arial,
    sans-serif;

  font-size:
    clamp(8px,.9vw,11px);

  font-weight:900;

  line-height:1.55;

  letter-spacing:.08em;
}


/* =========================================================
   PREVIEW INDEX
========================================================= */

.kcountry-menu__preview-index{

  position:absolute;

  z-index:10;

  left:
    clamp(42px,5vw,75px);

  right:
    clamp(42px,5vw,75px);

  bottom:
    clamp(29px,3.5vw,45px);

  display:grid;

  grid-template-columns:
    auto
    1fr
    auto;

  align-items:center;

  gap:12px;

  color:
    rgba(255,255,255,.42);

  font-family:
    Arial,
    sans-serif;

  font-size:5px;

  font-weight:900;

  line-height:1;

  letter-spacing:.15em;
}


.kcountry-menu__preview-index i{

  display:block;

  height:1px;

  background:
    rgba(255,255,255,.21);
}


.kcountry-menu__preview-index strong{

  color:
    var(--gold-light);
}


/* =========================================================
   BODY LOCK
========================================================= */

html.kcountry-menu-open,
body.kcountry-menu-open{

  overflow:hidden !important;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .kcountry-header__bar{

    grid-template-columns:
      135px
      1fr
      auto
      75px;

    gap:16px;
  }


  .kcountry-menu__body{

    grid-template-columns:
      minmax(500px,61%)
      minmax(0,39%);
  }


  .kcountry-menu__stories a{

    grid-template-columns:
      35px
      minmax(170px,1fr)
      minmax(90px,.48fr)
      20px;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

  /* =======================================================
     HEADER
  ======================================================= */

  .kcountry-header__bar{

    grid-template-columns:
      1fr
      auto
      1fr;

    height:58px;

    padding:
      0
      18px;

    background:
      rgba(5,47,62,.91);

    -webkit-backdrop-filter:
      blur(12px);

    backdrop-filter:
      blur(12px);
  }


  .kcountry-header.is-scrolled
  .kcountry-header__bar{

    height:56px;
  }


  .kcountry-header__brand{

    justify-self:start;

    gap:4px;
  }


  .kcountry-header__brand span,
  .kcountry-header__brand strong{

    font-size:5px;

    letter-spacing:.09em;
  }


  .kcountry-header__country{

    justify-self:center;
  }


  .kcountry-header__country > span{

    font-size:18px;
  }


  .kcountry-header__country > i,
  .kcountry-header__country > small{

    display:none;
  }


  .kcountry-header__current{

    display:none;
  }


  .kcountry-header__menu-button{

    justify-self:end;
  }


  .kcountry-header__menu-label{

    display:none;
  }


  .kcountry-header__hamburger{

    width:24px;
  }


  /* =======================================================
     MENU TOP
  ======================================================= */

  .kcountry-menu__top{

    grid-template-columns:
      1fr
      auto;

    height:58px;

    padding:
      0
      18px;
  }


  .kcountry-menu__top > span{

    display:none;
  }


  .kcountry-menu__kenya{

    font-size:19px;
  }


  .kcountry-menu__close span{

    display:none;
  }


  .kcountry-menu__close i{

    width:22px;
    height:22px;
  }


  /* =======================================================
     BODY
  ======================================================= */

  .kcountry-menu__body{

    display:block;

    height:100%;

    padding-top:58px;
  }


  /*
    スマホではプレビューを背景にしない。
    情報を読むことを優先。
  */

  .kcountry-menu__preview{

    display:none;
  }


  .kcountry-menu__navigation{

    height:
      calc(100svh - 58px);

    padding:
      35px
      20px
      60px;

    background:
      var(--paper-light);

    color:
      var(--ink);
  }


  /* =======================================================
     SECTION
  ======================================================= */

  .kcountry-menu__section{

    margin-bottom:35px;
  }


  .kcountry-menu__section-label{

    font-size:7px;
  }


  .kcountry-menu__section-head > span{

    display:none;
  }


  /* =======================================================
     COUNTRY
  ======================================================= */

  .kcountry-menu__top-link{

    grid-template-columns:
      36px
      1fr
      auto;

    gap:10px;

    padding:
      18px 0;
  }


  .kcountry-menu__top-link > span{

    font-size:15px;
  }


  .kcountry-menu__top-link strong{

    font-size:
      clamp(27px,8vw,37px);
  }


  /* =======================================================
     STORIES
  ======================================================= */

  .kcountry-menu__stories a{

    grid-template-columns:
      31px
      minmax(0,1fr)
      20px;

    gap:10px;

    min-height:59px;
  }


  .kcountry-menu__stories a:hover,
  .kcountry-menu__stories a.is-current{

    padding-left:9px;
  }


  .kcountry-menu__stories small{

    font-size:13px;
  }


  .kcountry-menu__stories strong{

    font-size:
      clamp(12px,3.7vw,15px);

    line-height:1.25;
  }


  .kcountry-menu__stories span{

    display:none;
  }


  .kcountry-menu__stories i{

    font-size:14px;
  }


  /* =======================================================
     TRAVEL
  ======================================================= */

  .kcountry-menu__travel{

    margin:
      36px 0;
  }


  .kcountry-menu__travel-link{

    grid-template-columns:
      1fr;

    gap:18px;

    padding:
      23px
      20px;

    border-radius:16px;
  }


  .kcountry-menu__travel-link strong{

    font-size:
      clamp(28px,8vw,38px);
  }


  .kcountry-menu__travel-link small{

    max-width:270px;

    font-size:9px;
  }


  .kcountry-menu__travel-link em{

    justify-self:start;

    min-width:70px;
  }


  .kcountry-menu__travel-link::after{

    right:-7%;
    bottom:-10px;

    font-size:95px;
  }


  /* =======================================================
     PR DESK
  ======================================================= */

  .kcountry-menu__desk{

    padding-top:32px;
  }


  .kcountry-menu__desk a{

    grid-template-columns:
      auto
      1fr
      auto;

    gap:
      2px
      10px;
  }


  .kcountry-menu__desk a > span{

    font-size:
      clamp(26px,8vw,36px);
  }


  .kcountry-menu__desk a strong{

    font-size:
      clamp(27px,8vw,38px);
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:390px){

  .kcountry-header__bar{

    padding:
      0
      16px;
  }


  .kcountry-menu__top{

    padding:
      0
      16px;
  }


  .kcountry-menu__navigation{

    padding-left:17px;
    padding-right:17px;
  }


  .kcountry-menu__stories a{

    grid-template-columns:
      28px
      minmax(0,1fr)
      18px;
  }


  .kcountry-menu__stories strong{

    font-size:12px;
  }


  .kcountry-menu__travel-link{

    padding:
      21px
      18px;
  }

}


/* =========================================================
   ELEMENTOR EDITOR
========================================================= */

body.elementor-editor-active
.kcountry-header{

  z-index:99999;
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.kcountry-header :is(
  a,
  button
):focus-visible{

  outline:
    3px solid
    rgba(212,183,121,.48);

  outline-offset:3px;
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .kcountry-header *,
  .kcountry-header *::before,
  .kcountry-header *::after{

    scroll-behavior:auto !important;

    animation:none !important;

    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-a871016 *//* =========================================================
   KRT55
   JAPAN PR DESK / KENYA TRAVEL ROUTE
   MOBILE HEADING FIX
========================================================= */

.krt55{
  --navy:#093D52;
  --orange:#BD6637;
  --orange-dark:#9D4D2A;
  --green:#5A7058;

  --cream:#FFFAF1;
  --map:#EDF4EC;
  --white:#FFFFFF;
  --text:#617477;
  --border:#DDD8CD;

  width:100%;
  max-width:100%;

  overflow:hidden;

  background:var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.krt55,
.krt55 *,
.krt55 *::before,
.krt55 *::after{
  box-sizing:border-box;
}


.krt55 :is(
  h2,
  h3,
  p,
  figure,
  figcaption
){
  margin:0;
  padding:0;
}


.krt55 button,
.krt55 a{
  font:inherit;
}


.krt55 button{
  border:0;
}


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


.krt55 :is(
  button,
  a
):focus-visible{
  outline:
    3px solid
    rgba(189,102,55,.35);

  outline-offset:4px;
}


/* =========================================================
   INNER
========================================================= */

.krt55__inner{
  width:min(
    1280px,
    calc(
      100% -
      clamp(34px,7vw,110px)
    )
  );

  margin-inline:auto;

  padding:
    clamp(70px,8vw,110px)
    0
    clamp(70px,8vw,100px);
}


/* =========================================================
   HEADER
========================================================= */

.krt55__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(300px,.72fr);

  align-items:end;

  gap:
    clamp(28px,6vw,80px);

  margin-bottom:34px;
}


.krt55__header > *{
  min-width:0;
}


.krt55__kicker{
  display:flex;

  align-items:center;

  gap:10px;

  color:var(--orange);

  font-size:12px;
  font-weight:800;
}


.krt55__kicker::before{
  content:"";

  flex:none;

  width:28px;
  height:3px;

  border-radius:999px;

  background:var(--orange);
}


.krt55 .krt55__title{
  width:100%;
  max-width:100%;

  margin-top:12px !important;

  color:var(--navy) !important;

  font-size:
    clamp(
      36px,
      4.5vw,
      62px
    ) !important;

  font-weight:800 !important;

  line-height:1.32 !important;

  letter-spacing:-.055em !important;

  word-break:keep-all;

  overflow-wrap:normal;
}


.krt55__lead{
  width:100%;
  max-width:520px;

  color:var(--text);

  font-size:14px;

  line-height:2;
}


/* =========================================================
   TABS
========================================================= */

.krt55__tabs{
  display:grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );

  gap:12px;

  margin-bottom:16px;
}


.krt55__tab{
  min-width:0;
  min-height:96px;

  padding:
    16px
    19px;

  border:
    1px solid
    var(--border);

  border-radius:16px;

  background:
    rgba(255,255,255,.78);

  color:var(--navy);

  text-align:left;

  cursor:pointer;

  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}


.krt55__tab:hover{
  transform:
    translateY(-2px);

  border-color:#CBBCAA;
}


.krt55__tab.is-active{
  border-color:transparent;

  background:#FFF;

  box-shadow:
    0 0 0 3px
    rgba(189,102,55,.25);
}


.krt55__tab small{
  display:block;

  margin-bottom:4px;

  color:#899899;

  font:
    800 8px/1.4
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.krt55__tab > div{
  display:flex;

  align-items:center;

  gap:15px;

  min-width:0;
}


.krt55__tab strong{
  flex:none;

  color:var(--orange);

  font-size:30px;
  font-weight:900;

  line-height:1.15;
}


.krt55__tab span{
  min-width:0;

  color:var(--navy);

  font-size:14px;
  font-weight:800;

  line-height:1.5;

  white-space:normal;
}


/* =========================================================
   VIEWER
========================================================= */

.krt55__viewer{
  display:grid;

  grid-template-columns:
    minmax(360px,.86fr)
    minmax(0,1.14fr);

  gap:14px;
}


.krt55__map-card,
.krt55__photo-card{
  min-width:0;

  height:440px;

  border-radius:22px;

  overflow:hidden;
}


/* =========================================================
   MAP
========================================================= */

.krt55__map-card{
  display:flex;

  flex-direction:column;

  border:
    1px solid
    #D4E0D4;

  background:var(--map);
}


.krt55__map-head{
  display:flex;

  align-items:flex-start;

  justify-content:
    space-between;

  gap:18px;

  flex:none;

  padding:
    20px
    22px
    3px;
}


.krt55__map-head small{
  display:block;

  color:#698070;

  font:
    800 8px/1.5
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.krt55__map-head strong{
  display:block;

  margin-top:4px;

  color:var(--navy);

  font-size:19px;
  font-weight:800;

  line-height:1.45;
}


.krt55__map-head > span{
  flex:none;

  padding:
    7px
    10px;

  border-radius:999px;

  background:#FFF;

  color:#6D8078;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


/* =========================================================
   MAP BODY
========================================================= */

.krt55__map-body{
  position:relative;

  display:flex;

  align-items:center;
  justify-content:center;

  flex:1;

  min-height:0;

  padding:
    0
    18px;

  overflow:hidden;
}


.krt55__map-canvas{
  position:relative;

  display:inline-block;

  max-width:100%;
  max-height:330px;
}


.krt55__map-image{
  position:relative;

  z-index:1;

  display:block;

  width:auto;
  height:auto;

  max-width:100%;
  max-height:330px;

  opacity:.25;

  pointer-events:none;

  user-select:none;
}


/* =========================================================
   ROUTE
========================================================= */

.krt55__route-svg{
  position:absolute;

  z-index:2;

  inset:0;

  display:block;

  width:100%;
  height:100%;

  overflow:visible;

  pointer-events:none;
}


.krt55__route-fallback{
  fill:none;

  stroke:var(--orange);

  stroke-width:2.2;

  stroke-linecap:round;

  stroke-linejoin:round;

  vector-effect:
    non-scaling-stroke;
}


.krt55.is-js
.krt55__route-fallback{
  display:none;
}


.krt55__route-segment{
  fill:none;

  stroke:var(--orange);

  stroke-width:2.2;

  stroke-linecap:round;

  vector-effect:
    non-scaling-stroke;
}


/* =========================================================
   MARKERS
========================================================= */

.krt55__markers{
  position:absolute;

  z-index:4;

  inset:0;

  width:100%;
  height:100%;

  pointer-events:none;
}


.krt55__marker-item{
  position:absolute;

  left:var(--x);

  top:var(--y);

  transform:
    translate(-50%,-50%);

  pointer-events:auto;
}


.krt55__marker{
  display:grid;

  place-items:center;

  width:34px;
  height:34px;

  padding:0;

  border:
    3px solid
    #FFF;

  border-radius:50%;

  background:var(--navy);

  color:#FFF;

  box-shadow:
    0 4px 12px
    rgba(9,61,82,.18);

  font:
    800 10px/1
    Arial,
    sans-serif;

  cursor:pointer;

  transition:
    transform .15s ease,
    background .15s ease;
}


.krt55__marker:hover{
  transform:
    scale(1.08);
}


.krt55__marker.is-active{
  transform:
    scale(1.12);

  background:
    var(--orange);
}


.krt55__marker-item > span{
  position:absolute;

  left:50%;

  top:
    calc(100% + 4px);

  transform:
    translateX(-50%);

  padding:
    3px
    6px;

  border-radius:6px;

  background:
    rgba(255,250,241,.96);

  color:#49635D;

  font:
    800 7px/1.2
    Arial,
    sans-serif;

  white-space:nowrap;

  pointer-events:none;
}


.krt55__marker-item--upper > span{
  top:auto;

  bottom:
    calc(100% + 4px);
}


/* =========================================================
   MAP LABEL
========================================================= */

.krt55__north{
  position:absolute;

  z-index:5;

  right:7%;
  top:5%;

  color:#718C82;

  font:
    800 8px/1
    Arial,
    sans-serif;
}


.krt55__ocean{
  position:absolute;

  z-index:5;

  right:4%;
  bottom:4%;

  color:#7FA3A5;

  font:
    italic 9px/1
    Georgia,
    serif;

  letter-spacing:.05em;

  transform:
    rotate(-8deg);
}


.krt55__map-note{
  flex:none;

  padding:
    4px
    20px
    11px !important;

  color:#7B8D88;

  font-size:7px;

  line-height:1.55;
}


/* =========================================================
   PHOTO
========================================================= */

.krt55__photo-card{
  position:relative;

  background:#AABDBC;
}


.krt55__photo{
  position:absolute;

  inset:0;

  display:block;

  width:100%;
  height:100%;

  object-fit:cover;

  opacity:1;

  transition:
    opacity .22s ease,
    transform .38s ease;
}


.krt55__photo-card.is-changing
.krt55__photo{
  opacity:.7;

  transform:
    scale(1.012);
}


.krt55__photo-overlay{
  position:absolute;

  z-index:1;

  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(4,36,46,.02) 25%,
      rgba(4,36,46,.12) 54%,
      rgba(4,36,46,.82) 100%
    );

  pointer-events:none;
}


.krt55__photo-content{
  position:absolute;

  z-index:2;

  left:
    clamp(22px,3vw,40px);

  right:
    clamp(22px,3vw,40px);

  bottom:
    clamp(22px,3vw,34px);

  color:#FFF;
}


.krt55__photo-meta{
  display:flex;

  flex-wrap:wrap;

  gap:7px;

  margin-bottom:7px;
}


.krt55__photo-meta span{
  padding:
    5px
    8px;

  border-radius:999px;

  background:
    rgba(9,61,82,.72);

  font:
    800 7px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.krt55__photo-place{
  color:#F2CA7C !important;

  font:
    800 9px/1.5
    Arial,
    sans-serif !important;

  letter-spacing:.1em;
}


.krt55
.krt55__photo-content h3{
  margin-top:5px !important;

  color:#FFF !important;

  font-size:
    clamp(
      24px,
      2.6vw,
      36px
    ) !important;

  font-weight:800 !important;

  line-height:1.38 !important;

  letter-spacing:-.045em !important;

  word-break:keep-all;
}


.krt55__photo-text{
  max-width:600px;

  margin-top:7px !important;

  color:
    rgba(255,255,255,.9);

  font-size:11px;

  line-height:1.8;
}


/* =========================================================
   STOP CARDS
========================================================= */

.krt55__stop-area{
  margin-top:11px;
}


.krt55__stop-list{
  display:grid;

  grid-template-columns:
    repeat(
      var(--stop-columns,3),
      minmax(0,1fr)
    );

  gap:9px;
}


.krt55__stop-card{
  position:relative;

  min-width:0;
  min-height:92px;

  padding:
    14px
    15px;

  border:
    1px solid
    var(--border);

  border-radius:13px;

  background:#FFF;

  color:var(--navy);

  text-align:left;

  cursor:pointer;

  transition:
    box-shadow .15s ease,
    transform .15s ease;
}


.krt55__stop-card:hover{
  transform:
    translateY(-2px);

  box-shadow:
    0 7px 18px
    rgba(39,67,64,.06);
}


.krt55__stop-card.is-active{
  box-shadow:
    0 0 0 3px
    rgba(189,102,55,.22);
}


.krt55__stop-card::before{
  content:"";

  position:absolute;

  left:14px;
  top:-1px;

  width:38px;
  height:4px;

  border-radius:
    0 0 4px 4px;

  background:#A3BDB7;
}


.krt55__stop-card.is-active::before{
  background:var(--orange);
}


.krt55__stop-card small{
  display:block;

  color:#899999;

  font:
    800 7px/1.4
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.krt55__stop-card strong{
  display:block;

  margin-top:4px;

  color:var(--navy);

  font-size:14px;
  font-weight:800;

  line-height:1.4;
}


.krt55__stop-card span{
  display:block;

  margin-top:3px;

  color:#748486;

  font-size:9px;

  line-height:1.55;
}


/* =========================================================
   TIP
========================================================= */

.krt55__tip{
  display:grid;

  grid-template-columns:
    minmax(240px,.75fr)
    minmax(0,1.25fr);

  align-items:center;

  gap:
    clamp(24px,5vw,62px);

  margin-top:
    clamp(38px,5vw,60px);

  padding:
    25px
    28px;

  border-radius:18px;

  background:#EDF4EC;
}


.krt55__tip > div > p{
  color:var(--green);

  font-size:11px;

  font-weight:800;
}


.krt55
.krt55__tip h3{
  margin-top:4px !important;

  color:var(--navy) !important;

  font-size:20px !important;

  font-weight:800 !important;

  line-height:1.5 !important;
}


.krt55__tip > p{
  color:#637773;

  font-size:12px;

  line-height:1.85;
}


/* =========================================================
   NEXT
========================================================= */

.krt55__next{
  display:grid;

  grid-template-columns:
    minmax(240px,.8fr)
    minmax(280px,1fr)
    auto;

  align-items:center;

  gap:
    clamp(24px,5vw,62px);

  margin-top:26px;

  padding:
    25px
    28px;

  border-radius:18px;

  background:#FFF0E5;
}


.krt55__next > div > p{
  color:var(--orange);

  font-size:11px;

  font-weight:800;
}


.krt55
.krt55__next h3{
  margin-top:4px !important;

  color:var(--navy) !important;

  font-size:20px !important;

  font-weight:800 !important;

  line-height:1.5 !important;
}


.krt55__next > p{
  color:#637773;

  font-size:12px;

  line-height:1.85;
}


.krt55__next > a{
  display:flex;

  align-items:center;

  justify-content:
    space-between;

  gap:22px;

  min-width:185px;
  min-height:50px;

  padding:
    11px
    17px;

  border-radius:999px;

  background:var(--orange);

  color:#FFF !important;

  font-size:12px;

  font-weight:800;
}


/* =========================================================
   NOTICE
========================================================= */

.krt55__notice{
  margin-top:13px !important;

  color:#8D9895;

  font-size:8px;

  line-height:1.7;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .krt55__header{
    grid-template-columns:1fr;

    gap:17px;
  }


  .krt55__viewer{
    grid-template-columns:
      1fr 1fr;
  }


  .krt55__map-card,
  .krt55__photo-card{
    height:420px;
  }


  .krt55__map-canvas,
  .krt55__map-image{
    max-height:310px;
  }


  .krt55__stop-list{
    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      );
  }


  .krt55__tip{
    grid-template-columns:1fr;

    gap:12px;
  }


  .krt55__next{
    grid-template-columns:
      1fr 1fr;
  }


  .krt55__next > a{
    grid-column:1/-1;

    width:max-content;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .krt55__viewer{
    grid-template-columns:1fr;
  }


  .krt55__map-card{
    height:410px;
  }


  .krt55__photo-card{
    height:440px;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .krt55{
    overflow-x:hidden;
  }


  .krt55__inner{
    width:
      calc(100% - 32px);

    margin-inline:auto;

    padding:
      58px
      0
      66px;
  }


  /* =====================================
     HEADER
  ====================================== */

  .krt55__header{
    display:block;

    width:100%;

    margin-bottom:30px;
  }


  .krt55__kicker{
    font-size:11px;
  }


  /*
    ここが今回の主修正。

    keep-allを解除し、
    日本語を自然に折り返す。

    PC用brも無効化。
  */
  .krt55 .krt55__title{
    width:100%;
    max-width:100%;

    margin-top:14px !important;

    font-size:
      clamp(
        31px,
        9vw,
        39px
      ) !important;

    line-height:
      1.38 !important;

    letter-spacing:
      -.045em !important;

    word-break:normal;

    overflow-wrap:anywhere;

    text-wrap:pretty;
  }


  .krt55__title br{
    display:none;
  }


  .krt55__lead{
    width:100%;
    max-width:none;

    margin-top:22px !important;

    color:var(--text);

    font-size:13px;

    line-height:1.9;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  /* =====================================
     TABS
  ====================================== */

  .krt55__tabs{
    display:flex;

    width:100%;

    margin-right:0;

    padding:
      3px
      0
      12px;

    gap:9px;

    overflow-x:auto;

    scroll-snap-type:
      x mandatory;

    scroll-padding-left:0;

    scrollbar-width:none;
  }


  .krt55__tabs::-webkit-scrollbar{
    display:none;
  }


  .krt55__tab{
    flex:
      0 0
      min(72vw,245px);

    min-height:92px;

    padding:
      15px
      17px;

    scroll-snap-align:start;
  }


  .krt55__tab:first-child{
    margin-left:3px;
  }


  .krt55__tab:last-child{
    margin-right:3px;
  }


  .krt55__tab:hover{
    transform:none;
  }


  .krt55__tab strong{
    font-size:28px;
  }


  .krt55__tab span{
    font-size:13px;
  }


  /* =====================================
     MAP
  ====================================== */

  .krt55__map-card{
    height:390px;

    border-radius:18px;
  }


  .krt55__map-head{
    padding:
      17px
      17px
      2px;
  }


  .krt55__map-head strong{
    font-size:17px;
  }


  .krt55__map-body{
    padding-inline:8px;
  }


  .krt55__map-canvas,
  .krt55__map-image{
    max-height:285px;
  }


  .krt55__marker{
    width:30px;
    height:30px;

    border-width:2px;

    font-size:8px;
  }


  .krt55__marker-item > span{
    padding:
      3px
      5px;

    font-size:6px;
  }


  .krt55__map-note{
    padding:
      3px
      16px
      9px !important;

    font-size:7px;
  }


  /* =====================================
     PHOTO
  ====================================== */

  .krt55__photo-card{
    height:430px;

    border-radius:18px;
  }


  .krt55
  .krt55__photo-content h3{
    font-size:27px !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  /* =====================================
     STOP CARDS
  ====================================== */

  .krt55__stop-list{
    display:flex;

    width:100%;

    margin-right:0;

    padding:
      3px
      0
      10px;

    gap:8px;

    overflow-x:auto;

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .krt55__stop-list::-webkit-scrollbar{
    display:none;
  }


  .krt55__stop-card{
    flex:
      0 0
      min(64vw,220px);

    min-height:88px;

    scroll-snap-align:start;
  }


  .krt55__stop-card:first-child{
    margin-left:3px;
  }


  .krt55__stop-card:last-child{
    margin-right:3px;
  }


  .krt55__stop-card:hover{
    transform:none;
  }


  /* =====================================
     LOWER
  ====================================== */

  .krt55__tip,
  .krt55__next{
    grid-template-columns:1fr;

    gap:13px;

    padding:
      21px
      18px;
  }


  .krt55__next > a{
    grid-column:auto;

    width:100%;
    min-width:0;
  }

}


/* =========================================================
   SMALL SMARTPHONE
========================================================= */

@media(max-width:390px){

  .krt55__inner{
    width:
      calc(100% - 28px);
  }


  .krt55 .krt55__title{
    font-size:
      clamp(
        29px,
        8.8vw,
        35px
      ) !important;

    line-height:
      1.4 !important;

    letter-spacing:
      -.04em !important;
  }


  .krt55__tab{
    flex-basis:76vw;
  }


  .krt55__stop-card{
    flex-basis:74vw;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(
  prefers-reduced-motion:reduce
){

  .krt55 *,
  .krt55 *::before,
  .krt55 *::after{
    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-cee1051 *//* =========================================================
   KBUDGET01
   JAPAN PR DESK / KENYA
========================================================= */

.kbudget01{
  --navy:#093D52;
  --navy-deep:#052D3C;

  --gold:#A67C37;

  --orange:#BD6637;
  --orange-light:#E7B58E;

  --green:#5A7058;

  --cream:#FFFAF1;
  --cream-2:#F6F0E4;

  --white:#FFFFFF;

  --text:#66797A;
  --line:rgba(255,255,255,.16);

  width:100%;
  max-width:100%;

  overflow:hidden;

  background:var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.kbudget01,
.kbudget01 *,
.kbudget01 *::before,
.kbudget01 *::after{
  box-sizing:border-box;
}


.kbudget01 :is(
  h2,
  h3,
  h4,
  p,
  figure,
  figcaption
){
  margin:0;
  padding:0;
}


.kbudget01 button{
  border:0;
  font:inherit;
}


.kbudget01 svg{
  display:block;
}


.kbudget01 button:focus-visible{
  outline:
    3px solid
    rgba(189,102,55,.35);

  outline-offset:4px;
}



/* =========================================================
   INNER
========================================================= */

.kbudget01__inner{
  width:min(
    1280px,
    calc(
      100% -
      clamp(34px,7vw,110px)
    )
  );

  margin-inline:auto;

  padding:
    clamp(78px,9vw,122px)
    0
    clamp(76px,8vw,108px);
}



/* =========================================================
   HEADER
========================================================= */

.kbudget01__header{
  display:grid;

  grid-template-columns:
    minmax(0,.9fr)
    minmax(340px,.72fr);

  align-items:end;

  gap:
    clamp(36px,7vw,100px);

  margin-bottom:
    clamp(34px,5vw,54px);
}


.kbudget01__header > *{
  min-width:0;
}


.kbudget01__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:11px;

  font-weight:900;

  letter-spacing:.1em;
}


.kbudget01__kicker::before{
  content:"";

  width:34px;
  height:3px;

  flex:none;

  border-radius:999px;

  background:var(--orange);
}


.kbudget01 .kbudget01__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(42px,5vw,68px) !important;

  font-weight:800 !important;

  line-height:1.28 !important;

  letter-spacing:-.06em !important;

  word-break:keep-all;
}


.kbudget01__intro > p{
  color:var(--text);

  font-size:14px;

  line-height:2;
}


.kbudget01__rate{
  display:flex;

  flex-wrap:wrap;

  gap:7px;

  margin-top:18px;
}


.kbudget01__rate span{
  display:inline-flex;

  align-items:center;

  min-height:28px;

  padding:
    5px
    10px;

  border:
    1px solid
    #DDD9CF;

  border-radius:999px;

  background:#FFF;

  color:#738281;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.04em;
}



/* =========================================================
   BOARD
========================================================= */

.kbudget01__board{
  display:grid;

  grid-template-columns:
    minmax(380px,.82fr)
    minmax(0,1.18fr);

  min-height:550px;

  border-radius:28px;

  overflow:hidden;

  background:var(--navy);
}



/* =========================================================
   ESTIMATE
========================================================= */

.kbudget01__estimate{
  position:relative;

  z-index:2;

  padding:
    clamp(32px,4vw,50px);

  background:
    radial-gradient(
      circle at 0 0,
      rgba(255,255,255,.10),
      transparent 34%
    ),
    var(--navy);
}


.kbudget01__eyebrow{
  color:#BFD0CC;

  font:
    800 9px/1.4
    Arial,
    sans-serif;

  letter-spacing:.13em;
}


.kbudget01 .kbudget01__estimate h3{
  margin-top:12px !important;

  color:#FFF !important;

  font-size:
    clamp(26px,3vw,40px) !important;

  font-weight:800 !important;

  line-height:1.4 !important;

  letter-spacing:-.045em !important;
}



/* =========================================================
   DAY TABS
========================================================= */

.kbudget01__days{
  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:6px;

  margin-top:26px;

  padding:5px;

  border-radius:999px;

  background:
    rgba(255,255,255,.09);
}


.kbudget01__day{
  min-height:40px;

  padding:
    6px
    12px;

  border-radius:999px;

  background:transparent;

  color:
    rgba(255,255,255,.64);

  font-size:12px;

  font-weight:800;

  cursor:pointer;

  transition:
    background .18s ease,
    color .18s ease;
}


.kbudget01__day.is-active{
  background:#FFF;

  color:var(--navy);
}



/* =========================================================
   TOTAL
========================================================= */

.kbudget01__total{
  padding:
    28px
    0
    22px;

  border-bottom:
    1px solid
    var(--line);
}


.kbudget01__total small{
  display:block;

  color:
    rgba(255,255,255,.62);

  font-size:10px;

  font-weight:700;
}


.kbudget01__total > p{
  display:flex;

  align-items:baseline;

  flex-wrap:wrap;

  gap:7px;

  margin-top:4px !important;

  color:#FFF;
}


.kbudget01__total > p span{
  font-size:
    clamp(40px,4.7vw,66px);

  font-weight:900;

  line-height:1.15;

  letter-spacing:-.055em;
}


.kbudget01__total > p em{
  font-size:18px;

  font-style:normal;

  font-weight:800;
}


.kbudget01__total > strong{
  display:block;

  margin-top:7px;

  color:#F1C47A;

  font-size:11px;

  font-weight:800;
}



/* =========================================================
   BREAKDOWN
========================================================= */

.kbudget01__breakdown{
  display:grid;

  gap:14px;

  margin-top:22px;
}


.kbudget01__bar-head{
  display:flex;

  align-items:center;

  justify-content:
    space-between;

  gap:15px;

  margin-bottom:5px;
}


.kbudget01__bar-head span{
  color:
    rgba(255,255,255,.55);

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kbudget01__bar-head strong{
  color:#FFF;

  font-size:10px;

  font-weight:800;
}


.kbudget01__bar-track{
  position:relative;

  height:4px;

  overflow:hidden;

  border-radius:999px;

  background:
    rgba(255,255,255,.12);
}


.kbudget01__bar{
  position:absolute;

  inset:
    0 auto 0 0;

  width:var(--value);

  border-radius:999px;

  background:
    linear-gradient(
      90deg,
      var(--orange),
      #E3A066
    );

  transition:
    width .55s
    cubic-bezier(.22,.72,.25,1);
}


.kbudget01__estimate-note{
  margin-top:21px !important;

  color:
    rgba(255,255,255,.64);

  font-size:9px;

  line-height:1.75;
}



/* =========================================================
   PHOTO COLLAGE
========================================================= */

.kbudget01__visual{
  display:grid;

  grid-template-columns:
    minmax(0,1.45fr)
    minmax(170px,.55fr);

  gap:5px;

  min-width:0;

  padding:5px;
}


.kbudget01__photo-side{
  display:grid;

  grid-template-rows:
    1fr 1fr;

  gap:5px;

  min-height:0;
}


.kbudget01__photo{
  position:relative;

  min-width:0;
  min-height:0;

  overflow:hidden;

  background:#486467;
}


.kbudget01__photo--main{
  border-radius:
    0
    0
    0
    0;
}


.kbudget01__photo img{
  position:absolute;

  inset:0;

  display:block;

  width:100%;
  height:100%;

  object-fit:cover;

  transition:
    transform .6s ease;
}


.kbudget01__photo::after{
  content:"";

  position:absolute;

  z-index:1;

  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(5,35,45,.02) 30%,
      rgba(5,35,45,.76) 100%
    );

  pointer-events:none;
}


.kbudget01__photo:hover img{
  transform:
    scale(1.025);
}


.kbudget01__photo figcaption{
  position:absolute;

  z-index:2;

  left:
    clamp(17px,3vw,34px);

  right:
    clamp(17px,3vw,34px);

  bottom:
    clamp(17px,3vw,30px);

  color:#FFF;
}


.kbudget01__photo figcaption small{
  display:block;

  color:#E8C98B;

  font:
    800 8px/1.4
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.kbudget01__photo figcaption strong{
  display:block;

  margin-top:4px;

  font:
    800 18px/1.2
    Arial,
    sans-serif;

  letter-spacing:.04em;
}


.kbudget01__photo figcaption span{
  display:block;

  margin-top:7px;

  color:
    rgba(255,255,255,.78);

  font-size:9px;

  line-height:1.7;
}


.kbudget01__photo-side
.kbudget01__photo figcaption{
  left:15px;
  right:15px;
  bottom:15px;
}


.kbudget01__photo-side
.kbudget01__photo figcaption strong{
  font-size:13px;
}



/* =========================================================
   COST SECTION
========================================================= */

.kbudget01__cost-section{
  margin-top:
    clamp(55px,7vw,90px);
}


.kbudget01__subhead p,
.kbudget01__move-head > div > p{
  color:var(--orange);

  font:
    800 9px/1.4
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kbudget01
.kbudget01__subhead h3,
.kbudget01
.kbudget01__move-head h3{
  margin-top:7px !important;

  color:var(--navy) !important;

  font-size:
    clamp(26px,3.3vw,42px) !important;

  font-weight:800 !important;

  line-height:1.4 !important;

  letter-spacing:-.045em !important;
}


.kbudget01__cost-grid{
  display:grid;

  grid-template-columns:
    repeat(4,minmax(0,1fr));

  gap:10px;

  margin-top:25px;
}


.kbudget01__cost-card{
  position:relative;

  min-width:0;

  padding:
    24px
    20px
    22px;

  border:
    1px solid
    #E1DDD3;

  border-radius:19px;

  background:#FFF;
}


.kbudget01__cost-card--accent{
  border-color:
    rgba(189,102,55,.32);

  background:#FFF4E9;
}


.kbudget01__icon{
  display:grid;

  place-items:center;

  width:44px;
  height:44px;

  border-radius:13px;

  background:#EEF3EE;

  color:var(--green);
}


.kbudget01__cost-card--accent
.kbudget01__icon{
  background:#FFF;

  color:var(--orange);
}


.kbudget01__icon svg{
  width:27px;
  height:27px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.7;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.kbudget01__cost-label{
  margin-top:20px;

  color:#8A9897;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kbudget01
.kbudget01__cost-card h4{
  margin-top:7px !important;

  color:var(--navy) !important;

  font-size:15px !important;

  font-weight:800 !important;

  line-height:1.5 !important;
}


.kbudget01__price{
  display:flex;

  align-items:baseline;

  flex-wrap:wrap;

  gap:4px;

  margin-top:13px !important;

  color:var(--orange);
}


.kbudget01__price strong{
  font-size:
    clamp(24px,2.6vw,34px);

  font-weight:900;

  line-height:1.2;

  letter-spacing:-.04em;
}


.kbudget01__price span{
  font-size:10px;

  font-weight:800;
}


.kbudget01__description{
  margin-top:14px !important;

  color:var(--text);

  font-size:9px;

  line-height:1.75;
}


.kbudget01__mini-note{
  display:inline-flex;

  margin-top:13px;

  padding:
    5px
    8px;

  border-radius:999px;

  background:var(--orange);

  color:#FFF;

  font-size:7px;

  font-weight:800;
}



/* =========================================================
   MOVE
========================================================= */

.kbudget01__move{
  margin-top:
    clamp(56px,7vw,86px);

  padding:
    clamp(28px,4vw,44px);

  border-radius:24px;

  background:#EEF3EE;
}


.kbudget01__move-head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(300px,.72fr);

  align-items:end;

  gap:
    clamp(25px,5vw,70px);
}


.kbudget01__move-head > p{
  color:var(--text);

  font-size:11px;

  line-height:1.9;
}



/* =========================================================
   MOVE ROUTE
========================================================= */

.kbudget01__move-route{
  display:grid;

  grid-template-columns:
    auto
    minmax(70px,1fr)
    auto
    minmax(70px,1fr)
    auto
    minmax(70px,1fr)
    auto;

  align-items:center;

  gap:10px;

  margin-top:38px;
}


.kbudget01__move-stop{
  text-align:center;
}


.kbudget01__move-number{
  display:grid;

  place-items:center;

  width:30px;
  height:30px;

  margin:
    0 auto 9px;

  border-radius:50%;

  background:var(--navy);

  color:#FFF;

  font:
    800 8px/1
    Arial,
    sans-serif;
}


.kbudget01__move-stop small{
  display:block;

  color:#8A9996;

  font:
    800 7px/1
    Arial,
    sans-serif;

  letter-spacing:.09em;
}


.kbudget01__move-stop strong{
  display:block;

  margin-top:5px;

  color:var(--navy);

  font-size:13px;

  font-weight:800;

  white-space:nowrap;
}


.kbudget01__move-stop p{
  margin-top:2px !important;

  color:#72847E;

  font-size:8px;
}


.kbudget01__move-line{
  position:relative;

  min-width:0;

  text-align:center;
}


.kbudget01__move-line > span{
  position:absolute;

  left:0;
  right:0;
  top:16px;

  height:1px;

  background:#BDC9C4;
}


.kbudget01__move-icon{
  position:relative;

  z-index:2;

  display:grid;

  place-items:center;

  width:34px;
  height:34px;

  margin-inline:auto;

  border-radius:50%;

  background:#FFF;

  color:var(--orange);
}


.kbudget01__move-icon svg{
  width:19px;
  height:19px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.6;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.kbudget01__move-line small{
  display:block;

  margin-top:7px;

  color:#6D7F79;

  font-size:7px;

  font-weight:800;

  white-space:nowrap;
}



/* =========================================================
   ETA
========================================================= */

.kbudget01__eta{
  display:grid;

  grid-template-columns:
    auto
    minmax(260px,.75fr)
    minmax(0,1fr);

  align-items:center;

  gap:
    clamp(18px,4vw,48px);

  margin-top:24px;

  padding:
    24px
    28px;

  border-radius:18px;

  background:#FFF0E5;
}


.kbudget01__eta-icon{
  display:grid;

  place-items:center;

  width:52px;
  height:52px;

  border-radius:15px;

  background:#FFF;

  color:var(--orange);
}


.kbudget01__eta-icon svg{
  width:29px;
  height:29px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.6;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.kbudget01__eta > div:nth-child(2) > p{
  color:var(--orange);

  font:
    800 8px/1.4
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.kbudget01
.kbudget01__eta h3{
  margin-top:5px !important;

  color:var(--navy) !important;

  font-size:18px !important;

  font-weight:800 !important;

  line-height:1.55 !important;
}


.kbudget01__eta h3 strong{
  color:var(--orange);
}


.kbudget01__eta > p{
  color:var(--text);

  font-size:10px;

  line-height:1.8;
}



/* =========================================================
   NOTICE
========================================================= */

.kbudget01__notice{
  margin-top:25px;

  padding-top:20px;

  border-top:
    1px solid #DDD9CF;
}


.kbudget01__notice strong{
  color:#71827E;

  font-size:9px;
}


.kbudget01__notice p{
  margin-top:5px !important;

  max-width:1080px;

  color:#8A9693;

  font-size:8px;

  line-height:1.8;
}


.kbudget01__notice small{
  display:block;

  margin-top:8px;

  color:#A1AAA7;

  font-size:7px;

  line-height:1.6;
}



/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .kbudget01__header{
    grid-template-columns:1fr;

    gap:18px;
  }


  .kbudget01__board{
    grid-template-columns:
      minmax(340px,.9fr)
      minmax(0,1.1fr);
  }


  .kbudget01__cost-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .kbudget01__move-head{
    grid-template-columns:1fr;

    gap:15px;
  }

}



/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .kbudget01__board{
    grid-template-columns:1fr;
  }


  .kbudget01__visual{
    min-height:440px;
  }


  .kbudget01__move-route{
    grid-template-columns:1fr;

    gap:0;
  }


  .kbudget01__move-stop{
    display:grid;

    grid-template-columns:
      auto 1fr;

    grid-template-rows:
      auto auto;

    column-gap:12px;

    align-items:center;

    width:100%;

    text-align:left;
  }


  .kbudget01__move-number{
    grid-row:1/3;

    margin:0;
  }


  .kbudget01__move-stop small{
    align-self:end;
  }


  .kbudget01__move-stop strong{
    margin-top:3px;
  }


  .kbudget01__move-stop p{
    grid-column:2;

    margin-top:2px !important;
  }


  .kbudget01__move-line{
    display:flex;

    align-items:center;

    gap:10px;

    height:58px;

    padding-left:14px;

    text-align:left;
  }


  .kbudget01__move-line > span{
    left:14px;

    right:auto;

    top:0;
    bottom:0;

    width:1px;
    height:auto;
  }


  .kbudget01__move-icon{
    margin:0;
  }


  .kbudget01__move-line small{
    margin:0;
  }


  .kbudget01__eta{
    grid-template-columns:
      auto 1fr;
  }


  .kbudget01__eta > p{
    grid-column:1/-1;
  }

}



/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .kbudget01__inner{
    width:
      calc(100% - 32px);

    padding:
      66px
      0
      72px;
  }


  .kbudget01 .kbudget01__title{
    font-size:
      clamp(
        34px,
        10.5vw,
        44px
      ) !important;

    line-height:
      1.34 !important;

    letter-spacing:
      -.05em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .kbudget01__title br{
    display:none;
  }


  .kbudget01__intro > p{
    font-size:13px;
  }


  /* BOARD */

  .kbudget01__board{
    border-radius:20px;
  }


  .kbudget01__estimate{
    padding:
      28px
      20px
      30px;
  }


  .kbudget01
  .kbudget01__estimate h3{
    font-size:27px !important;
  }


  .kbudget01__total > p span{
    font-size:43px;
  }


  /* PHOTOS */

  .kbudget01__visual{
    grid-template-columns:
      1.25fr .75fr;

    min-height:390px;

    padding:4px;
  }


  .kbudget01__photo figcaption span{
    display:none;
  }


  /* COST */

  .kbudget01__cost-section{
    margin-top:58px;
  }


  .kbudget01
  .kbudget01__subhead h3,
  .kbudget01
  .kbudget01__move-head h3{
    font-size:28px !important;
  }


  .kbudget01__cost-grid{
    grid-template-columns:1fr;

    gap:9px;
  }


  .kbudget01__cost-card{
    display:grid;

    grid-template-columns:
      auto 1fr;

    column-gap:16px;

    padding:
      20px
      18px;
  }


  .kbudget01__icon{
    grid-row:1/5;
  }


  .kbudget01__cost-label{
    margin-top:0;
  }


  .kbudget01
  .kbudget01__cost-card h4{
    margin-top:3px !important;
  }


  .kbudget01__price{
    margin-top:7px !important;
  }


  .kbudget01__description{
    grid-column:2;

    margin-top:8px !important;
  }


  .kbudget01__mini-note{
    grid-column:2;

    width:max-content;
  }


  /* MOVE */

  .kbudget01__move{
    margin-top:54px;

    padding:
      27px
      20px;

    border-radius:20px;
  }


  /* ETA */

  .kbudget01__eta{
    gap:14px;

    padding:
      20px
      18px;
  }


  .kbudget01
  .kbudget01__eta h3{
    font-size:16px !important;
  }

}



/* =========================================================
   VERY SMALL
========================================================= */

@media(max-width:380px){

  .kbudget01__inner{
    width:
      calc(100% - 28px);
  }


  .kbudget01__visual{
    min-height:350px;
  }


  .kbudget01__rate span{
    font-size:7px;
  }

}



/* =========================================================
   REDUCED MOTION
========================================================= */

@media(
  prefers-reduced-motion:reduce
){

  .kbudget01 *,
  .kbudget01 *::before,
  .kbudget01 *::after{
    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-fdaa3f0 *//* =========================================================
   KBASICS01
   JAPAN PR DESK / KENYA TRAVEL BASICS
   READABILITY UPDATE
========================================================= */

.kbasics01{
  --navy:#093D52;
  --navy-deep:#052D3C;
  --navy-black:#032430;

  --gold:#A67C37;
  --orange:#BD6637;
  --orange-soft:#E8B38E;

  --green:#5A7058;
  --sage:#B8CBC1;

  --paper:#FFF8EC;
  --paper-2:#F4ECDE;

  --white:#FFFFFF;

  width:100%;
  max-width:100%;

  overflow:hidden;

  background:
    radial-gradient(
      circle at 8% 8%,
      rgba(255,255,255,.07),
      transparent 27%
    ),
    radial-gradient(
      circle at 93% 85%,
      rgba(166,124,55,.14),
      transparent 30%
    ),
    var(--navy-deep);

  color:#FFF;

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.kbasics01,
.kbasics01 *,
.kbasics01 *::before,
.kbasics01 *::after{
  box-sizing:border-box;
}


.kbasics01 :is(
  h2,
  h3,
  p
){
  margin:0;
  padding:0;
}


.kbasics01 button{
  border:0;
  font:inherit;
}


.kbasics01 svg{
  display:block;
}


/* =========================================================
   INNER
========================================================= */

.kbasics01__inner{
  width:min(
    1280px,
    calc(
      100% -
      clamp(34px,7vw,110px)
    )
  );

  margin-inline:auto;

  padding:
    clamp(78px,9vw,122px)
    0
    clamp(74px,8vw,105px);
}


/* =========================================================
   HEADER
========================================================= */

.kbasics01__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.72fr);

  align-items:end;

  gap:
    clamp(34px,7vw,100px);

  margin-bottom:
    clamp(36px,5vw,58px);
}


.kbasics01__header > *{
  min-width:0;
}


.kbasics01__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:#E7B273;

  font-size:12px;
  font-weight:900;

  letter-spacing:.13em;
}


.kbasics01__kicker::before{
  content:"";

  width:36px;
  height:3px;

  flex:none;

  border-radius:999px;

  background:var(--orange);
}


.kbasics01 .kbasics01__title{
  margin-top:15px !important;

  color:#FFF !important;

  font-size:
    clamp(43px,5.4vw,72px) !important;

  font-weight:800 !important;

  line-height:1.25 !important;

  letter-spacing:-.065em !important;

  word-break:keep-all;
}


.kbasics01__intro > p{
  color:
    rgba(255,255,255,.72);

  font-size:15px;

  line-height:2;
}


.kbasics01__updated{
  display:inline-flex;

  align-items:center;

  gap:7px;

  margin-top:18px;

  padding:
    8px
    12px;

  border:
    1px solid
    rgba(255,255,255,.14);

  border-radius:999px;

  color:
    rgba(255,255,255,.64);

  font:
    700 9px/1
    Arial,
    sans-serif;

  letter-spacing:.05em;
}


.kbasics01__updated strong{
  color:#FFF;

  font-weight:800;
}


.kbasics01__updated-dot{
  width:7px;
  height:7px;

  border-radius:50%;

  background:#A7C7B9;

  box-shadow:
    0 0 0 4px
    rgba(167,199,185,.08);
}


/* =========================================================
   GRID
========================================================= */

.kbasics01__grid{
  display:grid;

  grid-template-columns:
    repeat(12,minmax(0,1fr));

  grid-template-rows:
    minmax(300px,auto)
    minmax(320px,auto);

  gap:10px;
}


.kbasics01__card{
  position:relative;

  min-width:0;

  overflow:hidden;

  border-radius:22px;

  opacity:0;

  transform:
    translateY(14px);

  transition:
    transform .45s
    cubic-bezier(.22,.72,.24,1),
    opacity .45s ease;
}


.kbasics01__card.is-visible{
  opacity:1;

  transform:
    translateY(0);
}


.kbasics01__card-number{
  position:absolute;

  top:18px;
  right:20px;

  z-index:4;

  font:
    italic 700 22px/1
    Georgia,
    serif;

  color:
    rgba(255,255,255,.55);
}


.kbasics01__card-label{
  position:relative;

  z-index:4;

  display:inline-flex;

  align-items:center;

  min-height:27px;

  padding:
    6px
    10px;

  border-radius:999px;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.13em;
}


.kbasics01__micro{
  font:
    800 9px/1.45
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kbasics01__body{
  font-size:13px;

  line-height:1.85;
}


.kbasics01__fine{
  font-size:9px;

  line-height:1.75;
}


/* =========================================================
   ENTRY
========================================================= */

.kbasics01__card--entry{
  grid-column:1 / 6;

  grid-row:1 / 3;

  min-height:630px;

  padding:
    30px
    34px
    32px;

  background:
    linear-gradient(
      145deg,
      #FFF9EE,
      #F1E8D8
    );

  color:var(--navy);
}


.kbasics01__card--entry
.kbasics01__card-number{
  color:
    rgba(9,61,82,.25);
}


.kbasics01__card--entry
.kbasics01__card-label{
  background:var(--navy);

  color:#FFF;
}


.kbasics01__illustration--passport{
  width:
    min(70%,310px);

  margin:
    24px
    auto
    6px;

  color:
    rgba(9,61,82,.5);
}


.kbasics01__draw{
  fill:none;

  stroke:currentColor;

  stroke-width:2;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.kbasics01__draw-fill{
  fill:
    rgba(189,102,55,.08);
}


.kbasics01__entry-content{
  position:relative;

  z-index:3;
}


.kbasics01__entry-content
.kbasics01__micro{
  color:#9A8669;
}


.kbasics01
.kbasics01__card--entry h3{
  margin-top:6px !important;

  color:var(--navy) !important;

  font-size:
    clamp(30px,3vw,42px) !important;

  font-weight:800 !important;

  line-height:1.35 !important;

  letter-spacing:-.045em !important;
}


.kbasics01__entry-price{
  display:flex;

  align-items:baseline;

  flex-wrap:wrap;

  gap:8px;

  margin-top:14px !important;

  color:var(--orange);
}


.kbasics01__entry-price strong{
  font:
    900 28px/1
    Arial,
    sans-serif;
}


.kbasics01__entry-price span{
  color:#9D927E;

  font-size:14px;
}


.kbasics01__entry-price em{
  font-style:normal;

  font-size:18px;

  font-weight:900;
}


.kbasics01__card--entry
.kbasics01__body{
  max-width:410px;

  margin-top:17px !important;

  color:#5F7273;

  font-size:13px;
}


.kbasics01__facts{
  display:flex;

  flex-wrap:wrap;

  gap:7px;

  margin-top:20px;
}


.kbasics01__facts span{
  padding:
    7px
    10px;

  border:
    1px solid
    rgba(9,61,82,.12);

  border-radius:999px;

  background:
    rgba(255,255,255,.5);

  color:#657773;

  font-size:9px;

  font-weight:800;
}


.kbasics01__card--entry
.kbasics01__fine{
  margin-top:17px !important;

  color:#818E88;

  font-size:9px;
}


.kbasics01__stamp{
  position:absolute;

  right:-14px;
  bottom:25px;

  display:grid;

  place-items:center;

  width:105px;
  height:105px;

  border:
    2px solid
    rgba(189,102,55,.17);

  border-radius:50%;

  color:
    rgba(189,102,55,.2);

  transform:
    rotate(-13deg);

  pointer-events:none;
}


.kbasics01__stamp::before{
  content:"";

  position:absolute;

  inset:7px;

  border:
    1px dashed
    currentColor;

  border-radius:50%;
}


.kbasics01__stamp span,
.kbasics01__stamp strong,
.kbasics01__stamp small{
  position:absolute;

  font-family:
    Arial,
    sans-serif;
}


.kbasics01__stamp span{
  top:25px;

  font-size:9px;

  letter-spacing:.18em;
}


.kbasics01__stamp strong{
  font-size:24px;
}


.kbasics01__stamp small{
  bottom:24px;

  font-size:7px;

  letter-spacing:.15em;
}


/* =========================================================
   MONEY
========================================================= */

.kbasics01__card--money{
  grid-column:6 / 9;

  grid-row:1;

  padding:
    26px
    25px;

  background:var(--orange);

  color:#FFF;
}


.kbasics01__card--money
.kbasics01__card-label{
  background:
    rgba(255,255,255,.14);

  color:#FFF;
}


.kbasics01__money-icon{
  position:absolute;

  right:-11px;
  bottom:-13px;

  font:
    italic 900 78px/.9
    Georgia,
    serif;

  color:
    rgba(255,255,255,.08);

  transform:
    rotate(-5deg);
}


.kbasics01__card--money
.kbasics01__micro{
  margin-top:24px !important;

  color:
    rgba(255,255,255,.67);
}


.kbasics01
.kbasics01__card--money h3{
  margin-top:5px !important;

  color:#FFF !important;

  font-size:21px !important;

  font-weight:800 !important;

  line-height:1.45 !important;

  letter-spacing:-.035em !important;
}


.kbasics01__converter{
  position:relative;

  z-index:2;

  display:flex;

  align-items:center;

  justify-content:
    space-between;

  gap:10px;

  margin-top:19px;

  padding:
    16px
    15px;

  border:
    1px solid
    rgba(255,255,255,.17);

  border-radius:14px;

  background:
    rgba(71,24,11,.10);
}


.kbasics01__converter-kes,
.kbasics01__converter-jpy{
  display:flex;

  flex-direction:column;
}


.kbasics01__converter span{
  color:
    rgba(255,255,255,.68);

  font:
    800 9px/1
    Arial,
    sans-serif;
}


.kbasics01__converter strong{
  margin-top:6px;

  color:#FFF;

  font:
    900 22px/1
    Arial,
    sans-serif;
}


.kbasics01__converter-arrow{
  color:
    rgba(255,255,255,.55);

  font-size:18px;
}


.kbasics01__money-buttons{
  position:relative;

  z-index:3;

  display:flex;

  gap:6px;

  margin-top:12px;
}


.kbasics01__money-buttons button{
  padding:
    7px
    10px;

  border-radius:999px;

  background:
    rgba(255,255,255,.10);

  color:
    rgba(255,255,255,.76);

  font:
    800 8px/1
    Arial,
    sans-serif;

  cursor:pointer;
}


.kbasics01__money-buttons button.is-active{
  background:#FFF;

  color:var(--orange);
}


.kbasics01__card--money
.kbasics01__fine{
  position:relative;

  z-index:3;

  margin-top:13px !important;

  color:
    rgba(255,255,255,.68);

  font-size:9px;
}


/* =========================================================
   CONNECT
========================================================= */

.kbasics01__card--connect{
  grid-column:9 / 13;

  grid-row:1;

  padding:
    26px
    26px;

  background:#69877F;

  color:#FFF;
}


.kbasics01__card--connect
.kbasics01__card-label{
  background:
    rgba(3,36,48,.20);

  color:#FFF;
}


.kbasics01__connect-top{
  display:flex;

  align-items:flex-start;

  justify-content:
    space-between;

  gap:12px;

  margin-top:22px;
}


.kbasics01__card--connect
.kbasics01__micro{
  color:
    rgba(255,255,255,.64);
}


.kbasics01
.kbasics01__card--connect h3{
  margin-top:5px !important;

  max-width:240px;

  color:#FFF !important;

  font-size:22px !important;

  font-weight:800 !important;

  line-height:1.45 !important;

  letter-spacing:-.04em !important;
}


.kbasics01__connect-icon{
  width:82px;

  flex:none;

  color:
    rgba(255,255,255,.52);
}


.kbasics01__connect-choice{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:7px;

  margin-top:17px;
}


.kbasics01__connect-choice > div{
  padding:
    12px
    13px;

  border:
    1px solid
    rgba(255,255,255,.15);

  border-radius:11px;

  background:
    rgba(6,47,53,.12);
}


.kbasics01__connect-choice small{
  display:block;

  color:
    rgba(255,255,255,.65);

  font:
    800 8px/1
    Arial,
    sans-serif;
}


.kbasics01__connect-choice strong{
  display:block;

  margin-top:5px;

  font-size:12px;
}


.kbasics01__connect-choice span{
  display:block;

  margin-top:4px;

  color:
    rgba(255,255,255,.69);

  font-size:9px;

  line-height:1.55;
}


.kbasics01__data-example{
  display:flex;

  align-items:baseline;

  flex-wrap:wrap;

  gap:7px;

  margin-top:14px;
}


.kbasics01__data-example span{
  color:
    rgba(255,255,255,.64);

  font-size:9px;
}


.kbasics01__data-example strong{
  font-size:13px;
}


.kbasics01__data-example em{
  font-style:normal;

  color:#F4D79D;

  font-size:10px;

  font-weight:800;
}


.kbasics01__card--connect
.kbasics01__fine{
  margin-top:10px !important;

  color:
    rgba(255,255,255,.65);

  font-size:9px;
}


/* =========================================================
   MANNERS
========================================================= */

.kbasics01__card--manners{
  grid-column:6 / 9;

  grid-row:2;

  padding:
    26px
    25px;

  background:#F0DFCA;

  color:var(--navy);
}


.kbasics01__card--manners
.kbasics01__card-number{
  color:
    rgba(9,61,82,.22);
}


.kbasics01__card--manners
.kbasics01__card-label{
  background:
    rgba(189,102,55,.13);

  color:var(--orange);
}


.kbasics01__manners-symbol{
  position:absolute;

  right:15px;
  top:50px;

  font:
    italic 700 100px/.8
    Georgia,
    serif;

  color:
    rgba(189,102,55,.10);
}


.kbasics01__card--manners
.kbasics01__micro{
  margin-top:21px !important;

  color:#9D876C;
}


.kbasics01
.kbasics01__card--manners h3{
  margin-top:5px !important;

  color:var(--navy) !important;

  font-size:27px !important;

  font-weight:800 !important;

  line-height:1.35 !important;

  letter-spacing:-.045em !important;
}


.kbasics01__manners-rule{
  display:grid;

  grid-template-columns:
    55px 1fr;

  gap:11px;

  margin-top:17px;

  padding-top:15px;

  border-top:
    1px solid
    rgba(9,61,82,.10);
}


.kbasics01__manners-rule > span{
  color:var(--orange);

  font:
    900 8px/1.4
    Arial,
    sans-serif;
}


.kbasics01__manners-rule p{
  color:#617171;

  font-size:10px;

  line-height:1.75;
}


.kbasics01__editorial{
  margin-top:14px !important;

  color:#938D82;

  font-size:8px;

  line-height:1.65;
}


/* =========================================================
   SAFETY
========================================================= */

.kbasics01__card--safety{
  grid-column:9 / 13;

  grid-row:2;

  padding:
    26px
    26px;

  border:
    1px solid
    rgba(214,170,96,.28);

  background:
    radial-gradient(
      circle at 100% 0,
      rgba(166,124,55,.18),
      transparent 38%
    ),
    var(--navy-black);

  color:#FFF;
}


.kbasics01__card--safety
.kbasics01__card-label{
  background:#B38A46;

  color:#FFF;
}


.kbasics01__safety-head{
  display:flex;

  align-items:flex-start;

  justify-content:
    space-between;

  gap:15px;

  margin-top:22px;
}


.kbasics01__card--safety
.kbasics01__micro{
  color:#C9AB74;
}


.kbasics01
.kbasics01__card--safety h3{
  margin-top:6px !important;

  max-width:280px;

  color:#FFF !important;

  font-size:22px !important;

  font-weight:800 !important;

  line-height:1.45 !important;

  letter-spacing:-.04em !important;
}


.kbasics01__shield{
  width:64px;

  flex:none;

  color:
    rgba(206,169,99,.58);
}


.kbasics01__shield svg{
  fill:none;

  stroke:currentColor;

  stroke-width:4;

  stroke-linecap:round;

  stroke-linejoin:round;
}


/* =========================================================
   RISK
========================================================= */

.kbasics01__risk{
  margin-top:19px;
}


.kbasics01__risk-title{
  display:flex;

  align-items:baseline;

  justify-content:
    space-between;

  gap:10px;
}


.kbasics01__risk-title span{
  color:
    rgba(255,255,255,.62);

  font-size:9px;
}


.kbasics01__risk-title strong{
  color:#F1D49A;

  font-size:10px;
}


.kbasics01__risk-scale{
  display:grid;

  grid-template-columns:
    repeat(4,1fr);

  gap:4px;

  margin-top:9px;
}


.kbasics01__risk-scale span{
  display:flex;

  flex-direction:column;

  justify-content:center;

  min-height:50px;

  padding:7px;

  border-radius:7px;

  background:
    rgba(255,255,255,.07);

  color:
    rgba(255,255,255,.66);

  font-size:7px;

  line-height:1.35;
}


.kbasics01__risk-scale i{
  margin-bottom:4px;

  color:#FFF;

  font:
    normal 900 13px/1
    Arial,
    sans-serif;
}


.kbasics01__risk-scale
span:nth-child(2){
  background:
    rgba(166,124,55,.16);
}


.kbasics01__risk-scale
span:nth-child(3){
  background:
    rgba(189,102,55,.17);
}


.kbasics01__risk-scale
span:nth-child(4){
  background:
    rgba(189,70,55,.22);
}


/* =========================================================
   SAFETY POINTS
========================================================= */

.kbasics01__safety-points{
  display:grid;

  gap:9px;

  margin-top:17px;
}


.kbasics01__safety-points p{
  display:grid;

  grid-template-columns:
    50px 1fr;

  gap:9px;

  color:
    rgba(255,255,255,.72);

  font-size:9px;

  line-height:1.65;
}


.kbasics01__safety-points strong{
  color:#D9B878;

  font:
    900 8px/1.5
    Arial,
    sans-serif;
}


.kbasics01__safety-source{
  display:flex;

  align-items:center;

  gap:9px;

  margin-top:17px;

  padding-top:14px;

  border-top:
    1px solid
    rgba(255,255,255,.10);
}


.kbasics01__safety-source p{
  color:
    rgba(255,255,255,.63);

  font-size:8px;
}


.kbasics01__safety-source strong{
  color:#FFF;
}


.kbasics01__pulse{
  position:relative;

  width:8px;
  height:8px;

  flex:none;

  border-radius:50%;

  background:#D8B46D;
}


.kbasics01__pulse::after{
  content:"";

  position:absolute;

  inset:-4px;

  border:
    1px solid
    rgba(216,180,109,.4);

  border-radius:50%;

  animation:
    kbasicsPulse
    2s ease-out
    infinite;
}


@keyframes kbasicsPulse{

  0%{
    transform:scale(.7);
    opacity:1;
  }

  100%{
    transform:scale(1.5);
    opacity:0;
  }

}


/* =========================================================
   CHECKLIST
========================================================= */

.kbasics01__checklist{
  display:flex;

  align-items:center;

  justify-content:
    space-between;

  gap:25px;

  margin-top:13px;

  padding:
    20px
    23px;

  border:
    1px dashed
    rgba(255,255,255,.19);

  border-radius:15px;

  background:
    rgba(255,255,255,.035);
}


.kbasics01__checklist-title small{
  display:block;

  color:
    rgba(255,255,255,.51);

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kbasics01__checklist-title strong{
  display:block;

  margin-top:6px;

  color:#FFF;

  font:
    800 13px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kbasics01__checks{
  display:flex;

  flex-wrap:wrap;

  justify-content:flex-end;

  gap:7px;
}


.kbasics01__checks span{
  display:flex;

  align-items:center;

  gap:6px;

  padding:
    7px
    10px;

  border-radius:999px;

  background:
    rgba(255,255,255,.07);

  color:
    rgba(255,255,255,.74);

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.04em;
}


.kbasics01__checks i{
  display:grid;

  place-items:center;

  width:17px;
  height:17px;

  border:
    1px solid
    rgba(184,203,193,.45);

  border-radius:50%;

  color:#B8CBC1;

  font:
    normal 900 9px/1
    Arial,
    sans-serif;
}


/* =========================================================
   FOOTER
========================================================= */

.kbasics01__footer{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.8fr);

  align-items:start;

  gap:
    clamp(25px,5vw,70px);

  margin-top:29px;

  padding-top:24px;

  border-top:
    1px solid
    rgba(255,255,255,.10);
}


.kbasics01__footer strong{
  color:
    rgba(255,255,255,.64);

  font:
    900 8px/1.4
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kbasics01__footer p{
  max-width:700px;

  margin-top:7px !important;

  color:
    rgba(255,255,255,.52);

  font-size:9px;

  line-height:1.8;
}


.kbasics01__sources{
  display:flex;

  flex-wrap:wrap;

  justify-content:flex-end;

  gap:6px;
}


.kbasics01__sources span{
  padding:
    6px
    9px;

  border:
    1px solid
    rgba(255,255,255,.09);

  border-radius:999px;

  color:
    rgba(255,255,255,.53);

  font-size:8px;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .kbasics01__header{
    grid-template-columns:1fr;

    gap:18px;
  }


  .kbasics01__grid{
    grid-template-columns:
      repeat(6,minmax(0,1fr));

    grid-template-rows:auto;
  }


  .kbasics01__card--entry{
    grid-column:1 / 4;

    grid-row:1 / 3;
  }


  .kbasics01__card--money{
    grid-column:4 / 7;

    grid-row:1;
  }


  .kbasics01__card--connect{
    grid-column:4 / 7;

    grid-row:2;
  }


  .kbasics01__card--manners{
    grid-column:1 / 4;

    grid-row:3;
  }


  .kbasics01__card--safety{
    grid-column:4 / 7;

    grid-row:3;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .kbasics01__grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));

    gap:8px;
  }


  .kbasics01__card--entry{
    grid-column:1 / -1;

    grid-row:auto;

    min-height:0;
  }


  .kbasics01__illustration--passport{
    width:min(55%,240px);
  }


  .kbasics01__card--money{
    grid-column:1;

    grid-row:auto;
  }


  .kbasics01__card--connect{
    grid-column:2;

    grid-row:auto;
  }


  .kbasics01__card--manners{
    grid-column:1 / -1;

    grid-row:auto;
  }


  .kbasics01__card--safety{
    grid-column:1 / -1;

    grid-row:auto;
  }


  .kbasics01__checklist{
    align-items:flex-start;

    flex-direction:column;
  }


  .kbasics01__checks{
    justify-content:flex-start;
  }


  .kbasics01__footer{
    grid-template-columns:1fr;
  }


  .kbasics01__sources{
    justify-content:flex-start;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .kbasics01__inner{
    width:
      calc(100% - 32px);

    padding:
      66px
      0
      72px;
  }


  .kbasics01 .kbasics01__title{
    font-size:
      clamp(
        35px,
        10.6vw,
        45px
      ) !important;

    line-height:
      1.32 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .kbasics01__title br{
    display:none;
  }


  .kbasics01__intro > p{
    font-size:13px;
  }


  /* ENTRY */

  .kbasics01__card--entry{
    padding:
      24px
      21px
      27px;

    border-radius:19px;
  }


  .kbasics01__illustration--passport{
    width:min(58%,210px);

    margin-top:14px;
  }


  .kbasics01
  .kbasics01__card--entry h3{
    font-size:29px !important;
  }


  .kbasics01__card--entry
  .kbasics01__body{
    font-size:13px;
  }


  .kbasics01__facts span{
    font-size:9px;
  }


  /* MONEY + CONNECT */

  .kbasics01__card--money,
  .kbasics01__card--connect{
    min-height:340px;

    padding:
      20px
      16px;

    border-radius:17px;
  }


  .kbasics01__card-number{
    top:15px;
    right:15px;

    font-size:18px;
  }


  .kbasics01
  .kbasics01__card--money h3,
  .kbasics01
  .kbasics01__card--connect h3{
    font-size:17px !important;
  }


  .kbasics01__converter{
    flex-direction:column;

    align-items:flex-start;
  }


  .kbasics01__converter strong{
    font-size:20px;
  }


  .kbasics01__money-buttons{
    flex-wrap:wrap;
  }


  .kbasics01__connect-icon{
    display:none;
  }


  .kbasics01__connect-choice{
    grid-template-columns:1fr;
  }


  .kbasics01__connect-choice strong{
    font-size:11px;
  }


  .kbasics01__connect-choice span{
    font-size:9px;
  }


  /* MANNERS */

  .kbasics01__card--manners{
    padding:
      24px
      21px;

    border-radius:19px;
  }


  .kbasics01
  .kbasics01__card--manners h3{
    font-size:27px !important;
  }


  .kbasics01__manners-rule p{
    font-size:10px;
  }


  /* SAFETY */

  .kbasics01__card--safety{
    padding:
      24px
      21px;

    border-radius:19px;
  }


  .kbasics01
  .kbasics01__card--safety h3{
    font-size:21px !important;
  }


  .kbasics01__risk-scale span{
    min-height:52px;

    font-size:6px;
  }


  .kbasics01__safety-points p{
    font-size:9px;
  }


  .kbasics01__shield{
    width:48px;
  }


  /* CHECKLIST */

  .kbasics01__checklist{
    padding:
      18px
      17px;
  }


  .kbasics01__checks span{
    font-size:8px;
  }


  .kbasics01__footer p{
    font-size:9px;
  }

}


/* =========================================================
   SMALL SMARTPHONE
========================================================= */

@media(max-width:390px){

  .kbasics01__inner{
    width:
      calc(100% - 28px);
  }


  .kbasics01__card--money,
  .kbasics01__card--connect{
    min-height:355px;
  }


  .kbasics01__data-example{
    display:block;
  }


  .kbasics01__data-example > *{
    display:block;

    margin-top:3px;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(
  prefers-reduced-motion:reduce
){

  .kbasics01__card{
    opacity:1;

    transform:none;

    transition:none;
  }


  .kbasics01__pulse::after{
    animation:none;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-3760480 *//* =========================================================
   KSAFARI02
========================================================= */

.ksafari02{
  --navy:#093D52;
  --navy-deep:#052D3C;

  --orange:#BD6637;
  --gold:#A67C37;

  --green:#5A7058;

  --cream:#FFFAF1;
  --paper:#F4ECDD;

  --text:#617477;
  --border:#DFD8CB;

  /*
    スマホの固定ヘッダー高さに合わせる値。
    時間バーのsticky位置に使用。
  */
  --sticky-top:64px;

  width:100%;
  max-width:100%;

  overflow:visible;

  background:
    radial-gradient(
      circle at 94% 8%,
      rgba(189,102,55,.08),
      transparent 25%
    ),
    var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.ksafari02,
.ksafari02 *,
.ksafari02 *::before,
.ksafari02 *::after{
  box-sizing:border-box;
}


.ksafari02 :is(
  h2,
  h3,
  h4,
  p,
  figure,
  figcaption
){
  margin:0;
  padding:0;
}


.ksafari02 button{
  border:0;
  font:inherit;
}


.ksafari02 svg{
  display:block;
}


/* =========================================================
   INNER
========================================================= */

.ksafari02__inner{
  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(78px,9vw,120px)
    0
    clamp(76px,8vw,108px);
}


/* =========================================================
   HEADER
========================================================= */

.ksafari02__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.7fr);

  align-items:end;

  gap:clamp(36px,7vw,100px);

  margin-bottom:
    clamp(36px,5vw,58px);
}


.ksafari02__header > *{
  min-width:0;
}


.ksafari02__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:11px;
  font-weight:900;

  letter-spacing:.12em;
}


.ksafari02__kicker::before{
  content:"";

  width:36px;
  height:3px;

  flex:none;

  border-radius:999px;

  background:var(--orange);
}


.ksafari02 .ksafari02__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(43px,5.2vw,70px) !important;

  font-weight:800 !important;

  line-height:1.27 !important;

  letter-spacing:-.062em !important;

  word-break:keep-all;
}


.ksafari02__intro > p{
  color:var(--text);

  font-size:14px;

  line-height:2;
}


.ksafari02__intro > span{
  display:inline-flex;

  margin-top:17px;

  padding:
    7px
    11px;

  border:
    1px solid
    var(--border);

  border-radius:999px;

  background:#FFF;

  color:#788784;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


/* =========================================================
   EXPERIENCE
========================================================= */

.ksafari02__experience{
  display:grid;

  grid-template-columns:
    minmax(0,1.45fr)
    minmax(330px,.55fr);

  grid-template-rows:
    auto
    1fr
    auto;

  grid-template-areas:
    "visual flow"
    "visual times"
    "visual note";

  column-gap:10px;

  min-height:600px;
}


/* =========================================================
   FLOW HEAD
========================================================= */

.ksafari02__flow-head{
  grid-area:flow;

  padding:
    32px
    29px
    13px;

  border-radius:
    28px
    28px
    0
    0;

  background:var(--paper);
}


.ksafari02__flow-head > p{
  color:var(--orange);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.13em;
}


.ksafari02 .ksafari02__flow-head h3{
  margin-top:8px !important;

  color:var(--navy) !important;

  font-size:24px !important;

  font-weight:800 !important;

  line-height:1.45 !important;

  letter-spacing:-.045em !important;
}


.ksafari02__flow-head > span{
  display:block;

  margin-top:9px;

  color:#8B918B;

  font-size:9px;
}


/* =========================================================
   TIME LIST
========================================================= */

.ksafari02__time-list{
  grid-area:times;

  position:relative;

  display:grid;

  gap:5px;

  padding:
    8px
    20px
    13px;

  background:var(--paper);
}


.ksafari02__time-list::before{
  content:"";

  position:absolute;

  left:49px;

  top:10px;
  bottom:12px;

  width:1px;

  background:#D1C5B2;
}


.ksafari02__time{
  position:relative;

  z-index:2;

  display:grid;

  grid-template-columns:
    67px
    1fr;

  align-items:center;

  gap:11px;

  width:100%;

  min-height:66px;

  padding:
    8px
    10px
    8px
    0;

  border-radius:13px;

  background:transparent;

  color:var(--navy);

  text-align:left;

  cursor:pointer;

  transition:
    background .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}


.ksafari02__time:hover{
  background:
    rgba(255,255,255,.58);
}


.ksafari02__time.is-active{
  background:#FFF;

  transform:
    translateX(4px);

  box-shadow:
    0 8px 22px
    rgba(58,48,35,.06);
}


.ksafari02__clock{
  position:relative;

  display:grid;

  place-items:center;

  min-height:40px;

  color:#788783;

  font:
    900 11px/1
    Arial,
    sans-serif;
}


.ksafari02__clock::before{
  content:"";

  position:absolute;

  left:16px;

  width:9px;
  height:9px;

  border:
    2px solid
    var(--paper);

  border-radius:50%;

  background:#A9B9B2;

  box-shadow:
    0 0 0 1px
    #A9B9B2;
}


.ksafari02__time.is-active
.ksafari02__clock{
  color:var(--orange);
}


.ksafari02__time.is-active
.ksafari02__clock::before{
  background:var(--orange);

  box-shadow:
    0 0 0 1px
    var(--orange);
}


.ksafari02__time-copy{
  display:block;

  min-width:0;
}


.ksafari02__time-copy small{
  display:block;

  color:#A08766;

  font:
    900 7px/1
    Arial,
    sans-serif;

  letter-spacing:.09em;
}


.ksafari02__time-copy strong{
  display:block;

  margin-top:5px;

  color:var(--navy);

  font-size:11px;

  font-weight:800;

  line-height:1.45;
}


/* =========================================================
   FLOW NOTE
========================================================= */

.ksafari02__flow-note{
  grid-area:note;

  padding:
    5px
    29px
    25px !important;

  border-radius:
    0
    0
    28px
    28px;

  background:var(--paper);

  color:#929890;

  font-size:8px;

  line-height:1.7;
}


/* =========================================================
   VISUAL
========================================================= */

.ksafari02__visual{
  grid-area:visual;

  position:relative;

  min-width:0;
  min-height:600px;

  overflow:hidden;

  border-radius:28px;

  background:var(--navy);
}


.ksafari02__photo{
  position:absolute;

  inset:0;

  display:block;

  width:100%;
  height:100%;

  object-fit:cover;

  opacity:1;

  transform:scale(1);

  transition:
    opacity .24s ease,
    transform .7s
    cubic-bezier(.22,.72,.24,1);
}


.ksafari02__visual.is-changing
.ksafari02__photo{
  opacity:.42;

  transform:scale(1.018);
}


.ksafari02__shade{
  position:absolute;

  z-index:1;

  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(4,33,43,.02) 20%,
      rgba(4,33,43,.11) 44%,
      rgba(4,33,43,.86) 100%
    );

  pointer-events:none;
}


/* =========================================================
   BIG TIME
========================================================= */

.ksafari02__big-time{
  position:absolute;

  z-index:3;

  top:28px;
  right:32px;

  display:flex;

  align-items:baseline;

  color:
    rgba(255,255,255,.9);

  text-shadow:
    0 4px 20px
    rgba(0,0,0,.15);
}


.ksafari02__big-time strong{
  font:
    italic 700
    clamp(55px,7vw,94px)/.9
    Georgia,
    serif;
}


.ksafari02__big-time span{
  margin-left:3px;

  font:
    italic 700 21px/1
    Georgia,
    serif;
}


/* =========================================================
   PHOTO NOTE
========================================================= */

.ksafari02__photo-note{
  position:absolute;

  z-index:3;

  left:25px;
  top:26px;

  max-width:210px;

  padding:
    11px
    13px;

  border:
    1px solid
    rgba(255,255,255,.16);

  border-radius:12px;

  background:
    rgba(5,45,60,.35);

  backdrop-filter:
    blur(7px);

  color:#FFF;
}


.ksafari02__photo-note small{
  color:#F0C680;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.ksafari02__photo-note p{
  margin-top:6px !important;

  color:
    rgba(255,255,255,.77);

  font-size:9px;

  line-height:1.6;
}


/* =========================================================
   CAPTION
========================================================= */

.ksafari02__caption{
  position:absolute;

  z-index:3;

  left:
    clamp(25px,4vw,48px);

  right:
    clamp(25px,4vw,48px);

  bottom:
    clamp(29px,4vw,47px);

  max-width:650px;

  color:#FFF;
}


.ksafari02__caption-meta{
  display:flex;

  flex-wrap:wrap;

  gap:7px;

  margin-bottom:11px;
}


.ksafari02__caption-meta span{
  padding:
    6px
    9px;

  border-radius:999px;

  background:
    rgba(9,61,82,.73);

  color:#FFF;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.ksafari02
.ksafari02__caption h3{
  color:#FFF !important;

  font-size:
    clamp(34px,4.1vw,56px) !important;

  font-weight:800 !important;

  line-height:1.3 !important;

  letter-spacing:-.055em !important;

  word-break:keep-all;
}


.ksafari02__caption > p{
  max-width:570px;

  margin-top:12px !important;

  color:
    rgba(255,255,255,.87);

  font-size:13px;

  line-height:1.9;
}


/* =========================================================
   MESSAGE
========================================================= */

.ksafari02__message{
  position:relative;

  display:grid;

  grid-template-columns:
    minmax(260px,.75fr)
    minmax(300px,1fr);

  align-items:center;

  gap:
    clamp(32px,7vw,100px);

  margin-top:13px;

  padding:
    clamp(33px,5vw,58px);

  overflow:hidden;

  border-radius:24px;

  background:var(--navy);

  color:#FFF;
}


.ksafari02__message-bg{
  position:absolute;

  right:21px;
  bottom:-28px;

  color:
    rgba(255,255,255,.045);

  font:
    italic 700 150px/.8
    Georgia,
    serif;
}


.ksafari02__message > div,
.ksafari02__message > p{
  position:relative;

  z-index:2;
}


.ksafari02__message > div > p{
  color:#E2B46F;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.13em;
}


.ksafari02
.ksafari02__message h3{
  margin-top:8px !important;

  color:#FFF !important;

  font-size:
    clamp(27px,3.5vw,44px) !important;

  font-weight:800 !important;

  line-height:1.4 !important;

  letter-spacing:-.05em !important;
}


.ksafari02__message > p{
  color:
    rgba(255,255,255,.72);

  font-size:12px;

  line-height:2;
}


/* =========================================================
   PACKING
========================================================= */

.ksafari02__packing{
  margin-top:
    clamp(58px,8vw,96px);
}


.ksafari02__packing-head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(280px,.55fr);

  align-items:end;

  gap:
    clamp(25px,5vw,60px);
}


.ksafari02__packing-head > div > p{
  color:var(--orange);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.13em;
}


.ksafari02
.ksafari02__packing-head h3{
  margin-top:8px !important;

  color:var(--navy) !important;

  font-size:
    clamp(27px,3.5vw,43px) !important;

  font-weight:800 !important;

  line-height:1.4 !important;

  letter-spacing:-.048em !important;
}


.ksafari02__packing-head > p{
  color:var(--text);

  font-size:11px;

  line-height:1.9;
}


/* =========================================================
   PACK GRID
========================================================= */

.ksafari02__pack-grid{
  display:grid;

  grid-template-columns:
    repeat(5,minmax(0,1fr));

  gap:9px;

  margin-top:25px;
}


.ksafari02__pack{
  position:relative;

  min-width:0;
  min-height:205px;

  padding:
    22px
    18px;

  border:
    1px solid
    var(--border);

  border-radius:17px;

  background:#FFF;
}


.ksafari02__pack-icon{
  display:grid;

  place-items:center;

  width:61px;
  height:61px;

  border-radius:17px;

  background:#EDF3EE;

  color:var(--green);
}


.ksafari02__pack-icon svg{
  width:40px;
  height:40px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.7;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.ksafari02__pack > span{
  position:absolute;

  top:22px;
  right:20px;

  color:#C5BDAE;

  font:
    italic 700 15px/1
    Georgia,
    serif;
}


.ksafari02__pack > strong{
  display:block;

  margin-top:21px;

  color:var(--navy);

  font-size:14px;

  font-weight:800;
}


.ksafari02__pack > p{
  margin-top:5px !important;

  color:#788682;

  font-size:9px;

  line-height:1.65;
}


/* =========================================================
   BAG
========================================================= */

.ksafari02__bag-note{
  display:grid;

  grid-template-columns:
    auto
    minmax(270px,.7fr)
    minmax(0,1fr);

  align-items:center;

  gap:
    clamp(18px,4vw,45px);

  margin-top:10px;

  padding:
    22px
    25px;

  border-radius:17px;

  background:#F1E6D5;
}


.ksafari02__bag-icon{
  display:grid;

  place-items:center;

  width:51px;
  height:51px;

  border-radius:14px;

  background:#FFF;

  color:var(--orange);
}


.ksafari02__bag-icon svg{
  width:31px;
  height:31px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.7;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.ksafari02__bag-note small{
  color:var(--orange);

  font:
    900 7px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.ksafari02
.ksafari02__bag-note h4{
  margin-top:5px !important;

  color:var(--navy) !important;

  font-size:15px !important;

  font-weight:800 !important;

  line-height:1.55 !important;
}


.ksafari02__bag-note > p{
  color:#6D7C78;

  font-size:9px;

  line-height:1.75;
}


/* =========================================================
   FOOT
========================================================= */

.ksafari02__footer{
  display:flex;

  align-items:flex-start;

  gap:20px;

  margin-top:26px;

  padding-top:21px;

  border-top:
    1px solid
    #DDD8CF;
}


.ksafari02__footer strong{
  flex:none;

  color:#778985;

  font:
    900 7px/1.5
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.ksafari02__footer p{
  color:#949C98;

  font-size:8px;

  line-height:1.7;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .ksafari02__header{
    grid-template-columns:1fr;

    gap:18px;
  }


  .ksafari02__experience{
    grid-template-columns:
      minmax(0,1.15fr)
      minmax(290px,.85fr);
  }


  .ksafari02__pack-grid{
    grid-template-columns:
      repeat(3,minmax(0,1fr));
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  /*
    ここが今回の重要部分。

    PC:
    写真 | 時間

    MOBILE:
    見出し
    ↓
    時間選択
    ↓
    写真
    ↓
    注意書き
  */

  .ksafari02__experience{
    display:flex;

    flex-direction:column;

    min-height:0;
  }


  .ksafari02__flow-head{
    order:1;

    padding:
      26px
      22px
      16px;

    border-radius:
      20px
      20px
      0
      0;
  }


  /*
    写真を見ながら切替できる
    sticky time rail
  */
  .ksafari02__time-list{
    order:2;

    position:sticky;

    z-index:20;

    top:var(--sticky-top);

    display:flex;

    width:100%;

    gap:7px;

    padding:
      9px
      12px
      10px;

    overflow-x:auto;

    background:
      rgba(244,236,221,.96);

    border-bottom:
      1px solid
      rgba(166,145,114,.14);

    box-shadow:
      0 8px 22px
      rgba(36,44,39,.05);

    backdrop-filter:
      blur(12px);

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .ksafari02__time-list::-webkit-scrollbar{
    display:none;
  }


  .ksafari02__time-list::before{
    display:none;
  }


  /*
    PCの縦長カードから
    スマホはコンパクトカードへ
  */
  .ksafari02__time{
    flex:
      0 0
      min(42vw,155px);

    display:block;

    min-height:76px;

    padding:
      11px
      13px;

    border:
      1px solid
      rgba(9,61,82,.07);

    border-radius:13px;

    background:
      rgba(255,255,255,.55);

    scroll-snap-align:start;
  }


  .ksafari02__time.is-active{
    transform:none;

    border-color:
      rgba(189,102,55,.25);

    background:#FFF;

    box-shadow:
      0 5px 14px
      rgba(64,54,39,.07);
  }


  .ksafari02__clock{
    display:block;

    min-height:0;

    color:var(--orange);

    font-size:15px;
  }


  .ksafari02__clock::before{
    display:none;
  }


  .ksafari02__time-copy{
    margin-top:8px;
  }


  .ksafari02__time-copy small{
    font-size:6px;
  }


  .ksafari02__time-copy strong{
    margin-top:4px;

    font-size:10px;
  }


  /*
    選択バーのすぐ下が写真なので
    選択結果がすぐ見える
  */
  .ksafari02__visual{
    order:3;

    min-height:500px;

    margin-top:10px;

    scroll-margin-top:
      calc(
        var(--sticky-top) + 95px
      );
  }


  .ksafari02__flow-note{
    order:4;

    padding:
      16px
      18px
      19px !important;

    margin-top:8px !important;

    border-radius:14px;

    background:var(--paper);
  }


  .ksafari02__message{
    grid-template-columns:1fr;

    gap:18px;
  }


  .ksafari02__packing-head{
    grid-template-columns:1fr;

    gap:13px;
  }


  .ksafari02__pack-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .ksafari02__bag-note{
    grid-template-columns:
      auto 1fr;
  }


  .ksafari02__bag-note > p{
    grid-column:1 / -1;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .ksafari02__inner{
    width:
      calc(100% - 32px);

    padding:
      67px
      0
      74px;
  }


  .ksafari02 .ksafari02__title{
    font-size:
      clamp(
        35px,
        10.5vw,
        45px
      ) !important;

    line-height:
      1.34 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .ksafari02__title br{
    display:none;
  }


  .ksafari02__intro > p{
    font-size:13px;
  }


  /* FLOW */

  .ksafari02
  .ksafari02__flow-head h3{
    font-size:25px !important;
  }


  .ksafari02__flow-head > span{
    font-size:9px;
  }


  /* PHOTO */

  .ksafari02__visual{
    /*
      画面いっぱいにし過ぎない。
      選択バー＋写真が同時に感じられる高さ。
    */
    min-height:0;

    height:
      min(
        72svh,
        520px
      );

    border-radius:20px;
  }


  /*
    スクショでは時間数字がかなり大きかったので
    スマホでは少し小さくする。
  */
  .ksafari02__big-time{
    top:19px;
    right:18px;
  }


  .ksafari02__big-time strong{
    font-size:51px;
  }


  .ksafari02__big-time span{
    font-size:15px;
  }


  .ksafari02__photo-note{
    left:16px;
    top:16px;

    max-width:143px;

    padding:
      8px
      10px;
  }


  .ksafari02__photo-note p{
    font-size:7px;
  }


  .ksafari02__caption{
    left:20px;
    right:20px;
    bottom:22px;
  }


  .ksafari02
  .ksafari02__caption h3{
    font-size:29px !important;

    line-height:1.4 !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .ksafari02__caption > p{
    margin-top:10px !important;

    font-size:11px;

    line-height:1.85;
  }


  .ksafari02__caption-meta span{
    font-size:7px;
  }


  /* MESSAGE */

  .ksafari02__message{
    padding:
      28px
      22px;

    border-radius:20px;
  }


  .ksafari02
  .ksafari02__message h3{
    font-size:27px !important;
  }


  .ksafari02__message > p{
    font-size:11px;
  }


  /* PACK */

  .ksafari02
  .ksafari02__packing-head h3{
    font-size:28px !important;
  }


  .ksafari02__pack{
    min-height:190px;

    padding:
      19px
      16px;
  }


  .ksafari02__pack-icon{
    width:54px;
    height:54px;
  }


  .ksafari02__pack-icon svg{
    width:35px;
    height:35px;
  }


  .ksafari02__pack > strong{
    margin-top:17px;

    font-size:13px;
  }


  .ksafari02__pack > p{
    font-size:9px;
  }


  .ksafari02__bag-note{
    padding:
      20px
      18px;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .ksafari02__inner{
    width:
      calc(100% - 28px);
  }


  .ksafari02__time{
    flex-basis:
      min(46vw,150px);
  }


  .ksafari02__visual{
    height:
      min(
        70svh,
        480px
      );
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .ksafari02 *,
  .ksafari02 *::before,
  .ksafari02 *::after{
    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-a4c922e *//* =========================================================
   KSTAY02
========================================================= */

.kstay02{
  --navy:#093D52;
  --navy-deep:#052E3D;

  --forest:#264943;

  --gold:#A67C37;
  --orange:#BD6637;

  --cream:#FFFAF1;
  --paper:#F2E9DA;
  --sage:#EAF1EB;

  --white:#FFFFFF;
  --text:#627574;
  --border:#DED7CB;

  /*
    WordPressの固定ヘッダー高さ。
    必要ならここだけ変更。
  */
  --mobile-header:64px;

  width:100%;
  max-width:100%;

  overflow:visible;

  background:var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.kstay02,
.kstay02 *,
.kstay02 *::before,
.kstay02 *::after{
  box-sizing:border-box;
}


.kstay02 :is(
  h2,
  h3,
  h4,
  p,
  figure
){
  margin:0;
  padding:0;
}


.kstay02 button,
.kstay02 a{
  font:inherit;
}


.kstay02 button{
  border:0;
}


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


.kstay02 img,
.kstay02 svg{
  display:block;
}


/* =========================================================
   INNER
========================================================= */

.kstay02__inner{
  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(80px,9vw,120px)
    0
    clamp(76px,8vw,108px);
}


/* =========================================================
   HEADER
========================================================= */

.kstay02__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.72fr);

  align-items:end;

  gap:
    clamp(34px,7vw,100px);

  margin-bottom:
    clamp(36px,5vw,56px);
}


.kstay02__header > *{
  min-width:0;
}


.kstay02__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:12px;
  font-weight:900;

  letter-spacing:.12em;
}


.kstay02__kicker::before{
  content:"";

  width:36px;
  height:3px;

  border-radius:999px;

  background:var(--orange);
}


.kstay02 .kstay02__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(43px,5.2vw,70px) !important;

  font-weight:800 !important;

  line-height:1.28 !important;

  letter-spacing:-.062em !important;

  word-break:keep-all;
}


.kstay02__intro > p{
  color:var(--text);

  font-size:14px;

  line-height:2;
}


.kstay02__update{
  display:inline-flex;

  align-items:center;

  gap:7px;

  margin-top:17px;

  padding:7px 11px;

  border:1px solid var(--border);

  border-radius:999px;

  background:#FFF;

  color:#86928F;
}


.kstay02__update > span{
  width:7px;
  height:7px;

  border-radius:50%;

  background:#8BA99F;
}


.kstay02__update small,
.kstay02__update strong{
  font:
    800 9px/1
    Arial,
    sans-serif;
}


.kstay02__update strong{
  color:var(--navy);
}


/* =========================================================
   EXPLORER
========================================================= */

.kstay02__explorer{
  position:relative;
}


/* =========================================================
   STAY NAV
========================================================= */

.kstay02__nav{
  display:grid;

  grid-template-columns:
    repeat(4,minmax(0,1fr));

  gap:7px;

  margin-bottom:9px;
}


.kstay02__nav-item{
  display:grid;

  grid-template-columns:
    68px
    minmax(0,1fr);

  align-items:center;

  gap:11px;

  min-width:0;

  padding:7px;

  border:
    1px solid
    var(--border);

  border-radius:14px;

  background:#FFF;

  color:var(--navy);

  text-align:left;

  cursor:pointer;

  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}


.kstay02__nav-item:hover{
  transform:translateY(-2px);
}


.kstay02__nav-item.is-active{
  border-color:
    rgba(189,102,55,.55);

  box-shadow:
    0 0 0 2px
    rgba(189,102,55,.13);
}


.kstay02__nav-thumb{
  width:68px;
  height:68px;

  overflow:hidden;

  border-radius:10px;

  background:#DDE4DE;
}


.kstay02__nav-thumb img{
  width:100%;
  height:100%;

  object-fit:cover;
}


.kstay02__nav-copy{
  min-width:0;
}


.kstay02__nav-copy small{
  display:block;

  color:#9C896E;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.kstay02__nav-copy strong{
  display:block;

  margin-top:6px;

  overflow:hidden;

  color:var(--navy);

  font-size:12px;
  font-weight:800;

  line-height:1.35;

  text-overflow:ellipsis;

  white-space:nowrap;
}


.kstay02__nav-copy em{
  display:block;

  margin-top:4px;

  color:#81908C;

  font:
    normal 800 8px/1
    Arial,
    sans-serif;
}


/* =========================================================
   STAGE
========================================================= */

.kstay02__stage{
  display:grid;

  grid-template-columns:
    minmax(0,1.5fr)
    minmax(350px,.5fr);

  min-height:550px;

  overflow:hidden;

  border-radius:26px;

  background:var(--forest);
}


/* =========================================================
   PHOTO
========================================================= */

.kstay02__photo{
  position:relative;

  min-width:0;
  min-height:550px;

  overflow:hidden;

  background:#637B75;
}


.kstay02__photo > img{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  object-fit:cover;

  opacity:1;

  transform:scale(1);

  transition:
    opacity .25s ease,
    transform .7s ease;
}


.kstay02__photo.is-changing > img{
  opacity:.4;

  transform:scale(1.02);
}


.kstay02__photo-shade{
  position:absolute;

  z-index:1;

  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(5,38,43,.03) 30%,
      rgba(5,38,43,.12) 60%,
      rgba(5,38,43,.72) 100%
    );
}


.kstay02__photo-top{
  position:absolute;

  z-index:2;

  top:23px;
  left:23px;
  right:23px;

  display:flex;

  justify-content:space-between;

  gap:10px;
}


.kstay02__photo-top span{
  padding:
    6px
    9px;

  border-radius:999px;

  background:
    rgba(5,46,61,.65);

  color:#FFF;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kstay02__photo figcaption{
  position:absolute;

  z-index:2;

  left:
    clamp(23px,4vw,45px);

  right:
    clamp(23px,4vw,45px);

  bottom:
    clamp(24px,4vw,42px);
}


.kstay02__photo figcaption small{
  color:#EBC87D;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.kstay02__photo figcaption strong{
  display:block;

  margin-top:7px;

  color:#FFF;

  font-size:
    clamp(21px,2.4vw,31px);

  font-weight:800;
}


/* =========================================================
   DETAIL
========================================================= */

.kstay02__detail{
  display:flex;

  flex-direction:column;

  justify-content:space-between;

  gap:24px;

  min-width:0;

  padding:
    clamp(29px,4vw,45px);

  color:#FFF;

  background:
    radial-gradient(
      circle at 100% 0,
      rgba(166,124,55,.18),
      transparent 35%
    ),
    var(--forest);
}


.kstay02__type{
  color:#E3BD78;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kstay02 .kstay02__detail h3{
  margin-top:11px !important;

  color:#FFF !important;

  font-size:
    clamp(27px,3vw,39px) !important;

  font-weight:800 !important;

  line-height:1.3 !important;

  letter-spacing:-.04em !important;
}


.kstay02__description{
  margin-top:17px !important;

  color:
    rgba(255,255,255,.75);

  font-size:13px;

  line-height:1.9;
}


.kstay02__tags{
  display:flex;

  flex-wrap:wrap;

  gap:6px;

  margin-top:17px;
}


.kstay02__tags span{
  padding:6px 9px;

  border:
    1px solid
    rgba(255,255,255,.15);

  border-radius:999px;

  color:
    rgba(255,255,255,.76);

  font-size:9px;
  font-weight:800;
}


/* =========================================================
   PRICE
========================================================= */

.kstay02__price-box{
  padding:20px 0;

  border-top:
    1px solid
    rgba(255,255,255,.13);

  border-bottom:
    1px solid
    rgba(255,255,255,.13);
}


.kstay02__price-box > small{
  color:
    rgba(255,255,255,.48);

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.kstay02__price{
  display:flex;

  align-items:baseline;

  flex-wrap:wrap;

  gap:6px;

  margin-top:8px;
}


.kstay02__price strong{
  color:#F1C574;

  font-size:
    clamp(26px,2.8vw,38px);

  font-weight:900;
}


.kstay02__price span{
  font-size:11px;
  font-weight:800;
}


.kstay02__price-box > p{
  margin-top:10px !important;

  color:
    rgba(255,255,255,.63);

  font-size:10px;

  line-height:1.75;
}


/* =========================================================
   ACTION
========================================================= */

.kstay02__action > p{
  color:
    rgba(255,255,255,.51);

  font-size:9px;

  line-height:1.7;
}


.kstay02__action > a{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:15px;

  width:100%;

  margin-top:16px;

  padding:
    13px
    16px;

  border:
    1px solid
    rgba(255,255,255,.23);

  border-radius:999px;

  color:#FFF !important;

  font-size:11px;

  font-weight:800;
}


/* =========================================================
   PRICE NOTE
========================================================= */

.kstay02__price-note{
  display:grid;

  grid-template-columns:
    minmax(250px,.6fr)
    minmax(0,1.4fr);

  align-items:center;

  gap:
    clamp(25px,5vw,65px);

  margin-top:15px;

  padding:
    23px
    26px;

  border-radius:17px;

  background:var(--sage);
}


.kstay02__price-note small{
  color:var(--green);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kstay02 .kstay02__price-note h3{
  margin-top:7px !important;

  color:var(--navy) !important;

  font-size:17px !important;

  font-weight:800 !important;
}


.kstay02__price-note > p{
  color:var(--text);

  font-size:11px;

  line-height:1.85;
}


/* =========================================================
   COMPARE
========================================================= */

.kstay02__compare{
  margin-top:
    clamp(66px,8vw,105px);
}


.kstay02__compare-head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(300px,.6fr);

  align-items:end;

  gap:
    clamp(30px,6vw,80px);
}


.kstay02__compare-head > div > p{
  color:var(--orange);

  font:
    900 10px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kstay02 .kstay02__compare-head h3{
  margin-top:9px !important;

  color:var(--navy) !important;

  font-size:
    clamp(29px,3.7vw,47px) !important;

  font-weight:800 !important;

  line-height:1.4 !important;

  letter-spacing:-.05em !important;
}


.kstay02__compare-head > p{
  color:var(--text);

  font-size:12px;

  line-height:1.9;
}


.kstay02__compare-grid{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:7px;

  margin-top:27px;
}


.kstay02__compare-card{
  min-height:370px;

  padding:
    clamp(27px,4vw,44px);

  border-radius:22px;
}


.kstay02__compare-card--light{
  background:var(--paper);

  color:var(--navy);
}


.kstay02__compare-card--dark{
  background:var(--navy-deep);

  color:#FFF;
}


.kstay02__compare-icon{
  display:grid;

  place-items:center;

  width:72px;
  height:72px;

  border-radius:20px;

  background:
    rgba(255,255,255,.5);

  color:var(--orange);
}


.kstay02__compare-card--dark
.kstay02__compare-icon{
  background:
    rgba(255,255,255,.07);

  color:#DAB572;
}


.kstay02__compare-icon svg{
  width:47px;
  height:47px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.7;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.kstay02__compare-card > small{
  display:block;

  margin-top:23px;

  color:#A08663;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.kstay02__compare-card--dark > small{
  color:#D6B06C;
}


.kstay02 .kstay02__compare-card h4{
  margin-top:9px !important;

  color:inherit !important;

  font-size:
    clamp(22px,2.5vw,30px) !important;

  font-weight:800 !important;

  line-height:1.45 !important;

  letter-spacing:-.04em !important;
}


.kstay02__compare-card > p{
  max-width:450px;

  margin-top:14px !important;

  color:#657875;

  font-size:12px;

  line-height:1.9;
}


.kstay02__compare-card--dark > p{
  color:
    rgba(255,255,255,.67);
}


.kstay02__compare-card > div:last-child{
  display:flex;

  flex-wrap:wrap;

  gap:6px;

  margin-top:18px;
}


.kstay02__compare-card > div:last-child span{
  padding:
    6px
    9px;

  border:
    1px solid
    rgba(9,61,82,.12);

  border-radius:999px;

  font-size:9px;
  font-weight:800;
}


.kstay02__compare-card--dark
> div:last-child span{
  border-color:
    rgba(255,255,255,.14);

  color:
    rgba(255,255,255,.74);
}


.kstay02__compare-note{
  margin-top:12px !important;

  color:#8C9793;

  font-size:9px;

  line-height:1.7;
}


/* =========================================================
   WORDS
========================================================= */

.kstay02__words{
  position:relative;

  margin-top:
    clamp(70px,9vw,112px);

  padding:
    clamp(34px,5vw,57px);

  border-radius:27px;

  background:var(--navy-deep);

  color:#FFF;

  /*
    stickyが効くため
    overflow:hiddenにはしない
  */
  overflow:visible;
}


.kstay02__words-head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(310px,.62fr);

  align-items:end;

  gap:
    clamp(30px,6vw,80px);
}


.kstay02__words-head > div > p{
  color:#E3B66C;

  font:
    900 10px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kstay02 .kstay02__words-head h3{
  margin-top:10px !important;

  color:#FFF !important;

  font-size:
    clamp(31px,4vw,52px) !important;

  font-weight:800 !important;

  line-height:1.35 !important;

  letter-spacing:-.052em !important;
}


.kstay02__words-head > p{
  color:
    rgba(255,255,255,.67);

  font-size:12px;

  line-height:1.9;
}


/* =========================================================
   LANGUAGE STICKY
========================================================= */

.kstay02__lang-sticky{
  position:relative;

  z-index:20;

  margin-top:29px;
}


.kstay02__lang-tabs{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  width:min(530px,100%);

  gap:5px;

  padding:5px;

  border-radius:15px;

  background:
    rgba(255,255,255,.08);
}


.kstay02__lang-tabs button{
  min-height:58px;

  padding:
    9px
    14px;

  border-radius:11px;

  background:transparent;

  color:
    rgba(255,255,255,.53);

  text-align:left;

  cursor:pointer;
}


.kstay02__lang-tabs button.is-active{
  background:#FFF;

  color:var(--navy);
}


.kstay02__lang-tabs small{
  display:block;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.09em;
}


.kstay02__lang-tabs strong{
  display:block;

  margin-top:6px;

  font:
    900 12px/1
    Arial,
    sans-serif;

  letter-spacing:.05em;
}


/* =========================================================
   WORDS LAYOUT
========================================================= */

.kstay02__words-layout{
  display:grid;

  grid-template-columns:
    minmax(0,1.45fr)
    minmax(270px,.55fr);

  gap:10px;

  margin-top:17px;
}


.kstay02__phrases{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:7px;
}


.kstay02__phrase{
  min-width:0;

  min-height:150px;

  padding:
    20px
    20px;

  border:
    1px solid
    rgba(255,255,255,.12);

  border-radius:15px;

  background:
    rgba(255,255,255,.055);
}


.kstay02__phrase--accent{
  border-color:
    rgba(223,178,103,.38);

  background:
    rgba(166,124,55,.13);
}


.kstay02__phrase small{
  color:#E0B56D;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.kstay02__phrase strong{
  display:block;

  margin-top:13px;

  color:#FFF;

  font-size:15px;
  font-weight:800;

  line-height:1.55;
}


.kstay02__phrase p{
  margin-top:9px !important;

  color:
    rgba(255,255,255,.63);

  font-size:11px;

  line-height:1.7;
}


.kstay02__pronounce{
  display:block;

  margin-top:7px;

  color:#DEBC7B;

  font-size:10px;
  font-weight:800;
}


/* =========================================================
   ASANTE
========================================================= */

.kstay02__asante{
  display:flex;

  flex-direction:column;

  justify-content:space-between;

  gap:25px;

  min-height:307px;

  padding:
    26px
    24px;

  border-radius:17px;

  background:#F0E2CF;

  color:var(--navy);
}


.kstay02__stamp{
  position:relative;

  display:grid;

  place-items:center;

  align-self:flex-end;

  width:120px;
  height:120px;

  border:
    2px solid
    rgba(189,102,55,.33);

  border-radius:50%;

  color:
    rgba(189,102,55,.57);

  transform:rotate(-8deg);
}


.kstay02__stamp::before{
  content:"";

  position:absolute;

  inset:8px;

  border:
    1px dashed
    currentColor;

  border-radius:50%;
}


.kstay02__stamp span,
.kstay02__stamp strong,
.kstay02__stamp small{
  position:absolute;
}


.kstay02__stamp span{
  top:27px;

  font:
    800 8px/1
    Arial,
    sans-serif;
}


.kstay02__stamp strong{
  font:
    900 17px/1
    Arial,
    sans-serif;
}


.kstay02__stamp small{
  bottom:27px;

  font:
    800 7px/1
    Arial,
    sans-serif;
}


.kstay02__asante > div:last-child > small{
  color:var(--orange);

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.kstay02 .kstay02__asante h4{
  margin-top:8px !important;

  color:var(--navy) !important;

  font-size:23px !important;

  font-weight:800 !important;

  line-height:1.5 !important;
}


.kstay02__asante p{
  margin-top:10px !important;

  color:#647773;

  font-size:11px;

  line-height:1.8;
}


/* =========================================================
   LANGUAGE NOTE
========================================================= */

.kstay02__language-note{
  display:flex;

  align-items:flex-start;

  gap:15px;

  margin-top:18px;

  padding-top:17px;

  border-top:
    1px solid
    rgba(255,255,255,.1);
}


.kstay02__language-note strong{
  flex:none;

  color:#D8B16C;

  font:
    900 8px/1.6
    Arial,
    sans-serif;
}


.kstay02__language-note p{
  color:
    rgba(255,255,255,.48);

  font-size:9px;

  line-height:1.7;
}


/* =========================================================
   FOOTER
========================================================= */

.kstay02__footer{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:
    clamp(24px,5vw,70px);

  margin-top:27px;

  padding-top:21px;

  border-top:
    1px solid
    var(--border);
}


.kstay02__footer strong{
  color:#788985;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.kstay02__footer p{
  margin-top:7px !important;

  color:#909B97;

  font-size:9px;

  line-height:1.75;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .kstay02__header{
    grid-template-columns:1fr;

    gap:18px;
  }


  .kstay02__nav{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .kstay02__stage{
    grid-template-columns:
      minmax(0,1.1fr)
      minmax(330px,.9fr);
  }


  .kstay02__words-layout{
    grid-template-columns:
      minmax(0,1.2fr)
      minmax(250px,.8fr);
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  /* =====================================
     STAY NAV
  ====================================== */

  .kstay02__nav{
    position:sticky;

    z-index:30;

    top:var(--mobile-header);

    display:flex;

    width:
      calc(100% + 16px);

    margin:
      0
      -16px
      9px;

    padding:
      8px
      16px;

    gap:7px;

    overflow-x:auto;

    background:
      rgba(255,250,241,.96);

    border-bottom:
      1px solid
      rgba(95,91,80,.08);

    box-shadow:
      0 8px 22px
      rgba(44,50,44,.06);

    backdrop-filter:
      blur(12px);

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .kstay02__nav::-webkit-scrollbar{
    display:none;
  }


  .kstay02__nav-item{
    flex:
      0 0
      min(64vw,250px);

    grid-template-columns:
      54px
      minmax(0,1fr);

    min-height:68px;

    padding:6px;

    scroll-snap-align:center;
  }


  .kstay02__nav-item:hover{
    transform:none;
  }


  .kstay02__nav-thumb{
    width:54px;
    height:54px;

    border-radius:9px;
  }


  .kstay02__nav-copy strong{
    font-size:11px;
  }


  /* =====================================
     STAGE
  ====================================== */

  .kstay02__stage{
    display:flex;

    flex-direction:column;

    min-height:0;

    border-radius:20px;
  }


  .kstay02__photo{
    min-height:365px;
  }


  .kstay02__detail{
    padding:
      28px
      23px;
  }


  /* =====================================
     PRICE NOTE
  ====================================== */

  .kstay02__price-note{
    grid-template-columns:1fr;

    gap:12px;
  }


  /* =====================================
     COMPARE
  ====================================== */

  .kstay02__compare-head{
    grid-template-columns:1fr;

    gap:14px;
  }


  .kstay02__compare-grid{
    grid-template-columns:1fr;
  }


  .kstay02__compare-card{
    min-height:0;
  }


  /* =====================================
     WORDS
  ====================================== */

  .kstay02__words-head{
    grid-template-columns:1fr;

    gap:15px;
  }


  /*
    言語切替をスクロール中も表示
  */
  .kstay02__lang-sticky{
    position:sticky;

    z-index:35;

    top:var(--mobile-header);

    margin:
      24px
      -12px
      0;

    padding:
      8px
      12px;

    background:
      rgba(5,46,61,.96);

    border-bottom:
      1px solid
      rgba(255,255,255,.08);

    box-shadow:
      0 8px 22px
      rgba(0,0,0,.12);

    backdrop-filter:
      blur(12px);
  }


  .kstay02__lang-tabs{
    width:100%;

    margin:0;
  }


  .kstay02__words-layout{
    grid-template-columns:1fr;

    margin-top:13px;
  }


  .kstay02__phrases{
    grid-template-columns:1fr;
  }


  .kstay02__asante{
    min-height:0;

    display:grid;

    grid-template-columns:
      auto
      1fr;

    align-items:center;

    gap:22px;
  }


  .kstay02__stamp{
    align-self:auto;
  }


  .kstay02__footer{
    grid-template-columns:1fr;

    gap:17px;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .kstay02__inner{
    width:
      calc(100% - 32px);

    padding:
      68px
      0
      74px;
  }


  /* HEADER */

  .kstay02 .kstay02__title{
    font-size:
      clamp(
        35px,
        10.5vw,
        45px
      ) !important;

    line-height:
      1.34 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .kstay02__title br{
    display:none;
  }


  .kstay02__intro > p{
    font-size:13px;
  }


  /* NAV */

  .kstay02__nav-item{
    flex-basis:
      min(68vw,245px);
  }


  .kstay02__nav-copy small{
    font-size:7px;
  }


  .kstay02__nav-copy strong{
    font-size:12px;
  }


  /* PHOTO */

  .kstay02__photo{
    min-height:340px;
  }


  .kstay02__photo-top{
    top:16px;
    left:16px;
    right:16px;
  }


  .kstay02__photo figcaption{
    left:19px;
    right:19px;
    bottom:19px;
  }


  /* DETAIL */

  .kstay02 .kstay02__detail h3{
    font-size:29px !important;
  }


  .kstay02__description{
    font-size:12px;
  }


  .kstay02__price strong{
    font-size:30px;
  }


  /* COMPARE */

  .kstay02
  .kstay02__compare-head h3{
    font-size:29px !important;
  }


  .kstay02__compare-card{
    padding:
      27px
      22px;
  }


  .kstay02
  .kstay02__compare-card h4{
    font-size:23px !important;
  }


  .kstay02__compare-card > p{
    font-size:11px;
  }


  /* WORDS */

  .kstay02__words{
    padding:
      29px
      20px;

    border-radius:21px;
  }


  .kstay02
  .kstay02__words-head h3{
    font-size:30px !important;
  }


  .kstay02__words-head > p{
    font-size:11px;
  }


  /*
    Stickyの左右をカード端まで伸ばす
  */
  .kstay02__lang-sticky{
    margin-left:-20px;
    margin-right:-20px;

    padding-left:20px;
    padding-right:20px;
  }


  .kstay02__lang-tabs button{
    min-height:55px;

    padding:
      9px
      11px;
  }


  .kstay02__lang-tabs small{
    font-size:7px;
  }


  .kstay02__lang-tabs strong{
    font-size:11px;
  }


  .kstay02__phrase{
    min-height:0;

    padding:
      19px
      18px;
  }


  .kstay02__phrase strong{
    font-size:15px;
  }


  .kstay02__phrase p{
    font-size:11px;
  }


  .kstay02__asante{
    grid-template-columns:1fr;

    gap:18px;
  }


  .kstay02__language-note{
    display:block;
  }


  .kstay02__language-note p{
    margin-top:6px !important;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .kstay02__inner{
    width:
      calc(100% - 28px);
  }


  .kstay02__nav-item{
    flex-basis:74vw;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .kstay02 *,
  .kstay02 *::before,
  .kstay02 *::after{
    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-76bebc1 *//* =========================================================
   KEAT02
========================================================= */

.keat02{
  --navy:#093D52;
  --navy-deep:#052E3D;
  --night:#032731;

  --orange:#BD6637;
  --gold:#A67C37;

  --green:#5A7058;

  --cream:#FFFAF1;
  --paper:#F2E5D2;
  --sage:#EAF1EB;

  --text:#627574;
  --border:#DED7CB;

  /*
    スマホ固定ヘッダーの高さ。
    サイト側のヘッダーが違う場合は
    この数字だけ変更。
  */
  --mobile-header:64px;

  width:100%;
  max-width:100%;

  overflow:visible;

  background:var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.keat02,
.keat02 *,
.keat02 *::before,
.keat02 *::after{
  box-sizing:border-box;
}


.keat02 :is(
  h2,
  h3,
  h4,
  p,
  figure
){
  margin:0;
  padding:0;
}


.keat02 button,
.keat02 a{
  font:inherit;
}


.keat02 button{
  border:0;
}


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


.keat02 img{
  display:block;
}


/* =========================================================
   INNER
========================================================= */

.keat02__inner{
  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(80px,9vw,120px)
    0
    clamp(76px,8vw,108px);
}


/* =========================================================
   HEADER
========================================================= */

.keat02__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.7fr);

  align-items:end;

  gap:clamp(35px,7vw,95px);

  margin-bottom:
    clamp(36px,5vw,56px);
}


.keat02__header > *{
  min-width:0;
}


.keat02__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:12px;
  font-weight:900;

  letter-spacing:.13em;
}


.keat02__kicker::before{
  content:"";

  width:36px;
  height:3px;

  border-radius:999px;

  background:var(--orange);
}


.keat02 .keat02__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(43px,5.2vw,70px) !important;

  font-weight:800 !important;

  line-height:1.28 !important;

  letter-spacing:-.062em !important;

  word-break:keep-all;
}


.keat02__intro > p{
  color:var(--text);

  font-size:14px;

  line-height:2;
}


.keat02__rate{
  display:inline-flex;

  align-items:center;

  flex-wrap:wrap;

  gap:7px;

  margin-top:17px;

  padding:8px 11px;

  border:
    1px solid
    var(--border);

  border-radius:999px;

  background:#FFF;
}


.keat02__rate > span{
  width:7px;
  height:7px;

  border-radius:50%;

  background:#82A399;
}


.keat02__rate small,
.keat02__rate strong,
.keat02__rate em{
  font:
    800 9px/1
    Arial,
    sans-serif;
}


.keat02__rate small{
  color:#889492;
}


.keat02__rate strong{
  color:var(--navy);
}


.keat02__rate em{
  padding-left:7px;

  border-left:
    1px solid
    var(--border);

  color:var(--orange);

  font-style:normal;
}


/* =========================================================
   AREA
========================================================= */

.keat02__area-head,
.keat02__coast-head{
  display:flex;

  align-items:center;

  gap:12px;

  margin-bottom:12px;
}


.keat02__area-head > span,
.keat02__coast-head > span{
  display:grid;

  place-items:center;

  width:34px;
  height:34px;

  flex:none;

  border-radius:50%;

  background:var(--navy);

  color:#FFF;

  font:
    900 9px/1
    Arial,
    sans-serif;
}


.keat02__area-head small,
.keat02__coast-head small{
  display:block;

  color:#9A8A73;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.09em;
}


.keat02__area-head strong,
.keat02__coast-head strong{
  display:block;

  margin-top:5px;

  color:var(--navy);

  font:
    900 14px/1
    Arial,
    sans-serif;

  letter-spacing:.06em;
}


.keat02__area-head > p,
.keat02__coast-head > p{
  margin-left:auto !important;

  color:#7F8D89;

  font-size:10px;
}


/* =========================================================
   RESTAURANT GRID
========================================================= */

.keat02__grid{
  display:grid;

  grid-template-columns:
    repeat(12,minmax(0,1fr));

  gap:10px;
}


.keat02__restaurant{
  min-width:0;

  overflow:hidden;

  border-radius:24px;

  opacity:0;

  transform:translateY(17px);

  transition:
    opacity .5s ease,
    transform .5s
    cubic-bezier(.22,.72,.24,1);
}


.keat02__restaurant.is-visible{
  opacity:1;

  transform:none;
}


.keat02__restaurant--wide{
  grid-column:span 7;
}


.keat02__restaurant--compact{
  grid-column:span 5;
}


.keat02__restaurant--night{
  background:var(--night);
  color:#FFF;
}


.keat02__restaurant--paper{
  background:var(--paper);
  color:var(--navy);
}


.keat02__restaurant--cave{
  background:#352F2B;
  color:#FFF;
}


.keat02__restaurant--sea{
  background:#315C5C;
  color:#FFF;
}


.keat02__coast-head{
  grid-column:1/-1;

  margin:
    38px 0
    2px;
}


/* =========================================================
   PHOTO
========================================================= */

.keat02__photo{
  position:relative;

  height:310px;

  overflow:hidden;

  background:#647875;
}


.keat02__restaurant--compact
.keat02__photo{
  height:265px;
}


.keat02__photo img{
  width:100%;
  height:100%;

  object-fit:cover;

  transition:
    transform .7s ease;
}


.keat02__restaurant:hover
.keat02__photo img{
  transform:scale(1.025);
}


.keat02__photo-shade{
  position:absolute;

  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(3,25,30,.02) 35%,
      rgba(3,25,30,.68) 100%
    );
}


.keat02__photo-no{
  position:absolute;

  z-index:2;

  top:17px;
  right:20px;

  color:
    rgba(255,255,255,.86);

  font:
    italic 700 27px/1
    Georgia,
    serif;
}


.keat02__photo figcaption{
  position:absolute;

  z-index:2;

  left:20px;
  bottom:18px;

  display:flex;

  flex-wrap:wrap;

  gap:7px;
}


.keat02__photo figcaption span,
.keat02__photo figcaption small{
  padding:6px 8px;

  border-radius:999px;

  background:
    rgba(9,61,82,.72);

  color:#FFF;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.keat02__photo figcaption small{
  background:
    rgba(166,124,55,.78);
}


/* =========================================================
   RESTAURANT CONTENT
========================================================= */

.keat02__content{
  padding:
    clamp(24px,3.5vw,36px);
}


.keat02__category{
  color:#E1B66F;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.keat02__restaurant--paper
.keat02__category{
  color:var(--orange);
}


.keat02 .keat02__content h3{
  margin-top:8px !important;

  color:inherit !important;

  font-size:
    clamp(24px,2.8vw,36px) !important;

  font-weight:800 !important;

  line-height:1.3 !important;

  letter-spacing:-.04em !important;
}


.keat02__restaurant--compact
.keat02__content h3{
  font-size:
    clamp(22px,2.4vw,30px) !important;
}


.keat02__lead{
  max-width:590px;

  margin-top:14px !important;

  color:
    rgba(255,255,255,.73);

  font-size:13px;

  line-height:1.9;
}


.keat02__restaurant--paper
.keat02__lead{
  color:#647774;
}


/* =========================================================
   FACTS
========================================================= */

.keat02__facts{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  gap:7px;

  margin-top:22px;
}


.keat02__facts > div{
  padding:15px 16px;

  border:
    1px solid
    rgba(255,255,255,.12);

  border-radius:13px;

  background:
    rgba(255,255,255,.05);
}


.keat02__facts small{
  display:block;

  color:
    rgba(255,255,255,.49);

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.keat02__facts strong{
  display:block;

  margin-top:7px;

  color:#F0C275;

  font-size:18px;
  font-weight:900;
}


.keat02__facts span{
  display:block;

  margin-top:3px;

  color:
    rgba(255,255,255,.69);

  font-size:10px;
}


/* =========================================================
   MINI PRICE
========================================================= */

.keat02__mini-price{
  margin-top:20px;

  padding:16px 0;

  border-top:
    1px solid
    rgba(9,61,82,.12);

  border-bottom:
    1px solid
    rgba(9,61,82,.12);
}


.keat02__restaurant--cave
.keat02__mini-price{
  border-color:
    rgba(255,255,255,.12);
}


.keat02__mini-price small{
  display:block;

  color:#A18C6E;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.keat02__restaurant--cave
.keat02__mini-price small{
  color:#D5AE6D;
}


.keat02__mini-price strong{
  display:block;

  margin-top:7px;

  color:var(--orange);

  font-size:19px;
  font-weight:900;
}


.keat02__restaurant--cave
.keat02__mini-price strong{
  color:#E9BB70;
}


.keat02__mini-price span{
  display:block;

  margin-top:3px;

  color:#71817D;

  font-size:10px;
}


.keat02__restaurant--cave
.keat02__mini-price span{
  color:
    rgba(255,255,255,.66);
}


.keat02__rule{
  display:inline-flex;

  margin-top:13px;

  padding:6px 9px;

  border-radius:999px;

  background:
    rgba(189,102,55,.18);

  color:#E9B773;

  font-size:9px;
  font-weight:800;
}


/* =========================================================
   RESTAURANT FOOT
========================================================= */

.keat02__restaurant-foot{
  display:flex;

  align-items:end;

  justify-content:space-between;

  gap:20px;

  margin-top:20px;

  padding-top:17px;

  border-top:
    1px solid
    rgba(255,255,255,.1);
}


.keat02__restaurant-foot p{
  max-width:420px;

  color:
    rgba(255,255,255,.54);

  font-size:9px;

  line-height:1.7;
}


.keat02__restaurant-foot a{
  display:flex;

  align-items:center;

  gap:15px;

  flex:none;

  padding:10px 14px;

  border:
    1px solid
    rgba(255,255,255,.2);

  border-radius:999px;

  color:#FFF !important;

  font-size:10px;
  font-weight:800;
}


.keat02__simple-link{
  display:flex;

  justify-content:space-between;

  gap:15px;

  width:100%;

  margin-top:18px;

  padding-top:15px;

  border-top:
    1px solid
    rgba(9,61,82,.12);

  color:var(--navy) !important;

  font-size:10px;
  font-weight:800;
}


.keat02__restaurant--cave
.keat02__simple-link{
  border-color:
    rgba(255,255,255,.12);

  color:#FFF !important;
}


/* =========================================================
   PRICE NOTE
========================================================= */

.keat02__price-note{
  display:grid;

  grid-template-columns:
    minmax(250px,.6fr)
    minmax(0,1.4fr);

  align-items:center;

  gap:
    clamp(25px,5vw,65px);

  margin-top:16px;

  padding:22px 25px;

  border-radius:17px;

  background:var(--sage);
}


.keat02__price-note small{
  display:block;

  color:var(--green);

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.keat02__price-note strong{
  display:block;

  margin-top:7px;

  color:var(--navy);

  font-size:16px;
}


.keat02__price-note > p{
  color:var(--text);

  font-size:11px;

  line-height:1.8;
}


/* =========================================================
   WORDS SECTION
========================================================= */

.keat02__words{
  position:relative;

  margin-top:
    clamp(70px,9vw,115px);

  padding:
    clamp(34px,5vw,55px);

  border-radius:28px;

  background:
    radial-gradient(
      circle at 100% 0,
      rgba(166,124,55,.19),
      transparent 30%
    ),
    var(--navy-deep);

  color:#FFF;

  overflow:visible;
}


.keat02__words-head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(310px,.6fr);

  align-items:end;

  gap:
    clamp(30px,6vw,80px);
}


.keat02__words-head > div > p{
  color:#E5B66C;

  font:
    900 10px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.keat02 .keat02__words-head h3{
  margin-top:10px !important;

  color:#FFF !important;

  font-size:
    clamp(30px,4vw,51px) !important;

  font-weight:800 !important;

  line-height:1.38 !important;

  letter-spacing:-.05em !important;
}


.keat02__words-head > p{
  color:
    rgba(255,255,255,.68);

  font-size:12px;

  line-height:1.9;
}


/* =========================================================
   WORD NAV
========================================================= */

.keat02__word-nav-wrap{
  position:relative;

  z-index:30;

  margin-top:29px;
}


.keat02__word-nav{
  display:grid;

  grid-template-columns:
    1fr 1fr;

  width:min(600px,100%);

  gap:5px;

  padding:5px;

  border-radius:15px;

  background:
    rgba(255,255,255,.08);
}


.keat02__word-nav button{
  min-height:59px;

  padding:9px 14px;

  border-radius:11px;

  background:transparent;

  color:
    rgba(255,255,255,.54);

  text-align:left;

  cursor:pointer;

  transition:
    background .18s ease,
    color .18s ease;
}


.keat02__word-nav button.is-active{
  background:#FFF;

  color:var(--navy);
}


.keat02__word-nav small{
  display:block;

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.09em;
}


.keat02__word-nav strong{
  display:block;

  margin-top:6px;

  font:
    900 12px/1
    Arial,
    sans-serif;

  letter-spacing:.04em;
}


/* =========================================================
   LANGUAGE SECTIONS
========================================================= */

.keat02__language{
  margin-top:30px;

  scroll-margin-top:145px;
}


.keat02__language + .keat02__language{
  margin-top:55px;

  padding-top:45px;

  border-top:
    1px solid
    rgba(255,255,255,.11);
}


.keat02__language-head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(280px,.55fr);

  align-items:end;

  gap:
    25px
    55px;

  margin-bottom:20px;
}


.keat02__language-head > div{
  display:flex;

  align-items:center;

  gap:14px;
}


.keat02__language-head > div > span{
  display:grid;

  place-items:center;

  width:38px;
  height:38px;

  flex:none;

  border-radius:50%;

  background:var(--orange);

  color:#FFF;

  font:
    900 9px/1
    Arial,
    sans-serif;
}


.keat02__language-head small{
  display:block;

  color:#D8B36F;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.keat02 .keat02__language-head h4{
  margin-top:6px !important;

  color:#FFF !important;

  font-size:23px !important;

  font-weight:800 !important;

  line-height:1.4 !important;
}


.keat02__language-head > p{
  color:
    rgba(255,255,255,.59);

  font-size:10px;

  line-height:1.8;
}


/* =========================================================
   ENGLISH
========================================================= */

.keat02__english-grid{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:7px;
}


.keat02__english-card{
  position:relative;

  min-height:175px;

  padding:21px 20px;

  border:
    1px solid
    rgba(255,255,255,.11);

  border-radius:16px;

  background:
    rgba(255,255,255,.055);
}


.keat02__english-card--important{
  border-color:
    rgba(223,178,103,.45);

  background:
    rgba(166,124,55,.14);
}


.keat02__english-card > small{
  color:#DEB56D;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.keat02__english-card > strong{
  display:block;

  margin-top:16px;

  color:#FFF;

  font-size:15px;

  font-weight:800;

  line-height:1.55;
}


.keat02__english-card > p{
  margin-top:10px !important;

  color:
    rgba(255,255,255,.65);

  font-size:11px;

  line-height:1.7;
}


.keat02__important{
  position:absolute;

  top:16px;
  right:16px;

  padding:5px 7px;

  border-radius:999px;

  background:var(--orange);

  color:#FFF;

  font:
    900 7px/1
    Arial,
    sans-serif;
}


/* =========================================================
   ALLERGY NOTE
========================================================= */

.keat02__allergy-note{
  display:grid;

  grid-template-columns:
    auto
    minmax(250px,.65fr)
    minmax(0,1.35fr);

  align-items:center;

  gap:
    18px
    30px;

  margin-top:10px;

  padding:
    20px
    22px;

  border-radius:15px;

  background:#F1E3CF;

  color:var(--navy);
}


.keat02__allergy-icon{
  display:grid;

  place-items:center;

  width:45px;
  height:45px;

  border-radius:50%;

  background:var(--orange);

  color:#FFF;

  font:
    900 18px/1
    Georgia,
    serif;
}


.keat02__allergy-note small{
  display:block;

  color:var(--orange);

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.keat02__allergy-note strong{
  display:block;

  margin-top:5px;

  font-size:13px;
}


.keat02__allergy-note > p{
  color:#657673;

  font-size:10px;

  line-height:1.75;
}


/* =========================================================
   SWAHILI
========================================================= */

.keat02__swahili-rail{
  display:grid;

  grid-template-columns:
    repeat(5,minmax(0,1fr));

  gap:7px;
}


.keat02__swahili{
  position:relative;

  min-height:225px;

  padding:
    21px
    19px;

  border:
    1px solid
    rgba(255,255,255,.12);

  border-radius:16px;

  background:
    rgba(255,255,255,.055);

  color:#FFF;

  text-align:left;

  cursor:pointer;

  transition:
    transform .18s ease,
    background .18s ease;
}


.keat02__swahili:hover{
  transform:translateY(-3px);
}


.keat02__swahili--hero{
  border-color:
    rgba(222,178,103,.43);

  background:
    rgba(166,124,55,.16);
}


.keat02__swahili.is-copied{
  background:
    rgba(166,124,55,.25);

  border-color:#DDB46E;
}


.keat02__swahili > span{
  position:absolute;

  top:17px;
  right:17px;

  color:
    rgba(255,255,255,.24);

  font:
    italic 700 18px/1
    Georgia,
    serif;
}


.keat02__swahili > small{
  color:#DDB36A;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.keat02__swahili > strong{
  display:block;

  margin-top:18px;

  color:#FFF;

  font:
    800 21px/1.4
    Arial,
    sans-serif;
}


.keat02__swahili > em{
  display:block;

  margin-top:9px;

  color:#D6B77B;

  font-size:10px;

  font-style:normal;

  font-weight:800;
}


.keat02__swahili > p{
  margin-top:11px !important;

  color:
    rgba(255,255,255,.65);

  font-size:11px;
}


.keat02__swahili > i{
  position:absolute;

  left:19px;
  bottom:15px;

  color:
    rgba(255,255,255,.28);

  font:
    normal 800 7px/1
    Arial,
    sans-serif;
}


.keat02__copy-status{
  min-height:18px;

  margin-top:9px !important;

  color:#DEB86F;

  font-size:9px;

  font-weight:800;
}


.keat02__pronunciation{
  display:flex;

  align-items:flex-start;

  gap:16px;

  margin-top:12px;

  padding-top:15px;

  border-top:
    1px solid
    rgba(255,255,255,.09);
}


.keat02__pronunciation strong{
  flex:none;

  color:#DDB36D;

  font:
    900 8px/1.6
    Arial,
    sans-serif;
}


.keat02__pronunciation p{
  color:
    rgba(255,255,255,.48);

  font-size:9px;

  line-height:1.7;
}


/* =========================================================
   NEXT
========================================================= */

.keat02__next{
  display:grid;

  grid-template-columns:
    minmax(270px,.8fr)
    minmax(300px,1fr)
    auto;

  align-items:center;

  gap:
    clamp(25px,5vw,60px);

  margin-top:22px;

  padding:26px 28px;

  border-radius:19px;

  background:#F1E4D0;
}


.keat02__next small{
  color:var(--orange);

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.keat02 .keat02__next h3{
  margin-top:7px !important;

  color:var(--navy) !important;

  font-size:20px !important;

  font-weight:800 !important;

  line-height:1.5 !important;
}


.keat02__next > p{
  color:var(--text);

  font-size:11px;

  line-height:1.8;
}


.keat02__next > a{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:20px;

  min-width:190px;

  padding:12px 16px;

  border-radius:999px;

  background:var(--orange);

  color:#FFF !important;

  font-size:10px;

  font-weight:800;
}


/* =========================================================
   FOOTER
========================================================= */

.keat02__footer{
  display:grid;

  grid-template-columns:
    auto
    1fr
    1fr;

  gap:
    15px
    30px;

  margin-top:26px;

  padding-top:21px;

  border-top:
    1px solid
    var(--border);
}


.keat02__footer strong{
  color:#778985;

  font:
    900 8px/1.6
    Arial,
    sans-serif;
}


.keat02__footer p{
  color:#929C98;

  font-size:9px;

  line-height:1.75;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .keat02__header,
  .keat02__words-head{
    grid-template-columns:1fr;

    gap:18px;
  }


  .keat02__restaurant--wide,
  .keat02__restaurant--compact{
    grid-column:span 6;
  }


  .keat02__english-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .keat02__swahili-rail{
    grid-template-columns:
      repeat(3,minmax(0,1fr));
  }


  .keat02__next{
    grid-template-columns:
      1fr 1fr;
  }


  .keat02__next > a{
    grid-column:1/-1;

    width:max-content;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .keat02__grid{
    display:block;
  }


  .keat02__restaurant{
    margin-bottom:9px;
  }


  .keat02__coast-head{
    margin:
      42px 0
      12px;
  }


  .keat02__photo,
  .keat02__restaurant--compact
  .keat02__photo{
    height:320px;
  }


  .keat02__price-note{
    grid-template-columns:1fr;

    gap:12px;
  }


  /* =====================================
     STICKY WORD MENU
  ====================================== */

  .keat02__word-nav-wrap{
    position:sticky;

    z-index:50;

    top:var(--mobile-header);

    margin:
      24px
      -14px
      0;

    padding:
      8px
      14px;

    background:
      rgba(5,46,61,.96);

    border-bottom:
      1px solid
      rgba(255,255,255,.08);

    box-shadow:
      0 9px 24px
      rgba(0,0,0,.15);

    backdrop-filter:
      blur(12px);
  }


  .keat02__word-nav{
    width:100%;

    margin:0;
  }


  /*
    sticky menuぶん
    アンカー位置を下げる
  */
  .keat02__language{
    scroll-margin-top:
      calc(
        var(--mobile-header) + 85px
      );
  }


  .keat02__language-head{
    grid-template-columns:1fr;

    gap:10px;
  }


  .keat02__english-grid{
    grid-template-columns:1fr;
  }


  .keat02__english-card{
    min-height:0;
  }


  .keat02__allergy-note{
    grid-template-columns:
      auto
      1fr;
  }


  .keat02__allergy-note > p{
    grid-column:1/-1;
  }


  /* =====================================
     SWAHILI = 横スワイプ
  ====================================== */

  .keat02__swahili-rail{
    display:flex;

    width:
      calc(100% + 25px);

    margin-right:-25px;

    padding:
      3px
      25px
      12px
      0;

    gap:8px;

    overflow-x:auto;

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .keat02__swahili-rail::-webkit-scrollbar{
    display:none;
  }


  .keat02__swahili{
    flex:
      0 0
      min(70vw,255px);

    scroll-snap-align:start;
  }


  .keat02__next{
    grid-template-columns:1fr;

    gap:14px;
  }


  .keat02__next > a{
    grid-column:auto;

    width:100%;
  }


  .keat02__footer{
    grid-template-columns:1fr;

    gap:10px;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .keat02__inner{
    width:
      calc(100% - 32px);

    padding:
      68px
      0
      74px;
  }


  /* HEADER */

  .keat02 .keat02__title{
    font-size:
      clamp(
        35px,
        10.5vw,
        45px
      ) !important;

    line-height:
      1.34 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .keat02__title br{
    display:none;
  }


  .keat02__intro > p{
    font-size:13px;
  }


  /* RESTAURANTS */

  .keat02__restaurant{
    border-radius:20px;
  }


  .keat02__photo,
  .keat02__restaurant--compact
  .keat02__photo{
    height:min(64vw,300px);
  }


  .keat02__content{
    padding:
      25px
      21px;
  }


  .keat02
  .keat02__content h3,
  .keat02__restaurant--compact
  .keat02__content h3{
    font-size:27px !important;
  }


  .keat02__lead{
    font-size:12px;
  }


  .keat02__restaurant-foot{
    display:block;
  }


  .keat02__restaurant-foot a{
    width:100%;

    margin-top:15px;

    justify-content:space-between;
  }


  /* WORD SECTION */

  .keat02__words{
    padding:
      29px
      20px;

    border-radius:21px;
  }


  .keat02
  .keat02__words-head h3{
    font-size:30px !important;
  }


  .keat02__words-head > p{
    font-size:11px;
  }


  /*
    ネイビーセクション端まで
    stickyナビを伸ばす
  */
  .keat02__word-nav-wrap{
    margin-left:-20px;
    margin-right:-20px;

    padding-left:20px;
    padding-right:20px;
  }


  .keat02__word-nav button{
    min-height:56px;

    padding:
      9px
      10px;
  }


  .keat02__word-nav small{
    font-size:7px;
  }


  .keat02__word-nav strong{
    font-size:10px;
  }


  /* LANGUAGE */

  .keat02__language{
    margin-top:27px;
  }


  .keat02__language + .keat02__language{
    margin-top:42px;

    padding-top:35px;
  }


  .keat02__language-head > div > span{
    width:34px;
    height:34px;
  }


  .keat02
  .keat02__language-head h4{
    font-size:20px !important;
  }


  /* ENGLISH */

  .keat02__english-card{
    padding:
      19px
      18px;
  }


  .keat02__english-card > strong{
    font-size:15px;
  }


  .keat02__english-card > p{
    font-size:11px;
  }


  .keat02__allergy-note{
    padding:
      18px
      17px;
  }


  /* SWAHILI */

  .keat02__swahili-rail{
    width:
      calc(100% + 20px);

    margin-right:-20px;

    padding-right:20px;
  }


  .keat02__swahili{
    flex-basis:
      min(76vw,250px);
  }


  .keat02__swahili > strong{
    font-size:22px;
  }


  .keat02__pronunciation{
    display:block;
  }


  .keat02__pronunciation p{
    margin-top:6px !important;
  }


  /* NEXT */

  .keat02__next{
    padding:
      23px
      20px;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .keat02__inner{
    width:
      calc(100% - 28px);
  }


  .keat02__swahili{
    flex-basis:80vw;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .keat02__restaurant{
    opacity:1;

    transform:none;

    transition:none;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-975374c *//* =========================================================
   KPACK01
   PACK FOR KENYA
========================================================= */

.kpack01{
  --navy:#093D52;
  --navy-deep:#052E3D;

  --gold:#A67C37;
  --orange:#BD6637;
  --green:#5A7058;

  --cream:#FFFAF1;
  --paper:#F2E8D8;
  --sage:#E9F0E9;

  --text:#617572;
  --border:#DED7CB;

  /*
    サイトの固定ヘッダー高さ。
    必要ならここだけ変更。
  */
  --mobile-header:64px;

  width:100%;
  max-width:100%;

  overflow:visible;

  background:
    radial-gradient(
      circle at 8% 10%,
      rgba(166,124,55,.08),
      transparent 25%
    ),
    var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.kpack01,
.kpack01 *,
.kpack01 *::before,
.kpack01 *::after{
  box-sizing:border-box;
}


.kpack01 :is(
  h2,
  h3,
  h4,
  p,
  figure
){
  margin:0;
  padding:0;
}


.kpack01 button,
.kpack01 a{
  font:inherit;
}


.kpack01 button{
  border:0;
}


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


.kpack01 svg{
  display:block;
}


/* =========================================================
   INNER
========================================================= */

.kpack01__inner{
  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(80px,9vw,120px)
    0
    clamp(76px,8vw,108px);
}


/* =========================================================
   HEADER
========================================================= */

.kpack01__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.72fr);

  align-items:end;

  gap:clamp(35px,7vw,95px);

  margin-bottom:38px;
}


.kpack01__header > *{
  min-width:0;
}


.kpack01__kicker{
  display:flex;
  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:12px;
  font-weight:900;

  letter-spacing:.13em;
}


.kpack01__kicker::before{
  content:"";

  width:36px;
  height:3px;

  border-radius:999px;

  background:var(--orange);
}


.kpack01 .kpack01__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(43px,5.2vw,70px) !important;

  font-weight:800 !important;

  line-height:1.28 !important;

  letter-spacing:-.062em !important;

  word-break:keep-all;
}


.kpack01__intro > p{
  color:var(--text);

  font-size:14px;
  line-height:2;
}


.kpack01__checked{
  display:inline-flex;

  align-items:center;

  gap:7px;

  margin-top:18px;

  padding:8px 12px;

  border:
    1px solid
    var(--border);

  border-radius:999px;

  background:#FFF;
}


.kpack01__checked > span{
  display:grid;

  place-items:center;

  width:20px;
  height:20px;

  border-radius:50%;

  background:var(--green);

  color:#FFF;

  font-size:10px;
}


.kpack01__checked small,
.kpack01__checked strong{
  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.06em;
}


.kpack01__checked small{
  color:#899492;
}


.kpack01__checked strong{
  color:var(--navy);
}


/* =========================================================
   BASIC
========================================================= */

.kpack01__basic{
  padding:
    clamp(25px,4vw,38px);

  border:
    1px solid
    var(--border);

  border-radius:24px;

  background:#FFF;
}


.kpack01__basic-head{
  display:flex;

  align-items:end;
  justify-content:space-between;

  gap:30px;

  margin-bottom:22px;
}


.kpack01__basic-head small{
  color:var(--orange);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kpack01 .kpack01__basic-head h3{
  margin-top:7px !important;

  color:var(--navy) !important;

  font-size:
    clamp(21px,2.5vw,30px) !important;

  font-weight:800 !important;
}


.kpack01__basic-head > p{
  color:#87928F;

  font-size:10px;
}


.kpack01__basic-grid{
  display:grid;

  grid-template-columns:
    repeat(4,minmax(0,1fr));

  gap:7px;
}


.kpack01__basic-item{
  position:relative;

  display:grid;

  grid-template-columns:
    auto 1fr auto;

  gap:12px;

  min-width:0;

  padding:
    17px
    16px;

  border-radius:14px;

  background:#F8F5EE;

  transition:
    opacity .18s ease,
    background .18s ease;
}


.kpack01__basic-no{
  color:#B8AC9B;

  font:
    italic 700 14px/1
    Georgia,
    serif;
}


.kpack01__basic-item small{
  display:block;

  color:#A08667;

  font:
    900 7px/1
    Arial,
    sans-serif;
}


.kpack01__basic-item strong{
  display:block;

  margin-top:6px;

  color:var(--navy);

  font-size:11px;

  font-weight:800;
}


.kpack01__basic-item p{
  margin-top:6px !important;

  color:#778783;

  font-size:9px;

  line-height:1.6;
}


/* =========================================================
   CHECK
========================================================= */

.kpack01__check{
  display:grid;

  place-items:center;

  width:28px;
  height:28px;

  flex:none;

  border:
    1px solid
    #D1C8BA;

  border-radius:50%;

  background:#FFF;

  color:transparent;

  cursor:pointer;

  transition:
    color .18s ease,
    background .18s ease,
    border-color .18s ease,
    transform .18s ease;
}


.kpack01__check:hover{
  transform:scale(1.06);
}


.kpack01__check span{
  font-size:11px;

  font-weight:900;
}


.kpack01__check[aria-pressed="true"]{
  border-color:var(--green);

  background:var(--green);

  color:#FFF;
}


[data-kpack-item].is-packed{
  opacity:.63;
}


.kpack01__card.is-packed{
  border-color:
    rgba(90,112,88,.37);
}


/* =========================================================
   SPECIFIC INTRO
========================================================= */

.kpack01__specific-intro{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(320px,.7fr);

  align-items:end;

  gap:
    clamp(30px,7vw,90px);

  margin-top:
    clamp(75px,9vw,115px);
}


.kpack01__specific-intro small{
  color:var(--orange);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kpack01 .kpack01__specific-intro h3{
  margin-top:10px !important;

  color:var(--navy) !important;

  font-size:
    clamp(31px,4vw,51px) !important;

  font-weight:800 !important;

  line-height:1.38 !important;

  letter-spacing:-.05em !important;
}


.kpack01__specific-intro > p{
  color:var(--text);

  font-size:12px;

  line-height:1.9;
}


/* =========================================================
   NAV
========================================================= */

.kpack01__nav-wrap{
  position:relative;

  z-index:30;

  margin-top:28px;
}


.kpack01__nav{
  display:grid;

  grid-template-columns:
    repeat(4,minmax(0,1fr));

  gap:6px;

  padding:6px;

  border-radius:16px;

  background:var(--navy-deep);
}


.kpack01__nav button{
  display:flex;

  align-items:center;

  gap:9px;

  min-height:54px;

  padding:
    10px
    13px;

  border-radius:11px;

  background:transparent;

  color:
    rgba(255,255,255,.55);

  text-align:left;

  cursor:pointer;
}


.kpack01__nav button.is-active{
  background:#FFF;

  color:var(--navy);
}


.kpack01__nav span{
  font:
    italic 700 12px/1
    Georgia,
    serif;
}


.kpack01__nav strong{
  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.06em;
}


/* =========================================================
   BODY
========================================================= */

.kpack01__body{
  display:grid;

  grid-template-columns:
    minmax(280px,.36fr)
    minmax(0,.64fr);

  align-items:start;

  gap:
    clamp(22px,5vw,60px);

  margin-top:19px;
}


/* =========================================================
   MAP
========================================================= */

.kpack01__map{
  position:sticky;

  top:100px;
}


.kpack01__map-inner{
  padding:
    25px
    23px;

  overflow:hidden;

  border-radius:24px;

  background:
    radial-gradient(
      circle at 70% 25%,
      rgba(166,124,55,.18),
      transparent 30%
    ),
    var(--navy-deep);

  color:#FFF;
}


.kpack01__map-top{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:15px;
}


.kpack01__map-top small{
  color:#D9B16D;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.kpack01__map-top strong{
  color:
    rgba(255,255,255,.43);

  font:
    800 7px/1
    Arial,
    sans-serif;
}


.kpack01__suitcase{
  position:relative;

  width:min(100%,310px);

  margin:
    18px auto
    8px;
}


.kpack01__suitcase > svg{
  width:100%;
  height:auto;

  fill:none;

  stroke-linecap:round;
  stroke-linejoin:round;
}


.kpack01__svg-main{
  stroke:
    rgba(255,255,255,.64);

  stroke-width:2;
}


.kpack01__svg-soft{
  stroke:
    rgba(255,255,255,.28);

  stroke-width:2;
}


.kpack01__svg-accent{
  stroke:#DAB36F;

  stroke-width:2.5;
}


.kpack01__tag{
  position:absolute;

  padding:
    6px
    8px;

  border:
    1px solid
    rgba(255,255,255,.12);

  border-radius:999px;

  background:
    rgba(255,255,255,.07);

  color:
    rgba(255,255,255,.7);

  font:
    800 7px/1
    Arial,
    sans-serif;

  letter-spacing:.07em;

  backdrop-filter:blur(5px);
}


.kpack01__tag--one{
  top:24%;
  left:0;
}


.kpack01__tag--two{
  top:40%;
  right:-4px;
}


.kpack01__tag--three{
  bottom:26%;
  left:2%;
}


.kpack01__tag--four{
  right:1%;
  bottom:14%;
}


.kpack01__map-copy{
  padding-top:17px !important;

  border-top:
    1px solid
    rgba(255,255,255,.09);

  color:
    rgba(255,255,255,.57);

  font-size:10px;

  line-height:1.8;
}


/* =========================================================
   SECTIONS
========================================================= */

.kpack01__section{
  scroll-margin-top:155px;
}


.kpack01__section +
.kpack01__section{
  margin-top:55px;

  padding-top:45px;

  border-top:
    1px solid
    var(--border);
}


.kpack01__section-head{
  display:flex;

  align-items:center;

  gap:13px;

  margin-bottom:15px;
}


.kpack01__section-no{
  display:grid;

  place-items:center;

  width:39px;
  height:39px;

  flex:none;

  border-radius:50%;

  background:var(--orange);

  color:#FFF;

  font:
    900 9px/1
    Arial,
    sans-serif;
}


.kpack01__section-head small{
  display:block;

  color:#9B876C;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.kpack01 .kpack01__section-head h3{
  margin-top:5px !important;

  color:var(--navy) !important;

  font-size:23px !important;

  font-weight:800 !important;
}


/* =========================================================
   CARD
========================================================= */

.kpack01__card{
  position:relative;

  display:grid;

  grid-template-columns:
    82px
    minmax(0,1fr)
    auto;

  gap:
    18px
    20px;

  min-width:0;

  padding:
    24px
    22px;

  margin-top:8px;

  border:
    1px solid
    var(--border);

  border-radius:20px;

  background:#FFF;

  opacity:0;

  transform:translateY(15px);

  transition:
    opacity .45s ease,
    transform .45s ease,
    border-color .18s ease;
}


.kpack01__card.is-visible{
  opacity:1;

  transform:none;
}


.kpack01__card--feature{
  background:var(--navy);

  border-color:var(--navy);

  color:#FFF;
}


.kpack01__card--warning{
  background:#F5E8D7;

  border-color:
    rgba(189,102,55,.22);
}


.kpack01__icon{
  display:grid;

  place-items:center;

  width:82px;
  height:82px;

  border-radius:21px;

  background:var(--paper);

  color:var(--orange);
}


.kpack01__card--feature
.kpack01__icon{
  background:
    rgba(255,255,255,.08);

  color:#DBB570;
}


.kpack01__icon svg{
  width:51px;
  height:51px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.8;

  stroke-linecap:round;
  stroke-linejoin:round;
}


.kpack01__card-content{
  min-width:0;
}


.kpack01__card-top{
  display:flex;

  align-items:start;
  justify-content:space-between;

  gap:15px;
}


.kpack01__card-top p{
  color:#A18766;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.kpack01__card--feature
.kpack01__card-top p{
  color:#DEB46C;
}


.kpack01 .kpack01__card h4{
  margin-top:6px !important;

  color:var(--navy) !important;

  font-size:
    clamp(18px,2vw,23px) !important;

  font-weight:800 !important;

  line-height:1.45 !important;
}


.kpack01__card--feature h4{
  color:#FFF !important;
}


.kpack01__why{
  flex:none;

  padding:
    6px
    8px;

  border-radius:999px;

  background:
    rgba(189,102,55,.1);

  color:var(--orange);

  font:
    900 7px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kpack01__card--feature
.kpack01__why{
  background:
    rgba(255,255,255,.08);

  color:#E0B972;
}


.kpack01__reason{
  margin-top:13px !important;

  color:var(--text);

  font-size:11px;

  line-height:1.85;
}


.kpack01__card--feature
.kpack01__reason{
  color:
    rgba(255,255,255,.71);
}


/* =========================================================
   FACT / TIP
========================================================= */

.kpack01__fact,
.kpack01__tip{
  display:flex;

  align-items:baseline;

  flex-wrap:wrap;

  gap:6px 10px;

  margin-top:17px;

  padding:
    14px
    15px;

  border-radius:13px;

  background:
    rgba(9,61,82,.055);
}


.kpack01__card--feature
.kpack01__fact{
  background:
    rgba(255,255,255,.07);
}


.kpack01__fact small,
.kpack01__tip small{
  width:100%;

  color:#A08B6D;

  font:
    900 7px/1
    Arial,
    sans-serif;
}


.kpack01__card--feature
.kpack01__fact small{
  color:#D9B36E;
}


.kpack01__fact strong{
  color:var(--orange);

  font-size:22px;

  font-weight:900;
}


.kpack01__card--feature
.kpack01__fact strong{
  color:#F0C477;
}


.kpack01__fact span{
  color:#71817E;

  font-size:9px;
}


.kpack01__card--feature
.kpack01__fact span{
  color:
    rgba(255,255,255,.6);
}


.kpack01__tip strong{
  color:var(--navy);

  font-size:11px;

  font-weight:800;
}


/* =========================================================
   WHEN
========================================================= */

.kpack01__when{
  display:flex;

  align-items:center;

  gap:10px;

  margin-top:16px;
}


.kpack01__when span{
  color:#9A8A73;

  font:
    900 7px/1
    Arial,
    sans-serif;
}


.kpack01__when strong{
  color:var(--green);

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.07em;
}


.kpack01__card--feature
.kpack01__when span{
  color:
    rgba(255,255,255,.38);
}


.kpack01__card--feature
.kpack01__when strong{
  color:#DAB56F;
}


.kpack01__check--card{
  align-self:start;
}


/* =========================================================
   MESSAGE
========================================================= */

.kpack01__message{
  display:grid;

  grid-template-columns:
    minmax(270px,.75fr)
    minmax(0,1.25fr);

  align-items:center;

  gap:
    clamp(30px,6vw,80px);

  margin-top:
    clamp(70px,9vw,110px);

  padding:
    clamp(30px,5vw,48px);

  border-radius:24px;

  background:
    radial-gradient(
      circle at 100% 0,
      rgba(166,124,55,.2),
      transparent 35%
    ),
    var(--navy-deep);

  color:#FFF;
}


.kpack01__message small{
  color:#DDB36D;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.kpack01 .kpack01__message h3{
  margin-top:8px !important;

  color:#FFF !important;

  font-size:
    clamp(25px,3vw,37px) !important;

  font-weight:800 !important;

  line-height:1.45 !important;
}


.kpack01__message > p{
  color:
    rgba(255,255,255,.68);

  font-size:12px;

  line-height:1.95;
}


/* =========================================================
   SOURCES
========================================================= */

.kpack01__sources{
  display:grid;

  grid-template-columns:
    minmax(230px,.5fr)
    minmax(0,1.5fr);

  gap:
    25px
    50px;

  margin-top:25px;

  padding-top:21px;

  border-top:
    1px solid
    var(--border);
}


.kpack01__sources strong{
  color:#798985;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.kpack01__sources p{
  margin-top:7px !important;

  color:#909B97;

  font-size:9px;

  line-height:1.7;
}


.kpack01__source-links{
  display:flex;

  align-items:flex-start;

  justify-content:flex-end;

  flex-wrap:wrap;

  gap:6px;
}


.kpack01__source-links a{
  padding:
    7px
    9px;

  border:
    1px solid
    var(--border);

  border-radius:999px;

  color:#788985 !important;

  font-size:8px;

  font-weight:800;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .kpack01__header,
  .kpack01__specific-intro{
    grid-template-columns:1fr;

    gap:17px;
  }


  .kpack01__basic-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .kpack01__body{
    grid-template-columns:
      minmax(250px,.35fr)
      minmax(0,.65fr);
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .kpack01__basic-head{
    display:block;
  }


  .kpack01__basic-head > p{
    margin-top:8px !important;
  }


  .kpack01__basic-grid{
    grid-template-columns:1fr;
  }


  /* =====================================
     STICKY MENU
  ====================================== */

  .kpack01__nav-wrap{
    position:sticky;

    z-index:50;

    top:var(--mobile-header);

    width:
      calc(100% + 32px);

    margin:
      24px
      -16px
      0;

    padding:
      8px
      16px;

    background:
      rgba(255,250,241,.96);

    border-bottom:
      1px solid
      rgba(9,61,82,.08);

    box-shadow:
      0 8px 24px
      rgba(37,50,45,.08);

    backdrop-filter:
      blur(12px);
  }


  .kpack01__nav{
    display:flex;

    width:100%;

    padding:5px;

    gap:4px;

    overflow-x:auto;

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .kpack01__nav::-webkit-scrollbar{
    display:none;
  }


  .kpack01__nav button{
    flex:
      0 0
      min(37vw,145px);

    min-height:50px;

    padding:
      9px
      10px;

    scroll-snap-align:center;
  }


  /* BODY */

  .kpack01__body{
    display:block;

    margin-top:15px;
  }


  /*
    スマホではPACKING MAPを
    コンパクトな導入表示にする
  */

  .kpack01__map{
    position:relative;

    top:auto;

    margin-bottom:30px;
  }


  .kpack01__map-inner{
    padding:
      20px
      18px;
  }


  .kpack01__suitcase{
    width:230px;
  }


  .kpack01__map-copy{
    text-align:center;
  }


  .kpack01__section{
    scroll-margin-top:
      calc(
        var(--mobile-header) + 83px
      );
  }


  /* CARD */

  .kpack01__card{
    grid-template-columns:
      66px
      minmax(0,1fr)
      auto;

    gap:
      15px
      14px;

    padding:
      20px
      18px;
  }


  .kpack01__icon{
    width:66px;
    height:66px;

    border-radius:18px;
  }


  .kpack01__icon svg{
    width:42px;
    height:42px;
  }


  .kpack01__message{
    grid-template-columns:1fr;

    gap:15px;
  }


  .kpack01__sources{
    grid-template-columns:1fr;
  }


  .kpack01__source-links{
    justify-content:flex-start;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .kpack01__inner{
    width:
      calc(100% - 32px);

    padding:
      68px
      0
      74px;
  }


  /* TITLE */

  .kpack01 .kpack01__title{
    font-size:
      clamp(
        35px,
        10.4vw,
        45px
      ) !important;

    line-height:
      1.34 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .kpack01__title br{
    display:none;
  }


  .kpack01__intro > p{
    font-size:13px;
  }


  /* BASIC */

  .kpack01__basic{
    padding:
      22px
      18px;

    border-radius:20px;
  }


  .kpack01__basic-item{
    grid-template-columns:
      24px
      minmax(0,1fr)
      auto;
  }


  /* SPECIFIC */

  .kpack01
  .kpack01__specific-intro h3{
    font-size:30px !important;
  }


  /* STICKY NAV */

  .kpack01__nav button{
    flex-basis:
      min(42vw,145px);
  }


  .kpack01__nav strong{
    font-size:8px;
  }


  /* MAP */

  .kpack01__suitcase{
    width:205px;
  }


  .kpack01__tag{
    font-size:6px;
  }


  /* CARD */

  .kpack01__card{
    display:grid;

    grid-template-columns:
      54px
      minmax(0,1fr)
      auto;

    padding:
      19px
      16px;

    border-radius:18px;
  }


  .kpack01__icon{
    width:54px;
    height:54px;

    border-radius:15px;
  }


  .kpack01__icon svg{
    width:35px;
    height:35px;
  }


  .kpack01__card-top{
    display:block;
  }


  .kpack01__why{
    display:inline-flex;

    margin-top:8px;
  }


  .kpack01
  .kpack01__card h4{
    font-size:18px !important;
  }


  .kpack01__reason{
    font-size:11px;
  }


  /*
    本文・WHEN・FACTは
    アイコンの下まで使う
  */

  .kpack01__card-content{
    grid-column:2;
  }


  .kpack01__fact,
  .kpack01__tip{
    padding:
      13px
      12px;
  }


  .kpack01__section +
  .kpack01__section{
    margin-top:43px;

    padding-top:35px;
  }


  .kpack01
  .kpack01__section-head h3{
    font-size:21px !important;
  }


  /* MESSAGE */

  .kpack01__message{
    padding:
      27px
      21px;

    border-radius:21px;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .kpack01__inner{
    width:
      calc(100% - 28px);
  }


  .kpack01__nav-wrap{
    width:
      calc(100% + 28px);

    margin-left:-14px;
    margin-right:-14px;

    padding-left:14px;
    padding-right:14px;
  }


  .kpack01__nav button{
    flex-basis:46vw;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .kpack01__card{
    opacity:1;

    transform:none;

    transition:none;
  }


  .kpack01 *{
    scroll-behavior:auto !important;
  }

}


/* =========================================================
   ELEMENTOR EDITOR ONLY FIX
   編集画面だけ sticky を解除
   公開ページ・プレビューには影響させない
========================================================= */

body.elementor-editor-active .kpack01__map{
  position:relative !important;
  top:auto !important;
  inset:auto !important;
}


body.elementor-editor-active .kpack01__nav-wrap{
  position:relative !important;
  top:auto !important;
  inset:auto !important;
}


body.elementor-editor-active .kpack01__body{
  align-items:start !important;
}


/*
  Elementor編集画面で高さ計算が
  おかしくなるケースへの保険
*/
body.elementor-editor-active .kpack01,
body.elementor-editor-active .kpack01__inner,
body.elementor-editor-active .kpack01__body,
body.elementor-editor-active .kpack01__sections{
  overflow:visible !important;
  max-height:none !important;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-96fc736 *//* =========================================================
   JFAQ01
   KENYA TRAVEL FAQ
========================================================= */

.jfaq01{
  --navy:#093D52;
  --navy-deep:#052E3D;

  --gold:#A67C37;
  --orange:#BD6637;
  --green:#5A7058;

  --cream:#FFFAF1;
  --paper:#F2E6D4;
  --sage:#EAF1EB;

  --text:#617572;
  --border:#DED7CB;

  width:100%;
  max-width:100%;

  overflow:hidden;

  background:
    radial-gradient(
      circle at 10% 8%,
      rgba(166,124,55,.08),
      transparent 25%
    ),
    var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.jfaq01,
.jfaq01 *,
.jfaq01 *::before,
.jfaq01 *::after{
  box-sizing:border-box;
}


.jfaq01 :is(
  h2,
  h3,
  p
){
  margin:0;
  padding:0;
}


.jfaq01 button,
.jfaq01 a{
  font:inherit;
}


.jfaq01 button{
  border:0;
}


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


.jfaq01 :is(
  button,
  a
):focus-visible{
  outline:
    3px solid
    rgba(189,102,55,.35);

  outline-offset:3px;
}


/* =========================================================
   INNER
========================================================= */

.jfaq01__inner{
  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(80px,9vw,120px)
    0
    clamp(76px,8vw,108px);
}


/* =========================================================
   HEADER
========================================================= */

.jfaq01__header{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(330px,.7fr);

  align-items:end;

  gap:
    clamp(35px,7vw,95px);

  margin-bottom:
    clamp(38px,5vw,58px);
}


.jfaq01__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:12px;
  font-weight:900;

  letter-spacing:.13em;
}


.jfaq01__kicker::before{
  content:"";

  width:36px;
  height:3px;

  border-radius:999px;

  background:var(--orange);
}


.jfaq01 .jfaq01__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(43px,5.2vw,70px) !important;

  font-weight:800 !important;

  line-height:1.28 !important;

  letter-spacing:-.062em !important;

  word-break:keep-all;
}


.jfaq01__intro > p{
  color:var(--text);

  font-size:14px;

  line-height:2;
}


.jfaq01__update{
  display:inline-flex;

  align-items:center;

  gap:7px;

  margin-top:18px;

  padding:
    8px 11px;

  border:
    1px solid
    var(--border);

  border-radius:999px;

  background:#FFF;
}


.jfaq01__update > span{
  width:7px;
  height:7px;

  border-radius:50%;

  background:#82A399;
}


.jfaq01__update small,
.jfaq01__update strong{
  font:
    800 9px/1
    Arial,
    sans-serif;
}


.jfaq01__update small{
  color:#8A9592;
}


.jfaq01__update strong{
  color:var(--navy);
}


/* =========================================================
   LAYOUT
========================================================= */

.jfaq01__layout{
  display:grid;

  grid-template-columns:
    minmax(280px,.34fr)
    minmax(0,.66fr);

  align-items:start;

  gap:
    clamp(25px,5vw,65px);
}


/* =========================================================
   SIDE CARD
========================================================= */

.jfaq01__side-card{
  position:relative;

  min-height:470px;

  padding:
    27px
    25px;

  overflow:hidden;

  border-radius:25px;

  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(166,124,55,.22),
      transparent 30%
    ),
    var(--navy-deep);

  color:#FFF;
}


.jfaq01__side-card::after{
  content:"KENYA";

  position:absolute;

  right:-13px;
  bottom:-15px;

  color:
    rgba(255,255,255,.03);

  font:
    italic 700 95px/.8
    Georgia,
    serif;
}


.jfaq01__side-top{
  display:flex;

  justify-content:space-between;

  gap:15px;

  color:
    rgba(255,255,255,.48);

  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.jfaq01__side-top small{
  color:#E1B66E;

  font:inherit;
}


.jfaq01__stamp{
  position:relative;

  display:grid;

  place-items:center;

  width:132px;
  height:132px;

  margin:
    45px auto
    40px;

  border:
    2px solid
    rgba(223,181,108,.42);

  border-radius:50%;

  color:
    rgba(223,181,108,.67);

  transform:
    rotate(-8deg);
}


.jfaq01__stamp::before{
  content:"";

  position:absolute;

  inset:9px;

  border:
    1px dashed
    currentColor;

  border-radius:50%;
}


.jfaq01__stamp span,
.jfaq01__stamp strong,
.jfaq01__stamp small{
  position:absolute;
}


.jfaq01__stamp span{
  top:29px;

  font:
    800 8px/1
    Arial,
    sans-serif;
}


.jfaq01__stamp strong{
  font:
    900 28px/1
    Arial,
    sans-serif;
}


.jfaq01__stamp small{
  bottom:29px;

  font:
    800 8px/1
    Arial,
    sans-serif;
}


.jfaq01__side-copy > p:first-child{
  color:#E1B66E;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.jfaq01 .jfaq01__side-copy h3{
  margin-top:8px !important;

  color:#FFF !important;

  font-size:
    clamp(23px,2.6vw,32px) !important;

  font-weight:800 !important;

  line-height:1.45 !important;
}


.jfaq01__side-copy > p:last-child{
  margin-top:14px !important;

  color:
    rgba(255,255,255,.62);

  font-size:10px;

  line-height:1.85;
}


.jfaq01__side-lines{
  display:flex;

  gap:5px;

  margin-top:28px;
}


.jfaq01__side-lines span{
  display:block;

  height:3px;

  border-radius:999px;

  background:
    rgba(255,255,255,.1);
}


.jfaq01__side-lines span:nth-child(1){
  width:48%;
}


.jfaq01__side-lines span:nth-child(2){
  width:28%;
}


.jfaq01__side-lines span:nth-child(3){
  width:14%;

  background:var(--orange);
}


/* =========================================================
   FAQ ITEM
========================================================= */

.jfaq01__item{
  overflow:hidden;

  margin-bottom:8px;

  border:
    1px solid
    var(--border);

  border-radius:19px;

  background:#FFF;

  transition:
    border-color .18s ease,
    box-shadow .18s ease;
}


.jfaq01__item.is-open{
  border-color:
    rgba(166,124,55,.38);

  box-shadow:
    0 12px 30px
    rgba(48,59,51,.055);
}


/* =========================================================
   QUESTION
========================================================= */

.jfaq01__question{
  display:grid;

  grid-template-columns:
    auto
    minmax(0,1fr)
    auto;

  align-items:center;

  gap:
    15px
    20px;

  width:100%;

  padding:
    22px
    22px;

  background:transparent;

  color:var(--navy);

  text-align:left;

  cursor:pointer;
}


.jfaq01__q{
  display:grid;

  place-items:center;

  width:42px;
  height:42px;

  border-radius:50%;

  background:var(--paper);

  color:var(--orange);

  font:
    italic 800 16px/1
    Georgia,
    serif;

  transition:
    background .18s ease,
    color .18s ease;
}


.jfaq01__item.is-open
.jfaq01__q{
  background:var(--orange);

  color:#FFF;
}


.jfaq01__question-main{
  min-width:0;
}


.jfaq01__question-main small{
  display:block;

  color:#A28B6E;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.jfaq01__question-main strong{
  display:block;

  margin-top:7px;

  color:var(--navy);

  font-size:
    clamp(16px,1.75vw,21px);

  font-weight:800;

  line-height:1.55;
}


.jfaq01__toggle{
  display:grid;

  place-items:center;

  width:34px;
  height:34px;

  border:
    1px solid
    var(--border);

  border-radius:50%;

  color:var(--navy);

  font:
    300 21px/1
    Arial,
    sans-serif;

  transition:
    transform .25s ease,
    background .18s ease,
    color .18s ease;
}


.jfaq01__item.is-open
.jfaq01__toggle{
  background:var(--navy);

  color:#FFF;

  transform:rotate(45deg);
}


/* =========================================================
   ANSWER
========================================================= */

.jfaq01__answer{
  overflow:hidden;
}


.jfaq01__answer-inner{
  margin:
    0
    22px
    22px
    77px;

  padding-top:20px;

  border-top:
    1px solid
    #ECE7DD;
}


.jfaq01__answer-inner > p{
  color:var(--text);

  font-size:12px;

  line-height:1.95;
}


.jfaq01__answer-inner > p + p{
  margin-top:10px !important;
}


.jfaq01__fine{
  color:#87938F !important;

  font-size:10px !important;
}


/* =========================================================
   EDITORIAL / IMPORTANT
========================================================= */

.jfaq01__editorial,
.jfaq01__important{
  margin-top:17px;

  padding:
    15px
    16px;

  border-radius:13px;

  background:var(--sage);
}


.jfaq01__important{
  background:#F4E6D5;
}


.jfaq01__editorial small,
.jfaq01__important span{
  display:block;

  color:var(--green);

  font:
    900 7px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.jfaq01__important span{
  color:var(--orange);
}


.jfaq01__editorial strong,
.jfaq01__important strong{
  display:block;

  margin-top:7px;

  color:var(--navy);

  font-size:11px;

  line-height:1.65;
}


/* =========================================================
   ACTIONS
========================================================= */

.jfaq01__actions{
  display:flex;

  flex-wrap:wrap;

  gap:7px;

  margin-top:18px;
}


.jfaq01__actions a,
.jfaq01__actions button,
.jfaq01__back{
  display:inline-flex;

  align-items:center;

  justify-content:space-between;

  gap:18px;

  min-height:38px;

  padding:
    9px
    13px;

  border:
    1px solid
    var(--border);

  border-radius:999px;

  background:#FFF;

  color:var(--navy) !important;

  font-size:9px;

  font-weight:800;

  cursor:pointer;

  transition:
    border-color .18s ease,
    background .18s ease;
}


.jfaq01__back{
  margin-top:18px;
}


.jfaq01__actions a:hover,
.jfaq01__actions button:hover,
.jfaq01__back:hover{
  border-color:
    rgba(189,102,55,.4);

  background:#FBF4EA;
}


/* =========================================================
   OFFICIAL
========================================================= */

.jfaq01__official{
  display:grid;

  grid-template-columns:
    minmax(250px,.34fr)
    minmax(0,.66fr);

  align-items:center;

  gap:
    clamp(25px,5vw,65px);

  margin-top:
    clamp(60px,8vw,95px);

  padding:
    clamp(28px,4vw,42px);

  border-radius:24px;

  background:var(--paper);
}


.jfaq01__official-head small{
  color:var(--orange);

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.jfaq01 .jfaq01__official-head h3{
  margin-top:8px !important;

  color:var(--navy) !important;

  font-size:
    clamp(21px,2.7vw,31px) !important;

  font-weight:800 !important;

  line-height:1.5 !important;
}


.jfaq01__official-links{
  display:grid;

  gap:6px;
}


.jfaq01__official-links a{
  display:grid;

  grid-template-columns:
    auto
    1fr
    auto;

  align-items:center;

  gap:14px;

  min-height:68px;

  padding:
    11px
    14px;

  border:
    1px solid
    rgba(9,61,82,.08);

  border-radius:14px;

  background:
    rgba(255,255,255,.65);

  transition:
    transform .18s ease,
    background .18s ease;
}


.jfaq01__official-links a:hover{
  transform:
    translateX(3px);

  background:#FFF;
}


.jfaq01__official-links
> a > span{
  display:grid;

  place-items:center;

  width:34px;
  height:34px;

  border-radius:50%;

  background:var(--navy);

  color:#FFF;

  font:
    900 8px/1
    Arial,
    sans-serif;
}


.jfaq01__official-links small{
  display:block;

  color:#9B876C;

  font:
    900 7px/1
    Arial,
    sans-serif;
}


.jfaq01__official-links strong{
  display:block;

  margin-top:5px;

  color:var(--navy);

  font-size:11px;

  font-weight:800;
}


.jfaq01__official-links em{
  color:var(--orange);

  font-size:14px;

  font-style:normal;
}


/* =========================================================
   FOOT
========================================================= */

.jfaq01__foot{
  display:grid;

  grid-template-columns:
    auto
    1fr;

  gap:
    15px
    30px;

  margin-top:25px;

  padding-top:20px;

  border-top:
    1px solid
    var(--border);
}


.jfaq01__foot strong{
  color:#7A8A86;

  font:
    900 8px/1.6
    Arial,
    sans-serif;
}


.jfaq01__foot p{
  color:#919C98;

  font-size:9px;

  line-height:1.75;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:950px){

  .jfaq01__header{
    grid-template-columns:1fr;

    gap:18px;
  }


  .jfaq01__layout{
    grid-template-columns:
      minmax(230px,.3fr)
      minmax(0,.7fr);

    gap:22px;
  }


  .jfaq01__official{
    grid-template-columns:1fr;

    gap:20px;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .jfaq01__layout{
    display:block;
  }


  .jfaq01__side{
    margin-bottom:18px;
  }


  .jfaq01__side-card{
    min-height:0;

    display:grid;

    grid-template-columns:
      auto
      1fr;

    align-items:center;

    gap:20px;

    padding:
      23px
      21px;
  }


  .jfaq01__side-top{
    grid-column:1/-1;
  }


  .jfaq01__stamp{
    width:100px;
    height:100px;

    margin:0;
  }


  .jfaq01__stamp span{
    top:21px;
  }


  .jfaq01__stamp small{
    bottom:21px;
  }


  .jfaq01__side-lines{
    grid-column:1/-1;

    margin-top:2px;
  }


  .jfaq01__question{
    padding:
      19px
      17px;
  }


  .jfaq01__answer-inner{
    margin:
      0
      17px
      19px
      72px;
  }


  .jfaq01__foot{
    grid-template-columns:1fr;

    gap:7px;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .jfaq01__inner{
    width:
      calc(100% - 32px);

    padding:
      68px
      0
      74px;
  }


  .jfaq01 .jfaq01__title{
    font-size:
      clamp(
        35px,
        10.5vw,
        45px
      ) !important;

    line-height:
      1.34 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .jfaq01__title br{
    display:none;
  }


  .jfaq01__intro > p{
    font-size:13px;
  }


  /* SIDE */

  .jfaq01__side-card{
    grid-template-columns:
      82px
      1fr;

    border-radius:20px;
  }


  .jfaq01__stamp{
    width:82px;
    height:82px;
  }


  .jfaq01__stamp span{
    top:17px;

    font-size:6px;
  }


  .jfaq01__stamp strong{
    font-size:21px;
  }


  .jfaq01__stamp small{
    bottom:17px;

    font-size:6px;
  }


  .jfaq01
  .jfaq01__side-copy h3{
    font-size:20px !important;
  }


  .jfaq01__side-copy > p:last-child{
    font-size:9px;
  }


  /* FAQ */

  .jfaq01__item{
    border-radius:17px;
  }


  .jfaq01__question{
    grid-template-columns:
      36px
      minmax(0,1fr)
      30px;

    gap:11px;

    padding:
      18px
      14px;
  }


  .jfaq01__q{
    width:36px;
    height:36px;

    font-size:14px;
  }


  .jfaq01__question-main strong{
    font-size:15px;

    line-height:1.55;
  }


  .jfaq01__toggle{
    width:30px;
    height:30px;
  }


  .jfaq01__answer-inner{
    margin:
      0
      15px
      18px;

    padding-top:17px;
  }


  .jfaq01__answer-inner > p{
    font-size:11px;
  }


  .jfaq01__actions{
    display:grid;

    grid-template-columns:1fr;
  }


  .jfaq01__actions a,
  .jfaq01__actions button,
  .jfaq01__back{
    width:100%;
  }


  /* OFFICIAL */

  .jfaq01__official{
    padding:
      25px
      19px;

    border-radius:20px;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .jfaq01__inner{
    width:
      calc(100% - 28px);
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .jfaq01 *,
  .jfaq01 *::before,
  .jfaq01 *::after{
    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-acd0a71 *//* =========================================================
   KCLOSE01
   KENYA TRAVEL CLOSING
========================================================= */

.kclose01{
  --navy:#093D52;
  --navy-deep:#052E3D;
  --night:#032832;

  --gold:#A67C37;
  --orange:#BD6637;
  --green:#5A7058;

  --cream:#FFFAF1;
  --paper:#F0E5D3;
  --sage:#E9F0E9;

  --text:#617572;
  --border:#DED7CB;

  width:100%;
  max-width:100%;

  overflow:hidden;

  background:var(--cream);

  color:var(--navy);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;

  font-size:14px;
  line-height:1.9;
}


.kclose01,
.kclose01 *,
.kclose01 *::before,
.kclose01 *::after{
  box-sizing:border-box;
}


.kclose01 :is(
  h2,
  h3,
  p
){
  margin:0;
  padding:0;
}


.kclose01 button,
.kclose01 a{
  font:inherit;
}


.kclose01 button{
  border:0;
}


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


.kclose01 svg{
  display:block;
}


/* =========================================================
   INNER
========================================================= */

.kclose01__inner{
  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(82px,9vw,120px)
    0
    38px;
}


/* =========================================================
   EXPLORE HEADER
========================================================= */

.kclose01__head{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(320px,.65fr);

  align-items:end;

  gap:
    clamp(35px,7vw,90px);
}


.kclose01__kicker{
  display:flex;

  align-items:center;

  gap:12px;

  color:var(--orange);

  font-size:12px;
  font-weight:900;

  letter-spacing:.13em;
}


.kclose01__kicker::before{
  content:"";

  width:36px;
  height:3px;

  border-radius:999px;

  background:var(--orange);
}


.kclose01 .kclose01__title{
  margin-top:14px !important;

  color:var(--navy) !important;

  font-size:
    clamp(40px,5vw,67px) !important;

  font-weight:800 !important;

  line-height:1.32 !important;

  letter-spacing:-.06em !important;

  word-break:keep-all;
}


.kclose01__intro{
  color:var(--text);

  font-size:13px;

  line-height:2;
}


/* =========================================================
   EXPLORE CARDS
========================================================= */

.kclose01__cards{
  display:grid;

  grid-template-columns:
    1.12fr .88fr .88fr;

  gap:8px;

  margin-top:
    clamp(35px,5vw,55px);
}


.kclose01__card{
  position:relative;

  display:flex;

  flex-direction:column;

  justify-content:space-between;

  min-width:0;
  min-height:440px;

  padding:
    clamp(24px,3vw,34px);

  overflow:hidden;

  border-radius:24px;

  color:var(--navy);

  text-align:left;

  cursor:pointer;

  transition:
    transform .24s ease,
    box-shadow .24s ease;
}


.kclose01__card:hover{
  transform:translateY(-4px);

  box-shadow:
    0 18px 42px
    rgba(42,53,46,.09);
}


.kclose01__card[aria-disabled="true"]{
  cursor:default;
}


.kclose01__card--discover{
  background:var(--navy);

  color:#FFF;
}


.kclose01__card--food{
  background:var(--paper);

  color:var(--navy);
}


.kclose01__card--business{
  background:var(--sage);

  color:var(--navy);
}


/* =========================================================
   CARD ART
========================================================= */

.kclose01__card-art{
  position:absolute;

  right:-15px;
  top:45px;

  width:68%;

  opacity:.16;
}


.kclose01__card-art svg{
  width:100%;
  height:auto;

  fill:none;

  stroke:currentColor;

  stroke-width:1.5;

  stroke-linecap:round;

  stroke-linejoin:round;
}


.kclose01__card--discover
.kclose01__card-art{
  color:#FFF;

  opacity:.17;
}


.kclose01__card-top{
  position:relative;

  z-index:2;

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:15px;
}


.kclose01__card-top > span{
  font:
    italic 700 18px/1
    Georgia,
    serif;
}


.kclose01__card-top small{
  padding:
    6px
    8px;

  border-radius:999px;

  background:
    rgba(9,61,82,.08);

  color:#84918D;

  font:
    900 7px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kclose01__card--discover
.kclose01__card-top small{
  background:
    rgba(255,255,255,.08);

  color:
    rgba(255,255,255,.55);
}


/* =========================================================
   CARD COPY
========================================================= */

.kclose01__card-copy{
  position:relative;

  z-index:2;

  margin-top:auto;

  padding-top:100px;
}


.kclose01__card-copy > p:first-child{
  color:var(--orange);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.11em;
}


.kclose01__card--discover
.kclose01__card-copy > p:first-child{
  color:#E0B66D;
}


.kclose01 .kclose01__card-copy h3{
  margin-top:9px !important;

  color:inherit !important;

  font-size:
    clamp(22px,2.5vw,31px) !important;

  font-weight:800 !important;

  line-height:1.45 !important;

  letter-spacing:-.04em !important;
}


.kclose01__card-copy > p:last-child{
  margin-top:14px !important;

  color:#657774;

  font-size:11px;

  line-height:1.85;
}


.kclose01__card--discover
.kclose01__card-copy > p:last-child{
  color:
    rgba(255,255,255,.65);
}


.kclose01__card-bottom{
  position:relative;

  z-index:2;

  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:15px;

  margin-top:28px;

  padding-top:17px;

  border-top:
    1px solid
    rgba(9,61,82,.1);
}


.kclose01__card--discover
.kclose01__card-bottom{
  border-color:
    rgba(255,255,255,.1);
}


.kclose01__card-bottom span{
  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kclose01__card-bottom strong{
  font-size:16px;
}


/* =========================================================
   STATUS
========================================================= */

.kclose01__status{
  min-height:20px;

  margin-top:8px !important;

  color:#927D60;

  font-size:9px;

  font-weight:800;
}


/* =========================================================
   SERIES
========================================================= */

.kclose01__series{
  margin-top:
    clamp(65px,8vw,100px);
}


.kclose01__series-head{
  display:flex;

  align-items:end;

  justify-content:space-between;

  gap:35px;

  margin-bottom:20px;
}


.kclose01__series-head small{
  color:var(--orange);

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kclose01 .kclose01__series-head h3{
  margin-top:7px !important;

  color:var(--navy) !important;

  font-size:
    clamp(23px,3vw,35px) !important;

  font-weight:800 !important;

  line-height:1.4 !important;
}


.kclose01__series-head > p{
  max-width:380px;

  color:#7D8C88;

  font-size:10px;

  line-height:1.8;
}


/* =========================================================
   SERIES NAV
========================================================= */

.kclose01__series-nav{
  display:grid;

  grid-template-columns:
    repeat(6,minmax(0,1fr));

  gap:5px;

  padding:6px;

  border-radius:18px;

  background:var(--navy-deep);
}


.kclose01__series-item{
  display:flex;

  flex-direction:column;

  justify-content:space-between;

  min-width:0;
  min-height:116px;

  padding:
    14px
    13px;

  border-radius:13px;

  background:transparent;

  color:
    rgba(255,255,255,.57);

  text-align:left;
}


button.kclose01__series-item{
  cursor:default;
}


.kclose01__series-item > span{
  font:
    italic 700 13px/1
    Georgia,
    serif;
}


.kclose01__series-item small{
  display:block;

  margin-top:20px;

  color:
    rgba(255,255,255,.31);

  font:
    800 7px/1
    Arial,
    sans-serif;
}


.kclose01__series-item strong{
  display:block;

  margin-top:6px;

  overflow:hidden;

  font:
    900 10px/1.25
    Arial,
    sans-serif;

  text-overflow:ellipsis;
}


.kclose01__series-item em{
  align-self:flex-end;

  margin-top:10px;

  color:
    rgba(255,255,255,.25);

  font:
    normal 800 7px/1
    Arial,
    sans-serif;
}


.kclose01__series-item--current{
  background:#FFF;

  color:var(--navy);

  box-shadow:
    inset 0 0 0 2px
    rgba(189,102,55,.25);
}


.kclose01__series-item--current small{
  color:var(--orange);
}


.kclose01__series-item--current em{
  color:var(--orange);
}


/* =========================================================
   JAPAN PR DESK
========================================================= */

.kclose01__pr{
  position:relative;

  display:grid;

  grid-template-columns:
    minmax(220px,.36fr)
    minmax(0,.48fr)
    minmax(100px,.16fr);

  align-items:center;

  gap:
    clamp(22px,5vw,65px);

  margin-top:
    clamp(70px,9vw,115px);

  padding:
    clamp(35px,6vw,70px);

  overflow:hidden;

  border-radius:30px;

  background:
    radial-gradient(
      circle at 82% 16%,
      rgba(166,124,55,.24),
      transparent 30%
    ),
    var(--night);

  color:#FFF;
}


/* =========================================================
   PR ART
========================================================= */

.kclose01__pr-art{
  opacity:.55;
}


.kclose01__pr-art svg{
  width:100%;
  height:auto;

  fill:none;

  stroke:
    rgba(222,185,112,.7);

  stroke-width:1.25;

  stroke-linecap:round;

  stroke-linejoin:round;
}


/* =========================================================
   PR COPY
========================================================= */

.kclose01__pr-copy{
  position:relative;

  z-index:2;
}


.kclose01__pr-kicker{
  color:#E2B86C;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.13em;
}


.kclose01 .kclose01__pr-copy h2{
  margin-top:12px !important;

  color:#FFF !important;

  font-size:
    clamp(34px,4.3vw,58px) !important;

  font-weight:800 !important;

  line-height:1.35 !important;

  letter-spacing:-.055em !important;
}


.kclose01__pr-lead{
  max-width:600px;

  margin-top:20px !important;

  color:
    rgba(255,255,255,.68);

  font-size:12px;

  line-height:1.95;
}


.kclose01__pr-tags{
  display:flex;

  flex-wrap:wrap;

  gap:6px;

  margin-top:20px;
}


.kclose01__pr-tags span{
  padding:
    6px
    9px;

  border:
    1px solid
    rgba(255,255,255,.12);

  border-radius:999px;

  color:
    rgba(255,255,255,.53);

  font:
    800 7px/1
    Arial,
    sans-serif;
}


/* =========================================================
   BUTTON
========================================================= */

.kclose01__pr-button{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:20px;

  width:min(100%,390px);

  margin-top:25px;

  padding:
    14px
    17px;

  border:
    1px solid
    rgba(255,255,255,.2);

  border-radius:999px;

  color:#FFF !important;

  transition:
    background .18s ease,
    color .18s ease;
}


.kclose01__pr-button:hover{
  background:#FFF;

  color:var(--navy) !important;
}


.kclose01__pr-button small{
  display:block;

  opacity:.55;

  font:
    800 7px/1
    Arial,
    sans-serif;
}


.kclose01__pr-button strong{
  display:block;

  margin-top:5px;

  font-size:11px;
  font-weight:800;
}


.kclose01__pr-button em{
  font-size:17px;

  font-style:normal;
}


/* =========================================================
   SIDE ROUTE
========================================================= */

.kclose01__pr-side{
  display:flex;

  flex-direction:column;

  align-items:center;

  gap:17px;

  color:
    rgba(255,255,255,.37);

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.1em;
}


.kclose01__route{
  display:flex;

  flex-direction:column;

  align-items:center;

  gap:7px;
}


.kclose01__route i{
  width:1px;
  height:43px;

  background:
    rgba(255,255,255,.17);
}


.kclose01__route strong{
  color:#DDB46E;

  font-size:18px;

  transform:rotate(90deg);
}


/* =========================================================
   FOOT
========================================================= */

.kclose01__foot{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:20px;

  margin-top:24px;

  padding-top:20px;

  border-top:
    1px solid
    var(--border);

  color:#889590;
}


.kclose01__foot > div{
  display:flex;

  gap:9px;
}


.kclose01__foot strong,
.kclose01__foot span,
.kclose01__foot p{
  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.07em;
}


.kclose01__foot strong{
  color:var(--navy);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1000px){

  .kclose01__head{
    grid-template-columns:1fr;

    gap:18px;
  }


  .kclose01__cards{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .kclose01__card:first-child{
    grid-column:1/-1;

    min-height:360px;
  }


  .kclose01__series-nav{
    grid-template-columns:
      repeat(3,minmax(0,1fr));
  }


  .kclose01__pr{
    grid-template-columns:
      minmax(170px,.32fr)
      minmax(0,.68fr);
  }


  .kclose01__pr-side{
    display:none;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  /* CARDS */

  .kclose01__cards{
    grid-template-columns:1fr;
  }


  .kclose01__card,
  .kclose01__card:first-child{
    grid-column:auto;

    min-height:360px;
  }


  /* SERIES */

  .kclose01__series-head{
    display:block;
  }


  .kclose01__series-head > p{
    margin-top:10px !important;
  }


  .kclose01__series-nav{
    display:flex;

    width:
      calc(100% + 16px);

    margin-right:-16px;

    padding:
      6px
      16px
      6px
      6px;

    gap:5px;

    overflow-x:auto;

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .kclose01__series-nav::-webkit-scrollbar{
    display:none;
  }


  .kclose01__series-item{
    flex:
      0 0
      min(48vw,180px);

    scroll-snap-align:center;
  }


  /* PR */

  .kclose01__pr{
    grid-template-columns:1fr;

    padding:
      36px
      27px;
  }


  .kclose01__pr-art{
    position:absolute;

    right:-65px;
    top:-35px;

    width:280px;

    opacity:.14;
  }


  .kclose01__pr-copy{
    max-width:560px;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .kclose01__inner{
    width:
      calc(100% - 32px);

    padding:
      68px
      0
      28px;
  }


  .kclose01 .kclose01__title{
    font-size:
      clamp(
        34px,
        10.3vw,
        44px
      ) !important;

    line-height:
      1.35 !important;

    letter-spacing:
      -.055em !important;

    word-break:normal;

    overflow-wrap:anywhere;
  }


  .kclose01__title br{
    display:none;
  }


  .kclose01__intro{
    font-size:12px;
  }


  /* CARDS */

  .kclose01__card,
  .kclose01__card:first-child{
    min-height:330px;

    padding:
      24px
      21px;

    border-radius:20px;
  }


  .kclose01__card-art{
    width:72%;
  }


  .kclose01__card-copy{
    padding-top:80px;
  }


  .kclose01
  .kclose01__card-copy h3{
    font-size:25px !important;
  }


  /* SERIES */

  .kclose01__series-item{
    flex-basis:
      min(53vw,180px);
  }


  /* PR */

  .kclose01__pr{
    padding:
      32px
      22px;

    border-radius:22px;
  }


  .kclose01
  .kclose01__pr-copy h2{
    font-size:
      35px !important;

    word-break:normal;
  }


  .kclose01__pr-copy h2 br{
    display:none;
  }


  .kclose01__pr-lead{
    font-size:11px;
  }


  .kclose01__pr-button{
    width:100%;
  }


  /* FOOT */

  .kclose01__foot{
    display:block;
  }


  .kclose01__foot p{
    margin-top:8px !important;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .kclose01__inner{
    width:
      calc(100% - 28px);
  }


  .kclose01__series-item{
    flex-basis:58vw;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .kclose01 *,
  .kclose01 *::before,
  .kclose01 *::after{
    transition:none !important;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-dd22651 *//* =========================================================
   KENYA FOOTER 02
========================================================= */

.kenya-footer02{
  --navy:#093D52;
  --night:#032C39;

  --gold:#A67C37;
  --orange:#BD6637;
  --green:#5A7058;

  --paper:#F1E5D1;
  --white:#FFFFFF;

  position:relative;

  width:100%;
  max-width:100%;

  overflow:hidden;

  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(166,124,55,.14),
      transparent 28%
    ),
    var(--night);

  color:#FFF;

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;
}


.kenya-footer02,
.kenya-footer02 *,
.kenya-footer02 *::before,
.kenya-footer02 *::after{
  box-sizing:border-box;
}


.kenya-footer02 p{
  margin:0;
}


.kenya-footer02 a{
  color:inherit;
  text-decoration:none;
}


.kenya-footer02 button{
  border:0;
  font:inherit;
}


/* =========================================================
   GOLD LINE
========================================================= */

.kenya-footer02__line{
  width:100%;
  height:4px;

  background:
    rgba(255,255,255,.035);
}


.kenya-footer02__line span{
  display:block;

  width:28%;
  height:100%;

  margin-left:8%;

  background:
    linear-gradient(
      90deg,
      var(--orange),
      var(--gold)
    );
}


/* =========================================================
   INNER
========================================================= */

.kenya-footer02__inner{
  position:relative;

  z-index:2;

  width:min(
    1280px,
    calc(100% - clamp(34px,7vw,110px))
  );

  margin-inline:auto;

  padding:
    clamp(55px,7vw,90px)
    0
    27px;
}


/* =========================================================
   SIGNATURE
========================================================= */

.kenya-footer02__signature{
  display:grid;

  grid-template-columns:
    .45fr
    1fr;

  align-items:end;

  gap:
    clamp(30px,7vw,100px);

  padding-bottom:
    clamp(38px,5vw,58px);

  border-bottom:
    1px solid
    rgba(255,255,255,.09);
}


.kenya-footer02__eyebrow{
  display:flex;

  align-items:center;

  gap:10px;

  color:
    rgba(255,255,255,.45);
}


.kenya-footer02__eyebrow span{
  width:31px;
  height:2px;

  background:var(--orange);
}


.kenya-footer02__eyebrow strong{
  font:
    800 8px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kenya-footer02__country small{
  display:block;

  color:#D9B36C;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.14em;
}


.kenya-footer02__country-name{
  display:block;

  margin-top:9px;

  color:#FFF;

  font:
    italic 700
    clamp(65px,9vw,128px)/.85
    Georgia,
    serif;

  letter-spacing:-.06em;
}


.kenya-footer02__country p{
  margin-top:24px;

  color:
    rgba(255,255,255,.65);

  font-size:12px;

  font-weight:700;

  letter-spacing:.05em;
}


/* =========================================================
   SERIES
========================================================= */

.kenya-footer02__series{
  padding:
    clamp(42px,6vw,65px)
    0;
}


.kenya-footer02__nav-head{
  display:flex;

  align-items:end;

  justify-content:space-between;

  gap:30px;

  margin-bottom:20px;
}


.kenya-footer02__nav-head small{
  color:#DAB36E;

  font:
    900 9px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kenya-footer02__nav-head p{
  max-width:320px;

  color:
    rgba(255,255,255,.43);

  font-size:9px;

  line-height:1.8;
}


/* =========================================================
   SERIES GRID
========================================================= */

.kenya-footer02__series-grid{
  display:grid;

  grid-template-columns:
    repeat(4,minmax(0,1fr));

  gap:6px;
}


.kenya-footer02__series-item{
  display:grid;

  grid-template-columns:
    auto
    minmax(0,1fr)
    auto;

  align-items:center;

  gap:12px;

  min-height:83px;

  padding:
    14px
    15px;

  border:
    1px solid
    rgba(255,255,255,.09);

  border-radius:14px;

  background:
    rgba(255,255,255,.035);

  color:
    rgba(255,255,255,.69);

  transition:
    background .18s ease,
    border-color .18s ease,
    transform .18s ease;
}


a.kenya-footer02__series-item:hover{
  transform:
    translateY(-2px);

  border-color:
    rgba(218,179,110,.27);

  background:
    rgba(255,255,255,.065);
}


.kenya-footer02__series-no{
  color:
    rgba(255,255,255,.25);

  font:
    italic 700 13px/1
    Georgia,
    serif;
}


.kenya-footer02__series-item small{
  display:block;

  color:
    rgba(255,255,255,.31);

  font:
    800 7px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kenya-footer02__series-item strong{
  display:block;

  margin-top:7px;

  color:inherit;

  font:
    900 10px/1.35
    Arial,
    sans-serif;

  letter-spacing:.025em;
}


.kenya-footer02__series-item em{
  color:#DDB66F;

  font:
    normal 800 11px/1
    Arial,
    sans-serif;
}


/* CURRENT PAGE */

.kenya-footer02__series-item.is-current{
  border-color:
    rgba(221,182,111,.4);

  background:
    var(--paper);

  color:var(--navy);
}


.kenya-footer02__series-item.is-current
.kenya-footer02__series-no{
  color:var(--orange);
}


.kenya-footer02__series-item.is-current small{
  color:#A18969;
}


.kenya-footer02__series-item.is-current em{
  color:var(--orange);
}


.kenya-footer02__series-item.is-current em::before{
  content:"NOW";
}


.kenya-footer02__series-item.is-current em{
  font-size:0;
}


.kenya-footer02__series-item.is-current em::before{
  font-size:8px;
}


/* SOON */

.kenya-footer02__series-item--soon{
  opacity:.42;
}


.kenya-footer02__series-item--soon em{
  font-size:7px;

  letter-spacing:.05em;
}


/* =========================================================
   LOWER
========================================================= */

.kenya-footer02__lower{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    auto;

  align-items:end;

  gap:
    clamp(35px,7vw,90px);

  padding:
    clamp(37px,5vw,58px)
    0;

  border-top:
    1px solid
    rgba(255,255,255,.09);

  border-bottom:
    1px solid
    rgba(255,255,255,.09);
}


/* =========================================================
   STUDIO
========================================================= */

.kenya-footer02__label{
  display:block;

  margin-bottom:13px;

  color:#D8B06A;

  font:
    900 8px/1
    Arial,
    sans-serif;

  letter-spacing:.12em;
}


.kenya-footer02__studio-links{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:
    0
    26px;
}


.kenya-footer02__studio-links a{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:15px;

  min-height:42px;

  border-bottom:
    1px solid
    rgba(255,255,255,.075);

  color:
    rgba(255,255,255,.62);

  font-size:10px;

  font-weight:700;
}


.kenya-footer02__studio-links a:hover{
  color:#FFF;
}


.kenya-footer02__studio-links i{
  color:#D6AD68;

  font-style:normal;

  font-size:10px;
}


/* =========================================================
   BACK TOP
========================================================= */

.kenya-footer02__back{
  display:flex;

  align-items:center;

  gap:13px;

  padding:0;

  background:transparent;

  color:#FFF;

  text-align:left;

  cursor:pointer;
}


.kenya-footer02__back-circle{
  display:grid;

  place-items:center;

  width:52px;
  height:52px;

  border:
    1px solid
    rgba(255,255,255,.2);

  border-radius:50%;

  color:#DDB66F;

  font-size:16px;

  transition:
    background .18s ease,
    color .18s ease;
}


.kenya-footer02__back:hover
.kenya-footer02__back-circle{
  background:#FFF;

  color:var(--navy);
}


.kenya-footer02__back small{
  display:block;

  color:
    rgba(255,255,255,.34);

  font:
    800 7px/1
    Arial,
    sans-serif;
}


.kenya-footer02__back strong{
  display:block;

  margin-top:6px;

  color:#FFF;

  font:
    900 9px/1
    Arial,
    sans-serif;
}


/* =========================================================
   META
========================================================= */

.kenya-footer02__meta{
  display:grid;

  grid-template-columns:
    .8fr
    .7fr
    1.5fr;

  gap:
    20px
    45px;

  padding:
    25px 0;
}


.kenya-footer02__meta small{
  display:block;

  color:
    rgba(255,255,255,.25);

  font:
    800 7px/1
    Arial,
    sans-serif;

  letter-spacing:.08em;
}


.kenya-footer02__meta strong{
  display:block;

  margin-top:7px;

  color:
    rgba(255,255,255,.48);

  font-size:8px;

  font-weight:700;

  line-height:1.6;
}


/* =========================================================
   BOTTOM
========================================================= */

.kenya-footer02__bottom{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:20px;

  padding-top:18px;

  border-top:
    1px solid
    rgba(255,255,255,.055);
}


.kenya-footer02__brand{
  display:flex;

  align-items:center;

  gap:9px;

  color:
    rgba(255,255,255,.45);
}


.kenya-footer02__brand strong,
.kenya-footer02__brand small,
.kenya-footer02__bottom p{
  font:
    800 7px/1
    Arial,
    sans-serif;

  letter-spacing:.09em;
}


.kenya-footer02__brand span{
  width:19px;
  height:1px;

  background:
    rgba(255,255,255,.2);
}


.kenya-footer02__bottom p{
  color:
    rgba(255,255,255,.25);
}


/* =========================================================
   GHOST KENYA
========================================================= */

.kenya-footer02__ghost{
  position:absolute;

  z-index:0;

  right:-2vw;
  bottom:-4vw;

  color:
    rgba(255,255,255,.025);

  font:
    italic 700
    clamp(160px,27vw,480px)/.65
    Georgia,
    serif;

  letter-spacing:-.08em;

  pointer-events:none;
  user-select:none;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:980px){

  .kenya-footer02__series-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  .kenya-footer02__studio-links{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .kenya-footer02__signature{
    grid-template-columns:1fr;

    gap:22px;
  }


  .kenya-footer02__country-name{
    font-size:
      clamp(72px,22vw,115px);
  }


  .kenya-footer02__nav-head{
    display:block;
  }


  .kenya-footer02__nav-head p{
    margin-top:9px;
  }


  /*
    SERIESはスマホで横スクロール
  */

  .kenya-footer02__series-grid{
    display:flex;

    width:
      calc(100% + 16px);

    margin-right:-16px;

    padding:
      3px
      16px
      10px
      0;

    gap:6px;

    overflow-x:auto;

    scroll-snap-type:
      x mandatory;

    scrollbar-width:none;
  }


  .kenya-footer02__series-grid::-webkit-scrollbar{
    display:none;
  }


  .kenya-footer02__series-item{
    flex:
      0 0
      min(65vw,245px);

    min-height:82px;

    scroll-snap-align:center;
  }


  .kenya-footer02__lower{
    grid-template-columns:1fr;

    gap:30px;
  }


  .kenya-footer02__back{
    justify-self:start;
  }


  .kenya-footer02__meta{
    grid-template-columns:1fr;

    gap:16px;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media(max-width:650px){

  .kenya-footer02__inner{
    width:
      calc(100% - 32px);

    padding:
      48px
      0
      24px;
  }


  .kenya-footer02__country p{
    font-size:11px;
  }


  .kenya-footer02__series-item{
    flex-basis:
      min(72vw,240px);
  }


  .kenya-footer02__studio-links{
    grid-template-columns:1fr;
  }


  .kenya-footer02__studio-links a{
    font-size:11px;

    min-height:47px;
  }


  .kenya-footer02__bottom{
    display:block;
  }


  .kenya-footer02__bottom p{
    margin-top:14px;
  }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:390px){

  .kenya-footer02__inner{
    width:
      calc(100% - 28px);
  }


  .kenya-footer02__series-item{
    flex-basis:78vw;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .kenya-footer02 *,
  .kenya-footer02 *::before,
  .kenya-footer02 *::after{
    transition:none !important;
  }

}　

<script>
(function(){

  "use strict";


  function init(root){

    if(
      root.dataset
        .kenyaFooter02Ready === "1"
    ){
      return;
    }


    root.dataset
      .kenyaFooter02Ready = "1";


    const currentPage =
      (
        root.dataset
          .kenyaCurrent || ""
      ).trim();


    const seriesItems =
      Array.from(
        root.querySelectorAll(
          "[data-kenya-page]"
        )
      );


    const backTop =
      root.querySelector(
        "[data-kenya-backtop]"
      );


    /* =======================================================
       CURRENT PAGE
    ======================================================= */

    let currentItem = null;


    seriesItems.forEach(
      function(item){

        const active =
          item.dataset
            .kenyaPage ===
          currentPage;


        item.classList.toggle(
          "is-current",
          active
        );


        if(active){

          item.setAttribute(
            "aria-current",
            "page"
          );


          currentItem =
            item;

        }else{

          item.removeAttribute(
            "aria-current"
          );

        }

      }
    );



    /* =======================================================
       MOBILE
       現在地を横スクロール中央へ
    ======================================================= */

    function centerCurrent(){

      if(
        !currentItem ||
        window.innerWidth > 760
      ){
        return;
      }


      const rail =
        currentItem.closest(
          ".kenya-footer02__series-grid"
        );


      if(!rail){
        return;
      }


      const railRect =
        rail.getBoundingClientRect();


      const itemRect =
        currentItem.getBoundingClientRect();


      const destination =
        rail.scrollLeft +
        itemRect.left +
        itemRect.width / 2 -
        railRect.left -
        railRect.width / 2;


      rail.scrollTo({

        left:Math.max(
          0,
          destination
        ),

        behavior:"auto"

      });

    }



    /* =======================================================
       BACK TO TOP
    ======================================================= */

    if(backTop){

      backTop.addEventListener(
        "click",
        function(){

          const reduceMotion =
            window.matchMedia(
              "(prefers-reduced-motion: reduce)"
            ).matches;


          window.scrollTo({

            top:0,

            behavior:
              reduceMotion
                ? "auto"
                : "smooth"

          });

        }
      );

    }



    /* =======================================================
       START
    ======================================================= */

    window.requestAnimationFrame(
      centerCurrent
    );


    window.addEventListener(
      "resize",
      centerCurrent,
      {
        passive:true
      }
    );

  }



  function boot(){

    document
      .querySelectorAll(
        "[data-kenya-footer02]"
      )
      .forEach(init);

  }


  if(
    document.readyState ===
    "loading"
  ){

    document.addEventListener(
      "DOMContentLoaded",
      boot,
      {
        once:true
      }
    );

  }else{

    boot();

  }

})();
</script>/* End custom CSS */