/* Language switcher + pieces rebuilt in HTML for the English / Japanese pages (generated by _i18n/build.py) */

/* ---------- language switcher (top right) ---------- */
.lang-switch {
  font-size: 14px;
  letter-spacing: 1px;
  color: #4a4a4a;
  white-space: nowrap; }
  .lang-switch a, .lang-switch span.current {
    display: inline-block;
    padding: 2px 4px;
    color: #4a4a4a;
    text-decoration: none; }
  .lang-switch a {
    opacity: 0.55;
    transition: opacity 0.2s; }
  .lang-switch a:hover {
    opacity: 1;
    text-decoration: none; }
  .lang-switch span.current {
    border-bottom: solid 1.5px #4a4a4a; }
  .lang-switch .sep {
    opacity: 0.35;
    padding: 0 2px; }

/* desktop: sits after "聯絡我們/馬上預約" in the menu row */
.lang-switch-desktop {
  display: inline-block;
  vertical-align: middle;
  margin-left: 18px; }
  /* undo the menu's own link styles (fixed width, padding, border on the 4th link) */
  .menu-list .lang-switch a, .menu-list-in .lang-switch a, .menu-list-out .lang-switch a {
    width: auto;
    margin: 0;
    padding: 2px 4px;
    border: none;
    font-size: 14px;
    line-height: 20px; }
  .menu-list .lang-switch a:hover {
    color: #4a4a4a; }
.lang-switch-mobile {
  display: none; }

/* mobile: left of the hamburger button, following its position in each header state */
@media (max-width: 860px) {
  .lang-switch-desktop {
    display: none; }
  .lang-switch-mobile {
    display: block;
    position: absolute;
    top: 70px;
    right: 108px;
    z-index: 260; }
  .header-next > .container-fluid > .lang-switch-mobile,
  .header-down > .container-fluid > .lang-switch-mobile,
  .header-top > .container-fluid > .lang-switch-mobile {
    top: 30px; } }
@media (max-width: 600px) {
  .lang-switch-mobile {
    right: 76px;
    font-size: 13px; } }

/* ---------- section titles (replace the Chinese title images) ---------- */
.i18n-title {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 92px;
  min-width: 275px;
  padding: 0 34px;
  color: #4a4a4a;
  line-height: 1.15;
  vertical-align: top; }
  .i18n-title::before, .i18n-title::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 10px;
    border: solid 3px #4a4a4a; }
  .i18n-title::before {
    left: 0;
    border-right: none; }
  .i18n-title::after {
    right: 0;
    border-left: none; }
.i18n-title-main {
  font-size: 34px;
  letter-spacing: 2px;
  white-space: nowrap; }
.i18n-title-sub {
  margin-top: 6px;
  font-size: 13px;
  letter-spacing: 1px; }
html[lang="ja"] .i18n-title-main {
  font-size: 30px; }

.about-us-logo .i18n-title, .gallery-logo .i18n-title, .plan-logo .i18n-title {
  height: 80px; }

/* banner on gallery / plan / contact pages: centred like the old image */
.main-photo .i18n-title, .main-photo-gallery .i18n-title, .main-photo-plan .i18n-title, .main-photo-contact .i18n-title {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); }

@media (max-width: 600px) {
  .i18n-title {
    height: 64px;
    min-width: 200px;
    padding: 0 24px; }
  .i18n-title-main {
    font-size: 24px; }
  .i18n-title-sub {
    font-size: 11px;
    margin-top: 4px; }
  .about-us-logo .i18n-title, .gallery-logo .i18n-title, .plan-logo .i18n-title {
    height: 64px; } }

/* ---------- contact page: 8-step process (replaces process.png) ---------- */
.i18n-process {
  list-style: none;
  margin: 20px 0;
  padding: 0;
  position: relative;
  color: #4a4a4a; }
  .i18n-process::before {
    content: "";
    position: absolute;
    left: 17px;
    top: 18px;
    bottom: 18px;
    width: 2px;
    background: #4a4a4a; }
  .i18n-process li {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 36px;
    margin-bottom: 34px; }
  .i18n-process li:last-child {
    margin-bottom: 0; }
  .i18n-process .num {
    flex: 0 0 36px;
    height: 36px;
    border-radius: 50%;
    background: #4a4a4a;
    color: #fff;
    font-size: 15px;
    line-height: 36px;
    text-align: center;
    z-index: 1; }
  .i18n-process .txt {
    margin-left: 26px;
    font-size: 15px; }

/* ---------- homepage plan cards: English word set vertically ---------- */
.plan-contant p.i18n-vword {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  display: inline-block;
  font-size: 22px;
  letter-spacing: 3px;
  margin: 0 auto 8px; }
@media (max-width: 600px) {
  .plan-contant p.i18n-vword {
    writing-mode: horizontal-tb;
    font-size: 17px; } }

/* ---------- Japanese typeface ---------- */
html[lang="ja"] body {
  font-family: "Noto Serif", "Noto Serif JP", serif; }

/* ---------- English / Japanese menu labels are longer than the Chinese ones ---------- */
@media (min-width: 861px) {
  html[lang="en"] .menu-list a, html[lang="ja"] .menu-list a {
    width: auto;
    min-width: 90px;
    padding-left: 6px;
    padding-right: 6px; }
  html[lang="en"] .menu-list a:nth-child(4), html[lang="ja"] .menu-list a:nth-child(4) {
    width: auto;
    min-width: 180px;
    padding-left: 14px;
    padding-right: 14px; } }
