:root {
  --ink:#111;
  --blue:#4399cc;
  --pale:#eaf6fc;
  --navy:#004077;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:140px;
}

body {
  margin:0;
  color:var(--ink);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-weight:600;
  background:#fff;
}

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

button {
  font:inherit;
}

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

a:focus-visible,button:focus-visible {
  outline:3px solid var(--navy);
  outline-offset:6px;
}

.skip {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:100;
  background:#fff;
  padding:15px;
}

.skip:focus {
  top:10px;
}

header {
  height:110px;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 45px;
  z-index:30;
}

.logo {
  width:200px;
  height:auto;
}

header nav {
  display:flex;
  gap:48px;
  align-items:center;
  font-size:15px;
}

header nav a {
  padding:15px 0;
  transition:color .2s;
}

header nav a:hover {
  color:var(--blue);
}

.menu-button {
  display:none;
}

.hero {
  height:1210px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#fff 78%,#eaf6fc 100%);
}

.hero-town {
  position:absolute;
  width:1100px;
  height:1040px;
  top:95px;
  left:calc(50% - 115px);
}

.town {
  width:1100px;
  max-width:none;
  animation:town-enter 1.2s ease-out both;
}

.hero-card {
  position:absolute;
  left:max(8.333vw,calc((100% - 1200px)/2));
  top:240px;
  width:520px;
  padding:73px 70px 65px;
  background:white;
  border-radius:10px;
  box-shadow:0 5px 14px #15364b1c;
  padding-bottom:65px;
}

.script {
  font-family:"Snell Roundhand","Brush Script MT","URW Chancery L",cursive;
  font-weight:400;
  font-style:italic;
}

.creative {
  position:absolute;
  left:8px;
  top:-115px;
  font-size:125px;
  line-height:1.4;
  transform:rotate(-12deg);
  letter-spacing:2px;
}

.hero h1 {
  font-size:46px;
  line-height:1.4;
  letter-spacing:.015em;
  margin:0 0 28px;
  font-weight:800;
}

.hero p {
  font-size:16px;
  line-height:1.95;
  margin:0 0 30px;
}

.pill {
  border:1px solid #111;
  border-radius:50px;
  min-height:65px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px 48px 18px 28px;
  position:relative;
  font-size:16px;
  transition:background .25s,color .25s;
}

.pill span {
  position:absolute;
  right:26px;
  font-size:28px;
  line-height:1;
}

.pill:hover {
  background:var(--navy);
  border-color:var(--navy);
  color:white;
}

.pin {
  position:absolute;
  display:grid;
  place-items:center;
  width:75px;
  height:75px;
  background:var(--blue);
  color:white;
  font-size:20px;
  border:5px solid white;
  border-radius:50% 50% 50% 8%;
  transform:rotate(-45deg);
  box-shadow:0 3px 5px #00407720;
  animation:bob 3s ease-in-out 1;
}

.pin-one {
  left:290px;
  top:240px;
}

.pin-two {
  left:640px;
  top:520px;
  background:var(--navy);
}

.walker {
  width:63px;
  position:absolute;
  top:640px;
  left:315px;
  animation:walk 4s ease-in-out 1;
}

.scroll-cue {
  position:absolute;
  left:25%;
  bottom:65px;
  font-size:12px;
  letter-spacing:.12em;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:15px;
}

.scroll-cue span {
  height:70px;
  width:1px;
  background:#111;
}

.service-background {
  background:linear-gradient(#eaf6fc 0,#eaf6fc 830px,white 830px);
  padding:35px 0 0;
}

.notice {
  width:calc(100% - 240px);
  max-width:1200px;
  margin:0 auto 140px;
  border:1px solid #b8c0c4;
  border-radius:15px;
  background:white;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:35px;
  padding:33px 45px;
  position:relative;
  font-size:18px;
}

.notice span {
  font-size:14px;
  color:var(--navy);
  letter-spacing:.06em;
}

.notice b {
  position:absolute;
  right:25px;
  font-size:26px;
}

.service-panel,.works-panel {
  max-width:1280px;
  margin:auto;
  background:#fff;
  padding:58px 40px 0;
  position:relative;
}

.service-panel {
  box-shadow:0 -5px 14px #28537909;
}

.section-intro {
  text-align:center;
}

.section-intro h2,.contact h2 {
  font-family:Arial,sans-serif;
  font-size:50px;
  line-height:1.3;
  font-weight:700;
  margin:0 0 32px;
  letter-spacing:.01em;
}

.section-intro p {
  font-size:16px;
  line-height:1.9;
  margin:0;
}

.orbit {
  position:relative;
  width:760px;
  height:760px;
  max-width:100%;
  margin:55px auto 100px;
}

.orbit-ring {
  position:absolute;
  inset:12%;
  border:1px solid #bbc8cd;
  border-radius:50%;
}

.orbit-center {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:250px;
  height:250px;
  border-radius:50%;
  box-shadow:0 4px 16px #1637461a;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:20px;
  text-align:center;
}

.orbit-center img {
  width:180px;
  height:auto;
  flex-shrink:0;
}

.orbit-center small {
  font-size:13px;
}

.orbit-center strong {
  font-size:18px;
  line-height:1.6;
}

.orbit-item {
  position:absolute;
  left:var(--x);
  top:var(--y);
  transform:translate(-50%,-50%);
  width:147px;
  height:147px;
  border:10px solid #eef8fc;
  outline:1px dashed #a8c6d3;
  outline-offset:7px;
  background:#fff;
  border-radius:50%;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  gap:4px;
  transition:background .25s;
}

.orbit-item:nth-child(3n) {
  border-color:#fff9d9;
}

.orbit-item:nth-child(3n + 1) {
  border-color:#edf5e6;
}

.orbit-item:hover {
  background:#edf7fc;
}

.orbit-item svg {
  width:58px;
  height:58px;
  fill:none;
  stroke:#365b6c;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.orbit-item span {
  font-size:14px;
}

.service-rows {
  display:grid;
  gap:88px;
}

.service-row {
  border:1px solid #ccc;
  border-radius:20px;
  padding:35px 40px;
  display:grid;
  grid-template-columns:460px 1fr;
  gap:70px;
  align-items:center;
  position:relative;
  scroll-margin-top:145px;
}

.service-row:nth-child(even) {
  border-color:#72acd0;
}

.number {
  position:absolute;
  right:45px;
  top:-25px;
  background:white;
  padding:0 20px;
  line-height:1.2;
}

.service-row:nth-child(even) .number {
  color:var(--blue);
}

.service-image {
  position:relative;
  display:block;
  background:#f2f8fa;
}

.service-image img {
  width:100%;
  height:300px;
  object-fit:contain;
}

.service-row:nth-child(n + 3) .service-image img {
  object-fit:cover;
  object-position:top;
}

.round-arrow {
  position:absolute;
  right:-40px;
  top:50%;
  transform:translateY(-50%);
  width:80px;
  height:80px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--blue);
  border:3px solid white;
  color:white;
  font-size:50px;
  font-weight:400;
}

.service-copy h3 {
  font-size:23px;
  line-height:1.6;
  margin:0 0 28px;
  padding-bottom:20px;
  border-bottom:5px solid #eaf6fc;
  letter-spacing:-.025em;
}

.service-copy em {
  font-style:normal;
  color:#287ba8;
}

.service-copy p {
  font-size:16px;
  line-height:1.95;
  margin:0;
}

.detail {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:22px;
  min-height:44px;
  font-size:14px;
  color:var(--navy);
}

.detail:hover {
  text-decoration:underline;
}

.works-section {
  margin-top:180px;
  position:relative;
  padding-top:220px;
}

.works-band {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:410px;
  display:flex;
  overflow:hidden;
  background:var(--navy);
}

.works-band:after {
  content:"";
  position:absolute;
  inset:0;
  background:#10364677;
}

.works-band img {
  width:33.333%;
  object-fit:cover;
  object-position:top;
  filter:saturate(.5);
}

.works-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:65px 30px;
  margin:65px 0;
}

.work-img {
  border:1px solid #ccc;
  border-radius:10px;
  overflow:hidden;
  aspect-ratio:1.5;
}

.work-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top;
  transition:transform .4s;
}

.work:hover img {
  transform:scale(1.04);
}

.work h3 {
  font-size:20px;
  line-height:1.6;
  margin:17px 0 12px;
}

.work p {
  font-size:15px;
  margin:0;
  line-height:1.8;
}

.works-more {
  width:420px;
  max-width:100%;
  margin:auto;
  min-height:76px;
  font-size:18px;
}

.contact {
  max-width:1200px;
  margin:60px auto 80px;
  padding:80px 50px;
  display:grid;
  grid-template-columns:auto 1fr 350px;
  align-items:center;
  gap:35px;
  box-shadow:0 3px 16px #0002;
  border-radius:12px;
}

.contact h2 {
  margin:0;
}

.contact p {
  font-size:16px;
  line-height:1.9;
}

.blue {
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
}

.contact .pill {
  min-height:74px;
}

footer {
  background:linear-gradient(110deg,#e3f1fc,#f1faff);
  padding:70px max(40px,calc((100% - 1200px)/2)) 35px;
}

.footer-feature {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.footer-feature a {
  background:white;
  border:1px solid #242424;
  border-radius:10px;
  text-align:center;
  padding:30px 12px;
  position:relative;
}

.footer-feature strong {
  display:block;
  font-size:19px;
  margin-bottom:15px;
}

.footer-feature span {
  font-size:14px;
}

.footer-feature b {
  position:absolute;
  top:6px;
  right:12px;
  color:#555;
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:70px;
  padding:75px 0 40px;
}

.footer-bottom p,.footer-bottom a {
  font-size:14px;
  line-height:2;
}

.footer-bottom nav {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px 45px;
}

.copyright {
  display:block;
  text-align:center;
  color:#666;
  font-size:12px;
}

.back-top {
  position:fixed;
  right:42px;
  bottom:145px;
  background:var(--blue);
  color:white;
  width:56px;
  height:56px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:23px;
  z-index:10;
}

.floating-contact {
  position:fixed;
  right:20px;
  bottom:25px;
  background:var(--blue);
  color:white;
  border:8px solid white;
  box-shadow:0 0 12px #0002;
  border-radius:50px;
  padding:16px 30px;
  z-index:10;
  font-size:15px;
}

.floating-contact span {
  margin-left:30px;
}

.reveal-ready {
  opacity:0;
  transform:translateY(25px);
  transition:opacity .7s,transform .7s;
}

.reveal-ready.visible,.reveal-ready:focus-within {
  opacity:1;
  transform:none;
}

@keyframes town-enter {
  from {
    opacity:0;
    transform:translate(45px,25px);
  }
  to {
    opacity:1;
    transform:none;
  }
}

@keyframes bob {
  50% {
    translate:0 -10px;
  }
}

@keyframes walk {
  50% {
    translate:10px -5px;
  }
}

@media(min-width:1600px) {
  .hero-town {
    left:43%;
  }
}

@media(max-width:1200px) {
  header {
    padding:0 30px;
  }
  header nav {
    gap:25px;
  }
  .service-row {
    grid-template-columns:40% 1fr;
    gap:50px;
  }
  .service-copy h3 {
    font-size:21px;
  }
  .service-panel,.works-panel {
    margin:0 40px;
    padding-left:30px;
    padding-right:30px;
  }
  .contact {
    margin:60px 70px 80px;
    grid-template-columns:1fr 1.5fr;
    padding:50px;
  }
  .contact .pill {
    grid-column:2;
  }
  .notice {
    width:calc(100% - 140px);
  }
}

@media(max-width:1000px) {
  html {
    scroll-padding-top:90px;
  }
  header {
    height:64px;
    padding:0 15px;
  }
  .logo {
    width:152px;
  }
  .menu-button {
    display:flex;
    background:none;
    border:0;
    width:42px;
    height:44px;
    padding:8px;
    flex-direction:column;
    justify-content:space-around;
  }
  .menu-button span {
    height:2px;
    background:#111;
    width:100%;
  }
  .menu-button[aria-expanded="true"] {
    position:relative;
  }
  .menu-button[aria-expanded="true"] span {
    position:absolute;
    top:21px;
    left:8px;
    width:26px;
  }
  .menu-button[aria-expanded="true"] span:nth-child(1) {
    transform:rotate(45deg);
  }
  .menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity:0;
  }
  .menu-button[aria-expanded="true"] span:nth-child(3) {
    transform:rotate(-45deg);
  }
  header nav {
    display:none;
    position:absolute;
    top:64px;
    left:0;
    width:100%;
    padding:20px 30px;
    background:#fff;
    box-shadow:0 10px 15px #0001;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  header nav.open {
    display:flex;
  }
  .hero {
    height:850px;
  }
  .hero-town {
    width:630px;
    height:500px;
    left:calc(50% - 280px);
    top:42px;
  }
  .town {
    width:630px;
  }
  .hero-card {
    top:290px;
    left:12px;
    width:calc(100% - 24px);
    padding:78px 29px 42px;
  }
  .creative {
    font-size:90px;
    left:5px;
    top:-65px;
  }
  .hero h1 {
    font-size:30px;
    line-height:1.45;
    margin-bottom:28px;
  }
  .hero p {
    font-size:14px;
    line-height:1.9;
    margin-bottom:28px;
  }
  .hero .pill {
    font-size:14px;
    min-height:54px;
    padding:12px 35px 12px 15px;
  }
  .pin {
    width:48px;
    height:48px;
    font-size:13px;
    border-width:3px;
  }
  .pin-one {
    left:230px;
    top:110px;
  }
  .pin-two {
    left:420px;
    top:210px;
  }
  .walker {
    display:none;
  }
  .scroll-cue {
    display:none;
  }
  .service-background {
    padding-top:0;
    background:linear-gradient(#eaf6fc 0,#eaf6fc 550px,#fff 550px);
  }
  .notice {
    width:calc(100% - 40px);
    padding:22px 32px 22px 20px;
    margin:0 auto 65px;
    gap:10px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    font-size:13px;
    line-height:1.8;
    border-radius:10px;
  }
  .notice span {
    font-size:11px;
  }
  .service-panel,.works-panel {
    margin:0 12px;
    padding:42px 16px 0;
  }
  .section-intro h2,.contact h2 {
    font-size:36px;
    margin-bottom:24px;
  }
  .section-intro p {
    font-size:14px;
    line-height:1.9;
    text-align:left;
  }
  .desktop {
    display:none;
  }
  .orbit {
    width:320px;
    height:340px;
    max-width:none;
    left:50%;
    transform:translateX(-50%);
    margin:30px 0 55px;
  }
  .orbit-ring {
    inset:15% 12%;
  }
  .orbit-center {
    width:112px;
    height:112px;
    gap:8px;
  }
  .orbit-center img {
    width:82px;
  }
  .orbit-center small {
    font-size:7px;
  }
  .orbit-center strong {
    font-size:10px;
  }
  .orbit-item {
    width:69px;
    height:69px;
    border-width:5px;
    outline-offset:2px;
    gap:0;
  }
  .orbit-item svg {
    width:30px;
    height:30px;
  }
  .orbit-item span {
    font-size:8px;
    white-space:nowrap;
  }
  .service-rows {
    gap:55px;
  }
  .service-row {
    display:flex;
    flex-direction:column;
    gap:25px;
    padding:27px 19px 23px;
    border-radius:12px;
    scroll-margin-top:95px;
  }
  .number {
    font-size:29px;
    right:16px;
    top:-18px;
    padding:0 12px;
  }
  .service-image {
    width:100%;
  }
  .service-image img {
    height:205px;
  }
  .round-arrow {
    width:48px;
    height:48px;
    font-size:32px;
    right:-12px;
    top:auto;
    bottom:-12px;
    transform:none;
  }
  .service-copy h3 {
    font-size:19px;
    line-height:1.65;
    margin-bottom:19px;
    padding-bottom:18px;
  }
  .service-copy p {
    font-size:14px;
    line-height:1.9;
  }
  .detail {
    font-size:13px;
    margin-top:18px;
  }
  .works-section {
    margin-top:80px;
    padding-top:110px;
  }
  .works-band {
    height:210px;
  }
  .works-band img {
    width:50%;
  }
  .works-band img:last-child {
    display:none;
  }
  .works-grid {
    grid-template-columns:1fr;
    gap:35px;
    margin:35px 0;
  }
  .work h3 {
    font-size:18px;
    margin:12px 0 6px;
  }
  .work p {
    font-size:14px;
  }
  .works-more {
    min-height:58px;
    font-size:15px;
  }
  .contact {
    margin:50px 20px;
    padding:36px 22px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:16px;
    text-align:center;
  }
  .contact h2 {
    margin:0;
  }
  .contact p {
    font-size:14px;
    margin:0;
    line-height:1.9;
  }
  .contact .pill {
    min-height:58px;
    font-size:14px;
  }
  footer {
    padding:40px 20px 90px;
  }
  .footer-feature {
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
  .footer-feature a {
    padding:25px 8px;
  }
  .footer-feature strong {
    font-size:13px;
    margin-bottom:10px;
  }
  .footer-feature span {
    font-size:11px;
  }
  .footer-bottom {
    flex-direction:column;
    padding:40px 0 25px;
    gap:25px;
  }
  .footer-bottom nav {
    gap:8px 16px;
  }
  .footer-bottom a {
    font-size:12px;
  }
  .back-top {
    width:42px;
    height:42px;
    right:16px;
    bottom:87px;
    font-size:19px;
  }
  .floating-contact {
    font-size:13px;
    right:10px;
    bottom:12px;
    padding:10px 22px;
    border-width:5px;
  }
  .reveal-ready.orbit {
    transform:translate(-50%,25px);
  }
  .reveal-ready.orbit.visible,.reveal-ready.orbit:focus-within {
    transform:translate(-50%,0);
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  .reveal-ready {
    opacity:1;
    transform:none;
  }
}

@media(max-width:1000px) and (prefers-reduced-motion:reduce) {
  .reveal-ready.orbit {
    transform:translateX(-50%);
  }
}

.pin span {
  transform:rotate(45deg);
}

.blue,.floating-contact {
  background:#247aab;
  border-color:#247aab;
}

.floating-contact {
  border-color:white;
}

@media(max-width:1000px) {
  .hero-town {
    top:-10px;
  }
  .orbit-item span {
    font-size:9px;
  }
}

/* CLEF実画面との採寸差を調整：2026-09-24 */
body {
  font-weight:400;
  font-family:"Noto Sans JP",YuGothic,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}

header nav {
  font-weight:600;
  gap:52px;
}

.hero {
  height:1240px;
}

.hero-town {
  top:110px;
  left:calc(50% - 360px);
  width:1080px;
  height:1080px;
}

.town {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.hero-card {
  height:915px;
  padding-top:150px;
}

.hero h1 {
  font-weight:600;
  margin-bottom:50px;
  letter-spacing:0;
}

.hero p {
  font-weight:500;
  line-height:1.8;
  margin-bottom:60px;
}

.hero .pill {
  height:73px;
  font-weight:500;
}

.creative {
  left:64px;
  top:-92px;
  font-size:110px;
  transform:rotate(-20deg);
  font-weight:400;
  letter-spacing:8px;
}

.scroll-cue {
  left:calc(max(8.333vw, (100% - 1200px)/2) + 230px);
  bottom:120px;
  font-size:14px;
  color:#666;
  letter-spacing:0;
  z-index:2;
}

.section-intro h2,.contact h2 {
  font-weight:600;
}

.section-intro p {
  font-weight:500;
}

.service-copy h3 {
  font-size:24px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:0;
}

.service-copy h3 em:before {
  content:' ';
}

.service-copy p {
  font-weight:400;
  line-height:1.9;
}


.service-row {
  min-height:372px;
}

.number {
  font-family:"Times New Roman",serif;
  font-size:40px;
}

.service-image {
  background:#fff;
}

.service-image img {
  object-fit:cover;
}

.service-row:nth-child(-n + 2) .service-image img {
  object-fit:contain;
  scale:1.1;
}

.service-panel {
  padding-top:58px;
}

.section-intro h2 {
  margin-bottom:36px;
}

.work h3 {
  font-weight:600;
}

.work p {
  font-weight:400;
}

.contact p {
  font-weight:500;
}

.pill {
  font-weight:500;
}

.map-pin {
  position:absolute;
  display:grid;
  place-items:center;
  width:66px;
  height:66px;
  border:1.5px solid #333;
  border-radius:50%;
  background:#fff;
  filter:drop-shadow(0 2px 1px #0002);
  animation:pin-appear .7s both;
}

.map-pin:before {
  content:'';
  position:absolute;
  bottom:-25px;
  left:25px;
  border-left:8px solid transparent;
  border-right:8px solid transparent;
  border-top:27px solid #333;
}

.map-pin:after {
  content:'';
  position:absolute;
  bottom:-21px;
  left:26px;
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:25px solid white;
}

.map-pin svg {
  width:39px;
  height:39px;
  fill:#eaf6fc;
  stroke:#555;
  stroke-width:2;
}

.map-pin-1 {
  left:43%;
  top:13%;
  animation-delay:.2s;
}

.map-pin-2 {
  left:65%;
  top:31%;
  animation-delay:.4s;
}

.map-pin-3 {
  left:81%;
  top:49%;
  animation-delay:.6s;
}

.map-pin-4 {
  left:35%;
  top:58%;
  animation-delay:.8s;
}

.map-pin-5 {
  left:61%;
  top:72%;
  animation-delay:1s;
}

.side-copyright {
  position:fixed;
  left:10px;
  top:35%;
  writing-mode:vertical-rl;
  font-size:13px;
  color:#999;
  letter-spacing:.04em;
  z-index:5;
}

.fixed-consult {
  position:fixed;
  right:0;
  bottom:0;
  width:280px;
  padding:15px 23px;
  background:white;
  box-shadow:0 0 15px #0001;
  border-radius:12px 0 0 0;
  z-index:15;
}

.fixed-consult p {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  font-weight:600;
  font-size:13px;
  line-height:1.4;
}

.fixed-consult svg {
  width:60px;
  height:40px;
  fill:#687c87;
  stroke:#d5e4ec;
  stroke-width:2;
}

.floating-contact {
  position:relative;
  right:auto;
  bottom:auto;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:12px 15px;
  border:0;
  box-shadow:none;
  font-size:16px;
  font-weight:500;
}

.floating-contact span {
  position:absolute;
  right:18px;
  font-size:25px;
  margin:0;
}

.back-top {
  bottom:162px;
}

.contact {
  padding-top:80px;
  padding-bottom:80px;
}

.footer-feature strong {
  font-weight:600;
}

@keyframes pin-appear {
  from {
    opacity:0;
    translate:0 -18px;
  }
  to {
    opacity:1;
    translate:0 0;
  }
}

@media(max-width:1200px) and (min-width:1001px) {
  .hero-card {
    left:7%;
    width:470px;
    padding-left:50px;
    padding-right:50px;
  }
  .hero-town {
    left:30%;
  }
}

@media(max-width:1000px) {
  header nav {
    gap:4px;
  }
  .hero {
    height:860px;
  }
  .hero-town {
    top:52px;
    width:620px;
    height:450px;
    left:calc(50% - 300px);
  }
  .town {
    object-fit:cover;
    object-position:50% 45%;
  }
  .hero-card {
    top:278px;
    height:auto;
    min-height:486px;
    padding:78px 29px 58px;
  }
  .hero h1 {
    font-size:30px;
    line-height:1.4;
    margin-bottom:30px;
    font-weight:600;
  }
  .hero p {
    line-height:1.8;
    margin-bottom:30px;
    font-weight:500;
  }
  .hero .pill {
    height:54px;
  }
  .creative {
    font-size:88px;
    top:-83px;
    left:2px;
    letter-spacing:5px;
    transform:rotate(-17deg);
  }
  .scroll-cue {
    display:none;
  }
  .map-pin {
    display:none;
  }
  .side-copyright {
    display:none;
  }
  .service-copy h3 {
    font-size:20px;
  }
  .service-row {
    min-height:0;
  }
  .service-image img {
    object-fit:contain;
  }
  .service-row:nth-child(-n + 2) .service-image img {
    scale:1;
  }
  .number {
    font-size:30px;
  }
  .fixed-consult {
    width:200px;
    padding:8px 12px;
  }
  .fixed-consult p {
    display:none;
  }
  .floating-contact {
    font-size:13px;
    padding:11px 20px;
  }
  .back-top {
    bottom:78px;
  }
  .contact {
    padding:36px 22px;
  }
  .section-intro h2 {
    margin-bottom:24px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .map-pin {
    animation:none;
  }
}

@media(min-width:1001px) {
  .town {
    clip-path:polygon(55% 0,100% 0,100% 100%,0 100%,0 38%);
  }
  .notice {
    margin-bottom:197px;
  }
  .orbit {
    margin-bottom:43px;
  }
}

@media(min-width:1001px) and (max-width:1200px) {
  header nav {
    gap:25px;
    font-size:14px;
  }
  header .logo {
    width:180px;
  }
}

/* フッター会社情報：ロゴ＋社名／所在地／右側2列 */
footer {
  padding:0 0 35px;
  background:#fff;
}

.footer-feature-band {
  padding:70px 40px;
  background:linear-gradient(110deg,#e3f1fc,#f1faff);
}

.footer-feature {
  max-width:1200px;
  margin:auto;
}

.footer-bottom {
  max-width:1200px;
  margin:auto;
  padding:50px 0 95px;
  display:grid;
  grid-template-columns:480px 1fr 1fr;
  gap:40px;
  align-items:start;
}

.footer-brand {
  display:flex;
  align-items:center;
  gap:18px;
  width:fit-content;
}

.footer-brand .logo {
  width:180px;
}

.footer-brand strong {
  font-size:18px;
  font-weight:600;
  white-space:nowrap;
}

.footer-company address {
  font-style:normal;
  font-size:16px;
  line-height:1.95;
  margin-top:24px;
}

.address-break {
  display:none;
}

.footer-company .footer-company-link {
  display:inline-block;
  font-size:16px;
  line-height:1.8;
  color:#26779e;
  margin-top:28px;
}

.footer-bottom nav {
  display:flex;
  flex-direction:column;
  gap:16px;
  padding-top:2px;
}

.footer-bottom nav a {
  font-size:16px;
  font-weight:500;
  line-height:1.5;
  width:fit-content;
}

.footer-bottom nav a:hover {
  text-decoration:underline;
}

.copyright {
  padding:0 20px;
}

@media(max-width:1280px) {
  .footer-bottom {
    margin:0 40px;
    grid-template-columns:40% 1fr 1fr;
    gap:35px;
  }
  .address-break {
    display:block;
  }
}

@media(max-width:1000px) {
  .footer-bottom {
    grid-template-columns:1fr 1fr;
    gap:35px;
    padding:45px 0 60px;
  }
  .footer-company {
    grid-column:1 / -1;
  }
  .address-break {
    display:none;
  }
}

@media(max-width:600px) {
  footer {
    padding-bottom:90px;
  }
  .footer-feature-band {
    padding:40px 20px;
  }
  .footer-bottom {
    margin:0 25px;
    grid-template-columns:1fr;
    gap:30px;
    padding:40px 0;
  }
  .footer-brand {
    gap:14px;
  }
  .footer-brand .logo {
    width:150px;
  }
  .footer-brand strong {
    font-size:15px;
  }
  .footer-company address {
    font-size:14px;
    margin-top:20px;
  }
  .address-break {
    display:block;
  }
  .footer-company .footer-company-link {
    font-size:14px;
    margin-top:20px;
  }
  .footer-bottom nav {
    gap:16px;
  }
  .footer-bottom nav a {
    font-size:14px;
  }
  .footer-service-nav {
    border-top:1px solid #eee;
    padding-top:26px!important;
  }
}

.footer-guide-links {
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:10px;
  padding-top:24px;
  border-top:1px solid #e5e8ea;
}

/* Final shared polish: preserve footer navigation and approved artwork. */
.back-top[hidden],.fixed-consult[hidden] {
  display:none!important;
}

.imaiso-park__content .consult-free-note {
  font-size:15px;
  font-weight:600;
  line-height:1.5;
  margin:24px 0 12px;
  letter-spacing:.06em;
}

@media(max-width:600px) {
  .imaiso-park__content .consult-free-note {
    font-size:14px;
    margin-top:20px;
  }
}

.title-phrase {
  display:inline-block;
}

/* 現行imaiso.netの素材・動きを確認版のレイアウトへ移植 */
.imaiso-island {
  position:absolute;
  left:calc(50% - 105px);
  top:175px;
  width:min(68vw,980px);
  pointer-events:none;
  animation:imaiso-float 5s ease-in-out infinite;
}

.imaiso-island>img {
  width:100%;
  height:auto;
}

.imaiso-island .iso-person {
  position:absolute;
  left:2.86%;
  top:83.2%;
  width:5.95%;
  animation:imaiso-walk 12s ease-in-out infinite alternate;
}

.imaiso-island .iso-person img {
  width:100%;
  height:auto;
}

.imaiso-island .iso-crowd>div {
  position:absolute;
  pointer-events:none;
  width:3%;
  z-index:1;
}

.imaiso-island .iso-crowd img {
  width:100%;
  height:auto;
}

.imaiso-island .iso-crowd__c {
  left:-15.4%;
  top:84.1%;
}

.imaiso-island .iso-crowd__d {
  left:-10.7%;
  top:77.9%;
}

.imaiso-island .iso-crowd__e {
  left:-20.2%;
  top:87%;
}

.imaiso-island .iso-crowd__f {
  left:-31.3%;
  top:84.5%;
  width:3.1%;
}

.imaiso-island .iso-crowd__g {
  display:none;
}

@keyframes imaiso-float {
  0%,100% {
    transform:translateY(0);
  }
  50% {
    transform:translateY(-10px);
  }
}

@keyframes imaiso-walk {
  from {
    transform:translateX(-14px);
  }
  to {
    transform:translateX(14px);
  }
}

.imaiso-park {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:740px;
  margin-top:65px;
  background:#fff;
  color:white;
}

.imaiso-park:before,.imaiso-park:after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:-2;
}

.imaiso-park:before {
  background:#002f4e;
  clip-path:polygon(0 10%,50% 29%,100% 10%,100% 100%,0 100%);
}

.imaiso-park:after {
  background:#004077;
  clip-path:polygon(0 46%,100% 10%,100% 76%,0 100%);
  z-index:-1;
}

.imaiso-park__marquee {
  position:absolute;
  left:-10%;
  top:28%;
  width:120%;
  transform:rotate(-12deg);
  opacity:.24;
  pointer-events:none;
}

.imaiso-park__track {
  display:flex;
  width:max-content;
  gap:140px;
  animation:imaiso-marquee 60s linear infinite;
}

.imaiso-park__track img {
  width:1614px;
  max-width:none;
  height:94px;
  flex:0 0 1614px;
}

@keyframes imaiso-marquee {
  to {
    transform:translateX(calc(-50% - 70px));
  }
}

.imaiso-park__scene {
  position:absolute;
  left:6%;
  top:24px;
  width:280px;
  height:304px;
  pointer-events:none;
}

.imaiso-park__scene img {
  position:absolute;
  height:auto;
}

.imaiso-park__wheel {
  width:154px;
  left:0;
  top:0;
}

.imaiso-park__person-a {
  width:45px;
  left:200px;
  top:152px;
}

.imaiso-park__person-b {
  width:32px;
  left:112px;
  top:224px;
}

.imaiso-park__content {
  position:relative;
  z-index:1;
  text-align:center;
  padding:320px 24px 110px;
}

.imaiso-park__content h2 {
  font-size:40px;
  line-height:1.6;
  font-weight:600;
  margin:0;
}

.imaiso-park__content p {
  font-size:16px;
  line-height:2;
  margin:24px 0 32px;
}

.imaiso-park__button {
  background:#f2e725;
  border-color:#f2e725;
  color:#004077;
  width:350px;
  max-width:100%;
  min-height:72px;
  margin:auto;
  font-weight:600;
}

.imaiso-park__button:hover {
  background:#fff56b;
  color:#004077;
  border-color:#fff56b;
}

.imaiso-park a:focus-visible {
  outline-color:white;
}

@media(max-width:1000px) {
  .imaiso-island {
    width:650px;
    left:calc(50% - 155px);
    top:190px;
  }
  .hero-card {
    z-index:1;
  }
  .imaiso-island {
    width:450px;
    left:calc(50% - 190px);
    top:40px;
  }
  .imaiso-island .iso-crowd {
    display:none;
  }
  .hero-card {
    top:330px;
  }
  .hero {
    height:910px;
  }
  .imaiso-park__scene {
    left:4%;
    transform:scale(.8);
    transform-origin:top left;
  }
}

@media(max-width:600px) {
  .imaiso-park {
    min-height:510px;
    margin-top:45px;
  }
  .imaiso-park:before {
    clip-path:polygon(0 6%,50% 18%,100% 6%,100% 100%,0 100%);
  }
  .imaiso-park:after {
    clip-path:polygon(0 28%,100% 12%,100% 84%,0 100%);
  }
  .imaiso-park__scene {
    display:none;
  }
  .imaiso-park__marquee {
    top:70px;
    left:-20%;
    width:140%;
    transform:rotate(-4deg);
    opacity:.16;
  }
  .imaiso-park__track {
    gap:90px;
    animation-name:imaiso-marquee-sp;
  }
  .imaiso-park__track img {
    width:600px;
    height:auto;
    flex-basis:600px;
  }
  .imaiso-park__content {
    padding:152px 24px 72px;
  }
  .imaiso-park__content h2 {
    font-size:26px;
    line-height:1.6;
  }
  .imaiso-park__content p {
    font-size:14px;
  }
  .imaiso-park__button {
    min-height:64px;
    font-size:15px;
  }
}

@keyframes imaiso-marquee-sp {
  to {
    transform:translateX(calc(-50% - 45px));
  }
}

@media(prefers-reduced-motion:reduce) {
  .imaiso-island,.imaiso-island .iso-person,.imaiso-park__track {
    animation:none!important;
  }
}

@media(min-width:1001px) {
  .imaiso-island {
    left:42%;
    top:145px;
    width:min(60vw,880px);
  }
  .imaiso-island .iso-person {
    left:31%;
    top:91%;
  }
  .imaiso-island .iso-crowd__c {
    left:48%;
    top:95%;
  }
  .imaiso-island .iso-crowd__d {
    left:60%;
    top:88%;
  }
  .imaiso-island .iso-crowd__e {
    left:76%;
    top:94%;
  }
  .imaiso-island .iso-crowd__f {
    left:87%;
    top:82%;
  }
}

@media(max-width:1000px) {
  .imaiso-island .iso-person {
    left:10%;
    top:60%;
  }
}

/* FV微調整：左右の構図を保持して見出しに強弱を付ける */
.hero-focus {
  font-size:1.13em;
  font-weight:700;
  white-space:nowrap;
}

.hero-focus>span {
  background:linear-gradient(transparent 76%,#f2e725 76%,#f2e725 94%,transparent 94%);
}

@media(min-width:1001px) {
  .hero-card {
    padding-top:112px;
  }
  .hero h1 {
    margin-bottom:40px;
  }
  .imaiso-island {
    left:40.5%;
  }
}

@media(max-width:1000px) {
  .hero-card {
    padding-top:60px;
  }
  .hero-focus {
    font-size:1.1em;
  }
}

/* スクロール案内は初期画面内の左端へ。ページと一緒に流す */
@media(min-width:1001px) {
  .hero {
    height:1080px;
  }
  .hero-card {
    height:auto;
    padding-bottom:65px;
  }
  .scroll-cue {
    left:24px;
    top:clamp(180px,calc(100svh - 112px),900px);
    bottom:auto;
    font-size:10px;
    letter-spacing:.06em;
    gap:12px;
    color:#52616a;
  }
  .scroll-cue span {
    height:42px;
    background:#52616a;
  }
}

.service-row:nth-child(n + 3) .service-image img {
  object-fit:contain;
  object-position:center;
  scale:1.1;
}

@media(max-width:1000px) {
  .service-row:nth-child(n + 3) .service-image img {
    scale:1;
  }
}

/* WORKS：実績と無関係な光と影の背景 */
.works-band {
  background:#e9ecec;
}

.works-band:after {
  display:none;
}

.works-band img,.works-band img:last-child {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:none;
}

/* 現行イマイソと同じ紺でアニメーションからフッターをつなぐ */
footer {
  background:#002f4e;
  color:#fff;
}

.footer-bottom {
  padding-top:58px;
}

.footer-brand strong,.footer-bottom nav a {
  color:#fff;
}

.footer-company address,.copyright {
  color:#c6d4df;
}

.footer-company .footer-company-link {
  color:#f2e725;
}

.footer-guide-links {
  border-top-color:#ffffff30;
}

.footer-bottom nav a:hover {
  color:#f2e725;
}

footer a:focus-visible {
  outline:2px solid #f2e725;
  outline-offset:6px;
}

@media(max-width:600px) {
  .footer-service-nav {
    border-top-color:#ffffff30;
  }
  .footer-bottom {
    padding-top:40px;
  }
}

/* 依頼判断に必要な説明とヘッダーの相談導線 */
header nav {
  gap:26px;
  font-size:14px;
}

header nav .header-contact {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  background:#f2e725;
  color:#002f4e;
  padding:17px 23px;
  border-radius:4px;
  white-space:nowrap;
}

header nav .header-contact:hover {
  background:#e5da18;
  color:#002f4e;
}

.work .work-intent {
  font-size:15px;
  line-height:1.8;
  color:#315d74;
  margin-top:12px;
}

.about-approach {
  max-width:1200px;
  margin:140px auto 90px;
  padding:0 40px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  color:#002f4e;
}

.approach-label {
  font-size:14px;
  margin:0 0 24px;
}

.approach-intro h2 {
  font-size:36px;
  line-height:1.6;
  margin:0 0 30px;
}

.approach-intro>p:not(.approach-label) {
  font-size:16px;
  line-height:2;
}

.approach-company {
  display:inline-flex;
  gap:50px;
  align-items:center;
  margin-top:24px;
  padding-bottom:12px;
  border-bottom:2px solid #f2e725;
  font-weight:600;
}

.approach-details>div {
  padding:25px 0;
  border-bottom:1px solid #dce5e9;
}

.approach-details>div:first-child {
  padding-top:0;
}

.approach-details h3 {
  font-size:20px;
  line-height:1.6;
  margin:0 0 12px;
}

.approach-details p {
  font-size:15px;
  line-height:1.9;
  margin:0 0 12px;
  color:#333;
}

.approach-details a {
  font-size:14px;
  color:#315d74;
  text-decoration:underline;
  text-underline-offset:5px;
}

@media(min-width:1001px) and (max-width:1200px) {
  header {
    padding:0 24px;
  }
  header nav {
    gap:18px;
    font-size:13px;
  }
  header .logo {
    width:150px;
  }
  header nav .header-contact {
    padding:15px 16px;
    gap:15px;
  }
}

@media(max-width:1000px) {
  header nav {
    gap:4px;
    font-size:15px;
  }
  header nav .header-contact {
    margin-top:10px;
    padding:16px 22px;
  }
  .about-approach {
    margin:90px auto 55px;
    grid-template-columns:1fr;
    gap:35px;
    padding:0 28px;
  }
  .approach-intro h2 {
    font-size:28px;
    margin-bottom:20px;
  }
  .approach-intro>p:not(.approach-label) {
    font-size:15px;
  }
  .approach-details h3 {
    font-size:18px;
  }
  .work .work-intent {
    font-size:14px;
  }
}

/* 会社紹介：絵と短い紹介文で構成 */
.about-approach.about-visual {
  max-width:1200px;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:85px;
  padding:55px 50px;
  margin:110px auto 60px;
  position:relative;
  isolation:isolate;
}

.about-visual-art {
  position:relative;
  padding:20px 0;
}

.about-visual-art:before {
  content:"";
  position:absolute;
  inset:5% -3% 0;
  background:#edf5f7;
  border-radius:50%;
  z-index:-1;
}

.about-visual-art img {
  display:block;
  width:100%;
  height:auto;
  max-width:480px;
  margin:auto;
}

.about-visual .approach-label {
  font-size:15px;
  font-weight:600;
  margin-bottom:22px;
}

.about-visual .approach-intro h2 {
  font-size:40px;
  line-height:1.55;
  letter-spacing:.03em;
  margin-bottom:28px;
}

.about-visual .approach-intro h2 span {
  background:linear-gradient(transparent 80%,#f2e725 80%,#f2e725 94%,transparent 94%);
}

.about-visual .approach-intro>p:not(.approach-label) {
  line-height:2;
  margin:0 0 18px;
}

.about-company-button {
  width:320px;
  max-width:100%;
  margin-top:30px;
  min-height:68px;
  font-size:16px;
}

@media(max-width:1000px) {
  .about-approach.about-visual {
    grid-template-columns:1fr 1fr;
    gap:35px;
    padding:30px;
    margin:70px auto 40px;
  }
  .about-visual .approach-intro h2 {
    font-size:30px;
  }
}

@media(max-width:600px) {
  .about-approach.about-visual {
    grid-template-columns:1fr;
    gap:30px;
    padding:0 28px;
    margin:80px auto 40px;
  }
  .about-visual-art {
    max-width:290px;
    margin:auto;
    padding:10px;
  }
  .about-visual .approach-intro h2 {
    font-size:30px;
    line-height:1.55;
    margin-bottom:24px;
  }
  .about-visual .approach-label {
    margin-bottom:16px;
  }
  .about-company-button {
    margin-top:25px;
    min-height:60px;
    width:100%;
  }
}

.recruitment-page {
  --recruit-navy:#002f4e;
  font-weight:500;
}

.recruitment-page main {
  padding-top:110px;
}

.lower-title {
  height:220px;
  background:linear-gradient(110deg,#e5f3fc,#f0f9fd);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
}

.lower-title p {
  margin:0;
  color:#4f829e;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
}

.lower-title h1 {
  font-size:35px;
  margin:0;
  font-weight:800;
  letter-spacing:.04em;
}

.breadcrumb {
  max-width:1200px;
  padding:25px 30px 0;
  margin:auto;
  display:flex;
  gap:16px;
  font-size:12px;
  color:#666;
}

.breadcrumb a:hover {
  text-decoration:underline;
}

.lower-wrap {
  width:calc(100% - 100px);
  max-width:1100px;
  margin:auto;
}

.recruitment-page .eyebrow {
  font-size:13px;
  font-weight:700;
  color:#497b98;
  letter-spacing:.08em;
  line-height:1.8;
  margin:0 0 22px;
}

.recruit-intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
  padding:85px 0 120px;
}

.recruit-intro h2 {
  font-size:39px;
  line-height:1.65;
  letter-spacing:.025em;
  margin:0 0 28px;
  font-weight:800;
}

.recruit-intro h2 span {
  background:linear-gradient(transparent 75%,#f8ed68 75%,#f8ed68 94%,transparent 94%);
}

.recruit-intro p:not(.eyebrow) {
  font-size:15px;
  line-height:2.1;
  margin:20px 0;
}

.recruit-intro>img {
  width:100%;
  height:auto;
}

.intro-link {
  display:inline-flex;
  gap:35px;
  align-items:center;
  border-bottom:1px solid #7e909b;
  padding:14px 0;
  font-weight:700;
  font-size:14px;
}

.intro-link:hover {
  color:#397ca5;
}

.intro-link span {
  font-size:20px;
}

.recruit-support {
  background:#f2f9fc;
  padding:100px 0 105px;
}

.lower-heading {
  text-align:center;
  margin:0 auto 65px;
}

.lower-heading .eyebrow {
  margin:0 0 15px;
}

.lower-heading h2 {
  font-size:32px;
  line-height:1.65;
  margin:0;
  font-weight:800;
}

.lower-heading>p:not(.eyebrow) {
  font-size:15px;
  line-height:2;
  margin:24px 0 0;
}

.support-editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:85px;
  padding:30px 0 75px;
}

.support-editorial.reverse .support-art {
  order:2;
}

.support-art {
  background:#fff;
  border-radius:50%;
  overflow:hidden;
  aspect-ratio:1;
}

.support-art img {
  width:100%;
  height:100%;
  object-fit:contain;
}

.step-label {
  display:flex;
  align-items:center;
  gap:20px;
  font-size:34px;
  font-weight:700;
  color:#5a93b3;
  margin:0 0 23px;
}

.step-label span {
  font-size:14px;
  color:var(--recruit-navy);
}

.support-text h3,.support-route h3 {
  font-size:29px;
  line-height:1.7;
  margin:0 0 25px;
  font-weight:800;
}

.support-text>p:not(.step-label),.support-route>div>p {
  font-size:15px;
  line-height:2.1;
  margin:16px 0;
}

.support-tags {
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  border-top:1px solid #ccdfe8;
  margin:24px 0 0;
  padding-top:18px;
  font-size:12px;
  color:#496c82;
}

.support-tags li:before {
  content:'＋';
  margin-right:6px;
}

.support-route {
  border-top:1px solid #ccdfe8;
  padding:65px 0 0;
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:35px;
}

.support-route .step-label {
  align-self:start;
}

.route-diagram {
  display:flex;
  align-items:center;
  gap:18px;
  margin:32px 0;
}

.route-sources {
  display:grid;
  gap:9px;
  flex:1;
}

.route-sources span {
  padding:9px 12px;
  border-bottom:1px solid #a9c4d3;
  font-size:14px;
  text-align:center;
}

.route-diagram b {
  font-size:23px;
  font-weight:400;
  color:#63879b;
}

.route-page {
  padding:30px 22px;
  background:white;
  border:1px solid #bfd3df;
  font-size:16px;
}

.route-apply {
  background:#f3e96a;
  border-radius:50%;
  width:86px;
  height:86px;
  display:grid;
  place-items:center;
  flex-shrink:0;
  font-weight:700;
}

.support-route>div>.scope-note {
  font-size:12px;
  color:#567080;
  line-height:1.9;
}

.recruit-case {
  padding-top:105px;
  padding-bottom:120px;
}

.case-feature {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:80px;
  align-items:center;
}

.case-image {
  background:#eff3f4;
  padding:30px;
}

.case-image img {
  width:100%;
  height:auto;
  transition:transform .3s;
}

.case-feature:hover img {
  transform:scale(1.025);
}

.case-feature h3 {
  font-size:29px;
  line-height:1.7;
  margin:0 0 20px;
}

.case-feature p:not(.eyebrow) {
  font-size:15px;
  line-height:2;
}

.recruit-process {
  background:#f6f8f9;
  padding:100px 0;
}

.recruit-process>.lower-wrap {
  max-width:900px;
}

.process-list {
  list-style:none;
  padding:0;
  margin:0;
}

.process-list li {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:25px;
  border-top:1px solid #cbd5da;
  padding:30px 0;
}

.process-list li>span {
  font-size:30px;
  color:#5a93b3;
  line-height:1.5;
}

.process-list h3 {
  font-size:20px;
  margin:0 0 12px;
}

.process-list p {
  font-size:15px;
  line-height:2;
  margin:0;
}

.scope-line {
  border-top:1px solid #cbd5da;
  margin:15px 0 15px;
  padding:35px 0 10px;
}

.scope-line strong {
  font-size:17px;
}

.scope-line p {
  font-size:15px;
  line-height:2;
}

.recruit-faq {
  max-width:900px;
  padding-top:105px;
  padding-bottom:110px;
}

.faq-list details {
  border-top:1px solid #cbd5da;
}

.faq-list details:last-child {
  border-bottom:1px solid #cbd5da;
}

.faq-list summary {
  list-style:none;
  padding:26px 45px 26px 40px;
  position:relative;
  cursor:pointer;
  font-size:17px;
  font-weight:700;
  line-height:1.8;
}

.faq-list summary::-webkit-details-marker {
  display:none;
}

.faq-list summary:before {
  content:'Q';
  position:absolute;
  left:0;
  color:#4f829e;
  font-size:21px;
}

.faq-list summary:after {
  content:'＋';
  position:absolute;
  right:8px;
}

.faq-list details[open] summary:after {
  content:'−';
}

.faq-list details>p {
  margin:0;
  padding:0 40px 28px;
  font-size:15px;
  line-height:2;
}

.faq-list details a {
  color:#276589;
  text-decoration:underline;
  display:block;
  margin-top:12px;
}

.faq-list summary:focus-visible {
  outline:3px solid #004077;
  outline-offset:3px;
}

.recruitment-page .fixed-consult {
  display:none;
}

@media(max-width:1000px) {
  .recruitment-page main {
    padding-top:64px;
  }
  .lower-wrap {
    width:calc(100% - 64px);
  }
  .lower-title {
    height:180px;
  }
  .lower-title h1 {
    font-size:30px;
  }
  .recruit-intro {
    gap:20px;
    padding:65px 0 85px;
  }
  .recruit-intro h2 {
    font-size:30px;
  }
  .support-editorial {
    gap:35px;
  }
  .support-text h3,.support-route h3,.case-feature h3 {
    font-size:25px;
  }
  .support-route {
    grid-template-columns:1fr;
    gap:0;
  }
  .case-feature {
    gap:35px;
  }
  .lower-heading h2 {
    font-size:29px;
  }
}

@media(max-width:600px) {
  .lower-title {
    height:154px;
    gap:9px;
  }
  .lower-title h1 {
    font-size:26px;
  }
  .lower-title p {
    font-size:10px;
  }
  .breadcrumb {
    padding:20px 22px 0;
    gap:12px;
    font-size:10px;
  }
  .lower-wrap {
    width:calc(100% - 44px);
  }
  .recruit-intro {
    display:flex;
    flex-direction:column;
    padding:52px 0 65px;
    gap:20px;
    align-items:stretch;
  }
  .recruit-intro h2 {
    font-size:29px;
    line-height:1.65;
  }
  .recruit-intro>img {
    width:100%;
    max-width:350px;
    margin:auto;
    order:0;
  }
  .recruitment-page .eyebrow {
    font-size:11px;
    margin-bottom:16px;
  }
  .recruit-intro p:not(.eyebrow) {
    font-size:14px;
    line-height:2;
  }
  .lower-heading {
    margin-bottom:35px;
  }
  .lower-heading h2 {
    font-size:26px;
  }
  .lower-heading>p:not(.eyebrow) {
    font-size:14px;
    margin-top:18px;
  }
  .recruit-support {
    padding:60px 0;
  }
  .support-editorial {
    grid-template-columns:1fr;
    gap:28px;
    padding:20px 0 55px;
  }
  .support-editorial.reverse .support-art {
    order:0;
  }
  .support-art {
    width:270px;
    max-width:100%;
    margin:auto;
  }
  .step-label {
    font-size:29px;
    margin-bottom:19px;
    gap:15px;
  }
  .step-label span {
    font-size:13px;
  }
  .support-text h3,.support-route h3,.case-feature h3 {
    font-size:25px;
    line-height:1.65;
  }
  .support-text>p:not(.step-label),.support-route>div>p {
    font-size:14px;
  }
  .support-route {
    padding-top:35px;
  }
  .route-diagram {
    gap:10px;
  }
  .route-sources span {
    font-size:11px;
    padding:8px 5px;
  }
  .route-page {
    font-size:12px;
    padding:25px 10px;
    white-space:nowrap;
  }
  .route-apply {
    width:60px;
    height:60px;
    font-size:13px;
  }
  .route-diagram b {
    font-size:18px;
  }
  .recruit-case {
    padding-top:65px;
    padding-bottom:65px;
  }
  .case-feature {
    grid-template-columns:1fr;
    gap:28px;
  }
  .case-image {
    padding:20px;
  }
  .case-feature h3 br:last-of-type {
    display:none;
  }
  .recruit-process {
    padding:65px 0;
  }
  .process-list li {
    grid-template-columns:40px 1fr;
    gap:12px;
    padding:25px 0;
  }
  .process-list li>span {
    font-size:24px;
  }
  .process-list h3 {
    font-size:18px;
    line-height:1.7;
  }
  .process-list p,.scope-line p {
    font-size:14px;
  }
  .scope-line strong {
    font-size:16px;
  }
  .intro-link {
    font-size:13px;
    gap:20px;
  }
  .recruit-faq {
    padding-top:65px;
    padding-bottom:65px;
  }
  .faq-list summary {
    font-size:15px;
    padding:24px 30px 24px 30px;
  }
  .faq-list details>p {
    font-size:14px;
    padding:0 10px 24px 30px;
  }
  .faq-list summary:before {
    font-size:18px;
  }
  .faq-list summary:after {
    right:0;
  }
}

.support-art--purpose {
  overflow:visible;
}

.key-intro {
  padding:80px 0 90px;
  text-align:center;
  max-width:900px;
}

.key-intro h2,.contact-intro h2 {
  font-size:39px;
  line-height:1.65;
  margin:0 0 26px;
}

.key-intro p:not(.eyebrow),.key-section p,.contact-layout p {
  font-size:15px;
  line-height:2.1;
}

.key-section {
  padding-top:95px;
  padding-bottom:95px;
}

.key-tint {
  background:#f2f9fc;
}

.price-row {
  display:grid;
  grid-template-columns:1fr 170px;
  gap:40px;
  align-items:center;
  border-top:1px solid #bbd1dc;
  padding:35px 0;
}

.price-row:last-child {
  border-bottom:1px solid #bbd1dc;
}

.price-row h3 {
  font-size:22px;
  line-height:1.7;
  margin:0 0 14px;
}

.price-row h3 a:hover {
  text-decoration:underline;
}

.price-row p {
  margin:0;
}

.price-row .price-number {
  font-size:64px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  letter-spacing:-.05em;
  text-align:right;
}

.price-number span {
  font-size:18px;
  letter-spacing:0;
  margin-left:8px;
}

.key-facts {
  margin:35px 0 20px;
}

.key-facts>div {
  display:grid;
  grid-template-columns:260px 1fr;
  gap:35px;
  border-bottom:1px solid #c6d7df;
  padding:24px 0;
  font-size:15px;
  line-height:1.9;
}

.key-facts dt {
  font-weight:700;
}

.key-facts dd {
  margin:0;
}

.key-facts dd span {
  display:block;
  font-size:13px;
  margin-top:5px;
}

.key-facts dd strong {
  font-size:23px;
}

.key-section .key-note {
  font-size:13px;
  color:#49657a;
  line-height:1.9;
}

.key-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
}

.key-columns h3 {
  font-size:22px;
  line-height:1.7;
  margin:0 0 20px;
}

.key-columns p {
  margin:14px 0;
}

.partner-facts {
  margin-top:0;
}

.partner-facts>div:first-child {
  border-top:1px solid #c6d7df;
}

.partner-check {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 55px;
}

.partner-check li {
  padding:22px 0;
  border-bottom:1px solid #c6d7df;
  font-size:17px;
}

.partner-check li:before {
  content:'✓';
  color:#4f829e;
  padding-right:15px;
}

.contact-layout {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:80px;
  padding-top:80px;
  padding-bottom:110px;
}

.contact-intro h2 {
  font-size:29px;
}

.contact-intro .preview-notice,.preview-notice {
  font-size:13px;
  background:#f2f9fc;
  padding:18px 20px;
  line-height:1.8;
}

.contact-example {
  background:#f2f9fc;
  padding:22px;
  margin-bottom:30px;
}

.contact-example summary {
  font-weight:700;
  cursor:pointer;
  font-size:15px;
  line-height:1.8;
}

.contact-example p {
  font-size:13px;
}

.contact-form-wrap form>label {
  display:block;
  font-size:15px;
  font-weight:700;
  margin:27px 0;
}

.contact-form-wrap fieldset {
  border:0;
  padding:0;
  margin:0 0 24px;
}

.contact-form-wrap legend {
  font-size:16px;
  font-weight:700;
  margin-bottom:18px;
}

.contact-form-wrap legend>span,.contact-form-wrap form>label>span:not(:has(a)) {
  font-size:11px;
  color:#466c83;
  font-weight:500;
  margin-left:12px;
}

.contact-form-wrap .radio-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:13px 0;
  font-size:14px;
  line-height:1.7;
  cursor:pointer;
}

.contact-form-wrap input[type=radio],.contact-form-wrap input[type=checkbox] {
  accent-color:#002f4e;
  width:18px;
  height:18px;
  flex-shrink:0;
  margin:3px 0;
}

.contact-form-wrap input:not([type=radio]):not([type=checkbox]),.contact-form-wrap textarea {
  display:block;
  width:100%;
  border:1px solid #9caeb8;
  background:#fff;
  border-radius:0;
  padding:14px;
  margin-top:12px;
  font:inherit;
  font-size:16px;
  color:#002f4e;
  box-sizing:border-box;
}

.contact-form-wrap textarea {
  resize:vertical;
  min-height:180px;
}

.contact-form-wrap .consent-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:500;
  line-height:1.9;
}

.contact-form-wrap .consent-row span {
  font-size:13px;
}

.contact-form-wrap a {
  text-decoration:underline;
}

.contact-form-wrap .form-trap {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.key-button {
  border:0;
  border-radius:99px;
  background:#f1e52b;
  color:#002f4e;
  font:inherit;
  font-weight:700;
  font-size:15px;
  min-height:58px;
  padding:16px 35px;
  cursor:pointer;
}

.key-button:hover {
  background:#e8db15;
}

.contact-form-wrap :focus-visible {
  outline:3px solid #4c89b1;
  outline-offset:4px;
}

.contact-form-wrap .key-facts>div {
  grid-template-columns:1fr;
  gap:8px;
}

.contact-form-wrap .key-facts dd {
  overflow-wrap:anywhere;
  white-space:pre-wrap;
}

.contact-form-wrap [hidden] {
  display:none!important;
}

#contact-confirm h2 {
  font-size:26px;
}

#contact-confirm>p {
  font-size:14px;
}

.key-section a:focus-visible {
  outline:3px solid #4c89b1;
  outline-offset:4px;
}

@media(max-width:1000px) {
  .contact-layout {
    gap:35px;
    grid-template-columns:1fr 1.4fr;
  }
  .contact-intro h2 {
    font-size:25px;
  }
  .key-columns {
    gap:35px;
  }
  .key-facts>div {
    grid-template-columns:210px 1fr;
  }
}

@media(max-width:600px) {
  .key-intro {
    padding:55px 0 65px;
    text-align:left;
  }
  .key-intro h2 {
    font-size:29px;
  }
  .key-intro p:not(.eyebrow),.key-section p,.contact-layout p {
    font-size:14px;
  }
  .key-intro p br {
    display:none;
  }
  .key-section {
    padding-top:65px;
    padding-bottom:65px;
  }
  .price-row {
    grid-template-columns:1fr;
    gap:20px;
    padding:28px 0;
  }
  .price-row h3 {
    font-size:20px;
  }
  .price-row .price-number {
    font-size:49px;
    text-align:left;
  }
  .price-number span {
    font-size:16px;
  }
  .key-facts>div {
    grid-template-columns:1fr;
    gap:10px;
    padding:22px 0;
    font-size:14px;
  }
  .key-columns {
    grid-template-columns:1fr;
    gap:28px;
  }
  .key-columns h3 {
    font-size:20px;
  }
  .partner-check {
    grid-template-columns:1fr;
  }
  .partner-check li {
    font-size:15px;
    padding:18px 0;
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:35px;
    padding-top:55px;
    padding-bottom:65px;
  }
  .contact-intro h2 {
    font-size:28px;
  }
  .contact-example {
    padding:18px;
  }
  .contact-form-wrap legend {
    font-size:15px;
  }
  .key-button {
    width:100%;
    font-size:14px;
  }
  .contact-form-wrap .radio-row {
    font-size:13px;
  }
  .key-section .key-note {
    font-size:12px;
  }
}

.footer-organized .footer-bottom {
  max-width:1200px;
  margin:0 auto;
  padding:60px 0 55px;
  grid-template-columns:270px minmax(0,1fr);
  gap:65px;
}

.footer-organized .footer-groups {
  display:grid;
  grid-template-columns:1fr 1.15fr 1.3fr;
  gap:35px;
}

.footer-organized .footer-group {
  gap:10px;
  padding:0;
}

.footer-organized .footer-group h2 {
  font-size:15px;
  font-weight:700;
  line-height:1.6;
  margin:0 0 16px;
  color:#fff;
}

.footer-organized .footer-group a {
  font-size:13px;
  font-weight:400;
  line-height:1.8;
  padding:5px 0;
  color:#d9e5ed;
}

.footer-organized .footer-group .footer-contact-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  min-height:48px;
  width:100%;
  padding:12px 18px;
  margin-top:12px;
  background:#f2e725;
  color:#002f4e;
  border-radius:4px;
  font-weight:700;
}

.footer-organized .footer-contact-link:hover {
  background:#fff;
  color:#002f4e;
  text-decoration:none;
}

.footer-organized .footer-contact-link span {
  font-size:19px;
}

.footer-organized .footer-company address {
  font-size:14px;
}

.footer-organized .footer-legal {
  max-width:1200px;
  margin:0 auto;
  padding:24px 0 0;
  border-top:1px solid #ffffff2b;
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center;
}

.footer-organized .footer-legal nav {
  display:flex;
  gap:26px;
  flex-wrap:wrap;
}

.footer-organized .footer-legal a {
  font-size:12px;
  color:#c6d4df;
  padding:8px 0;
}

.footer-organized .copyright {
  padding:0;
  margin:0;
  font-size:11px;
  white-space:nowrap;
}

.footer-organized a:focus-visible {
  outline-color:#f2e725;
}

.footer-organized .footer-contact-link:focus-visible {
  outline-color:white;
}

@media(max-width:1280px) {
  .footer-organized .footer-bottom,.footer-organized .footer-legal {
    margin-left:40px;
    margin-right:40px;
  }
  .footer-organized .footer-bottom {
    grid-template-columns:230px minmax(0,1fr);
    gap:40px;
  }
  .footer-organized .footer-groups {
    gap:25px;
  }
}

@media(max-width:1000px) {
  .footer-organized .footer-bottom {
    grid-template-columns:1fr;
    gap:45px;
  }
  .footer-organized .footer-company {
    grid-column:auto;
  }
  .footer-organized .footer-groups {
    grid-template-columns:1fr 1fr 1.2fr;
    gap:30px;
  }
}

@media(max-width:600px) {
  .footer-organized .footer-bottom {
    margin:0 25px;
    padding:40px 0 32px;
    gap:35px;
  }
  .footer-organized .footer-groups {
    grid-template-columns:1fr 1fr;
    gap:30px 22px;
  }
  .footer-organized .footer-group h2 {
    font-size:14px;
    margin-bottom:9px;
  }
  .footer-organized .footer-group a {
    font-size:12px;
    min-height:36px;
  }
  .footer-organized .footer-group:last-child {
    grid-column:1/-1;
    border-top:1px solid #ffffff2b;
    padding-top:26px;
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:22px;
  }
  .footer-organized .footer-group:last-child h2,.footer-organized .footer-contact-link {
    grid-column:1/-1;
  }
  .footer-organized .footer-group .footer-contact-link {
    font-size:14px;
    min-height:50px;
    margin-top:8px;
  }
  .footer-organized .footer-legal {
    margin:0 25px;
    align-items:flex-start;
    flex-direction:column;
    gap:15px;
  }
  .footer-organized .footer-legal nav {
    gap:22px;
  }
  .footer-organized .footer-legal a {
    font-size:11px;
  }
  .footer-organized .copyright {
    font-size:10px;
  }
}

.footer-organized .address-break {
  display:block;
}

/* Section labels are visually distinct from actionable footer links. */
.footer-organized .footer-group h2 {
  font-size:11px;
  font-weight:500;
  letter-spacing:.08em;
  color:#a9bfce;
  border-bottom:1px solid #ffffff30;
  padding:0 0 13px;
  margin:0 0 9px;
  cursor:default;
}

@media(max-width:600px) {
  .footer-organized .footer-group h2 {
    font-size:11px;
    margin-bottom:5px;
    padding-bottom:11px;
  }
  .footer-organized .footer-group:last-child {
    border-top:0;
    padding-top:0;
  }
}

.footer-organized .footer-group h2 {
  padding:0 0 10px;
  margin:0 0 10px;
  letter-spacing:normal;
  cursor:auto;
}

.footer-organized .footer-group h2 .footer-heading-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:40px;
  padding:5px 0;
  font-size:15px;
  font-weight:700;
  color:#fff;
}

.footer-heading-link span {
  font-size:17px;
  font-weight:400;
}

.footer-organized .footer-group h2 .footer-heading-link:hover {
  color:#f2e725;
  text-decoration:underline;
  text-underline-offset:5px;
}

@media(max-width:600px) {
  .footer-organized .footer-group h2 .footer-heading-link {
    font-size:13px;
    min-height:44px;
  }
}

.article-meta,.lower-title .article-meta {
  font-size:13px;
  font-weight:400;
  line-height:1.8;
  letter-spacing:.02em;
  color:#526675;
  margin:18px 0 0;
}

.article-meta span {
  display:inline-block;
  margin-left:1.5em;
}

.article-meta a {
  text-decoration:underline;
  text-underline-offset:3px;
}

.breadcrumb a,.breadcrumb>[aria-hidden="true"] {
  flex-shrink:0;
  white-space:nowrap;
}

.breadcrumb>[aria-current="page"] {
  min-width:0;
}

@media(max-width:600px) {
  .article-meta span {
    display:block;
    margin-left:0;
  }
}

