: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;
}

[hidden] {
  display:none!important;
}

.all-lower .lower-title {
  height:auto;
  min-height:220px;
  padding:50px 30px;
}

.all-lower .lower-title h1 {
  font-size:32px;
  text-align:center;
  max-width:1000px;
  line-height:1.6;
}

.all-lower main>.page-content,.all-lower .section {
  max-width:1100px;
  width:calc(100% - 100px);
  margin:auto;
}

.all-lower main>.page-content {
  padding:70px 0 100px;
}

.all-lower .v2-phero {
  padding:75px 0 100px;
}

.all-lower .v2-phero .inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:65px;
  align-items:center;
}

.all-lower .v2-phero .inner:not(:has(figure)) {
  display:block;
  max-width:900px;
}

.all-lower .v2-phero>figure {
  max-width:1000px;
  width:calc(100% - 100px);
  margin:45px auto 0;
}

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

.all-lower h3 {
  font-size:22px;
  line-height:1.7;
  margin:0 0 17px;
}

.all-lower h4 {
  font-size:18px;
  line-height:1.8;
}

.all-lower p,.all-lower li,.all-lower dd {
  font-size:15px;
  line-height:2;
}

.all-lower p {
  margin:16px 0;
}

.all-lower figure {
  margin:0;
}

.all-lower figure img {
  width:100%;
  height:auto;
}

.all-lower figcaption {
  font-size:12px;
  line-height:1.9;
  color:#5a7180;
  margin-top:16px;
}

.all-lower .ac,.all-lower .mk {
  background:linear-gradient(transparent 77%,#f8ed68 77%,#f8ed68 96%,transparent 96%);
}

.all-lower .v2-sec,.all-lower .v2-works,.all-lower .v2-price-sec,.all-lower .v2-faq {
  padding:90px 0;
}

.all-lower .v2-sec--blue,.all-lower .v2-faq {
  background:#f2f9fc;
}

.all-lower .v2-sec--gray {
  background:#f6f8f9;
}

.all-lower .v2-sec .section>h2,.all-lower .sec-head {
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}

.all-lower .v2-prose {
  max-width:850px;
  margin:0 auto 35px;
}

.all-lower .v2-two {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin:45px 0;
}

.all-lower .v2-cards3 {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:35px;
  padding:0;
  margin:45px 0;
}

.all-lower .v2-cards3>li {
  border-top:1px solid #bdd0dc;
  padding:25px 0;
}

.all-lower .n {
  display:block;
  font-size:28px;
  color:#5a93b3;
  font-weight:700;
  margin-bottom:15px;
}

.all-lower .v2-steps {
  padding:0;
  list-style:none;
  max-width:900px;
  margin:40px auto;
}

.all-lower .v2-steps>li {
  display:grid;
  grid-template-columns:55px 1fr;
  gap:25px;
  border-top:1px solid #cbd5da;
  padding:28px 0;
}

.all-lower .v2-steps h3 {
  font-size:21px;
}

.all-lower .v2-steps p {
  margin:0;
}

.all-lower .v2-note-box {
  border-left:3px solid #8fb7ce;
  padding:8px 0 8px 26px;
  max-width:900px;
  margin:40px auto;
}

.all-lower .acts {
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  margin-top:28px;
}

.all-lower .button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  padding:18px 25px;
  border:1px solid #173f59;
  border-radius:40px;
  min-height:60px;
  font-size:14px;
  font-weight:700;
  line-height:1.6;
  background:#f0e951;
  color:#002f4e;
}

.all-lower .button:hover {
  background:#002f4e;
  color:white;
}

.all-lower .text-link,.all-lower .route-list a,.all-lower .v2-links a {
  display:inline-block;
  font-size:14px;
  border-bottom:1px solid #90a9b7;
  padding:12px 0;
  line-height:1.8;
}

.all-lower .v2-links {
  display:flex;
  gap:25px;
  flex-wrap:wrap;
  margin-top:35px;
}

.all-lower .v2-cta {
  padding:60px 0;
  background:#f2f9fc;
  text-align:center;
  border-top:1px solid #d4e4ec;
  border-bottom:1px solid #d4e4ec;
}

.all-lower .v2-cta .h {
  font-size:27px;
  font-weight:800;
  line-height:1.8;
  margin:0 0 25px;
}

.all-lower .cta-note {
  font-size:12px;
  color:#587284;
}

.all-lower .v2-process-links,.all-lower .route-list {
  padding:0;
  margin:35px 0;
  list-style:none;
}

.all-lower .v2-process-links a,.all-lower .route-list a {
  display:flex;
  justify-content:space-between;
  gap:30px;
  border-bottom:1px solid #c1d1dc;
  padding:24px 0;
  line-height:1.8;
}

.all-lower .v2-process-links strong {
  font-size:19px;
}

.all-lower .v2-process-links span {
  font-size:13px;
}

.all-lower .v2-work-feature,.all-lower .work-case {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:55px;
  align-items:start;
  margin:55px 0;
  padding:45px 0;
  border-top:1px solid #cbd5da;
}

.all-lower .shot,.all-lower .work-shot {
  background:#f0f4f6;
  padding:20px;
  margin:0;
}

.all-lower .shot img,.all-lower .work-shot img {
  width:100%;
  height:auto;
  object-fit:contain;
}

.all-lower .work-case .name,.all-lower .work-case .hl,.all-lower .v2-work-feature .hl {
  font-size:22px;
  font-weight:700;
}

.all-lower .tag {
  font-size:12px;
  padding-right:14px;
  color:#517389;
}

.all-lower .v2-faq-list {
  max-width:900px;
  margin:35px auto;
}

.all-lower details {
  border-top:1px solid #c2d2db;
  padding:0;
}

.all-lower summary {
  list-style:none;
  position:relative;
  cursor:pointer;
  padding:25px 35px 25px 0;
  font-weight:700;
  font-size:17px;
  line-height:1.8;
}

.all-lower summary::-webkit-details-marker {
  display:none;
}

.all-lower summary:after {
  content:'＋';
  position:absolute;
  right:3px;
}

.all-lower details[open]>summary:after {
  content:'−';
}

.all-lower details .ans {
  padding:0 25px 25px;
}

.all-lower .a-mark {
  display:none;
}

.all-lower .q {
  color:#527d96;
  margin-right:18px;
}

.all-lower .v2-table,.all-lower table {
  border-collapse:collapse;
  width:100%;
  font-size:14px;
  margin:35px 0;
}

.all-lower th,.all-lower td {
  padding:20px 18px;
  border-bottom:1px solid #ccd8df;
  text-align:left;
  vertical-align:top;
  line-height:1.9;
}

.all-lower th {
  background:#eff6fa;
  color:#335f77;
}

.all-lower th small {
  display:block;
  font-weight:400;
}

.all-lower .v2-table--kv th {
  width:25%;
}

.all-lower .v2-fields,.all-lower .v2-price {
  padding:35px 0;
  border-top:1px solid #c5d7e1;
}

.all-lower .v2-price .price {
  font-size:28px;
  font-weight:800;
}

.all-lower .v2-price .head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:25px;
}

.all-lower .en,.all-lower .section-kicker,.all-lower .section-label {
  display:block;
  font-size:12px;
  letter-spacing:.1em;
  color:#41667d;
  margin-bottom:18px;
}

.all-lower .ja {
  display:block;
  font-size:28px;
  letter-spacing:0;
  color:#111;
  margin-top:14px;
}

.all-lower .detail-section {
  padding:45px 0;
  border-bottom:1px solid #d3dfe6;
}

.all-lower .page-toc {
  display:flex;
  flex-wrap:wrap;
  gap:12px 25px;
  border-bottom:1px solid #bdd1dd;
  padding-bottom:25px;
  font-size:13px;
}

.all-lower .page-toc>span {
  width:100%;
  font-weight:700;
}

.all-lower .page-toc a {
  text-decoration:underline;
  text-underline-offset:5px;
}

.all-lower .chapter-prose {
  max-width:850px;
  margin:auto;
}

.all-lower .chapter-prose a,.all-lower .detail-section p>a {
  text-decoration:underline;
  text-underline-offset:4px;
}

.all-lower .news-item {
  padding:35px 0;
  border-top:1px solid #ccd9e1;
}

.all-lower .news-item__date {
  color:#527b92;
  font-size:13px;
}

.all-lower .news-item h3 {
  margin-top:12px;
}

.all-lower .directory-grid,.all-lower .journal-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
}

.all-lower .directory-card,.all-lower .journal-card {
  display:block;
  border-top:1px solid #bfd2df;
  padding:25px 0;
}

.all-lower .directory-card h3 {
  margin:12px 0;
}

.all-lower .journal-thumb {
  aspect-ratio:16/9;
  background:#eef5f9;
  overflow:hidden;
  margin-bottom:25px;
}

.all-lower .journal-thumb img {
  height:100%;
  width:100%;
  object-fit:cover;
}

.all-lower .journal-art {
  padding:30px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:190px;
  background:#e9f3fa;
  color:#164864;
}

.all-lower .journal-art__label {
  font-size:12px;
  margin-bottom:15px;
}

.all-lower .journal-art__line {
  font-size:24px;
  font-weight:800;
}

.all-lower .work-filters {
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:20px;
  padding:25px;
  background:#eff6fa;
}

.all-lower .work-filters label {
  display:grid;
  gap:10px;
  font-size:14px;
}

.all-lower select,.all-lower input,.all-lower textarea {
  font:inherit;
  max-width:100%;
  padding:12px;
  border:1px solid #9ab0bd;
  border-radius:4px;
  background:white;
}

.all-lower button {
  cursor:pointer;
}

.all-lower #work-reset {
  padding:12px 20px;
  border:1px solid #8ca5b4;
  background:white;
}

.all-lower .work-count,.all-lower #work-count {
  font-size:13px;
}

.all-lower .preview-notice {
  margin:30px auto;
  max-width:900px;
  padding:20px;
  background:#fff8d6;
}

.all-lower .page-intro {
  padding:25px 0;
}

.all-lower .v2-chips {
  display:flex;
  flex-wrap:wrap;
  gap:15px;
  list-style:none;
  padding:0;
}

.all-lower .v2-chips a {
  border-bottom:1px solid #aec3d0;
  padding:12px;
}

.all-lower .article-date {
  font-size:12px;
  color:#567080;
}

@media(max-width:1000px) {
  .all-lower main>.page-content,.all-lower .section {
    width:calc(100% - 64px);
  }
  .all-lower .v2-phero .inner {
    gap:30px;
  }
  .all-lower .v2-phero h2 {
    font-size:27px;
  }
  .all-lower .v2-two,.all-lower .v2-work-feature,.all-lower .work-case {
    gap:30px;
  }
  .all-lower .v2-cards3 {
    gap:20px;
  }
}

@media(max-width:600px) {
  .all-lower .lower-title {
    min-height:154px;
    padding:32px 22px;
  }
  .all-lower .lower-title h1 {
    font-size:25px;
  }
  .all-lower main>.page-content,.all-lower .section {
    width:calc(100% - 44px);
  }
  .all-lower main>.page-content {
    padding:35px 0 60px;
  }
  .all-lower h2 {
    font-size:25px;
  }
  .all-lower h3 {
    font-size:20px;
  }
  .all-lower p,.all-lower li,.all-lower dd {
    font-size:14px;
  }
  .all-lower .v2-phero {
    padding:50px 0 60px;
  }
  .all-lower .v2-phero .inner {
    grid-template-columns:1fr;
    gap:35px;
  }
  .all-lower .v2-phero>figure {
    width:calc(100% - 44px);
  }
  .all-lower .v2-sec,.all-lower .v2-works,.all-lower .v2-price-sec,.all-lower .v2-faq {
    padding:55px 0;
  }
  .all-lower .v2-two,.all-lower .v2-cards3,.all-lower .v2-work-feature,.all-lower .work-case,.all-lower .directory-grid,.all-lower .journal-grid {
    grid-template-columns:1fr;
    gap:25px;
  }
  .all-lower .v2-cards3 {
    margin:20px 0;
  }
  .all-lower .v2-steps>li {
    grid-template-columns:32px 1fr;
    gap:15px;
  }
  .all-lower .v2-steps h3 {
    font-size:18px;
  }
  .all-lower .n {
    font-size:24px;
  }
  .all-lower .v2-process-links a,.all-lower .route-list a {
    flex-direction:column;
    gap:8px;
  }
  .all-lower .v2-cta .h {
    font-size:23px;
  }
  .all-lower .v2-price .head {
    display:block;
  }
  .all-lower .work-filters {
    display:grid;
    grid-template-columns:1fr;
    padding:20px;
  }
  .all-lower summary {
    font-size:15px;
  }
  .all-lower .detail-section {
    padding:30px 0;
  }
  .all-lower table {
    display:block;
    overflow-x:auto;
    max-width:100%;
    font-size:12px;
  }
  .all-lower th,.all-lower td {
    min-width:120px;
    padding:14px 12px;
  }
  .all-lower .v2-table--kv {
    display:table;
  }
  .all-lower .v2-table--kv th,.all-lower .v2-table--kv td {
    display:block;
    width:100%;
    min-width:0;
  }
  .all-lower .v2-table--kv th {
    border-bottom:0;
    padding-bottom:5px;
  }
  .all-lower .v2-table--kv td {
    padding-top:10px;
  }
  .all-lower .acts {
    align-items:stretch;
    flex-direction:column;
  }
  .all-lower .button {
    width:100%;
    gap:20px;
  }
  .all-lower .article-visual {
    padding:20px;
  }
  .all-lower .ja {
    font-size:25px;
  }
  .all-lower .work-case {
    margin:25px 0;
    padding:30px 0;
  }
  .all-lower .shot,.all-lower .work-shot {
    padding:12px;
  }
}

/* Directory pages use editorial rows rather than oversized icon cards. */
.all-lower .svg-defs {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.all-lower .v2-service-wrap {
  max-width:1100px;
  width:calc(100% - 100px);
  margin:0 auto 90px;
}

.all-lower .v2-service-cards {
  list-style:none;
  margin:0;
  padding:0;
}

.all-lower .v2-service-cards>li {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:55px;
  border-top:1px solid #bbd0dc;
  padding:40px 0;
}

.all-lower .v2-service-cards .head {
  display:flex;
  gap:22px;
  align-items:flex-start;
}

.all-lower .ic {
  width:48px;
  height:48px;
  flex-shrink:0;
  color:#437b9c;
}

.all-lower .no {
  font-size:13px;
  display:block;
  color:#608ba4;
  margin-bottom:12px;
}

.all-lower .more {
  display:inline-block;
  border-bottom:1px solid #a5becd;
  margin:8px 20px 0 0;
  padding:9px 0;
  font-size:13px;
  font-weight:700;
}

.all-lower .v2-issue-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  margin:35px 0;
}

.all-lower .v2-issue-card {
  display:block;
  border-top:1px solid #bdd0dc;
  padding:28px 0;
}

.all-lower .v2-issue-card h3 {
  font-size:23px;
}

.all-lower .article-entry {
  display:grid;
  grid-template-columns:280px 1fr;
  gap:35px;
  border-top:1px solid #c4d5e0;
  padding:30px 0;
}

.all-lower .route-list--detailed {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
}

.all-lower .route-list--detailed a {
  display:block;
  border-top:1px solid #c4d5e0;
  padding:25px 0;
}

.all-lower .route-list--detailed .journal-thumb {
  width:100%;
}

.all-lower .fields-title {
  font-size:18px;
  font-weight:700;
}

.all-lower .keep {
  white-space:normal;
}

@media(max-width:1000px) {
  .all-lower .v2-service-wrap {
    width:calc(100% - 64px);
  }
  .all-lower .v2-service-cards>li {
    gap:30px;
  }
  .all-lower .article-entry {
    grid-template-columns:220px 1fr;
  }
}

@media(max-width:600px) {
  .all-lower .v2-service-wrap {
    width:calc(100% - 44px);
    margin-bottom:60px;
  }
  .all-lower .v2-service-cards>li,.all-lower .v2-issue-grid,.all-lower .article-entry,.all-lower .route-list--detailed {
    grid-template-columns:1fr;
    gap:20px;
  }
  .all-lower .v2-service-cards>li {
    padding:30px 0;
  }
  .all-lower .v2-service-cards .head {
    gap:15px;
  }
  .all-lower .ic {
    width:35px;
    height:35px;
  }
  .all-lower .v2-service-cards h3 {
    font-size:21px;
  }
  .all-lower .article-entry {
    display:block;
  }
  .all-lower .v2-issue-card {
    padding:25px 0;
  }
  .all-lower .route-list--detailed a {
    margin:0;
  }
}

/* Issues: keep the authored numbers without browser list markers. */
.all-lower .pv-route {
  list-style:none;
  margin:40px 0 0;
  padding:0;
  border-top:1px solid #d3dfe6;
}
.all-lower .pv-route li {
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:24px;
  padding:28px 0;
  border-bottom:1px solid #d3dfe6;
}
.all-lower .pv-route .pv-num {
  color:#1a4268;
  font-size:32px;
  line-height:1.4;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.all-lower .pv-route strong { font-size:20px; }
.all-lower .pv-route p { margin:8px 0 0; }
@media(max-width:600px) {
  .all-lower .pv-route li {
    grid-template-columns:40px minmax(0,1fr);
    gap:16px;
    padding:24px 0;
  }
  .all-lower .pv-route .pv-num { font-size:26px; }
  .all-lower .pv-route strong { font-size:18px; }
}

.issues-index .chapter-options .detail-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px 48px;
  margin:32px 0;
}
.issues-index .chapter-options article {
  padding:24px 0;
  border-top:2px solid #1a4268;
}
.issues-index .chapter-options article h3 { margin-top:0; }
@media(max-width:700px) {
  .issues-index .chapter-options .detail-grid { grid-template-columns:1fr; gap:8px; }
}

.article-tools-note {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  padding:20px 0;
  font-size:13px;
  border-bottom:1px solid #c5d4df;
}

.article-tools-note span {
  font-weight:400;
}

.article-visual {
  margin:32px auto 44px;
  padding:32px;
  background:#f0f5f8;
  border:1px solid #d5e0e7;
  max-width:860px;
  color:#173f6a;
}

.visual-heading {
  margin-bottom:24px;
}

.visual-heading>span,.sheet-head>span {
  font-size:12px;
  letter-spacing:.08em;
  display:block;
  margin-bottom:10px;
}

.visual-heading h3,.sheet-head h3 {
  font-size:24px;
  line-height:1.55;
  margin:0;
  text-wrap:pretty;
}

.article-visual figcaption {
  font-size:12px;
  font-weight:400;
  line-height:1.9;
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid #c5d4df;
  color:#50687b;
}

.visual-steps {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  list-style:none;
  padding:0;
  margin:0;
}

.visual-steps>li {
  position:relative;
  border-top:3px solid #173f6a;
  padding-top:18px;
}

.visual-steps>li+li::before {
  content:'→';
  position:absolute;
  left:-21px;
  top:34px;
  font-size:20px;
}

.step-no {
  font-size:13px;
  display:block;
  margin-bottom:12px;
}

.visual-steps h4 {
  font-size:20px;
  line-height:1.5;
  margin:0 0 12px;
}

.visual-steps p {
  font-size:14px;
  line-height:1.9;
  font-weight:500;
}

.article-sheet {
  margin:32px 0 0;
  padding:32px;
  background:#fff;
  border:1px solid #b4c6d3;
  box-shadow:5px 5px 0 #dce7ee;
  color:#173f6a;
}

.sheet-head {
  border-bottom:3px solid #173f6a;
  padding-bottom:20px;
}

.sheet-head>p {
  font-size:12px;
  font-weight:400;
  line-height:1.8;
  margin-top:12px;
}

.article-sheet dl {
  margin:0;
}

.article-sheet dl>div {
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:24px;
  padding:19px 0;
  border-bottom:1px solid #d4dfe7;
}

.article-sheet dt {
  font-size:14px;
  font-weight:700;
}

.article-sheet dd {
  margin:0;
  font-size:15px;
  font-weight:500;
  line-height:1.9;
}

.sheet-download {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  background:#173f6a;
  color:#fff;
  padding:16px 20px;
  margin-top:24px;
  font-size:14px;
  min-height:48px;
}

.sheet-download:hover {
  background:#28547b;
}

.sheet-format {
  font-size:12px;
  font-weight:400;
  margin:10px 0 0;
}

.photo-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.photo-pair img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

.photo-pair .photo-detail {
  object-fit:cover;
  object-position:70% 45%;
  aspect-ratio:4/3;
  clip-path:inset(0);
}

.photo-pair>div:nth-child(2) {
  overflow:hidden;
}

.photo-pair>div:nth-child(2) img {
  object-fit:none;
  object-position:66% 44%;
  height:220px;
}

.photo-pair h4 {
  font-size:17px;
  margin:18px 0 8px;
}

.photo-pair p {
  font-size:14px;
  font-weight:500;
}

.actual-screen img {
  width:100%;
  height:auto;
  border:1px solid #b6c6d3;
}

.screen-notes {
  padding-left:22px;
  font-weight:500;
  font-size:15px;
  margin-top:24px;
}

.screen-notes li+li {
  margin-top:14px;
}

.crop-demo {
  display:grid;
  grid-template-columns:1fr 180px;
  gap:32px;
  align-items:center;
}

.crop-controls p {
  font-size:15px;
  font-weight:500;
}

.crop-controls [role=group] {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:22px 0;
}

.crop-controls button {
  border:1px solid #173f6a;
  background:white;
  color:#173f6a;
  padding:12px;
  font-size:14px;
  min-height:44px;
}

.crop-controls button[aria-pressed=true] {
  background:#173f6a;
  color:white;
}

.crop-phone {
  border:6px solid #173f6a;
  border-radius:16px;
  overflow:hidden;
  background:white;
}

.crop-phone img {
  width:100%;
  height:280px;
  object-fit:cover;
  object-position:0% center;
}

.crop-demo.is-hand .crop-phone img {
  object-position:72% center;
}

.crop-status {
  font-size:13px!important;
}

.editor-demo {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.editor-fields,.editor-result {
  padding:24px;
  background:#fff;
  border:1px solid #bccdd9;
  min-width:0;
}

.editor-fields label {
  display:block;
  font-size:13px;
  margin-top:18px;
}

.editor-fields input,.editor-fields textarea {
  display:block;
  width:100%;
  min-width:0;
  border:1px solid #96aebb;
  background:#fff;
  color:#173f6a;
  padding:12px;
  margin-top:8px;
  font:inherit;
  font-size:16px;
  line-height:1.65;
  border-radius:0;
}

.editor-fields>p {
  font-size:12px;
  margin-top:14px;
  font-weight:400;
}

.demo-label {
  font-size:12px;
  font-weight:600;
}

.editor-result h4 {
  font-size:22px;
  line-height:1.6;
  margin:24px 0;
  overflow-wrap:anywhere;
}

.editor-result h5 {
  font-size:13px;
  margin:22px 0 10px;
}

.editor-result p {
  font-size:14px;
  font-weight:400;
  line-height:1.9;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

.demo-draft {
  display:inline-block;
  font-size:12px;
  background:#f2e725;
  padding:6px 10px;
  margin-top:24px;
}

.answer-pair {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:20px;
}

.answer-pair>div {
  padding:24px;
  background:#fff;
}

.answer-pair>div:last-child {
  border-top:4px solid #173f6a;
}

.answer-pair span {
  display:block;
  font-size:12px;
  margin-bottom:16px;
}

.answer-pair h4 {
  font-size:19px;
  line-height:1.5;
  margin:0 0 16px;
}

.answer-pair p {
  font-size:15px;
  font-weight:500;
  line-height:1.95;
}

.system-root {
  background:#173f6a;
  color:#fff;
  text-align:center;
  padding:24px;
  max-width:400px;
  margin:auto;
}

.system-map h4 {
  font-size:20px;
  margin:0 0 8px;
}

.system-map p {
  font-size:14px;
  font-weight:500;
}

.system-branches {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:36px;
}

.system-branches>div {
  position:relative;
  border:1px solid #a9bece;
  background:#fff;
  padding:20px;
}

.system-branches>div:before {
  content:'';
  position:absolute;
  left:50%;
  top:-37px;
  width:1px;
  height:36px;
  background:#173f6a;
}

.system-branches h4 {
  font-size:18px;
}

.journal-card img[src*="editorial"] {
  object-fit:contain;
  background:#f2f6f9;
}

@media(max-width:700px) {
  .article-visual {
    padding:22px 18px;
    margin:26px auto 34px;
  }
  .visual-heading h3,.sheet-head h3 {
    font-size:21px;
  }
  .visual-steps {
    grid-template-columns:1fr;
    gap:24px;
  }
  .visual-steps>li {
    padding:14px 0 0 38px;
  }
  .step-no {
    position:absolute;
    left:0;
    top:16px;
  }
  .visual-steps>li+li:before {
    content:none;
  }
  .visual-steps h4 {
    font-size:19px;
  }
  .article-sheet {
    padding:22px 18px;
  }
  .article-sheet dl>div {
    grid-template-columns:1fr;
    gap:8px;
    padding:16px 0;
  }
  .article-sheet dd {
    font-size:15px;
  }
  .photo-pair {
    grid-template-columns:1fr;
    gap:24px;
  }
  .photo-pair>div:nth-child(2) img {
    height:200px;
  }
  .editor-demo,.answer-pair {
    grid-template-columns:1fr;
  }
  .editor-fields,.editor-result {
    padding:20px;
  }
  .crop-demo {
    grid-template-columns:1fr;
    gap:24px;
  }
  .crop-phone {
    width:180px;
    justify-self:center;
  }
  .system-branches {
    grid-template-columns:1fr;
    gap:18px;
    margin-top:24px;
  }
  .system-branches>div:before {
    height:18px;
    top:-19px;
  }
  .system-branches>div:first-child:before {
    height:24px;
    top:-25px;
  }
  .sheet-download {
    font-size:14px;
    padding:14px;
  }
  .article-tools-note {
    gap:5px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .article-visual * {
    transition:none!important;
  }
}

.photo-pair img,.photo-pair>div:nth-child(2) img {
  height:240px;
  aspect-ratio:auto;
}

@media(max-width:700px) {
  .photo-pair img,.photo-pair>div:nth-child(2) img {
    height:210px;
  }
}

.journal-thumb img[src*="editorial"] {
  object-fit:contain!important;
  background:#f2f6f9;
}

.system-branches {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}

.system-branches>div:before {
  display:none;
}

.system-branches>div {
  border-left:3px solid #173f6a;
}

@media(max-width:700px) {
  .system-branches {
    grid-template-columns:1fr;
  }
}

.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;
  }
}

