:root {
  --ink: #303033;
  --orange: #f17922;
  --green: #74aa24;
  --blue: #2487b5;
  --yellow: #f6d737;
  --cream: #fffbe7;
  --line: #383838;
  --max: 1120px;
  --header-height: 82px;
}

/* V8 final cascade overrides */
.hero-lead{max-width:none!important;width:100%!important;background:#fff!important;}
.section-about{isolation:isolate;margin-top:0!important;padding-top:0!important;}
.section-about::before{left:50%!important;top:-122px!important;width:142%!important;height:196px!important;transform:translateX(-50%)!important;border-radius:0 0 50% 50%/0 0 100% 100%!important;background:#fff!important;z-index:1!important;}
.section-about .edge-clouds{top:-92px!important;}
@media (min-width:768px){
  .edge-clouds-about .edge-cloud-left{width:min(458px,42vw)!important}.edge-clouds-about .edge-cloud-right{width:min(467px,42vw)!important}
  .edge-clouds-work .edge-cloud-left{width:min(525px,45vw)!important}.edge-clouds-work .edge-cloud-right{width:min(479px,42vw)!important}
  .edge-clouds-welfare .edge-cloud-left{width:min(644px,48vw)!important}.edge-clouds-welfare .edge-cloud-right{width:min(479px,42vw)!important}
  .edge-clouds-training .edge-cloud-left{width:min(545px,46vw)!important}.edge-clouds-training .edge-cloud-right{width:min(479px,42vw)!important}
  .edge-clouds-entry .edge-cloud-left{width:min(256px,25vw)!important}.edge-clouds-entry .edge-cloud-right{width:min(479px,42vw)!important}
}
@media (max-width:767px){
  .section-about{margin-top:0!important;padding-top:0!important}
  .section-about::before{top:-52px!important;width:170%!important;height:92px!important}
  .section-about .edge-clouds{top:-38px!important}
}

/* V10 final cascade overrides */
@media (min-width:768px){
  .site-header{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}
  .desktop-nav{flex:0 1 860px!important;margin-left:auto!important}
}
.section-about{isolation:auto!important;overflow:visible!important}
.section-about .edge-clouds{top:-108px!important;z-index:30!important;overflow:visible!important}
.section-about .edge-cloud{z-index:31!important}
@media (max-width:767px){.section-about .edge-clouds{top:-48px!important}}

/* V11 final cascade overrides */
body{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
.section-en{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif!important;font-weight:700!important;letter-spacing:.13em}
.section-heading h2,.work-card-copy .number,.work-card-copy h3{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-weight:700}
.heading-accent-about{color:#006a43}
.section-work .section-heading h2,.section-work .work-card-copy h3{color:#823647!important}
.work-card-copy .number{border-bottom-color:#cba36e!important}
.section-work .work-card:first-child{position:relative;overflow:visible!important}
.work-fujin{position:absolute;z-index:20;top:-112px;right:-42px;width:118px;height:auto}
@media (max-width:767px){.work-fujin{top:-70px;right:-8px;width:78px}}

/* V12 final cascade overrides */
.work-raijin{position:absolute;z-index:20;top:-112px;right:-42px;width:118px;height:auto}
@media (min-width:768px){
  .edge-clouds .edge-cloud-left{width:458px!important;max-width:none!important}
  .edge-clouds .edge-cloud-right{width:467px!important;max-width:none!important}
}
@media (min-width:768px) and (max-width:1100px){
  .section-about .edge-clouds{top:-76px!important}
}
@media (max-width:767px){
  .edge-clouds .edge-cloud-left,.edge-clouds .edge-cloud-right{width:54%!important;max-width:none!important}
  .section-about .edge-clouds{top:-34px!important}
  .work-raijin{top:-70px;right:-8px;width:78px}
}

/* V13 final cascade overrides */
.section-questionnaire{
  position:relative;
  overflow:visible!important;
  border-radius:0!important;
}
.section-questionnaire::before{
  content:"";
  position:absolute;
  left:50%;
  top:-112px!important;
  width:142%!important;
  height:154px!important;
  transform:translateX(-50%);
  border-radius:50% 50% 0 0/100% 100% 0 0!important;
  background:#ffe142 url('assets/final/bg-questionnaire.png') center top/100% auto repeat!important;
  z-index:1!important;
  pointer-events:none;
}
.section-questionnaire>.questionnaire-boundary-character{
  position:absolute!important;
  left:calc(50% - 58px)!important;
  top:-168px!important;
  width:116px!important;
  height:auto;
  z-index:12!important;
}
.section-questionnaire>.section-inner{
  position:relative;
  z-index:2;
  padding-top:104px!important;
}
@media (max-width:767px){
  .section-questionnaire::before{top:-48px!important;width:175%!important;height:72px!important}
  .section-questionnaire>.questionnaire-boundary-character{left:calc(50% - 39px)!important;top:-88px!important;width:78px!important}
  .section-questionnaire>.section-inner{padding-top:72px!important}
}

/* V14 final cascade overrides */
.section-questionnaire::before{
  background-size:70.422535% auto!important;
  background-position:center 112px!important;
}
.section-questionnaire>.section-inner{padding-top:38px!important}
@media (max-width:767px){
  .section-questionnaire::before{background-size:57.142857% auto!important;background-position:center 48px!important}
  .section-questionnaire>.section-inner{padding-top:34px!important}
}

/* V15 final cascade overrides — restore the supplied SP questionnaire layout */
@media (max-width:767px){
  .section-questionnaire>.section-inner.wide{
    width:min(calc(100% - 76px),383px)!important;
    padding-top:34px!important;
    padding-bottom:54px!important;
  }
  .section-questionnaire .section-heading{margin-bottom:36px!important}
  .section-questionnaire .section-heading h2{
    width:min(276px,100%)!important;
    margin-inline:auto!important;
    color:#e66f2c!important;
    font-size:14px!important;
  }
  .section-questionnaire .survey-card{
    width:100%!important;
    min-height:220px!important;
    margin:0 auto 24px!important;
    padding:34px 12px 22px!important;
    overflow:visible!important;
    background-size:100% 100%!important;
  }
  .section-questionnaire .survey-card h3{
    margin:0 0 10px!important;
    color:#823647!important;
    font-size:13px!important;
    line-height:1.45!important;
  }
  .section-questionnaire .survey-grid-3{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .section-questionnaire .survey-grid li{
    min-height:58px!important;
    padding:8px 6px!important;
    border-left:1px solid #4c4a43!important;
    font-size:9px!important;
    line-height:1.55!important;
  }
  .section-questionnaire .survey-grid li:nth-child(3n+1){border-left:0!important}
  .section-questionnaire .survey-number-art{
    top:-15px!important;
    width:30px!important;
    height:30px!important;
    z-index:20!important;
  }
  .section-questionnaire .survey-character{width:62px!important;z-index:12!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-left{left:-26px!important;bottom:-3px!important;top:auto!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-right{right:-22px!important;top:-45px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-left{left:-24px!important;top:-35px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-right{right:-22px!important;top:-35px!important;bottom:auto!important}
  .section-questionnaire .questionnaire-stars-final{z-index:8!important;overflow:visible!important}
  .section-questionnaire .questionnaire-stars-final .stars{width:40px!important}
  .section-questionnaire .questionnaire-stars-final .stars-one{left:-34px!important;right:auto!important;top:49%!important}
  .section-questionnaire .questionnaire-stars-final .stars-two{right:-34px!important;left:auto!important;top:67%!important}
  .section-questionnaire .questionnaire-stars-final .stars-three{right:-34px!important;bottom:0!important}
}

/* V11 — typography, heading colours, WORK clouds and Fujin placement */
body{
  font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
.section-en{
  font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif!important;
  font-weight:700!important;
  letter-spacing:.13em;
}
.section-heading h2,
.work-card-copy .number,
.work-card-copy h3{
  font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-weight:700;
}
.heading-accent-about{color:#006a43;}
.section-work .section-heading h2,
.section-work .work-card-copy h3{color:#823647!important;}
.work-card-copy .number{border-bottom-color:#cba36e!important;}
.section-work .work-card:first-child{position:relative;overflow:visible!important;}
.work-fujin{
  position:absolute;
  z-index:20;
  top:-112px;
  right:-42px;
  width:118px;
  height:auto;
}
@media (max-width:767px){
  .work-fujin{top:-70px;right:-8px;width:78px;}
}

/* V10 — transparent cloud artwork and fixed-width, right-aligned navigation */
@media (min-width:768px){
  .site-header{
    background:transparent!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:none!important;
  }
  .desktop-nav{
    flex:0 1 860px!important;
    margin-left:auto!important;
  }
}
.section-about{isolation:auto!important;overflow:visible!important;}
.section-about .edge-clouds{
  top:-108px!important;
  z-index:30!important;
  overflow:visible!important;
}
.section-about .edge-cloud{z-index:31!important;}
@media (max-width:767px){
  .section-about .edge-clouds{top:-48px!important}
}

/* V9 — place the ABOUT clouds clearly above the curved boundary */
.section-about .edge-clouds{
  top:-154px!important;
  z-index:20!important;
  overflow:visible!important;
}
.section-about .edge-cloud{
  top:0!important;
  z-index:21!important;
}
@media (max-width:767px){
  .section-about .edge-clouds{top:-72px!important}
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", system-ui, sans-serif;
  line-height: 1.8;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 999; padding: 10px 16px; background: #fff; }
.skip-link:focus { top: 16px; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 24px;
  width: min(100%, 1280px);
  min-height: var(--header-height);
  margin: auto;
  padding: 14px 38px;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
}
.site-logo { flex: 0 0 220px; }
.site-logo img { display: block; width: 220px; }
.desktop-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 2.4vw, 34px);
  flex: 1;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  background: #fff;
}
.desktop-nav a { font-size: 13px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.desktop-nav a:hover { color: var(--orange); }
.header-entry {
  display: grid;
  place-items: center;
  flex: 0 0 112px;
  min-height: 48px;
  border-radius: 999px;
  color: #fff;
  background: var(--orange);
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}
.menu-button { display: none; }
.mobile-menu { display: none; }

main { padding-top: var(--header-height); }
.section { position: relative; scroll-margin-top: 80px; overflow: clip; }
.section-inner { position: relative; z-index: 3; width: min(calc(100% - 48px), var(--max)); margin: auto; padding: 112px 0; }
.section-inner.wide { width: min(calc(100% - 48px), 1180px); }
.section-inner.narrow { width: min(calc(100% - 48px), 760px); }
.section-heading { position: relative; text-align: center; margin-bottom: 56px; }
.section-en {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  text-shadow: -1px -1px 0 #333, 1px -1px 0 #333, -1px 1px 0 #333, 1px 1px 0 #333;
  font-family: Georgia, serif;
  font-size: clamp(20px, 2.7vw, 34px);
  font-weight: 900;
  letter-spacing: .12em;
}
.section-heading h2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 560px);
  min-height: 54px;
  margin: 0;
  padding: 8px 30px;
  border: 3px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.35;
}
.section-lead { margin: 22px 0 0; font-weight: 800; text-align: center; }
.heading-mascot { position: absolute; width: 100px; right: 8%; top: -10px; }
.section-character { position: absolute; z-index: 5; pointer-events: none; }

.hero {
  position: relative;
  max-width: 1280px;
  margin: auto;
  aspect-ratio: 1280 / 1130;
  overflow: hidden;
  background: #cde8f6;
}
.hero-art, .hero-art img { display: block; width: 100%; height: 100%; }
.hero-art img { object-fit: cover; }
.hero-title-cover {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 72%;
  height: 27%;
  background: #cde8f6;
}
.hero-title {
  position: absolute;
  z-index: 3;
  top: 2.8%;
  left: 6.4%;
  width: 67%;
  margin: 0;
  color: #fff;
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -.05em;
  filter: drop-shadow(4px 5px 0 rgba(0,0,0,.22));
}
.hero-line { display: flex; align-items: baseline; flex-wrap: nowrap; white-space: nowrap; }
.hero-line-1 { font-size: clamp(38px, 6.1vw, 82px); }
.hero-line-2 { margin-top: .05em; font-size: clamp(42px, 6.8vw, 90px); }
.hero-title b, .hero-title small {
  -webkit-text-stroke: 2px #353535;
  paint-order: stroke fill;
}
.hero-title small { font-size: .55em; color: #fff; margin: 0 .12em; }
.hero-title .orange { color: #ef7934; }
.hero-title .green { color: #7eb323; }
.hero-title .blue { color: #2b87b5; }
.hero-title .beige { color: #ecd09d; }
.hero-title .yellow { color: #f5d830; }
.hero-lead-cover {
  position: absolute;
  z-index: 2;
  left: 25%;
  bottom: 0;
  width: 50%;
  height: 33%;
  background: #fff;
}
.hero-lead {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 5.5%;
  width: 54%;
  transform: translateX(-50%);
  font-size: clamp(14px, 1.6vw, 23px);
  font-weight: 900;
  line-height: 1.45;
  text-align: center;
}
.hero-lead p { margin: .45em 0; }

.section-about {
  background-color: #78b142;
  background-image: radial-gradient(rgba(255,226,56,.36) 2px, transparent 2px);
  background-size: 18px 18px;
}
.cloud-band {
  position: absolute;
  z-index: 2;
  left: -3%;
  width: 106%;
  height: 100px;
  background:
    radial-gradient(ellipse at 5% 70%, #fff 0 31%, transparent 32%),
    radial-gradient(ellipse at 18% 58%, #b8dfee 0 28%, transparent 29%),
    radial-gradient(ellipse at 30% 72%, #fff 0 35%, transparent 36%),
    radial-gradient(ellipse at 48% 60%, #f4dba5 0 28%, transparent 29%),
    radial-gradient(ellipse at 68% 72%, #fff 0 35%, transparent 36%),
    radial-gradient(ellipse at 83% 58%, #b8dfee 0 30%, transparent 31%),
    radial-gradient(ellipse at 96% 70%, #ffe03b 0 32%, transparent 33%);
}
.cloud-band-top { top: -42px; }
.cloud-band-bottom { bottom: -44px; transform: rotate(180deg); }
.about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; align-items: center; }
.about-copy h3 { margin: 0 0 28px; font-size: clamp(26px, 3.3vw, 47px); line-height: 1.45; color: #101010; }
.about-copy p { font-weight: 700; }
.about-images { display: grid; gap: 28px; }
.about-images img { width: 100%; border-radius: 48px; box-shadow: 0 8px 0 rgba(34,80,30,.25); }

.photo-marquee { position: relative; z-index: 4; width: 100%; overflow: hidden; background: #fff; }
.photo-track { display: flex; width: max-content; animation: marquee 28s linear infinite; }
.photo-track img { width: min(34vw, 430px); aspect-ratio: 1.55 / 1; object-fit: cover; flex: 0 0 auto; }
.photo-marquee:hover .photo-track { animation-play-state: paused; }

.section-work {
  background-color: #d4aa72;
  background-image:
    linear-gradient(45deg, rgba(255,255,255,.08) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(255,255,255,.08) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(255,255,255,.08) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(255,255,255,.08) 75%);
  background-size: 64px 64px;
  background-position: 0 0, 0 32px, 32px -32px, -32px 0;
}
.work-list { display: grid; gap: 28px; }
.work-card {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  overflow: hidden;
  border: 3px solid var(--line);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 8px 0 rgba(94,55,29,.18);
}
.work-card-reverse { grid-template-columns: 1fr 1.35fr; }
.work-card-reverse figure { order: 2; }
.work-card figure { margin: 0; min-height: 310px; }
.work-card figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.work-card-copy { display: grid; align-content: center; padding: 42px; text-align: center; }
.work-card-copy .number { display: inline-block; margin: 0 auto 8px; padding-bottom: 4px; border-bottom: 2px solid; font-weight: 900; }
.work-card-copy h3 { margin: 0 0 20px; color: #7f3140; font-size: clamp(22px, 2.4vw, 32px); }
.work-card-copy p { margin: 0; font-size: 15px; text-align: left; }
.work-character { right: 4%; top: 8%; width: 130px; }

.section-questionnaire {
  background-color: #f8d93b;
  background-image: radial-gradient(rgba(236,125,41,.33) 2px, transparent 2px);
  background-size: 14px 14px;
}
.survey-card {
  position: relative;
  margin: 0 0 72px;
  padding: 44px 46px 36px;
  border: 3px solid var(--line);
  background: var(--cream);
  box-shadow: 15px 16px 0 rgba(255,255,255,.55);
  clip-path: polygon(0 0, 100% 0, 97.5% 93%, 0 100%);
}
.survey-card:nth-of-type(even) { clip-path: polygon(2.5% 0, 100% 5%, 100% 100%, 0 93%); }
.survey-number { position: absolute; top: -22px; left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: 54px; height: 54px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: #e77d2e; font-weight: 900; }
.survey-card h3 { margin: 0 0 30px; font-size: clamp(20px, 2vw, 28px); text-align: center; }
.survey-grid { display: grid; margin: 0; padding: 0; list-style: none; }
.survey-grid-3 { grid-template-columns: repeat(3, 1fr); }
.survey-grid li { min-height: 112px; padding: 20px; border-top: 1px solid #777; font-weight: 800; text-align: center; display: grid; place-items: center; }
.survey-grid li:not(:nth-child(3n+1)) { border-left: 1px solid #777; }
.survey-character { position: absolute; z-index: 2; width: 105px; pointer-events: none; }
.survey-character-left { left: -25px; bottom: -38px; }
.survey-character-right { right: -24px; top: -44px; }

.hotel-marquee { border-top: 0; }
.hotel-track img { width: min(48vw, 620px); aspect-ratio: 2.35 / 1; }

.section-welfare { background: #f28fb1; }
.benefit-card {
  overflow: hidden;
  border: 3px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 8px 0 rgba(143,41,77,.14);
}
.benefit-card figure { margin: 0; }
.benefit-card figure img { display: block; width: 100%; height: 300px; object-fit: cover; }
.benefit-card > div { position: relative; padding: 40px 34px 34px; }
.benefit-number { position: absolute; top: -28px; left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: 56px; height: 56px; border: 3px solid #333; border-radius: 50% 50% 45% 45%; color: #663b00; background: #f4c22d; font-weight: 900; }
.benefit-card h3 { margin: 0 0 18px; color: #df3c3c; font-size: clamp(20px, 2.2vw, 29px); line-height: 1.45; }
.benefit-card p { margin: 0; }
.benefit-card-wide { display: grid; grid-template-columns: 1.05fr 1fr; margin-bottom: 32px; }
.benefit-card-wide figure img { height: 100%; min-height: 360px; }
.benefit-card-wide > div { display: grid; align-content: center; }
.benefit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.welfare-character { right: 2%; top: 3%; width: 115px; }

.section-training {
  background-color: #93d7e8;
  background-image: repeating-linear-gradient(0deg, rgba(255,255,255,.15) 0 2px, transparent 2px 7px);
}
.training-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 58px; align-items: center; }
.training-visual { position: relative; min-height: 430px; }
.training-visual img { position: absolute; inset: 9% 0 0 4%; width: 92%; height: 82%; object-fit: cover; border-radius: 50% 48% 46% 52%; border: 5px solid #fff; box-shadow: 0 8px 0 rgba(35,113,133,.25); }
.training-circle { position: absolute; border: 4px solid #333; border-radius: 50%; background: rgba(255,255,255,.23); }
.training-circle-left { width: 58%; aspect-ratio: 1; left: -2%; top: 2%; }
.training-circle-right { width: 52%; aspect-ratio: 1; right: -2%; bottom: 0; }
.training-copy h3 { margin: 0 0 22px; color: #2f9a65; font-size: clamp(25px, 3vw, 42px); line-height: 1.4; }
.training-copy p { font-weight: 650; }
.cloud-row { display: flex; align-items: end; justify-content: space-around; height: 105px; padding: 0 2%; }
.cloud-row span { width: 17%; height: 70px; border: 3px solid #333; border-radius: 60% 60% 45% 45%; background: #fff; }
.cloud-row span:nth-child(2) { background: #f4dba5; }
.cloud-row span:nth-child(3) { background: #f4679b; }
.cloud-row span:nth-child(4) { background: #ffe03b; }
.cloud-row span:nth-child(5) { background: #fff; }

.section-entry {
  padding-top: 80px;
  color: #333;
  background-color: #f6d438;
  background-image: radial-gradient(rgba(238,132,40,.25) 2px, transparent 2px);
  background-size: 16px 16px;
  text-align: center;
}
.entry-characters { position: relative; z-index: 3; display: flex; align-items: end; justify-content: center; gap: clamp(8px, 3vw, 36px); min-height: 180px; padding: 0 24px; }
.entry-characters img { width: clamp(70px, 10vw, 125px); max-height: 170px; object-fit: contain; }
.section-entry .section-inner { padding-top: 36px; padding-bottom: 108px; }
.section-entry h2 { margin: 0 0 18px; font-size: clamp(27px, 3.5vw, 46px); }
.section-entry p { font-weight: 700; }
.entry-button { display: inline-grid; place-items: center; min-width: 300px; min-height: 68px; margin-top: 30px; border: 3px solid #3f5b39; border-radius: 999px; color: #fff; background: #4ea45c; font-size: 22px; font-weight: 900; text-decoration: none; box-shadow: 0 7px 0 rgba(47,89,43,.25); }
.entry-button:hover { transform: translateY(2px); box-shadow: 0 5px 0 rgba(47,89,43,.25); }

.site-footer { padding: 56px 24px 72px; text-align: center; background: #fff; }
.site-footer img { width: min(330px, 80vw); }
.site-footer address { margin-top: 26px; font-size: 14px; font-style: normal; line-height: 1.9; }
.site-footer a { text-decoration: none; }

.floating-links {
  position: fixed;
  z-index: 90;
  right: max(18px, calc((100vw - 1280px) / 2 + 18px));
  bottom: 22px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border: 3px solid #9c391f;
  border-radius: 44px 0 0 44px;
  background: #ef6f1c;
  box-shadow: 0 9px 24px rgba(0,0,0,.18);
  transform: translateY(130%);
  transition: transform .45s ease;
}
.floating-links.is-visible { transform: translateY(0); }
.floating-entry, .floating-social { min-width: 112px; padding: 8px 14px; color: #fff; text-align: center; }
.floating-entry { display: grid; grid-template-rows: auto 44px; align-items: center; border-right: 1px solid rgba(255,255,255,.55); font-weight: 900; text-decoration: none; }
.floating-entry b { display: grid; place-items: center; width: 44px; height: 44px; margin: auto; border-radius: 50%; color: #2e2e2e; background: #fff; font-size: 30px; line-height: 1; }
.floating-social > span { display: block; font-weight: 900; }
.floating-social > div { display: flex; gap: 8px; justify-content: center; margin-top: 4px; }
.floating-social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #333; background: #fff; font-size: 28px; font-weight: 900; text-decoration: none; }

.reveal { opacity: 0; transform: translateY(34px); transition: opacity .75s ease, transform .75s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.bounce-on-view.is-bouncing { animation: character-bounce .75s cubic-bezier(.2,.9,.25,1.2) both; }

@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes character-bounce {
  0% { opacity: 0; transform: translateY(34px) scale(.95); }
  55% { opacity: 1; transform: translateY(-18px) scale(1.03); }
  78% { transform: translateY(6px) scale(.99); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 900px) {
  :root { --header-height: 72px; }
  .site-header { padding: 11px 20px; }
  .site-logo { flex-basis: 185px; }
  .site-logo img { width: 185px; }
  .desktop-nav { gap: 12px; padding: 0 10px; }
  .desktop-nav a { font-size: 11px; }
  .header-entry { flex-basis: 92px; font-size: 12px; }
  .about-grid { gap: 42px; }
}

@media (max-width: 767px) {
  :root { --header-height: 72px; }
  body { line-height: 1.75; }
  .site-header {
    min-height: 72px;
    padding: 10px 14px;
    background: rgba(255,255,255,.92);
  }
  .site-logo { flex-basis: 185px; }
  .site-logo img { width: 185px; }
  .desktop-nav, .header-entry { display: none; }
  .menu-button {
    display: grid;
    place-items: center;
    gap: 5px;
    width: 52px;
    height: 52px;
    margin-left: auto;
    border: 0;
    border-radius: 50%;
    background: #f49aaa;
    cursor: pointer;
  }
  .menu-button span { display: block; width: 24px; height: 3px; border-radius: 2px; background: #73352f; transition: transform .25s, opacity .25s; }
  .menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .mobile-menu {
    position: fixed;
    z-index: 95;
    top: 72px;
    left: 0;
    display: block;
    width: 100%;
    padding: 24px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 16px 30px rgba(0,0,0,.12);
    transform: translateY(-120%);
    transition: transform .35s ease;
  }
  .mobile-menu[aria-hidden="false"] { transform: translateY(0); }
  .mobile-menu nav { display: grid; }
  .mobile-menu a { padding: 14px; border-bottom: 1px solid #ddd; font-weight: 800; text-align: center; text-decoration: none; }

  .section-inner, .section-inner.wide, .section-inner.narrow { width: min(calc(100% - 32px), 680px); padding: 84px 0; }
  .section-heading { margin-bottom: 42px; }
  .section-heading h2 { min-height: 48px; padding: 7px 20px; border-width: 2px; }
  .heading-mascot { width: 66px; right: 2%; top: 7px; }

  .hero {
    aspect-ratio: 750 / 1450;
  }
  .hero-title-cover {
    width: 100%;
    height: 26.3%;
  }
  .hero-title {
    top: 2.6%;
    left: 5%;
    width: 90%;
  }
  .hero-line { white-space: nowrap; }
  .hero-line-1 { flex-wrap: wrap; font-size: clamp(36px, 11.5vw, 76px); line-height: 1.1; }
  .hero-line-1 .blue { flex-basis: auto; }
  .hero-line-2 { font-size: clamp(39px, 12vw, 82px); }
  .hero-title b, .hero-title small { -webkit-text-stroke-width: 1.5px; }
  .hero-lead-cover { left: 0; bottom: 0; width: 100%; height: 40.5%; }
  .hero-lead { bottom: 8.2%; width: 92%; font-size: clamp(14px, 4.1vw, 24px); line-height: 1.55; }
  .hero-lead p { margin: .7em 0; }

  .cloud-band { height: 72px; }
  .about-grid { grid-template-columns: 1fr; gap: 42px; }
  .about-copy h3 { font-size: clamp(28px, 8vw, 42px); }
  .about-copy p br { display: none; }
  .about-images { gap: 18px; }
  .about-images img { border-radius: 28px; }
  .photo-track img { width: 72vw; }

  .work-card, .work-card-reverse { grid-template-columns: 1fr; }
  .work-card-reverse figure { order: 0; }
  .work-card figure { min-height: 220px; }
  .work-card-copy { padding: 30px 24px 34px; }
  .work-card-copy p { font-size: 14px; }
  .work-character { width: 82px; top: 4%; right: 3%; }

  .survey-card { margin-bottom: 58px; padding: 40px 18px 28px; clip-path: none !important; border-radius: 6px; }
  .survey-grid-3 { grid-template-columns: 1fr; }
  .survey-grid li { min-height: auto; padding: 14px 10px; }
  .survey-grid li:not(:nth-child(3n+1)) { border-left: 0; }
  .survey-character { width: 72px; }
  .survey-character-left { left: -8px; bottom: -30px; }
  .survey-character-right { right: -8px; top: -35px; }

  .hotel-track img { width: 86vw; }
  .benefit-card-wide, .benefit-grid { grid-template-columns: 1fr; }
  .benefit-grid { gap: 28px; }
  .benefit-card figure img, .benefit-card-wide figure img { height: 230px; min-height: 0; }
  .benefit-card > div { padding: 38px 24px 28px; }
  .benefit-card h3 { font-size: 22px; }
  .welfare-character { width: 78px; top: 1.8%; }

  .training-grid { grid-template-columns: 1fr; gap: 34px; }
  .training-visual { min-height: 330px; }
  .training-copy h3 { font-size: 30px; }
  .cloud-row { height: 74px; }

  .section-entry { padding-top: 48px; }
  .entry-characters { gap: 2px; min-height: 105px; padding: 0 6px; }
  .entry-characters img { width: 16%; max-height: 110px; }
  .entry-button { min-width: min(100%, 300px); }

  .floating-links {
    right: 0;
    bottom: 10px;
    max-width: calc(100% - 12px);
    border-right: 0;
    transform: translateY(140%);
  }
  .floating-entry, .floating-social { min-width: 96px; padding: 6px 9px; font-size: 13px; }
  .floating-entry { grid-template-rows: auto 40px; }
  .floating-entry b, .floating-social a { width: 40px; height: 40px; }
}

/* =========================================================
   V8 — full-width white intro / fixed desktop clouds / soft U curve
   ========================================================= */

/* The intro's white field must continue to both viewport edges. */
.hero-lead {
  max-width: none !important;
  width: 100% !important;
  background: #fff !important;
}

/*
 * Lay a wide white oval over the green section. Its rounded lower edge makes
 * the boundary higher at both sides and gently lower in the centre.
 */
.section-about {
  isolation: isolate;
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.section-about::before {
  left: 50% !important;
  top: -122px !important;
  width: 142% !important;
  height: 196px !important;
  transform: translateX(-50%) !important;
  border-radius: 0 0 50% 50% / 0 0 100% 100% !important;
  background: #fff !important;
  z-index: 1 !important;
}
.section-about .edge-clouds {
  top: -92px !important;
}

/* Keep desktop clouds at their designed size instead of scaling with vw. */
@media (min-width: 768px) {
  .edge-clouds-about .edge-cloud-left { width: min(458px, 42vw) !important; }
  .edge-clouds-about .edge-cloud-right { width: min(467px, 42vw) !important; }
  .edge-clouds-work .edge-cloud-left { width: min(525px, 45vw) !important; }
  .edge-clouds-work .edge-cloud-right { width: min(479px, 42vw) !important; }
  .edge-clouds-welfare .edge-cloud-left { width: min(644px, 48vw) !important; }
  .edge-clouds-welfare .edge-cloud-right { width: min(479px, 42vw) !important; }
  .edge-clouds-training .edge-cloud-left { width: min(545px, 46vw) !important; }
  .edge-clouds-training .edge-cloud-right { width: min(479px, 42vw) !important; }
  .edge-clouds-entry .edge-cloud-left { width: min(256px, 25vw) !important; }
  .edge-clouds-entry .edge-cloud-right { width: min(479px, 42vw) !important; }
}

@media (max-width: 767px) {
  .section-about::before {
    top: -52px !important;
    width: 170% !important;
    height: 92px !important;
  }
  .section-about .edge-clouds { top: -38px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .floating-links { transform: none; }
}

/* =========================================================
   V2 DESIGN REFINEMENT
   Illustrator design alignment while keeping all copy in HTML
   ========================================================= */

body {
  background: #f3f3f3;
}

main,
.site-footer {
  width: min(100%, 1280px);
  margin-inline: auto;
  background: #fff;
}

.site-header {
  border-radius: 0 0 18px 18px;
}

.section-inner {
  padding-block: 128px;
}

.section-heading {
  margin-bottom: 70px;
}

.section-en {
  font-size: clamp(22px, 2.35vw, 31px);
  letter-spacing: .15em;
  filter: drop-shadow(0 2px 0 rgba(0,0,0,.14));
}

.section-heading h2 {
  min-width: min(100%, 520px);
  min-height: 52px;
  border-width: 2px;
  box-shadow: 0 4px 0 rgba(0,0,0,.12);
}

/* Exact cloud pieces cut from the supplied design. */
.edge-clouds {
  position: absolute;
  z-index: 8;
  top: -94px;
  left: 0;
  width: 100%;
  height: 220px;
  overflow: visible;
  pointer-events: none;
}

.edge-cloud {
  position: absolute;
  top: 0;
  width: 36.5%;
  height: auto;
  opacity: 0;
  will-change: transform, opacity;
}

.edge-cloud-left {
  left: 0;
  transform: translate3d(-115%, 0, 0);
}

.edge-cloud-right {
  right: 0;
  transform: translate3d(115%, 0, 0);
}

.edge-clouds-work { top: -82px; }
.edge-clouds-welfare { top: -78px; }
.edge-clouds-training { top: -80px; }
.edge-clouds-entry { top: -58px; }

.cloud-slide.is-visible.edge-cloud-left {
  animation: cloud-in-left 1.55s cubic-bezier(.16,.84,.24,1) both;
}

.cloud-slide.is-visible.edge-cloud-right {
  animation: cloud-in-right 1.55s cubic-bezier(.16,.84,.24,1) both;
}

@keyframes cloud-in-left {
  0% { opacity: 0; transform: translate3d(-115%, 0, 0); }
  20% { opacity: 1; }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes cloud-in-right {
  0% { opacity: 0; transform: translate3d(115%, 0, 0); }
  20% { opacity: 1; }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* HERO */
.hero {
  box-shadow: 0 10px 32px rgba(0,0,0,.06);
}

.hero-title {
  top: 3.2%;
  left: 6.1%;
}

.hero-lead {
  bottom: 5.9%;
  line-height: 1.55;
}

/* ABOUT */
.section-about .section-inner {
  padding-top: 150px;
  padding-bottom: 150px;
}

.section-about .section-heading {
  margin-bottom: 72px;
}

.about-grid {
  grid-template-columns: .82fr 1fr;
  max-width: 930px;
  margin-inline: auto;
  gap: 70px;
}

.about-copy h3 {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.55;
}

.about-copy p {
  margin-block: 22px;
  font-size: 15px;
  line-height: 2;
}

.about-images img {
  border: 3px solid rgba(34,60,31,.65);
  border-radius: 38px;
  box-shadow: 8px 9px 0 rgba(34,80,30,.19);
}

.photo-marquee {
  border-top: 3px solid rgba(255,255,255,.72);
  border-bottom: 3px solid rgba(55,55,55,.32);
}

.photo-track img {
  width: 426px;
  height: 278px;
  aspect-ratio: auto;
}

/* WORK */
.section-work .section-inner {
  padding-top: 150px;
  padding-bottom: 165px;
}

.section-work .section-heading {
  margin-bottom: 76px;
}

.work-list {
  max-width: 940px;
  margin-inline: auto;
  gap: 42px;
}

.work-card {
  min-height: 350px;
  grid-template-columns: 1.34fr 1fr;
  border-width: 2px;
  border-radius: 22px;
  box-shadow: 0 8px 0 rgba(94,55,29,.20);
}

.work-card-reverse {
  grid-template-columns: 1fr 1.34fr;
}

.work-card figure {
  min-height: 348px;
}

.work-card-copy {
  padding: 44px 38px;
}

.work-card-copy h3 {
  font-size: clamp(21px, 2vw, 27px);
}

.work-card-copy p {
  font-size: 14px;
  line-height: 1.85;
}

.heading-mascot {
  right: 6%;
  width: 112px;
}

.work-character {
  top: 10%;
  right: 7%;
  width: 150px;
}

/* QUESTIONNAIRE */
.section-questionnaire .section-inner {
  padding-top: 150px;
  padding-bottom: 165px;
}

.section-questionnaire .section-heading {
  margin-bottom: 82px;
}

.survey-card {
  max-width: 960px;
  margin: 0 auto 92px;
  padding: 54px 52px 44px;
  border-width: 2px;
  box-shadow: 15px 17px 0 rgba(255,255,255,.50);
}

.survey-card:last-child {
  margin-bottom: 0;
}

.survey-card h3 {
  margin-bottom: 36px;
}

.survey-grid li {
  min-height: 126px;
  padding: 23px 18px;
  line-height: 1.65;
}

.survey-character {
  width: 112px;
}

.survey-number {
  width: 50px;
  height: 50px;
}

.hotel-track img {
  width: 500px;
  height: 245px;
  aspect-ratio: auto;
}

/* WELFARE */
.section-welfare .section-inner {
  max-width: 1010px;
  padding-top: 155px;
  padding-bottom: 165px;
}

.section-welfare .section-heading {
  margin-bottom: 76px;
}

.benefit-card {
  border-width: 2px;
  border-radius: 21px;
  box-shadow: 0 8px 0 rgba(143,41,77,.16);
}

.benefit-card-wide {
  max-width: 900px;
  margin: 0 auto 42px;
  grid-template-columns: 1.05fr 1fr;
}

.benefit-grid {
  max-width: 900px;
  margin-inline: auto;
  gap: 32px;
}

.benefit-card figure img {
  height: 274px;
}

.benefit-card-wide figure img {
  min-height: 356px;
}

.benefit-card > div {
  padding: 42px 31px 34px;
}

.benefit-card h3 {
  font-size: clamp(19px, 2vw, 26px);
}

.benefit-card p {
  font-size: 13px;
  line-height: 1.82;
}

.welfare-character {
  top: 6%;
  left: 6.5%;
  right: auto;
  width: 105px;
}

/* TRAINING */
.section-training .section-inner {
  max-width: 980px;
  padding-top: 150px;
  padding-bottom: 190px;
}

.section-training .section-heading {
  margin-bottom: 72px;
}

.training-grid {
  grid-template-columns: .92fr 1.08fr;
  gap: 54px;
  align-items: center;
}

.training-visual {
  min-height: 380px;
}

.training-visual img {
  inset: 5% 0 0 0;
  width: 100%;
  height: 91%;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  object-fit: contain;
}

.training-circle {
  display: none;
}

.training-copy h3 {
  font-size: clamp(26px, 3vw, 39px);
  line-height: 1.45;
}

.training-copy p {
  font-size: 14px;
  line-height: 1.9;
}

/* ENTRY */
.section-entry {
  padding-top: 86px;
  border-radius: 50% 50% 0 0 / 11% 11% 0 0;
}

.entry-characters {
  max-width: 940px;
  min-height: 192px;
  margin-inline: auto;
  gap: 8px;
}

.entry-characters img {
  width: clamp(64px, 8.2vw, 104px);
  max-height: 158px;
}

.entry-characters img:nth-child(1),
.entry-characters img:nth-child(9) {
  width: clamp(72px, 9.5vw, 122px);
}

.section-entry .section-inner {
  padding-top: 36px;
  padding-bottom: 116px;
}

.entry-button {
  min-width: 330px;
  min-height: 64px;
  border-width: 2px;
}

.site-footer {
  padding-top: 64px;
  padding-bottom: 78px;
}

/* Floating banner closer to supplied artwork. */
.floating-links {
  border-width: 2px;
  border-radius: 38px 0 0 38px;
}

.floating-entry b,
.floating-social a {
  color: #333;
}

.floating-entry svg,
.floating-social svg {
  display: block;
  width: 25px;
  height: 25px;
  fill: currentColor;
}

/* Tablet and smartphone refinements */
@media (max-width: 900px) {
  main,
  .site-footer {
    width: 100%;
  }

  .work-list,
  .survey-card,
  .benefit-card-wide,
  .benefit-grid {
    width: min(100%, 900px);
  }
}

@media (max-width: 767px) {
  body { background: #fff; }

  .site-header {
    border-radius: 0;
  }

  .section-inner,
  .section-inner.wide,
  .section-inner.narrow,
  .section-about .section-inner,
  .section-work .section-inner,
  .section-questionnaire .section-inner,
  .section-welfare .section-inner,
  .section-training .section-inner {
    padding-top: 70px;
    padding-bottom: 74px;
  }

  .section-heading,
  .section-about .section-heading,
  .section-work .section-heading,
  .section-questionnaire .section-heading,
  .section-welfare .section-heading,
  .section-training .section-heading {
    margin-bottom: 38px;
  }

  .section-heading h2 {
    min-width: min(100%, 390px);
    min-height: 42px;
    font-size: clamp(18px, 5.4vw, 24px);
  }

  .section-en {
    margin-bottom: 3px;
    font-size: clamp(17px, 5vw, 23px);
  }

  .edge-clouds {
    top: -38px;
    height: 95px;
  }

  .edge-cloud {
    width: 49%;
  }

  .edge-clouds-about { top: -28px; }
  .edge-clouds-work,
  .edge-clouds-welfare,
  .edge-clouds-training { top: -34px; }
  .edge-clouds-entry { top: -22px; }

  .hero {
    aspect-ratio: 750 / 1450;
  }

  .about-grid {
    gap: 28px;
  }

  .about-copy h3 {
    margin-bottom: 18px;
    font-size: clamp(25px, 7.3vw, 34px);
  }

  .about-copy p {
    margin-block: 15px;
    font-size: 14px;
    line-height: 1.85;
  }

  .photo-track img {
    width: 68vw;
    height: 180px;
  }

  .work-list {
    gap: 24px;
  }

  .work-card,
  .work-card-reverse {
    min-height: 0;
    border-radius: 17px;
  }

  .work-card figure {
    min-height: 190px;
  }

  .work-card-copy {
    padding: 24px 20px 28px;
  }

  .work-card-copy h3 {
    margin-bottom: 12px;
    font-size: 20px;
  }

  .work-card-copy p {
    font-size: 12.5px;
    line-height: 1.72;
  }

  .survey-card {
    margin-bottom: 42px;
    padding-top: 37px;
    padding-bottom: 20px;
  }

  .survey-card h3 {
    margin-bottom: 20px;
    font-size: 18px;
  }

  .survey-grid li {
    min-height: 0;
    padding: 10px 8px;
    font-size: 13px;
    line-height: 1.55;
  }

  .survey-number {
    top: -18px;
    width: 42px;
    height: 42px;
  }

  .hotel-track img {
    width: 84vw;
    height: 170px;
  }

  .benefit-card-wide {
    margin-bottom: 24px;
  }

  .benefit-grid {
    gap: 22px;
  }

  .benefit-card figure img,
  .benefit-card-wide figure img {
    height: 200px;
  }

  .benefit-card > div {
    padding: 34px 20px 24px;
  }

  .benefit-card h3 {
    margin-bottom: 12px;
    font-size: 19px;
  }

  .benefit-card p {
    font-size: 12px;
    line-height: 1.72;
  }

  .training-grid {
    gap: 20px;
  }

  .training-visual {
    min-height: 245px;
  }

  .training-copy h3 {
    margin-bottom: 12px;
    font-size: 26px;
  }

  .training-copy p {
    font-size: 12.5px;
    line-height: 1.75;
  }

  .section-entry {
    padding-top: 48px;
    border-radius: 50% 50% 0 0 / 5% 5% 0 0;
  }

  .entry-characters {
    min-height: 88px;
    gap: 0;
  }

  .entry-characters img,
  .entry-characters img:nth-child(1),
  .entry-characters img:nth-child(9) {
    width: 10.7%;
    max-height: 88px;
  }

  .section-entry .section-inner {
    padding-top: 24px;
    padding-bottom: 72px;
  }

  .site-footer {
    padding-top: 42px;
    padding-bottom: 54px;
  }
}

/* V2.1 proportion tuning against the supplied PC/SP artboards */
@media (min-width: 768px) {
  .section-about .section-inner { padding-top: 175px; padding-bottom: 175px; }
  .section-work .section-inner { padding-top: 175px; padding-bottom: 190px; }
  .section-questionnaire .section-inner { padding-top: 185px; padding-bottom: 200px; }
  .section-welfare .section-inner { padding-top: 185px; padding-bottom: 195px; }
  .section-training .section-inner { padding-top: 180px; padding-bottom: 220px; }
  .section-entry .section-inner { padding-bottom: 146px; }

  .work-card { min-height: 380px; }
  .work-card figure { min-height: 378px; }
  .survey-card { margin-bottom: 112px; }
  .survey-grid li { min-height: 141px; }
  .benefit-card figure img { height: 294px; }
  .benefit-card-wide figure img { min-height: 376px; }
  .training-visual { min-height: 410px; }

  .edge-clouds-entry .edge-cloud-left { width: 14%; }
  .edge-clouds-entry .edge-cloud-right { width: 21%; }
  .edge-clouds-entry { top: -74px; }
}

@media (max-width: 767px) {
  .section-inner,
  .section-inner.wide,
  .section-inner.narrow,
  .section-about .section-inner,
  .section-work .section-inner,
  .section-questionnaire .section-inner,
  .section-welfare .section-inner,
  .section-training .section-inner {
    padding-top: 78px;
    padding-bottom: 80px;
  }

  .section-heading,
  .section-about .section-heading,
  .section-work .section-heading,
  .section-questionnaire .section-heading,
  .section-welfare .section-heading,
  .section-training .section-heading {
    margin-bottom: 41px;
  }

  .photo-track img { height: 194px; }
  .work-card figure { min-height: 202px; }
  .work-card-copy { padding: 27px 22px 31px; }
  .work-list { gap: 26px; }

  .survey-card { margin-bottom: 47px; padding-bottom: 24px; }
  .survey-grid li { padding: 13px 9px; }

  .hotel-track img { height: 184px; }
  .benefit-card figure img,
  .benefit-card-wide figure img { height: 212px; }
  .benefit-card > div { padding: 37px 22px 27px; }
  .benefit-grid { gap: 24px; }

  .training-visual { min-height: 300px; }
  .training-grid { gap: 27px; }

  .entry-characters { min-height: 96px; }
  .entry-characters img,
  .entry-characters img:nth-child(1),
  .entry-characters img:nth-child(9) { max-height: 96px; }
  .section-entry .section-inner { padding-bottom: 80px; }

  .edge-clouds-entry .edge-cloud-left { width: 22%; }
  .edge-clouds-entry .edge-cloud-right { width: 30%; }
  .edge-clouds-entry { top: -25px; }
}

/* Mobile layout resets after the desktop-oriented V2 rules above. */
@media (max-width: 767px) {
  .about-grid { grid-template-columns: 1fr; }

  .work-card,
  .work-card-reverse { grid-template-columns: 1fr; }
  .work-card-reverse figure { order: 0; }

  .benefit-card-wide,
  .benefit-grid { grid-template-columns: 1fr; }
  .benefit-card-wide figure img { min-height: 0; }

  .training-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   V3 FINAL-DESIGN ASSET PASS
   Final supplied cloud/button/star assets + robust no-JS behavior
   ========================================================= */

html:not(.js) .reveal,
html:not(.js) .cloud-slide,
html:not(.js) .edge-cloud,
html:not(.js) .bounce-on-view {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

img {
  image-rendering: auto;
}

:focus-visible {
  outline: 3px solid #1565c0;
  outline-offset: 4px;
}

.questionnaire-stars {
  position: absolute;
  z-index: 4;
  inset: 0;
  pointer-events: none;
}

.questionnaire-star {
  position: absolute;
  width: clamp(72px, 9vw, 125px);
  height: auto;
}

.questionnaire-star-one {
  top: 31%;
  right: 1.2%;
}

.questionnaire-star-two {
  left: 1.2%;
  bottom: 10%;
}

.benefit-card:last-child figure img {
  object-position: center 42%;
}

.entry-button.entry-button-art {
  display: inline-block;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  line-height: 0;
}

.entry-button.entry-button-art img {
  display: block;
  width: min(356px, 84vw);
  height: auto;
  filter: drop-shadow(0 6px 0 rgba(47,89,43,.20));
  transition: transform .2s ease, filter .2s ease;
}

.entry-button.entry-button-art:hover,
.entry-button.entry-button-art:focus-visible {
  transform: none;
  box-shadow: none;
}

.entry-button.entry-button-art:hover img,
.entry-button.entry-button-art:focus-visible img {
  transform: translateY(2px);
  filter: drop-shadow(0 4px 0 rgba(47,89,43,.20));
}

.floating-links:not(.is-visible) {
  pointer-events: none;
}

body.menu-open {
  overflow: hidden;
}

@media (max-width: 767px) {
  .questionnaire-star {
    width: 54px;
  }

  .questionnaire-star-one {
    top: 34%;
    right: -8px;
  }

  .questionnaire-star-two {
    left: -8px;
    bottom: 9%;
  }

  .entry-button.entry-button-art img {
    width: min(285px, 82vw);
  }
}


/* =========================================================
   V4 — FINAL CLIENT ASSETS + REFERENCE MOTION
   Every visible photo/illustration below comes from assets(2).zip.
   ========================================================= */
.visually-hidden {
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
body{background:#eee;}
main,.site-footer{max-width:1280px;background:#fff;}
.site-header{left:50%;right:auto;transform:translateX(-50%);width:min(100%,1280px);box-shadow:none;background:rgba(255,255,255,.82);}
.site-logo{flex-basis:178px}.site-logo img{width:178px}
.desktop-nav{min-height:48px}.header-entry{background-image:url('assets/final/header-entry.png');background-size:100% 100%;background-color:transparent;color:transparent;flex-basis:118px;min-height:48px}

.hero{aspect-ratio:auto;min-height:0;background:#d3e9f6;overflow:visible;}
.hero-media{position:relative;width:100%;aspect-ratio:942/494;overflow:hidden;background:#d3e9f6;}
.hero-video-pc,.hero-image-sp{display:block;width:100%;height:100%;object-fit:cover;}
.hero-image-sp{display:none;}
.hero-lead{position:relative;left:auto;bottom:auto;transform:none;width:100%;padding:74px 24px 98px;background:#fff;font-size:clamp(14px,1.35vw,18px);line-height:1.5;}
.hero-lead p{margin:.58em 0;}

.section-about{background:#72af58 url('assets/final/bg-about.png') center top/100% auto repeat-y;}
.section-work{background:#d2ab75 url('assets/final/bg-work.png') center top/100% auto repeat-y;}
.section-questionnaire{background:#ffe142 url('assets/final/bg-questionnaire.png') center top/100% auto repeat-y;border-radius:50% 50% 0 0/4.6% 4.6% 0 0;}
.section-welfare{background:#ef8fb2 url('assets/final/bg-welfare.png') center top/100% auto repeat-y;}
.section-training{background:#9bdced url('assets/final/bg-training.png') center top/100% auto repeat-y;}
.section-entry{background:#ffda35 url('assets/final/bg-entry.png') center top/100% 100% no-repeat;border-radius:50% 50% 0 0/17% 17% 0 0;}

.edge-clouds{z-index:9;top:-110px;height:250px;}
.edge-cloud{width:auto;max-width:none;opacity:0;}
.edge-cloud-left{left:0;transform:translate3d(calc(-100% - 180px),0,0)}
.edge-cloud-right{right:0;transform:translate3d(calc(100% + 180px),0,0)}
.edge-clouds-about .edge-cloud-left{width:35.8%}.edge-clouds-about .edge-cloud-right{width:36.5%}
.edge-clouds-work .edge-cloud-left{width:41%}.edge-clouds-work .edge-cloud-right{width:37.4%}
.edge-clouds-welfare .edge-cloud-left{width:50.3%}.edge-clouds-welfare .edge-cloud-right{width:37.4%}
.edge-clouds-training .edge-cloud-left{width:42.6%}.edge-clouds-training .edge-cloud-right{width:37.4%}
.edge-clouds-entry .edge-cloud-left{width:20%}.edge-clouds-entry .edge-cloud-right{width:37.4%}
.cloud-slide.is-visible.edge-cloud-left,.cloud-slide.is-visible.edge-cloud-right{animation:cloud-slide-final 2.7s cubic-bezier(.16,.84,.24,1) both;}
@keyframes cloud-slide-final{0%{opacity:0;transform:translate3d(var(--cloud-from),0,0)}18%{opacity:1}86%,100%{opacity:1;transform:translate3d(0,0,0)}}
.edge-cloud-left{--cloud-from:calc(-100% - 180px)}.edge-cloud-right{--cloud-from:calc(100% + 180px)}

.section-heading h2{background:#fff;box-shadow:none;border:2px solid #383838;}
.section-en{font-family:Georgia,'Times New Roman',serif;font-size:26px;text-shadow:-1px -1px 0 #333,1px -1px 0 #333,-1px 1px 0 #333,1px 1px 0 #333;}
.section-about .section-inner{padding-top:132px;padding-bottom:140px;}
.about-grid{max-width:920px;grid-template-columns:.82fr 1fr;gap:72px;}
.about-images img{border:2px solid #3a3a3a;border-radius:32px;box-shadow:none;}
.photo-track{animation-duration:26s}.photo-track img{width:33.333vw;max-width:426.7px;min-width:300px;height:280px;object-fit:cover;}

.section-work .section-inner{padding-top:145px;padding-bottom:180px;}
.work-list{max-width:930px;gap:42px}.work-card{border:2px solid #333;border-radius:20px;box-shadow:none;min-height:340px}.work-card figure{min-height:338px}
.work-card-copy{padding:38px}.work-character{display:none}.heading-mascot{right:1%;top:24px;width:112px;}

.section-questionnaire .section-inner{padding-top:145px;padding-bottom:180px;}
.questionnaire-mascot{position:absolute;z-index:6;top:-150px;left:50%;width:126px;transform:translateX(-50%);}
.questionnaire-stars-final{position:absolute;z-index:4;right:2%;bottom:2.8%;width:74px;pointer-events:none;}
.survey-card{max-width:960px;margin:0 auto 66px;padding:52px 54px 42px;border:0;background:#fffbea url('assets/final/survey-paper.png') center/100% 100% no-repeat;box-shadow:none;clip-path:none!important;overflow:visible;}
.survey-card:nth-of-type(even){clip-path:none}.survey-number{background:#eb6d28;border:2px solid #333;width:48px;height:48px;}
.survey-grid li{min-height:116px}.survey-character{width:102px}.survey-character-left{left:-35px;bottom:-26px}.survey-character-right{right:-30px;top:-42px}

.hotel-track img{width:33.333vw;max-width:426.7px;min-width:300px;height:265px;object-fit:cover;}
.section-welfare .section-inner{padding-top:142px;padding-bottom:160px;}
.welfare-character{left:4%;top:7%;width:82px;}
.benefit-card{border:2px solid #333;border-radius:18px;box-shadow:none}.benefit-card-wide{max-width:900px}.benefit-grid{max-width:900px}
.benefit-number-art{top:-31px;width:56px;height:56px;border:0;border-radius:0;background:none;object-fit:contain;}
.benefit-card:last-child figure img{object-position:center center;}

.section-training .section-inner{padding-top:140px;padding-bottom:180px;}
.training-grid{max-width:920px;margin:auto;grid-template-columns:.95fr 1.05fr;gap:48px}.training-visual{min-height:360px}.training-visual img{position:relative;inset:auto;width:100%;height:auto;object-fit:contain;border:0;border-radius:0;box-shadow:none;}
.training-copy h3{font-size:34px}.training-copy p{font-size:14px;line-height:1.85}

.section-entry{padding-top:100px;}.entry-characters{min-height:0;padding:0 24px}.entry-character-group{display:block;width:min(860px,84%);max-height:none!important;object-fit:contain}.section-entry .section-inner{padding-top:36px;padding-bottom:110px}.entry-button.entry-button-art img{width:min(330px,84vw);filter:none;}
.site-footer{padding:54px 24px 70px}.site-footer img{width:min(310px,78vw)}

/* Same fixed banner proportions and movement as the supplied confirmation build. */
.floating-links{right:-14px;bottom:22px;width:404px;height:104px;border:5px solid #b24b13;border-right-width:0;border-radius:999px 0 0 999px;background:#f58200;box-shadow:0 7px 0 rgba(92,46,18,.38);transform:none;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.floating-links.is-visible{opacity:1;pointer-events:auto}.floating-entry,.floating-social{height:100%;padding:12px 12px 13px;font-size:17px;line-height:1}.floating-entry{min-width:150px;grid-template-rows:28px 1fr}.floating-social{min-width:254px;border-left:4px solid rgba(92,46,18,.7)}.floating-entry b,.floating-social a{width:60px;height:60px}.floating-entry svg,.floating-social svg{width:39px;height:39px}
.bounce-on-view{opacity:0}.bounce-on-view.is-bouncing{animation:character-bounce-final .72s cubic-bezier(.2,.9,.25,1.2) both}
@keyframes character-bounce-final{0%{opacity:0;transform:translateY(28px) scale(.98)}42%{opacity:1;transform:translateY(-22px) scale(1.03)}68%{opacity:1;transform:translateY(6px) scale(1)}86%,100%{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:767px){
  :root{--header-height:0px}.site-header{opacity:0;pointer-events:none;min-height:58px;padding:0 116px 0 14px}.site-header.is-visible{opacity:1;pointer-events:auto}.site-logo{flex-basis:132px}.site-logo img{width:132px}.menu-button{position:fixed;top:0;right:0;width:58px;height:58px;border-radius:0;background:#f49aaa}.header-entry{display:grid;position:fixed;top:0;right:58px;width:58px;min-height:58px;border-radius:50%;}
  .mobile-menu{top:58px}.hero-media{aspect-ratio:1342/1332}.hero-video-pc{display:none}.hero-image-sp{display:block;object-fit:cover}.hero-lead{padding:54px 18px 72px;font-size:14px;}
  .section-inner,.section-inner.wide,.section-inner.narrow{width:min(calc(100% - 30px),680px)}
  .edge-clouds{top:-36px;height:100px}.edge-clouds-about .edge-cloud-left,.edge-clouds-about .edge-cloud-right,.edge-clouds-work .edge-cloud-left,.edge-clouds-work .edge-cloud-right,.edge-clouds-welfare .edge-cloud-left,.edge-clouds-welfare .edge-cloud-right,.edge-clouds-training .edge-cloud-left,.edge-clouds-training .edge-cloud-right{width:54%}.edge-clouds-entry .edge-cloud-left{width:30%}.edge-clouds-entry .edge-cloud-right{width:48%}
  .section-about .section-inner,.section-work .section-inner,.section-questionnaire .section-inner,.section-welfare .section-inner,.section-training .section-inner{padding-top:74px;padding-bottom:80px}.section-en{font-size:19px}.section-heading h2{font-size:19px;min-height:42px}
  .about-grid{grid-template-columns:1fr;gap:26px}.about-copy h3{font-size:28px}.about-images img{border-radius:20px}
  .photo-track img{width:72vw;min-width:270px;max-width:none;height:182px}
  .work-list{gap:24px}.work-card,.work-card-reverse{grid-template-columns:1fr;min-height:0}.work-card-reverse figure{order:0}.work-card figure{min-height:200px}.heading-mascot{width:72px;right:-2%;top:22px}
  .section-questionnaire{border-radius:50% 50% 0 0/2.2% 2.2% 0 0}.questionnaire-mascot{top:-94px;width:84px}.survey-card{margin-bottom:42px;padding:38px 16px 26px;background-size:100% 100%}.survey-grid-3{grid-template-columns:1fr}.survey-grid li{min-height:0;padding:11px 8px;border-left:0!important}.survey-character{width:68px}.survey-character-left{left:-8px;bottom:-20px}.survey-character-right{right:-8px;top:-25px}.questionnaire-stars-final{width:48px;right:0}
  .hotel-track img{width:84vw;min-width:270px;max-width:none;height:170px}
  .benefit-card-wide,.benefit-grid{grid-template-columns:1fr}.benefit-card figure img,.benefit-card-wide figure img{height:205px;min-height:0}.welfare-character{width:62px;top:5%;left:2%}
  .training-grid{grid-template-columns:1fr;gap:24px}.training-visual{min-height:0}.training-copy h3{font-size:27px}.training-copy p{font-size:12.5px}
  .section-entry{padding-top:56px;border-radius:50% 50% 0 0/7% 7% 0 0}.entry-character-group{width:96%}.section-entry .section-inner{padding-bottom:76px}
  .floating-links{right:-4px;bottom:16px;width:348px;height:92px;transform:scale(.72);transform-origin:right bottom}.floating-entry{min-width:126px}.floating-social{min-width:222px}.floating-entry,.floating-social{grid-template-rows:24px 1fr;padding:10px;font-size:15px}.floating-entry b,.floating-social a{width:54px;height:54px}.floating-entry svg,.floating-social svg{width:35px;height:35px}
}
@media(prefers-reduced-motion:reduce){.cloud-slide,.bounce-on-view{opacity:1!important;transform:none!important;animation:none!important}}

/* Exact latest questionnaire badges and repeated sparkle groups. */
.section-heading h2{background:#fff url('assets/final/heading-bubble.png') center/100% 100% no-repeat;border:0;min-height:54px;padding:10px 42px;}
.survey-number-art{width:48px!important;height:48px!important;border:0!important;border-radius:0!important;background:none!important;object-fit:contain;}
.questionnaire-stars-final{position:absolute;z-index:4;inset:0;pointer-events:none;}
.questionnaire-stars-final .stars{position:absolute;width:72px;height:auto;}
.questionnaire-stars-final .stars-one{right:2.2%;top:39%;}
.questionnaire-stars-final .stars-two{left:2%;top:63%;transform:scale(.8) rotate(180deg);}
.questionnaire-stars-final .stars-three{right:2.5%;bottom:2.5%;}
@media(max-width:767px){
  .section-heading h2{min-height:42px;padding:8px 28px;}
  .survey-number-art{width:42px!important;height:42px!important;}
  .questionnaire-stars-final .stars{width:44px;}
  .questionnaire-stars-final .stars-one{right:-5px;top:39%;}
  .questionnaire-stars-final .stars-two{left:-6px;top:63%;}
  .questionnaire-stars-final .stars-three{right:-5px;bottom:2%;}
}

/* =========================================================
   V5 — client feedback fixes
   ========================================================= */
body{background:#fff!important;}
main,.site-footer{width:100%!important;max-width:none!important;}
.hero,.section,.site-footer{width:100%;}
/* keep content centered while section backgrounds span full width */
.hero{max-width:none!important;}
.hero-media{max-width:1280px;margin:0 auto;}
.hero-lead{max-width:1280px;margin:0 auto;}
.site-header{width:min(100%,1280px)!important;}

/* Heading bubble without opaque rectangular backing */
.section-heading h2{
  position:relative;
  background:#fff!important;
  border:2px solid #383838!important;
  border-radius:999px!important;
  padding:10px 42px!important;
  overflow:visible;
}
.section-heading h2::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-14px;
  width:22px;
  height:22px;
  background:#fff;
  border-right:2px solid #383838;
  border-bottom:2px solid #383838;
  transform:translateX(-50%) rotate(45deg);
}
@media(max-width:767px){
  .section-heading h2{padding:8px 28px!important;}
  .section-heading h2::after{width:18px;height:18px;bottom:-11px;}
}

/* Stronger rounded section joins */
.section-questionnaire,.section-entry{position:relative;overflow:visible;}
.section-questionnaire::before,
.section-entry::before{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:min(1240px,100%);
  height:124px;
  top:-62px;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  z-index:1;
  pointer-events:none;
}
.section-questionnaire::before{background:#ffe142;}
.section-entry::before{background:#ffda35;top:-74px;height:148px;}
.section-questionnaire>.section-inner,
.section-entry>.section-inner,
.section-questionnaire .entry-characters,
.section-entry .entry-characters{position:relative;z-index:2;}
@media(max-width:767px){
  .section-questionnaire::before{top:-28px;height:56px;}
  .section-entry::before{top:-34px;height:68px;}
}

/* Clouds: always slide from the specified side and fade in */
.edge-cloud{opacity:0;will-change:transform,opacity;}
.cloud-slide.is-visible.edge-cloud-left{animation:cloud-slide-left-final 2.2s cubic-bezier(.16,.84,.24,1) both!important;}
.cloud-slide.is-visible.edge-cloud-right{animation:cloud-slide-right-final 2.2s cubic-bezier(.16,.84,.24,1) both!important;}
@keyframes cloud-slide-left-final{
  0%{opacity:0;transform:translate3d(calc(-100% - 180px),0,0)}
  18%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes cloud-slide-right-final{
  0%{opacity:0;transform:translate3d(calc(100% + 180px),0,0)}
  18%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0)}
}

/* Questionnaire cards - remove white fold / let badge sit above */
.survey-card{
  overflow:visible!important;
  background:#f6f1df!important;
  background-image:none!important;
  border:2px solid #383838!important;
  border-radius:0!important;
  box-shadow:none!important;
  clip-path:polygon(0 0,100% 0,100% 86%,94% 79%,78% 86%,0 100%)!important;
}
.survey-card:nth-of-type(even){clip-path:polygon(0 0,100% 0,100% 84%,94% 79%,80% 86%,0 100%)!important;}
.survey-number,
.survey-number-art{z-index:8!important;top:-26px!important;}
@media(max-width:767px){
  .survey-card,
  .survey-card:nth-of-type(even){clip-path:none!important;border-radius:0!important;}
  .survey-number,
  .survey-number-art{top:-21px!important;}
}

/* Entry character group larger like the design */
.entry-character-group{width:min(980px,92%)!important;}
@media(max-width:767px){.entry-character-group{width:100%!important;}}

/* Floating banner fully visible */
.floating-links{right:0!important;overflow:visible;}
@media(max-width:767px){.floating-links{right:0!important;}}
/* Welfare badges should not be clipped */
.benefit-card{overflow:visible!important;}
.benefit-card figure{overflow:hidden;border-radius:16px 0 0 16px;}
.benefit-card-wide figure{border-radius:16px 0 0 16px;}
.benefit-card:not(.benefit-card-wide) figure{border-radius:16px 16px 0 0;}
.benefit-number-art{z-index:6;top:-26px!important;}

/* =========================================================
   V6 — section image / curve alignment fixes from screenshot review
   ========================================================= */

/* Keep section artwork / mascots visible */
.section,
.section-work,
.section-questionnaire,
.section-welfare,
.section-training,
.section-entry,
.section-heading,
.section-inner,
.work-list,
.benefit-grid { overflow: visible !important; }
.section-character,
.heading-mascot,
.questionnaire-mascot,
.training-character,
.welfare-character,
.work-character { z-index: 12 !important; }

/* ABOUT: add the green curved rise under the intro text and bring clouds down */
.section-about {
  position: relative;
  margin-top: -34px;
  padding-top: 34px;
}
.section-about::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -118px;
  width: 138%;
  height: 210px;
  transform: translateX(-50%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  background: #72af58;
  z-index: 1;
  pointer-events: none;
}
.section-about .edge-clouds {
  top: -98px !important;
  z-index: 9;
}
.section-about .section-inner { position: relative; z-index: 2; }

/* Marquee images stay flush with the patterned section below */
.photo-marquee,
.hotel-marquee {
  line-height: 0;
  border: 0 !important;
  box-shadow: none;
}
.photo-track img,
.hotel-track img {
  vertical-align: top;
}

/* WORK section mascot placement / top clouds */
.section-work .edge-clouds { top: -66px !important; }
.work-character {
  top: 18.5% !important;
  right: 8.8% !important;
  width: 11.5% !important;
  max-width: 166px;
}
.section-work .section-heading { margin-bottom: 92px; }

/* QUESTIONNAIRE: broader yellow arc and more space before Q1 */
.section-questionnaire {
  position: relative;
  overflow: hidden !important;
}
.section-questionnaire::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -106px;
  width: 140%;
  height: 228px;
  transform: translateX(-50%);
  background: #f6dc3c;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  z-index: 1;
  pointer-events: none;
}
.section-questionnaire .section-inner {
  position: relative;
  z-index: 2;
  padding-top: 210px !important;
}
.questionnaire-mascot {
  top: -114px !important;
  width: 116px !important;
}
.section-questionnaire .section-heading { margin-bottom: 72px !important; }
.section-questionnaire .survey-card:first-of-type { margin-top: 24px; }
.survey-card {
  position: relative;
  z-index: 2;
}
.survey-number,
.survey-number-art {
  top: -24px !important;
}
.survey-character-left { left: -52px !important; bottom: -22px !important; }
.survey-character-right { right: -22px !important; top: -30px !important; }

/* Welfare layout / keep pilot fully visible */
.section-welfare { position: relative; }
.section-welfare .edge-clouds { top: -78px !important; }
.welfare-character {
  left: 12.2% !important;
  top: 33% !important;
  width: 11.5% !important;
  max-width: 148px;
}
.section-welfare .section-heading { margin-bottom: 66px !important; }
.section-welfare .benefit-card-wide { margin-top: 14px; }

/* TRAINING: use curved pink-to-blue transition and centered conductor mascot */
.section-training {
  position: relative;
  overflow: hidden !important;
}
.section-training::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -132px;
  width: 142%;
  height: 246px;
  transform: translateX(-50%);
  background: #e290b0;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  z-index: 1;
  pointer-events: none;
}
.section-training .edge-clouds {
  top: -48px !important;
  z-index: 8;
}
.section-training .section-inner {
  position: relative;
  z-index: 2;
  padding-top: 190px !important;
}
.training-character {
  position: absolute;
  left: 50%;
  top: -12px;
  width: 8.4% !important;
  max-width: 127px;
  transform: translateX(-50%);
}
.section-training .section-heading { margin-bottom: 54px !important; }

/* ENTRY illustration bigger / section clouds slightly lower */
.section-entry .edge-clouds { top: -46px !important; }
.entry-character-group {
  width: min(1080px, 96%) !important;
  max-width: 1080px;
}
.section-entry .entry-characters { margin-top: -4px; }

/* Floating banner fully in view */
.floating-links {
  right: 0 !important;
  bottom: 18px !important;
}

/* Mobile fixes */
@media (max-width: 767px) {
  .section-about {
    margin-top: -18px;
    padding-top: 18px;
  }
  .section-about::before {
    top: -62px;
    width: 150%;
    height: 118px;
  }
  .section-about .edge-clouds { top: -44px !important; }

  .section-work .edge-clouds { top: -24px !important; }
  .work-character {
    top: 16.5% !important;
    right: 3.2% !important;
    width: 112px !important;
    max-width: none;
  }

  .section-questionnaire::before {
    top: -44px;
    width: 170%;
    height: 96px;
  }
  .section-questionnaire .section-inner {
    padding-top: 98px !important;
  }
  .questionnaire-mascot {
    top: -74px !important;
    width: 78px !important;
  }
  .section-questionnaire .section-heading { margin-bottom: 48px !important; }
  .survey-character-left { left: -8px !important; bottom: -18px !important; }
  .survey-character-right { right: -4px !important; top: -26px !important; }

  .welfare-character {
    left: 7% !important;
    top: 22.5% !important;
    width: 82px !important;
  }

  .section-training::before {
    top: -56px;
    width: 170%;
    height: 108px;
  }
  .section-training .edge-clouds { top: -18px !important; }
  .section-training .section-inner {
    padding-top: 108px !important;
  }
  .training-character {
    top: -4px;
    width: 72px !important;
  }

  .section-entry .edge-clouds { top: -18px !important; }
  .entry-character-group {
    width: 104% !important;
    margin-left: -2%;
  }

  .floating-links {
    transform: scale(.72);
    transform-origin: right bottom;
  }
}

/* V8 final cascade overrides */
.hero-lead{max-width:none!important;width:100%!important;background:#fff!important;}
.section-about{isolation:isolate;margin-top:0!important;padding-top:0!important;}
.section-about::before{left:50%!important;top:-122px!important;width:142%!important;height:196px!important;transform:translateX(-50%)!important;border-radius:0 0 50% 50%/0 0 100% 100%!important;background:#fff!important;z-index:1!important;}
.section-about .edge-clouds{top:-92px!important;}
@media (min-width:768px){
  .edge-clouds-about .edge-cloud-left{width:min(458px,42vw)!important}.edge-clouds-about .edge-cloud-right{width:min(467px,42vw)!important}
  .edge-clouds-work .edge-cloud-left{width:min(525px,45vw)!important}.edge-clouds-work .edge-cloud-right{width:min(479px,42vw)!important}
  .edge-clouds-welfare .edge-cloud-left{width:min(644px,48vw)!important}.edge-clouds-welfare .edge-cloud-right{width:min(479px,42vw)!important}
  .edge-clouds-training .edge-cloud-left{width:min(545px,46vw)!important}.edge-clouds-training .edge-cloud-right{width:min(479px,42vw)!important}
  .edge-clouds-entry .edge-cloud-left{width:min(256px,25vw)!important}.edge-clouds-entry .edge-cloud-right{width:min(479px,42vw)!important}
}
@media (max-width:767px){
  .section-about{margin-top:0!important;padding-top:0!important}
  .section-about::before{top:-52px!important;width:170%!important;height:92px!important}
  .section-about .edge-clouds{top:-38px!important}
}

/* V10 final cascade overrides */
@media (min-width:768px){
  .site-header{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}
  .desktop-nav{flex:0 1 860px!important;margin-left:auto!important}
}
.section-about{isolation:auto!important;overflow:visible!important}
.section-about .edge-clouds{top:-108px!important;z-index:30!important;overflow:visible!important}
.section-about .edge-cloud{z-index:31!important}
@media (max-width:767px){.section-about .edge-clouds{top:-48px!important}}

/* V11 final cascade overrides */
body{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
.section-en{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif!important;font-weight:700!important;letter-spacing:.13em}
.section-heading h2,.work-card-copy .number,.work-card-copy h3{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-weight:700}
.heading-accent-about{color:#006a43}
.section-work .section-heading h2,.section-work .work-card-copy h3{color:#823647!important}
.work-card-copy .number{border-bottom-color:#cba36e!important}
.section-work .work-card:first-child{position:relative;overflow:visible!important}
.work-fujin{position:absolute;z-index:20;top:-112px;right:-42px;width:118px;height:auto}
@media (max-width:767px){.work-fujin{top:-70px;right:-8px;width:78px}}

/* V12 final cascade overrides */
.work-raijin{position:absolute;z-index:20;top:-112px;right:-42px;width:118px;height:auto}
@media (min-width:768px){
  .edge-clouds .edge-cloud-left{width:458px!important;max-width:none!important}
  .edge-clouds .edge-cloud-right{width:467px!important;max-width:none!important}
}
@media (min-width:768px) and (max-width:1100px){.section-about .edge-clouds{top:-76px!important}}
@media (max-width:767px){
  .edge-clouds .edge-cloud-left,.edge-clouds .edge-cloud-right{width:54%!important;max-width:none!important}
  .section-about .edge-clouds{top:-34px!important}
  .work-raijin{top:-70px;right:-8px;width:78px}
}

/* V13 final cascade overrides */
.section-questionnaire{position:relative;overflow:visible!important;border-radius:0!important}
.section-questionnaire::before{content:"";position:absolute;left:50%;top:-112px!important;width:142%!important;height:154px!important;transform:translateX(-50%);border-radius:50% 50% 0 0/100% 100% 0 0!important;background:#ffe142 url('assets/final/bg-questionnaire.png') center top/100% auto repeat!important;z-index:1!important;pointer-events:none}
.section-questionnaire>.questionnaire-boundary-character{position:absolute!important;left:calc(50% - 58px)!important;top:-168px!important;width:116px!important;height:auto;z-index:12!important}
.section-questionnaire>.section-inner{position:relative;z-index:2;padding-top:104px!important}
@media (max-width:767px){
  .section-questionnaire::before{top:-48px!important;width:175%!important;height:72px!important}
  .section-questionnaire>.questionnaire-boundary-character{left:calc(50% - 39px)!important;top:-88px!important;width:78px!important}
  .section-questionnaire>.section-inner{padding-top:72px!important}
}

/* V14 final cascade overrides */
.section-questionnaire::before{background-size:70.422535% auto!important;background-position:center 112px!important}
.section-questionnaire>.section-inner{padding-top:38px!important}
@media (max-width:767px){
  .section-questionnaire::before{background-size:57.142857% auto!important;background-position:center 48px!important}
  .section-questionnaire>.section-inner{padding-top:34px!important}
}

/* V15 final cascade overrides */
@media (max-width:767px){
  .section-questionnaire>.section-inner.wide{width:min(calc(100% - 76px),383px)!important;padding-top:34px!important;padding-bottom:54px!important}
  .section-questionnaire .section-heading{margin-bottom:36px!important}
  .section-questionnaire .section-heading h2{width:min(276px,100%)!important;margin-inline:auto!important;color:#e66f2c!important;font-size:14px!important}
  .section-questionnaire .survey-card{width:100%!important;min-height:220px!important;margin:0 auto 24px!important;padding:34px 12px 22px!important;overflow:visible!important;background-size:100% 100%!important}
  .section-questionnaire .survey-card h3{margin:0 0 10px!important;color:#823647!important;font-size:13px!important;line-height:1.45!important}
  .section-questionnaire .survey-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .section-questionnaire .survey-grid li{min-height:58px!important;padding:8px 6px!important;border-left:1px solid #4c4a43!important;font-size:9px!important;line-height:1.55!important}
  .section-questionnaire .survey-grid li:nth-child(3n+1){border-left:0!important}
  .section-questionnaire .survey-number-art{top:-15px!important;width:30px!important;height:30px!important;z-index:20!important}
  .section-questionnaire .survey-character{width:62px!important;z-index:12!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-left{left:-26px!important;bottom:-3px!important;top:auto!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-right{right:-22px!important;top:-45px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-left{left:-24px!important;top:-35px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-right{right:-22px!important;top:-35px!important;bottom:auto!important}
  .section-questionnaire .questionnaire-stars-final{z-index:8!important;overflow:visible!important}
  .section-questionnaire .questionnaire-stars-final .stars{width:40px!important}
  .section-questionnaire .questionnaire-stars-final .stars-one{left:-34px!important;right:auto!important;top:49%!important}
  .section-questionnaire .questionnaire-stars-final .stars-two{right:-34px!important;left:auto!important;top:67%!important}
  .section-questionnaire .questionnaire-stars-final .stars-three{right:-34px!important;bottom:0!important}
}

/* V16 final cascade overrides — intentionally last */
@media (max-width:767px){
  .section-questionnaire,
  .section-questionnaire>.section-inner.wide{overflow:visible!important}
  .section-questionnaire .survey-card{position:relative!important;overflow:visible!important;clip-path:none!important;isolation:isolate!important}
  .section-questionnaire .survey-number-art{position:absolute!important;top:-16px!important;z-index:30!important}
  .section-questionnaire .survey-character{z-index:14!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-left{left:-9px!important;bottom:-3px!important;top:auto!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-right{right:-7px!important;top:-45px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-left{left:-9px!important;top:-35px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-right{right:-7px!important;top:-35px!important;bottom:auto!important}
  .section-questionnaire .questionnaire-stars-final .stars-one{right:-32px!important;left:auto!important;top:32%!important}
  .section-questionnaire .questionnaire-stars-final .stars-two{left:-32px!important;right:auto!important;top:60%!important}
  .section-questionnaire .questionnaire-stars-final .stars-three{right:-32px!important;left:auto!important;bottom:-6px!important}
}

/* V17 final cascade overrides — PC/SP supplied design refresh */
.section-questionnaire .section-heading h2{color:#ec7930!important}
.section-questionnaire .survey-card h3{color:#823647!important}
.section-questionnaire .survey-accent{color:#ec7930!important}
.section-questionnaire .survey-answer{display:block;width:100%}
@media (min-width:768px){
  .section-welfare .welfare-character{left:7%!important;right:auto!important;top:32%!important;width:10.5%!important;max-width:132px!important}
  .section-welfare .benefit-number-art{top:-28px!important}
}

/* V18 PC questionnaire text-layout repair */
@media (min-width:768px){
  .section-questionnaire .survey-grid li{display:grid!important;place-items:center!important}
  .section-questionnaire .survey-answer{grid-area:1/1;text-align:center}
}
@media (max-width:767px){
  .section-welfare .welfare-character{left:8%!important;right:auto!important;top:10.5%!important;width:70px!important;z-index:12!important}
  .section-welfare .benefit-card{position:relative!important;overflow:visible!important}
  .section-welfare .benefit-card>div{position:static!important}
  .section-welfare .benefit-number-art{position:absolute!important;left:50%!important;top:-31px!important;width:58px!important;height:58px!important;transform:translateX(-50%)!important;z-index:20!important}

  .section-questionnaire>.section-inner.wide{width:calc(100% - 32px)!important;max-width:383px!important;padding-top:34px!important;padding-bottom:54px!important;overflow:visible!important}
  .section-questionnaire .section-heading{margin-bottom:54px!important}
  .section-questionnaire .section-heading h2{width:100%!important;font-size:18px!important}
  .section-questionnaire .survey-card{width:100%!important;min-height:0!important;margin:0 auto 58px!important;padding:42px 20px 30px!important;overflow:visible!important;background-size:100% 100%!important;isolation:isolate!important}
  .section-questionnaire .survey-card h3{margin:0 0 20px!important;font-size:19px!important;line-height:1.45!important}
  .section-questionnaire .survey-grid-3{grid-template-columns:1fr!important}
  .section-questionnaire .survey-grid li{display:block!important;min-height:0!important;padding:14px 0!important;border-left:0!important;border-top:1px solid #4c4a43!important;font-size:15px!important;line-height:1.65!important;text-align:left!important}
  .section-questionnaire .survey-number-art{position:absolute!important;top:-23px!important;width:46px!important;height:46px!important;z-index:40!important}
  .section-questionnaire .survey-character{width:72px!important;z-index:30!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-left{left:0!important;bottom:-18px!important;top:auto!important}
  .section-questionnaire .survey-card:nth-of-type(1) .survey-character-right{right:2px!important;top:-43px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-left{left:0!important;top:-42px!important;bottom:auto!important}
  .section-questionnaire .survey-card:nth-of-type(3) .survey-character-right{right:2px!important;top:-42px!important;bottom:auto!important}
}
