

:root {
  --k-dark:        #0A1628;
  --k-dark-2:      #1a3a52;
  --k-blue:        #00B4D8;
  --k-blue-pale:   #EAF7FC;
  --k-orange:      #FF6B35;
  --k-white:       #FFFFFF;
  --k-bg:          #F7FBFC;

  --font-en:       'Oswald', 'Segoe UI', sans-serif;
  --font-ja:       'Noto Sans JP', sans-serif;

  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  font-family: var(--font-ja);
  font-weight: 400;
  color: var(--k-dark);
  background: var(--k-white);
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
          text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }

.kuuki-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 28px 0 0;
  text-align: center;
  pointer-events: none;
}
.kuuki-header__logo-link {
  display: inline-block;
  pointer-events: auto;
}
.kuuki-header__logo {
  width: 150px;
  height: auto;
}

.kuuki-hero {
  position: relative;
  width: 100%;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-x: clip;
  overflow-y: hidden;
  background: var(--k-white);
}

.kuuki-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:

    radial-gradient(ellipse 35% 28% at 50% 45%, rgba(255, 255, 255, 1) 0%, rgba(247, 251, 252, 0.6) 50%, transparent 80%),

    var(--k-bg);
}
.kuuki-hero__bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(26, 58, 82, 0.10) 1px, transparent 0);
  background-size: 28px 28px;
  opacity: 0.35;
  pointer-events: none;
}

.kuuki-hero__japan-map {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(10deg);
  width: clamp(800px, 106vmin, 1625px);
  height: clamp(525px, 70vmin, 1075px);
  background-image: url('images/japan-map-bg.png');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  filter: brightness(0) saturate(100%) invert(70%) sepia(28%) saturate(540%) hue-rotate(155deg) brightness(0.95);
  -webkit-mask-image: linear-gradient(45deg, transparent 0%, transparent 12%, black 65%, black 100%);
          mask-image: linear-gradient(45deg, transparent 0%, transparent 12%, black 65%, black 100%);
  opacity: 0.34;
  pointer-events: none;
  z-index: 0;
}

.kuuki-hero__orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(720px, 90vmin, 1400px);
  height: auto;
  pointer-events: none;
  z-index: 1;
  overflow: visible;
}
.kuuki-hero__orbit-ring {
  transform-origin: 600px 350px;
  transform-box: fill-box;
}
.kuuki-hero__orbit-ring--1 {
  opacity: 0.49;
  animation: kuuki-orbit-spin 60s steps(1800, jump-none) infinite;
}
.kuuki-hero__orbit-ring--2 {
  opacity: 0.38;
  animation: kuuki-orbit-spin 90s steps(2700, jump-none) infinite reverse;
}
.kuuki-hero__orbit-ring--3 {
  opacity: 0.41;
  animation: kuuki-orbit-spin 75s steps(2250, jump-none) infinite;
}
.kuuki-hero__orbit-ring--4 {
  opacity: 0.34;
  animation: kuuki-orbit-spin 110s steps(3300, jump-none) infinite reverse;
}
@keyframes kuuki-orbit-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.kuuki-hero__side {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 22%;
  z-index: 2;
  overflow: hidden;
  contain: layout paint;
  padding-block: 20px;
}
.kuuki-hero__side--left {
  left: 0;
}
.kuuki-hero__side--right {
  right: 0;
}

.kuuki-hero__strip {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 16px;
  will-change: transform;
}
.kuuki-hero__strip img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 4px;
  box-shadow: 0 12px 36px rgba(10, 22, 40, 0.18);
  margin: 9px 0;
}

.kuuki-hero__strip--up {
  animation: kuuki-scroll-up 45s steps(1350, jump-none) infinite;
}
.kuuki-hero__strip--down {
  animation: kuuki-scroll-down 45s steps(1350, jump-none) infinite;
}
.kuuki-hero__strip--up:hover,
.kuuki-hero__strip--down:hover {
  animation-play-state: paused;
}

.kuuki-hero.is-anim-paused .kuuki-hero__orbit-ring,
.kuuki-hero.is-anim-paused .kuuki-hero__strip--up,
.kuuki-hero.is-anim-paused .kuuki-hero__strip--down {
  animation-play-state: paused;
}

@keyframes kuuki-scroll-up {
  from { transform: translateY(0); }
  to   { transform: translateY(-50%); }
}
@keyframes kuuki-scroll-down {
  from { transform: translateY(-50%); }
  to   { transform: translateY(0); }
}

@keyframes kuuki-scroll-left {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes kuuki-scroll-right {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

.kuuki-hero__center {
  position: relative;
  z-index: 5;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 120px 22% 120px;
  text-align: center;
}

.kuuki-hero__title {
  display: flex;
  flex-direction: column;
  gap: 28px;
  align-items: center;
  animation: kuuki-fade-up 1.2s var(--ease-out) both;
}

.kuuki-hero__title-en {
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(3.9rem, 9.75vw, 8.1rem);
  letter-spacing: 0.04em;
  word-spacing: -0.13em;
  display: inline-block;
  width: max-content;
  max-width: none;
  line-height: 1.05;
  text-transform: uppercase;

}
.kuuki-hero__title-en-line {
  background: linear-gradient(90deg, #000000 0%, #2D5A82 50%, #5BA4D0 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
  display: inline-block;
  padding-right: 0.25em;
}

.kuuki-hero__title-en-line--1 {
  display: inline-block;
  transform: translateX(-20px);
}
.kuuki-hero__title-en-line2 {
  display: inline-flex;
  align-items: baseline;
  transform: translateX(20px);
  max-width: 100%;
}

.kuuki-hero__title-en-line--2 {
  background-size: 175% 100%;
  background-repeat: no-repeat;
  background-position: left center;
}

.kuuki-hero__title-accent {
  display: inline-block;
  white-space: nowrap;
  margin-left: -0.13em;
}

.kuuki-hero__title-accent__inner {
  display: inline-block;
  padding-right: 0.12em;
  white-space: nowrap;
}

.kuuki-hero__title-accent__inner {
  background: linear-gradient(90deg, #FF8B5C 0%, #FF6B35 55%, #E84A1E 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
}

.kuuki-hero__title-ja {
  font-family: var(--font-ja);
  font-weight: 500;
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  letter-spacing: 0.18em;
  color: var(--k-dark-2);
  position: relative;
  padding: 0 36px;
}
.kuuki-hero__title-ja::before,
.kuuki-hero__title-ja::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 24px;
  height: 1px;
  background: var(--k-dark-2);
  opacity: 0.4;
}
.kuuki-hero__title-ja::before { left: 0; }
.kuuki-hero__title-ja::after  { right: 0; }
.kuuki-hero__title-sub {
  margin-bottom: -14px;
  font-family: var(--font-ja);
  font-size: clamp(0.85rem, 1.35vw, 1.1rem);
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--k-dark-2);
}
.kuuki-hero__title-ja-emp {
  font-weight: inherit;
}

@keyframes kuuki-fade-up {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

.kuuki-hero__bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 220px;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
          mask-image: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
}
.kuuki-hero__shape {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.kuuki-hero__shape--1 {
  background: linear-gradient(90deg, #0A1628 0%, #1a3a52 15%, #2d5876 30%, #00B4D8 70%, #5BC6E0 100%);
  clip-path: polygon(0 100%, 0 55%, 72% 100%);
  z-index: 1;
}

.kuuki-hero__shape--2 {
  background: linear-gradient(90deg, #00B4D8 50%, #2d5876 62%, #1a3a52 78%, #0A1628 90%);
  clip-path: polygon(37% 100%, 100% 100%, 100% 30%);
  z-index: 2;
}

.kuuki-hero__shape--2-mid {
  background: linear-gradient(90deg, #5BC6E0 56%, #00B4D8 62.6%, #2d5876 69.2%, #1a3a52 86.8%, #0A1628 100%);
  clip-path: polygon(43% 100%, 100% 100%, 100% 30%);
  z-index: 3;
}

.kuuki-hero__shape--2-top {
  background: linear-gradient(90deg, #00B4D8 50%, #2d5876 62%, #1a3a52 78%, #0A1628 90%);
  clip-path: polygon(53% 100%, 100% 100%, 100% 30%);
  z-index: 4;
}

@media (max-width: 768px) {

  .kuuki-header {
    padding: 14px 0 0;
  }

  .kuuki-hero {
    min-height: auto;
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
  }

  .kuuki-hero__side {
    position: relative;
    top: auto;
    bottom: auto;
    width: 100%;
    height: auto;
    overflow: visible;
    contain: none;
    transform: none !important;
  }
  .kuuki-hero__side--left {
    order: 1;
    left: auto;
    padding: 80px 0 8px;
  }
  .kuuki-hero__side--right {
    order: 3;
    right: auto;
    padding: 8px 0 0;
  }

  .kuuki-hero__strip {
    flex-direction: row;
    gap: 12px;
    padding: 16px 18px;
    width: max-content;
  }

  .kuuki-hero__strip--up {
    animation: kuuki-scroll-left 45s linear infinite;
  }
  .kuuki-hero__strip--down {
    animation: kuuki-scroll-right 45s linear infinite;
  }

  .kuuki-hero__strip img {
    width: 32vw;
    flex-shrink: 0;
    aspect-ratio: 3 / 4;
    margin: 0;
  }

  .kuuki-hero__side--left .kuuki-hero__strip img[src*="hero-brothers-casual"] {
    object-position: 0% center;
  }
  .kuuki-hero__side--right .kuuki-hero__strip img[src*="hero-brothers-meeting"] {
    object-position: 100% center;
  }

  .kuuki-hero__center {
    order: 2;
    min-height: auto;
    padding: 40px 24px;
    width: 100%;
    overflow-x: hidden;
  }
  .kuuki-hero__title-en {
    font-size: clamp(3rem, 15vw, 5.1rem);
    line-height: 1.08;
  }

  .kuuki-hero__bottom {
    height: 36px;
  }
}

@supports (-webkit-touch-callout: none) {
  @media (max-width: 768px) {
    .kuuki-hero__title-en {
      font-size: clamp(2.64rem, 11.55vw, 5.61rem) !important;
    }
  }
}

.kuuki-hero__bottom-sym,
.kuuki-bridge,
.kuuki-message__deco--2 {
  display: none;
}

.kuuki-hero__bottom {
  display: none;
}
.kuuki-hero__bottom-sym {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 220px;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
          mask-image: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
}
.kuuki-hero__shape-sym {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.kuuki-hero__shape-sym--1 {
  background: linear-gradient(90deg, #0A1628 0%, #1a3a52 15%, #2d5876 30%, #00B4D8 70%, #5BC6E0 100%);
  clip-path: polygon(0 100%, 0 55%, 72% 100%);
  z-index: 1;
}
.kuuki-hero__shape-sym--2 {
  background: linear-gradient(90deg, #00B4D8 50%, #2d5876 62%, #1a3a52 78%, #0A1628 90%);
  clip-path: polygon(26% 100%, 100% 100%, 100% 55%);
  z-index: 2;
}
.kuuki-hero__shape-sym--2-mid {
  background: linear-gradient(90deg, #5BC6E0 56%, #00B4D8 62.6%, #2d5876 69.2%, #1a3a52 86.8%, #0A1628 100%);
  clip-path: polygon(32% 100%, 100% 100%, 100% 55%);
  z-index: 3;
}
.kuuki-hero__shape-sym--2-top {
  background: linear-gradient(90deg, #00B4D8 50%, #2d5876 62%, #1a3a52 78%, #0A1628 90%);
  clip-path: polygon(42% 100%, 100% 100%, 100% 55%);
  z-index: 4;
}
@media (max-width: 768px) {
  .kuuki-hero__bottom-sym {
    display: none;
  }
}

.kuuki-bridge {
  position: relative;
  width: 100%;
  height: 99px;
  overflow: hidden;
  pointer-events: none;
  background: var(--k-white);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
          mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
}
.kuuki-bridge__inner {
  position: absolute;
  inset: 0;
  transform: scaleY(-1);
}
.kuuki-bridge__shape {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.kuuki-bridge__shape--1 {
  background: linear-gradient(90deg, #0A1628 0%, #1a3a52 15%, #2d5876 30%, #00B4D8 70%, #5BC6E0 100%);
  clip-path: polygon(0 100%, 0 0, 72% 100%);
  z-index: 1;
}
.kuuki-bridge__shape--2 {
  background: linear-gradient(90deg, #00B4D8 50%, #2d5876 62%, #1a3a52 78%, #0A1628 90%);
  clip-path: polygon(26% 100%, 100% 100%, 100% 0);
  z-index: 2;
}
.kuuki-bridge__shape--2-mid {
  background: linear-gradient(90deg, #5BC6E0 56%, #00B4D8 62.6%, #2d5876 69.2%, #1a3a52 86.8%, #0A1628 100%);
  clip-path: polygon(32% 100%, 100% 100%, 100% 0);
  z-index: 3;
}
.kuuki-bridge__shape--2-top {
  background: linear-gradient(90deg, #00B4D8 50%, #2d5876 62%, #1a3a52 78%, #0A1628 90%);
  clip-path: polygon(42% 100%, 100% 100%, 100% 0);
  z-index: 4;
}
@media (max-width: 768px) {
  .kuuki-bridge {
    display: none;
  }
}

.kuuki-message {
  position: relative;
  background: var(--k-white);
  padding: clamp(96px, 11vw, 180px) 0 clamp(80px, 9vw, 140px);
  overflow: visible;
}

.kuuki-message__deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.kuuki-message__deco--1 {
  right: 0;
  bottom: 0;
  width: 50%;
  height: 50%;
  background: #2D5A82;
  clip-path: polygon(100% 100%, 0 100%, 100% 0);
}
.kuuki-message__deco--2 {
  right: 0;
  top: -99px;
  width: clamp(180px, 22vw, 320px);
  height: calc(clamp(160px, 20vw, 280px) + 99px);
  background: linear-gradient(225deg, rgba(0, 180, 216, 0.10), rgba(91, 198, 224, 0.02));
  clip-path: polygon(20.1% 20.1%, 100% 26.1%, 100% 100%);
}
.kuuki-message__deco--4 {
  left: 0;
  top: 0;
  width: 50%;
  height: 50%;
  background: #2D5A82;
  clip-path: polygon(100% 100%, 0 100%, 100% 0);
  transform: scale(-1, -1);
}

.kuuki-message__inner {
  position: relative;
  width: min(1320px, 92%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 45% 55%;
  column-gap: clamp(40px, 6vw, 96px);
  align-items: center;
}

.kuuki-message__left {
  position: relative;
  padding-top: 200px;
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.5vw, 52px);
}

.kuuki-message__photo-wrap {
  position: relative;
}

.kuuki-message__heading {
  position: absolute;
  inset: -130px 0 0 0;
  z-index: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
  pointer-events: none;
  overflow: hidden;
}
.kuuki-message__heading-en {
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(72px, 11vw, 160px);
  line-height: 0.95;
  letter-spacing: -0.01em;
  color: #D1D4E4;
  word-spacing: 100vw;
}
.kuuki-message__heading-ja {
  font-family: var(--font-ja);
  font-weight: 500;
  font-size: clamp(13px, 1vw, 16px);
  letter-spacing: 0.28em;
  color: #596673;
  padding-left: 4px;
}

.kuuki-message__photo {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 540px;
  height: auto;
  display: block;
  object-fit: contain;
  margin-inline: auto;
}

.kuuki-message__names {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  z-index: 2;
  margin-inline: auto;
  width: 100%;
  max-width: 540px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
}
.kuuki-message__name {
  margin: 0;
  text-align: center;
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  white-space: nowrap;
}
.kuuki-message__name-role {
  font-family: var(--font-ja);
  font-size: clamp(11px, 0.8vw, 13px);
  font-weight: 500;
  letter-spacing: 0.24em;
  color: #ffffff;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.55), 0 0 2px rgba(0, 0, 0, 0.45);
}
.kuuki-message__name-person {
  font-family: var(--font-ja);
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 400;
  letter-spacing: 0.08em;
  color: #ffffff;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.55), 0 0 2px rgba(0, 0, 0, 0.45);
}
.kuuki-message__name--vp {
  transform: translateX(25px);
}
.kuuki-message__name--ceo {
  transform: translateX(-30px);
}

.kuuki-message__text {
  display: flex;
  flex-direction: column;
  gap: clamp(15.2px, 1.6vw, 23.2px);
}

.kuuki-message__more-btn {
  display: none;
}
.kuuki-message__more {
  display: contents;
}
.kuuki-message__lead {
  font-family: var(--font-ja);
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 500;
  line-height: 1.95;
  letter-spacing: 0.1em;
  color: #596673;
  background: rgba(255, 255, 255, 0.9);
  padding: 8px 16px;
  margin-right: calc((min(1320px, 92vw) - 100vw) / 2);
  padding-right: calc((100vw - min(1320px, 92vw)) / 2 + 16px);
}
.kuuki-message__main {
  font-family: var(--font-ja);
  font-size: clamp(24px, 2.6vw, 38px);
  font-weight: 900;
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: var(--k-dark);
  background: rgba(255, 255, 255, 0.9);
  padding: 10px 18px;
  margin-right: calc((min(1320px, 92vw) - 100vw) / 2);
  padding-right: calc((100vw - min(1320px, 92vw)) / 2 + 18px);
}
.kuuki-message__last {
  font-family: var(--font-ja);
  font-size: clamp(17px, 1.5vw, 22px);
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.08em;
  color: var(--k-dark);
  padding: 8px 16px 8px 18px;
  border-left: 2px solid var(--k-blue);
  background: rgba(255, 255, 255, 0.9);
  margin-right: calc((min(1320px, 92vw) - 100vw) / 2);
  padding-right: calc((100vw - min(1320px, 92vw)) / 2 + 16px);
}

@media (max-width: 768px) {
  .kuuki-message {
    padding: 64px 0 80px;
  }
  .kuuki-message__inner {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
  .kuuki-message__left {
    padding-top: 0;
  }
  .kuuki-message__heading {
    inset: -30px 0 0 0;
    align-items: center;
    text-align: center;
  }
  .kuuki-message__heading-en {
    font-size: clamp(76px, 23.4vw, 115px);
    font-style: normal;
    word-spacing: normal;
    transform: skewX(-10deg);
  }
  .kuuki-message__heading-en > span {
    display: block;
  }
  .kuuki-message__heading-ja {
    font-size: 13px;
    letter-spacing: 0.24em;
  }
  .kuuki-message__photo {
    max-width: 360px;
    margin: 0 auto;
  }
  .kuuki-message__names {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    margin-inline: auto;
    max-width: 360px;
    column-gap: 16px;
  }
  .kuuki-message__name-role,
  .kuuki-message__name-person {
    color: #ffffff;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.55), 0 0 2px rgba(0, 0, 0, 0.45);
  }
  .kuuki-message__main,
  .kuuki-message__lead,
  .kuuki-message__last {
    margin-inline: calc(50% - 50vw);
    padding-inline: 20px;
  }
  .kuuki-message__more {
    margin-inline: calc(50% - 50vw);
  }
  .kuuki-message__more .kuuki-message__lead {
    margin-inline: 0;
  }
  .kuuki-message__main {
    font-size: 22px;
    line-height: 1.53;
  }
  .kuuki-message__lead {
    line-height: 1.755;
  }
  .kuuki-message__last {
    font-size: 16px;
    line-height: 1.71;
    padding-left: 20px;
  }
  .kuuki-message__deco--1 {
    width: 50%;
    height: 50%;
  }
  .kuuki-message__deco--4 {
    width: 50%;
    height: 50%;
  }
  .kuuki-message__deco--2 {
    display: none;
  }
  .kuuki-message__more {
    display: block;
    position: relative;
    max-height: 70px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%);
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
    margin-top: clamp(15.2px, 1.6vw, 23.2px);
  }
  .kuuki-message__more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: -26px;
    padding: 16px 32px;
    background: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    font-family: var(--font-ja);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #3C3C43;
    cursor: pointer;
    align-self: center;
    min-width: 200px;
  }
  .kuuki-message__more-btn:hover,
  .kuuki-message__more-btn:focus-visible {
    background: #f7f9fb;
  }
  .kuuki-message__more-icon {
    display: inline-flex;
    width: 16px;
    height: 16px;
  }
  .kuuki-message__text.is-expanded .kuuki-message__more {
    max-height: none;
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
    pointer-events: auto;
    margin-top: 0;
  }
  .kuuki-message__text.is-expanded .kuuki-message__more-btn {
    display: none;
  }
}

@supports (-webkit-touch-callout: none) {
  @media (max-width: 768px) {
    .kuuki-message__heading-en {
      font-size: clamp(67px, 18vw, 127px) !important;
    }
  }

  @media (max-width: 480px) {
    .kuuki-message__heading-en {
      font-size: clamp(54px, 14.58vw, 103px) !important;
    }
  }
}

.kuuki-benefit {
  position: relative;
  background: var(--k-white);
  padding: clamp(80px, 10vw, 160px) 0 clamp(80px, 9vw, 140px);
  overflow: hidden;
}

.kuuki-benefit__deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.kuuki-benefit__deco--1 {
  right: 0;
  bottom: 0;
  width: 50%;
  height: 50%;
  background: #2D5A82;
  clip-path: polygon(100% 100%, 0 100%, 100% 0);
}
.kuuki-benefit__deco--4 {
  left: 0;
  top: 0;
  width: 50%;
  height: 50%;
  background: #2D5A82;
  clip-path: polygon(100% 100%, 0 100%, 100% 0);
  transform: scale(-1, -1);
}

.kuuki-benefit__inner {
  position: relative;
  width: min(1320px, 92%);
  margin: 0 auto;
}

.kuuki-benefit__heading {
  font-family: var(--font-ja);
  font-size: clamp(24px, 2.6vw, 38px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--k-dark);
  text-align: center;
  margin: 0;
  transform: translateX(clamp(0px, (1900px - 100vw) * 0.5, 200px));
}

.kuuki-benefit__heading-accent {
  width: 110px;
  height: 1px;
  background: linear-gradient(to right,
    #A8D8E8 0%, #A8D8E8 38%,
    transparent 38%, transparent 62%,
    #A8D8E8 62%, #A8D8E8 100%);
  margin: 24px auto 0;
  position: relative;
  transform: translateX(clamp(0px, (1900px - 100vw) * 0.5, 200px));
}
.kuuki-benefit__heading-accent::after {
  content: "";
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 8px;
  background: #A8D8E8;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.kuuki-benefit__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: clamp(24px, 3vw, 48px);
  row-gap: 40px;
  margin-top: clamp(48px, 6vw, 88px);
}

.kuuki-benefit__card {
  background: #ffffff;
  padding: clamp(32px, 3.2vw, 52px) clamp(22px, 2.4vw, 36px);
  border: 1px solid #e5ebf2;
  border-radius: 14px;
  box-shadow: 0 4px 24px rgba(10, 22, 40, 0.05);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.kuuki-benefit__icon {
  width: clamp(60px, 5.4vw, 84px);
  height: clamp(60px, 5.4vw, 84px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--k-dark);
  margin-bottom: 24px;
}

.kuuki-benefit__icon svg {
  width: 100%;
  height: 100%;
}

.kuuki-benefit__logo-mark {
  height: clamp(60px, 5.4vw, 84px);
  width: auto;
  margin-bottom: 24px;
  display: block;
  object-fit: contain;
}

.kuuki-benefit__subhead {
  font-family: var(--font-ja);
  font-size: clamp(17px, 1.5vw, 22px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--k-dark);
  margin: 0 0 32px;
  position: relative;
  padding-bottom: 24px;
}
.kuuki-benefit__subhead.has-accent::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  width: 110px;
  height: 1px;
  background: linear-gradient(to right,
    #A8D8E8 0%, #A8D8E8 38%,
    transparent 38%, transparent 62%,
    #A8D8E8 62%, #A8D8E8 100%);
}
.kuuki-benefit__subhead.has-accent::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 9px;
  transform: translateX(-50%);
  width: 12px;
  height: 7px;
  background: #A8D8E8;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  z-index: 1;
}

.kuuki-benefit__body {
  font-family: var(--font-ja);
  font-size: clamp(14px, 1vw, 16px);
  font-weight: 500;
  line-height: 1.95;
  letter-spacing: 0.06em;
  color: #596673;
  margin: 0;
  text-align: left;
}
.kuuki-benefit__body strong {
  font-weight: 700;
  color: var(--k-dark);
}

@media (max-width: 768px) {
  .kuuki-benefit {
    padding: 64px 0 72px;
  }
  .kuuki-benefit__heading {
    font-size: clamp(22px, 6vw, 32px);
    margin: 0 0 32px auto;
    width: 50%;
    transform: none;
  }
  .kuuki-benefit__heading-accent {
    margin-left: calc(75% - 55px);
    margin-right: 0;
    transform: none;
  }
  .kuuki-benefit__grid {
    grid-template-columns: 1fr;
    row-gap: 20px;
  }
  .kuuki-benefit__card {
    padding: 28px 22px;
  }
  .kuuki-benefit__body {
    text-align: left;
    line-height: 1.755;
  }
  .kuuki-benefit__deco--1 {
    width: 50%;
    height: 50%;
  }
  .kuuki-benefit__deco--4 {
    width: 50%;
    height: 50%;
  }
}

.kuuki-team {
  position: relative;
  padding: clamp(72px, 8vw, 120px) 28px;
  text-align: center;
  overflow: hidden;
  background: url('images/numbers-bg.jpg') center center / cover no-repeat;
}
.kuuki-team::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(8, 18, 32, 0.60);
  z-index: 1;
}
.kuuki-team__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
}

.kuuki-team__heading {
  font-family: var(--font-ja);
  font-size: clamp(24px, 2.6vw, 38px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #ffffff;
  text-align: center;
  margin: 0;
}

.kuuki-team__heading-accent {
  width: 110px;
  height: 1px;
  background: linear-gradient(to right,
    #A8D8E8 0%, #A8D8E8 38%,
    transparent 38%, transparent 62%,
    #A8D8E8 62%, #A8D8E8 100%);
  margin: 24px auto clamp(40px, 5vw, 64px);
  position: relative;
}
.kuuki-team__heading-accent::after {
  content: "";
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 8px;
  background: #A8D8E8;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.kuuki-team__marquee {
  position: relative;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 80px, #000 calc(100% - 80px), transparent 100%);
}
.kuuki-team__marquee-track {
  display: flex;
  gap: 22px;
  width: max-content;
  animation: kuuki-team-marquee-scroll 55s steps(1650, jump-none) infinite;
  will-change: transform;
}
.kuuki-team__marquee:hover .kuuki-team__marquee-track,
.kuuki-team__marquee-track.is-paused {
  animation-play-state: paused;
}
@keyframes kuuki-team-marquee-scroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(calc(-50% - 11px), 0, 0); }
}
.kuuki-team__marquee-item {
  position: relative;
  flex: 0 0 auto;
  width: 480px;
  height: 270px;
  border: 0;
  padding: 0;
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  background: #000;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
  transition: transform 0.3s ease;
}
.kuuki-team__marquee-item:hover {
  transform: translateY(-4px);
}
.kuuki-team__marquee-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.kuuki-team__marquee-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: transparent;
  border: 2px solid #00B4D8;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  transition: all 0.3s ease;
  z-index: 2;
  pointer-events: none;
}
.kuuki-team__marquee-play::after {
  content: '';
  width: 0;
  height: 0;
  border-left: 12px solid #00B4D8;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  margin-left: 3px;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5));
  transition: border-left-color 0.3s ease;
}
.kuuki-team__marquee-item:hover .kuuki-team__marquee-play {
  background: var(--k-orange);
  border-color: var(--k-orange);
  box-shadow: 0 6px 18px rgba(255, 107, 53, 0.55);
  transform: translate(-50%, -50%) scale(1.1);
}
.kuuki-team__marquee-item:hover .kuuki-team__marquee-play::after {
  border-left-color: #fff;
}
.kuuki-team__marquee-name {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 32px 16px 12px;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.78) 100%);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 600;
  text-align: left;
  letter-spacing: 0.04em;
}
.kuuki-team__marquee-item.is-playing .kuuki-team__marquee-play,
.kuuki-team__marquee-item.is-playing .kuuki-team__marquee-name {
  display: none;
}

@media (max-width: 768px) {
  .kuuki-team {
    padding: 56px 16px 64px;
  }
  .kuuki-team__marquee-item {
    width: 320px;
    height: 180px;
  }
  .kuuki-team__marquee-track {
    animation-duration: 42s;
    gap: 16px;
  }
  @keyframes kuuki-team-marquee-scroll {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(calc(-50% - 8px), 0, 0); }
  }
}

.kuuki-numschedule {
  position: relative;
  background: var(--k-bg);
  overflow: hidden;
}
.kuuki-numschedule__navy {
  position: absolute;
  inset: 0;
  background: #2D5A82;
  clip-path: polygon(100% 25%, 100% 100%, 0 100%, 0 75%);
  z-index: 1;
  pointer-events: none;
}
.kuuki-numschedule__deco {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.kuuki-numschedule__deco--tl {
  left: 0;
  top: 0;
  width: 50%;
  height: clamp(180px, 25vw, 400px);
  background: #2D5A82;
  clip-path: polygon(100% 100%, 0 100%, 100% 0);
  transform: scale(-1, -1);
}

.kuuki-numbers__inner {
  position: relative;
  z-index: 2;
  width: min(1320px, 92%);
  margin: 0 auto;
  padding: clamp(80px, 10vw, 140px) 0 clamp(80px, 9vw, 120px);
}
.kuuki-numbers__inner::before {
  content: 'KUUKI DATA';
  font-family: var(--font-en);
  font-size: 22vw;
  font-weight: 700;
  color: rgba(0, 180, 216, 0.16);
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  line-height: 1;
  white-space: nowrap;
  user-select: none;
  z-index: -1;
}

.kuuki-numbers__heading {
  font-family: var(--font-ja);
  font-size: clamp(24px, 2.6vw, 38px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--k-dark);
  text-align: center;
  margin: 0;
}

.kuuki-numbers__heading-accent {
  width: 110px;
  height: 1px;
  background: linear-gradient(to right,
    #A8D8E8 0%, #A8D8E8 38%,
    transparent 38%, transparent 62%,
    #A8D8E8 62%, #A8D8E8 100%);
  margin: 24px auto clamp(48px, 6vw, 80px);
  position: relative;
}
.kuuki-numbers__heading-accent::after {
  content: "";
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 8px;
  background: #A8D8E8;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.kuuki-numbers__rows {
  position: relative;
}
.kuuki-numbers__row {
  display: grid;
  gap: 14px;
  margin-bottom: 14px;
}
.kuuki-numbers__row--3 {
  grid-template-columns: repeat(3, 1fr);
}
.kuuki-numbers__row--4 {
  grid-template-columns: repeat(4, 1fr);
}

.kuuki-numbers__card {
  background: var(--k-white);
  border-radius: 10px;
  padding: 36px 20px 28px;
  text-align: center;
  border: 1px solid #e5ebf2;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s;
}
.kuuki-numbers__card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--k-blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
}
.kuuki-numbers__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 44px rgba(0, 120, 168, 0.11);
  border-color: transparent;
}
.kuuki-numbers__card:hover::before {
  transform: scaleX(1);
}

.kuuki-numbers__card-icon {
  font-size: 1.6rem;
  margin-bottom: 14px;
  display: block;
}
.kuuki-numbers__card-icon svg{width:50px;height:50px;display:block;margin:0 auto;}
.kuuki-numbers__card-value {
  font-family: var(--font-en);
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--k-dark-2);
  line-height: 1;
  letter-spacing: -0.03em;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
}
.kuuki-numbers__card-value small {
  font-family: var(--font-ja);
  font-size: 1rem;
  font-weight: 500;
  color: #596673;
}
.kuuki-numbers__card-label {
  font-size: 0.78rem;
  color: #596673;
  margin-top: 10px;
  font-weight: 500;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .kuuki-numbers__inner {
    padding: 64px 0 56px;
  }
  .kuuki-numbers__row--3,
  .kuuki-numbers__row--4 {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .kuuki-numbers__row--3 .kuuki-numbers__card:first-child {
    grid-column: 1 / -1;
  }
  .kuuki-numbers__card {
    padding: 24px 14px 20px;
  }
  .kuuki-numbers__card-value {
    font-size: 2.2rem;
  }
  .kuuki-numbers__inner::before {
    font-size: 28vw;
  }
  .kuuki-numbers__heading {
    width: 50%;
    margin-left: auto;
    margin-right: 0;
  }
  .kuuki-numbers__heading-accent {
    margin-left: calc(75% - 55px);
    margin-right: 0;
  }
}

.kuuki-schedule__inner {
  position: relative;
  z-index: 2;
  width: min(1320px, 92%);
  margin: 0 auto;
  padding: 0 0 clamp(80px, 9vw, 120px);
}

.kuuki-schedule__heading {
  font-family: var(--font-ja);
  font-size: clamp(24px, 2.6vw, 38px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #ffffff;
  text-align: center;
  margin: 0;
  background: #2D5A82;
  width: fit-content;
  margin-inline: auto;
  padding-block: clamp(5px, 0.59vw, 8px);
  padding-inline: 0.6em;
}
.kuuki-schedule__heading-accent {
  width: 110px;
  height: 1px;
  background: linear-gradient(to right,
    #A8D8E8 0%, #A8D8E8 38%,
    transparent 38%, transparent 62%,
    #A8D8E8 62%, #A8D8E8 100%);
  margin: 24px auto clamp(48px, 6vw, 80px);
  position: relative;
}
.kuuki-schedule__heading-accent::after {
  content: "";
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 8px;
  background: #A8D8E8;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.kuuki-schedule__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}

.kuuki-schedule__col {
  background: var(--k-white);
  border-radius: 12px;
  border: 1px solid #e5ebf2;
  overflow: hidden;
}

.kuuki-schedule__col-header {
  position: relative;
  height: 200px;
  overflow: hidden;
}
.kuuki-schedule__col-header img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kuuki-schedule__col-header::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 22, 40, 0.72) 0%, rgba(10, 22, 40, 0.2) 60%, transparent 100%);
}
.kuuki-schedule__col-header-text {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 20px 24px;
  z-index: 2;
}
.kuuki-schedule__col-type {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--k-blue);
  color: #fff;
  padding: 3px 10px;
  border-radius: 4px;
  margin-bottom: 8px;
}
.kuuki-schedule__col-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.45;
  margin-bottom: 4px;
}
.kuuki-schedule__col-desc {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.6;
}

.kuuki-schedule__timeline {
  padding: 24px 24px 20px;
}
.kuuki-schedule__item {
  display: flex;
  gap: 0;
  position: relative;
}
.kuuki-schedule__item:not(:last-child) .kuuki-schedule__line::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 28px;
  bottom: -4px;
  width: 2px;
  background: #e5ebf2;
  transform: translateX(-50%);
}
.kuuki-schedule__time-col {
  width: 58px;
  flex-shrink: 0;
  padding-top: 3px;
  text-align: right;
  padding-right: 12px;
}
.kuuki-schedule__time {
  font-family: var(--font-en);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--k-dark-2);
  white-space: nowrap;
  line-height: 1.8;
}
.kuuki-schedule__line {
  width: 20px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding-top: 6px;
}
.kuuki-schedule__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--k-blue);
  border: 2px solid var(--k-white);
  box-shadow: 0 0 0 2px var(--k-blue);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.kuuki-schedule__content {
  flex: 1;
  padding: 0 0 20px 12px;
}
.kuuki-schedule__label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--k-dark);
  margin-bottom: 2px;
  line-height: 1.5;
}
.kuuki-schedule__text {
  font-size: 0.76rem;
  color: #596673;
  line-height: 1.75;
}
.kuuki-schedule__highlight-num {
  font-family: var(--font-en);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--k-dark-2);
}

@media (max-width: 768px) {
  .kuuki-schedule__inner {
    padding: 0 0 56px;
  }
  .kuuki-schedule__cols {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .kuuki-schedule__heading {
    width: 50%;
    margin-left: 0;
    margin-right: auto;
    color: var(--k-dark);
    background: none;
    padding-block: 0;
    padding-inline: 0;
  }
  .kuuki-schedule__heading-accent {
    margin-left: calc(25% - 55px);
    margin-right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kuuki-hero__strip--up,
  .kuuki-hero__strip--down {
    animation: none;
  }
  .kuuki-hero__title {
    animation: none;
  }
  .kuuki-team__marquee-track {
    animation: none;
  }
}

.kuuki-intern{font-family:"Noto Sans JP",sans-serif;color:#3a4654;line-height:1.85}
.en{font-family:"Oswald",sans-serif;font-style:italic;font-weight:700;letter-spacing:.02em}
.kuuki-intern__inner{max-width:1080px;margin:0 auto;padding:0 28px}
.kuuki-intern img{display:block;max-width:100%}

.kuuki-intern--intro{position:relative;background:#f4f7f9;padding:clamp(64px,9vw,120px) 0 clamp(60px,8vw,100px)}
.kuuki-intern--intro::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:121px;background:#2D5A82;clip-path:polygon(0 0,100% 0,100% 0,0 100%)}
.in-head{position:relative;text-align:center;margin-bottom:clamp(46px,6vw,72px)}
.in-head__label{font-size:13px;font-weight:700;letter-spacing:.3em;color:#2D5A82}
.in-head__en{font-size:clamp(48px,10vw,104px);line-height:1;color:#2D5A82;margin:6px 0 14px}
.in-head__sub{font-size:clamp(15px,2.4vw,18px);font-weight:500;color:#4a5663}
.kuuki-team .in-head__label,.kuuki-team .in-head__en,.kuuki-team .in-head__sub{color:#fff}
.kuuki-schedule__inner .in-head__label,.kuuki-schedule__inner .in-head__en,.kuuki-schedule__inner .in-head__sub{color:#fff}
.kuuki-benefit .in-head,.kuuki-schedule__inner .in-head{transform:translateX(clamp(0px,(1900px - 100vw) * 0.5,200px))}
@media(max-width:768px){.kuuki-benefit .in-head{transform:none;width:50%;margin-left:auto;text-align:center}.kuuki-schedule__inner .in-head{transform:none;text-align:left}.kuuki-schedule__inner .in-head__label,.kuuki-schedule__inner .in-head__en,.kuuki-schedule__inner .in-head__sub{color:#2D5A82}.kuuki-numschedule__navy{transform:translateX(1.25rem)}.kuuki-intern--intro::before{display:none}}

.kuuki-intern .plans__title{text-align:center;margin-bottom:clamp(30px,4vw,44px)}
.kuuki-intern .plans__title .en{display:block;font-size:clamp(16px,2.6vw,20px);color:#5BA4D0}
.kuuki-intern .plans__title b{display:inline-block;margin-top:8px;font-size:clamp(19px,3vw,24px);color:#1f2b38;position:relative;padding-bottom:10px}
.kuuki-intern .plans__title b::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:42px;height:3px;background:#2D5A82;border-radius:2px}

.kuuki-intern .plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:stretch}
.kuuki-intern .plan{background:#fff;border:1px solid #dbe4ea;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 14px 36px rgba(45,90,130,.08)}
.kuuki-intern .plan__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;color:#fff}
.kuuki-intern .plan--short .plan__head{background:linear-gradient(135deg,#5BA4D0,#7bb8da)}
.kuuki-intern .plan--long .plan__head{background:linear-gradient(135deg,#2D5A82,#1d3e5c)}
.kuuki-intern .plan__head-l{display:flex;flex-direction:column;line-height:1.3}
.kuuki-intern .plan__en{font-size:11px;letter-spacing:.16em;opacity:.9}
.kuuki-intern .plan__name{font-size:clamp(19px,2.8vw,23px);font-weight:900}
.kuuki-intern .plan__fee{flex:0 0 auto;font-size:13px;font-weight:700;background:rgba(255,255,255,.22);padding:7px 15px;border-radius:22px;white-space:nowrap}
.kuuki-intern .plan--short .plan__fee{background:#2D5A82}
.kuuki-intern .plan--long .plan__fee{background:#5BA4D0}
.kuuki-intern .plan__body{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column}
.kuuki-intern .plan__catch{font-size:clamp(16px,2.4vw,19px);font-weight:700;color:#1f2b38;margin-bottom:16px}
.kuuki-intern .spec{list-style:none;margin:0 0 20px}
.kuuki-intern .spec li{display:flex;gap:14px;padding:11px 0;border-bottom:1px dashed #dbe4ea;font-size:14.5px}
.kuuki-intern .spec li:last-child{border-bottom:none}
.kuuki-intern .spec__k{flex:0 0 64px;font-weight:700;color:#2D5A82;font-size:13px;padding-top:1px}
.kuuki-intern .spec__v{flex:1;color:#4a5663}
.kuuki-intern .spec__v b{color:#1f2b38}
.kuuki-intern .plan__photos{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kuuki-intern .plan__photos img{width:100%;height:120px;object-fit:cover;border-radius:8px}
.kuuki-intern .plan__note{font-size:11px;color:#9aa6b1;margin-top:8px}

.kuuki-intern--flow{position:relative;overflow:hidden;padding:clamp(60px,8vw,104px) 0;background:#fff}
.kuuki-intern--flow::before{content:"INTERNSHIP";font-family:var(--font-en);font-size:22vw;font-weight:700;color:rgba(0,180,216,.16);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;line-height:1;white-space:nowrap;user-select:none;z-index:0}
.kuuki-intern .flow__wrap{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr;gap:clamp(34px,5vw,64px);align-items:start}
.kuuki-intern .flow__en{font-size:clamp(46px,8vw,86px);line-height:1;color:#2D5A82}
.kuuki-intern .flow__ja{font-size:clamp(16px,2.2vw,19px);font-weight:700;color:#1f2b38;margin:10px 0 24px}
.kuuki-intern .flow__photo{width:100%;height:200px;object-fit:cover;border-radius:12px;box-shadow:0 12px 30px rgba(45,90,130,.16)}
.kuuki-intern .steps{position:relative;padding-left:6px}
.kuuki-intern .steps::before{content:"";position:absolute;left:25px;top:18px;bottom:18px;width:2px;background:repeating-linear-gradient(#5BA4D0 0 6px,transparent 6px 12px)}
.kuuki-intern .step{position:relative;display:flex;gap:22px;padding:0 0 28px}
.kuuki-intern .step:last-child{padding-bottom:0}
.kuuki-intern .step__num{flex:0 0 52px;height:52px;border-radius:50%;background:#2D5A82;color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Oswald";font-style:italic;font-weight:700;font-size:24px;z-index:1;box-shadow:0 6px 16px rgba(45,90,130,.28)}
.kuuki-intern .step--last .step__num{background:#5BA4D0}
.kuuki-intern .step__body{flex:1;padding-top:4px;display:flex;gap:16px;align-items:flex-start}
.kuuki-intern .step__txt{flex:1}
.kuuki-intern .step__title{font-size:clamp(16px,2.4vw,19px);font-weight:700;color:#1f2b38;margin-bottom:5px}
.kuuki-intern .step__text{font-size:14px;color:#5a6876}

.kuuki-intern--entry{position:relative;background:linear-gradient(160deg,#2D5A82 0%,#1d3e5c 100%);color:#fff;padding:clamp(60px,8vw,104px) 0;overflow:hidden}
.kuuki-intern .apply__bg{position:absolute;left:-2%;bottom:-4%;font-family:"Oswald";font-style:italic;font-weight:700;font-size:clamp(120px,26vw,320px);color:rgba(255,255,255,.05);line-height:.8;pointer-events:none;z-index:0}
.kuuki-intern .apply__wrap{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr;gap:clamp(34px,5vw,60px);align-items:start}
.kuuki-intern .apply__en{font-size:clamp(46px,8vw,86px);line-height:1;color:#fff}
.kuuki-intern .apply__ja{font-size:clamp(16px,2.2vw,19px);font-weight:700;margin:10px 0 30px}
.kuuki-intern .benefits{list-style:none}
.kuuki-intern .benefits li{display:flex;gap:14px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.16)}
.kuuki-intern .benefits li:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.kuuki-intern .benefits__ic{flex:0 0 42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:20px}
.kuuki-intern .benefits__ic svg{width:24px;height:24px;display:block}
.kuuki-intern .benefits__t{display:flex;flex-direction:column;line-height:1.5}
.kuuki-intern .benefits__t b{font-size:14.5px;font-weight:700}
.kuuki-intern .benefits__t span{font-size:12px;color:#A8D8E8}

.kuuki-intern .apply__left{grid-column:1;grid-row:1}
.kuuki-intern .apply__right{grid-column:2;grid-row:1 / span 2}
.kuuki-intern .apply__footer{grid-column:1;grid-row:2;align-self:start;color:#fff}
.kuuki-intern .apply__footer-brand{display:flex;flex-direction:row;align-items:center;gap:18px}
.kuuki-intern .apply__footer-brand img{height:44px;width:auto;background:#fff;padding:7px 11px;border-radius:8px}
.kuuki-intern .apply__sns{display:flex;gap:10px}
.kuuki-intern .apply__sns a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-family:"Oswald";font-weight:700;font-size:14px;color:#fff;text-decoration:none;transition:background .2s,border-color .2s}
.kuuki-intern .apply__sns a:hover{background:#5BA4D0;border-color:#5BA4D0}
.kuuki-intern .apply__offices{margin-top:22px;display:flex;flex-direction:column;gap:15px}
.kuuki-intern .apply__office h3{font-size:12.5px;font-weight:700;color:#A8D8E8;letter-spacing:.04em;margin-bottom:5px}
.kuuki-intern .apply__office p{font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.82)}
.kuuki-intern .apply__office .tel{display:inline-block;margin-top:2px;font-weight:500;color:#fff;text-decoration:none}
.kuuki-intern .apply__copy{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);font-size:11px;color:rgba(255,255,255,.6);letter-spacing:.04em}

.kuuki-intern .form{background:#fff;color:#3a4654;border-radius:14px;padding:clamp(24px,4vw,40px);box-shadow:0 24px 60px rgba(0,0,0,.28)}
.kuuki-intern .field{margin-bottom:20px}
.kuuki-intern .field__label{display:block;font-size:13.5px;font-weight:700;color:#1f2b38;margin-bottom:9px}
.kuuki-intern .req{font-size:11px;color:#fff;background:#e0584f;padding:2px 7px;border-radius:3px;margin-left:8px;vertical-align:2px}
.kuuki-intern .opt{font-size:11px;color:#8a97a3;background:#eef1f4;padding:2px 7px;border-radius:3px;margin-left:8px;vertical-align:2px}
.kuuki-intern .pick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.kuuki-intern .pick{cursor:pointer}
.kuuki-intern .pick input{position:absolute;opacity:0}
.kuuki-intern .pick__box{display:flex;align-items:center;justify-content:center;text-align:center;border:1.5px solid #dbe4ea;border-radius:9px;padding:13px 6px;font-size:13px;font-weight:700;color:#1f2b38;height:100%;transition:.15s}
.kuuki-intern .pick input:checked + .pick__box{border-color:#2D5A82;background:#f0f7fb;box-shadow:0 0 0 2px rgba(91,164,208,.3)}
.kuuki-intern input[type=text],.kuuki-intern input[type=email],.kuuki-intern input[type=tel],.kuuki-intern select,.kuuki-intern textarea{width:100%;font-family:inherit;font-size:16px;color:#3a4654;border:1.5px solid #dbe4ea;border-radius:9px;padding:12px 14px;background:#fafcfd}
.kuuki-intern input:focus,.kuuki-intern select:focus,.kuuki-intern textarea:focus{outline:none;border-color:#5BA4D0;background:#fff}
.kuuki-intern textarea{resize:vertical;min-height:84px}
.kuuki-intern .submit{width:100%;margin-top:6px;border:none;cursor:pointer;background:#2D5A82;color:#fff;font-family:"Oswald";font-style:normal;font-weight:700;font-size:19px;letter-spacing:.05em;padding:17px;border-radius:10px;transition:.15s;display:flex;align-items:center;justify-content:center;gap:10px}
.kuuki-intern .submit:hover{background:#5BA4D0}
.kuuki-intern .form-error-box{display:none;background:#fdecea;border:1px solid #f0b4ae;color:#b3261e;border-radius:9px;padding:14px 16px;margin-bottom:18px;font-size:13.5px}
.kuuki-intern .form-error-box strong{display:block;margin-bottom:6px;font-size:14px}
.kuuki-intern .form-error-box ul{margin:0;padding-left:18px}
.kuuki-intern .form-error-box li{margin:2px 0}
.kuuki-intern .form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.br-sp{display:none}

@media(max-width:820px){
  .kuuki-intern .flow__wrap,.kuuki-intern .apply__wrap{grid-template-columns:1fr;gap:30px}
  .kuuki-intern .apply__left,.kuuki-intern .apply__right,.kuuki-intern .apply__footer{grid-column:1;grid-row:auto}
  .kuuki-intern .apply__footer{margin-top:8px}
  .kuuki-intern .flow__left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
  .kuuki-intern .flow__photo{height:160px;flex:1;min-width:200px}
  .kuuki-intern .flow__ja{margin-bottom:0}
}
@media(max-width:620px){
  .kuuki-intern .plan-grid{grid-template-columns:1fr}
  .kuuki-intern .pick-grid{grid-template-columns:1fr 1fr}
  .kuuki-intern .step__body{flex-direction:column}
  .kuuki-intern--flow::before{font-size:28vw}
}

@media (max-width: 768px) {
  .kuuki-message { padding: 64px 0 40px; }
  .kuuki-benefit { padding: 32px 0 36px; }
  .kuuki-team { padding: 28px 16px 32px; }
  .kuuki-numbers__inner { padding: 32px 0 28px; }
  .kuuki-schedule__inner { padding: 0 0 28px; }
  .kuuki-intern--intro { padding: 32px 0 30px; }
  .kuuki-intern--flow { padding: 30px 0; }
  .kuuki-intern--entry { padding: 30px 0; }
  .in-head { margin-bottom: 26px; }
  .kuuki-benefit__grid { margin-top: 26px; }
  .kuuki-intern .apply__en, .kuuki-intern .apply__ja { text-align: center; }
  .br-sp { display: inline; }
  .br-sp + .req { margin-left: 0; }
}
