@charset "UTF-8";
*, *::before, *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html, body, h1, h2, h3, p, figure, ul {
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

button, input, textarea, select {
  font: inherit;
}

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

ul {
  list-style: none;
}

html {
  font-size: 15px;
  background: #fff;
  color: #111;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.06em;
  overflow-x: hidden;
}

.u-serif {
  font-family: "Noto Serif JP", serif;
}

.is-drawer-open {
  overflow: hidden;
}

@media (min-width: 768px) {
  .l-main,
  .l-footer {
    width: min(100% - 60px, 1860px);
    margin-inline: auto;
  }
}
@media (max-width: 767px) {
  html {
    font-size: 13px;
  }
}
/* v1.19 mobile overflow guard */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

@supports (overflow: clip) {
  html,
  body {
    overflow-x: clip;
  }
}
.l-loading {
  position: fixed;
  z-index: 100;
  inset: 0;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.l-loading__logo img {
  width: 92px;
}
.l-loading__progress {
  position: absolute;
  left: 5vw;
  right: 5vw;
  bottom: 15vh;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.l-loading__track {
  height: 1px;
  background: #ddd;
}
.l-loading__track span {
  display: block;
  width: 0;
  height: 1px;
  background: #111;
}
.l-loading__percent {
  font-family: "Cormorant Garamond", serif;
  font-size: 14px;
  min-width: 42px;
  text-align: right;
}

/* v1.19: keep the loading overlay strictly inside the mobile viewport. */
@media (max-width: 767px) {
  .l-loading {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
  .l-loading__progress {
    left: 16px;
    right: 16px;
    width: auto;
    max-width: calc(100% - 32px);
    gap: 12px;
  }
  .l-loading__percent {
    min-width: 36px;
  }
}
/* v1.51: prevent the loading logo from flashing before GSAP starts. */
.js .l-loading__logo img {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(18px);
          transform: translateY(18px);
  -webkit-filter: blur(8px);
          filter: blur(8px);
}

.l-header {
  position: fixed;
  z-index: 60;
  top: 0;
  left: 50%;
  width: min(100%, 1920px);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 22px 30px;
  pointer-events: none;
}
.l-header__logo, .l-header__menu {
  pointer-events: auto;
}
.l-header__logo {
  display: block;
  -webkit-transition: -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-transform-origin: left top;
          transform-origin: left top;
}
.l-header__logo img {
  width: 76px;
  -webkit-transition: width 0.9s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.7s ease;
  transition: width 0.9s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.7s ease;
  transition: width 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.7s ease;
  transition: width 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.7s ease, -webkit-filter 0.7s ease;
}
.l-header.is-scrolled .l-header__logo img {
  width: 52px;
}
.l-header__menu {
  border: 0;
  padding: 0;
  background: transparent;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
}
.l-header__menu-label {
  position: relative;
  display: block;
  width: 66px;
  height: 24px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  overflow: hidden;
  font-family: "Sahitya", serif;
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0;
}
.l-header__menu-word {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.08em;
  white-space: nowrap;
}
.l-header__menu-char {
  display: inline-block;
  min-width: 0.72em;
  text-align: center;
  -webkit-transition: -webkit-transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.58s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
}
.l-header__menu-word--top .l-header__menu-char {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.l-header__menu-word--bottom .l-header__menu-char {
  -webkit-transform: translateY(145%);
          transform: translateY(145%);
}
.l-header__menu:hover .l-header__menu-word--top .l-header__menu-char {
  -webkit-transform: translateY(-145%);
          transform: translateY(-145%);
}
.l-header__menu:hover .l-header__menu-word--bottom .l-header__menu-char {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.l-header__menu-char:nth-child(1) {
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}
.l-header__menu-char:nth-child(2) {
  -webkit-transition-delay: 0.055s;
          transition-delay: 0.055s;
}
.l-header__menu-char:nth-child(3) {
  -webkit-transition-delay: 0.11s;
          transition-delay: 0.11s;
}
.l-header__menu-char:nth-child(4) {
  -webkit-transition-delay: 0.165s;
          transition-delay: 0.165s;
}
.l-header__menu-lines {
  position: relative;
  display: block;
  width: 48px;
  height: 18px;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 48px;
          flex: 0 0 48px;
}
.l-header__menu-lines i {
  position: absolute;
  left: 0;
  width: 48px;
  height: 1px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: #111;
  display: block;
  -webkit-transition: top 0.75s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.4s ease, -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: top 0.75s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.4s ease, -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.75s cubic-bezier(0.22, 1, 0.36, 1), top 0.75s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.4s ease;
  transition: transform 0.75s cubic-bezier(0.22, 1, 0.36, 1), top 0.75s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.4s ease, -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.l-header__menu-lines i:first-child {
  top: 5px;
}
.l-header__menu-lines i:last-child {
  top: 12px;
}
.l-header__menu[aria-expanded=true] .l-header__menu-lines i:first-child {
  top: 9px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  background: #fff;
}
.l-header__menu[aria-expanded=true] .l-header__menu-lines i:last-child {
  top: 9px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  background: #fff;
}

@media (max-width: 767px) {
  .l-header {
    padding: 14px 16px;
  }
  .l-header__logo img {
    width: 58px;
  }
  .l-header.is-scrolled .l-header__logo img {
    width: 46px;
  }
  .l-header__menu-label {
    width: 58px;
    height: 22px;
  }
  .l-header__menu-lines, .l-header__menu-lines i {
    width: 38px;
  }
  .l-header__menu-lines {
    -ms-flex-preferred-size: 38px;
        flex-basis: 38px;
  }
}
/* v1.6: legacy compiled CSS isolation */
.l-header__menu > span, .l-header__menu span {
  border: 0 !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}
.l-header__menu-label {
  padding: 0 !important;
}
.l-header__menu-lines i::before, .l-header__menu-lines i::after {
  content: none !important;
  display: none !important;
}

/* v1.42 frosted compact header */
@media (min-width: 768px) {
  .l-header.is-scrolled {
    height: 75px;
    padding-top: 11px;
    padding-bottom: 11px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .l-header--subpage.is-scrolled {
    height: 75px;
  }
  .l-header--subpage.is-scrolled .l-header__logo {
    top: 10px;
  }
  .l-header.is-scrolled::before {
    content: "";
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(10px) saturate(118%);
  }
}
/* v1.82: reliable frosted-glass treatment on the compact sticky header.
   Apply the glass effect directly to the fixed header instead of a pseudo element. */
@media (min-width: 768px) {
  .l-header.is-scrolled {
    background: rgba(255, 255, 255, 0.54);
    -webkit-backdrop-filter: blur(18px) saturate(125%);
            backdrop-filter: blur(18px) saturate(125%);
    border-bottom: 1px solid rgba(17, 17, 17, 0.045);
    -webkit-box-shadow: 0 8px 28px rgba(17, 17, 17, 0.035);
            box-shadow: 0 8px 28px rgba(17, 17, 17, 0.035);
  }
  .l-header.is-scrolled::before {
    content: none;
    display: none;
  }
}
/* v1.51: smooth compact-header transition and correct frosted layer stacking */
@media (min-width: 768px) {
  .l-header {
    height: 110px;
    -webkit-transition: height 0.72s cubic-bezier(0.22, 1, 0.36, 1), padding 0.72s cubic-bezier(0.22, 1, 0.36, 1);
    transition: height 0.72s cubic-bezier(0.22, 1, 0.36, 1), padding 0.72s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .l-header__logo,
  .l-header__actions {
    position: relative;
    z-index: 2;
  }
  .l-header--subpage .l-header__logo {
    -webkit-transition: top 0.72s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    transition: top 0.72s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    transition: top 0.72s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    transition: top 0.72s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .l-header.is-scrolled {
    height: 75px;
    padding-top: 11px;
    padding-bottom: 11px;
  }
  .l-header.is-scrolled::before {
    z-index: 0;
  }
}
/* v1.82: remove the frosted background while the drawer is open. */
@media (min-width: 768px) {
  .l-header.is-scrolled {
    -webkit-transition: height 0.72s cubic-bezier(0.22, 1, 0.36, 1), padding 0.72s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.42s ease, -webkit-backdrop-filter 0.42s ease;
    transition: height 0.72s cubic-bezier(0.22, 1, 0.36, 1), padding 0.72s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.42s ease, -webkit-backdrop-filter 0.42s ease;
    transition: height 0.72s cubic-bezier(0.22, 1, 0.36, 1), padding 0.72s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.42s ease, backdrop-filter 0.42s ease;
    transition: height 0.72s cubic-bezier(0.22, 1, 0.36, 1), padding 0.72s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.42s ease, backdrop-filter 0.42s ease, -webkit-backdrop-filter 0.42s ease;
  }
  html.is-drawer-open .l-header.is-scrolled {
    background: transparent;
    border-bottom-color: transparent;
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-backdrop-filter: blur(0) saturate(100%);
            backdrop-filter: blur(0) saturate(100%);
  }
}
/* v1.71: on mobile, keep only the MENU control in the sticky header. */
@media (max-width: 767px) {
  .l-header__logo {
    -webkit-transition: opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.48s ease, -webkit-transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
    transition: opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.48s ease, -webkit-transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
    transition: opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1), filter 0.48s ease, transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
    transition: opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1), filter 0.48s ease, transform 0.48s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.48s ease, -webkit-transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .l-header.is-scrolled .l-header__logo {
    opacity: 0;
    pointer-events: none;
    -webkit-filter: blur(5px);
            filter: blur(5px);
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
  .l-header--subpage.is-scrolled .l-header__logo {
    opacity: 0;
    pointer-events: none;
    -webkit-filter: blur(5px);
            filter: blur(5px);
    -webkit-transform: translateX(-50%) translateY(-8px);
            transform: translateX(-50%) translateY(-8px);
  }
}
/* Footer ------------------------------------------------------------ */
.l-footer {
  display: grid;
  grid-template-columns: minmax(0, 68%) minmax(320px, 32%);
  width: 100%;
  min-height: clamp(700px, 58vw, 860px);
  margin: 0;
  padding: 0;
  background: #fff;
  overflow: hidden;
}

.l-footer__visual {
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  isolation: isolate;
}

.l-footer__picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.l-footer__picture > img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: left center;
     object-position: left center;
  opacity: 0.44;
  -webkit-filter: saturate(0.82) contrast(0.92);
          filter: saturate(0.82) contrast(0.92);
}

.l-footer__visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.05);
}

.l-footer__visual-wash {
  position: absolute;
  z-index: 2;
  top: 0;
  right: -1px;
  width: 44%;
  height: 100%;
  pointer-events: none;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(42%, rgba(255, 255, 255, 0.58)), to(#fff));
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.58) 42%, #fff 100%);
  backdrop-filter: blur(14px);
  -webkit-mask-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(25%, rgba(0, 0, 0, 0.45)), color-stop(72%, #000));
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.45) 25%, #000 72%);
  mask-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(25%, rgba(0, 0, 0, 0.45)), color-stop(72%, #000));
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.45) 25%, #000 72%);
}

.l-footer__catch {
  position: absolute;
  z-index: 4;
  left: 40%;
  top: 45%;
  margin: 0;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: clamp(18px, 1.35vw, 25px);
  line-height: 1.85;
  letter-spacing: 0.08em;
  font-weight: 400;
}

.l-footer__info {
  position: relative;
  z-index: 5;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  min-width: 0;
  height: 100%;
  padding: clamp(86px, 8.2vw, 138px) clamp(46px, 4.8vw, 86px) clamp(68px, 5.6vw, 96px);
  background: #fff;
}

.l-footer__nav ul {
  display: grid;
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-footer__nav a {
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 400;
  letter-spacing: 0.04em;
}

.l-footer__nav {
  margin-bottom: clamp(170px, 14vw, 250px);
}

.l-footer__brand {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}

.l-footer__logo {
  width: clamp(70px, 5vw, 92px);
  height: auto;
  margin: 0 auto clamp(38px, 3.3vw, 52px);
}

.l-footer__company {
  display: grid;
  gap: 17px;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 400;
}

.l-footer__company p {
  margin: 0;
}

.l-footer__address {
  display: grid;
  gap: 4px;
  text-align: center;
}

.l-footer__instagram {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 30px;
  height: 30px;
  margin-top: clamp(28px, 2.8vw, 42px);
  border: 0;
}

.l-footer__instagram svg {
  display: block;
  width: 100%;
  height: 100%;
}

.l-footer__copy {
  margin: clamp(38px, 3.4vw, 54px) 0 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

@media (max-width: 1023px) and (min-width: 768px) {
  .l-footer {
    grid-template-columns: minmax(0, 62%) minmax(300px, 38%);
    min-height: 680px;
  }
  .l-footer__info {
    padding: 76px 40px 60px;
  }
  .l-footer__catch {
    left: 43%;
  }
  .l-footer__copy {
    white-space: normal;
  }
}
@media (max-width: 767px) {
  .l-footer {
    display: block;
    min-height: 0;
  }
  .l-footer__visual {
    height: 92vw;
    min-height: 360px;
  }
  .l-footer__visual > img {
    -o-object-position: 34% center;
       object-position: 34% center;
    opacity: 0.38;
  }
  .l-footer__visual::before {
    background: rgba(255, 255, 255, 0.05);
  }
  .l-footer__visual-wash {
    top: auto;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: 38%;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#fff));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 100%);
    -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, #000));
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 70%);
    mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, #000));
    mask-image: linear-gradient(180deg, transparent, #000 70%);
  }
  .l-footer__catch {
    left: 52%;
    top: 48%;
    font-size: 17px;
    line-height: 1.8;
  }
  .l-footer__info {
    height: auto;
    padding: 12vw 24px 18vw;
  }
  .l-footer__nav {
    margin-bottom: 28vw;
  }
  .l-footer__nav ul {
    gap: 10px;
	text-align:center;
  }
  .l-footer__nav a {
    font-size: 13px;
  }
  .l-footer__logo {
    width: 82px;
    margin-bottom: 34px;
  }
  .l-footer__company {
    gap: 14px;
    font-size: 12px;
  }
  .l-footer__instagram {
    width: 28px;
    height: 28px;
    margin-top: 30px;
  }
  .l-footer__copy {
    margin-top: 38px;
    font-size: 11px;
    white-space: normal;
  }
}
/* v1.8 footer refinements ------------------------------------------- */
@media (min-width: 768px) {
  .l-footer {
    width: min(100% - 60px, 1860px);
    margin-inline: auto;
    border-radius: 8px;
  }
}
.l-footer__company {
  font-family: "Noto Serif JP", serif;
}

/* v1.12 refinements -------------------------------------------------- */
@media (min-width: 768px) {
  .l-footer {
    margin: 0 auto 30px;
  }
}
@media (max-width: 767px) {
  .l-footer {
    margin-bottom: 30px;
  }
}
/* v1.69: restore footer nav Japanese -> English hover animation */
.l-footer__nav a {
  position: relative;
  display: inline-grid;
  overflow: hidden;
  padding-bottom: 5px;
  text-decoration: none;
}

.l-footer__nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: -webkit-transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.58s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__nav a:hover::after {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

.l-footer__nav-label {
  grid-area: 1/1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  white-space: nowrap;
}

.l-footer__nav-label .char {
  display: inline-block;
  -webkit-transition: opacity 0.38s ease, -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.38s ease;
  transition: opacity 0.38s ease, -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.38s ease;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.38s ease, filter 0.38s ease;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.38s ease, filter 0.38s ease, -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.38s ease;
  -webkit-transition-delay: calc(var(--i) * 22ms);
          transition-delay: calc(var(--i) * 22ms);
}

.l-footer__nav-label--en {
  font-family: "Cormorant Garamond", serif;
  pointer-events: none;
}

.l-footer__nav-label--en .char {
  -webkit-transform: translateY(115%);
          transform: translateY(115%);
  opacity: 0;
  -webkit-filter: blur(4px);
          filter: blur(4px);
}

.l-footer__nav a:hover .l-footer__nav-label--ja .char {
  -webkit-transform: translateY(-115%);
          transform: translateY(-115%);
  opacity: 0;
  -webkit-filter: blur(4px);
          filter: blur(4px);
}

.l-footer__nav a:hover .l-footer__nav-label--en .char {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
  -webkit-filter: blur(0);
          filter: blur(0);
}

@media (hover: none) {
  .l-footer__nav-label--en {
    display: none;
  }
  .l-footer__nav-label--ja .char {
    -webkit-transform: none !important;
            transform: none !important;
    opacity: 1 !important;
    -webkit-filter: none !important;
            filter: none !important;
  }
}
.l-drawer {
  position: fixed;
  z-index: 50;
  inset: 0;
  background: #080808;
  color: #fff;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  padding: 4vw;
  visibility: hidden;
}

.l-drawer[aria-hidden=false] {
  visibility: visible;
}

.l-drawer__images {
  position: relative;
  overflow: hidden;
}

.l-drawer__images figure {
  position: absolute;
  inset: 0;
}

.l-drawer__images img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.l-drawer__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1vw 2vw;
}

.l-drawer__close {
  color: #fff;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 30px;
  padding: 4px 16px;
}

.l-drawer__nav ul {
  text-align: right;
}

.l-drawer__nav li {
  margin: 0.1em 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(34px, 4.1vw, 72px);
  line-height: 1.05;
}

.l-drawer__lang {
  font-size: 0.85rem;
}

@media (max-width: 767px) {
  .l-drawer {
    grid-template-columns: 1fr;
    padding: 20px;
  }
  .l-drawer__images {
    position: absolute;
    inset: 0;
    opacity: 0.22;
  }
  .l-drawer__content {
    position: relative;
    z-index: 1;
    padding-top: 10px;
  }
  .l-drawer__nav li {
    font-size: 13vw;
    margin-bottom: 15px;
    text-align: center;
  }
}
@media (max-width: 767px) {
  .l-drawer__close i {
    position: relative !important;
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    background: transparent !important;
    -webkit-transform: none !important;
            transform: none !important;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20px;
            flex: 0 0 20px;
  }
  .l-drawer__close i::before, .l-drawer__close i::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 9.5px !important;
    display: block !important;
    width: 20px !important;
    height: 1px !important;
    background: #fff !important;
    -webkit-transform-origin: center !important;
            transform-origin: center !important;
  }
  .l-drawer__close i::before {
    -webkit-transform: rotate(45deg) !important;
            transform: rotate(45deg) !important;
  }
  .l-drawer__close i::after {
    -webkit-transform: rotate(-45deg) !important;
            transform: rotate(-45deg) !important;
  }
}
/* v1.19: keep drawer language visible while MV language is hidden on mobile. */
@media (max-width: 767px) {
  .l-drawer__lang,
  .l-drawer__lang .c-language {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }
  .l-drawer__close {
    cursor: pointer;
    width: 100px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 10px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
/* v1.24: CLOSE is an explicit clickable control. */
.l-drawer__close {
  cursor: pointer;
}

.l-drawer__nav a {
  position: relative;
  display: inline-block;
  color: inherit;
  text-decoration: none;
  -webkit-transition: color 0.45s ease, text-shadow 0.55s ease, opacity 0.45s ease;
  transition: color 0.45s ease, text-shadow 0.55s ease, opacity 0.45s ease;
}
.l-drawer__nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.12em;
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.92);
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.55s ease;
  transition: -webkit-transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.55s ease;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.55s ease;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.55s ease, -webkit-transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.55s ease;
}

@media (hover: hover) and (pointer: fine) {
  .l-drawer__nav a:hover {
    color: #fff;
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.34), 0 0 22px rgba(255, 255, 255, 0.16);
  }
  .l-drawer__nav a:hover::after {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    -webkit-box-shadow: 0 0 8px rgba(255, 255, 255, 0.7), 0 0 22px rgba(255, 255, 255, 0.34);
            box-shadow: 0 0 8px rgba(255, 255, 255, 0.7), 0 0 22px rgba(255, 255, 255, 0.34);
  }
}
.l-drawer__lang .c-language li,
.l-drawer__lang .c-language--fallback > span {
  color: rgba(255, 255, 255, 0.46) !important;
}
.l-drawer__lang .c-language li:first-child,
.l-drawer__lang .c-language--fallback > span:first-child {
  color: #fff !important;
}
.l-drawer__lang .c-language li:first-child::before,
.l-drawer__lang .c-language--fallback > span:first-child::before {
  background: #fff !important;
}
.l-drawer__lang .c-language li:first-child::after,
.l-drawer__lang .c-language--fallback > span:first-child::after {
  background: rgba(255, 255, 255, 0.72) !important;
}
.l-drawer__lang .c-language li:nth-child(2)::after,
.l-drawer__lang .c-language--fallback > span:nth-child(2)::after {
  color: rgba(255, 255, 255, 0.46) !important;
}

/* v1.70: drawer must sit above the fixed header so CLOSE / X stays visible. */
.l-drawer {
  z-index: 80;
}

.l-drawer__close {
  position: relative;
  z-index: 3;
}

/* v1.75: drawer dedicated images + restore CLOSE X on desktop/tablet. */
.l-drawer__close {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}

.l-drawer__close i {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 18px;
          flex: 0 0 18px;
  background: transparent;
}

.l-drawer__close i::before,
.l-drawer__close i::after {
  content: "";
  position: absolute;
  left: 0;
  top: 8.5px;
  width: 18px;
  height: 1px;
  background: #fff;
  -webkit-transform-origin: center;
          transform-origin: center;
}

.l-drawer__close i::before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.l-drawer__close i::after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.c-section-title {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(48px, 5vw, 86px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1;
  overflow: hidden;
}

.c-section-title .char {
  display: inline-block;
}

.c-more {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-width: 170px;
  border-top: 1px solid #111;
  border-bottom: 1px solid #111;
  padding: 8px 4px;
  font-size: 0.96rem;
  font-weight: 400;
}

.c-more span {
  border-left: 1px solid #111;
  padding-left: 18px;
  font-size: 0.76em;
  line-height: 1;
}

.c-reveal-image {
  overflow: hidden;
}

.c-reveal-image {
  position: relative;
  overflow: hidden;
}
.c-reveal-image > img,
.c-reveal-image > picture,
.c-reveal-image > a,
.c-reveal-image > a > img {
  position: relative;
  z-index: 1;
}
.c-reveal-image__veil {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  -webkit-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
}
.c-reveal-image__veil--a {
  background: rgba(255, 255, 255, 0.82);
}
.c-reveal-image__veil--b {
  background: rgba(255, 255, 255, 0.46);
  z-index: 4;
}

/* v1.12 content image radius ----------------------------------------- */
.p-mv__slide img,
.p-about__image img,
.p-shop__card figure img,
.p-column__card img,
.p-gallery__track img {
  border-radius: 8px;
}

/* v1.16: the slower second veil softly blurs the image beneath it. */
.c-reveal-image__veil--b {
  backdrop-filter: blur(8px);
}

/* v1.23 mobile link sizing -------------------------------------------- */
@media (max-width: 767px) {
  .c-more {
    width: min(50%, 210px) !important;
    min-width: 150px !important;
    max-width: 210px !important;
    padding: 10px 5px !important;
    font-size: 1.08rem !important;
  }
  .c-more span {
    font-size: 0.66em !important;
    padding-left: 14px !important;
  }
}
.c-more {
  font-family: "Noto Serif JP", serif;
  padding-left: 12px;
}

@media (max-width: 767px) {
  .c-more {
    padding-left: 12px !important;
  }
}
/* v1.76: restore bordered link hover interaction */
@-webkit-keyframes tefuMoreArrowLoop {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  42% {
    -webkit-transform: translateX(16px);
            transform: translateX(16px);
    opacity: 0;
  }
  43% {
    -webkit-transform: translateX(-16px);
            transform: translateX(-16px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@keyframes tefuMoreArrowLoop {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  42% {
    -webkit-transform: translateX(16px);
            transform: translateX(16px);
    opacity: 0;
  }
  43% {
    -webkit-transform: translateX(-16px);
            transform: translateX(-16px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-more {
    -webkit-transition: background-color 0.45s ease, color 0.45s ease, border-color 0.45s ease;
    transition: background-color 0.45s ease, color 0.45s ease, border-color 0.45s ease;
  }
  .c-more span {
    -webkit-transition: border-color 0.45s ease, color 0.45s ease;
    transition: border-color 0.45s ease, color 0.45s ease;
  }
  .c-more:hover {
    background: #111;
    color: #fff;
    border-color: #fff;
  }
  .c-more:hover span {
    border-left-color: #fff;
    color: #fff;
    -webkit-animation: tefuMoreArrowLoop 0.72s cubic-bezier(0.22, 0.61, 0.36, 1) both;
            animation: tefuMoreArrowLoop 0.72s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  }
}
.p-mv {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 22vw minmax(0, 1fr);
  padding: 7vw 3.2vw 4vw;
  gap: 4vw;
}
.p-mv__caption {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-mv__jp {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-size: clamp(18px, 1.6vw, 28px);
  line-height: 1.8;
}
.p-mv__jp span {
  display: block;
  will-change: transform, opacity, filter;
}
.p-mv__jp span:nth-child(2) {
  position: relative;
  top: 28px;
}
.p-mv__jp span:nth-child(3) {
  position: relative;
  top: 66px;
}
.p-mv__en {
  font-family: "Sahitya", serif;
  font-size: 0.94rem;
  line-height: 2.5;
  margin-top: 92px;
  max-width: 205px;
}
.p-mv__en .char {
  display: inline-block;
}
.p-mv__language {
  margin-top: 184px;
}
.p-mv__slides {
  position: relative;
  min-height: 76svh;
  overflow: hidden;
  border-radius: 8px;
}
.p-mv__slide {
  position: absolute;
  inset: 0;
}
.p-mv__slide:first-child {
  background: #e5e5e3;
}
.p-mv__slide picture,
.p-mv__slide img {
  width: 100%;
  height: 100%;
  display: block;
}
.p-mv__slide img {
  -o-object-fit: cover;
     object-fit: cover;
}

.c-language {
  font-family: "Sahitya", serif;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0;
}
.c-language .bogo-language-switcher,
.c-language .bogo-language-switcher ul,
.c-language ul, .c-language--fallback {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-language li, .c-language--fallback > span {
  position: relative;
  margin: 0;
  padding: 0 15px;
  color: #a8a8a8;
  white-space: nowrap;
}
.c-language li:first-child, .c-language--fallback > span:first-child {
  padding-left: 0;
}
.c-language li:first-child::after, .c-language--fallback > span:first-child::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 1px;
  height: 28px;
  background: #111;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-language li:nth-child(2)::after, .c-language--fallback > span:nth-child(2)::after {
  content: "/";
  position: absolute;
  right: -3px;
  top: 50%;
  color: #a8a8a8;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-language a,
.c-language span {
  color: inherit;
  opacity: 1;
}
.c-language img {
  display: none !important;
}
.c-language .current,
.c-language .current_language,
.c-language .is-current,
.c-language li[aria-current=page] {
  color: #111;
}
.c-language .current::before,
.c-language .current_language::before,
.c-language .is-current::before,
.c-language li[aria-current=page]::before {
  content: "";
  position: absolute;
  left: -8px;
  top: -8px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #111;
}

@media (max-width: 767px) {
  .p-mv {
    height: 100svh;
    min-height: 100svh;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 64px 16px 16px;
    gap: 20px;
    overflow: hidden;
  }
  .p-mv__caption {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(106px, 0.82fr) minmax(0, 1.5fr);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
  }
  .p-mv__jp {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    font-size: 1.18rem;
    justify-self: center;
  }
  .p-mv__jp span:nth-child(2) {
    top: 19px;
  }
  .p-mv__jp span:nth-child(3) {
    top: 48px;
  }
  .p-mv__en {
    margin: 44px 0 0;
    max-width: none;
    font-size: 1rem;
    line-height: 2.5;
  }
  .p-mv__language {
    grid-column: 2;
    margin-top: 88px;
  }
  .p-mv__slides {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border-radius: 8px;
  }
  .c-language {
    font-size: 16px;
  }
  .c-language li, .c-language--fallback > span {
    padding: 0 12px;
  }
}
.p-mv__intro-mask {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  pointer-events: none;
  overflow: hidden;
  border-radius: inherit;
}
.p-mv__intro-mask span {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  will-change: transform;
}

@media (max-width: 767px) {
  .p-mv {
    gap: 0 !important;
    padding-bottom: 18px !important;
  }
  .p-mv__slides {
    -webkit-box-flex: 0 !important;
        -ms-flex: 0 1 auto !important;
            flex: 0 1 auto !important;
    height: clamp(390px, 62svh, 610px) !important;
    min-height: 0 !important;
    margin-top: 32px !important;
  }
}
/* v1.19: Language lives inside the drawer on mobile only. */
@media (max-width: 767px) {
  .p-mv__language {
    display: none !important;
  }
}
/* v1.20 mobile: keep the MV image below the full vertical catch. */
@media (max-width: 767px) {
  .p-mv__slides {
    height: clamp(360px, 56svh, 560px) !important;
    margin-top: 52px !important;
  }
}
/* v1.21 mobile: let the MV image consume all remaining viewport height. */
@media (max-width: 767px) {
  .p-mv__slides {
    -webkit-box-flex: 1 !important;
        -ms-flex: 1 1 0px !important;
            flex: 1 1 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin-top: 52px !important;
    margin-bottom: 0 !important;
  }
}
.p-mv__intro-mask {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 !important;
  -webkit-column-gap: 0 !important;
     -moz-column-gap: 0 !important;
          column-gap: 0 !important;
}
.p-mv__intro-mask span {
  position: relative;
  background: rgba(255, 255, 255, 0.78) !important;
  backdrop-filter: blur(14px) saturate(108%);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.p-mv__intro-mask span:not(:first-child) {
  margin-left: -1px;
  width: calc(100% + 1px);
}

/* v1.80: force visual language state on MV / subpage header.
   Japanese = black/current, EN + CH = gray regardless of Bogo's current classes. */
.p-mv .c-language li,
.p-mv .c-language li > a,
.p-mv .c-language li > span,
.p-mv .c-language.c-language--fallback > span,
.l-header__language .c-language li,
.l-header__language .c-language li > a,
.l-header__language .c-language li > span,
.l-header__language .c-language.c-language--fallback > span {
  color: #a8a8a8 !important;
}

.p-mv .c-language li::before,
.p-mv .c-language.c-language--fallback > span::before,
.l-header__language .c-language li::before,
.l-header__language .c-language.c-language--fallback > span::before {
  content: none !important;
}

.p-mv .c-language li:first-child,
.p-mv .c-language li:first-child > a,
.p-mv .c-language li:first-child > span,
.p-mv .c-language.c-language--fallback > span:first-child,
.l-header__language .c-language li:first-child,
.l-header__language .c-language li:first-child > a,
.l-header__language .c-language li:first-child > span,
.l-header__language .c-language.c-language--fallback > span:first-child {
  color: #111 !important;
}

.p-mv .c-language li:first-child::before,
.p-mv .c-language.c-language--fallback > span:first-child::before,
.l-header__language .c-language li:first-child::before,
.l-header__language .c-language.c-language--fallback > span:first-child::before {
  content: "";
  position: absolute;
  left: -8px;
  top: -8px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #111;
}

@media (min-width: 768px) and (max-width: 999px) and (orientation: landscape) {
  .p-mv__slides {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 3/2;
  }
}
.l-container {
  width: min(1180px, 92vw);
  margin-inline: auto;
}

.p-about {
  padding: 12vw 0 14vw;
}

.p-about > .c-section-title {
  text-align: right;
  margin-bottom: -1vw;
}

.p-about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
  gap: 6vw;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-about__image img {
  width: 100%;
  aspect-ratio: 1/1.06;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-about__lead {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(24px, 2vw, 36px);
  line-height: 1.2;
  margin-bottom: 68px;
}

.p-about__body {
  font-family: "Noto Serif JP", serif;
}

.p-about__body p:not(.p-about__lead) {
  margin-bottom: 22px;
  line-height: 2.05;
}

.p-about__body .c-more {
  margin-top: 15px;
}

.p-about__body [data-fade-up] {
  will-change: transform, opacity, filter;
}

@media (max-width: 767px) {
  .l-container {
    width: calc(100% - 32px);
  }
  .p-about {
    padding: 18vw 0;
  }
  .p-about > .c-section-title {
    text-align: left;
    margin: 0 0 6vw;
  }
  .p-about__grid {
    grid-template-columns: 1fr;
    gap: 9vw;
  }
  .p-about__lead {
    font-size: 2rem;
    margin-bottom: 42px;
  }
  .p-about__body .c-more {
    width: 100%;
  }
}
/* v1.12 refinements -------------------------------------------------- */
@media (min-width: 768px) {
  .p-about.l-container {
    width: min(100% - 60px, 1860px);
  }
}
@media (min-width: 1200px) {
  .p-about__lead {
    white-space: nowrap;
  }
}
/* v1.14: rebalance ABOUT image/body ratio on desktop */
@media (min-width: 768px) {
  .p-about__grid {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
    gap: clamp(64px, 8vw, 150px);
  }
  .p-about__image {
    max-width: 900px;
  }
}
/* v1.81: tablet ABOUT spacing and image ratio */
@media (min-width: 768px) and (max-width: 1199px) {
  .p-about > .c-section-title {
    margin-bottom: 40px;
  }
  .p-about__grid {
    grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 60px);
  }
  .p-about__image {
    max-width: none;
    width: 100%;
  }
}
.p-shop {
  position: relative;
  padding: 8.5vw 0;
  overflow: hidden;
  min-height: 760px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-shop__bg {
  position: absolute;
  inset: 0;
  opacity: 0.88;
}

.p-shop__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.074);
}

.p-shop__bg img {
  width: 100%;
  height: 120%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-shop__inner {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 560px;
}

.p-shop__title {
  position: absolute;
  right: clamp(8px, 1.8vw, 34px);
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  white-space: nowrap;
  font-size: clamp(64px, 5.6vw, 102px);
}

.p-shop__card {
  width: min(860px, 72%);
  margin-inline: auto;
  background: #fff;
  padding: clamp(34px, 3.2vw, 60px);
  -webkit-box-shadow: 0 18px 50px rgba(0, 0, 0, 0.07);
          box-shadow: 0 18px 50px rgba(0, 0, 0, 0.07);
}

.p-shop__card figure img {
  width: 100%;
  aspect-ratio: 16/8.1;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.p-shop__card h3 {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(27px, 2vw, 34px);
  font-weight: 400;
  letter-spacing: 0.12em;
  margin: 30px 0 22px;
}

.p-shop__card .c-more {
  width: 200px;
  margin: 0 auto;
}

@media (max-width: 767px) {
  .p-shop {
    padding: 13vw 0;
    min-height: 0;
  }
  .p-shop__inner {
    display: block;
    min-height: 0;
  }
  .p-shop__title {
    position: relative;
    right: auto;
    top: auto;
    -webkit-transform: none;
            transform: none;
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
    margin-bottom: -2vw;
    z-index: 2;
    font-size: 3.3rem;
  }
  .p-shop__card {
    width: 100%;
    padding: 16px;
  }
  .p-shop__card h3 {
    font-size: 1.65rem;
    margin: 18px 0 14px;
    letter-spacing: 0.09em;
  }
  .p-shop__card .c-more {
    width: 100%;
  }
}
/* v1.12 refinements -------------------------------------------------- */
.p-shop__card .c-more {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-left: auto;
  margin-right: auto;
}

/* v1.23 mobile restore ------------------------------------------------ */
@media (max-width: 767px) {
  .p-shop {
    padding: 16vw 0 !important;
  }
  .p-shop__inner {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important;
    -webkit-box-align: stretch !important;
        -ms-flex-align: stretch !important;
            align-items: stretch !important;
    min-height: 0 !important;
  }
  .p-shop__title {
    position: relative !important;
    -webkit-box-ordinal-group: 1 !important;
        -ms-flex-order: 0 !important;
            order: 0 !important;
    right: auto !important;
    top: auto !important;
    -webkit-transform: none !important;
            transform: none !important;
    -webkit-writing-mode: horizontal-tb !important;
        -ms-writing-mode: lr-tb !important;
            writing-mode: horizontal-tb !important;
    white-space: normal !important;
    margin: 0 0 8vw !important;
    text-align: left !important;
    font-size: clamp(2.7rem, 12vw, 4rem) !important;
    line-height: 1 !important;
    z-index: 2 !important;
  }
  .p-shop__card {
    -webkit-box-ordinal-group: 2 !important;
        -ms-flex-order: 1 !important;
            order: 1 !important;
    width: 100% !important;
    padding: 32px 16px !important;
  }
  .p-shop__card .c-more {
    width: min(50%, 210px) !important;
    min-width: 150px !important;
    max-width: 210px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
.p-news {
  padding: 8vw 0 9vw;
}

.p-news > .c-section-title {
  text-align: center;
  margin-bottom: 4.2vw;
  font-size: clamp(64px, 5.3vw, 96px);
}

.p-news__body {
  width: min(900px, 100%);
  margin-inline: auto;
}

.p-news__list {
  width: 100%;
  margin: 0;
}

.p-news__item {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr) 42px;
  gap: 20px;
  padding: 17px 0;
  border-top: 1px solid #777;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 400;
}

.p-news__item:last-child {
  border-bottom: 1px solid #777;
}

.p-news__item time {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.05rem;
  letter-spacing: 0.04em;
}

.p-news__item i {
  justify-self: end;
  text-align: right;
  font-style: normal;
  font-family: "Cormorant Garamond", serif;
  font-size: 2rem;
  line-height: 1;
}

.p-news__more {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 185px;
  min-width: 185px;
  margin: 48px 0 0 auto;
}

@media (max-width: 767px) {
  .p-news {
    padding: 14vw 0;
  }
  .p-news > .c-section-title {
    font-size: 3.6rem;
    margin-bottom: 8vw;
  }
  .p-news__body {
    width: 100%;
  }
  .p-news__item {
    grid-template-columns: minmax(0, 1fr) 36px;
    gap: 4px 10px;
    padding: 14px 0;
  }
  .p-news__item time {
    grid-column: 1;
  }
  .p-news__item span {
    grid-column: 1;
  }
  .p-news__item i {
    grid-column: 2;
    grid-row: 1/3;
    font-size: 1.9rem;
  }
  .p-news__more {
    width: 84%;
    min-width: 0;
    margin: 30px 0 0 auto;
  }
}
/* v1.23 mobile more button ------------------------------------------- */
@media (max-width: 767px) {
  .p-news__more {
    width: min(50%, 210px) !important;
    min-width: 150px !important;
    max-width: 210px !important;
    margin: 30px 0 0 auto !important;
  }
}
.p-news__item > span {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

/* v1.76: restore NEWS row hover */
@-webkit-keyframes tefuNewsArrowLoop {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  42% {
    -webkit-transform: translateX(18px);
            transform: translateX(18px);
    opacity: 0;
  }
  43% {
    -webkit-transform: translateX(-18px);
            transform: translateX(-18px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@keyframes tefuNewsArrowLoop {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  42% {
    -webkit-transform: translateX(18px);
            transform: translateX(18px);
    opacity: 0;
  }
  43% {
    -webkit-transform: translateX(-18px);
            transform: translateX(-18px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
.p-news__item {
  -webkit-transition: background-color 0.42s ease, padding-left 0.42s ease, padding-right 0.42s ease;
  transition: background-color 0.42s ease, padding-left 0.42s ease, padding-right 0.42s ease;
}

@media (hover: hover) and (pointer: fine) {
  .p-news__item:hover {
    background: #f3f3f1;
    padding-left: 14px;
    padding-right: 14px;
  }
  .p-news__item:hover i {
    -webkit-animation: tefuNewsArrowLoop 0.72s cubic-bezier(0.22, 0.61, 0.36, 1) both;
            animation: tefuNewsArrowLoop 0.72s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  }
}
.p-column {
  padding: 7vw 0 10vw;
  display: grid;
  grid-template-columns: minmax(250px, 0.31fr) minmax(0, 0.69fr);
  gap: clamp(54px, 6vw, 110px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-column__heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(42px, 4vw, 72px);
  margin: 0;
}

.p-column__heading .c-section-title {
  margin: 0;
}

.p-column__grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 32px);
}

.p-column__card {
  min-width: 0;
}

.p-column__card figure {
  aspect-ratio: 0.72/1;
  overflow: hidden;
  margin: 0 0 16px;
  border-radius: 8px;
}

.p-column__card img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-column__card time {
  font-size: 0.78rem;
}

.p-column__card h3 {
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.7;
}

.p-column__meta {
  display: grid;
  gap: 8px;
}

.p-column__more--mobile {
  display: none !important;
}

@media (max-width: 767px) {
  .p-column {
    padding: 14vw 0;
    display: block;
  }
  .p-column__heading {
    display: block;
    margin-bottom: 28px;
  }
  .p-column__heading .c-section-title {
    margin: 0;
  }
  .p-column__more--desktop {
    display: none !important;
  }
  .p-column__grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -ms-scroll-snap-type: x mandatory;
        scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 0 8px;
  }
  .p-column__grid::-webkit-scrollbar {
    display: none;
  }
  .p-column__card {
    display: block !important;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 88%;
            flex: 0 0 88%;
    scroll-snap-align: start;
    margin: auto;
  }
  .p-column__card figure {
    aspect-ratio: 0.82/1;
    margin-bottom: 14px;
  }
  .p-column__more--mobile {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    width: min(50%, 210px) !important;
    min-width: 150px !important;
    max-width: 210px !important;
    margin: 30px 0 0 auto !important;
    padding: 10px 5px !important;
    font-size: 1.08rem !important;
  }
}
@media (min-width: 768px) {
  .p-column {
    grid-template-columns: clamp(250px, 20vw, 320px) minmax(0, 1fr);
  }
  .p-column__heading {
    width: 100%;
    min-width: 0;
  }
  .p-column__heading .c-section-title {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: none;
    white-space: nowrap;
    word-break: keep-all;
    overflow: visible;
  }
  .p-column__more--desktop {
    width: 100%;
    max-width: 100%;
  }
}
.p-column__card h3 {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.p-column__card time {
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 0.04em;
}

/* v1.76: gentle image zoom on COLUMN hover */
.p-column__card figure img {
  -webkit-transition: -webkit-transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: -webkit-transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .p-column__card > a:hover figure img {
    -webkit-transform: scale(1.065);
            transform: scale(1.065);
  }
}
/* v1.77: column image hover uses individual scale property so it does not
   conflict with GSAP's inline transform from c-reveal-image. */
.p-column__card figure img {
  scale: 1;
  -webkit-transition: scale 1.25s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: scale 1.25s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: scale;
}

@media (hover: hover) and (pointer: fine) {
  .p-column__card > a:hover figure img {
    scale: 1.065;
  }
}
/* v1.78: hover zoom is controlled by GSAP in main.js. */
@media (hover: hover) and (pointer: fine) {
  .p-column__card figure {
    overflow: hidden;
  }
}
.p-gallery {
  overflow: hidden;
  padding: 3vw 0 7vw;
}

.p-gallery__heading {
  margin: 0 0 3.2vw;
  padding: 0 4vw;
  text-align: center;
}
.p-gallery__heading .c-section-title {
  margin: 0;
}
.p-gallery__lead {
  margin: 14px 0 0;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(10px, 0.72vw, 13px);
  line-height: 1.8;
  letter-spacing: 0.12em;
  text-align: center;
}
.p-gallery__track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
}
.p-gallery__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 24px;
  padding-right: 24px;
}
.p-gallery figure {
  width: 27vw;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}
.p-gallery img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 767px) {
  .p-gallery {
    padding: 7vw 0 12vw;
  }
  .p-gallery__group {
    gap: 12px;
    padding-right: 12px;
  }
  .p-gallery figure {
    width: 46vw;
  }
}
/* v1.16: stagger even gallery images downward by roughly half an image height. */
@media (min-width: 768px) {
  .p-gallery {
    padding-bottom: 16.65vw;
  }
  .p-gallery__group figure:nth-child(even) {
    -webkit-transform: translateY(9.65vw);
            transform: translateY(9.65vw);
  }
}
@media (max-width: 767px) {
  .p-gallery {
    padding-bottom: 28.4vw;
  }
  .p-gallery__group figure:nth-child(even) {
    -webkit-transform: translateY(16.4vw);
            transform: translateY(16.4vw);
  }
}
.p-gallery__lightbox-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 8px;
  overflow: hidden;
  background: transparent;
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}
.p-gallery__lightbox-trigger img {
  -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (hover: hover) and (pointer: fine) {
  .p-gallery__lightbox-trigger:hover img {
    -webkit-transform: scale(1.025);
            transform: scale(1.025);
  }
}

html.is-lightbox-open,
html.is-lightbox-open body {
  overflow: hidden !important;
}

.c-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.45s ease, visibility 0.45s ease;
  transition: opacity 0.45s ease, visibility 0.45s ease;
}
.c-gallery-lightbox.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.c-gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, 0.92);
  backdrop-filter: blur(12px);
}
.c-gallery-lightbox__shell {
  position: relative;
  z-index: 1;
  width: min(94vw, 1680px);
  height: min(92svh, 1080px);
  display: grid;
  place-items: center;
}
.c-gallery-lightbox__stage {
  width: calc(100% - 150px);
  height: calc(100% - 92px);
  display: grid;
  place-items: center;
  overflow: hidden;
  -ms-touch-action: pan-y;
      touch-action: pan-y;
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}
.c-gallery-lightbox__image {
  display: block;
  max-width: 100%;
  max-height: 90%;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 8px;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition: -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
}
.c-gallery-lightbox.is-zoomed .c-gallery-lightbox__stage {
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
}
.c-gallery-lightbox__close, .c-gallery-lightbox__nav {
  position: absolute;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  -webkit-transition: background 0.35s ease, color 0.35s ease, -webkit-transform 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease, -webkit-transform 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease, transform 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease, transform 0.35s ease, -webkit-transform 0.35s ease;
}
.c-gallery-lightbox__close:hover, .c-gallery-lightbox__nav:hover {
  background: #fff;
  color: #111;
}
.c-gallery-lightbox__close {
  top: 0;
  right: 0;
}
.c-gallery-lightbox__nav {
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-gallery-lightbox__nav:hover {
  -webkit-transform: translateY(-50%) scale(1.06);
          transform: translateY(-50%) scale(1.06);
}
.c-gallery-lightbox__nav--prev {
  left: 0;
}
.c-gallery-lightbox__nav--next {
  right: 0;
}
.c-gallery-lightbox__meta {
  position: absolute;
  bottom: 8px;
  left: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.8);
  font-family: "Cormorant Garamond", serif;
  font-size: 14px;
  letter-spacing: 0.12em;
}
.c-gallery-lightbox__hint {
  position: absolute;
  bottom: 8px;
  right: 0;
  margin: 0;
  color: rgba(255, 255, 255, 0.46);
  font-family: "Sahitya", serif;
  font-size: 10px;
  letter-spacing: 0.12em;
}

@media (max-width: 767px) {
  .c-gallery-lightbox__shell {
    width: 100vw;
    height: 100svh;
  }
  .c-gallery-lightbox__stage {
    width: 100%;
    height: calc(100% - 116px);
    padding: 58px 16px 56px;
    -ms-touch-action: none;
        touch-action: none;
  }
  .c-gallery-lightbox__close {
    top: 18px;
    right: 16px;
    width: 44px;
    height: 44px;
  }
  .c-gallery-lightbox__nav {
    top: auto;
    bottom: 18px;
    width: 44px;
    height: 44px;
    -webkit-transform: none;
            transform: none;
  }
  .c-gallery-lightbox__nav:hover {
    -webkit-transform: none;
            transform: none;
  }
  .c-gallery-lightbox__nav--prev {
    left: 16px;
  }
  .c-gallery-lightbox__nav--next {
    right: 16px;
  }
  .c-gallery-lightbox__meta {
    bottom: 28px;
  }
  .c-gallery-lightbox__hint {
    display: none;
  }
}
/* =========================================================
   Lower page common
========================================================= */
.l-subcontainer {
  width: min(100% - 60px, 1500px);
  margin-inline: auto;
}

.l-header__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 30px;
  pointer-events: auto;
}

.l-header--subpage {
  height: 110px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.l-header--subpage .l-header__logo {
  position: absolute;
  left: 50%;
  top: 18px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transform-origin: center top;
          transform-origin: center top;
}

.l-header--subpage .l-header__logo img {
  width: 72px;
}

.l-header--subpage.is-scrolled .l-header__logo img {
  width: 52px;
}

.l-header--subpage .l-header__actions {
  margin-left: auto;
}

.l-header__language .c-language {
  font-family: "Sahitya", serif;
  font-size: 16px;
}

.p-subhero {
  padding-top: 116px;
  padding-bottom: clamp(120px, 10vw, 170px);
}

.p-subhero__crumb {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  min-height: 30px;
  margin: 0 0 24px;
}

.c-breadcrumb {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.7em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  letter-spacing: 0.04em;
}

.c-breadcrumb i {
  font-style: normal;
  color: #999;
}

.c-breadcrumb span {
  color: #777;
}

.p-subhero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(360px, 0.68fr);
  gap: clamp(72px, 7.8vw, 132px);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.p-subhero__visual {
  margin: 0;
  aspect-ratio: 3.25/1;
  overflow: hidden;
  border-radius: 8px;
}

.p-subhero__visual img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.p-subhero__heading {
  padding-top: clamp(65px, 6vw, 104px);
}

.p-subhero__slug {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(62px, 5.8vw, 92px);
  line-height: 0.86;
  letter-spacing: 0.035em;
  font-weight: 400;
  text-transform: none;
}

.p-subhero__title {
  margin: 18px 0 0;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.12em;
  font-weight: 400;
}

.p-subpage-content {
  padding-bottom: clamp(145px, 12vw, 210px);
}

.p-about-page {
  font-family: "Noto Serif JP", serif;
}

.p-about-page img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.p-about-page figure {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
}

/* =========================================================
   About / intro
========================================================= */
.p-about-page__intro {
  padding: 0 0 clamp(155px, 13vw, 225px);
}

.p-about-page__intro-copy {
  max-width: 760px;
  margin: 0 auto clamp(62px, 5vw, 88px);
  text-align: center;
  font-size: 14px;
  line-height: 2.15;
  letter-spacing: 0.08em;
}

.p-about-page__intro-images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(34px, 4vw, 62px);
  max-width: 920px;
  margin-inline: auto;
}

.p-about-page__intro-images figure {
  aspect-ratio: 1.62/1;
}

/* =========================================================
   About / HISTORY
   Desktop: media left / heading + text right
   Mobile : heading -> media -> text
========================================================= */
.p-about-section {
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  grid-template-areas: "media heading" "media text";
  -webkit-column-gap: clamp(82px, 8.5vw, 145px);
     -moz-column-gap: clamp(82px, 8.5vw, 145px);
          column-gap: clamp(82px, 8.5vw, 145px);
  row-gap: 30px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  margin-bottom: clamp(170px, 14vw, 245px);
}

.p-about-section__heading {
  grid-area: heading;
  padding-top: clamp(56px, 5vw, 92px);
}

.p-about-section__media {
  grid-area: media;
}

.p-about-section__text {
  grid-area: text;
}

.p-about-section__media--stack {
  display: grid;
  gap: 18px;
}

.p-about-section__media--stack figure {
  aspect-ratio: 2.62/1;
}

.p-about-section__en {
  margin: 0 0 17px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(60px, 5.15vw, 82px);
  line-height: 0.88;
  letter-spacing: 0.12em;
  font-weight: 400;
}

.p-about-section__jp {
  margin: 0;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.18em;
  font-weight: 400;
}

.p-about-section__text {
  font-size: 13px;
  line-height: 2.2;
  letter-spacing: 0.06em;
}

.p-about-section__text p {
  margin: 0 0 28px;
}

.p-about-section__text p:last-child {
  margin-bottom: 0;
}

/* =========================================================
   About / MATERIAL
   Desktop: imagery first, then heading/text
   Mobile : heading + lead, imagery, rest text
========================================================= */
.p-about-material {
  max-width: 1160px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-about-material__heading {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  max-width: 1050px;
  width: 100%;
  margin: 0 auto 36px;
}

.p-about-material__lead {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.p-about-material__images {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  display: grid;
  grid-template-columns: 1.3fr 0.84fr 0.84fr;
  grid-template-areas: "main main a" "main main b" "c . .";
  gap: 22px;
  margin-bottom: clamp(78px, 7vw, 112px);
}

.p-about-material__images figure {
  aspect-ratio: 1.52/1;
}

.p-about-material__images .p-about-material__main {
  grid-area: main;
  aspect-ratio: 1.08/1;
}

.p-about-material__images figure:nth-child(2) {
  grid-area: a;
}

.p-about-material__images figure:nth-child(3) {
  grid-area: c;
}

.p-about-material__images figure:nth-child(4) {
  grid-area: b;
}

.p-about-material__heading .p-about-section__en {
  text-align: left;
  margin-bottom: 24px;
}

.p-about-material__heading .p-about-section__jp {
  margin-bottom: 0;
}

.p-about-material__lead, .p-about-material__after {
  max-width: 1050px;
  width: 100%;
  margin-inline: auto;
}

.p-about-material__after {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
  margin-top: 2px;
}

.p-about-material__more {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
  margin: 46px 0 0 auto;
}

@media (max-width: 1023px) {
  .p-subhero__grid {
    grid-template-columns: minmax(0, 1.42fr) minmax(300px, 0.68fr);
    gap: 50px;
  }
  .p-subhero__slug {
    font-size: 64px;
  }
  .p-about-section {
    -webkit-column-gap: 58px;
       -moz-column-gap: 58px;
            column-gap: 58px;
  }
}
@media (max-width: 767px) {
  .l-subcontainer {
    width: calc(100% - 32px);
  }
  .l-header--subpage {
    height: 78px;
    padding: 14px 16px;
  }
  .l-header--subpage .l-header__logo {
    top: 12px;
  }
  .l-header--subpage .l-header__logo img {
    width: 58px;
  }
  .l-header--subpage.is-scrolled .l-header__logo img {
    width: 46px;
  }
  .l-header__language {
    display: none !important;
  }
  .l-header__actions {
    gap: 0;
  }
  .p-subhero {
    padding-top: 82px;
    padding-bottom: 78px;
  }
  .p-subhero__crumb {
    margin-bottom: 14px;
  }
  .c-breadcrumb {
    font-size: 10px;
    gap: 0.55em;
  }
  .p-subhero__grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
  }
  .p-subhero__visual {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
    width: 100%;
    aspect-ratio: 2.65/1;
    margin-bottom: 28px;
  }
  .p-subhero__heading {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    padding: 0;
  }
  .p-subhero__slug {
    font-size: clamp(53px, 16.5vw, 72px);
    line-height: 0.86;
    letter-spacing: 0.03em;
  }
  .p-subhero__title {
    margin-top: 11px;
    font-size: 12px;
  }
  .p-subpage-content {
    padding-bottom: 120px;
  }
  .p-about-page__intro {
    padding-bottom: 96px;
  }
  .p-about-page__intro-copy {
    margin-bottom: 38px;
    text-align: left;
    font-size: 13px;
    line-height: 2.05;
  }
  .p-about-page__intro-copy .u-pc {
    display: none;
  }
  .p-about-page__intro-images {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .p-about-page__intro-images figure {
    aspect-ratio: 1.6/1;
  }
  .p-about-section {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "heading" "media" "text";
    gap: 0;
    margin-bottom: 102px;
  }
  .p-about-section__heading {
    padding: 0;
    margin-bottom: 27px;
  }
  .p-about-section__media {
    margin-bottom: 34px;
  }
  .p-about-section__en {
    font-size: clamp(48px, 15vw, 68px);
    margin-bottom: 10px;
    letter-spacing: 0.08em;
  }
  .p-about-section__jp {
    font-size: 16px;
    letter-spacing: 0.1em;
  }
  .p-about-section__text {
    font-size: 13px;
    line-height: 2.08;
    letter-spacing: 0.035em;
  }
  .p-about-section__text p {
    margin-bottom: 25px;
  }
  .p-about-section__media--stack {
    gap: 10px;
  }
  .p-about-section__media--stack figure {
    aspect-ratio: 2.65/1;
  }
  .p-about-material {
    max-width: none;
  }
  .p-about-material__heading {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    margin-bottom: 28px;
  }
  .p-about-material__heading .p-about-section__en {
    text-align: left;
    margin-bottom: 10px;
  }
  .p-about-material__lead {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-bottom: 36px;
  }
  .p-about-material__images {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "main main" "a b" "c c";
    gap: 10px;
    margin-bottom: 36px;
  }
  .p-about-material__images .p-about-material__main {
    aspect-ratio: 1.78/1;
  }
  .p-about-material__images figure {
    aspect-ratio: 1.48/1;
  }
  .p-about-material__images figure:nth-child(3) {
    max-width: 48%;
    justify-self: center;
    width: 100%;
  }
  .p-about-material__after {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .p-about-material__more {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
    margin-top: 34px;
    margin-left: auto;
  }
}
/* =========================================================
   v1.27 ABOUT detail refinements
========================================================= */
/* Lower-page hero: give the page visual more vertical presence. */
.p-subhero__visual {
  aspect-ratio: 2.6/1;
}

/* HISTORY: taller individual process photographs. */
.p-about-page__history .p-about-section__media--stack figure {
  aspect-ratio: 2.05/1;
}

.p-about-page__history .c-more {
  display: none !important;
}

/* MATERIAL: one centered main image, then three equal images in a row. */
.p-about-material__images {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-areas: none;
  gap: 22px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.p-about-material__images .p-about-material__main {
  grid-area: auto;
  grid-column: 2/6;
  width: 100%;
  aspect-ratio: 1/1;
}

.p-about-material__images figure:nth-child(2),
.p-about-material__images figure:nth-child(3),
.p-about-material__images figure:nth-child(4) {
  grid-area: auto;
  grid-column: span 2;
  width: 100%;
  aspect-ratio: 1.52/1;
}

.p-about-material__heading .p-about-section__jp {
  text-align: left;
}

.p-about-material__more {
  -ms-flex-item-align: center;
      align-self: center;
  margin: 46px auto 0 !important;
}

@media (max-width: 767px) {
  .p-subhero__visual {
    aspect-ratio: 2.12/1;
  }
  .p-about-page__history .p-about-section__media--stack figure {
    aspect-ratio: 2.15/1;
  }
  .p-about-material__heading .p-about-section__jp {
    text-align: center;
  }
  .p-about-material__images {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .p-about-material__images .p-about-material__main {
    grid-column: 1/-1;
    width: 100%;
    aspect-ratio: 1.62/1;
  }
  .p-about-material__images figure:nth-child(2),
  .p-about-material__images figure:nth-child(3) {
    grid-column: auto;
    width: 100%;
    max-width: none;
    aspect-ratio: 1.48/1;
    justify-self: stretch;
  }
  .p-about-material__images figure:nth-child(4) {
    grid-column: 1/-1;
    width: calc(50% - 5px);
    max-width: none;
    aspect-ratio: 1.48/1;
    justify-self: center;
  }
  .p-about-material__more {
    margin: 34px auto 0 !important;
  }
}
.js .l-header--subpage,
.js .p-subhero,
.js .p-subpage-content {
  opacity: 0;
}

/* =========================================================
   v1.29 ABOUT material / history image refinements
========================================================= */
/* Keep all material products fully visible inside their frames. */
.p-about-material__images figure {
  background: #fff;
}

.p-about-material__images figure img {
  -o-object-fit: contain !important;
     object-fit: contain !important;
  -o-object-position: center center;
     object-position: center center;
}

/* Give HISTORY process photographs a little more vertical height. */
.p-about-page__history .p-about-section__media--stack figure {
  aspect-ratio: 1.75/1;
}

@media (max-width: 767px) {
  .p-about-page__history .p-about-section__media--stack figure {
    aspect-ratio: 1.82/1;
  }
}
/* =========================================================
   v1.32 MATERIAL child page
========================================================= */
.p-material-page {
  font-family: "Noto Serif JP", serif;
}

.p-material-page__intro {
  max-width: 760px;
  margin: 0 auto clamp(90px, 9vw, 145px);
  text-align: center;
  font-size: 14px;
  line-height: 2.15;
  letter-spacing: 0.07em;
}

.p-material-page__intro p {
  margin: 0;
}

.p-material-page__intro p + p {
  margin-top: 4px;
}

.p-material-list {
  max-width: 1200px;
  margin-inline: auto;
  display: grid;
  gap: clamp(58px, 5.5vw, 86px);
}

.p-material-item {
  display: grid;
  grid-template-columns: clamp(390px, 39vw, 510px) minmax(0, 1fr);
  gap: clamp(48px, 5vw, 82px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-material-item__visual {
  margin: 0;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 8px;
  background: #f8f8f6;
}

.p-material-item__visual img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 8px;
}

.p-material-item__body {
  min-width: 0;
}

.p-material-item__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 14px;
  margin: 0 0 28px;
  font-weight: 400;
  line-height: 1.4;
}

.p-material-item__title span {
  font-size: 20px;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.p-material-item__title em {
  font-family: "Cormorant Garamond", serif;
  font-size: 18px;
  letter-spacing: 0.14em;
  font-style: normal;
  font-weight: 400;
  text-transform: capitalize;
}

.p-material-item__text {
  margin: 0;
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.055em;
}

@media (max-width: 767px) {
  .p-material-page__intro {
    margin-bottom: 56px;
    text-align: left;
    font-size: 13px;
    line-height: 2.05;
  }
  .p-material-page__intro p + p {
    margin-top: 6px;
  }
  .p-material-list {
    gap: 48px;
  }
  .p-material-item {
    display: block;
  }
  .p-material-item__visual {
    width: 100%;
    aspect-ratio: auto;
    margin-bottom: 22px;
  }
  .p-material-item__visual img {
    width: 100%;
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .p-material-item__body {
    display: block;
  }
  .p-material-item__title {
    display: block;
    margin: 0 0 14px;
  }
  .p-material-item__title span {
    display: block;
    margin-bottom: 6px;
    font-size: 17px;
    letter-spacing: 0.16em;
  }
  .p-material-item__title em {
    display: block;
    font-size: 14px;
    line-height: 1.3;
    letter-spacing: 0.13em;
  }
  .p-material-item__text {
    margin: 0;
    font-size: 13px;
    line-height: 1.95;
    letter-spacing: 0.035em;
  }
}
/* =========================================================
   v1.33 MAINTENANCE page
========================================================= */
.p-maintenance-page {
  --maint-line:#181818;
  --maint-soft:#f6f5f2;
  --maint-accent:#7a211e;
  max-width: 1200px;
  padding-bottom: clamp(100px, 10vw, 170px);
  font-family: "Noto Serif JP", serif;
}

.p-maintenance-lead {
  max-width: 980px;
  margin: 0 auto clamp(35px, 3.33vw, 53px);
  text-align: left;
}

.p-maintenance-lead__title {
  margin: 0 0 34px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 400;
  letter-spacing: 0.18em;
}

.p-maintenance-lead__text {
  max-width: 880px;
  margin-inline: auto;
  font-size: 14px;
  line-height: 2.25;
  letter-spacing: 0.055em;
}

.p-maintenance-lead__text p {
  margin: 0;
}

.p-maintenance-lead__text p + p {
  margin-top: 9px;
}

.p-maintenance-accordion__button {
  display: grid;
  grid-template-columns: 1fr 52px;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: min(100%, 430px);
  min-height: 82px;
  margin: 46px auto 0;
  padding: 0;
  border: 1px solid #111;
  border-radius: 6px;
  background: #111;
  color: #fff;
  cursor: pointer;
  overflow: hidden;
  -webkit-transition: background 0.45s ease, color 0.45s ease;
  transition: background 0.45s ease, color 0.45s ease;
}

.p-maintenance-accordion__button:hover {
  background: #fff;
  color: #111;
}

.p-maintenance-accordion__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 15px 22px;
  text-align: left;
  line-height: 1.45;
}

.p-maintenance-accordion__label small {
  font-size: 11px;
  letter-spacing: 0.14em;
  font-weight: 400;
  opacity: 0.72;
}

.p-maintenance-accordion__label strong {
  font-size: 15px;
  letter-spacing: 0.075em;
  font-weight: 400;
}

.p-maintenance-accordion__icon {
  position: relative;
  display: block;
  border-left: 1px solid currentColor;
}

.p-maintenance-accordion__icon::before, .p-maintenance-accordion__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 17px;
  height: 1px;
  background: currentColor;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: -webkit-transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-maintenance-accordion__icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

.p-maintenance-accordion__button[aria-expanded=true] .p-maintenance-accordion__icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(0);
          transform: translate(-50%, -50%) rotate(0);
}

.p-maintenance-accordion__panel {
  width: 100%;
}

.js .p-maintenance-accordion__panel {
  height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
}

.p-maintenance-accordion__inner {
  padding-top: clamp(42px, 5vw, 70px);
}

.p-maintenance-section {
  margin-bottom: clamp(95px, 9vw, 150px);
}

.p-maintenance-section--major {
  margin-bottom: clamp(90px, 8vw, 130px);
}

.p-maintenance-section--standalone {
  max-width: 1030px;
  margin-inline: auto;
}

.p-maintenance-section--pins {
  max-width: 1120px;
  margin-inline: auto;
}

.p-maintenance-heading {
  font-weight: 400;
}

.p-maintenance-heading--lg {
  position: relative;
  margin: 0 0 clamp(50px, 5vw, 72px);
  padding: 24px 20px 26px;
  text-align: center;
  font-size: clamp(22px, 2.1vw, 31px);
  letter-spacing: 0.19em;
  border-top: 1px solid var(--maint-line);
  border-bottom: 1px solid var(--maint-line);
}

.p-maintenance-heading--md {
  margin: 0 0 52px;
  text-align: center;
  font-size: clamp(19px, 1.7vw, 25px);
  letter-spacing: 0.16em;
}

.p-maintenance-heading--md::before {
  content: "";
  display: block;
  width: 54px;
  height: 1px;
  margin: 0 auto 22px;
  background: #111;
}

.p-maintenance-heading--sm {
  position: relative;
  margin: 0 0 25px;
  padding-left: 18px;
  font-size: clamp(16px, 1.4vw, 20px);
  letter-spacing: 0.1em;
  line-height: 1.55;
}

.p-maintenance-heading--sm::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: 4px;
  height: 1.35em;
  border-radius: 99px;
  background: var(--maint-accent);
}

.p-maintenance-section__intro, .p-maintenance-prose {
  max-width: 860px;
  margin-inline: auto;
  font-size: 14px;
  line-height: 2.25;
  letter-spacing: 0.055em;
}

.p-maintenance-section__intro {
  text-align: left;
}

.p-maintenance-section__intro p, .p-maintenance-prose p {
  margin: 0;
}

.p-maintenance-section__intro p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.p-maintenance-section__intro p + p, .p-maintenance-prose p + p {
  margin-top: 20px;
}

.p-maintenance-material-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(35px, 4.5vw, 66px);
  margin: 0 auto 48px;
}

.p-maintenance-material-card {
  min-width: 0;
}

.p-maintenance-material-card__visual {
  aspect-ratio: 1.5/1;
  margin: 0 0 31px;
  overflow: hidden;
  border-radius: 8px;
  background: #f6f5f2;
}

.p-maintenance-material-card__visual img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.p-maintenance-material-card__body {
  font-size: 13px;
  line-height: 2.05;
  letter-spacing: 0.045em;
}

.p-maintenance-material-card__body p {
  margin: 0;
}

.p-maintenance-material-card__body p + p {
  margin-top: 13px;
}

.p-maintenance-point {
  display: -webkit-inline-box !important;
  display: -ms-inline-flexbox !important;
  display: inline-flex !important;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 21px !important;
  padding: 8px 13px;
  border: 1px solid #111;
  font-size: 12px;
  letter-spacing: 0.1em;
}

.p-maintenance-note {
  max-width: 820px;
  margin: 0 auto 48px;
  text-align: center;
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.05em;
}

.p-maintenance-care-block {
  max-width: 980px;
  margin: 0 auto 58px;
  padding: clamp(28px, 3.5vw, 48px);
  border: 1px solid #d8d6d1;
  border-radius: 8px;
  background: #fff;
}

.p-maintenance-care-block__body {
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.p-maintenance-care-block__body h5 {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  margin: 22px 0 12px;
  padding: 4px 12px;
  background: #111;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.12em;
}

.p-maintenance-care-block__body h5:first-child {
  margin-top: 0;
}

.p-maintenance-care-block__body ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-maintenance-care-block__body li {
  position: relative;
  margin: 0;
  padding-left: 1.2em;
}

.p-maintenance-care-block__body li + li {
  margin-top: 8px;
}

.p-maintenance-care-block__body li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.p-maintenance-example {
  margin: 15px 0 0;
  padding: 14px 17px;
  background: var(--maint-soft);
  font-size: 12px;
  line-height: 1.9;
}

.p-maintenance-summary {
  max-width: 900px;
  margin: 65px auto 0;
  padding: 34px 35px;
  border-top: 1px solid #111;
  border-bottom: 1px solid #111;
  text-align: center;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.06em;
}

.p-maintenance-summary p {
  margin: 0;
}

.p-maintenance-summary p + p {
  margin-top: 10px;
}



.p-maintenance-summary p:first-child span {
  display: inline-block;
  margin: 0 12px;
  color: #aaa;
}

.p-maintenance-warranty-target {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 22px;
  margin: 30px 0;
  padding: 22px 25px;
  background: var(--maint-soft);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-maintenance-warranty-target span {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 17px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.p-maintenance-warranty-target p {
  margin: 0 !important;
}

.p-maintenance-caution {
  position: relative;
  padding-left: 20px;
}

.p-maintenance-caution::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}

.p-maintenance-fitting-list {
  max-width: 920px;
  margin: 45px auto 0;
  border-top: 1px solid #bbb;
}

.p-maintenance-fitting {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 35px;
  padding: 32px 0;
  border-bottom: 1px solid #bbb;
}

.p-maintenance-fitting__num {
  font-family: "Cormorant Garamond", serif;
  font-size: 40px;
  line-height: 1;
  color: #aaa;
  font-weight: 400;
}

.p-maintenance-fitting h3 {
  margin: 0 0 13px;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0.11em;
}

.p-maintenance-fitting p {
  margin: 0;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.045em;
}

.p-maintenance-fitting p + p {
  margin-top: 12px;
}

.p-maintenance-fitting strong {
  font-weight: 500;
}

p.center {
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
}

.p-maintenance-pins__lead {
  max-width: 740px;
  margin: -18px auto 58px;
  text-align: center;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.055em;
}

.p-maintenance-steps {
  display: grid;
  gap: 28px;
}

.p-maintenance-step {
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(38px, 5vw, 75px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 28px;
  border-radius: 8px;
  background: var(--maint-soft);
}

.p-maintenance-step:nth-child(even) {
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
}

.p-maintenance-step:nth-child(even) .p-maintenance-step__visual {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.p-maintenance-step:nth-child(even) .p-maintenance-step__body {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.p-maintenance-step__visual {
  aspect-ratio: 1.35/1;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}

.p-maintenance-step__visual img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.p-maintenance-step__body > span {
  display: block;
  margin-bottom: 13px;
  font-family: "Cormorant Garamond", serif;
  font-size: 38px;
  line-height: 1;
  color: #a5a5a5;
}

.p-maintenance-step__body h3 {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.09em;
}

.p-maintenance-step__body p {
  margin: 0;
  font-size: 13px;
  line-height: 2.05;
  letter-spacing: 0.045em;
}

.p-maintenance-pins__warning {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  grid-template-columns: 80px 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 24px;
  width: 100%;
  margin: 48px auto 0;
  padding: 26px 32px;
  border: 1px solid #111;
  border-radius: 8px;
}

.p-maintenance-pins__warning-mark {
  font-family: "Cormorant Garamond", serif;
  font-size: 100px;
  line-height: 0.8;
  text-align: center;
}

.p-maintenance-pins__warning p {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.06em;
}

.p-maintenance-pins__warning .p-maintenance-step__visual {
  max-width: 40%;
}

.p-maintenance-pins__warning .p-maintenance-step__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 25px;
}

@media (max-width: 767px) {
  .p-maintenance-page {
    padding-bottom: 100px;
  }
	.p-maintenance-section .center{
		text-align:left;
	}
 .p-maintenance-lead {
    margin-bottom: 78px;
    text-align: left;
  }
  .p-maintenance-lead__title {
    text-align: center;
    font-size: 20px;
    margin-bottom: 28px;
  }
  .p-maintenance-lead__text {
    font-size: 13px;
    line-height: 2.08;
  }
  .p-maintenance-accordion__button {
    width: min(100%, 330px);
    min-height: 76px;
    margin-top: 35px;
    grid-template-columns: 1fr 48px;
  }
  .p-maintenance-accordion__label {
    padding: 13px 17px;
  }
  .p-maintenance-accordion__label small {
    font-size: 10px;
  }
  .p-maintenance-accordion__label strong {
    font-size: 13px;
    line-height: 1.6;
  }
  .p-maintenance-accordion__inner {
    padding-top: 35px;
  }
  .p-maintenance-section {
    margin-bottom: 82px;
  }
  .p-maintenance-section--standalone, .p-maintenance-section--pins {
    max-width: none;
  }
  .p-maintenance-heading--lg {
    margin-bottom: 38px;
    padding: 19px 8px 20px;
    font-size: 19px;
    line-height: 1.55;
    letter-spacing: 0.12em;
  }
  .p-maintenance-heading--md {
    margin-bottom: 35px;
    font-size: 18px;
  }
  .p-maintenance-heading--md::before {
    margin-bottom: 17px;
    width: 42px;
  }
  .p-maintenance-heading--sm {
    font-size: 16px;
    margin-bottom: 20px;
  }
  .p-maintenance-section__intro, .p-maintenance-prose {
    font-size: 13px;
    line-height: 2.05;
    text-align: left;
  }
  .p-maintenance-material-grid {
    grid-template-columns: 1fr;
    gap: 48px;
    margin-bottom: 35px;
  }
  .p-maintenance-material-card__visual {
    margin-bottom: 23px;
    aspect-ratio: 1.55/1;
  }
  .p-maintenance-material-card__body {
    font-size: 13px;
  }
  .p-maintenance-note {
    text-align: left;
    font-size: 13px;
  }
  .p-maintenance-care-block {
    margin-bottom: 36px;
    padding: 24px 20px;
  }
  .p-maintenance-care-block__body {
    font-size: 13px;
    line-height: 2;
  }
  .p-maintenance-summary {
    margin-top: 42px;
    padding: 25px 14px;
    font-size: 12px;
    text-align: left;
  }
  
  .p-maintenance-summary p:first-child strong {
    display: block;
  }
  .p-maintenance-summary p:first-child span {
    display: none;
  }
  .p-maintenance-warranty-target {
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 18px;
  }
  .p-maintenance-warranty-target span {
    font-size: 16px;
  }
  .p-maintenance-pins__warning {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .p-maintenance-pins__warning .p-maintenance-step__visual {
    max-width: 100%;
  }
  .p-maintenance-fitting {
    grid-template-columns: 58px 1fr;
    gap: 18px;
    padding: 26px 0;
  }
  .p-maintenance-fitting__num {
    font-size: 32px;
  }
  .p-maintenance-fitting h3 {
    font-size: 16px;
  }
  .p-maintenance-fitting p {
    font-size: 13px;
  }
  .p-maintenance-pins__lead {
    margin: -8px 0 36px;
    text-align: left;
    font-size: 13px;
  }
  .p-maintenance-steps {
    gap: 22px;
  }
  .p-maintenance-step, .p-maintenance-step:nth-child(even) {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 18px;
  }
  .p-maintenance-step:nth-child(even) .p-maintenance-step__visual, .p-maintenance-step:nth-child(even) .p-maintenance-step__body {
    -webkit-box-ordinal-group: initial;
        -ms-flex-order: initial;
            order: initial;
  }
  .p-maintenance-step__visual {
    aspect-ratio: 1.15/1;
  }
  .p-maintenance-step__body > span {
    font-size: 32px;
  }
  .p-maintenance-step__body h3 {
    font-size: 16px;
    margin-bottom: 12px;
  }
  .p-maintenance-step__body p {
    font-size: 13px;
  }
  .p-maintenance-pins__warning {
    grid-template-columns: 52px 1fr;
    gap: 14px;
    margin-top: 30px;
    padding: 20px 18px;
  }
  .p-maintenance-pins__warning-mark {
    font-size: 100px !important;
  }
  .p-maintenance-pins__warning p {
    font-size: 13px;
  }
}
/* ==========================================================================\n   Maintenance readability & heading refinements v1.34\n   ========================================================================== */
.p-maintenance-heading {
  font-weight: 600;
}

.p-maintenance-heading--lg {
  position: relative;
  padding: 32px 20px 34px;
  border-top: 4px solid var(--maint-line);
  border-bottom: 4px solid var(--maint-line);
  font-weight: 600;
}

.p-maintenance-heading--lg::before,
.p-maintenance-heading--lg::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--maint-line);
  pointer-events: none;
}

.p-maintenance-heading--lg::before {
  top: 8px;
}

.p-maintenance-heading--lg::after {
  bottom: 8px;
}

.p-maintenance-heading--md {
  font-weight: 600;
}

.p-maintenance-heading--md::before {
  height: 3px;
}

.p-maintenance-heading--sm {
  font-weight: 600;
}

.p-maintenance-lead__text,
.p-maintenance-section__intro,
.p-maintenance-prose {
  font-size: 16px;
  line-height: 2.15;
  letter-spacing: 0.045em;
}

.p-maintenance-material-card__body,
.p-maintenance-note,
.p-maintenance-care-block__body,
.p-maintenance-fitting p,
.p-maintenance-pins__lead,
.p-maintenance-step__body p,
.p-maintenance-pins__warning p {
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.p-maintenance-example {
  font-size: 14px;
  line-height: 2;
}

.p-maintenance-care-block__body h5 {
  padding: 7px 15px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
}

.p-maintenance-point {
  padding: 10px 15px;
  font-size: 16px;
  font-weight: 600;
}

.p-maintenance-summary {
  font-size: 15px;
  line-height: 2.1;
}



.p-maintenance-summary p:first-child strong {
  font-weight: 600;
}

.p-maintenance-fitting h3,
.p-maintenance-step__body h3 {
  font-weight: 600;
}

.p-maintenance-pins__warning {
  border-color: #6d2833;
}

.p-maintenance-pins__warning-mark {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  color: #a64a4a;
  line-height: 1;
}

@media (max-width: 767px) {
  .p-maintenance-heading--lg {
    padding: 26px 10px 28px;
    border-top-width: 3px;
    border-bottom-width: 3px;
    font-weight: 600;
  }
  .p-maintenance-heading--lg::before {
    top: 7px;
  }
  .p-maintenance-heading--lg::after {
    bottom: 7px;
  }
  .p-maintenance-heading--md {
    font-weight: 600;
  }
  .p-maintenance-heading--md::before {
    height: 3px;
  }
  .p-maintenance-heading--sm {
    font-weight: 600;
  }
  .p-maintenance-lead__text,
  .p-maintenance-section__intro,
  .p-maintenance-prose {
    font-size: 14px;
    line-height: 2.12;
  }
  .p-maintenance-material-card__body,
  .p-maintenance-note,
  .p-maintenance-care-block__body,
  .p-maintenance-fitting p,
  .p-maintenance-pins__lead,
  .p-maintenance-step__body p,
  .p-maintenance-pins__warning p {
    font-size: 14px;
    line-height: 2.08;
  }
  .p-maintenance-care-block__body h5 {
    font-size: 15px;
  }
  .p-maintenance-point {
    font-size: 15px;
  }
  .p-maintenance-summary {
    font-size: 14px;
    line-height: 2.08;
  }
  
  .p-maintenance-pins__warning-mark {
    font-size: 54px;
    line-height: 1;
  }
}
/* ==========================================================================\n   Maintenance font refinements v1.35\n   ========================================================================== */
.p-maintenance-material-grid,
.p-maintenance-note,
.p-maintenance-care-block,
.p-maintenance-summary,
.p-maintenance-section--standalone .p-maintenance-prose,
.p-maintenance-fitting-list,
.p-maintenance-pins__lead,
.p-maintenance-steps,
.p-maintenance-pins__warning,
.p-maintenance-lead__text > p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.p-maintenance-material-card__body,
.p-maintenance-note,
.p-maintenance-care-block__body,
.p-maintenance-example,
.p-maintenance-summary,
.p-maintenance-warranty-target p,
.p-maintenance-caution,
.p-maintenance-fitting p,
.p-maintenance-pins__lead,
.p-maintenance-step__body p,
.p-maintenance-pins__warning p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.p-maintenance-care-block__body h5 {
  min-width: 6.4em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

@media (max-width: 767px) {
  .p-maintenance-care-block__body h5 {
    min-width: 6.4em;
  }
}
/* v1.36 long subpage slug */
@media (min-width: 768px) {
  .p-subhero__slug--long {
    position: relative;
    z-index: 3;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: none;
    margin-left: clamp(-120px, -5.5vw, -62px);
    font-size: clamp(54px, 5vw, 82px);
    white-space: nowrap;
  }
}
@media (max-width: 767px) {
  .p-subhero__slug--long {
    font-size: clamp(42px, 13vw, 58px);
    white-space: nowrap;
    letter-spacing: 0.015em;
  }
}
/* ==========================================================================
   Subpage long-title + maintenance heading refinements v1.37
   ========================================================================== */
/* Pins section headings stay Mincho; only the explanatory copy is Gothic. */
.p-maintenance-section--pins .p-maintenance-heading,
.p-maintenance-section--pins .p-maintenance-heading--lg,
.p-maintenance-section--pins .p-maintenance-heading--md,
.p-maintenance-section--pins .p-maintenance-heading--sm,
.p-maintenance-step__body h3 {
  font-family: "Noto Serif JP", serif;
}

.p-maintenance-step__body h3 {
  font-weight: 600;
}

/* Long page slugs overlap the left visual slightly instead of overflowing. */
@media (min-width: 1024px) {
  .p-subhero__slug--long {
    position: relative;
    z-index: 4;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: none;
    margin-left: clamp(-180px, -8vw, -105px);
    font-size: clamp(58px, 4.9vw, 82px);
    white-space: nowrap;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-subhero__slug--long {
    position: relative;
    z-index: 4;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: none;
    margin-left: -72px;
    font-size: 56px;
    white-space: nowrap;
  }
}
@media (max-width: 767px) {
  .p-subhero__slug--long {
    font-size: clamp(38px, 12vw, 54px);
    letter-spacing: 0.015em;
    white-space: nowrap;
  }
}
/* ==========================================================================
   Lower-page hero proportion refinement v1.38
   ========================================================================== */
@media (min-width: 1024px) {
  .p-subhero__grid {
    grid-template-columns: minmax(0, 1.34fr) minmax(420px, 0.86fr);
    gap: clamp(64px, 6.5vw, 112px);
  }
  .p-subhero__visual {
    aspect-ratio: 1.92/1 !important;
  }
  .p-subhero__heading {
    padding-top: clamp(74px, 6.4vw, 112px);
  }
  .p-subhero__slug--long {
    margin-left: clamp(-150px, -6.5vw, -86px);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-subhero__grid {
    grid-template-columns: minmax(0, 1.22fr) minmax(320px, 0.78fr);
    gap: 42px;
  }
  .p-subhero__visual {
    aspect-ratio: 1.95/1 !important;
  }
  .p-subhero__slug--long {
    margin-left: -58px;
  }
}
/* ==========================================================================
   Maintenance typography + hero title refinement v1.39
   ========================================================================== */
/* Requested Mincho elements inside the long-form maintenance article. */
.p-maintenance-heading--md,
.p-maintenance-care-block__body h5,


/* MAINTENANCE only: keep the long English slug inside the normal heading area. */
@media (min-width: 1024px) {
  .p-subhero__slug--maintenance {
    margin-left: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    font-size: clamp(44px, 3.65vw, 62px) !important;
    letter-spacing: 0.025em !important;
    white-space: nowrap;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-subhero__slug--maintenance {
    margin-left: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    font-size: clamp(36px, 5vw, 48px) !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap;
  }
}
@media (max-width: 767px) {
  .p-subhero__slug--maintenance {
    font-size: clamp(34px, 10.5vw, 46px) !important;
    letter-spacing: 0.015em !important;
  }
}
/* ==========================================================================
   Maintenance typography refinement v1.40
   ========================================================================== */
.p-maintenance-heading--sm {
  font-family: "Noto Serif JP", serif;
}



/* v1.45 ABOUT / HISTORY: heading is nested inside text box */
@media (min-width: 769px) {
  .p-about-page__history {
    grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
    grid-template-areas: "media text";
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
  .p-about-page__history .p-about-section__text {
    grid-area: text;
    align-self: center;
  }
  .p-about-page__history .p-about-section__heading {
    grid-area: auto;
    padding-top: 0;
    margin-bottom: clamp(34px, 3.2vw, 54px);
  }
}
/* ==========================================================================\n   v1.65 maintenance spacing + accordion scroll cue\n   ========================================================================== */
.p-maintenance-page {
  padding-bottom: clamp(32px, 3vw, 52px);
}

.p-maintenance-section--pins {
  margin-bottom: 0;
}

.p-maintenance-scroll-cue {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 132px;
  height: 132px;
  margin: 0 auto clamp(62px, 6vw, 92px);
  color: #111;
  opacity: 0.82;
}

.p-maintenance-scroll-cue__ring {
  position: relative;
  width: 100%;
  height: 100%;
}

.p-maintenance-scroll-cue__svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  -webkit-animation: tefu-maint-scroll-ring 15s linear infinite;
          animation: tefu-maint-scroll-ring 15s linear infinite;
}

.p-maintenance-scroll-cue__svg text {
  font-family: "Cormorant Garamond", serif;
  font-size: 10px;
  letter-spacing: 0.26em;
  fill: currentColor;
}

.p-maintenance-scroll-cue__arrow {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-family: "Cormorant Garamond", serif;
  font-size: 31px;
  line-height: 1;
  font-weight: 400;
}

@-webkit-keyframes tefu-maint-scroll-ring {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes tefu-maint-scroll-ring {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@media (max-width: 767px) {
  .p-maintenance-page {
    padding-bottom: 24px;
  }
  .p-maintenance-section--pins {
    margin-bottom: 0;
  }
  .p-maintenance-scroll-cue {
    width: 108px;
    height: 108px;
    margin-bottom: 54px;
  }
  .p-maintenance-scroll-cue__svg text {
    font-size: 9px;
  }
  .p-maintenance-scroll-cue__arrow {
    font-size: 27px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-maintenance-scroll-cue__svg {
    -webkit-animation: none;
            animation: none;
  }
}
/* v1.66 warning mark vertical alignment */
.p-maintenance-pins__warning-mark {
  line-height: 0.5;
  margin-top: -0.2em;
}

/* NEWS / COLUMN archives + article detail */
.p-archive {
  padding-bottom: clamp(130px, 12vw, 200px);
}

.p-archive__heading {
  margin: 0 0 clamp(52px, 5vw, 82px);
  text-align: center;
}

.p-archive__eyebrow {
  margin: 0 0 10px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(42px, 4vw, 64px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.p-archive__heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.14em;
}

.p-news--archive {
  padding: 0;
}

.p-news--archive .p-news__body {
  width: min(980px, 100%);
}

.p-news--archive .p-news__item {
  padding: 21px 0;
}

.p-column-archive__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(48px, 5vw, 82px) clamp(20px, 2vw, 34px);
}

.p-column-archive__card figure {
  margin: 0 0 17px;
  aspect-ratio: 1.55/1;
  overflow: hidden;
  border-radius: 8px;
  background: #f5f4f1;
}

.p-column-archive__card figure img, .p-column-archive__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-column-archive__meta {
  display: grid;
  gap: 7px;
}

.p-column-archive__meta time {
  font-family: "Cormorant Garamond", serif;
  font-size: 13px;
  letter-spacing: 0.06em;
}

.p-column-archive__meta h2 {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 1.75;
  font-weight: 400;
  letter-spacing: 0.035em;
}

.c-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: clamp(70px, 7vw, 110px);
}

.c-pagination .page-numbers {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 9px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
  padding: 0;
}

.c-pagination li {
  margin: 0;
}

.c-pagination a, .c-pagination span {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  padding: 0 10px;
  border: 1px solid #bdbbb5;
  border-radius: 50%;
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
  line-height: 1;
  -webkit-transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, -webkit-transform 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, -webkit-transform 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s ease, -webkit-transform 0.35s ease;
}

.c-pagination a:hover {
  background: #111;
  color: #fff;
  border-color: #111;
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}

.c-pagination .current {
  background: #111;
  color: #fff;
  border-color: #111;
}

.c-pagination .prev, .c-pagination .next {
  border-color: transparent;
  font-size: 22px;
}

.p-article {
  max-width: 1040px;
  padding-bottom: clamp(150px, 12vw, 210px);
}

.p-article__header {
  max-width: 900px;
  margin: 0 auto clamp(46px, 5vw, 72px);
  text-align: center;
}

.p-article__header time {
  display: block;
  margin-bottom: 12px;
  font-family: "Cormorant Garamond", serif;
  font-size: 15px;
  letter-spacing: 0.07em;
}

.p-article__header h2 {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(24px, 2.25vw, 34px);
  line-height: 1.75;
  font-weight: 400;
  letter-spacing: 0.055em;
}

.p-article__eyecatch {
  margin: 0 auto clamp(55px, 6vw, 90px);
  aspect-ratio: 1.8/1;
  overflow: hidden;
  border-radius: 8px;
}

.p-article__eyecatch img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.p-article__body {
  max-width: 850px;
  margin-inline: auto;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15.5px;
  line-height: 2.15;
  letter-spacing: 0.04em;
}

.p-article__body h2, .p-article__body h3, .p-article__body h4 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  line-height: 1.65;
}

.p-article__body img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.p-article__back {
  margin: 65px 0 0 auto;
}

.c-share {
  max-width: 850px;
  margin: clamp(68px, 7vw, 105px) auto 0;
  padding-top: 26px;
  border-top: 1px solid #c9c7c1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 24px;
}

.c-share__label {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  letter-spacing: 0.16em;
}

.c-share__items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
}

.c-share__button {
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  padding: 0 13px;
  border: 1px solid #111;
  border-radius: 999px;
  font-family: "Cormorant Garamond", serif;
  font-size: 17px;
  letter-spacing: 0.02em;
  -webkit-transition: background 0.35s ease, color 0.35s ease;
  transition: background 0.35s ease, color 0.35s ease;
}

.c-share__button:hover {
  background: #111;
  color: #fff;
}

.c-share__button--line {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  font-weight: 500;
}

@media (max-width: 767px) {
  .p-archive {
    padding-bottom: 105px;
  }
  .p-archive__heading {
    text-align: left;
    margin-bottom: 40px;
  }
  .p-archive__eyebrow {
    font-size: 43px;
  }
  .p-news--archive .p-news__item {
    grid-template-columns: 82px minmax(0, 1fr) 24px;
    gap: 11px;
    padding: 16px 0;
  }
  .p-column-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px 12px;
  }
  .p-column-archive__card figure {
    aspect-ratio: 0.78/1;
    margin-bottom: 10px;
  }
  .p-column-archive__meta {
    gap: 4px;
  }
  .p-column-archive__meta time {
    font-size: 10px;
  }
  .p-column-archive__meta h2 {
    font-size: 11px;
    line-height: 1.65;
  }
  .c-pagination {
    margin-top: 62px;
  }
  .c-pagination .page-numbers {
    gap: 6px;
  }
  .c-pagination a, .c-pagination span {
    min-width: 36px;
    height: 36px;
    font-size: 14px;
  }
  .p-article {
    padding-bottom: 115px;
  }
  .p-article__header {
    text-align: left;
    margin-bottom: 34px;
  }
  .p-article__header time {
    font-size: 13px;
  }
  .p-article__header h2 {
    font-size: 20px;
    line-height: 1.7;
  }
  .p-article__eyecatch {
    aspect-ratio: 1.42/1;
    margin-bottom: 38px;
  }
  .p-article__body {
    font-size: 14px;
    line-height: 2.05;
  }
  .p-article__back {
    margin-top: 45px;
  }
  .c-share {
    margin-top: 54px;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  .c-share__label {
    font-size: 18px;
  }
  .c-share__button {
    min-width: 39px;
    height: 39px;
    padding: 0 11px;
  }
  .c-share__button--line {
    font-size: 10px;
  }
}
/* v1.42 share button refinements */
.c-share__button {
  padding: 0;
  width: 44px;
  min-width: 44px;
}

.c-share__button i {
  font-size: 21px;
  line-height: 1;
  font-weight: 400;
}

.c-share__button:hover i {
  color: #fff;
}

.p-article__back {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 200px;
  max-width: 100%;
  margin: 65px auto 0;
}

@media (max-width: 767px) {
  .c-share__button {
    width: 39px;
    min-width: 39px;
    height: 39px;
  }
  .c-share__button i {
    font-size: 19px;
  }
  .p-article__back {
    width: min(50%, 190px);
    margin-top: 45px;
  }
}
/* v1.44: NEWS / COLUMN hero uses only the shared MV image. */
.p-subhero--news .p-subhero__grid,
.p-subhero--column .p-subhero__grid {
  grid-template-columns: 1fr;
}

.p-subhero--news .p-subhero__visual,
.p-subhero--column .p-subhero__visual {
  width: 100%;
}

@media (max-width: 767px) {
  .p-subhero--news .p-subhero__visual,
  .p-subhero--column .p-subhero__visual {
    margin-bottom: 0;
  }
}
.p-column-archive__meta h2 {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.p-column-archive__meta time {
  font-family: "Cormorant Garamond", serif;
  letter-spacing: 0.04em;
}

.p-news--archive .p-news__item > span {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

/* v1.76: archive hover parity */
.p-column-archive__card figure img {
  -webkit-transition: -webkit-transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: -webkit-transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1), -webkit-transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .p-column-archive__card > a:hover figure img {
    -webkit-transform: scale(1.055);
            transform: scale(1.055);
  }
  .p-news--archive .p-news__item:hover {
    background: #f3f3f1;
  }
}
/* v1.77: keep archive hover independent from GSAP transform too. */
.p-column-archive__card figure img {
  scale: 1;
  -webkit-transition: scale 1.25s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition: scale 1.25s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: scale;
}

@media (hover: hover) and (pointer: fine) {
  .p-column-archive__card > a:hover figure img {
    scale: 1.055;
  }
}
/* v1.49 hover interactions are maintained in assets/css/style.css. */
/* SHOP INFORMATION page -------------------------------------------------- */
.p-shop-page {
  overflow: hidden;
}

.p-shop-page__gallery {
  margin-top: clamp(58px, 7vw, 120px);
}

.p-shop-page__gallery .p-gallery {
  margin-top: 0;
  margin-bottom: clamp(110px, 11vw, 190px);
}

.p-shop-list {
  padding-bottom: clamp(130px, 12vw, 220px);
}

.p-shop-list__heading {
  max-width: 880px;
  margin: 0 auto clamp(76px, 8vw, 130px);
  text-align: center;
}

.p-shop-list__en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(52px, 6vw, 96px);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.p-shop-list__title {
  margin-top: 26px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(18px, 1.35vw, 24px);
  font-weight: 400;
  letter-spacing: 0.18em;
}

.p-shop-list__lead {
  max-width: 720px;
  margin: 42px auto 0;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: 0.06em;
}

.p-shop-list__areas {
  display: grid;
  gap: clamp(78px, 7vw, 118px);
}

.p-shop-area__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 4px 18px;
  border-bottom: 2px solid #111;
}

.p-shop-area__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(21px, 1.7vw, 30px);
  font-weight: 400;
  letter-spacing: 0.13em;
}

.p-shop-area__count {
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
  letter-spacing: 0.12em;
  color: #8d8d8d;
}

.p-shop-table {
  border-bottom: 1px solid #111;
}

.p-shop-table__header, .p-shop-row {
  display: grid;
  grid-template-columns: minmax(250px, 0.92fr) minmax(420px, 1.55fr) minmax(150px, 0.38fr);
  -webkit-column-gap: clamp(28px, 3.5vw, 72px);
     -moz-column-gap: clamp(28px, 3.5vw, 72px);
          column-gap: clamp(28px, 3.5vw, 72px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-shop-table__header {
  min-height: 54px;
  padding: 0 4px;
  border-bottom: 1px solid #d8d8d8;
  font-family: "Cormorant Garamond", serif;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: #8b8b8b;
}

.p-shop-table__header span:last-child {
  text-align: right;
}

.p-shop-row {
  position: relative;
  min-height: 126px;
  padding: 28px 4px;
  border-bottom: 1px solid #dedede;
  -webkit-transition: background-color 0.5s cubic-bezier(0.22, 1, 0.36, 1), padding-left 0.5s cubic-bezier(0.22, 1, 0.36, 1), padding-right 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: background-color 0.5s cubic-bezier(0.22, 1, 0.36, 1), padding-left 0.5s cubic-bezier(0.22, 1, 0.36, 1), padding-right 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-shop-row:last-child {
  border-bottom: 0;
}

.p-shop-row:hover {
  background: #f5f5f2;
  padding-left: 18px;
  padding-right: 18px;
}

.p-shop-row__name {
  font-family: "Noto Serif JP", serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.06em;
}

.p-shop-row__floor {
  margin-top: 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #777;
}

.p-shop-row__address {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 5px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.035em;
}

.p-shop-row__postal {
  font-size: 11px;
  color: #888;
  letter-spacing: 0.07em;
}

.p-shop-row__map {
  text-align: right;
}

.p-shop-row__map a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 8px;
  font-family: "Cormorant Garamond", serif;
  font-size: 14px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  position: relative;
  padding-bottom: 4px;
}

.p-shop-row__map a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #111;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition: -webkit-transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-shop-row__map a:hover::after {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

.p-shop-row__map i {
  font-size: 18px;
  -webkit-transition: -webkit-transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-shop-row__map a:hover i {
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}

.p-shop-list__empty {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  letter-spacing: 0.08em;
}

@media (max-width: 767px) {
  .p-shop-page__gallery {
    margin-top: 46px;
  }
  .p-shop-page__gallery .p-gallery {
    margin-bottom: 104px;
  }
  .p-shop-list {
    padding-bottom: 120px;
  }
  .p-shop-list__heading {
    margin-bottom: 74px;
  }
  .p-shop-list__en {
    font-size: clamp(40px, 13vw, 58px);
    white-space: normal;
  }
  .p-shop-list__title {
    margin-top: 18px;
    font-size: 16px;
  }
  .p-shop-list__lead {
    margin-top: 32px;
    text-align: left;
    font-size: 13px;
    line-height: 2.05;
  }
  .p-shop-list__areas {
    gap: 76px;
  }
  .p-shop-area__head {
    padding-bottom: 14px;
  }
  .p-shop-area__title {
    font-size: 19px;
  }
  .p-shop-table__header {
    display: none;
  }
  .p-shop-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "store map" "address address";
    -webkit-column-gap: 20px;
       -moz-column-gap: 20px;
            column-gap: 20px;
    row-gap: 20px;
    min-height: 0;
    padding: 26px 0;
  }
  .p-shop-row:hover {
    padding-left: 0;
    padding-right: 0;
    background: transparent;
  }
  .p-shop-row__store {
    grid-area: store;
  }
  .p-shop-row__map {
    grid-area: map;
    align-self: start;
  }
  .p-shop-row__address {
    grid-area: address;
    font-size: 12px;
    line-height: 1.8;
  }
  .p-shop-row__name {
    font-size: 15px;
    line-height: 1.65;
  }
  .p-shop-row__floor {
    font-size: 11px;
    margin-top: 6px;
  }
  .p-shop-row__map a span {
    display: none;
  }
  .p-shop-row__map i {
    font-size: 21px;
  }
  .p-shop-row__map a {
    padding: 4px;
  }
  .p-shop-row__map a::after {
    display: none;
  }
}
.p-contact-page {
  padding: clamp(90px, 8vw, 150px) 0 clamp(130px, 11vw, 210px);
  background: #f5f5f2;
}

.p-contact-page__wrap {
  max-width: 1160px;
}

.p-contact-card {
  width: 100%;
  max-width: 1100px;
  margin-inline: auto;
  padding: clamp(48px, 6vw, 88px) clamp(34px, 6vw, 88px);
  background: #fff;
  border: 1px solid rgba(17, 17, 17, 0.06);
  border-radius: 8px;
  -webkit-box-shadow: 0 28px 70px rgba(27, 25, 22, 0.09), 0 4px 18px rgba(27, 25, 22, 0.05);
          box-shadow: 0 28px 70px rgba(27, 25, 22, 0.09), 0 4px 18px rgba(27, 25, 22, 0.05);
}

.p-contact-card__header {
  max-width: 720px;
  margin: 0 auto clamp(54px, 6vw, 82px);
  text-align: center;
}

.p-contact-card__en {
  font-family: "Cormorant Garamond", serif;
  font-size: 15px;
  letter-spacing: 0.18em;
}

.p-contact-card__title {
  margin-top: 14px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 400;
  letter-spacing: 0.12em;
}

.p-contact-card__lead {
  margin-top: 28px;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.p-contact-form {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
}

.p-contact-form__row {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 42px;
  padding: 26px 0;
  border-top: 1px solid #dddcd8;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.p-contact-form__row:last-of-type {
  border-bottom: 1px solid #dddcd8;
}

.p-contact-form__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 12px;
  padding-top: 13px;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  letter-spacing: 0.07em;
}

.p-contact-form__required {
  display: inline-grid;
  place-items: center;
  min-width: 40px;
  height: 22px;
  padding: 0 7px;
  background: #762936;
  color: #fff;
  border-radius: 999px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
}

.p-contact-form__optional {
  color: #999;
  font-size: 10px;
  letter-spacing: 0.1em;
}

.p-contact-form input[type=text],
.p-contact-form input[type=email],
.p-contact-form input[type=tel],
.p-contact-form textarea {
  width: 100%;
  border: 1px solid #d4d2ce;
  border-radius: 4px;
  background: #fbfbfa;
  color: #111;
  font: inherit;
  outline: none;
  -webkit-transition: border-color 0.35s ease, background 0.35s ease, -webkit-box-shadow 0.35s ease;
  transition: border-color 0.35s ease, background 0.35s ease, -webkit-box-shadow 0.35s ease;
  transition: border-color 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
  transition: border-color 0.35s ease, background 0.35s ease, box-shadow 0.35s ease, -webkit-box-shadow 0.35s ease;
}

.p-contact-form input[type=text],
.p-contact-form input[type=email],
.p-contact-form input[type=tel] {
  min-height: 50px;
  padding: 11px 15px;
}

.p-contact-form textarea {
  min-height: 220px;
  padding: 15px;
  resize: vertical;
  line-height: 1.9;
}

.p-contact-form input:focus,
.p-contact-form textarea:focus {
  border-color: #762936;
  background: #fff;
  -webkit-box-shadow: 0 0 0 3px rgba(118, 41, 54, 0.08);
          box-shadow: 0 0 0 3px rgba(118, 41, 54, 0.08);
}

.p-contact-form .wpcf7-not-valid {
  border-color: #8d2736 !important;
}

.p-contact-form .wpcf7-not-valid-tip {
  margin-top: 8px;
  color: #8d2736;
  font-size: 12px;
}

.p-contact-form__privacy {
  margin-top: clamp(54px, 6vw, 78px);
}

.p-contact-form__privacy-heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.p-contact-form__privacy-heading strong {
  font-family: "Noto Serif JP", serif;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.p-contact-form__privacy-heading span {
  font-family: "Cormorant Garamond", serif;
  font-size: 12px;
  color: #999;
  letter-spacing: 0.16em;
}

.p-contact-form__privacy-scroll {
  height: 245px;
  overflow-y: auto;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  padding: 24px 28px;
  border: 1px solid #d9d7d3;
  background: #fafaf8;
  scrollbar-width: thin;
  scrollbar-color: #9b9892 transparent;
}

.p-contact-form__privacy-scroll h3 {
  margin: 24px 0 8px;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  font-weight: 500;
}

.p-contact-form__privacy-scroll h3:first-child {
  margin-top: 0;
}

.p-contact-form__privacy-scroll p {
  font-size: 12px;
  line-height: 2;
  color: #555;
}

.p-contact-form__acceptance {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 25px;
}

.p-contact-form__acceptance .wpcf7-list-item {
  margin: 0;
}

.p-contact-form__acceptance label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  cursor: pointer;
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
}

.p-contact-form__acceptance input {
  width: 17px;
  height: 17px;
  accent-color: #762936;
}

.p-contact-form__submit {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 42px;
}

.p-contact-form__submit .wpcf7-submit {
  min-width: 260px;
  min-height: 62px;
  padding: 15px 54px;
  border: 1px solid #762936;
  border-radius: 2px;
  background: #762936;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  letter-spacing: 0.16em;
  cursor: pointer;
  -webkit-box-shadow: 0 10px 24px rgba(118, 41, 54, 0.16);
          box-shadow: 0 10px 24px rgba(118, 41, 54, 0.16);
  -webkit-transition: background 0.35s ease, color 0.35s ease, -webkit-transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.42s ease;
  transition: background 0.35s ease, color 0.35s ease, -webkit-transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.42s ease;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.42s ease, background 0.35s ease, color 0.35s ease;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.42s ease, background 0.35s ease, color 0.35s ease, -webkit-transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.42s ease;
}

.p-contact-form__submit .wpcf7-submit:hover {
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
  -webkit-box-shadow: 0 18px 34px rgba(118, 41, 54, 0.25);
          box-shadow: 0 18px 34px rgba(118, 41, 54, 0.25);
  background: #fff;
  color: #762936;
}

.p-contact-form .wpcf7-spinner {
  position: absolute;
  left: calc(50% + 145px);
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.p-contact-form .wpcf7-response-output {
  margin: 28px 0 0 !important;
  padding: 14px 18px !important;
  border-width: 1px !important;
  font-size: 13px;
  line-height: 1.8;
}

.p-contact-page--thanks {
  min-height: 55vh;
}

.p-contact-thanks {
  max-width: 880px;
  text-align: center;
}

.p-contact-thanks__mark {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 24px;
  border: 1px solid #762936;
  border-radius: 50%;
  color: #762936;
  font-size: 25px;
}

.p-contact-thanks__en {
  font-family: "Cormorant Garamond", serif;
  font-size: 14px;
  letter-spacing: 0.18em;
  color: #762936;
}

.p-contact-thanks__title {
  margin-top: 16px;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 400;
  letter-spacing: 0.08em;
}

.p-contact-thanks__text {
  margin: 34px auto 0;
  max-width: 650px;
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  line-height: 2.1;
}

.p-contact-thanks__button {
  margin: 46px auto 0;
}

@media (max-width: 767px) {
  .p-contact-page {
    padding: 38px 0 30px;
  }
  .p-contact-card {
    padding: 42px 20px 50px;
    border-radius: 6px;
    -webkit-box-shadow: 0 18px 45px rgba(27, 25, 22, 0.08);
            box-shadow: 0 18px 45px rgba(27, 25, 22, 0.08);
  }
  .p-contact-card__header {
    margin-bottom: 42px;
  }
  .p-contact-card__title {
    font-size: 20px;
  }
  .p-contact-card__lead {
    text-align: left;
    font-size: 13px;
  }
  .p-contact-form {
    font-size: 13px;
  }
  .p-contact-form__row {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 22px 0;
  }
  .p-contact-form__label {
    padding-top: 0;
    font-size: 14px;
  }
  .p-contact-form input[type=text],
  .p-contact-form input[type=email],
  .p-contact-form input[type=tel] {
    min-height: 48px;
  }
  .p-contact-form textarea {
    min-height: 200px;
  }
  .p-contact-form__privacy-scroll {
    height: 220px;
    padding: 20px 18px;
  }
  .p-contact-form__privacy-heading {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .p-contact-form__privacy-heading strong {
    font-size: 15px;
  }
  .p-contact-form__acceptance label {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    font-size: 12px;
    line-height: 1.7;
  }
  .p-contact-form__submit .wpcf7-submit {
    width: 100%;
    min-width: 0;
  }
  .p-contact-form .wpcf7-spinner {
    position: static;
    -webkit-transform: none;
            transform: none;
    margin: 20px 0 0 12px;
  }
  .p-contact-thanks__text {
    font-size: 13px;
    text-align: left;
  }
}
/* 404 ------------------------------------------------------------ */
.p-error404 {
  padding: clamp(150px, 15vw, 230px) 30px clamp(110px, 12vw, 180px);
}

.p-error404__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.p-error404__card {
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 8vw, 120px) clamp(28px, 7vw, 90px);
  background: #fff;
  border-top: 3px solid #111;
  border-bottom: 1px solid #111;
  -webkit-box-shadow: 0 22px 65px rgba(0, 0, 0, 0.07);
          box-shadow: 0 22px 65px rgba(0, 0, 0, 0.07);
  text-align: center;
}

.p-error404__card::before {
  content: "";
  position: absolute;
  inset: 7px 0 auto;
  border-top: 1px solid rgba(17, 17, 17, 0.35);
}

.p-error404__code {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(100px, 15vw, 210px);
  font-weight: 400;
  line-height: 0.72;
  letter-spacing: -0.04em;
  color: rgba(17, 17, 17, 0.055);
}

.p-error404__en {
  margin: 34px 0 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
  letter-spacing: 0.2em;
}

.p-error404__title {
  margin: 18px 0 0;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(22px, 2.3vw, 34px);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.7;
}

.p-error404__text {
  max-width: 700px;
  margin: 30px auto 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 2.05;
}

.p-error404__button {
  margin: 48px auto 0;
}

@media (max-width: 767px) {
  .p-error404 {
    padding: 120px 16px 90px;
  }
  .p-error404__card {
    padding: 64px 22px 70px;
  }
  .p-error404__code {
    font-size: 96px;
  }
  .p-error404__en {
    margin-top: 28px;
    font-size: 13px;
  }
  .p-error404__title {
    font-size: 20px;
    line-height: 1.8;
  }
  .p-error404__text {
    margin-top: 24px;
    font-size: 14px;
    line-height: 2;
    text-align: left;
  }
  .p-error404__text br {
    display: none;
  }
}
.p-company {
  padding: 0 0 clamp(140px, 12vw, 210px);
}

.p-company__intro {
  display: grid;
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
  gap: clamp(48px, 7vw, 120px);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  margin-bottom: clamp(52px, 5.5vw, 86px);
}

.p-company__eyebrow {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(40px, 4.2vw, 66px);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: 0.04em;
}

.p-company__lead {
  max-width: 760px;
  margin: 4px 0 0;
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: 0.055em;
}

.p-company__table {
  border-top: 3px solid #111;
  border-bottom: 3px solid #111;
}

.p-company__row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(180px, 25%) minmax(0, 1fr);
  min-height: 92px;
  border-top: 1px solid rgba(17, 17, 17, 0.32);
}

.p-company__row:first-child {
  border-top: 0;
}

.p-company__row::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  right: 0;
  border-top: 1px solid rgba(17, 17, 17, 0.12);
  pointer-events: none;
}

.p-company__term, .p-company__desc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
  padding: 28px clamp(20px, 2.8vw, 44px);
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.06em;
}

.p-company__term {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  border-right: 1px solid rgba(17, 17, 17, 0.28);
}

.p-company__desc {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.p-company__desc a {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  border-bottom: 1px solid #111;
  padding-bottom: 2px;
}

.p-company__desc a::after {
  content: "↗";
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
}

@media (max-width: 767px) {
  .p-company {
    padding-bottom: 115px;
  }
  .p-company__intro {
    display: block;
    margin-bottom: 44px;
  }
  .p-company__eyebrow {
    font-size: 44px;
    margin-bottom: 26px;
  }
  .p-company__lead {
    font-size: 13px;
    line-height: 2.05;
  }
  .p-company__table {
    border-width: 2px;
  }
  .p-company__row {
    display: block;
    min-height: 0;
    padding: 22px 0 24px;
  }
  .p-company__row::before {
    top: 4px;
  }
  .p-company__term, .p-company__desc {
    display: block;
    padding: 0 4px;
    border: 0;
  }
  .p-company__term {
    margin-bottom: 8px;
    font-size: 13px;
  }
  .p-company__desc {
    font-size: 13px;
    line-height: 1.9;
  }
}
/* v1.81: gallery marquee supports mouse drag / touch swipe. */
.p-gallery {
  cursor: -webkit-grab;
  cursor: grab;
  -ms-touch-action: pan-y;
      touch-action: pan-y;
  -webkit-user-select: none;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
}
.p-gallery.is-dragging {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}
.p-gallery.is-dragging .p-gallery__track,
.p-gallery.is-dragging .p-gallery__lightbox-trigger {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.p-gallery__track {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}
/* v1.90: MV manual navigation + stronger first-slide camera -------- */
.p-mv__arrow {
  position: absolute;
  z-index: 12;
  top: 50%;
  width: 52px;
  height: 76px;
  padding: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.08);
  color: #fff;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transition: opacity .38s ease, visibility .38s ease, background-color .38s ease;
  transition: opacity .38s ease, visibility .38s ease, background-color .38s ease;
}
.p-mv__arrow--prev { left: 18px; }
.p-mv__arrow--next { right: 18px; }
.p-mv__arrow span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
}
.p-mv__arrow--prev span {
  -webkit-transform: translate(-35%, -50%) rotate(-135deg);
          transform: translate(-35%, -50%) rotate(-135deg);
}
.p-mv__arrow--next span {
  -webkit-transform: translate(-65%, -50%) rotate(45deg);
          transform: translate(-65%, -50%) rotate(45deg);
}
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
  .p-mv__slides:hover .p-mv__arrow,
  .p-mv__arrow:focus-visible {
    opacity: 1;
    visibility: visible;
  }
  .p-mv__arrow:hover { background: rgba(0, 0, 0, 0.22); }
}
@media (max-width: 767px) {
  .p-mv__arrow { display: none !important; }
  .p-mv__slides { touch-action: pan-y; }
}

/* v1.90: drawer navigation matches the supplied JP/EN menu layout -- */
.l-drawer__nav li {
  margin: 0 0 clamp(8px, 1.9vh, 28px);
  font-family: inherit;
  font-size: inherit;
  line-height: 1;
}
.l-drawer__nav a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 10px;
}
.l-drawer__nav-ja {
  display: block;
  font-size: clamp(16px, 1.35vw, 23px);
  line-height: 1.18;
  font-weight: 400;
  letter-spacing: .02em;
}
.l-drawer__nav-en {
  display: block;
  font-size: clamp(10px, .62vw, 13px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: .01em;
  opacity: .62;
}
.l-drawer__nav a::after { bottom: -5px; }

/* Small notebooks: keep the whole menu comfortably inside one screen. */
@media (min-width: 768px) and (max-height: 820px) {
  .l-drawer { padding-top: 2.2vw; padding-bottom: 2.2vw; }
  .l-drawer__content { padding-top: .4vw; padding-bottom: .4vw; }
  .l-drawer__nav li { margin: 0 0 clamp(8px, 1.9vh, 28px); }
  .l-drawer__nav-ja { font-size: clamp(14px, 1.1vw, 19px); }
  .l-drawer__nav-en { font-size: clamp(9px, .62vw, 11px); }
  .l-drawer__close { padding-top: 3px; padding-bottom: 3px; }
}
@media (max-width: 767px) {
  .l-drawer__content {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .l-drawer__nav { width: 100%; }
  .l-drawer__nav ul { text-align: center; }
  .l-drawer__nav li { margin: 0 0 21px; text-align: center; }
  .l-drawer__nav a {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .l-drawer__nav-ja { font-size: clamp(16px, 5.1vw, 21px); }
  .l-drawer__nav-en { font-size: clamp(10px, 3vw, 12px); }
}

/* v1.91: MV arrow micro-interaction + draggable first-slide camera --- */
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
  .p-mv__arrow span {
    -webkit-transition: -webkit-transform .42s cubic-bezier(.22, 1, .36, 1);
    transition: -webkit-transform .42s cubic-bezier(.22, 1, .36, 1);
    transition: transform .42s cubic-bezier(.22, 1, .36, 1);
    transition: transform .42s cubic-bezier(.22, 1, .36, 1), -webkit-transform .42s cubic-bezier(.22, 1, .36, 1);
  }
  .p-mv__arrow--prev:hover span {
    -webkit-transform: translate(calc(-35% - 6px), -50%) rotate(-135deg);
            transform: translate(calc(-35% - 6px), -50%) rotate(-135deg);
  }
  .p-mv__arrow--next:hover span {
    -webkit-transform: translate(calc(-65% + 6px), -50%) rotate(45deg);
            transform: translate(calc(-65% + 6px), -50%) rotate(45deg);
  }
  .p-mv__slides.is-camera-active { cursor: -webkit-grab; cursor: grab; }
  .p-mv__slides.is-camera-active.is-camera-dragging { cursor: -webkit-grabbing; cursor: grabbing; }
  .p-mv__arrow { cursor: pointer; }
}

/* v2.11: mobile MV swipe handling + dot navigation ------------------ */
.p-mv__dots {
  display: none;
}

@media (max-width: 767px) {
  .p-mv {
    /* The dot row occupies part of the existing 100svh layout, so the
       visual becomes slightly shorter without changing the text area. */
    padding-bottom: 14px !important;
  }

  .p-mv__slides {
    /* Keep vertical page scrolling available, while JS locks deliberate
       horizontal gestures to the slider. */
    -ms-touch-action: pan-y;
        touch-action: pan-y;
    overscroll-behavior-x: contain;
  }

  .p-mv__dots {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 10px;
    min-height: 28px;
    margin-top: 10px;
  }

  .p-mv__dot {
    position: relative;
    width: 24px;
    height: 24px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .p-mv__dot::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #111;
    opacity: .22;
    -webkit-transform: translate(-50%, -50%) scale(.88);
            transform: translate(-50%, -50%) scale(.88);
    -webkit-transition: opacity .28s ease, -webkit-transform .28s ease;
    transition: opacity .28s ease, -webkit-transform .28s ease;
    transition: opacity .28s ease, transform .28s ease;
    transition: opacity .28s ease, transform .28s ease, -webkit-transform .28s ease;
  }

  .p-mv__dot.is-active::before {
    opacity: .92;
    -webkit-transform: translate(-50%, -50%) scale(1);
            transform: translate(-50%, -50%) scale(1);
  }

  .p-mv__dot:focus-visible {
    outline: 1px solid #111;
    outline-offset: 1px;
    border-radius: 50%;
  }
}

/* v2.15: mobile MV balance — add space below header and lower the slider */
@media (max-width: 767px) {
  .p-mv {
    height: auto !important;
    min-height: 100svh !important;
    padding-top: 88px !important;
    padding-bottom: 14px !important;
    overflow: visible !important;
  }

  .p-mv__caption {
    margin-top: 28px;
    margin-bottom: 44px;
  }

  .p-mv__slides {
    -webkit-box-flex: 0 !important;
        -ms-flex: 0 0 auto !important;
            flex: 0 0 auto !important;
    height: clamp(300px, 46svh, 460px) !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .p-mv__dots {
    margin-top: 8px;
  }
}

@media (max-width: 767px) {
  .p-mv__slides {
    margin-top: 5vh !important;
  }
}


/* v14: drawer image panel - keep the full image visible on desktop/tablet. */
@media (min-width: 768px) {
  .l-drawer__images {
    background: #000;
  }
  .l-drawer__images figure {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    background: #000;
  }
  .l-drawer__images img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center center;
       object-position: center center;
  }
}


/* v1.83: GALLERY heading and click-to-enlarge hint */
@media (max-width: 767px) {
  .p-gallery__heading {
    margin-bottom: 8vw;
    padding: 0 5vw;
  }
  .p-gallery__heading .c-section-title {
    font-size: 3.6rem;
  }
  .p-gallery__lead {
    margin-top: 10px;
    font-size: 10px;
    letter-spacing: 0.08em;
  }
}

/* =========================================================
   v1.34 ABOUT mobile material layout refinements
========================================================= */
@media (max-width: 767px) {
  .p-about-section__en {
    font-size: clamp(48px, 12.5vw, 68px);
  }
  .p-about-material__images {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    grid-template-columns: 1fr;
    display: grid;
    margin-bottom: 30px;
  }
  .p-about-material__images .p-about-material__main {
    grid-column: 1/-1;
    width: 100%;
    max-width: none;
    aspect-ratio: auto;
  }
  .p-about-material__images .p-about-material__main img {
    width: 100%;
    height: auto;
    display: block;
    -o-object-fit: contain !important;
       object-fit: contain !important;
  }
  .p-about-material__heading {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-bottom: 28px;
  }
  .p-about-material__heading .p-about-section__jp {
    text-align: left;
  }
  .p-about-material__lead {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-bottom: 36px;
  }
  .p-about-material__after {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .p-about-material__more {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
}

/* Shop Information: mixed-case English label matching the global menu. */
.p-subhero__slug--shop-information {
  text-transform: none;
  font-size: clamp(48px, 4.45vw, 72px);
  letter-spacing: 0.025em;
}
@media (max-width: 767px) {
  .p-subhero__slug--shop-information {
    font-size: clamp(38px, 11vw, 50px);
    white-space: nowrap;
  }
}

/* Shop Information layout refinement v1.22 */
.p-shop-list{padding-top:clamp(88px,8vw,138px)}
.p-shop-group + .p-shop-group{margin-top:clamp(110px,10vw,180px)}
.p-shop-group__title{margin:0 0 clamp(42px,4vw,66px);font-family:"Noto Serif JP",serif;font-size:clamp(28px,2.5vw,42px);font-weight:400;letter-spacing:.14em;line-height:1.4}
.p-shop-group--dealers .p-shop-list__areas{gap:clamp(66px,6vw,98px)}
.p-shop-group--dealers .p-shop-area__title{font-size:clamp(18px,1.35vw,23px);letter-spacing:.1em}
.p-shop-group--dealers .p-shop-area__head{padding-bottom:14px}
.p-shop-direct{display:grid;grid-template-columns:minmax(300px,.74fr) minmax(0,1.26fr);gap:clamp(44px,5vw,84px);align-items:center}
.p-shop-direct__visual{margin:0;overflow:hidden;border-radius:8px}
.p-shop-direct__visual img{display:block;width:100%;height:auto;border-radius:8px}
@media(min-width:768px){
  .p-subhero--shop-information .p-subhero__grid{grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:clamp(56px,6vw,104px)}
  .p-subhero--shop-information .p-subhero__visual{aspect-ratio:1.28/1!important}
  .p-subhero--shop-information .p-subhero__heading{padding-top:clamp(55px,5vw,88px)}
  .p-subhero--shop-information .p-subhero__slug--shop-information{margin-left:0;width:auto;max-width:100%}
  .p-subhero--shop-information .p-subhero__lead--shop-information{max-width:640px}
}
.p-subhero__lead--shop-information{margin:clamp(28px,2.8vw,44px) 0 0;font-family:"Noto Serif JP",serif;font-size:14px;line-height:2;letter-spacing:.055em}
@media(max-width:767px){
  .p-shop-list{padding-top:72px}
  .p-shop-group + .p-shop-group{margin-top:94px}
  .p-shop-group__title{margin-bottom:34px;font-size:26px}
  .p-shop-direct{display:flex;flex-direction:column;gap:28px;align-items:stretch}
  .p-shop-direct__visual{width:100%;border-radius:6px}
  .p-shop-direct__visual img{width:100%}
  .p-shop-group--dealers .p-shop-area__title{font-size:17px}
  .p-subhero__lead--shop-information{margin-top:24px;font-size:13px;line-height:1.9}
}


/* Shop Information direct store + mobile spacing refinement v1.23 */
@media (min-width: 768px) {
  .p-shop-group--direct .p-shop-direct {
    grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1.42fr);
    gap: clamp(38px, 4vw, 68px);
    align-items: center;
  }
  .p-shop-group--direct .p-shop-direct__visual {
    width: 100%;
    max-width: 440px;
    justify-self: start;
  }
  .p-shop-group--direct .p-shop-direct__content {
    min-width: 0;
    width: 100%;
  }
  .p-shop-group--direct .p-shop-table {
    width: 100%;
    min-width: 0;
  }
  .p-shop-group--direct .p-shop-table__header,
  .p-shop-group--direct .p-shop-row {
    grid-template-columns: minmax(165px, 0.9fr) minmax(270px, 1.45fr) minmax(100px, 0.38fr);
    column-gap: clamp(18px, 2vw, 34px);
  }
  .p-shop-group--direct .p-shop-row__map,
  .p-shop-group--direct .p-shop-table__header span:last-child {
    justify-self: end;
    text-align: right;
  }
}

@media (max-width: 767px) {
  .p-shop-list {
    padding-top: 0;
  }
  .p-shop-group--direct .p-shop-row {
    padding-top: 0;
  }
  .p-shop-group--direct .p-shop-direct {
    gap: 14px;
  }
  .p-shop-row__name {
    font-size: 17px;
  }
}

/* v2.30: desktop MV drag navigation + disable native image dragging. */
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
  .p-mv__slides {
    cursor: -webkit-grab;
    cursor: grab;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
  }
  .p-mv__slides.is-slide-dragging,
  .p-mv__slides.is-camera-active.is-camera-dragging {
    cursor: -webkit-grabbing;
    cursor: grabbing;
  }
  .p-mv__slide img {
    -webkit-user-drag: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
  }
}


/* v2.31: desktop MV English copy width + robust rounded clipping during camera zoom. */
@media (min-width: 768px) {
  .p-mv__en {
    max-width: 220px;
  }
  .p-mv__slides {
    overflow: hidden;
    border-radius: 8px;
    -webkit-clip-path: inset(0 round 8px);
            clip-path: inset(0 round 8px);
    isolation: isolate;
  }
  .p-mv__slide {
    overflow: hidden;
    border-radius: inherit;
  }
}

/* =========================================================
   v1.67 ABOUT / ARTISANSHIP two-column layout
   Desktop: image left / heading + text right (match HISTORY)
   Mobile : heading -> image -> text
========================================================= */
.p-about-material {
  max-width: none;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  grid-template-areas: "media heading" "media lead" "media after" "media more";
  -moz-column-gap: clamp(82px, 8.5vw, 145px);
       column-gap: clamp(82px, 8.5vw, 145px);
  row-gap: 30px;
  align-items: start;
}
.p-about-material__heading {
  grid-area: heading;
  order: initial;
  max-width: none;
  width: auto;
  margin: 0;
  padding-top: clamp(56px, 5vw, 92px);
}
.p-about-material__heading .p-about-section__en {
  text-align: left;
  margin-bottom: 17px;
}
.p-about-material__heading .p-about-section__jp {
  text-align: left;
  margin-bottom: 0;
}
.p-about-material__lead {
  grid-area: lead;
  order: initial;
  max-width: none;
  width: auto;
  margin: 0;
}
.p-about-material__images {
  grid-area: media;
  order: initial;
  display: block;
  margin: 0;
}
.p-about-material__images .p-about-material__main {
  width: 100%;
  aspect-ratio: 1/1;
}
.p-about-material__images .p-about-material__main img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-about-material__after {
  grid-area: after;
  order: initial;
  max-width: none;
  width: auto;
  margin: 0;
}
.p-about-material__more {
  grid-area: more;
  order: initial;
  justify-self: end;
  margin: 16px 0 0;
}
@media (max-width: 1023px) {
  .p-about-material {
    -moz-column-gap: 58px;
         column-gap: 58px;
  }
}
@media (max-width: 767px) {
  .p-about-material {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "heading" "media" "lead" "after" "more";
    gap: 0;
  }
  .p-about-material__heading {
    padding: 0;
    margin-bottom: 27px;
  }
  .p-about-material__images {
    display: block;
    margin-bottom: 34px;
  }
  .p-about-material__images .p-about-material__main {
    aspect-ratio: 1.78/1;
  }
  .p-about-material__images .p-about-material__main img {
    height: 100%;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
  .p-about-material__lead {
    margin-bottom: 0;
  }
  .p-about-material__after {
    margin-top: 0;
  }
  .p-about-material__more {
    justify-self: end;
    margin-top: 34px;
  }
}

/* =========================================================
   v1.68 ABOUT mobile: show full images without cropping
========================================================= */
@media (max-width: 767px) {
  .p-about-page figure,
  .p-about-page__intro-images figure,
  .p-about-page__history .p-about-section__media--stack figure,
  .p-about-material__images figure,
  .p-about-material__images .p-about-material__main {
    aspect-ratio: auto !important;
    height: auto !important;
  }
  .p-about-page img,
  .p-about-page__intro-images img,
  .p-about-page__history .p-about-section__media--stack img,
  .p-about-material__images img,
  .p-about-material__images .p-about-material__main img {
    width: 100%;
    height: auto !important;
    object-fit: contain !important;
  }
}

/* v1.83: desktop footer visual is a centered background, no blur/wash */
@media (min-width:768px){.l-footer{position:relative}.l-footer__visual{position:absolute;inset:0;z-index:0;width:100%;height:100%}.l-footer__picture>img{object-position:center center}.l-footer__visual-wash{display:none}.l-footer__info{grid-column:2}}

/* v1.84: desktop footer visual stays fully inside the left column */
@media (min-width: 768px) {
  .l-footer__visual {
    position: relative;
    inset: auto;
    grid-column: 1;
    width: 100%;
    height: 100%;
    background: #fff;
  }
  .l-footer__picture > img {
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center center;
       object-position: center center;
  }
  .l-footer__visual-wash {
    display: none;
  }
  .l-footer__info {
    grid-column: 2;
  }
}


/* v1.85: center the vertical footer catch within the desktop visual */
@media (min-width: 768px) {
  .l-footer__catch {
    left: 50%;
    top: 50%;
  }
}


/* ==========================================================================\n   v1.82 Tablet layout refinements (768px - 1199px)\n   - MV slider limited to 50dvh\n   - Image-led two-column layouts give more width to imagery\n   - COLUMN becomes title / 3 cards / button vertical composition\n   - Footer follows the mobile stacked composition\n   ========================================================================== */
@media (min-width: 768px) and (max-width: 1199px) {
  /* TOP / MV */
  .p-mv {
    min-height: 0;
    padding-top: clamp(82px, 9vw, 112px);
    padding-bottom: clamp(54px, 6vw, 76px);
    align-items: center;
  }
  .p-mv__slides {
    min-height: 0 !important;
  }

  /* TOP / ABOUT */
  .p-about__grid {
    grid-template-columns: minmax(0, 58%) minmax(0, 42%);
    gap: clamp(28px, 4vw, 48px);
  }
  .p-about__body {
    min-width: 0;
    font-size: 12px;
  }
  .p-about__lead {
    font-size: clamp(20px, 2.35vw, 26px);
    line-height: 1.25;
    margin-bottom: 38px;
  }
  .p-about__body p:not(.p-about__lead) {
    line-height: 1.95;
    margin-bottom: 18px;
  }

  /* TOP / COLUMN: title -> cards -> more button */
  .p-column {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "cards"
      "more";
    gap: 0;
    align-items: initial;
    padding: 8vw 0 10vw;
  }
  .p-column__heading {
    display: contents;
  }
  .p-column__heading .c-section-title {
    grid-area: title;
    margin: 0 0 clamp(36px, 4vw, 52px);
    justify-self: start;
  }
  .p-column__grid {
    grid-area: cards;
    width: min(100%, 930px);
    margin-inline: auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2.3vw, 28px);
    justify-self: center;
  }
  .p-column__card figure {
    aspect-ratio: 0.76 / 1;
  }
  .p-column__more--desktop {
    grid-area: more;
    width: min(220px, 28vw) !important;
    margin: clamp(34px, 4vw, 48px) 0 0 auto !important;
    justify-self: end;
  }
  .p-column__more--mobile {
    display: none !important;
  }

  /* LOWER PAGE / common hero: larger left visual, narrower text */
  .p-subhero__grid,
  .p-subhero--shop-information .p-subhero__grid {
    grid-template-columns: minmax(0, 68%) minmax(0, 32%);
    gap: clamp(28px, 3.6vw, 44px);
  }
  .p-subhero__heading,
  .p-subhero--shop-information .p-subhero__heading {
    min-width: 0;
    padding-top: clamp(40px, 4.5vw, 58px);
  }
  .p-subhero__slug {
    font-size: clamp(44px, 5vw, 60px);
  }
  .p-subhero__title {
    font-size: 12px;
  }
  .p-subhero__lead--shop-information {
    font-size: 12px;
    line-height: 1.9;
  }
  .p-subhero__slug--long {
    margin-left: -42px;
    font-size: clamp(42px, 5vw, 54px);
  }
  .p-subhero__slug--maintenance {
    font-size: clamp(32px, 4.2vw, 42px) !important;
  }

  /* LOWER PAGE / ABOUT HISTORY and equivalent image-left/text-right blocks */
  .p-about-section,
  .p-about-page__history {
    grid-template-columns: minmax(0, 58%) minmax(0, 42%);
    column-gap: clamp(30px, 4vw, 48px);
  }
  .p-about-section__heading {
    padding-top: clamp(32px, 4vw, 48px);
  }
  .p-about-section__en {
    font-size: clamp(44px, 5vw, 58px);
  }
  .p-about-section__jp {
    font-size: 15px;
  }
  .p-about-section__text,
  .p-about-page__history .p-about-section__text {
    font-size: 12px;
    line-height: 2.05;
    letter-spacing: 0.045em;
  }

  /* LOWER PAGE / ARTISANSHIP */
  .p-about-material {
    grid-template-columns: minmax(0, 58%) minmax(0, 42%);
    column-gap: clamp(30px, 4vw, 48px);
  }
  .p-about-material__heading {
    padding-top: clamp(32px, 4vw, 48px);
  }
  .p-about-material__lead,
  .p-about-material__after {
    font-size: 12px;
    line-height: 2.05;
  }

  /* LOWER PAGE / material detail list */
  .p-material-item {
    grid-template-columns: minmax(0, 58%) minmax(0, 42%);
    gap: clamp(28px, 4vw, 46px);
  }
  .p-material-item__title {
    margin-bottom: 20px;
  }
  .p-material-item__title span {
    font-size: 18px;
  }
  .p-material-item__title em {
    font-size: 16px;
  }
  .p-material-item__text {
    font-size: 12px;
    line-height: 2;
  }

  /* LOWER PAGE / shop information image + content */
  .p-shop-direct,
  .p-shop-group--direct .p-shop-direct {
    grid-template-columns: minmax(0, 44%) minmax(0, 56%);
    gap: clamp(28px, 3.5vw, 44px);
  }
  .p-shop-group--direct .p-shop-direct__visual {
    max-width: none;
  }
  .p-shop-group--direct .p-shop-table__header,
  .p-shop-group--direct .p-shop-row {
    grid-template-columns: minmax(120px, 0.8fr) minmax(190px, 1.35fr) minmax(78px, 0.34fr);
    column-gap: 14px;
  }

  /* FOOTER: use the same vertical composition as mobile */
  .l-footer {
    display: block;
    min-height: 0;
  }
  .l-footer__visual {
    height: min(68dvh, 680px);
    min-height: 460px;
  }
  .l-footer__picture > img {
    -o-object-position: top center;
       object-position: top center;
    opacity: 0.38;
    background-color: #f8f8f8;
  }
  .l-footer__visual-wash {
    top: auto;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: 38%;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 100%);
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 70%);
    mask-image: linear-gradient(180deg, transparent, #000 70%);
  }
  .l-footer__catch {
    left: 52%;
    top: 48%;
    font-size: 18px;
    line-height: 1.8;
  }
  .l-footer__info {
    height: auto;
    padding: clamp(70px, 8vw, 96px) 32px clamp(90px, 10vw, 120px);
  }
  .l-footer__nav {
    margin-bottom: clamp(100px, 14vw, 150px);
  }
  .l-footer__nav ul {
    gap: 11px;
    text-align: center;
  }
  .l-footer__nav a {
    font-size: 14px;
  }
  .l-footer__logo {
    width: 86px;
    margin-bottom: 34px;
  }
  .l-footer__company {
    gap: 14px;
    font-size: 12px;
  }
  .l-footer__instagram {
    width: 28px;
    height: 28px;
    margin-top: 30px;
  }
  .l-footer__copy {
    margin-top: 38px;
    font-size: 11px;
    white-space: normal;
    text-align: center;
  }
}

/* ==========================================================================\n   v1.83 Tablet follow-up refinements (768px - 1199px)\n   - Left-align header logo on all tablet pages\n   - ABOUT material follows the mobile vertical composition\n   - ABOUT section heading removes top padding\n   - SHOP tables follow the mobile stacked layout\n   - COLUMN archive thumbnails become taller with subtler corners\n   ========================================================================== */
@media (min-width: 768px) and (max-width: 1199px) {
  /* HEADER: keep the logo away from the language control. */
  .l-header--subpage .l-header__logo,
  .l-header--subpage.is-scrolled .l-header__logo {
    position: relative;
    left: auto;
    top: auto;
    -webkit-transform: none;
            transform: none;
    -webkit-transform-origin: left top;
            transform-origin: left top;
  }
  .l-header--subpage .l-header__actions {
    margin-left: auto;
  }

  /* ABOUT / common section heading */
  .p-about-section__heading,
  .p-about-page__history .p-about-section__heading {
    padding-top: 0;
  }

  /* ABOUT / MATERIAL: use the same vertical order as mobile. */
  .p-about-page__material .p-about-material,
  .p-about-material {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: none;
  }
  .p-about-material__heading {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: 100%;
    max-width: none;
    margin-bottom: 28px;
    padding-top: 0;
  }
  .p-about-material__heading .p-about-section__en {
    margin-bottom: 12px;
    text-align: left;
  }
  .p-about-material__heading .p-about-section__jp {
    text-align: left;
  }
  .p-about-material__lead {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    width: 100%;
    max-width: none;
    margin-bottom: 38px;
  }
  .p-about-material__images {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 38px;
  }
  .p-about-material__images .p-about-material__main {
    grid-column: 1 / -1;
    width: 100%;
    aspect-ratio: 1.62 / 1;
  }
  .p-about-material__images figure:nth-child(2),
  .p-about-material__images figure:nth-child(3) {
    grid-column: auto;
    width: 100%;
    max-width: none;
    aspect-ratio: 1.48 / 1;
    justify-self: stretch;
  }
  .p-about-material__images figure:nth-child(4) {
    grid-column: 1 / -1;
    width: calc(50% - 7px);
    max-width: none;
    aspect-ratio: 1.48 / 1;
    justify-self: center;
  }
  .p-about-material__after {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
    width: 100%;
    max-width: none;
  }
  .p-about-material__more {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
    margin: 38px auto 0 !important;
  }

  /* SHOP INFORMATION: use mobile-style stacking before the viewport gets tight. */
  .p-shop-direct,
  .p-shop-group--direct .p-shop-direct {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 24px;
    align-items: stretch;
  }
  .p-shop-group--direct .p-shop-direct__visual,
  .p-shop-direct__visual {
    width: 100%;
    max-width: none;
  }
  .p-shop-table__header,
  .p-shop-group--direct .p-shop-table__header {
    display: none;
  }
  .p-shop-row,
  .p-shop-group--direct .p-shop-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "store map"
      "address address";
    -webkit-column-gap: 24px;
       -moz-column-gap: 24px;
            column-gap: 24px;
    row-gap: 18px;
    min-height: 0;
    padding: 26px 0;
  }
  .p-shop-row:hover,
  .p-shop-group--direct .p-shop-row:hover {
    padding-left: 0;
    padding-right: 0;
    background: transparent;
  }
  .p-shop-row__store {
    grid-area: store;
  }
  .p-shop-row__map,
  .p-shop-group--direct .p-shop-row__map {
    grid-area: map;
    align-self: start;
    justify-self: end;
    text-align: right;
  }
  .p-shop-row__address {
    grid-area: address;
    font-size: 12px;
    line-height: 1.8;
  }
  .p-shop-row__name {
    font-size: 15px;
    line-height: 1.65;
  }
  .p-shop-row__floor {
    margin-top: 6px;
    font-size: 11px;
  }
  .p-shop-row__map a span {
    display: none;
  }
  .p-shop-row__map i {
    font-size: 21px;
  }
  .p-shop-row__map a {
    padding: 4px;
  }
  .p-shop-row__map a::after {
    display: none;
  }

  /* COLUMN archive: taller imagery and a quieter corner radius. */
  .p-column-archive__card figure {
    aspect-ratio: 1.12 / 1;
    border-radius: 3px;
  }
  .p-column-archive__card figure img,
  .p-column-archive__placeholder {
    border-radius: 3px;
  }
}

/* ==========================================================================
   v1.84 Tablet ABOUT material order + Shop Information subhero refinement
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1199px) {
  /* ABOUT / MATERIAL: heading -> images -> text */
  .p-about-material__heading {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .p-about-material__images {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin-bottom: 38px;
  }
  .p-about-material__lead {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-bottom: 0;
  }
  .p-about-material__after {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }

  /* SHOP INFORMATION hero only: make the left visual substantially smaller. */
  .p-subhero--shop-information .p-subhero__grid {
    grid-template-columns: minmax(0, 38%) minmax(0, 62%);
    gap: clamp(24px, 3vw, 36px);
  }
  .p-subhero--shop-information .p-subhero__heading {
    min-width: 0;
    padding-top: clamp(28px, 3.2vw, 42px);
  }
  .p-subhero--shop-information .p-subhero__slug--shop-information {
    margin-left: 0;
    max-width: 100%;
  }
}

/* v2.37: desktop MV ratio / width tuning */
@media (min-width: 1200px) {
  .p-mv {
    grid-template-columns: 22vw minmax(0, 66vw);
    justify-content: space-between;
    align-items: center;
  }

  .p-mv__slides {
    width: 100%;
    min-height: 0;
    aspect-ratio: 3 / 2;
    align-self: center;
  }

  /* 2枚目以降は左右を切らず、画像全幅が必ず枠内に収まるようにする。 */
  .p-mv__slide:not(:first-child) {
    background: #e5e5e3;
  }

  .p-mv__slide:not(:first-child) img {
    object-fit: contain;
  }
}

/* =========================================================
   v1.69 ABOUT / HISTORY mobile image order
   SP: first image -> text -> second/third images
========================================================= */
@media (max-width: 767px) {
  .p-about-page__history {
    grid-template-areas: none;
    grid-template-rows: auto auto auto auto auto;
  }

  .p-about-page__history .p-about-section__heading {
    grid-column: 1;
    grid-row: 1;
  }

  .p-about-page__history .p-about-section__media--stack {
    display: contents;
  }

  .p-about-page__history .p-about-section__media--stack figure:nth-child(1) {
    grid-column: 1;
    grid-row: 2;
    margin-bottom: 34px;
  }

  .p-about-page__history .p-about-section__text {
    grid-column: 1;
    grid-row: 3;
    margin-bottom: 34px;
  }

  .p-about-page__history .p-about-section__media--stack figure:nth-child(2) {
    grid-column: 1;
    grid-row: 4;
    margin-bottom: 10px;
  }

  .p-about-page__history .p-about-section__media--stack figure:nth-child(3) {
    grid-column: 1;
    grid-row: 5;
  }
}
\n\n/* Shop Information direct store emphasis + contact details v2.31 */
.p-shop-group--direct {
  position: relative;
  padding: clamp(34px, 3.5vw, 56px);
  background: #f7f7f4;
  border-top: 2px solid #111;
}
.p-shop-group--direct .p-shop-table__header span:first-child {
  font-size: 16px;
  color: #111;
  letter-spacing: .2em;
}
.p-shop-group--direct .p-shop-row__name {
  font-size: 21px;
  letter-spacing: .08em;
}
.p-shop-row__contact {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 2px;
  font-size: 12px;
  line-height: 1.75;
}
.p-shop-row__contact em {
  min-width: 48px;
  font-family: "Cormorant Garamond", serif;
  font-size: 11px;
  font-style: normal;
  letter-spacing: .14em;
  color: #777;
}
.p-shop-row__contact a {
  text-decoration: none;
}
.p-shop-group--direct .p-shop-row--direct {
  background: rgba(255,255,255,.52);
}
.p-shop-group--direct .p-shop-row--direct:hover {
  background: #fff;
}
@media (max-width: 767px) {
  .p-shop-group--direct {
    padding: 24px 18px 28px;
    margin-left: -18px;
    margin-right: -18px;
  }
  .p-shop-group--direct .p-shop-row__name {
    font-size: 19px;
  }
  .p-shop-row__contact {
    display: flex;
    gap: 8px;
    font-size: 11px;
  }
  .p-shop-row__contact em {
    min-width: 44px;
    font-size: 10px;
  }
}

/* Direct shop floor label matches store name size v2.32 */
.p-shop-group--direct .p-shop-row__floor {
  font-size: 21px;
  line-height: 1.6;
  letter-spacing: .08em;
}
@media (max-width: 767px) {
  .p-shop-group--direct .p-shop-row__floor {
    font-size: 19px;
  }
}


/* Direct shop: floor name inside STORE heading + larger phone number v2.33 */
.p-shop-group--direct .p-shop-row__contact a {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: .04em;
}
@media (max-width: 767px) {
  .p-shop-group--direct .p-shop-row__contact a {
    font-size: 15px;
  }
}

/* v2.34 direct store typography / hours + tablet footer centering */
.p-shop-group--direct .p-shop-row__name {
  font-size: inherit;
  line-height: 1.5;
  letter-spacing: 0;
}
.p-shop-group--direct .p-shop-row__name-main,
.p-shop-group--direct .p-shop-row__name-sub {
  display: block;
}
.p-shop-group--direct .p-shop-row__name-main {
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: .06em;
}
.p-shop-group--direct .p-shop-row__name-sub {
  margin-top: 2px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: .04em;
}
.p-shop-row__contact--hours > span {
  display: inline-block;
  white-space: normal;
}
@media (min-width: 768px) and (max-width: 1199px) {
  .l-footer__nav-label {
    justify-content: center;
    width: 100%;
    text-align: center;
  }
}



/* v2.41 gallery lightbox: unified viewport-safe layout */
.c-gallery-lightbox {
  overflow: hidden !important;
  padding: 0 !important;
  background: rgba(10, 10, 10, 0.92);
}

.c-gallery-lightbox__backdrop {
  position: fixed !important;
  inset: 0 !important;
}

.c-gallery-lightbox__shell {
  position: relative !important;
  width: min(94vw, 1680px) !important;
  height: 100dvh !important;
  min-height: 0 !important;
  max-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.c-gallery-lightbox__stage {
  position: absolute !important;
  top: 58px !important;
  right: 75px !important;
  bottom: 42px !important;
  left: 75px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
}

.c-gallery-lightbox__image,
.c-gallery-lightbox.is-zoomed .c-gallery-lightbox__image {
  position: static !important;
  display: block !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  box-sizing: border-box !important;
}

.c-gallery-lightbox__close {
  top: 8px !important;
  right: 8px !important;
}

.c-gallery-lightbox__meta,
.c-gallery-lightbox__hint {
  bottom: 8px !important;
}

@media (max-width: 767px) {
  .c-gallery-lightbox__shell {
    width: 100vw !important;
  }

  .c-gallery-lightbox__stage {
    top: 58px !important;
    right: 16px !important;
    bottom: 58px !important;
    left: 16px !important;
  }
}


/* v2.41 gallery lightbox: viewport-height based image limit */
@media (min-width: 768px) {
  .c-gallery-lightbox__stage {
    position: absolute !important;
    top: 58px !important;
    right: 75px !important;
    bottom: auto !important;
    left: 75px !important;
    width: auto !important;
    height: calc(100dvh - 100px) !important;
    min-height: 0 !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .c-gallery-lightbox__image,
  .c-gallery-lightbox.is-zoomed .c-gallery-lightbox__image {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 100px) !important;
    object-fit: contain !important;
    position: static !important;
  }
}

@media (max-width: 767px) {
  .c-gallery-lightbox__stage {
    position: absolute !important;
    top: 58px !important;
    right: 16px !important;
    bottom: auto !important;
    left: 16px !important;
    width: auto !important;
    height: calc(100dvh - 114px) !important;
    min-height: 0 !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .c-gallery-lightbox__image,
  .c-gallery-lightbox.is-zoomed .c-gallery-lightbox__image {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 114px) !important;
    object-fit: contain !important;
    position: static !important;
  }
}


/* v2.37 tablet footer picture adjustment */
@media (min-width: 768px) and (max-width: 1199px) {
  .l-footer__picture > img {
    -o-object-position: top center;
       object-position: top center;
    opacity: 0.38;
    background-color: #f8f8f8;
  }
}


/* v2.38 final refinements: maintenance blocks / MV word wrap / summary / ARTISANSHIP */
@media (min-width: 768px) {
  /* Maintenance image + copy blocks: halve the image column and give copy more room. */
  .p-maintenance-step {
    grid-template-columns: minmax(140px, .48fr) minmax(0, 1.52fr);
  }
  .p-maintenance-step:nth-child(even) {
    grid-template-columns: minmax(0, 1.52fr) minmax(140px, .48fr);
  }
}

/* MV English: words are indivisible, while character animation remains intact. */
.p-mv__en .word {
  display: inline-block;
  white-space: nowrap;
}
.p-mv__en .space {
  display: inline;
}

/* Maintenance summary emphasis: Gothic on PC/SP. */


/* Maintenance summary lead size/weight kept independent. */


@media (max-width: 767px) {

  /* Keep long ARTISANSHIP heading inside the mobile viewport. */
  .p-about-material__heading .p-about-section__en {
    font-size: clamp(38px, 11.5vw, 48px) !important;
    letter-spacing: .04em !important;
    line-height: .94;
    white-space: nowrap;
  }
}


/* v2.39 dealer compact rows + mobile news archive alignment */
.p-shop-group--dealers .p-shop-list__areas {
  gap: clamp(38px, 3.6vw, 58px);
}
.p-shop-group--dealers .p-shop-area__head {
  padding-bottom: 7px;
}
.p-shop-group--dealers .p-shop-table__header {
  min-height: 40px;
}
.p-shop-group--dealers .p-shop-row {
  min-height: 76px;
  padding-top: 12px;
  padding-bottom: 12px;
}
.p-shop-group--dealers .p-shop-row__floor {
  margin-top: 3px;
}
.p-shop-group--dealers .p-shop-row__address {
  gap: 2px;
  line-height: 1.65;
}

@media (max-width: 767px) {
  .p-shop-group--dealers .p-shop-list__areas {
    gap: 40px;
  }
  .p-shop-group--dealers .p-shop-area__head {
    padding-bottom: 6px;
  }
  .p-shop-group--dealers .p-shop-row {
    row-gap: 9px;
    padding: 14px 0;
  }
  .p-shop-group--dealers .p-shop-row__floor {
    margin-top: 2px;
  }
  .p-shop-group--dealers .p-shop-row__address {
    line-height: 1.65;
  }

  .p-news--archive .p-news__item {
    grid-template-columns: minmax(0, 1fr) 18px;
    grid-template-areas: "date arrow" "title arrow";
    column-gap: 8px;
    row-gap: 5px;
    width: 100%;
    padding: 15px 0;
  }
  .p-news--archive .p-news__item time {
    grid-area: date;
    width: 100%;
    font-size: 12px;
  }
  .p-news--archive .p-news__item > span {
    grid-area: title;
    width: 100%;
    min-width: 0;
    font-size: 14px;
    line-height: 1.7;
  }
  .p-news--archive .p-news__item i {
    grid-area: arrow;
    align-self: center;
    justify-self: end;
    font-size: 1.25rem;
    line-height: 1;
  }
}


/* v2.38 shop row name spacing */
@media (min-width: 768px) {
  .p-shop-row__name {
    margin: 0 0 .5em 0;
  }
}
@media (max-width: 767px) {
  .p-shop-row__name {
    margin: 0;
  }
}


/* v2.41 maintenance pins visual sizing */
.p-maintenance-pins__warning .p-maintenance-step__visual {
  max-width: 24%;
}

@media (max-width: 767px) {
  .p-maintenance-step__visual {
    width: 100%;
    max-width: 80%;
    margin-left: auto;
    margin-right: auto;
  }

  .p-maintenance-pins__warning .p-maintenance-step__visual {
    max-width: 80%;
    margin-left: 0;
    margin-right: 0;
  }
}


/* v2.42 maintenance pins warning centering */
.p-maintenance-pins__warning {
  justify-content: center;
}

/* shop spacing adjustment */
@media (min-width: 768px) and (max-width: 1199px) {
  .p-shop-row,
  .p-shop-group--direct .p-shop-row {
    row-gap: 10px;
  }
}

@media (max-width: 767px) {
  .p-shop-group--dealers .p-shop-row {
    padding: 7px 0;
  }
}


/* tablet MV keeps the same 3:2 ratio as desktop */
@media (min-width: 768px) and (max-width: 1199px) {
  .p-mv__slides,
  .p-mv__slider,
  .p-mv__slide {
    aspect-ratio: 3 / 2;
  }

  .p-mv__slides,
  .p-mv__slider {
    height: auto;
  }

  .p-mv__slide {
    width: 100%;
    height: 100%;
  }

  .p-mv__slide img {
    width: 100%;
    height: 100%;
  }
}


/* horizontally center MV */
.p-mv {
  margin-left: auto;
  margin-right: auto;
}

/* tablet MV grid contents centered horizontally */
@media (min-width: 768px) and (max-width: 1199px) {
  .p-mv {
    justify-items: center;
  }

  .p-mv__caption,
  .p-mv__slides {
    justify-self: center;
  }
}


/* MV 50dvh limit: 768px - 999px only */
@media (min-width: 768px) and (max-width: 999px) {
  .p-mv__slides {
    height: 50dvh !important;
    max-height: 50dvh !important;
  }
}

/* maintenance summary first paragraph: match body text size, bold only */
.p-maintenance-summary p:first-child,
.p-maintenance-summary p:first-child strong {
  font-size: 16px;
  font-weight: 700;
}

@media (max-width: 767px) {
  .p-maintenance-summary p:first-child,
  .p-maintenance-summary p:first-child strong {
    font-size: 14px;
  }
}

/* Maintenance page: remove negative left margin */
.p-subhero__slug--maintenance {
  margin-left: 0;
}

/* Large-screen footer background refinement */
@media (min-width: 1500px) {
  .l-footer__visual::before {
    background: linear-gradient(
      to bottom,
      rgb(252 252 252) 0%,
      rgb(247 247 247) 50%,
      rgb(252 252 252) 100%
    );
  }
}

/* Extra-large desktop MV sizing */
@media (min-width: 1921px) {
  .p-mv {
    width: 100%;
    max-width: none;
    grid-template-columns: 18vw minmax(0, 72vw);
    gap: 3vw;
    padding-left: 2.5vw;
    padding-right: 2.5vw;
  }

  .p-mv__slides {
    width: min(100%, 1900px);
    aspect-ratio: 3 / 2;
    justify-self: center;
  }
}

/* v2.42 desktop MV resize stability */
@media (min-width: 768px) {
  .p-mv__slides,
  .p-mv__slide {
    overflow: hidden;
  }

  .p-mv__slide img {
    display: block;
    backface-visibility: hidden;
    transform-origin: 50% 50%;
  }
}

/* PC MV: size from available horizontal width, not viewport height */
@media (min-width: 1000px) {
  .p-mv {
    align-items: center;
  }

  .p-mv__slides {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: 3 / 2;
    align-self: center;
    justify-self: stretch;
  }
}

/* Direct shop image: prevent upscaling beyond source width */
.p-shop-direct__visual img {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* iPad portrait: keep MV 3:2 but prevent it from becoming too large */
@media (min-width: 768px) and (max-width: 999px) and (orientation: portrait) {
  .p-mv__slides {
    width: min(100%, 60dvh);
    height: auto !important;
    max-height: none !important;
    aspect-ratio: 3 / 2;
    justify-self: center;
    align-self: center;
  }
}

/* Maintenance pins illustrations: preserve original aspect ratio */
.p-maintenance-section--pins .p-maintenance-step__visual {
  aspect-ratio: auto;
  overflow: visible;
}

.p-maintenance-section--pins .p-maintenance-step__visual img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Pre-open drawer: vertically center navigation after hiding language/COLUMN */
.tefu-preopen .l-drawer__content {
  position: relative;
  justify-content: center;
}

.tefu-preopen .l-drawer__close {
  position: absolute;
  top: 1vw;
  right: 2vw;
  z-index: 2;
}

@media (max-width: 767px) {
  .tefu-preopen .l-drawer__content {
    justify-content: center;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
  }

  .tefu-preopen .l-drawer__close {
    top: 10px;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }

  .tefu-preopen .l-drawer__nav {
    width: 100%;
  }
}

/* MV slider background: keep any tiny gaps visually white */
.p-mv__slides,
.p-mv__slide {
  background-color: #fff;
}

/* Google Map label: hide only on small smartphones */
@media (max-width: 600px) {
  .p-shop-row__map a span {
    display: none;
  }
}

@media (min-width: 601px) {
  .p-shop-row__map a span {
    display: inline;
  }
}

/* MV later slides: slight overscan to prevent previous slide peeking through */
.p-mv__slide:not(:first-child) img {
  position: absolute;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  left: -2px;
  top: -2px;
  object-fit: cover;
}

/* Dealers row spacing */
.p-shop-group--dealers .p-shop-row {
  row-gap: 3px;
}

/* Shop name size on smartphone */
@media (max-width: 767px) {
  .p-shop-row__name {
    font-size: 14px;
  }
}



/* Dealer display-name WYSIWYG normalization */
.p-shop-group--dealers .p-shop-row__name p {
  margin: 0;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
.p-shop-group--dealers .p-shop-row__name br {
  display: block;
}

/* Dealer display-name partial font sizes: smartphone only */
@media (max-width: 767px) {
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-10 { font-size: 10px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-11 { font-size: 11px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-12 { font-size: 12px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-13 { font-size: 13px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-14 { font-size: 14px; }
}

/* Ultra-wide layout: 2561px+ */
@media (min-width: 2561px) {
  .l-main,
  .l-footer {
    width: min(calc(100% - 60px), 3000px);
    max-width: 3000px;
    margin-inline: auto;
  }

  .l-header {
    width: min(calc(100% - 60px), 3000px);
    max-width: 3000px;
    padding: 82px 30px;
    margin-inline: auto;
}

  .p-mv__slides {
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 3 / 2;
    height: auto !important;
    max-height: none !important;
  }
}

/* Dealer shop display-name partial sizes: smartphone only */
@media (max-width: 767px) {
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-10 { font-size: 10px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-11 { font-size: 11px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-12 { font-size: 12px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-13 { font-size: 13px; }
  .p-shop-group--dealers .p-shop-row__name .tefu-shop-name-sp-14 { font-size: 14px; }
}

/* PC MV: width-based 3:2 sizing (no viewport-height shrink) */
@media (min-width: 1000px) {
  .p-mv__slides {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: 3 / 2;
    align-self: center;
    justify-self: stretch;
  }
}

/* Mobile targeted fixes 2026-09-09 */
@media (max-width: 767px) {
  /* ABOUT / COMPANY / CONTACT only */
  .p-subhero--about .p-subhero__slug,
  .p-subhero--company .p-subhero__slug,
  .p-subhero--contact .p-subhero__slug {
    font-size: clamp(43px, 11vw, 72px);
  }

  /* CONTACT page only */
  .p-subhero--contact {
    padding-bottom: 30px;
  }

  /* NEWS archive + NEWS single only */
  body.tefu-news-page .p-subhero {
    padding-bottom: 30px;
  }

  /* Contact submit button: keep text visible while pressed */
  .p-contact-form__submit .wpcf7-submit:active {
    color: #762936;
  }
}

/* Company mobile spacing/type tuning */
@media (max-width: 767px) {
  .p-company__intro {
    margin-bottom: 20px;
  }

  .p-company__eyebrow {
    font-size: 34px;
  }
}

/* Contact Form 7 spinner: hide on mobile */
@media (max-width: 767px) {
  .p-contact-page .wpcf7-spinner {
    display: none !important;
  }
}

.grecaptcha-badge { visibility: hidden; }
/* v2.46 smartphone landscape MV: 3:2 sizing + swipe navigation */
@media (min-width: 768px) and (max-width: 999px) and (orientation: landscape) {
  .p-mv__slides,
  .p-mv__slider {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 3 / 2;
  }

  .p-mv__slides {
    justify-self: stretch !important;
    align-self: center;
  }

}

/* v2.48 smartphone landscape MV: show previous / next arrows again, including iPhone SE. */
@media (max-width: 999px) and (orientation: landscape) and (pointer: coarse) {
  .p-mv__arrow {
    display: block !important;
    opacity: 1;
    visibility: visible;
  }
}

/* reCAPTCHA disclosure (badge hidden) */
.footer_recaptcha {
  margin-top: 20px;
  color: #888;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.02em;
  text-align: center;
}
.footer_recaptcha a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.footer_recaptcha a:hover {
  opacity: 0.7;
}
@media (max-width: 767px) {
  .footer_recaptcha {
    margin-top: 18px;
    font-size: 9px;
    line-height: 1.65;
  }
}


/* v2.47 smartphone landscape drawer: compact close, centered image, include iPhone SE */
@media (max-width: 999px) and (orientation: landscape) {
  .l-drawer {
    grid-template-columns: 1.05fr .95fr;
    padding: 12px;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    align-items: start;
  }

  .l-drawer__images {
    position: -webkit-sticky;
    position: sticky;
    top: 12px;
    inset: auto;
    height: calc(100dvh - 24px);
    min-height: 0;
    align-self: start;
    opacity: 1;
    overflow: hidden;
    background: #000;
  }

  .l-drawer__images figure {
    position: absolute;
    inset: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    background: #000;
  }

  .l-drawer__images img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center center;
       object-position: center center;
  }

  .l-drawer__content,
  .tefu-preopen .l-drawer__content {
    position: relative;
    z-index: 1;
    min-height: 0;
    height: auto;
    padding: 0 8px 8px 14px;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 14px;
  }

  .l-drawer__close,
  .tefu-preopen .l-drawer__close {
    display: flex !important;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    transform: none;
    width: auto;
    padding: 2px 10px;
    gap: 6px;
    font-size: 11px;
    line-height: 1.4;
    align-self: flex-end;
    flex: 0 0 auto;
  }

  .l-drawer__close i {
    width: 14px !important;
    height: 14px !important;
    -webkit-box-flex: 0 !important;
        -ms-flex: 0 0 14px !important;
            flex: 0 0 14px !important;
  }

  .l-drawer__close i::before,
  .l-drawer__close i::after {
    top: 6.5px !important;
    width: 14px !important;
  }

  .l-drawer__nav,
  .tefu-preopen .l-drawer__nav {
    width: auto;
    margin-top: 0;
  }

  .l-drawer__nav ul { text-align: right; }
  .l-drawer__nav li {
    margin: 0 0 clamp(7px, 2.3vh, 14px);
    text-align: right;
  }
  .l-drawer__nav a {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .l-drawer__nav-ja { font-size: clamp(13px, 2.25vw, 17px); }
  .l-drawer__nav-en { font-size: clamp(8px, 1.35vw, 10px); }
}

/* v2.49 smartphone landscape MV: compact previous / next arrows. */
@media (max-width: 999px) and (orientation: landscape) and (pointer: coarse) {
  .p-mv__arrow {
    width: 36px;
    height: 56px;
  }

  .p-mv__arrow--prev { left: 10px; }
  .p-mv__arrow--next { right: 10px; }

  .p-mv__arrow span {
    width: 13px;
    height: 13px;
  }
}
