@charset "UTF-8";
@import url("blob-components.css");
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
:root {
  --gd: #1e3d1a;
  --gm: #2f5c29;
  --gl: #5a9050;
  --gp: #deebd8;
  --off: #f8f5f0;
  --white: #fdfcfa;
  --td: #1a1f18;
  --tm: #4a5545;
  --tl: #8a9585;
  --coral: #5a9050;
  --serif: "Shippori Mincho", serif;
  --sans: "Noto Sans JP", sans-serif;
  --en: "Outfit", sans-serif;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--serif);
  background: var(--white);
  color: var(--td);
  line-height: 1.7;
  overflow-x: clip;
}
a {
  text-decoration: none;
  color: inherit;
}
img {
  display: block;
  width: 100%;
}

.hd {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  padding: 36px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background 0.4s;
}
.logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.logo-ic {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
}
.logo-ic svg {
  width: 56px;
  height: 56px;
  transition: all 0.3s;
}
.logo-ic svg path,
.logo-ic svg circle,
.logo-ic svg rect {
  fill: #ffffff;
  transition: fill 0.3s;
}
.logo-text {
  font-family: var(--en);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: #ffffff;
  text-transform: uppercase;
  transition: color 0.3s;
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴惹ｸ橸ｽｹ・ｲ繝ｻ蜿悶渚繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｨ鬮ｯ・ｷ闔ｨ螟ｲ・ｽ・ｽ繝ｻ・ｹ鬮ｫ・ｴ繝ｻ・ｫ髫ｲ蟶吶・髣翫・鬩幢ｽ｢隴主・蜃ｽ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｬ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・､鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ鬮｢・ｧ繝ｻ・ｲ郢晢ｽｻ繝ｻ・ｷ髫ｰ繝ｻ竏槭・・ｽ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.hd-base .logo-ic svg path,
.hd-base .logo-ic svg circle,
.hd-base .logo-ic svg rect {
  fill: var(--gd);
}
.hd-base .logo-text {
  color: var(--gd);
}
.hd-base .hd-menu span {
  background: var(--gd);
}

/* 鬩搾ｽｵ繝ｻ・ｲ髯溷｢難ｽｹ螟懊・繝ｻ・ｸ繝ｻ・ｲ髫ｶ荳ｻ・･繝ｻ・ｽ・ｽ繝ｻ・ｽ郢晢ｽｻ繝ｻ・｢驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ驕ｶ謫ｾ・ｽ・ｩ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｩ鬩幢ｽ｢繝ｻ・ｧ鬩怜遜・ｽ・ｫ驕ｯ・ｶ繝ｻ・ｲ鬮｣蛹・ｽｽ・ｳ髯区ｻゑｽｽ・･驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隴弱・・ｽ・ｻ郢ｧ謇假ｽｽ・ｽ繝ｻ・ｼ髯晢ｽｲ繝ｻ・ｨ繝ｻ譛ｱ雎ｪ繝ｻ・ｹ隴乗・・ｽ・ｹ隴∵ｺｽ・､・ｼ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｳ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ */
.hd-menu {
  width: 64px;
  height: 64px;
  position: relative;
  cursor: pointer;
  flex-shrink: 0;
}
.hd-menu span {
  position: absolute;
  height: 2px;
  background: #ffffff;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 2px;
}
.hd-menu span:nth-child(1) {
  width: 24px;
  top: 15px;
  left: 22px;
  transform: rotate(15deg);
}
.hd-menu span:nth-child(2) {
  width: 36px;
  top: 25px;
  left: 18px;
  transform: rotate(15deg);
}
.hd-menu span:nth-child(3) {
  width: 48px;
  top: 35px;
  left: 14px;
  transform: rotate(15deg);
}
/* 鬩幢ｽ｢隴取得・ｽ・ｸ陷ｷ・ｶ・趣ｽ｣鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬮ｫ・ｴ陟托ｽｱ繝ｻ繝ｻ・ｫ莨∬ｱｪ繝ｻ・ｸ繝ｻ・ｺ鬯ｯ莨懌・繝ｻ・ｽ繝ｻ・｡髫ｰ逍ｲ・ｸ蜻ｻ・ｽ・ｾ鬩幢ｽ｢繝ｻ・ｧ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ繝ｻ・･鬮ｫ・ｰ繝ｻ・ｨ郢晢ｽｻ繝ｻ・ｴ鬮ｯ蜈ｷ・ｽ・ｻ髯ｷ莨夲ｽｽ・ｱ髫ｨ蛟･繝ｻ繝ｻ・ｹ繝ｻ・ｧ髣包ｽｵ隴擾ｽｴ繝ｻ繝ｻﾎ碑ｭ弱・・ｽ・ｺ陋滂ｽ･・取坩ﾎ斐・・ｧ郢晢ｽｻ繝ｻ・ｯ */
.hd-menu:hover span,
.hd-menu.is-hover span {
  transform: rotate(0deg);
  left: 16px;
  width: 32px;
}
.hd-menu:hover span:nth-child(1),
.hd-menu.is-hover span:nth-child(1) {
  top: 17px;
}
.hd-menu:hover span:nth-child(2),
.hd-menu.is-hover span:nth-child(2) {
  top: 25px;
}
.hd-menu:hover span:nth-child(3),
.hd-menu.is-hover span:nth-child(3) {
  top: 33px;
}

/* 鬮ｫ・ｨ雋ょ庄竄ｬ鬮ｫ・ｨ雋ょ庄竄ｬ FLOATING CTA 鬮ｫ・ｨ雋ょ庄竄ｬ鬮ｫ・ｨ雋ょ庄竄ｬ */
.float-cta {
  position: fixed;
  bottom: 36px;
  right: 36px;
  z-index: 998;
  background: var(--gd);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 14px 22px;
  border-radius: 50px;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 6px 24px rgba(26, 61, 26, 0.3);
  transition:
    transform 0.25s,
    box-shadow 0.25s;
  animation: floatIn 0.8s 1.2s both;
}
.float-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(26, 61, 26, 0.4);
}
.float-cta i {
  font-size: 0.85rem;
}
@keyframes floatIn {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ==== LEFT VERTICAL NAV ==== */
.left-vert-nav {
  position: fixed;
  top: 50%;
  left: 30px;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: var(--serif);
  font-size: 0.85rem;
  letter-spacing: 0.25em;
  color: #ff8c73;
  z-index: 990;
  pointer-events: none;
  opacity: 0.5;
  font-weight: 300;
  display: flex;
  align-items: center;
  gap: 20px;
}
.left-vert-nav::before {
  content: "";
  display: block;
  width: 1px;
  height: 40px;
  background: #ff8c73;
  opacity: 1;
}
.left-vert-nav::after {
  content: "";
  display: block;
  width: 1px;
  height: 40px;
  background: #ff8c73;
  opacity: 1;
}
@media (max-width: 1280px) {
  .left-vert-nav {
    display: none !important;
  }
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ HERO SCROLLY 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.scrolly {
  position: relative;
  height: 300vh;
}
.scrolly-pin {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  background: #5c8a50;
}
/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ驍ｵ・ｺ陷･謫ｾ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ */
.s-slides {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: none;
}
.s-slides::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(30, 61, 26, 0.3);
  z-index: 1;
  pointer-events: none;
}
.s-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.s-slide.active {
  opacity: 1;
}
/* Fluttering Leaves (No lines) */
.s-deco1,
.s-deco2,
.s-deco3,
.s-deco4 {
  position: absolute;
  top: 0;
  width: 1px;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}
.s-deco1 {
  left: 15%;
}
.s-deco2 {
  right: 25%;
}
.s-deco3 {
  left: 45%;
}
.s-deco4 {
  right: 10%;
}

.s-deco1::after,
.s-deco2::after,
.s-deco3::after,
.s-deco4::after {
  content: "";
  position: absolute;
  top: -50px;
  left: -12px;
  width: 35px;
  height: 45px;
  background: url("../images/01_top/leaf.svg") no-repeat center;
  background-size: contain;
  opacity: 0;
}

.s-deco1::after {
  transform: scale(1.4);
  animation: leafFall 16s 2s ease-in-out infinite;
}
.s-deco2::after {
  transform: scale(1.2);
  animation: leafFall2 20s 8s ease-in-out infinite;
}
.s-deco3::after {
  transform: scale(1.3);
  animation: leafFall3 14s 5s ease-in-out infinite;
}
.s-deco4::after {
  transform: scale(1.6);
  animation: leafFall4 18s 0s ease-in-out infinite;
}

@keyframes leafFall {
  0% {
    transform: scale(1.4) translateY(-5vh) rotate(0deg) translateX(0);
    opacity: 0;
  }
  10% {
    opacity: 0.8;
    transform: scale(1.4) translateY(15vh) rotate(30deg) translateX(20px);
  }
  35% {
    transform: scale(1.4) translateY(45vh) rotate(-30deg) translateX(-20px);
  }
  65% {
    transform: scale(1.4) translateY(85vh) rotate(45deg) translateX(30px);
  }
  90% {
    opacity: 0.8;
    transform: scale(1.4) translateY(115vh) rotate(-20deg) translateX(-10px);
  }
  100% {
    opacity: 0;
    transform: scale(1.4) translateY(130vh) rotate(0deg) translateX(0);
  }
}

@keyframes leafFall2 {
  0% {
    transform: scale(1.2) translateY(-5vh) rotate(-15deg) translateX(0);
    opacity: 0;
  }
  10% {
    opacity: 0.6;
    transform: scale(1.2) translateY(15vh) rotate(15deg) translateX(-20px);
  }
  45% {
    transform: scale(1.2) translateY(55vh) rotate(-20deg) translateX(25px);
  }
  75% {
    transform: scale(1.2) translateY(95vh) rotate(35deg) translateX(-30px);
  }
  90% {
    opacity: 0.6;
    transform: scale(1.2) translateY(115vh) rotate(-10deg) translateX(10px);
  }
  100% {
    opacity: 0;
    transform: scale(1.2) translateY(130vh) rotate(0deg) translateX(0);
  }
}

@keyframes leafFall3 {
  0% {
    transform: scale(1.3) translateY(-5vh) rotate(10deg) translateX(0);
    opacity: 0;
  }
  15% {
    opacity: 0.5;
    transform: scale(1.3) translateY(20vh) rotate(-25deg) translateX(15px);
  }
  50% {
    transform: scale(1.3) translateY(65vh) rotate(30deg) translateX(-15px);
  }
  85% {
    opacity: 0.5;
    transform: scale(1.3) translateY(105vh) rotate(-40deg) translateX(20px);
  }
  100% {
    opacity: 0;
    transform: scale(1.3) translateY(130vh) rotate(0deg) translateX(0);
  }
}

@keyframes leafFall4 {
  0% {
    transform: scale(1.6) translateY(-5vh) rotate(-30deg) translateX(0);
    opacity: 0;
  }
  20% {
    opacity: 0.4;
    transform: scale(1.6) translateY(30vh) rotate(20deg) translateX(-10px);
  }
  60% {
    transform: scale(1.6) translateY(80vh) rotate(-15deg) translateX(15px);
  }
  90% {
    opacity: 0.4;
    transform: scale(1.6) translateY(115vh) rotate(25deg) translateX(-5px);
  }
  100% {
    opacity: 0;
    transform: scale(1.6) translateY(130vh) rotate(0deg) translateX(0);
  }
}
/* Vertical initial title */
.s-vert {
  position: absolute;
  left: 260px;
  bottom: 24%;
  color: #fff;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  z-index: 4;
  will-change: transform, opacity;
}
.s-vert h1 {
  font-family: var(--serif);
  font-size: clamp(3.2rem, 5.5vh, 4.2rem);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.12em;
  text-shadow: 0 12px 36px rgba(0, 0, 0, 0.25);
  opacity: 0;
  animation: softFadeIn 1.8s 1.2s ease-out forwards;
}
.s-vert p {
  font-family: var(--en);
  font-size: 0.85rem;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.8);
  text-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  text-transform: uppercase;
  margin-top: 18px;
  opacity: 0;
  animation: softFadeIn 1.8s 1.8s ease-out forwards;
}
@keyframes softFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Scrolling text layer */
.s-text {
  position: absolute;
  left: 260px;
  top: 0;
  width: 44%;
  z-index: 4;
  will-change: transform;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 85px 70px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}
.s-text p {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 22px;
  color: #fff;
  line-height: 55px;
  letter-spacing: 0.06em;
  margin-bottom: 7vh;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
.s-text p:last-child {
  margin-bottom: 0;
}
@media (max-width: 1400px) {
  .s-text {
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 85%;
    max-width: 700px;
    padding: 60px 40px;
  }
}
/* Photo 2 (slides up) */
.s-photo2 {
  position: absolute;
  inset: 0;
  z-index: 6;
  transform: translateY(100%);
  will-change: transform;
  clip-path: polygon(0 12vh, 100% 0, 100% 100%, 0 100%);
}
@media (max-width: 900px) {
  .s-photo2 {
    clip-path: none !important;
  }
}
.s-photo2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.s-photo2-ov {
  position: absolute;
  inset: 0;
  background: rgba(8, 22, 8, 0.42);
}
/* PLAY MOVIE Custom Cursor */
.play-btn {
  position: fixed;
  top: 0;
  left: 0;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--en);
  font-size: 0.6rem;
  letter-spacing: 0.12em;
  text-align: center;
  line-height: 1.5;
  pointer-events: none;
  z-index: 9999;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}
.play-btn.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.play-btn::before {
  content: "笆ｶ";
  font-size: 0.9rem;
  margin-bottom: 6px;
  display: block;
}

/* Mobile permanent play button (No-cursor environments) */
.mobile-play-btn {
  display: none;
}
@media (max-width: 900px) {
  .mobile-play-btn {
    display: flex;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: var(--en);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 1.4;
    z-index: 10;
    pointer-events: none;
    animation: fadeInPulse 2s infinite alternate;
  }
  .mobile-play-btn::before {
    content: "笆ｶ";
    font-size: 0.8rem;
    margin-bottom: 2px;
    display: block;
  }
}
@keyframes fadeInPulse {
  from {
    opacity: 0.7;
    transform: translate(-50%, -50%) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.05);
  }
}
/* Video Modal */
.v-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(6px);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.v-modal.show {
  opacity: 1;
  pointer-events: auto;
}
.v-modal-close {
  position: absolute;
  top: 40px;
  right: 40px;
  color: #fff;
  font-size: 3rem;
  font-weight: 200;
  line-height: 1;
  cursor: pointer;
  z-index: 10;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s;
}
.v-modal-close:hover {
  transform: rotate(90deg);
}
.v-modal-body {
  width: 80%;
  max-width: 1000px;
  aspect-ratio: 16/9;
  background: transparent;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.15);
}
.v-modal-body video {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
  border-radius: inherit;
  outline: none;
  background: #000;
}
/* Scroll indicator */
.s-btm {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.42);
  font-family: var(--en);
  font-size: 0.75rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  z-index: 3;
  opacity: 0;
  animation: fadeA 1s 1.6s forwards;
}
.s-btm::after {
  content: "";
  display: block;
  width: 1px;
  height: 32px;
  background: rgba(255, 255, 255, 0.25);
}
.s-yr {
  position: absolute;
  bottom: 40px;
  right: 44px;
  font-family: var(--en);
  font-size: 0.54rem;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0.14em;
  writing-mode: vertical-rl;
  z-index: 3;
  opacity: 0;
  animation: fadeA 1s 1.4s forwards;
}
@keyframes fadeA {
  to {
    opacity: 1;
  }
}
/* Progress bar */
.s-prog {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255, 255, 255, 0.12);
  z-index: 10;
}
.s-prog-fill {
  height: 100%;
  background: rgba(255, 255, 255, 0.6);
  width: 0%;
  transition: width 0.08s linear;
}
.hero-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  background: #1a2e18;
}
/* Layer 1: 鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・｡鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬮ｯ・ｷ陋幢ｽｵ郢晢ｽｻ*/
.hero-img-main {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s ease;
}
.hero-img-main.z {
  transform: scale(1.04);
}
.hero-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(20, 40, 18, 0.55) 0%,
    rgba(20, 40, 18, 0.12) 60%,
    transparent 100%
  );
  z-index: 1;
}
/* 鬯ｩ謳ｾ・ｽ・ｵ郢晢ｽｻ繝ｻ・ｦ鬮ｫ・ｴ陷ｴ繝ｻ・ｽ・ｽ繝ｻ・ｸ鬩搾ｽｵ繝ｻ・ｺ鬯ｮ・ｦ繝ｻ・ｪ驍ｵ・ｺ繝ｻ・｡鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓溘・蠑ｱ繝ｻ*/
.hero-vert {
  position: absolute;
  left: 60px;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  z-index: 2;
}
.hero-vert-ttl {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vh, 3rem);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.12em;
  opacity: 0;
  animation: vertSlide 1s 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes vertSlide {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.hero-vert-sub {
  font-family: var(--en);
  font-size: 0.58rem;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  margin-top: 28px;
  opacity: 0;
  animation: vertSlide 1s 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
/* 鬮ｫ・ｴ遶擾ｽｵ郢ｹ・ｱ郢晢ｽｻ郢晢ｽｻ繝ｻ繝ｻ繝ｻ繝ｻ・ｴ鬯ｩ謳ｾ・ｽ・ｱ髯樊ｺｷ・･繝ｻ・ｽ・ｽ繝ｻ・｣驛｢譎｢・ｽ・ｻ郢晢ｽｻ繝ｻ・｣郢晢ｽｻ繝ｻ・ｾ */
.hero-deco {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  border-left: 1px dashed rgba(255, 255, 255, 0.18);
  z-index: 2;
  opacity: 0;
  animation: fadeA 1s 1s forwards;
}
.hero-deco2 {
  position: absolute;
  top: 0;
  right: 120px;
  width: 1px;
  height: 100%;
  border-left: 1px dashed rgba(255, 255, 255, 0.12);
  z-index: 2;
  opacity: 0;
  animation: fadeA 1s 1.2s forwards;
  transform: rotate(8deg);
  transform-origin: top;
}
@keyframes fadeA {
  to {
    opacity: 1;
  }
}
/* Scroll indicator */
.hero-btm {
  position: absolute;
  bottom: 44px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.45);
  font-family: var(--en);
  font-size: 0.52rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  z-index: 3;
  opacity: 0;
  animation: fadeA 1s 1.5s forwards;
}
.hero-btm::after {
  content: "";
  display: block;
  width: 1px;
  height: 36px;
  background: rgba(255, 255, 255, 0.28);
}
.hero-yr {
  position: absolute;
  bottom: 48px;
  right: 48px;
  font-family: var(--en);
  font-size: 0.56rem;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.14em;
  writing-mode: vertical-rl;
  z-index: 3;
  opacity: 0;
  animation: fadeA 1s 1.3s forwards;
}
/* Layer 2: 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ驍ｵ・ｺ郢晢ｽｻ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｻ鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬮ｯ・ｷ陷ｻ莠･・ｾ蜉ｱ繝ｻ繝ｻ・ｼ髯具ｽｹ繝ｻ・ｻ驍ｵ・ｺ陝ｶ・ｷ繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬯ｯ・ｨ繝ｻ・ｾ郢晢ｽｻ繝ｻ・｣鬮ｯ・ｷ隶朱�托ｽ｡竏壹・繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.hero-slide {
  position: absolute;
  inset: 0;
  z-index: 5;
  transform: translateY(100%);
  will-change: transform;
}
.hero-slide-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-slide-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(10, 28, 10, 0.6) 0%,
    rgba(10, 28, 10, 0.15) 60%,
    transparent 100%
  );
}
.hero-slide-cnt {
  position: absolute;
  left: 64px;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  writing-mode: vertical-rl;
  z-index: 1;
}
.hero-slide-ttl {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3.5vh, 2.6rem);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.12em;
  margin-bottom: 0;
}
.hero-slide-sub {
  font-family: var(--en);
  font-size: 0.55rem;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  margin-top: 24px;
}
/* 鬯ｯ・ｨ繝ｻ・ｾ郢晢ｽｻ繝ｻ・ｲ鬮ｫ・ｰ闔牙雀・ｹ・ｲ驛｢譎｢・ｽ・ｰ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ */
.hero-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  background: rgba(255, 255, 255, 0.3);
  z-index: 10;
  width: 0%;
  transition: width 0.1s linear;
}
.hero-progress-fill {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  background: #fff;
  width: 0%;
  z-index: 11;
  transition: width 0.05s linear;
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ MARQUEE 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.mq {
  overflow: hidden;
  background: var(--gd);
  padding: 14px 0;
  border-bottom: none;
}
.mq-track {
  display: flex;
  white-space: nowrap;
  animation: mq 26s linear infinite;
}
.mq-track:hover {
  animation-play-state: paused;
}
.mqi {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  padding: 0 24px;
  font-family: var(--en);
  font-size: 0.64rem;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
}
.mqi::after {
  content: "";
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
}
@keyframes mq {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ WIREFRAME STRUCTURE (KIYASUKU COPY) 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.sec-padding {
  padding: 180px 40px;
}
.inner {
  max-width: 1080px;
  margin: 0 auto;
  width: 100%;
  position: relative;
}
.wire-img {
  background: #eee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--en);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  color: rgba(0, 0, 0, 0.3);
}

/* Common Titles */
.ky-sec-ttl {
  font-family: var(--en);
  font-size: 0.7rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--tm);
  text-align: center;
  margin-bottom: 60px;
  line-height: 2;
}
.ky-sec-ttl span {
  display: block;
  font-family: var(--serif);
  font-size: 1.6rem;
  letter-spacing: 0.1em;
  color: var(--td);
  margin-top: 8px;
  font-weight: 500;
}

/* BLOCK 1: Intro */
.ky-intro-in {
  display: grid;
  grid-template-columns: 480px 1fr;
  gap: 60px;
  align-items: center;
  min-height: 80vh;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 40px;
}
.ky-intro-txt {
  display: flex;
  flex-direction: column;
}
.ky-intro-txt h2 {
  font-family: var(--serif);
  font-size: 33px;
  font-weight: 500;
  line-height: 80px;
  letter-spacing: 0.1em;
  color: rgb(0, 0, 0);
  margin-bottom: 40px;
  white-space: nowrap;
}
.ky-intro-txt p {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 400;
  line-height: 43px;
  letter-spacing: 0.05em;
  color: rgb(85, 85, 85);
}
.ky-intro-desc p:not(:last-child) {
  margin-bottom: 16px;
}

/* 鬮ｫ・ｲ繝ｻ・｡郢晢ｽｻ繝ｻ・ｬ鬮ｯ貊捺ｱ壹・・ｽ繝ｻ・ｧ驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ繝ｻ縺､ﾂ鬯ｲ繝ｻ・ｼ螟ｲ・ｽ・ｽ繝ｻ・ｼ髯晢ｽｲ繝ｻ・ｨ驕ｯ・ｶ繝ｻ・ｲ鬮ｯ・ｷ・つ髯晢ｽｶ隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｭ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｫ・ｴ陞滂ｽｲ繝ｻ・ｽ繝ｻ・･鬩幢ｽ｢繝ｻ・ｧ髯ｷ・ｿ繝ｻ・･郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｴ鬮ｯ・ｷ繝ｻ・ｷ髯具ｽｹ繝ｻ・ｻ驛｢譎｢・ｽ・ｻ鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬮ｫ・ｰ繝ｻ・ｰ驛｢譎｢・ｽ・ｻ驕ｶ謫ｾ・ｽ・ｴ鬯ｮ・ｫ繝ｻ・ｱ郢晢ｽｻ繝ｻ・ｿ鬮ｫ・ｰ繝ｻ・ｨ郢晢ｽｻ繝ｻ・ｴ驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ髫ｰ譴ｧ豎壹・・ｽ繝ｻ・ｸ髣包ｽｵ隴擾ｽｶ・つ繝ｻ・ｲ鬩幢ｽ｢繝ｻ・ｧ髯槭ｅ繝ｻ繝ｻ・ｽ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.pull-bracket {
  text-indent: -0.5em;
}
.pull-inline {
  display: inline-block;
  margin-left: -0.5em;
}
.ky-intro-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 23px;
  letter-spacing: 0.05em;
  color: rgb(0, 0, 0);
  text-decoration: none;
  margin-top: 60px;
  transition:
    opacity 0.4s ease,
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.ky-intro-link:hover {
  opacity: 0.6;
  transform: translateX(6px);
}
.dot-o {
  width: 8px;
  height: 8px;
  background: #ff8c73;
  border-radius: 50%;
  display: inline-block;
}
.ky-intro-img {
  width: 115%;
  position: relative;
  margin-top: -60px;
  margin-left: -5%;
  display: flex;
  justify-content: flex-end;
}
/* 鬮ｯ讖ｸ・ｽ・ｳ髫ｰ逍ｲ・ｺ蛟･繝ｻ鬮ｴ螟ｧ・､鬘倥°郢晢ｽｻ繝ｻ・ｼ髯ｷ・ｩ繝ｻ・ｮiyasuku鬮ｮ雜｣・ｽ・ｬ驕ｶ荳橸ｽ｣・ｹ郢晢ｽｻ鬮｣蛹・ｽｽ・ｳ髫ｶ荳ｻ・･繝ｻ・ｽ・ｽ繝ｻ・ｮ髯橸ｽ｢繝ｻ・ｼ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・｢鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬮ｫ・ｴ陝ｶ・ｷ陋ｻ・､郢晢ｽｻ繝ｻ・ｩ髮九・・ｽ・ｽ髯懆ｶ｣・ｽ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｦ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴取ｨ頑據髫ｴ・ｴ陝ｷ繝ｻ・ｴ諷包ｽｹ譎｢・ｽ・ｻ郢晢ｽｻ鬯伜∞・ｽ・ｬ陞｢・ｽ郢ｹ・ｱ驕ｯ・ｶ繝ｻ・ｳ */
.ky-video-mask {
  width: 100%;
  max-width: none;
  aspect-ratio: 4/3;
  background: #eee;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-mask-image: url("../images/01_top/organic-mask.svg");
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-image: url("../images/01_top/organic-mask.svg");
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: center;
}

/* -----------------------------------
   BLOCK 2: Piece (Asymmetrical Story)
------------------------------------ */
.ky-piece-in {
  display: grid;
  /* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ35%鬩搾ｽｵ繝ｻ・ｲ驕ｶ謫ｾ・ｽ・ｽ郢晢ｽｻ繝ｻ・ｸ郢晢ｽｻ繝ｻ・ｭ鬮ｯ讓奇ｽｻ繧托ｽｽ・ｽ繝ｻ・ｮ50%鬩搾ｽｵ繝ｻ・ｲ驕ｶ荵怜・關難ｽ｡15%驛｢譎｢・ｽ・ｻ髣費｣ｰ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｽ髯ｷ・･闕ｳ讓｣・ｰ繝ｻ蛹壹・・ｷ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ繝ｻ縺､ﾂ驛｢譎｢・ｽ・ｻ髯晢ｽｲ繝ｻ・ｨ驛｢譎｢・ｽ・ｻ鬯ｲ繝ｻ・ｺ蛟･繝ｻ驕ｶ蛹・ｽｽ・｡鬮ｮ荳ｻ豐ｺ鬲榊�､・ｸ・ｺ陜｣・､繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｩ */
  grid-template-columns: 1fr 1.6fr auto;
  gap: 40px;
  align-items: center;
  max-width: 1200px; /* 鬯ｮ・ｫ陷肴ｺｽ遘・垈雋ｻ・ｽ・ｽ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｵ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓滄Δ譎｢・ｽ・ｻ鬮ｯ貅ｷ・ｼ・ｱ郢晢ｽｻ郢晢ｽｻ繝ｻ・､郢晢ｽｻ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｪ鬮｣蜴・ｽｽ・ｴ髯ｷ・･闕ｳ讓｣・ｰ繝ｻﾎ斐・・ｧ鬮ｮ蛹ｺ・ｧ・ｭ郢晢ｽｻ鬮ｴ謇假ｽｽ・ｴ郢晢ｽｻ繝ｻ・ｾ */
  width: 100%;
}

/* Left Text */
.ky-piece-left {
  padding-top: 40px;
}
.piece-en {
  font-family: var(--en);
  font-size: clamp(2.5rem, 4vw, 3.8rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: 0.05em;
  color: var(--tm);
  margin-bottom: 30px;
  text-transform: uppercase;
}
.piece-ja {
  font-family: var(--serif);
  font-size: clamp(2rem, 2.6vw, 3rem);
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1.8;
  color: var(--tm);
  margin-bottom: 30px;
}
.piece-desc p {
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.1em;
  color: var(--tm);
  margin-bottom: 2em;
  opacity: 0.9;
}
.ky-nowrap {
  display: inline-block;
}

/* Center Image */
.ky-piece-img {
  width: 100%;
  display: flex;
  justify-content: center;
}

/* 繝ｩ繝・ヱ繝ｼ・夂ｵｶ蟇ｾ縺ｫ逵溷屁隗抵ｼ・:1・峨ｒ邯ｭ謖√☆繧区怙蠑ｷ縺ｮ讒矩�・・adding-top繝上ャ繧ｯ・・*/
.ky-piece-blob-wrap {
  position: relative;
  width: 100%;
  max-width: 650px;
  overflow: hidden;
  border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
  z-index: 1;
  transform: translate3d(0, 0, 0); /* Safari繝舌げ蟇ｾ遲・*/
}
.ky-piece-blob-wrap::before {
  content: "";
  display: block;
  padding-top: 100%;
}

/* 迢ｬ遶九＠縺溘≠縺励ｉ縺・ｼ医ヴ繝ｳ繧ｯ荳ｸ縺ｮ繧ｪ繝悶ず繧ｧ・・*/
.ky-piece-pink-obj {
  position: absolute;
  top: 10%;
  right: 5%; /* 荳逡ｪ蜿ｳ蛛ｴ縺ｮ邵ｦ譖ｸ縺阪ユ繧ｭ繧ｹ繝医・閭梧勹縺ゅ◆繧翫↓驟咲ｽｮ */
  width: clamp(200px, 30vw, 400px);
  aspect-ratio: 1/1;
  background-color: rgba(255, 138, 118, 0.09); /* 繧ｴ繝ｼ繧ｹ繝医ヴ繝ｳ繧ｯ */
  /* 縺薙％繧ら悄蜀・ｒ繧・ａ縺ｦ縲√・繝悶Ν蠖｢迥ｶ縺ｫ螟画峩・・㍾縺ｪ繧雁粋縺・縺､縺ｮ遏ｳ繧定｡ｨ迴ｾ */
  border-radius: 60% 40% 50% 50% / 50% 50% 40% 60%;
  z-index: 0;
  pointer-events: none;
}

/* 逕ｻ蜒乗悽菴難ｼ壼・縺ｮ驪ｭ縺輔ｒ繧ゅ▲縺滓ｳ｢謇薙■蠖｢迥ｶ繧剃ｿ昴▽ */
.ky-piece-img img {
  position: absolute;
  top: -15%;
  left: -5%;
  z-index: 1;
  width: 110%;
  height: 130%;
  object-fit: cover;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

/* Right Vertical Text */
.ky-piece-right {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
}
.piece-vert-sub {
  font-family: var(--en);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: rgba(0, 0, 0, 0.5);
  text-transform: uppercase;
  margin-top: auto;
}
.piece-vert-ttl {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.15em;
  color: var(--tm);
}

/* BLOCK 2: Center Massive */
.ky-center-img .center {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ky-massive-img-wrap {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}

/* -----------------------------------
   BLOCK 3: Services (Statement & Grid)
------------------------------------ */
.ky-services {
  padding-top: 60px;
}

.ky-statement {
  font-family: var(--serif);
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.12em;
  color: var(--tm);
  margin-bottom: 120px;
  /* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ繝ｻ雜｣・ｽ・ｦ鬩幢ｽ｢隴寂握縺狗ｹ晢ｽｻ繝ｻ・ｼ髯具ｽｹ繝ｻ・ｻ驍ｵ・ｺ陷･・ｲ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴乗・・ｽ・ｺ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｽ髯ｷ・･繝ｻ・ｲ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｮ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｨ鬮ｯ・ｷ繝ｻ・ｷ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ陷證ｦ・ｽ・ｸ繝ｻ・ｺ髯晢ｽｶ陷ｻ・ｻ繝ｻ・ｽ闕ｵ譏ｴ繝ｻ驛｢譎｢・ｽ・ｻ*/
  padding-left: 20px;
}

.ky-svc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  max-width: 1000px;
  margin: 0 auto;
}

.ky-svc-card {
  position: relative;
  /* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｮ・ｦ繝ｻ・ｮ驛｢譎｢・ｽ・ｻ郢晢ｽｻ隶難ｽ｣邵ｺ蜉ｱ繝ｻ繝ｻ・ｦ鬯ｩ謳ｾ・ｽ・ｱ髯橸ｽ｢繝ｻ・ｹ驕ｶ髮・｣ｰ・､繝ｻ・ｹ隴乗・・ｽ・ｻ繝ｻ・｣驛｢譎｢・ｽ・ｧ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｣鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｰ */
  padding-left: 35px;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  padding-bottom: 20px;
}

.ky-svc-img-wrap {
  position: relative;
  width: 75%; /* 鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓溽ｹ晢ｽｻ郢晢ｽｻ繝ｻ・ｭ繝ｻ・ｫ郢晢ｽｻ繝ｻ・ｽ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩搾ｽｵ繝ｻ・ｺ髮九・竏槭・・ｽ遶擾ｽｫ繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬮｣蜴・ｽｽ・ｴ髯ｷ・･闕ｳ讓｣・ｰ繝ｻ*/
  margin-bottom: 60px;
}
/* 鬩幢ｽ｢隴弱・魃ｵ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隰ｨ魑ｴﾂ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ髮趣ｽｼ繝ｻ・ｶ郢晢ｽｻ繝ｻ・ｲ */
.ky-svc-img-wrap.shape-blue .wire-img {
  border: 1px solid #5b879c;
  border-radius: 2px;
}
.ky-svc-img-wrap.shape-orange .wire-img {
  border: 1px solid #e27d53;
  border-radius: 2px;
}

/* 鬯ｩ謳ｾ・ｽ・ｵ郢晢ｽｻ繝ｻ・ｦ鬮ｫ・ｴ陷ｴ繝ｻ・ｽ・ｽ繝ｻ・ｸ鬩搾ｽｵ繝ｻ・ｺ鬯ｮ・ｦ繝ｻ・ｪ驛｢譎｢・ｽ・ｵ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ郢晢ｽｻ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｰ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ*/
.ky-svc-vert {
  position: absolute;
  top: 50%;
  right: -55px; /* 鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｳ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｿ鬮ｯ・ｷ郢晢ｽｻ繝ｻ・ｽ繝ｻ・ｺ鬩搾ｽｵ繝ｻ・ｺ鬮ｴ蝓溷繭鬮ｮ・ｷ鬩幢ｽ｢繝ｻ・ｧ驛｢譎｢・ｽ・ｻ*/
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: var(--en);
  font-size: 12px;
  letter-spacing: 0.25em;
  color: rgba(0, 0, 0, 0.6);
  pointer-events: none;
}

/* 鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓滄し・ｺ鬯倩ｲｻ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢ */
.ky-svc-tx h3 {
  font-family: var(--serif);
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.15em;
  color: var(--tm);
  margin-bottom: 50px;
}
.ky-svc-tx p {
  font-size: 13px;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.08em;
  color: var(--tm);
  margin-bottom: 60px;
  text-align: justify;
}
.ky-svc-tx .ky-intro-link {
  margin-top: 0;
  font-size: 16px;
}

/* -----------------------------------
   BLOCK 4: Story (Arch Shape)
------------------------------------ */
.ky-story {
  padding-bottom: 120px;
}
.ky-story-in {
  display: grid;
  grid-template-columns: 6.5fr 3.5fr; /* 鬮ｯ・ｷ・つ髯ｷ・･闕ｵ證ｦ・ｽ繝ｻ5% : 鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ5% */
  gap: 80px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ驛｢譎｢・ｽ・ｻ髯橸ｽ｢繝ｻ・ｹ驍ｵ・ｺ郢晢ｽｻ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴擾ｽｶ郢晢ｽｻ髫ｴ・ｴ陝ｷﾎｴﾂ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬮ｯ・ｷ陋幢ｽｵ郢晢ｽｻ*/
.ky-story-img-wrap {
  position: relative;
  width: 100%;
}
.ky-story-img-wrap .arch-img {
  width: 100%;
  aspect-ratio: 4/3;
  background: #eee;
  /* 鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｳ鬮｣蛹・ｽｽ・ｳ鬩怜遜・ｽ・ｫ髫ｨ繝ｻ・ｽ・｡鬩搾ｽｵ繝ｻ・ｺ髣比ｼ夲ｽｽ・｣郢晢ｽｻ陝ｶ譎｢・ｽ・ｩ繝ｻ・ｪ郢晢ｽｻ繝ｻ・ｭ鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ鬮ｯ貊捺ｱ壹・・ｽ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｯ蜈ｷ・ｽ・ｻ驛｢譎｢・ｽ・ｻ郢晢ｽｻ鬯伜∞・ｽ・ｬ陞｢・ｽ郢ｹ・ｱ郢晢ｽｻ繝ｻ・･ */
  border-top-right-radius: 250px;
  overflow: hidden;
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴擾ｽｶ郢晢ｽｻ驛｢譎｢・ｽ・ｻ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｩ蠅楢・繝ｻ・ｽ繝ｻ・ｴ鬯ｩ謳ｾ・ｽ・ｱ髯橸ｽ｢繝ｻ・ｹ驛｢譎｢・ｽ・ｧ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｳ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｬ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ驍ｵ・ｺ陝ｶ・ｷ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・｣鬩幢ｽ｢隴擾ｽｶ隰�・｡郢晢ｽｻ繝ｻ・｡郢晢ｽｻ繝ｻ・ｨ鬮ｴ謇假ｽｽ・ｴ郢晢ｽｻ繝ｻ・ｾ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ*/
.arch-deco {
  position: absolute;
  top: 15px;
  right: 15px;
  bottom: 0px;
  left: 0px;
  border-top-right-radius: 235px; /* 鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驍ｵ・ｺ陝ｶ・ｷ繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ(250px)鬩幢ｽ｢繝ｻ・ｧ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ郢晢ｽｻ5px鬮ｯ譏ｴ繝ｻ繝ｻ・ｸ陞ゅ・・ｽ・ｼ郢晢ｽｻ繝ｻ・ｸ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ鬮ｯ貊捺ｱ壹・・ｽ繝ｻ・ｧ */
  border-top: 1px dashed rgba(255, 255, 255, 0.8);
  border-right: 1px dashed rgba(255, 255, 255, 0.8);
  pointer-events: none;
  z-index: 2;
}

/* 鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｳ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ驛｢譎｢・ｽ・ｻ髯橸ｽ｢繝ｻ・ｹ驛｢譎｢・ｽ・ｦ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｭ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓滄し・ｺ鬯倩ｲｻ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢ */
.ky-story-tx {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* 鬯ｩ謳ｾ・ｽ・ｵ郢晢ｽｻ繝ｻ・ｦ鬮ｫ・ｴ陷ｴ繝ｻ・ｽ・ｽ繝ｻ・ｸ鬩搾ｽｵ繝ｻ・ｺ鬯ｮ・ｦ繝ｻ・ｪ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｨ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ */
.story-poem {
  margin-top: 40px;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: var(--serif);
  font-size: 13.5px;
  line-height: 2.6;
  letter-spacing: 0.2em;
  color: var(--tm);
  margin-bottom: auto; /* 鬮｣蛹・ｽｽ・ｳ髣包ｽｵ隴擾ｽｴ郢晢ｽｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｿ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓溘・蜿門旭繝ｻ・ｹ繝ｻ・ｧ髯ｷ莉｣繝ｻ繝ｻ・ｽ繝ｻ・ｸ繝ｻ縺､ﾂ鬯ｨ・ｾ繝ｻ・｡郢晢ｽｻ繝ｻ・ｪ鬮｣蛹・ｽｽ・ｳ髣包ｽｵ隴擾ｽｶ郢晢ｽｻ鬮ｫ・ｰ陞滂ｽｲ繝ｻ・ｽ繝ｻ・ｼ鬩搾ｽｵ繝ｻ・ｺ髯ｷ莨夲ｽｽ・ｱ郢晢ｽｻ郢晢ｽｻ繝ｻ・ｹ繝ｻ・ｧ驛｢譎｢・ｽ・ｻ*/
}

/* 鬮｣蛹・ｽｽ・ｳ鬩墓得・ｽ・ｩ繝ｻ荳ｻ・､繧托ｽｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｿ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓溘・蠑ｱ繝ｻ*/
.story-titles {
  padding-bottom: 20px;
}
.story-ttl {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 42px);
  font-weight: 400; /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩搾ｽｵ繝ｻ・ｺ髯ｷ莨夲ｽｽ・ｱ髫ｨ・ｳ郢晢ｽｻ繝ｻ荳翫・繝ｻ・ｰ鬯ｮ・ｴ郢晢ｽｻ繝ｻ・ｽ繝ｻ・ｫ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬮ｫ・ｴ闕ｳ讒ｫ蠕宣垈譁舌・*/
  letter-spacing: 0.15em;
  color: var(--tm);
  margin-bottom: 24px;
}
.story-sub {
  font-family: var(--serif);
  font-size: 16px;
  letter-spacing: 0.12em;
  color: var(--tm);
  margin-bottom: 60px;
}

/* -----------------------------------
   BLOCK 5: Collaborations (Slider)
------------------------------------ */
.ky-collab {
  background: #f8f9fa;
  overflow: hidden;
  padding-top: 80px;
  padding-bottom: 120px;
}
.ky-collab-in {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 40px;
}

.collab-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 60px;
}
.collab-ttl {
  font-family: var(--serif);
  font-size: clamp(20px, 3vw, 24px);
  letter-spacing: 0.2em;
  color: var(--tm);
}
.collab-head .ky-intro-link {
  font-size: 14px;
  margin-top: 0;
}

.collab-view {
  width: 100%;
  overflow: hidden;
  padding-bottom: 20px;
  cursor: grab;
}
.collab-view:active {
  cursor: grabbing;
}

/* 鬩幢ｽ｢隴主・讓溘・荳ｻ・ｸ・ｷ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ鬩｢謳ｾ・ｽ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｨ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ*/
.collab-track {
  display: flex;
  gap: 40px;
  width: max-content;
}
.collab-card {
  width: clamp(280px, 20vw, 340px);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

/* 鬯ｨ・ｾ繝ｻ・ｵ髮九・ﾂ・ｪ陞滂ｽ｢鬯ｨ・ｾ陷茨ｽｷ繝ｻ・ｽ繝ｻ・ｽ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴乗・・ｽ・ｼ陞滂ｽｲ繝ｻ・ｽ繝ｻ・ｼ鬮｢・ｧ繝ｻ・ｲ髯具ｽｻ繝ｻ・､鬮ｯ・ｷ髮区ｨ奇ｽｲ繝ｻ・ｾ荳ｻ・､髮・ｽｴ諷包ｽｹ譎｢・ｽ・ｻ郢晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.collab-img-wrap {
  width: 100%;
  background: #fff;
  padding: 30px;
  margin-bottom: 24px;
  /* 鬮｣豈費ｽｼ螟ｲ・ｽ・ｽ繝ｻ・･鬮｣蛹・ｽｽ・ｳ髣包ｽｵ隰ｨ魑ｴﾂ驛｢・ｧ陟厄ｽｿyasuku鬯ｯ・ｯ陞滂ｽｲ繝ｻ・ｽ繝ｻ・ｨ鬮ｯ・ｷ繝ｻ・ｻ郢晢ｽｻ繝ｻ・ｳ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｯ・ｮ繝ｻ・ｱ髫ｶ謚ｵ・ｽ・ｫ郢晢ｽｻ繝ｻ・ｸ郢晢ｽｻ繝ｻ・ｸ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｮ雜｣・ｽ・ｺ郢晢ｽｻ繝ｻ・｡鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｱ */
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.02);
}
.collab-img-wrap .wire-img {
  background: #eee;
}

/* 鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓滄し・ｺ鬯倩ｲｻ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢ */
.collab-sub {
  font-family: var(--serif);
  font-size: 11px;
  color: rgba(0, 0, 0, 0.4);
  margin-bottom: 12px;
  letter-spacing: 0.1em;
}
.collab-name {
  font-family: var(--serif);
  font-size: 18px;
  color: var(--tm);
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin-bottom: 8px;
  font-weight: 500;
}
.collab-desc {
  font-family: var(--serif);
  font-size: 12px;
  color: rgba(0, 0, 0, 0.4);
  letter-spacing: 0.05em;
}

/* -----------------------------------
   BLOCK 6: Flow / Steps (Horizontal Slider)
------------------------------------ */
.ky-flow {
  background: #fff;
  padding-bottom: 120px;
}
.ky-flow-in {
  max-width: 1200px;
  margin: 0 auto;
}

.flow-head {
  margin-bottom: 60px;
  padding-left: 100px; /* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩幢ｽ｢隴取得・ｽ・｣繝ｻ・ｹ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｸ鬩幢ｽ｢隴取ｨ費ｽｺ繧会ｽｹ譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬮ｯ譎｢・ｽ・ｷ驛｢譎｢・ｽ・ｻ驕ｶ髮・ｽｮ螟ｲ・ｽ・ｬ繝ｻ・ｰ驛｢譎｢・ｽ・ｻ驕ｶ謫ｾ・ｽ・ｴ鬩幢ｽ｢繝ｻ・ｧ驛｢譎｢・ｽ・ｻ*/
}

/* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ鬩幢ｽ｢隴取得・ｽ・｣繝ｻ・ｹ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｸ鬩幢ｽ｢隴取ｨ費ｽｺ繧会ｽｹ譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ驛｢譎｢・ｽ・ｻ髯ｷ・ｿ繝ｻ・･髫ｰ繝ｻ・ｽ・ｿ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ */
.flow-wrap {
  display: flex;
  position: relative;
}

/* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ驛｢譎｢・ｽ・ｻ髯橸ｽ｢繝ｻ・ｼ髯晢｣ｰ驍・戟・･諛・､ｶ繝ｻ・ｹ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｸ鬩幢ｽ｢隴取ｨ費ｽｺ繧会ｽｹ譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ */
.flow-pagination {
  width: 100px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  padding-top: 20px;
}
.flow-idx {
  font-family: var(--serif);
  font-size: 13px;
  color: var(--gl);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  letter-spacing: 0.1em;
}

/* 鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｳ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ驛｢譎｢・ｽ・ｻ髯橸ｽ｢繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｨ郢晢ｽｻ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｨ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢ */
.flow-slider {
  flex-grow: 1;
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 40px;
  cursor: grab;
  /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩幢ｽ｢隴寂・繝ｻ驛｢譎｢・ｽ・ｻ鬯ｯ・ｮ繝ｻ・ｱ髫ｶ螢ｹ繝ｻ繝ｻ・ｽ繝ｻ・｡郢晢ｽｻ繝ｻ・ｨ鬯ｩ遨ゑｽｼ螟ｲ・ｽ・ｽ繝ｻ・ｺ */
  scrollbar-width: none;
  /* 鬮ｫ・ｴ遶丞｣ｹ繝ｻ郢晢ｽｻ繝ｻ・ｭ鬯ｩ・､繝ｻ・ｴ驕ｶ蝓弱Γ繝ｻ・ｬ陞｢・ｽ繝ｻ・ｧ繝ｻ・ｭ郢晢ｽｻ郢晢ｽｻ繝ｻ・ｹ隴取ｨ費ｽｺ繧会ｽｸ・ｺ郢晢ｽｻ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ郢晢ｽｻ繝ｻ・ｹ隴弱・ﾂｧ驛｢譎｢・ｽ・ｩ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陜｣・､繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｯ・ｮ繝ｻ・ｦ郢晢ｽｻ繝ｻ・ｲ鬮ｮ蠑ｱ繝ｻ繝ｻ・ｽ繝ｻ・｢ */
  user-select: none;
  -webkit-user-select: none;
}
.flow-slider::-webkit-scrollbar {
  display: none;
}
.flow-slider:active {
  cursor: grabbing;
}

/* 鬮ｯ・ｷ・つ驛｢譎｢・ｽ・ｻ繝ｻ荳ｻ・､莉吝ｯｰ驕ｶ謫ｾ・ｽ・ｫ郢晢ｽｻ繝ｻ・ｴ郢晢ｽｻ繝ｻ・ｽ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｴ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓滄Δ譎｢・ｽ・ｩ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陞ｳ螟ｲ・ｽ・ｬ陞溘ｑ・ｽ・ｬ繝ｻ・ｬ郢晢ｽｻ繝ｻ・ｭ郢晢ｽｻ繝ｻ・｢ */
.flow-slider * {
  -webkit-user-drag: none;
}
/* JS鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｧ鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ繝ｻ荳ｻ・ｸ・ｷ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陞ｳ螢ｼ蛻晉ｹ晢ｽｻ繝ｻ・ｭ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬯ｮ・ｫ繝ｻ・ｱ郢晢ｽｻ繝ｻ・､鬮ｴ雜｣・ｽ・ｷ驛｢譎｢・ｽ・ｻ郢晢ｽｻ陝ｶ譎｢・ｽ・ｫ繝ｻ・ｦ郢晢ｽｻ繝ｻ・ｲ鬩搾ｽｵ繝ｻ・ｺ鬮｣髮・ｽｨ・ｯ髯橸ｽｺ鬩幢ｽ｢繝ｻ・ｧ驕ｶ荳橸｣ｰ莉ｰﾂ驕ｶ荵嶺ｺ｢郢晢ｽｻ鬯ｯ・ｩ陝ｷ・｢繝ｻ・ｽ繝ｻ・ｨ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ髫ｨ繝ｻ・ｽ・｡鬩搾ｽｵ繝ｻ・ｺ髣比ｼ夲ｽｽ・｣驍ｵ・ｺ鬩｢謳ｾ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ鬯倬ｯ会ｽｽ・ｾ雋翫ｑ・ｽ・ｽ繝ｻ・｡鬮ｯ・ｷ闔ｨ螟ｲ・ｽ・ｽ繝ｻ・ｹ鬮ｯ蜈ｷ・ｽ・ｹ驛｢譎｢・ｽ・ｻ*/
.flow-slider.is-dragging .flow-card {
  pointer-events: none;
}

/* 鬮ｯ・ｷ繝ｻ・ｷ驛｢譎｢・ｽ・ｻ驍ｵ・ｺ陷･・ｲ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ*/
.flow-card {
  flex: 0 0 calc(100% - 40px); /* 鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬯ｯ・ｮ繝ｻ・ｱ郢晢ｽｻ繝ｻ・｢鬮ｯ譎｢・ｽ・ｷ驛｢譎｢・ｽ・ｻ繝ｻ繧托ｽｽ・ｰ鬩幢ｽ｢繝ｻ・ｧ髴大｣ｼ驕懊・・ｽ繝ｻ・ｰ髣比ｼ夲ｽｽ・｣郢晢ｽｻ繝ｻ・ｰ鬮｣蜴・ｽｽ・ｴ髯ｷ・･闕ｳ讓｣・ｰ繝ｻﾎ斐・・ｧ髯ｷ・ｻ髣鯉ｽｨ繝ｻ・ｽ繝ｻ・ｮ髣包ｽｵ隴擾ｽｶ郢晢ｽｻ */
  max-width: 450px;
  scroll-snap-align: start;
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  padding: 10px 40px 0;
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴弱・繝ｻ郢晢ｽｻ繝ｻ・ｸ髣費ｽｨ遶上・・｣・ｹ郢晢ｽｻ髯樊ｺ假ｽ・ｹ晢ｽｻ鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｿ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓溘・蠑ｱ繝ｻ*/
.flow-c-top {
  font-family: var(--serif);
  font-size: 16px;
  letter-spacing: 0.1em;
  color: var(--gl);
  margin-bottom: 30px;
}
.flow-c-ttl {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--tm);
  margin-bottom: 50px;
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴弱・繝ｻ郢晢ｽｻ繝ｻ・ｸ鬩墓得・ｽ・ｩ繝ｻ荳ｻ・｣・ｹ郢晢ｽｻ髯橸ｽ｢繝ｻ・ｹ驍ｵ・ｺ郢晢ｽｻ繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｳ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ驛｢譎｢・ｽ・ｻ髣包ｽｵ隴擾ｽｴ・主ｬﾎ斐・・ｧ郢晢ｽｻ繝ｻ・ｭ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ*/
.flow-c-bot {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.fc-icon {
  width: 100%;
  aspect-ratio: 3/2;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.fc-tx p {
  font-size: 12.5px;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.08em;
  color: var(--tm);
  margin-bottom: 40px;
  text-align: justify;
}
.fc-tx .ky-intro-link {
  font-size: 14px;
  margin-top: 0;
}

/* -----------------------------------
   BLOCK 7: News
------------------------------------ */
.ky-news {
  background: #fff;
  padding-top: 60px;
  padding-bottom: 120px;
}
.ky-news-in {
  display: flex;
  gap: 120px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ */
.ky-news-left {
  width: 120px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: 40px;
  padding-bottom: 20px;
}
.ky-news-left .ky-sec-ttl {
  font-family: var(--serif);
  font-size: 20px;
  letter-spacing: 0.15em;
  color: var(--tm);
  text-align: left;
  margin-bottom: 0;
}
.ky-news-left .ky-intro-link {
  margin-top: 0;
  font-size: 14px;
}

/* 鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｳ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ繝ｻ蜿悶渚繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴寂握縺狗ｹ晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.ky-news-right {
  flex-grow: 1;
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ闕ｵ貊ゑｽｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢隴弱・・ｽ・ｼ隴∫ｵｶ隘夜ｩ幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｿ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴寂・繝ｻ驛｢譎｢・ｽ・ｻ */
.ky-news-filter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.news-count {
  font-family: var(--serif);
  font-size: 15px;
  letter-spacing: 0.15em;
  color: var(--tm);
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ闕ｵ貊ゑｽｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ繝ｻ蜿厄ｽｺ・ｽ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隰ｨ魑ｴﾂ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｦ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ */
.news-cat-dropdown {
  position: relative;
  width: 140px;
}
.cat-toggle {
  width: 100%;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 40px; /* 鬩幢ｽ｢隴弱・・ｱ謚ｵ・ｾ蜿門・隰ｦ諷包ｽｹ譎｢・ｽ・ｻ*/
  padding: 8px 20px;
  font-family: var(--serif);
  font-size: 13px;
  color: var(--tm);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: border-color 0.3s;
}
.cat-toggle:hover {
  border-color: rgba(0, 0, 0, 0.3);
}

/* 鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ繝ｻ蜿厄ｽｺ・ｽ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隰ｨ魑ｴﾂ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｦ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・｡鬩幢ｽ｢隴乗・・ｽ・ｹ隴∵ｺｽ・､・ｼ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ鬨ｾ雜｣・ｽ・ｯ髯晢ｽｷ隲ｷ蛹・ｽｽ・ｸ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ髫ｨ・ｳ郢晢ｽｻ繝ｻ・ｿ繝ｻ・･郢晢ｽｻ繝ｻ・ｶ鬮ｫ・ｲ繝ｻ・ｷ髯ｷ闌ｨ・ｽ・ｷ郢晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.cat-menu-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 20px; /* 鬮ｯ讓奇ｽｻ繧托ｽｽ・ｽ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ鬯ｮ・ｦ繝ｻ・ｪ驕ｶ莨・ｽｷ・ｹ陜玲･｢諱・ｹ晢ｽｻ繝ｻ・ｽ繝ｻ・ｸ郢晢ｽｻ繝ｻ・ｸ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｩ髦ｪ・代・・ｽ繝ｻ・ｱ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｯ讓奇ｽｺ・ｽ騾包ｽ･髯懈ｻゑｽｽ・ｧ */
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: all 0.2s ease;
  z-index: 20;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); /* 鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ髫ｨ繝ｻ・ｽ・ｲ鬩搾ｽｵ繝ｻ・ｺ髯ｷ・ｷ繝ｻ・ｶ郢晢ｽｻ髣・ｽｽ繝ｻ・ｰ陷ｴ繝ｻ・ｽ・ｽ繝ｻ・ｱ鬩幢ｽ｢繝ｻ・ｧ髯橸ｽｳ陞溷･・ｽｽ・ｪ繝ｻ・ｰ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｨ鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ*/
}
.news-cat-dropdown.is-open .cat-menu-wrap {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.cat-menu-head {
  padding: 8px 20px;
  font-family: var(--serif);
  font-size: 13px;
  color: var(--tm);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cat-icon {
  font-size: 14px;
  letter-spacing: 0;
  font-family: sans-serif;
}

.cat-menu {
  list-style: none;
  padding: 10px 0 20px;
}
.cat-menu li a {
  display: block;
  padding: 8px 20px;
  font-family: var(--serif);
  font-size: 12px;
  color: var(--tm);
  text-decoration: none;
  transition: opacity 0.3s;
  letter-spacing: 0.05em;
}
.cat-menu li a:hover {
  opacity: 0.5;
}

/* 鬩幢ｽ｢隴乗・・ｽ・ｹ隴∵ｺｽ・､・ｼ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴惹ｼ夲ｽｽ・｣繝ｻ・ｯ髯晢ｽｷ隴会ｽｮ繝ｻ・ｫ繝ｻ・｢鬨ｾ蛹・ｽｽ・ｻ郢晢ｽｻ繝ｻ・ｩ髮九・・ｽ・ｯ驛｢譎｢・ｽ・ｻ */
.ky-news-list {
  list-style: none;
}
/* 鬯ｯ・ｮ繝ｻ・｢鬩墓得・ｽ・ｩ髯ｷ・ｩ繝ｻ・ｩ鬮ｫ・ｶ陋ｹ繝ｻ・ｽ・ｺ繝ｻ・ｯ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ髯橸ｽ｢繝ｻ・ｼ驛｢譎｢・ｽ・ｻ鬮ｫ・ｴ陝ｶ・ｶ繝ｻ・ｺ繝ｻ・ｽ髫ｲ讖ｸ・ｽ・ｾ鬮ｫ・ｲ繝ｻ・ｷ髯ｷ闌ｨ・ｽ・ｷ郢晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻs-collapsed驛｢譎｢・ｽ・ｻ髯晢ｽｲ繝ｻ・ｨ驍ｵ・ｲ陜｣・､繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ4鬮｣豈費ｽｼ螟ｲ・ｽ・ｽ繝ｻ・ｶ鬯ｨ・ｾ繝ｻ・ｶ郢晢ｽｻ繝ｻ・ｮ鬮｣豈費ｽｼ螟ｲ・ｽ・ｽ繝ｻ・･鬯ｯ・ｮ繝ｻ・ｯ鬯ｮ・ｦ繝ｻ・ｪ郢晢ｽｻ陝ｶ譎｢・ｽ・ｫ繝ｻ・ｫ郢晢ｽｻ繝ｻ・ｽ鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ*/
.ky-news-list.is-collapsed .ky-news-item:nth-child(n + 4) {
  display: none;
}
.ky-news-item {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.ky-news-item:last-child {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.ky-news-item a {
  display: flex;
  align-items: center;
  padding: 40px 0;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.ky-news-item a:hover {
  opacity: 0.5;
}

/* 鬮ｫ・ｴ鬲・ｼ夲ｽｽ・ｽ繝ｻ・･鬮｣逧ｮ逕･・つ繝ｻ・･驕ｶ髮・｣ｰ・､繝ｻ・ｹ隴寂・繝ｻ驛｢譎｢・ｽ・｣鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｸ */
.news-meta {
  width: 180px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.news-date {
  font-family: var(--en);
  font-size: 13px;
  color: var(--gl);
  letter-spacing: 0.1em;
}
.news-badge {
  padding: 2px 10px;
  background: rgba(226, 125, 83, 0.08); /* 阮・＞繝・Λ繧ｳ繝・ち閭梧勹 */
  border: 1px solid rgba(226, 125, 83, 0.3); /* 譟斐ｉ縺九＞譫�邱・*/
  border-radius: 20px;
  font-family: var(--en);
  font-size: 9px;
  font-weight: 500;
  color: #e27d53; /* 繝・Λ繧ｳ繝・ち譁・ｭ苓牡 */
  letter-spacing: 0.1em;
  white-space: nowrap;
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｵ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ鬩幢ｽ｢隴取ｨ費ｽｺ繧会ｽｸ・ｺ郢晢ｽｻ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ */
.news-thumb {
  width: 80px;
  flex-shrink: 0;
  margin-right: 50px;
}
.news-thumb .wire-img {
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  color: #ccc;
}

/* 鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴惹ｹ暦ｽｲ・ｺ髫ｰ雋ｻ・ｽ・ｽ鬮ｫ・ｴ遶丞｣ｹ繝ｻ*/
.news-body {
  flex-grow: 1;
  padding-right: 40px;
}
.news-ttl {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
  color: var(--tm);
  margin-bottom: 16px;
}
.news-cat {
  font-family: var(--serif);
  font-size: 12px;
  color: var(--gl);
  letter-spacing: 0.05em;
}

/* 鬯ｩ蠅灘ｾ励・・ｽ繝ｻ・｢鬮ｯ・ｷ陞ゅ・・ｽ・ｽ繝ｻ・ｰ驛｢譎｢・ｽ・ｻ髣費｣ｰ繝ｻ・･髫ｰ繝ｻ・ｽ・ｿ鬯ｩ蛹・ｽｽ・ｶ郢晢ｽｻ繝ｻ・ｯ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ驛｢譎｢・ｽ・｣鬩幢ｽ｢隴寂握縺狗ｹ晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
.news-arrow {
  width: 30px;
  text-align: right;
  font-family: var(--serif);
  color: var(--tm);
  font-size: 14px;
}

/* -----------------------------------
   BLOCK: 蝨偵・鬲・鴨 (ky-intro)
------------------------------------ */
.ky-intro-in {
  /* renewal.min.css縺ｮ蜿､縺・ｮ夂ｾｩ繧貞ｮ悟・荳頑嶌縺・*/
  display: flex;
  align-items: center;
  padding: 0;
  max-width: 1200px; /* ky-piece-in / ky-news-in 縺ｨ蜷後§蛟､ 竊・蟾ｦ遶ｯ縺悟ｮ悟・荳閾ｴ */
  position: relative; /* SVG繧｢繝ｼ繝√ユ繧ｭ繧ｹ繝医・邨ｶ蟇ｾ驟咲ｽｮ蝓ｺ貅・*/
}
.ky-intro-txt {
  flex: 1 1 560px;
  max-width: 560px;
  min-width: 500px;
  margin-right: clamp(20px, 4vw, 60px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* 逕ｻ蜒上お繝ｪ繧｢螟悶Λ繝・ヱ繝ｼ・・lex + bleed諡・ｽ難ｼ・*/
.ky-intro-img-outer {
  position: relative;
  flex: 1;
  /* 逕ｻ蜒上′蟾ｦ逕ｻ髱｢荳ｭ螟ｮ縺九ｉ蟋九∪繧翫∫｢ｺ螳溘↓蜿ｳ遶ｯ縺ｮ繝悶Λ繧ｦ繧ｶ繝輔メ縺ｾ縺ｧ縺ｶ縺､縺九ｋ繧医≧縺ｫ蟷・ｒ50vw・育判髱｢蜊雁・・峨↓蠑ｷ蛻ｶ */
  min-width: 30vw;
  max-width: 310px;
  margin-right: calc(50% - 50vw - 45px);
}

.ky-intro-layer-box {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
}
.ky-intro-pink-obj {
  position: absolute;
  bottom: 5%;
  right: 18%;
  left: auto;
  width: clamp(200px, 28vw, 380px);
  aspect-ratio: 1 / 1;
  z-index: 0;
  background-color: rgba(255, 138, 118, 0.09);
  border-radius: 60% 40% 50% 50% / 50% 50% 40% 60%;
  transform: rotate(45deg);
  pointer-events: none;
}
.ky-intro-pink-obj2 {
  position: absolute;
  top: 20%;
  left: -5%;
  width: clamp(120px, 16vw, 220px);
  aspect-ratio: 5 / 6;
  z-index: 0;
  background-color: rgba(255, 138, 118, 0.07);
  border-radius: 42% 58% 62% 38% / 58% 44% 56% 42%;
  transform: rotate(10deg);
  pointer-events: none;
}
.ky-intro-img-inner {
  position: relative;
  z-index: 1;
  transform: none !important;
  width: 100%;
  height: 100%;
}

.ky-intro-img {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 62% 38% 56% 44% / 44% 62% 38% 58%;
  overflow: hidden;
  z-index: 1;
}
.ky-intro-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ky-intro-img .organic-deco {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}
/* 繧｢繧､繝悶Ο繧ｦ繝ｩ繝吶Ν繧ｹ繧ｿ繧､繝ｫ */
.ky-intro-txt .ky-intro-eyebrow {
  font-family: var(--en) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: #ff8a76 !important;
  margin-bottom: 20px !important;
}
.ky-intro-txt .pull-bracket {
  font-family: var(--serif);
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.7;
  letter-spacing: 0.15em;
  color: var(--td);
  margin-bottom: 40px;
}
/* pull-bracket縺ｪ縺礼沿 隕句・縺励せ繧ｿ繧､繝ｫ */
.ky-intro-txt .ky-intro-h2 {
  font-family: var(--serif);
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: var(--td);
  margin-bottom: 40px;
}
.ky-intro-desc {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 2.2;
  color: var(--tm);
  margin-bottom: 60px;
}

/* -----------------------------------
   BLOCK: 蟄占ご縺ｦ謾ｯ謠ｴ (ky-piece)
------------------------------------ */
.ky-piece-in {
  display: grid;
  grid-template-columns: 4fr 5.8fr 1fr;
  gap: 40px;
  align-items: center;
}
.ky-piece-left {
  display: flex;
  flex-direction: column;
}
.piece-ja {
  font-family: var(--serif);
  font-size: 28px;
  line-height: 1.8;
  letter-spacing: 0.15em;
  color: var(--td);
  margin-bottom: 24px;
}
.piece-desc {
  font-family: var(--sans);
  font-size: 14px;
  line-height: 2;
  color: var(--tm);
  margin-bottom: 32px;
}

.ky-piece-right {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.piece-vert-sub {
  font-family: var(--en);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--gl);
  margin-bottom: 20px;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.piece-vert-ttl {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 2.4;
  letter-spacing: 0.2em;
  color: var(--tm);
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

/* -----------------------------------
   BLOCK: 隕句ｭｦ繝ｻ蜈･蝨・(ky-admissions-cta)
------------------------------------ */
.ky-admissions-cta {
  background-color: #faf9f6;
  padding: 120px 40px;
}
.ky-admissions-in {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 80px;
}
.ky-adm-img-box {
  flex: 1;
  position: relative;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 64% 36% 27% 73% / 55% 58% 42% 45%;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
  transform: translate3d(0, 0, 0);
}

/* 迢ｬ遶九＠縺溘ヴ繝ｳ繧ｯ荳ｸ縺ｮ縺ゅ＠繧峨＞・郁ｦ句ｭｦ繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ逕ｨ・・*/
.ky-adm-pink-obj {
  position: absolute;
  bottom: 75%;
  left: 80%;
  width: clamp(80px, 10vw, 150px);
  aspect-ratio: 1/1;
  background-color: rgba(255, 138, 118, 0.09); /* 繧ｴ繝ｼ繧ｹ繝医ヴ繝ｳ繧ｯ */
  /* 逵溷・縺ｧ縺ｯ縺ｪ縺上∫判蜒上→縺ｯ逡ｰ縺ｪ繧句挨縺ｮ譟斐ｉ縺九↑繝壹ヶ繝ｫ蠖｢迥ｶ・医Μ繝舌・繧ｹ繝医・繝ｳ・峨∈・・*/
  border-radius: 45% 55% 40% 60% / 55% 45% 60% 40%;
  z-index: 0;
  pointer-events: none;
}

.ky-adm-blob-img {
  position: absolute;
  top: -15%;
  left: -5%;
  display: block;
  width: 110%;
  height: 130%;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
  z-index: 1;
}

.ky-adm-blob-frame-svg {
  position: absolute;
  width: 110%;
  height: 110%;
  top: -5%;
  left: -5%;
  z-index: 1;
}
.ky-adm-tx-box {
  flex: 1;
}
.ky-adm-eyebrow {
  font-family: var(--en);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--gl);
  margin-bottom: 12px;
}
.ky-adm-ttl {
  font-family: var(--serif);
  font-size: 28px;
  letter-spacing: 0.1em;
  color: var(--td);
  margin-bottom: 24px;
}
.ky-adm-desc {
  font-family: var(--serif);
  font-size: 14.5px;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.1em;
  color: var(--tm);
  margin-bottom: 32px;
  opacity: 0.9;
}

/* SP RESPONSIVE FOR NEW BLOCKS */
@media (max-width: 1100px) {
  .ky-intro-in {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .ky-intro-txt {
    flex: auto;
    width: 100%;
    margin-right: 0;
    min-width: auto !important;
  }
  .ky-piece-left {
    text-align: center !important;
    align-items: center !important;
  }
  .ky-piece-left * {
    text-align: center !important;
  }
  .ky-piece-left .piece-desc p {
    text-align: left !important;
  }
  .ky-intro-img {
    width: 100%;
  }
  /* 邵ｦ遨阪∩譎ゑｼ夂判蜒上お繝ｪ繧｢縺ｮ蟷・ｒ蛻ｶ髯舌＠縺ｦ荳ｭ螟ｮ謠・∴ */
  .ky-intro-img-outer {
    min-width: auto !important;
    width: 90vw !important;
    max-width: 480px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .ky-intro-layer-box {
    aspect-ratio: 1 / 1 !important;
  }
  .ky-piece-in {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .ky-piece-right {
    align-items: flex-start;
  }
  .piece-vert-sub,
  .piece-vert-ttl {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    margin-bottom: 8px;
  }
  .ky-admissions-cta {
    padding: 80px 24px;
  }
  .ky-admissions-in {
    flex-direction: column;
    gap: 40px;
  }
}

/* -----------------------------------
   BLOCK 8: CTA 
------------------------------------ */
.ky-cta-sec {
  background: #fff;
}
.ky-cta-in {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.ky-mini-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  opacity: 0.8;
}
.ky-cta-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1080px;
  margin: 0 auto;
}
.ky-cta-right h2 {
  font-family: var(--en);
  font-size: 3rem;
  font-weight: 300;
  letter-spacing: 0.05em;
  color: var(--td);
  margin-bottom: 24px;
  text-transform: uppercase;
}
.ky-cta-right p {
  font-size: 13px;
  line-height: 2.2;
  color: var(--tm);
  margin-bottom: 40px;
}
.ky-btn {
  display: inline-flex;
  border-bottom: 1px solid var(--td);
  padding-bottom: 8px;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.15em;
  color: var(--td);
  transition:
    color 0.4s ease,
    border-color 0.4s ease,
    padding-left 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.ky-btn:hover {
  color: var(--gl);
  border-color: var(--gl);
  padding-left: 8px;
}

/* 繧ｽ繝ｼ繧ｷ繝｣繝ｫ繝ｪ繝ｳ繧ｯ逕ｨ・井ｸ雁刀縺ｪ繧ｫ繝励そ繝ｫ蝙九・繧ｿ繝ｳ・・*/
.ky-btn-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 48px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 50px; /* 繝壹ヶ繝ｫ蠖｢迥ｶ縺ｨ繧ら嶌諤ｧ縺ｮ濶ｯ縺・━縺励＞繧ｫ繝励そ繝ｫ蝙・*/
  font-family: var(--serif);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.15em;
  color: var(--td);
  text-decoration: none;
  background-color: transparent;
  transition: all 0.3s ease;
  margin: 0 auto;
}
.ky-btn-social:hover {
  background-color: rgba(
    255,
    138,
    118,
    0.05
  ); /* 繝槭え繧ｹ繧ｪ繝ｼ繝舌・縺ｧ縺ｻ繧薙・繧頑ｸｩ縺九＞繝斐Φ繧ｯ繝医・繝ｳ縺ｫ */
  border-color: rgba(255, 138, 118, 0.4);
}
.ky-btn-solid {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 56px;
  border-radius: 50px;
  background: #e27d53;
  color: #fff !important;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-decoration: none;
  transition:
    transform 0.3s,
    box-shadow 0.3s;
  box-shadow: 0 4px 12px rgba(226, 125, 83, 0.2);
}
.ky-btn-solid:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(226, 125, 83, 0.35);
}

/* 荳ｸ譫�繝懊ち繝ｳ・医い繧ｦ繝医Λ繧､繝ｳ・・*/
.ky-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 54px;
  border-radius: 50px;
  border: 2px solid var(--gd);
  background: transparent;
  color: var(--gd) !important;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-decoration: none;
  transition: all 0.3s;
}
.ky-btn-outline:hover {
  background: var(--gd);
  color: #fff !important;
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(226, 125, 83, 0.35);
}
/* -----------------------------------
   FINAL VISION (Reveal Effect)
------------------------------------ */
.ky-final-vision {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh; /* 繧ｹ繝槭・縺ｮ繧｢繝峨Ξ繧ｹ繝舌・髢矩哩縺ｫ繧医ｋ鬮倥＆螟牙虚・医ぎ繧ｿ縺､縺搾ｼ峨ｒ髦ｲ縺・*/
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-image: url("../images/01_top/01-07-footer-01.webp");
  background-color: #f1f0ee;
  background-attachment: scroll; /* 繧ｹ繝槭・繧・ち繝悶Ξ繝・ヨ縺ｧ縺ｯ繝・ヵ繧ｩ繝ｫ繝医〒scroll・・OS繝舌げ蝗樣∩縺ｮ縺溘ａ・・*/
  background-position: center center;
  background-size: cover;
}

/* 繝槭え繧ｹ繝・ヰ繧､繧ｹ・・C・峨〒縺ｮ縺ｿ閭梧勹蝗ｺ螳壹ｒ譛牙柑縺ｫ縺吶ｋ・・OS/iPadOS縺ｮ閭梧勹諡｡螟ｧ繝舌げ繧貞ｮ悟・縺ｫ髦ｲ縺舌◆繧・ｼ・*/
@media (hover: hover) and (pointer: fine) {
  .ky-final-vision {
    background-attachment: fixed;
  }
}

.ky-final-vision::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(
    0,
    0,
    0,
    0.15
  ); /* 繧・▲縺ｱ繧翫ヵ繧｣繝ｫ繧ｿ繝ｼ繧定埋縺上＠縺ｾ縺励◆ */
  z-index: 1;
}

/* 鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓滄Δ譎｢・ｽ・ｻ鬮｣蜴・ｽｽ・ｴ髯ｷ・･繝ｻ・ｲ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｮ */
.ky-final-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  margin-top: 25vh; /* 鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬯ｯ・ｮ繝ｻ・ｱ郢晢ｽｻ繝ｻ・｢鬮｣蛹・ｽｽ・ｳ郢晢ｽｻ繝ｻ・ｭ鬮ｯ讓奇ｽｻ繧托ｽｽ・ｽ繝ｻ・ｮ鬩幢ｽ｢繝ｻ・ｧ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ鬯倩ｲｻ・ｽ・ｹ繝ｻ・ｧ驛｢譎｢・ｽ・ｻ郢晢ｽｻ郢晢ｽｻ陷ｿ闃ｽ蠏ｯ隴擾ｽｶ郢晢ｽｻ鬯ｯ・ｩ雋・ｽｷ髫ｱ・ｿ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｮ */
}
.ky-final-copy {
  font-family: var(--serif);
  font-size: clamp(
    24px,
    5vw,
    40px
  ); /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬯ｯ・ｮ繝ｻ・ｱ郢晢ｽｻ繝ｻ・｢鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ鬯ｮ・｢繝ｻ・ｾ郢晢ｽｻ繝ｻ・ｪ鬮ｯ・ｷ髢ｧ・ｴ郢晢ｽｻ郢晢ｽｻ繝ｻ・ｸ郢晢ｽｻ繝ｻ・ｮ鬮ｯ譏ｴ繝ｻ繝ｻ・ｸ陞ゅ・・ｽ・ｼ繝ｻ・ｰ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｦ鬮ｫ・ｰ繝ｻ・ｾ郢晢ｽｻ繝ｻ・ｹ鬯ｮ・ｯ繝ｻ・ｦ髫ｰ逍ｲ・ｻ繧托ｽｽ・ｽ繝ｻ・ｴ郢晢ｽｻ繝ｻ・ｩ鬩幢ｽ｢繝ｻ・ｧ髯滓坩・ｯ莨夲ｽｽ・ｽ陝ｶ譎｢・ｽ・ｫ繝ｻ・ｦ郢晢ｽｻ繝ｻ・ｲ鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ*/
  font-weight: 500; /* 鬮ｯ譏ｴ繝ｻ繝ｻ・ｻ繝ｻ・｣郢晢ｽｻ繝ｻ・ｰ鬮ｯ讓奇ｽｻ繧托ｽｽ・ｽ繝ｻ・ｪ鬩搾ｽｵ繝ｻ・ｺ髣包ｽｳ陞ゅ・・ｽ・ｼ繝ｻ・ｰ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｦ鬯ｯ・ｯ闖ｫ・ｶ鬲榊�､・ｹ譎｢・ｽ・ｻ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ郢晢ｽｻ繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬯ｮ・ｮ陷茨ｽｷ繝ｻ・ｿ繝ｻ・ｽ鬩搾ｽｵ繝ｻ・ｺ髣比ｼ夲ｽｽ・｣驕ｶ莨√・繝ｻ・ｸ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ郢晢ｽｻ髢ｧ・ｲ繝ｻ・ｸ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ驕ｶ鄙ｫ繝ｻ*/
  letter-spacing: 0.15em;
  color: #fff; /* 鬮ｯ・ｷ・つ髯ｷ・･闕ｵ證ｦ・ｽ繝ｻ縺励・・ｺ郢晢ｽｻ繝ｻ・ｮ鬮｣蛹・ｽｽ・ｳ鬩怜遜・ｽ・ｫ驍ｵ・ｲ陜｣・､繝ｻ・ｹ繝ｻ・ｧ驛｢・ｧ陞ゅ・・ｽ・ｽ繝ｻ・ｪ郢晢ｽｻ繝ｻ・ｭ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｿ鬩幢ｽ｢繝ｻ・ｧ驛｢譎｢・ｽ・ｻ髫ｨ蛟･繝ｻ繝ｻ・ｸ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ郢晢ｽｻ髢ｧ・ｲ繝ｻ・ｸ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ驕ｶ莨・ｽｦ・ｴ・つ陷茨ｽｷ繝ｻ・ｽ繝ｻ・ｽ鬮ｫ・ｰ陞｢・ｽ郢ｹ・ｱ驕ｯ・ｶ繝ｻ・ｳ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｯ讓奇ｽｺ・ｽ陋ｻ・､髯晢ｽｲ繝ｻ・ｩ */
  text-shadow: 0 4px 16px rgba(0, 0, 0, 0.5); /* 鬯ｮ・ｫ陷肴ｺ倥・郢晢ｽｻ繝ｻ・ｪ鬮｢・ｧ繝ｻ・ｴ繝ｻ縺､ﾂ郢晢ｽｻ繝ｻ・ｧ鬩幢ｽ｢繝ｻ・ｧ髯晢ｽｶ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ髯区ｻゑｽｽ・･郢晢ｽｻ遶擾ｽｫ繝ｻ・ｹ繝ｻ・ｧ髣包ｽｵ隴擾ｽｶ髯橸ｽｺ鬩幢ｽ｢繝ｻ・ｧ驕ｶ荳橸ｽ｣・ｹ郢晢ｽｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・｣鬩幢ｽ｢隴取得・ｽ・ｳ繝ｻ・ｨ驍ｵ・ｺ郢晢ｽｻ*/
}

@media (max-width: 960px) {
  .sec-padding {
    padding: 100px 24px;
  }
  .ky-intro-in {
    flex-direction: column;
    gap: 60px;
  }
  .ky-intro-txt {
    writing-mode: horizontal-tb;
    padding-top: 0;
  }
  .ky-intro-img {
    width: 100%;
    margin-top: 0;
  }
  .ky-two-grid-in,
  .ky-arch-in,
  .ky-gray-split,
  .ky-cta-box {
    grid-template-columns: 1fr;
    gap: 60px;
    padding: 0;
  }
  .ky-card.down {
    margin-top: 0;
  }
  .ky-arch-txt {
    writing-mode: horizontal-tb;
    text-align: center;
  }
  .ky-cta-right h2 {
    font-size: 2rem;
  }
  .ky-btn-solid,
  .ky-btn-outline {
    padding: 16px 36px;
    font-size: 15px;
    white-space: nowrap;
  }
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ FOOTER 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
footer {
  background: var(--gd);
  color: rgba(255, 255, 255, 0.45);
  padding: 100px 80px 44px;
}
.ft-top {
  max-width: 1440px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.2fr 3fr 1fr;
  gap: 40px;
  padding-bottom: 80px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.ft-logo {
  font-family: var(--serif);
  font-size: 1.3rem;
  color: #fff;
  margin-bottom: 6px;
  letter-spacing: 0.1em;
}
.ft-logo-en {
  font-family: var(--en);
  font-size: 0.5rem;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.35);
  text-transform: uppercase;
  margin-bottom: 24px;
}
.ft-addr {
  font-size: 0.72rem;
  line-height: 2.4;
  padding-left: 16px;
  border-left: 1px solid rgba(255, 255, 255, 0.15);
  letter-spacing: 0.05em;
}
.ft-nav h4 {
  font-family: var(--en);
  font-size: 0.52rem;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.35);
  text-transform: uppercase;
  margin-bottom: 20px;
}
.ft-nav > ul {
  list-style: none;
}
@media (min-width: 961px) {
  .ft-top > .ft-nav:nth-child(2) > ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: max-content max-content;
    column-gap: 24px;
    row-gap: 24px;
    align-items: start;
  }
  .ft-top > .ft-nav:nth-child(2) > ul > li:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }
  .ft-top > .ft-nav:nth-child(2) > ul > li:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  .ft-top > .ft-nav:nth-child(2) > ul > li:nth-child(3) {
    grid-column: 2;
    grid-row: 1;
  }
  .ft-top > .ft-nav:nth-child(2) > ul > li:nth-child(4) {
    grid-column: 2;
    grid-row: 2;
  }
  .ft-top > .ft-nav:nth-child(2) > ul > li:nth-child(5) {
    grid-column: 3;
    grid-row: 1;
  }
  .ft-top > .ft-nav:nth-child(2) > ul > li:nth-child(6) {
    grid-column: 3;
    grid-row: 2;
  }
  .ft-top > .ft-nav:nth-child(3) > ul {
    column-count: 1;
  }
}
.ft-nav > ul > li {
  break-inside: avoid;
}
.ft-nav ul ul {
  list-style: none;
  display: block;
}
.ft-nav > ul > li {
  margin-top: 0 !important;
  margin-bottom: 24px;
}
.ft-nav li + li {
  margin-top: 16px;
}
.ft-nav a {
  font-size: 0.74rem;
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  gap: 12px;
  transition:
    color 0.3s,
    gap 0.3s;
  letter-spacing: 0.05em;
}
.ft-nav a:hover {
  color: rgba(255, 255, 255, 1);
  gap: 16px;
}
.ft-nav a::before {
  content: "";
  width: 16px;
  height: 1px;
  background: rgba(255, 255, 255, 0.3);
}
.ft-btm {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 32px;
  font-family: var(--en);
  font-size: 0.58rem;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.3);
}
.ft-cr a {
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.3s;
  text-decoration: none;
}
.ft-cr a:hover {
  color: rgba(255, 255, 255, 0.8);
}
.ft-sns {
  display: flex;
  gap: 20px;
  align-items: center;
}
.ft-sns a {
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.3s;
  display: flex;
  align-items: center;
}
.ft-sns a:hover {
  color: rgba(255, 255, 255, 0.85);
}
.ft-sns svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ ANIMATIONS 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.fu {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 3.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 4.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.fu.vis {
  opacity: 1;
  transform: translateY(0);
}
.fu[data-d="1"] {
  transition-delay: 0.2s;
}
.fu[data-d="2"] {
  transition-delay: 0.4s;
}
.fu[data-d="3"] {
  transition-delay: 0.6s;
}
.fu[data-d="4"] {
  transition-delay: 0.8s;
}
/* 鬮ｯ讓奇ｽｻ繧托ｽｽ・ｽ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ鬯ｮ・ｦ繝ｻ・ｪ驕ｶ莨√・繝ｻ・ｹ隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓溘・蜿悶渚繝ｻ・ｹ隴寂或・ｾ・ｭ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ */
.reveal-wrap {
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
}
.reveal-inner {
  display: block;
  transform: translateY(105%);
  transition: transform 0.95s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-wrap.vis .reveal-inner {
  transform: translateY(0);
}
.reveal-wrap[data-d="1"] .reveal-inner {
  transition-delay: 0.1s;
}
.reveal-wrap[data-d="2"] .reveal-inner {
  transition-delay: 0.22s;
}
.reveal-wrap[data-d="3"] .reveal-inner {
  transition-delay: 0.34s;
}

/* -----------------------------------
   INSTAGRAM GRID (Desktop & Mobile Swipe)
------------------------------------ */
.sns-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 40px;
  max-width: 1000px;
  margin-inline: auto;
}
.sns-item {
  aspect-ratio: 1/1;
  border-radius: 8px;
  overflow: hidden;
}
.sns-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 鬮ｫ・ｨ雋ょ庄竄ｬ鬮ｫ・ｨ雋ょ庄竄ｬ RESPONSIVE 鬮ｫ・ｨ雋ょ庄竄ｬ鬮ｫ・ｨ雋ょ庄竄ｬ */
@media (max-width: 960px) {
  .hd {
    padding: 0 24px;
  }
  .sec,
  .intro,
  .feat,
  .day,
  .news {
    padding: 80px 28px;
  }
  .hero-vert {
    left: 28px;
  }
  .hero-vert-ttl {
    font-size: clamp(1.6rem, 4vh, 2.4rem);
  }
  .intro-body {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .feat-grid {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .img-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 200px 200px 200px;
  }
  .ig:first-child {
    grid-row: auto;
  }
  .day-hd {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .day-steps {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .d-step {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }
  .story {
    grid-template-columns: 1fr;
  }
  .story-img {
    min-height: 300px;
  }
  .story-cnt {
    padding: 56px 28px;
  }
  .n-row {
    grid-template-columns: 80px 1fr 16px;
    gap: 12px;
  }
  .n-tag {
    display: none;
  }
  .news {
    padding: 80px 28px;
  }
  footer {
    padding: 56px 28px 32px;
  }
  .ft-top {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ft-nav > ul {
    column-count: 1;
    column-gap: 0;
  }
  .ft-nav > ul > li {
    margin-bottom: 0;
  }
  .ft-btm {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }
  .float-cta {
    bottom: 20px;
    right: 20px;
    padding: 12px 18px;
    font-size: 0.68rem;
  }
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ RESPONSIVE UTILITIES 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
@media (max-width: 768px) {
  .pc-only {
    display: none !important;
  }
}
@media (min-width: 769px) {
  .sp-only {
    display: none !important;
  }
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ JAPANESE FONT SUPPORT (for icon fallback) 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css");

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ OVERLAY MENU 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
}
.menu-overlay.show {
  pointer-events: auto;
}
.menu-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 20, 8, 0.25);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.menu-overlay.show .menu-backdrop {
  opacity: 1;
}

.menu-panel {
  position: relative;
  width: 48vw;
  max-width: 800px;
  min-width: 680px;
  height: 100%;
  background: var(--white);
  transform: translateX(100%);
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  align-items: flex-start;
  overflow-y: auto;
}
@media (max-width: 960px) {
  .menu-panel {
    width: 90%;
    min-width: auto;
  }
}
.menu-overlay.show .menu-panel {
  transform: translateX(0);
}

/* 鬯ｩ蠅楢・繝ｻ・ｽ繝ｻ・ｴ鬯ｩ謳ｾ・ｽ・ｱ髯樊ｻゑｽｽ・ｲ郢晢ｽｻ繝ｻ・ｼ鬮｢・ｧ繝ｻ・ｲ髯具ｽｻ繝ｻ・､鬮ｯ・ｷ陷代・・ｽ・ｸ髣疲ｨ翫渚繝ｻ・ｹ隴弱・・ｽ・ｼ隴∵腸・ｼ諞ｺﾎ碑ｭ趣ｽ｢繝ｻ・ｽ繝ｻ・ｬ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬮ｮ荵昴・隰梧ｺｯ蠏ｩ繝ｻ・ｰ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｻ鬮ｯ譎｢・ｽ・ｾ郢晢ｽｻ繝ｻ・ｦ鬯ｩ蛹・ｽｽ・ｶ郢晢ｽｻ繝ｻ・ｯ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ*/
.menu-border {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  border-left: 1px dashed var(--gl);
  opacity: 0;
  transition: opacity 1s 1s ease;
}
.menu-overlay.show .menu-border {
  opacity: 1;
}

/* CLOSE鬩幢ｽ｢隴弱・魃ｵ驍ｵ・ｺ繝ｻ・｡鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ */
.menu-close-btn {
  position: absolute;
  top: 56px;
  right: 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  cursor: pointer;
  z-index: 10;
}
.mcb-lines {
  width: 56px;
  height: 56px;
  position: relative;
}
.mcb-lines::before,
.mcb-lines::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--td);
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.mcb-lines::before {
  transform: rotate(90deg);
}
.mcb-lines::after {
  transform: rotate(0deg);
}
.menu-close-btn:hover .mcb-lines::before {
  transform: rotate(180deg);
}
.menu-close-btn:hover .mcb-lines::after {
  transform: rotate(90deg);
}
.menu-close-btn span {
  font-family: var(--en);
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--tl);
}

/* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｳ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ繝ｻ雜｣・ｽ・ｦ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ */
.menu-cols {
  width: 100%;
  margin: auto 0; /* 隕ｪ縺・flex 縺ｮ縺溘ａ縺薙ｌ縺ｧ螳悟・縺ｪ螟ｩ蝨ｰ荳ｭ螟ｮ驟咲ｽｮ縺ｫ縺ｪ繧翫∪縺・*/
  padding: 80px 0; /* 繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ譎ゅ・菴咏區遒ｺ菫・*/
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media (max-width: 768px) {
  .menu-cols {
    padding: 100px 0 60px;
  } /* 繧ｹ繝槭・縺ｮ髢峨§繧九・繧ｿ繝ｳ縺ｨ陲ｫ繧峨↑縺・ｈ縺・ｸ企Κ縺ｫ譛菴朱剞縺ｮ繧ｻ繝ｼ繝輔お繝ｪ繧｢繧堤｢ｺ菫・*/
}
.mc-ttl {
  font-family: "Cormorant Infant", var(--serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--tl);
  margin-bottom: 60px;
  text-transform: uppercase;
}

.mc-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media (max-width: 768px) {
  .mc-list {
    gap: 28px;
  }
}
.mc-list a {
  justify-content: center;
  font-family: var(--serif);
  font-size: 18px;
  line-height: 18px;
  font-weight: 400;
  color: var(--td);
  letter-spacing: 0.15em;
  display: flex;
  align-items: center;
  gap: 16px;
  transition:
    color 0.3s,
    transform 0.3s;
}
.mc-list a::before {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  background: var(--gl);
  transition: width 0.3s;
}
.mc-list a:hover {
  color: var(--gl);
  transform: translateX(8px);
}
.mc-list a:hover::before {
  width: 24px;
}

/* 鬮ｯ・ｷ繝ｻ・ｿ郢晢ｽｻ繝ｻ・ｳ鬮ｯ蜿･・ｹ・｢繝ｻ・ｽ繝ｻ・ｴ SPECIAL 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｩ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｿ繝ｻ・ｽ */
.menu-col-right {
  display: flex;
  flex-direction: column;
  padding-right: 16px;
}
.mc-cards {
  display: flex;
  flex-direction: column;
}

.mc-card {
  display: grid;
  grid-template-columns: 90px 1fr 12px;
  gap: 24px;
  align-items: center;
  text-decoration: none;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.15);
  padding-bottom: 44px;
  margin-bottom: 44px;
}
.mc-card:hover .mc-dot {
  background: var(--gl);
  transform: scale(1.4);
}
.mc-card:hover .mc-img img {
  transform: scale(1.08);
}
.mc-img {
  width: 90px;
  height: 110px;
  background: #f4f4f4;
  border-radius: 6px;
  overflow: hidden;
}
.mc-card.arch .mc-img {
  border-radius: 45px 45px 6px 6px;
}
.mc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.mc-info h4 {
  font-family: "Cormorant Infant", var(--serif);
  font-size: 18px;
  line-height: 18px;
  font-weight: 400;
  color: var(--td);
  margin-bottom: 8px;
  letter-spacing: 0.05em;
}
.mc-info .serif-title {
  font-family: "Cormorant Infant", var(--serif);
  font-size: 18px;
  line-height: 18px;
  font-weight: 400;
  letter-spacing: 0.02em;
  font-style: normal;
}
.mc-info p {
  font-size: 12px;
  color: var(--tl);
  letter-spacing: 0.1em;
  margin-top: 6px;
  line-height: 1.4;
}
.mc-dot {
  width: 4px;
  height: 4px;
  background: var(--tl);
  border-radius: 50%;
  transition: all 0.3s;
}

/* CTA Button */
.mc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  background: var(--gl);
  color: #fff;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 18px;
  line-height: 18px;
  letter-spacing: 0.1em;
  padding: 22px 32px;
  border-radius: 50px;
  text-decoration: none;
  transition:
    transform 0.3s,
    box-shadow 0.3s;
  box-shadow: 0 8px 24px rgba(90, 144, 80, 0.1);
}
.mc-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(90, 144, 80, 0.2);
}
.mc-btn-dot {
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 50%;
  margin-left: auto;
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ MOBILE OPTIMIZATION (鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬮ｯ譏ｴ繝ｻ繝ｻ・ｽ繝ｻ・ｾ鬮ｯ貊ゑｽｽ・｢驛｢譎｢・ｽ・ｻ 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
@media (max-width: 768px) {
  /* 鬩幢ｽ｢隴惹ｸ翫・驛｢譎｢・ｽ・ｻ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｿ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓溘・蜿門旭繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｯ・ｩ雋・ｽｷ髫ｱ・ｿ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｮ鬯ｮ・ｯ繝ｻ・ｬ髫ｲ蟷・か繝ｻ・ｽ繝ｻ・ｭ郢晢ｽｻ繝ｻ・｣驛｢譎｢・ｽ・ｻ髣費｣ｰ繝ｻ・･鬨ｾ・ｶ繝ｻ・ｾ鬯ｮ・｢繝ｻ・ｰ驛｢譎｢・ｽ・ｻ驍ｵ・ｺ驕会ｽｼ繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴主・讓滄Δ譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ髯具ｽｹ繝ｻ・ｻ驕ｶ蛹・ｽｽ・ｧ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮｣蛹・ｽｽ・ｳ髣費ｽｨ遶上・・､鬆托ｽｱ讓抵ｽｹ譎｢・ｽ・ｻ郢晢ｽｻ鬯倩ｲｻ・ｽ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬩搾ｽｵ繝ｻ・ｺ髯ｷ莨夲ｽｽ・ｱ繝ｻ縺､ﾂ驛｢譎｢・ｽ・ｻ郢晢ｽｻ繝ｻ・｡髫ｴ竏ｫ・ｵ・ｶ郢晢ｽｻ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｮ・ｯ繝ｻ・ｲ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ鬩怜遜・ｽ・ｫ郢晢ｽｻ陝ｶ譎｢・ｽ・ｫ繝ｻ・ｦ郢晢ｽｻ繝ｻ・ｲ鬩搾ｽｵ繝ｻ・ｺ髫ｰ・ｦ繝ｻ・ｰ郢晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
  .s-vert {
    bottom: auto;
    top: 28%;
    left: 8vw;
  }
  .s-vert h1 {
    font-size: clamp(2rem, 3.5vh, 2.6rem);
    line-height: 1.8;
    letter-spacing: 0.12em;
    text-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  }
  .s-vert p {
    margin-top: 12px;
    font-size: 0.6rem;
    opacity: 0.8;
  }

  /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬮ｴ螟ｧ・､・ｲ繝ｻ・ｽ繝ｻ・ｹ鬮ｫ・ｴ陝ｶ蟷｢・ｽ・ｳ繝ｻ・ｨ驛｢譎｢・ｽ・ｻX鬮ｯ譏ｴ繝ｻ繝ｻ・､繝ｻ・ｼ郢晢ｽｻ繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｴ鬯ｩ謳ｾ・ｽ・ｱ髯橸ｽ｢繝ｻ・ｹ驛｢譎｢・ｽ・ｻ鬯ｯ・ｮ繝ｻ・ｱ髫ｶ螢ｹ繝ｻ繝ｻ・ｽ繝ｻ・｡郢晢ｽｻ繝ｻ・ｨ鬯ｩ遨ゑｽｼ螟ｲ・ｽ・ｽ繝ｻ・ｺ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬩搾ｽｵ繝ｻ・ｺ髯ｷ莨夲ｽｽ・ｱ驕ｯ・ｶ繝ｻ・ｻ鬯ｮ・ｫ驕ｨ繧托ｽｽ・ｹ隴趣ｽ｢繝ｻ・ｽ郢晢ｽｻ繝ｻ・ｸ繝ｻ・ｺ髯ｷ・ｷ繝ｻ・ｶ郢晢ｽｻ繝ｻ・･鬩搾ｽｵ繝ｻ・ｺ髯ｷ・ｷ繝ｻ・ｶ郢晢ｽｻ闕ｵ譏ｴ繝ｻ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ郢晢ｽｻ陜怜ｮ茨ｽｫ謫ｾ・ｽ・ｵ髫ｰ豕瑚ｪｿ繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ霑｢證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬮ｯ蜈ｷ・ｽ・ｹ髯ｷ・ｴ郢晢ｽｻ繝ｻ・ｽ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
  .s-deco1,
  .s-deco2 {
    display: none;
  }

  /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴寂握縺狗ｹ晢ｽｻ繝ｻ・ｼ髯懈瑳・ｹ・ｮ繝ｻ・ｦ鬩搾ｽｵ繝ｻ・ｺ驛｢譎｢・ｽ・ｻ郢晢ｽｻ繝ｻ・ｼ髯晢ｽｲ繝ｻ・ｨ郢晢ｽｻ陝ｶ謨鳴陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬯ｯ・ｮ繝ｻ・ｱ郢晢ｽｻ繝ｻ・｢鬮ｯ・ｷ・つ驛｢譎｢・ｽ・ｻ驕ｶ鬆托ｽ･・｢隲｢・ｾ髯滓汚・ｽ・ｱ郢晢ｽｻ遶擾ｽｫ繝ｻ・ｹ繝ｻ・ｧ驛｢譎｢・ｽ・ｻ*/
  .s-text {
    left: 8vw;
    width: 84%;
    top: 10%;
  }
  .s-text p {
    font-size: 15px;
    line-height: 2.2;
    margin-bottom: 8vh;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.6);
    font-weight: 600;
  }

  /* 鬮ｯ・ｷ髢ｧ・ｴ郢晢ｽｻ髯具ｽｻ繝ｻ・､鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・｢鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隰ｨ魑ｴﾂ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬯ｮ・｢繝ｻ・ｭ髫ｴ・ｴ繝ｻ・ｧ髯ｷ謳ｾ・ｽ・ｹ鬩幢ｽ｢繝ｻ・ｧ髯ｷ・ｻ闔�・･陝・｣ｯ縺励・・ｺ髣包ｽｳ陞ゅ・・ｽ・ｼ繝ｻ・ｰ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｦ鬮ｯ・ｷ髢ｧ・ｴ郢晢ｽｻ髯具ｽｻ繝ｻ・､鬩幢ｽ｢繝ｻ・ｧ髯懶ｽ｣繝ｻ・､髯晢ｽｯ繝ｻ・ｼ鬯ｩ蛹・ｽｽ・ｶ髣包ｽｵ隴擾ｽｶ髯橸ｽｺ鬩搾ｽｵ繝ｻ・ｺ髯晢ｽｶ陷ｻ・ｻ繝ｻ・ｽ闕ｵ譏ｴ繝ｻ髣費｣ｰ繝ｻ・･鬨ｾ・ｶ繝ｻ・ｾ鬯ｮ・｢繝ｻ・ｰ驛｢譎｢・ｽ・ｻ驍ｵ・ｺ驕会ｽｼ繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴惹ｹ暦ｽｲ・ｺ郢晢ｽｻ繝ｻ・ｺ髯具ｽｹ遶擾ｽｽ繝ｻ・ｾ繝ｻ・ｰ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ*/
  .v-modal {
    background: rgba(10, 15, 10, 0.85);
    backdrop-filter: blur(16px);
  }
  .v-modal-body {
    width: 92%;
    border-radius: 16px;
  }
  .v-modal-close {
    top: 24px;
    right: 20px;
    font-size: 2.4rem;
    color: rgba(255, 255, 255, 0.7);
  }

  /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬯ｮ・ｯ繝ｻ・ｬ髫ｲ蟷｢・ｽ・ｷ髯ｷ謳ｾ・ｽ・ｧ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・､鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｸ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｱ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｿ驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ郢晢ｽｻ繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・｡鬩幢ｽ｢繝ｻ・ｧ驛｢譎｢・ｽ・ｻ髫ｨ繝ｻ・ｽ・ｽ鬩搾ｽｵ繝ｻ・ｺ髯憺屮・ｽ・ｼ髣費｣ｰ雋・ｽｯ繝ｻ・ｱ郢晢ｽｻ繝ｻ・ｽ繝ｻ・｢鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｧ鬯ｯ・ｮ繝ｻ・ｫ郢晢ｽｻ繝ｻ・ｽ鬩搾ｽｵ繝ｻ・ｺ髯ｷ・ｻ繝ｻ・ｻ郢晢ｽｻ繝ｻ・ｼ驛｢譎｢・ｽ・ｻ*/
  .s-btm,
  .s-yr {
    display: none;
  }

  /* 鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・｡鬩幢ｽ｢隴乗・・ｽ・ｹ隴∵ｺｽ・､・ｼ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴乗・・ｽ・ｻ繝ｻ・｣驛｢譎｢・ｽ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩幢ｽ｢繝ｻ・ｧ鬮ｮ蛹ｺ・ｧ・ｭ郢晢ｽｻ鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬯ｯ・ｮ繝ｻ・ｱ郢晢ｽｻ繝ｻ・｢鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ */
  .menu-panel {
    width: 100%;
    border-radius: 0;
  }
  .menu-cols {
    padding: 100px 24px 60px;
    gap: 40px;
  }
  .menu-close-btn {
    top: 24px;
    right: 24px;
    transform: scale(0.85);
  }

  /* SPECIAL鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｳ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ繝ｻ雜｣・ｽ・ｦ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驛｢譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴寂・・ｴ貅ｯ蟆・・・｣鬯ｯ・ｮ繝ｻ・ｫ鬩募争豎壹・・ｽ繝ｻ・ｪ郢晢ｽｻ繝ｻ・ｿ鬮ｫ・ｰ繝ｻ・ｨ郢晢ｽｻ繝ｻ・ｴ */
  .mc-card {
    padding-bottom: 32px;
    margin-bottom: 32px;
    gap: 16px;
    grid-template-columns: 80px 1fr 10px;
  }
  .mc-img {
    width: 80px;
    height: 90px;
  }
  .mc-info h4,
  .mc-info .serif-title {
    font-size: 15px;
  }
  .mc-btn {
    width: 100%;
    justify-content: center;
    font-size: 16px;
    padding: 18px 24px;
  }

  /* ======== 鬮ｫ・ｴ陝�・｢・つ鬮ｫ・ｴ郢晢ｽｻ繝ｻ・ｽ繝ｻ・ｰ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｷ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｧ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｳ鬯ｩ邇ｲ諷｣繝ｻ・ｽ繝ｻ・､鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｮ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬮ｯ讖ｸ・ｽ・ｳ髫ｰ逍ｲ・ｺ蛟･繝ｻ鬮ｫ・ｴ陝�・｢・つ鬯ｯ・ｩ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｩ鬮ｯ蜈ｷ・ｽ・ｹ驛｢譎｢・ｽ・ｻ======== */
  .sec-padding {
    padding: 80px 24px;
  }
  .inner {
    padding: 0;
  }
  .ky-sec-ttl {
    margin-bottom: 40px;
    font-size: 0.65rem;
  }
  .ky-sec-ttl span {
    font-size: 1.3rem;
    margin-top: 6px;
  }

  /* BLOCK 1: Intro */
  .ky-intro-in {
    grid-template-columns: 1fr;
    gap: 40px;
    min-height: auto;
    padding: 0;
  }
  .ky-intro-txt {
    margin-right: 0;
    flex: auto;
    padding: 0;
  }
  .ky-intro-txt h2 {
    font-size: 21px;
    line-height: 2.1;
    letter-spacing: 0.12em;
    margin-bottom: 40px;
    white-space: normal;
    color: #333;
  }
  .ky-intro-txt p {
    font-size: 13.5px;
    line-height: 2.2;
    letter-spacing: 0.08em;
    color: #555;
  }
  .ky-intro-desc p:not(:last-child) {
    margin-bottom: 20px;
  }
  .ky-intro-link {
    margin-top: 32px;
    font-size: 16px;
  }
  .ky-intro-img-outer {
    min-width: auto;
    margin-right: 0;
    margin-left: 0;
    flex: none;
    width: 100%;
    overflow: visible;
    padding-bottom: 20px;
  }
  .ky-intro-layer-box {
    height: auto;
    aspect-ratio: 1 / 1.15;
  }
  .ky-intro-pink-obj {
    width: clamp(180px, 32vw, 280px);
    right: -10%;
    left: auto;
    bottom: 20%;
    transform: rotate(25deg);
  }
  .ky-intro-pink-obj2 {
    width: clamp(100px, 16vw, 150px);
    left: -4%;
    top: 30%;
  }
  .ky-intro-img {
    margin-top: 0;
    margin-left: 0;
    width: 100%;
  }

  /* BLOCK 2: Piece */
  .ky-piece-in {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .piece-en {
    font-size: clamp(2rem, 10vw, 3rem);
    margin-bottom: 24px;
    letter-spacing: 0.05em;
  }
  .ky-piece-right {
    writing-mode: horizontal-tb;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-top: 10px;
  }
  .piece-vert-ttl {
    font-size: 18px;
    text-align: left;
    line-height: 2.1;
    letter-spacing: 0.12em;
    color: #333;
  }
  .piece-vert-sub {
    margin-top: 0;
    text-align: left;
    letter-spacing: 0.15em;
    font-size: 11px;
  }

  /* BLOCK 3: Services */
  .ky-statement {
    font-size: 17px;
    padding-left: 0;
    margin-bottom: 60px;
    line-height: 2.2;
    letter-spacing: 0.12em;
    color: #333;
  }
  .ky-svc-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }
  .ky-svc-card {
    padding-left: 20px;
  }
  .ky-svc-img-wrap {
    width: 90%;
    margin-bottom: 24px;
  }
  .ky-svc-vert {
    right: -15px;
    font-size: 10px;
  } /* 鬮ｫ・ｶ鬮ｮ・｣繝ｻ・ｽ繝ｻ・ｪ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｯ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｭ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｫ鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｻ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｿ鬮ｯ・ｷ郢晢ｽｻ繝ｻ・ｽ繝ｻ・ｺ鬩搾ｽｵ繝ｻ・ｺ髯ｷ莨夲ｽｽ・ｱ郢晢ｽｻ陝ｶ譎｢・ｽ・ｫ繝ｻ・ｦ郢晢ｽｻ繝ｻ・ｲ鬮ｮ蠑ｱ繝ｻ繝ｻ・ｽ繝ｻ・｢ */
  .ky-svc-tx h3 {
    font-size: 19px;
    margin-bottom: 16px;
    line-height: 1.8;
    letter-spacing: 0.12em;
  }
  .ky-svc-tx p {
    font-size: 13.5px;
    margin-bottom: 24px;
    line-height: 2.1;
    letter-spacing: 0.06em;
    color: #555;
  }

  /* BLOCK 4: Story */
  .ky-story {
    padding-bottom: 80px;
  }
  .ky-story-in {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .ky-story-img-wrap .arch-img {
    border-top-right-radius: 140px;
  } /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬮ｮ謇九＃陜ｮ・ｩ鬩肴得・ｽ・ｫ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｯ・ｷ繝ｻ・ｷ髯具ｽｹ繝ｻ・ｻ郢晢ｽｻ陷證ｦ・ｽ・ｸ繝ｻ・ｺ髯晢ｽｶ陷ｷ・ｮ髯橸ｽｺ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・｢鬩幢ｽ｢隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ*/
  .arch-deco {
    border-top-right-radius: 125px;
  }
  .story-poem {
    writing-mode: horizontal-tb;
    margin-top: 24px;
    margin-bottom: 40px;
    text-align: left;
    font-size: 13.5px;
    line-height: 2.3;
    letter-spacing: 0.12em;
    color: #444;
  }
  .story-ttl {
    font-size: 26px;
    margin-bottom: 12px;
    letter-spacing: 0.15em;
  }

  /* BLOCK 5: Collab */
  .ky-collab-in {
    padding: 0 10px;
  }
  .collab-head {
    margin-bottom: 30px;
  }
  .collab-view {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .collab-view::-webkit-scrollbar {
    display: none;
  }
  .collab-track {
    gap: 16px;
    padding-right: 20px;
  }
  .collab-card {
    width: 260px;
    scroll-snap-align: start;
  }
  .collab-img-wrap {
    padding: 15px;
    margin-bottom: 16px;
  }

  /* BLOCK 6: Flow */
  .ky-flow-in {
    padding: 0 20px;
  }
  .flow-head {
    padding-left: 0;
    margin-bottom: 24px;
  }
  .flow-wrap {
    flex-direction: column;
    gap: 16px;
  }
  .flow-pagination {
    width: 100%;
    flex-direction: row;
    justify-content: flex-start;
    padding-top: 0;
    overflow-x: auto;
    gap: 12px;
    padding-bottom: 10px;
    scrollbar-width: none;
  }
  .flow-pagination::-webkit-scrollbar {
    display: none;
  }
  .flow-slider {
    padding-bottom: 20px;
  }
  .flow-card {
    padding: 20px 24px 0;
    max-width: 88vw;
  }
  .flow-c-top {
    margin-bottom: 16px;
  }
  .flow-c-ttl {
    font-size: 17px;
    margin-bottom: 24px;
    line-height: 1.6;
    letter-spacing: 0.1em;
    color: #333;
  }

  /* INSTAGRAM SWIPE (Mobile) */
  .sns-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    gap: 16px;
    padding-bottom: 16px;
    margin-right: -24px;
    margin-left: -24px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .sns-grid::-webkit-scrollbar {
    display: none;
  }
  .sns-item {
    flex: 0 0 65%;
    scroll-snap-align: center;
  }
  .flow-c-bot {
    flex-direction: column;
    gap: 20px;
  }
  /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬮ｴ螟ｧ・｣・ｼ霑ｴ・ｾ驍ｵ・ｲ陜｣・､繝ｻ・ｸ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ鬯ｨ・ｾ陋ｹ繝ｻ・ｽ・ｽ繝ｻ・ｻ鬮ｯ・ｷ陷代・・ｽ・ｸ陞ゅ・・ｽ・ｽ陞ｳ螟ｲ・ｽ・ｮ鬮ｮ・｣繝ｻ・ｽ繝ｻ・ｪ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ鬮ｯ貅ｷ・ｼ・ｱ郢晢ｽｻ郢晢ｽｻ繝ｻ・･驛｢譎｢・ｽ・ｻ髯具ｽｹ繝ｻ・ｻ驛｢譎｢・ｽ・ｰ鬩幢ｽ｢隴惹ｼ夲ｽｽ・ｿ繝ｻ・ｫ驛｢譎｢・ｽ・ｻ鬮ｴ謇假ｽｽ・･郢晢ｽｻ繝ｻ・ｶ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｫ驛｢譎｢・ｽ・ｻ鬮ｯ蜈ｷ・ｽ・ｾ郢晢ｽｻ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ髫ｨ・ｳ霑｢證ｦ・ｽ・ｹ繝ｻ・ｧ驛｢譎｢・ｽ・ｻ*/
  .fc-icon {
    width: 100%;
    aspect-ratio: 3/2;
    overflow: hidden;
    border-radius: 2px;
  }
  .fc-tx p {
    margin-bottom: 24px;
    font-size: 13.5px;
    line-height: 2.1;
    letter-spacing: 0.08em;
    color: #555;
  }

  /* BLOCK 7: News */
  .ky-news-in {
    flex-direction: column;
    gap: 40px;
    padding: 0 16px;
  }
  .ky-news-left {
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    justify-content: flex-start;
    padding-bottom: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  /* 鬩幢ｽ｢隴乗・・ｽ・ｹ隴∵ｺｽ・､・ｼ繝ｻ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｼ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬯ｮ・ｫ繝ｻ・ｪ髯区ｺ倥・繝ｻ・ｽ繝ｻ・ｺ髣包ｽｵ隴∵ｻ薙渚繝ｻ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓滄Δ譎｢・ｽ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬮ｯ譏ｴ繝ｻ繝ｻ陋ｾﾂ・｡髮牙ｱ絞d鬯ｩ謳ｾ・ｽ・ｨ驛｢譎｢・ｽ・ｻ驕ｶ謫ｾ・ｽ・ｩ驛｢譎｢・ｽ・ｻ髯懈瑳・ｺ・ｷ繝ｻ・ｾ驍・・ﾑ髯区ｻゑｽｽ・･郢晢ｽｻ陞ｳ螢ｼ蛻昴・縺､ﾂ鬯ｨ・ｾ繝ｻ・｡郢晢ｽｻ繝ｻ・ｪ鬮｣蛹・ｽｽ・ｳ鬩怜遜・ｽ・ｫ繝ｻ縺､ﾂ驕ｶ謫ｾ・ｽ・ｫ髯具ｽｻ繝ｻ・､鬮ｯ・ｷ陷代・・ｽ・ｸ陝ｯ・ｩ郢晢ｽｻ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴主・讓溽ｹ晢ｽｻ陜｣・､繝ｻ・ｸ繝ｻ・ｺ髫ｴ謫ｾ・ｽ・ｴ驛｢譎｢・ｽ・ｻ鬮｣蛹・ｽｽ・ｳ髣包ｽｵ隴擾ｽｶ郢晢ｽｻ鬮ｫ・ｶ鬮ｮ・｣繝ｻ・ｽ繝ｻ・ｪ鬮｣蛹・ｽｽ・ｳ郢晢ｽｻ繝ｻ・ｦ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｳ驛｢譎｢・ｽ・ｻ驛｢譎｢・ｽ・ｻ*/
  .ky-news-item a {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 12px 20px;
    padding: 24px 0;
    align-items: flex-start;
  }
  .news-meta {
    grid-column: 1 / -1;
    width: 100%;
    display: flex;
    align-items: center;
  }
  .news-badge {
    position: static;
    margin-left: 16px;
  }
  .news-thumb {
    grid-column: 1;
    width: 80px;
    margin: 0;
  }
  .news-body {
    grid-column: 2;
    padding-right: 0;
  }
  .news-ttl {
    font-size: 14.5px;
    line-height: 1.8;
    margin-bottom: 12px;
  }
  .news-arrow {
    display: none; /* 鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴弱・・ｽ・ｧ繝ｻ・ｭ驛｢譎｢・ｽ・ｻ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｧ鬩搾ｽｵ繝ｻ・ｺ郢晢ｽｻ繝ｻ・ｯ鬯ｨ・ｾ繝ｻ・ｵ驕ｶ謫ｾ・ｽ・ｫ髫ｰ繝ｻ繝ｻ繝ｻ・ｸ繝ｻ・ｺ髯ｷ莨夲ｽｽ・ｱ驕ｯ・ｶ繝ｻ・ｻ鬩幢ｽ｢繝ｻ・ｧ郢晢ｽｻ繝ｻ・ｹ鬩幢ｽ｢隴擾ｽｴ郢晢ｽｻ驍ｵ・ｺ陷證ｦ・ｽ・ｹ隴趣ｽ｢繝ｻ・ｽ繝ｻ・ｪ鬯ｮ・ｫ驕ｨ繧托ｽｽ・ｹ隴擾ｽｶ鬮ｮ・ｷ鬩幢ｽ｢繝ｻ・ｧ驛｢譎｢・ｽ・ｻ*/
  }

  /* BLOCK 8: CTA */
  .ky-cta-in {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 24px;
  }
  .ky-cta-right h2 {
    font-size: 24px;
    line-height: 1.6;
  }
  .ky-mini-gallery {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
}

/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ SUBPAGE: PHILOSOPHY 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.ph-hero-ov {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 2;
  pointer-events: none;
}
.ph-hero-text {
  position: absolute;
  left: 12%;
  top: 40%;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  z-index: 4;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
}
.ph-hero-ttl {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.15em;
  color: #fff;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  text-indent: -0.5em;
}
.ph-hero-sub {
  font-family: var(--en);
  font-size: 0.75rem;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  margin-left: 24px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
.ph-s-text {
  left: 18%;
  width: 50%;
}

/* Pillars Section */
.ky-ph-pillars {
  background: #fff;
}
.ph-head {
  margin-bottom: 80px;
}
.ph-pillar {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1080px;
  margin: 0 auto 100px;
}
.ph-pillar:last-child {
  margin-bottom: 0;
}
.ph-pillar.reverse {
  grid-template-areas: "tx img";
  direction: rtl;
}
.ph-pillar.reverse > * {
  direction: ltr;
}
.ph-pillar.reverse .ph-pillar-img {
  grid-area: img;
}
.ph-pillar.reverse .ph-pillar-tx {
  grid-area: tx;
}

.ph-pillar-img {
  position: relative;
}
.ph-pillar-img img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
}
.ph-pillar-tx {
  padding: 0 20px;
}
.ph-p-num {
  font-family: var(--en);
  font-size: 1rem;
  font-weight: 300;
  color: var(--gl);
  letter-spacing: 0.1em;
  display: inline-block;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--gl);
  padding-bottom: 4px;
}
.ph-p-ttl {
  font-family: var(--serif);
  font-size: clamp(22px, 2.5vw, 26px);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--tm);
  margin-bottom: 30px;
  line-height: 1.6;
}
.ph-p-desc {
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.06em;
  color: var(--tm);
  text-align: justify;
}

/* Director Section */
.ph-director {
  background: #fdfcfa;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.ph-dir-in {
  display: grid;
  grid-template-columns: 35% 1fr;
  gap: 80px;
  max-width: 1080px;
  padding-top: 40px;
}
.ph-dir-left {
  position: relative;
}
.ph-dir-img-wrap img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: 4px;
  filter: contrast(1.1) brightness(0.95);
}
.ph-dir-caption {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pd-en {
  font-family: var(--en);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--tl);
}
.pd-ja {
  font-family: var(--serif);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--tm);
}

.ph-dir-right {
  padding-top: 20px;
}
.ph-dir-en {
  font-family: var(--en);
  font-size: 14px;
  letter-spacing: 0.2em;
  color: var(--gl);
  margin-bottom: 24px;
}
.ph-dir-ttl {
  font-family: var(--serif);
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 500;
  letter-spacing: 0.15em;
  color: var(--tm);
  line-height: 1.8;
  margin-bottom: 40px;
}
.ph-dir-body p {
  font-size: 15px;
  line-height: 2.3;
  letter-spacing: 0.08em;
  color: #333;
  margin-bottom: 24px;
  text-align: justify;
  font-weight: 500;
}
.ph-dir-sign {
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-family: var(--serif);
  color: var(--tm);
  gap: 12px;
}
.ph-dir-sign span {
  font-size: 13px;
  letter-spacing: 0.1em;
}
.ph-dir-sign .sign-name {
  font-family: "Shippori Mincho", serif;
  font-size: 28px;
  font-style: italic;
  letter-spacing: 0.05em;
  font-weight: 500;
}

/* History Section */
.ph-history {
  background: #1e3d1a;
  color: #fff;
  padding-bottom: 160px;
}
.history-timeline {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  padding-left: 20px;
  border-left: 1px dashed rgba(255, 255, 255, 0.2);
}
.ht-item {
  position: relative;
  padding-left: 60px;
  padding-bottom: 80px;
}
.ht-item:last-child {
  padding-bottom: 0;
}
.ht-dot {
  position: absolute;
  left: -5.5px;
  top: 12px;
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #1e3d1a;
  z-index: 2;
}
.ht-now {
  background: #e27d53;
  width: 14px;
  height: 14px;
  left: -7.5px;
  top: 10px;
}
.ht-year {
  font-family: var(--en);
  font-size: 32px;
  font-weight: 300;
  letter-spacing: 0.1em;
  color: #fff;
  position: absolute;
  left: -150px;
  top: -5px;
  width: 110px;
  text-align: right;
}
.ht-year span {
  font-family: var(--serif);
  font-size: 14px;
  letter-spacing: 0.05em;
  margin-left: 6px;
}
.ht-tx h4 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #fff;
  margin-bottom: 24px;
  line-height: 1.6;
}
.ht-tx p {
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.8);
  text-align: justify;
}

@media (max-width: 960px) {
  .ph-hero-text,
  .ph-s-text {
    left: 8vw;
  }
  .ph-s-text {
    width: 84%;
  }
  .ph-pillar {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-bottom: 60px;
  }
  .ph-pillar.reverse {
    grid-template-areas: none;
    direction: ltr;
  }
  .ph-pillar-tx {
    padding: 0;
  }
  .ph-p-ttl {
    font-size: 20px;
    margin-bottom: 20px;
  }
  .ph-p-desc {
    font-size: 14px;
  }

  .ph-dir-in {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-top: 0;
  }
  .ph-dir-right {
    padding-top: 0;
  }
  .ph-dir-img-wrap img {
    aspect-ratio: 4/3;
  }

  .history-timeline {
    margin-left: 20px;
    padding-left: 30px;
    border-left: 1px dotted rgba(255, 255, 255, 0.3);
  }
  .ht-item {
    padding-left: 0;
    padding-bottom: 60px;
  }
  .ht-dot {
    left: -35.5px;
  }
  .ht-now {
    left: -37.5px;
  }
  .ht-year {
    position: static;
    text-align: left;
    margin-bottom: 16px;
    font-size: 26px;
  }
  .ht-tx h4 {
    font-size: 18px;
    margin-bottom: 16px;
  }
}
/* 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ SPLIT CTA (Universal) 鬮ｫ・ｨ雋ょ庄ﾂ鬮ｫ・ｨ雋ょ庄ﾂ */
.mz-next-split {
  display: flex;
  height: 60vh;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  border-top: 1px solid #eee;
}
.mz-ns-link {
  flex: 1;
  position: relative;
  display: flex;
  overflow: hidden;
  text-decoration: none;
}
.mz-ns-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  transition: transform 1.2s cubic-bezier(0.2, 1, 0.2, 1);
}
.mz-ns-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.9);
  transition:
    transform 1.2s cubic-bezier(0.2, 1, 0.2, 1),
    filter 1.2s ease;
  display: block;
}
.mz-ns-link:hover .mz-ns-bg img {
  transform: scale(1.05);
  filter: brightness(0.6);
}

.mz-ns-tx {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50%;
  z-index: 2;
  text-align: center;
  color: #fff !important;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.65) 0%,
    transparent 100%
  );
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 48px 40px 0;
  transition: padding-top 0.8s cubic-bezier(0.2, 1, 0.2, 1);
}
.mz-ns-link:hover .mz-ns-tx {
  padding-top: 40px;
}
.mz-ns-en {
  font-family: "Cormorant Infant", serif;
  font-size: clamp(24px, 3vw, 36px);
  letter-spacing: 0.15em;
  display: block;
  margin-bottom: 8px;
  opacity: 1;
  color: #fff;
}
.mz-ns-ja {
  font-family: var(--serif);
  font-size: clamp(14px, 1.2vw, 16px);
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.85);
  display: block;
}

@media (max-width: 960px) {
  .mz-next-split {
    flex-direction: column;
    height: 100vh;
  }
  .mz-ns-link {
    height: 50vh;
  }
}

/* ==================================
   ADMISSIONS CTA (Organic Blob Sketch)
================================== */
.ky-admissions-cta {
  background: #fafaf8;
  padding: 100px 0;
  overflow: hidden;
}
.ky-admissions-in {
  display: flex;
  align-items: center;
  max-width: 1140px;
  margin: 0 auto;
  gap: clamp(20px, 5vw, 60px);
  padding: 0 40px;
}
.ky-adm-img-box {
  width: 55%;
  min-width: 340px;
  flex-shrink: 0;
  position: relative;
  aspect-ratio: 1/1;
}
.ky-adm-blob-frame-svg {
  position: absolute;
  width: 110%;
  height: 110%;
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition:
    transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.3s,
    opacity 1s ease 0.3s;

  /* Fallback defaults (Top Left) */
  --ky-rot: rotate(180deg);
  --ky-drop-start: translateY(40px);
  transform: var(--ky-rot) var(--ky-drop-start);
}
.ky-adm-img-box.vis .ky-adm-blob-frame-svg {
  transform: var(--ky-rot) translateY(0);
  opacity: 1;
}

/* Positioning Modifiers */
.ky-pos-tl {
  top: -10%;
  left: -15%;
  right: auto;
  bottom: auto;
  --ky-rot: rotate(180deg);
  --ky-drop-start: translateY(40px);
}
.ky-pos-br {
  bottom: -10%;
  right: -15%;
  top: auto;
  left: auto;
  --ky-rot: rotate(0deg);
  --ky-drop-start: translateY(40px);
} /* rotate 0 -> local Y is down, so +40px drops it DOWN. Wait, rotate(0) translateY(40px) = shifts down. Target is 0. So it starts down and moves UP to 0. If we want it to drop from above, we need translateY(-40px). Let's use -40px. */
.ky-pos-tl {
  top: -10%;
  left: -15%;
  right: auto;
  bottom: auto;
  --ky-rot: rotate(180deg);
  --ky-drop-start: translateY(40px);
}
.ky-pos-br {
  bottom: -10%;
  right: -15%;
  top: auto;
  left: auto;
  --ky-rot: rotate(0deg);
  --ky-drop-start: translateY(-40px);
}
.ky-pos-tr {
  top: -10%;
  right: -15%;
  bottom: auto;
  left: auto;
  --ky-rot: rotate(270deg);
  --ky-drop-start: translateX(-40px);
}
.ky-pos-bl {
  bottom: -10%;
  left: -15%;
  top: auto;
  right: auto;
  --ky-rot: rotate(90deg);
  --ky-drop-start: translateX(40px);
}

/* "Out" positioning (less overlap with frame) */
.ky-pos-tl-out {
  top: -28%;
  left: -28%;
  right: auto;
  bottom: auto;
  --ky-rot: rotate(180deg);
  --ky-drop-start: translateY(40px);
}
.ky-pos-br-out {
  bottom: -28%;
  right: -28%;
  top: auto;
  left: auto;
  --ky-rot: rotate(0deg);
  --ky-drop-start: translateY(-40px);
}
.ky-pos-tr-out {
  top: -28%;
  right: -28%;
  bottom: auto;
  left: auto;
  --ky-rot: rotate(270deg);
  --ky-drop-start: translateX(-40px);
}
.ky-pos-bl-out {
  bottom: -28%;
  left: -28%;
  top: auto;
  right: auto;
  --ky-rot: rotate(90deg);
  --ky-drop-start: translateX(40px);
}
.ky-adm-blob-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  position: relative;
  transition: border-radius 0.6s ease;
}
.ky-blob-1 {
  border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}
.ky-blob-1:hover {
  border-radius: 50% 60% 40% 50% / 40% 70% 60% 50%;
}
.ky-blob-2 {
  border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
}
.ky-blob-2:hover {
  border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
}
.ky-blob-3 {
  border-radius: 70% 30% 40% 60% / 60% 40% 50% 50%;
}
.ky-blob-3:hover {
  border-radius: 60% 40% 50% 50% / 50% 50% 40% 60%;
}
/* Extreme Shape 4: Diagonal Leaf / Mango */
.ky-blob-4 {
  border-radius: 80% 20% 80% 20% / 20% 80% 20% 80%;
}
.ky-blob-4:hover {
  border-radius: 70% 30% 70% 30% / 30% 70% 30% 70%;
}
/* Extreme Shape 5: Squashed Pill / Pebble */
.ky-blob-5 {
  border-radius: 30% 70% 30% 70% / 60% 40% 60% 40%;
}
.ky-blob-5:hover {
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
}
/* Extreme Shape 6: Tear Drop */
.ky-blob-6 {
  border-radius: 5% 95% 45% 55% / 25% 65% 35% 75%;
}
.ky-blob-6:hover {
  border-radius: 15% 85% 50% 50% / 35% 55% 45% 65%;
}
.ky-adm-tx-box {
  width: 40%;
  flex-grow: 1;
  flex-shrink: 1;
  color: var(--tm);
}
.ky-adm-eyebrow {
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  letter-spacing: 0.2em;
  opacity: 0.7;
  margin-bottom: 20px;
  color: var(--dg);
}
.ky-adm-ttl {
  font-family: "Outfit", sans-serif;
  font-size: 40px;
  letter-spacing: 0.1em;
  margin-bottom: 30px;
  font-weight: 300;
  color: var(--tm);
}
.ky-adm-desc {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.1em;
  margin-bottom: 40px;
  opacity: 0.9;
}
@media (max-width: 1024px) {
  .ky-admissions-in {
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: 0;
    max-width: 100% !important;
    padding: 0 20px !important;
  }
  .ky-adm-tx-box {
    order: 1;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    text-align: left;
    padding: 0 4% !important;
  }
  .ky-adm-eyebrow,
  .ky-adm-ttl {
    text-align: left;
  }
  .ky-adm-desc {
    text-align: justify;
    font-size: 14.5px;
    line-height: 2;
    margin-bottom: 32px;
  }
  .ky-admissions-in .ky-btn {
    width: 100%;
    max-width: 320px;
    box-sizing: border-box;
    font-size: 15px;
    padding: 16px 12px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    white-space: nowrap;
  }
  .ky-admissions-cta .ky-adm-img-box {
    order: 2;
    width: 100% !important;
    max-width: 480px !important;
    margin: 40px auto 0;
    background-color: #faf9f6 !important; /* 逋ｽ縺・囮髢薙・菫晁ｭｷ濶ｲ */
  }
  /* 繝｢繝舌う繝ｫ迺ｰ蠅・ｼ・024px莉･荳具ｼ峨〒縺ｮ隕励″遨ｴ繝代Λ繝ｩ繝・け繧ｹ辟｡蜉ｹ蛹悶→逋ｽ縺・囮髢薙・蠕ｹ蠎墓賜髯､ */
  body .ky-piece-blob-wrap img,
  body .ky-adm-blob-img {
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    transform: none !important;
    object-fit: cover !important;
  }
}

/* ============================================================
   SUBPAGE STRUCUTRES: SUPPORT (sp-table & workflow)
   ============================================================ */
.sp-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 32px;
  font-family: var(--sans);
}
.sp-table th,
.sp-table td {
  padding: 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #444;
  text-align: left;
  vertical-align: top;
}
.sp-table th {
  width: 100px;
  font-weight: 600;
  color: #333;
  background: rgba(0, 0, 0, 0.02);
}
.sp-badge {
  display: inline-block;
  background: #e27d53;
  color: #fff;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  padding: 4px 12px;
  border-radius: 20px;
  letter-spacing: 0.1em;
  margin-bottom: 16px;
}
.sp-flow {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 32px;
}
.sp-flow-step {
  background: rgba(75, 130, 160, 0.05);
  border: 1px solid rgba(75, 130, 160, 0.1);
  padding: 16px 20px;
  border-radius: 8px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.sp-flow-num {
  font-family: var(--en);
  font-size: 20px;
  font-weight: 500;
  color: #4b82a0;
  line-height: 1;
}
.sp-flow-tx {
  font-size: 14px;
  line-height: 1.6;
  color: #444;
}
.sp-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #e27d53;
  font-weight: 500;
  text-decoration: none;
  margin-top: 16px;
  border-bottom: 1px solid #e27d53;
  padding-bottom: 4px;
  transition: opacity 0.3s;
}
.sp-link-btn:hover {
  opacity: 0.7;
}
@media (max-width: 900px) {
  .sp-table th {
    width: 80px;
    padding: 12px 10px;
    font-size: 13px;
  }
  .sp-table td {
    padding: 12px 10px;
    font-size: 13px;
  }
  .sp-flow-step {
    flex-direction: column;
    gap: 8px;
  }
}

/* ============================================================
   MZ PILLARS (Alternate Z-Layout for Features)
   ============================================================ */
.mz-pillars {
  background: #fff;
}
.mz-p-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto 160px;
  gap: 80px;
  position: relative;
  z-index: 1;
}
.mz-p-item:last-child {
  margin-bottom: 0;
}
.mz-p-item.reverse {
  direction: rtl;
}
.mz-p-item.reverse > * {
  direction: ltr;
}

/* 閭梧勹繝悶Ο繝冶｣・｣ｾ */
.p-bg-blob {
  position: absolute;
  top: -60px;
  bottom: -60px;
  width: 65%;
  z-index: -1;
}
.mz-p-item:not(.reverse) .p-bg-blob {
  left: -8%;
  border-radius: 140px 80px 120px 80px;
}
.mz-p-item.reverse .p-bg-blob {
  right: -8%;
  border-radius: 80px 140px 80px 120px;
}
.bg-red {
  background: rgba(226, 125, 83, 0.05);
}
.bg-blue {
  background: rgba(75, 130, 160, 0.05);
}
.bg-green {
  background: rgba(138, 154, 91, 0.05);
}

.mz-p-img {
  position: relative;
}
.mz-p-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4/5;
  border-radius: 8px;
}
.mz-p-tx {
  padding: 40px;
}
.mz-p-item.reverse .mz-p-tx {
  padding-right: 80px;
}
.mz-p-num {
  font-family: var(--en);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--gl);
  display: block;
  margin-bottom: 24px;
}
.mz-p-ttl {
  font-family: var(--serif);
  font-size: 28px;
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: var(--td);
  margin-bottom: 32px;
  font-weight: 500;
}
.mz-p-desc {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: var(--tm);
}

@media (max-width: 960px) {
  .mz-p-item,
  .mz-p-item.reverse {
    grid-template-columns: 1fr;
    gap: 40px;
    margin-bottom: 80px;
    direction: ltr;
  }
  .mz-p-img {
    width: 100% !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
  .mz-p-tx {
    padding: 0 16px !important;
  }
}

/* GLOBAL SECTION HEADINGS */
.mz-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* ============================================================
   WORLD-VIEW IMAGE TONE SYSTEM
   縺ｿ縺ｩ繧翫′荳伜ｹｼ遞壼恍 笏笏 邨ｱ荳繝医・繝ｳ險ｭ險・
   
   繧ｳ繝ｳ繧ｻ繝励ヨ・壹梧惠繝ｻ邱代・蝨溘・貂ｩ縺九↑閾ｪ辟ｶ縲・
   謇区ｳ包ｼ・
     brightness(0.83縲・.88)  窶ｦ 蟆代＠關ｽ縺｡逹縺九○縲∬・辟ｶ蜈峨・豺ｱ縺ｿ繧貞・縺・
     saturate(0.85縲・.88)    窶ｦ AI逧・↑驕主臆蠖ｩ蠎ｦ繧呈椛縺医∵沐繧峨°縺上Μ繧｢繝ｫ縺ｫ
     sepia(0.06縲・.08)       窶ｦ 蠕ｮ驥上・繧ｻ繝斐い縺ｧ "繝輔ぅ繝ｫ繝�諢溘・貂ｩ縺九∩" 繧堤ｵｱ荳
   ============================================================ */

/* 繧､繝ｳ繝医Ο・壹ヶ繝ｭ繝也判蜒・*/
.ky-video-mask img {
  filter: brightness(0.85) saturate(0.86) sepia(0.07);
}

/* A Piece of Me・壻ｸｭ螟ｮ螟ｧ蛻､逕ｻ蜒・*/
.ky-piece-img img {
  filter: brightness(0.85) saturate(0.87) sepia(0.06);
}

/* 繧ｵ繝ｼ繝薙せ繧ｫ繝ｼ繝会ｼ壻ｿ晁ｭｷ閠・・蝨ｰ蝓・*/
.ky-svc-img-wrap img {
  filter: brightness(0.85) saturate(0.87) sepia(0.07);
}

/* 繧ｹ繝医・繝ｪ繝ｼ・壹い繝ｼ繝∫判蜒・*/
.ky-story-img-wrap .arch-img img {
  filter: brightness(0.86) saturate(0.87) sepia(0.06);
}

/* 雎翫°縺ｪ菴馴ｨ薙き繝ｼ繝会ｼ医せ繝ｩ繧､繝繝ｼ・・*/
.collab-img-wrap img {
  filter: brightness(0.82) saturate(0.85) sepia(0.08);
  transition: filter 0.5s ease;
}
.collab-img-wrap:hover img {
  filter: brightness(0.88) saturate(0.9) sepia(0.05);
}

/* 蜈･蝨偵ヵ繝ｭ繝ｼ・壹せ繝・ャ繝励き繝ｼ繝峨い繧､繧ｳ繝ｳ */
.fc-icon img {
  filter: brightness(0.85) saturate(0.86) sepia(0.07);
}

/* 繝九Η繝ｼ繧ｹ・壹し繝�繝阪う繝ｫ */
.news-thumb img {
  /* filter: brightness(0.85) saturate(0.86) sepia(0.06); */
}

/* Daily・壹ヲ繝ｼ繝ｭ繝ｼ逕ｻ蜒・*/
.ky-dh-img img {
  filter: brightness(0.86) saturate(0.87) sepia(0.06);
}

/* Daily・壹ち繧､繝�繝ｩ繧､繝ｳ蜷・判蜒・*/
.ky-tl-img img {
  filter: brightness(0.84) saturate(0.86) sepia(0.07);
}

/* About・啀illar 逕ｻ蜒・*/
.ph-pillar-img img {
  filter: brightness(0.86) saturate(0.87) sepia(0.06);
}

/* About・壹ョ繧｣繝ｬ繧ｯ繧ｿ繝ｼ逕ｻ蜒・*/
.ph-dir-img-wrap img {
  filter: brightness(0.87) saturate(0.87) sepia(0.05);
}

/* ============================================================
   MOBILE OVERRIDES
   ============================================================ */
@media (max-width: 900px) {
  /* 繝｢繝舌う繝ｫ迺ｰ蠅・〒縺ｯ蟾ｦ遶ｯ縺ｮ邵ｦ譖ｸ縺阪ユ繧ｭ繧ｹ繝茨ｼ医リ繝薙ご繝ｼ繧ｷ繝ｧ繝ｳ遲会ｼ峨ｒ髱櫁｡ｨ遉ｺ縺ｫ縺励※譛ｬ譁・→縺ｮ陲ｫ繧翫ｒ髦ｲ縺・*/
  .left-vert-nav {
    display: none !important;
  }

  /* --- 繝｢繝舌う繝ｫ蛻晄悄繝倥ャ繝繝ｼ縺ｮ菴咏區隱ｿ謨ｴ --- */
  .hd {
    padding: 20px 24px;
    align-items: center;
  }
  /* 縺薙％縺ｧ蜈ｨ縺ｦ縺ｮ荳ｭ霄ｫ縺ｫ繝医Λ繝ｳ繧ｸ繧ｷ繝ｧ繝ｳ繧定ｿｽ蜉�縺励※繧ｫ繧ｯ縺､縺阪ｒ髦ｲ豁｢ */
  .hd,
  .hd-base,
  .logo,
  .logo-ic,
  .logo-ic svg,
  .logo-text,
  .hd-menu,
  .hd-menu span {
    transition: all 0.45s cubic-bezier(0.19, 1, 0.22, 1);
  }

  /* --- 繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ譎ゅ・繝倥ャ繝繝ｼ繝斐Ν・医ム繧､繝翫Α繝・け繧｢繧､繝ｩ繝ｳ繝蛾｢ｨ・・--- */
  .hd.sc {
    top: 15px;
    left: 20px;
    right: 20px;
    padding: 8px 18px;
    border-radius: 40px;
    height: 56px; /* 鬮倥＆繧偵せ繝ｪ繝�縺ｫ蝗ｺ螳・*/
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* 閭梧勹縺ｯ繝吶・繧ｹ繝ｬ繧､繝､繝ｼ縺ｫ縺ｮ縺ｿ驕ｩ逕ｨ・・apandi繝帙Ρ繧､繝医げ繝ｩ繧ｹ・・*/
  .hd-base.sc {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  }

  /* 繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ譎ゅ・逋ｽ縺・レ譎ｯ縺ｫ蜷医ｏ縺帙※隕∫ｴ�繧呈ｴ礼ｷｴ縺輔ｌ縺溘ム繝ｼ繧ｯ繧ｫ繝ｩ繝ｼ縺ｸ */
  .hd-base.sc .logo-ic svg path,
  .hd-base.sc .logo-ic svg circle,
  .hd-base.sc .logo-ic svg rect {
    fill: var(--td) !important;
  }
  .hd-base.sc .logo-text {
    color: var(--td) !important;
  }
  .hd-base.sc .hd-menu span {
    background: var(--td) !important;
  }

  /* 繝ｭ繧ｴ繧呈･ｵ蟆丞喧・・ｨｪ荳ｦ縺ｳ縺ｫ縺吶ｋ */
  .hd.sc .logo {
    flex-direction: row;
    gap: 10px;
    margin-top: 0;
  }
  .hd.sc .logo-ic {
    width: 30px;
    height: 30px;
  }
  .hd.sc .logo-ic svg {
    width: 24px;
    height: 24px;
  }
  .hd.sc .logo-text {
    font-size: 0.65rem;
    margin: 0;
    line-height: 1;
    letter-spacing: 0.1em;
  }

  /* 繝上Φ繝舌・繧ｬ繝ｼ繝｡繝九Η繝ｼ繧定ｶ・さ繝ｳ繝代け繝医↓蜀榊ｮ夂ｾｩ・・cale縺ｧ縺ｯ縺ｪ縺丞ｮ溷ｯｸ螟画峩・・*/
  .hd.sc .hd-menu {
    width: 32px;
    height: 32px;
    transform: none;
    margin-right: -4px;
  }
  .hd.sc .hd-menu span {
    height: 2px;
  }
  .hd.sc .hd-menu span:nth-child(1) {
    width: 14px;
    top: 9px;
    left: 10px;
    transform: rotate(0deg);
  }
  .hd.sc .hd-menu span:nth-child(2) {
    width: 20px;
    top: 15px;
    left: 4px;
    transform: rotate(0deg);
  }
  .hd.sc .hd-menu span:nth-child(3) {
    width: 26px;
    top: 21px;
    left: -2px;
    transform: rotate(0deg);
  }

  /* 繝帙ヰ繝ｼ譎ゑｼ医Δ繝舌う繝ｫ縺ｧ縺ｯ繧ｿ繝・・譎ゑｼ峨・蜍輔″繧ょ・螳夂ｾｩ */
  .hd.sc .hd-menu:hover span,
  .hd.sc .hd-menu.is-hover span {
    left: 4px;
    width: 20px;
  }
  .hd.sc .hd-menu:hover span:nth-child(1),
  .hd.sc .hd-menu.is-hover span:nth-child(1) {
    top: 9px;
  }
  .hd.sc .hd-menu:hover span:nth-child(2),
  .hd.sc .hd-menu.is-hover span:nth-child(2) {
    top: 15px;
  }
  .hd.sc .hd-menu:hover span:nth-child(3),
  .hd.sc .hd-menu.is-hover span:nth-child(3) {
    top: 21px;
  }

  /* 繝｢繝舌う繝ｫ縺ｧ繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ譎ゑｼ育區繧ｰ繝ｩ繧ｹ繝斐Ν蛹匁凾・峨・縲∫區繝ｭ繧ｴ蝗ｺ螳壹Ξ繧､繝､繝ｼ繧帝撼陦ｨ遉ｺ縺ｫ縺励※譁・ｭ苓｢ｫ繧翫ｒ髦ｲ縺・*/
  #hd-white-layer .hd.sc {
    opacity: 0 !important;
    visibility: hidden;
  }
}

/* 笏笏 BACK TO TOP BUTTON 笏笏 */
.ky-btt {
  position: fixed;
  bottom: 40px;
  right: 40px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--td); /* Deep green */
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 99;
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: all 0.4s cubic-bezier(0.2, 1, 0.2, 1);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
}
.ky-btt.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.ky-btt:hover {
  background: var(--tm);
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.2);
}

/* 笏笏 FLOAT CTA GROUP (VERTICAL TABS FOR ALL DEVICES) 笏笏 */
.float-cta-group {
  position: fixed;
  z-index: 998;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
}
.float-cta {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: translateX(8px) !important;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  padding: 32px 14px !important;
  border-radius: 12px 0 0 12px !important;
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15) !important;
  letter-spacing: 0.15em !important;
  animation: none !important;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.float-cta.contact {
  background: #7a7a7a !important; /* Neutral dark gray to avoid introducing new colors */
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.1) !important;
}
.float-cta:hover {
  transform: translateX(0) !important;
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.25) !important;
}
.float-cta.contact:hover {
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.2) !important;
}
/* 繧｢繧､繧ｳ繝ｳ縺檎ｸｦ譖ｸ縺肴凾縺ｫ讓ｪ繧貞髄縺・※縺励∪縺・・繧定｣懈ｭ｣ */
.float-cta svg {
  margin-bottom: 12px;
  margin-right: 0 !important;
}

@media (max-width: 960px) {
  /* 繝医ャ繝励↓謌ｻ繧九・繧ｿ繝ｳ縺ｯ縲∽ｸ矩Κ蝗ｺ螳壹ヰ繝ｼ縺ｮ荳翫↓驕ｿ縺代ｋ */
  .ky-btt {
    bottom: 80px;
    right: 16px;
    width: 44px;
    height: 44px;
  }

  /* 譯・・壹せ繝槭・逕ｨ 繧｢繝励Μ鬚ｨ縲御ｸ矩Κ蝗ｺ螳壹ヰ繝ｼ・・ottom Bar・峨・*/
  .float-cta-group {
    top: auto;
    bottom: 0;
    right: 0;
    left: 0;
    transform: none;
    display: flex;
    flex-direction: row;
    width: 100%;
    /* 繝舌・荳企Κ縺ｫ蠖ｱ繧偵▽縺代※豬ｮ驕頑─繧呈椛蛻ｶ */
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
  }
  .float-cta {
    transform: none !important;
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    padding: 18px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border-bottom: none;
    font-size: 0.8rem !important;
    letter-spacing: 0.08em !important;
    flex: 1; /* 50%縺壹▽蝮・ｭ牙・蜑ｲ */
    justify-content: center;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
  }
  .float-cta:last-child {
    border-right: none;
  }
  .float-cta:hover {
    transform: none !important; /* 繧ｹ繝槭・縺ｪ縺ｮ縺ｧ辟｡蜉ｹ蛹・*/
  }
  .float-cta svg {
    margin-bottom: 0;
    margin-right: 6px !important;
    width: 16px !important;
    height: 16px !important;
  }
}

/* ==============================================================
   CINEMATIC PAGE LOADING (Kiyasaku Style)
============================================================== */
body {
  animation: pageCinematicFade 1.2s ease-out forwards;
}
@keyframes pageCinematicFade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* 蜈ｱ騾壹・繝ｫ繝代・・壹ユ繧ｭ繧ｹ繝域隼陦碁亟豁｢ */
.ky-nowrap {
  white-space: nowrap !important;
}

/* ==========================================================================
   謨呵ご遐皮ｩｶ螳､ (Lab) 繧ｹ繧ｿ繧､繝ｫ
   ========================================================================== */

/* 繝悶Ο繧ｰ荳隕ｧ (lab.html) */
.lab-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-bottom: 60px;
}
.lab-link {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 32px;
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: background 0.3s;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.lab-link:hover .lab-ttl {
  color: var(--gd);
}
.lab-link:hover .lab-thumb img {
  transform: scale(1.05);
}
.lab-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 8px;
  overflow: hidden;
  background: #eee;
}
.lab-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.lab-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.lab-date {
  font-family: var(--en);
  font-size: 13px;
  color: var(--gd);
  letter-spacing: 0.1em;
  margin-bottom: 12px;
  display: block;
}
.lab-ttl {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--td);
  line-height: 1.5;
  margin: 0 0 16px;
  transition: color 0.4s;
  letter-spacing: 0.05em;
}
.lab-excerpt {
  font-size: 14px;
  color: var(--tm);
  line-height: 1.8;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  letter-spacing: 0.05em;
}

/* 繝悶Ο繧ｰ隧ｳ邏ｰ (lab_detail.html) */
.lab-detail-article {
  margin-bottom: 80px;
}
.lab-detail-meta {
  text-align: center;
  margin-bottom: 24px;
}
.lab-detail-date {
  font-family: var(--en);
  font-size: 15px;
  color: var(--tm);
  letter-spacing: 0.1em;
}
.lab-detail-ttl {
  font-family: var(--serif);
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 400;
  color: var(--td);
  line-height: 1.6;
  margin-bottom: 40px;
  text-align: center;
  letter-spacing: 0.05em;
}
.lab-detail-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 64px;
  background: #eee;
}
.lab-detail-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lab-detail-content {
  font-size: 16px;
  color: var(--tm);
  line-height: 2;
  font-family: var(--serif);
  letter-spacing: 0.05em;
}
.lab-detail-content p {
  margin-bottom: 32px;
}
.lab-detail-back {
  text-align: center;
  margin-top: 80px;
}
.lab-detail-back a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  height: 64px;
  border: 1px solid rgba(180, 155, 110, 0.4);
  border-radius: 100px;
  color: var(--gd);
  font-family: var(--sans);
  font-size: 15px;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: all 0.3s;
}
.lab-detail-back a:hover {
  background: var(--gd);
  color: #fff;
  border-color: var(--gd);
}

/* 繧ｵ繧､繝峨ヰ繝ｼ・・ち繧ｰ */
.lab-container {
  display: flex;
  gap: 48px;
  align-items: flex-start;
}
.lab-main {
  flex: 1;
  min-width: 0;
}

.lab-tags {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.lab-tags a {
  display: inline-block;
  font-size: 13px;
  color: #888;
  font-family: var(--sans);
  text-decoration: none;
  transition: color 0.3s;
}
.lab-tags a::before {
  content: "#";
  color: var(--gd);
  margin-right: 2px;
}
.lab-tags a:hover {
  color: var(--gd);
}

.lab-sidebar {
  flex: 0 0 280px;
  padding: 40px 32px;
  border: 1px solid rgba(180, 155, 110, 0.15);
  background: #fff;
  position: sticky;
  top: 120px;
}
.lab-sidebar-ttl {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 400;
  color: var(--td);
  margin-bottom: 32px;
  padding-left: 16px;
  position: relative;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.lab-sidebar-ttl::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 1px;
  background: var(--gd);
}
.lab-sidebar-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  padding: 0;
  margin: 0;
}
.lab-sidebar-tags li {
  display: block;
}
.lab-sidebar-tags a {
  text-decoration: none;
  font-size: 13px;
  color: var(--tm);
  letter-spacing: 0.05em;
  transition: color 0.4s;
  font-family: var(--sans);
}
.lab-sidebar-tags a::before {
  content: "#";
  color: var(--gd);
  margin-right: 2px;
  transition: color 0.3s;
}
.lab-sidebar-tags a:hover {
  color: var(--gd);
}

/* 繝壹・繧ｸ繝阪・繧ｷ繝ｧ繝ｳ */
.lab-pagination {
  text-align: center;
  margin-top: 80px;
}
.lab-pagination-info {
  font-family: var(--serif);
  font-size: 13px;
  color: var(--tm);
  margin-bottom: 32px;
  letter-spacing: 0.15em;
}
.nav-links {
  display: flex;
  justify-content: center;
  gap: 12px;
  align-items: center;
}
.nav-links .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 15px;
  font-family: var(--en);
  color: var(--tm);
  text-decoration: none;
  transition: all 0.4s;
  border-radius: 50%;
}
.nav-links a.page-numbers {
  border: 1px solid rgba(180, 155, 110, 0.3);
  background: transparent;
}
.nav-links a.page-numbers:hover {
  background: var(--gd);
  border-color: var(--gd);
  color: #fff;
}
.nav-links span.current {
  background: var(--gd);
  border-color: var(--gd);
  color: #fff;
}

/* 繧ｹ繝槭・蟇ｾ蠢・*/
@media (max-width: 960px) {
  .lab-container {
    flex-direction: column;
    gap: 64px;
  }
  .lab-sidebar {
    flex: none;
    width: 100%;
    position: static;
    padding: 24px 16px;
  }
}
@media (max-width: 768px) {
  .lab-link {
    grid-template-columns: 1fr;
    gap: 16px;
    padding-bottom: 32px;
    align-items: start;
  }
  .lab-thumb {
    width: 100%;
    aspect-ratio: 16/9;
  }
}

.ky-ft-nav {
  align-items: flex-start;
}

/* ==================================================
   縺顔衍繧峨○・・ews・牙・騾壹Ξ繧､繧｢繧ｦ繝茨ｼ・ndex.html & news.html・・   ================================================== */
#news .ky-intro-link {
  color: #555;
}
.ky-news-in {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.ky-news-in .ky-news-left {
  flex: 0 0 200px;
}
.ky-news-right {
  flex: 1;
}

.ky-news-list {
  border-top: none;
}
.ky-news-item .ky-news-link {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/* theme-kiyasuku縺ｮ body .ky-news-link 繧剃ｸ頑嶌縺阪☆繧九◆繧√↓ #news 繧剃ｻ倅ｸ弱＠縺ｦ隧ｳ邏ｰ蠎ｦ繧呈怙蠑ｷ縺ｫ縺吶ｋ */
#news .ky-news-link {
  display: flex !important;
  align-items: center !important;
  flex-direction: row !important;
  gap: 32px !important;
  padding: 16px 0 !important;
  text-decoration: none;
  transition: background 0.3s;
}

/* 繧ｵ繝�繝阪う繝ｫ霑ｽ蜉�迚・*/
#news .news-thumb {
  flex: 0 0 160px !important;
  width: 160px !important;
  height: 90px !important;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}
#news .news-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
#news .ky-news-link:hover .news-thumb img {
  transform: scale(1.05);
}

#news .news-content-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
  min-height: 90px;
}
#news .news-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  top: 6px;
}
#news .news-date {
  font-family: var(--en);
  font-size: 13px;
  letter-spacing: 0.05em;
  color: #777;
}
#news .news-badge {
  background: var(--gl);
  color: #fff;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
}
#news .news-body {
  display: flex;
  align-items: center;
  gap: 16px;
}
#news .news-ttl {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 400;
  color: #333;
  margin: 0;
  line-height: 1.6;
  transition: color 0.3s;
  letter-spacing: 0.05em;
}

#news .ky-news-link:hover .news-ttl {
  color: var(--gl);
}

/* --- 讓ｪ荳ｦ縺ｳ繧ｫ繝ｼ繝峨Ξ繧､繧｢繧ｦ繝茨ｼ医ユ繧ｹ繝育畑・・--- */
#news.is-card-layout .ky-news-in {
  flex-direction: column !important;
  align-items: center !important;
  gap: 32px !important;
}
#news.is-card-layout .ky-news-left {
  width: 100% !important;
  text-align: center !important;
  flex: none !important;
  border-bottom: none !important;
  align-items: center !important;
}
#news.is-card-layout .ky-news-right {
  width: 100% !important;
}
#news.is-card-layout .ky-news-list {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 40px 32px !important;
  align-items: start !important;
}
#news.is-card-layout .ky-news-item {
  width: 100% !important;
  border: none !important;
}
#news.is-card-layout .ky-news-item .ky-news-link {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  padding: 0 !important;
  border: none !important;
  height: 100% !important;
  justify-content: flex-start !important;
}
#news.is-card-layout .news-thumb {
  width: 100% !important;
  flex: none !important;
  height: auto !important;
  aspect-ratio: 16/9 !important;
  border-radius: 4px;
  overflow: hidden;
}
#news.is-card-layout .news-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
#news.is-card-layout .news-content-wrap {
  width: 100% !important;
  flex: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  justify-content: flex-start !important;
  min-height: auto !important;
  padding: 0 !important;
}
#news.is-card-layout .news-meta {
  margin: 0 !important;
  padding: 0 !important;
  top: 0 !important;
  align-items: center !important;
  height: auto !important;
}
#news.is-card-layout .news-body {
  flex: none !important;
  flex-grow: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}
#news.is-card-layout .news-ttl {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
}
#news.is-card-layout .news-ttl a {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  #news.is-card-layout .ky-news-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
  }
  #news.is-card-layout .ky-news-in {
    flex-direction: column;
    gap: 24px;
    width: 100% !important;
    display: block !important;
  }
  #news.is-card-layout .ky-news-in .ky-news-left {
    flex: none !important;
    width: 100% !important;
    display: block !important;
  }
  #news.is-card-layout .ky-news-in .ky-news-right {
    flex: none !important;
    width: 100% !important;
    display: block !important;
  }
  #news.is-card-layout .ky-news-item {
    width: 100% !important;
  }

  #news .ky-news-link {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    padding: 12px 0 !important;
    width: 100% !important;
    display: flex !important;
  }

  /* 繧ｭ繝｣繝励メ繝｣・育判蜒擾ｼ峨′豸医∴繧九ヰ繧ｰ繧帝亟縺舌◆繧√（mg繧ｿ繧ｰ閾ｪ菴薙↓繧・aspect-ratio 繧定ｨｭ螳・*/
  #news .news-thumb {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 16/9 !important;
    height: auto !important;
  }
  #news .news-thumb img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16/9 !important;
    object-fit: cover !important;
  }

  /* 繝・く繧ｹ繝医お繝ｪ繧｢縺ｮ蟷・′迢ｭ縺ｾ繧九ヰ繧ｰ繧貞ｮ悟・縺ｫ髦ｲ縺舌◆繧√∝ｼｷ蛻ｶ蜈ｨ蟷・block)蛹・*/
  #news .news-content-wrap {
    flex: none !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  #news .news-meta {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    margin-top: 0 !important;
  }
  #news .news-body {
    width: 100% !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  #news .news-ttl {
    font-size: 15px !important;
    width: 100% !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    margin-top: -4px !important;
    line-height: 1.3 !important;
  }
  #news .news-ttl a {
    width: 100% !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    white-space: normal !important;
    word-break: break-word !important;
  }
}

/* 記事詳細内のリンク装飾 (お知らせ・LABO) */
.ky-nd-body a,
#dContent a {
  color: #e27d53;
  text-decoration: underline;
  text-decoration-color: #e27d53;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: opacity 0.3s;
}
.ky-nd-body a:hover,
#dContent a:hover {
  opacity: 0.6;
}
