.header-side .header-side__logo {
  width: min(9.2rem, 94%);
}
.header-side__logo img { width: 100%; display: block; height: auto; }
.lcl-hero .lcl-hero-bg__in { opacity: .13; }
.lcl-hero .lcl-hero-bg__item img { object-position: 50% 51%; }
.lcl-hero .lcl-hero-imgarea__item, .lcl-hero .lcl-hero-imgarea__img { height: 100%; }
.lcl-hero .lcl-hero-enarea__item { color: #142645; letter-spacing: .26em; }
.lcl-hero .lcl-hero-main__in:hover .lcl-hero-enarea__item { color: #0a1c39; letter-spacing: .22em; }
.lcl-hero .lcl-hero-enarea { mix-blend-mode: normal; }
.lcl-hero .lcl-hero-enarea__span { -webkit-text-stroke: 1.35px rgba(255,255,255,.82); paint-order: stroke fill; }
.lcl-hero .lcl-hero-txtarea__txt { letter-spacing: .07em; color: #152a45; }
.lcl-hero .lcl-hero-vec__ico { width: auto; color: #153462; }
.zt-index {
  display: inline-block; padding: .5em .75em; background: white;
  border: 1px solid #a5b8cd; border-radius: 100px; white-space: nowrap;
  font: 600 11px/1 ui-monospace, Menlo, monospace; letter-spacing: .09em;
}
.lcl-hero .lcl-hero-btnarea__btn:hover { color: #17468a; }
.lcl-hero .lcl-hero-dots__dot.current { background: #194d91; }
.zt-profile { font-family: "Noto Sans JP", sans-serif; color: #182b45; text-align: left; }
.zt-profile small { display: block; font: 600 10px/1.4 ui-monospace, Menlo, monospace; letter-spacing: .12em; margin-bottom: 5px; }
.zt-profile strong { font-size: clamp(13px, 1.25vw, 19px); }
#header .zt-nav-button { width: 100%; text-align: left; cursor: pointer; }
#header .zt-nav-button:hover .nav-list__en { color: #205591; }
.zt-dialog {
  box-sizing: border-box; position: fixed; inset: 0; margin: auto; width: min(600px, 90vw);
  height: fit-content; max-height: 82vh; overflow: auto; padding: clamp(22px, 4vw, 48px);
  border: 1px solid #c3cfdb; color: #172d4b; background: #fff; line-height: 1.85;
}
.zt-dialog::backdrop { background: rgb(13 27 47 / 55%); }
.zt-dialog .zt-close { display: block; margin-left: auto; padding: 4px 10px; font: 600 13px/1.5 sans-serif; cursor: pointer; }
.zt-dialog small { display: block; margin: 16px 0 6px; font: 600 11px/1.5 ui-monospace, Menlo, monospace; letter-spacing: .13em; }
.zt-dialog h2 { font: 700 clamp(23px, 3vw, 35px)/1.45 "Noto Sans JP", sans-serif; letter-spacing: 0; margin-bottom: 16px; }
.zt-dialog p, .zt-dialog dl { font: 400 15px/1.95 "Noto Sans JP", sans-serif; }
.zt-dialog dl { margin-top: 18px; }
.zt-dialog dl div { display: grid; grid-template-columns: 38% 1fr; gap: 8px; border-top: 1px solid #dbe0e8; padding: 5px 0; }
.zt-dialog dt { color: #465972; }
@media (max-width: 767px) {
  .header-side .header-side__logo { width: 8rem; max-width: none; margin-right: 1.1rem; }
  .lcl-hero .lcl-hero-enarea__item, .lcl-hero .lcl-hero-enarea__item:nth-of-type(n) {
    font-size: clamp(29px, 10.1vw, 60px); line-height: 1.15; left: 50%; letter-spacing: .2em;
  }
  .lcl-hero .lcl-hero-txtarea { left: 37%; width: 68%; }
  .lcl-hero .lcl-hero-txtarea__txt { font-size: max(1.05rem, 11px); line-height: 1.7; }
  .zt-index { font-size: 9px; }
}
/* The same title switches to white precisely where it crosses the photograph. */
.lcl-hero .lcl-hero-enarea__item { left: 50%; }
.zt-title-on-image {
  position: absolute; inset: 0; color: white;
  clip-path: inset(0 calc(50% - 11rem)); pointer-events: none;
}
.lcl-hero .zt-title-on-image .lcl-hero-enarea__span {
  -webkit-text-stroke: 1.2px rgb(9 25 50 / 70%);
  text-shadow: 0 1px 3px rgb(7 21 37 / 45%);
}
@media (max-width: 767px) { .zt-title-on-image { clip-path: inset(0 calc(50% - 7rem)); } }
