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

/* トップ原稿差し替え（2026-11-07）：追加セクションは tp- 接頭辞でトップ専用 */
.tp-intro h2 {
  font-family:inherit;
  font-size:32px;
  line-height:1.5;
  letter-spacing:0;
}
.tp-intro p {
  max-width:760px;
  margin:0 auto;
  text-align:left;
}
.tp-block {
  max-width:1200px;
  margin:80px auto 0;
  padding:0 40px;
  color:#002f4e;
}
.tp-inner > h2,.tp-head h2,.tp-card h2 {
  font-size:28px;
  line-height:1.5;
  font-weight:600;
  margin:0 0 24px;
}
.tp-inner > p,.tp-head p,.tp-card p {
  font-size:16px;
  line-height:1.9;
  font-weight:500;
  margin:0;
}
.tp-media .tp-inner {
  background:#eaf6fc;
  border-radius:12px;
  padding:56px 64px;
}
.tp-fields .tp-inner {
  text-align:center;
}
.tp-chips {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  list-style:none;
  margin:0 0 24px;
  padding:0;
}
.tp-chips li {
  border:1px solid #002f4e;
  border-radius:48px;
  padding:8px 24px;
  font-size:15px;
  line-height:1.6;
  font-weight:500;
  background:#fff;
}
.tp-head {
  text-align:center;
  margin-bottom:48px;
}
.tp-reason-list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.tp-reason-list li {
  border:1px solid #cfe3ef;
  border-radius:12px;
  background:#fff;
  padding:32px;
}
.tp-num {
  display:block;
  font-family:Arial,sans-serif;
  font-size:32px;
  line-height:1;
  font-weight:700;
  color:#287ba8;
  margin-bottom:16px;
}
.tp-reason-list h3 {
  font-size:20px;
  line-height:1.6;
  font-weight:600;
  margin:0 0 16px;
  padding-bottom:16px;
  border-bottom:5px solid #eaf6fc;
}
.tp-reason-list p {
  font-size:16px;
  line-height:1.9;
  font-weight:500;
  margin:0;
}
.tp-about-link {
  margin:48px auto 0;
}
.tp-pair {
  max-width:1200px;
  margin:80px auto 0;
  padding:0 40px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  color:#002f4e;
}
.tp-card {
  border:1px solid #cfe3ef;
  border-radius:12px;
  padding:40px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
}
.tp-card p {
  margin-bottom:32px;
}
.tp-card .pill {
  margin-top:auto;
  width:320px;
  max-width:100%;
  min-height:64px;
}
@media(max-width:1000px) {
  .tp-block,.tp-pair {
    padding:0 32px;
  }
  .tp-media .tp-inner {
    padding:40px;
  }
}
@media(max-width:700px) {
  .tp-intro h2 {
    font-size:22px;
  }
  .tp-block,.tp-pair {
    margin-top:56px;
    padding:0 16px;
  }
  .tp-inner > h2,.tp-head h2,.tp-card h2 {
    font-size:22px;
    margin-bottom:16px;
  }
  .tp-inner > p,.tp-head p,.tp-card p,.tp-reason-list p {
    font-size:14px;
    line-height:1.9;
  }
  .tp-media .tp-inner {
    padding:32px 24px;
  }
  .tp-chips {
    gap:8px;
  }
  .tp-chips li {
    font-size:13px;
    padding:8px 16px;
  }
  .tp-head {
    margin-bottom:32px;
    text-align:left;
  }
  .tp-reason-list {
    grid-template-columns:1fr;
    gap:16px;
  }
  .tp-reason-list li {
    padding:24px;
  }
  .tp-reason-list h3 {
    font-size:18px;
  }
  .tp-pair {
    grid-template-columns:1fr;
  }
  .tp-card {
    padding:32px 24px;
  }
  .tp-card .pill,.tp-about-link {
    width:100%;
  }
}
.tp-inner > h2,.tp-head h2,.tp-card h2,.tp-intro h2 {
  text-wrap:balance;
}

/* アイコン（ic-）2026-11-07 決まり：紺の線＋黄の差し色・Phosphor Duotone。カードは64px・左上、番号と併用しない。手順はアイコンなしでSTEPの丸い印（ic2-）、並列の種類はタイル（ic2-tiles） */
.ic-i { display:block; flex:none; width:64px; height:64px; }
.ic-cards>li>.ic-i,.ic-cards>article>.ic-i { margin-bottom:16px; }
@media(max-width:600px) {
  .ic-i { width:48px; height:48px; }
}

/* 手順：STEPの丸い印（紺地に白文字）。既存の v2-steps / process-list の枠を引き継ぎ、番号列だけ置き換える */
ol.ic2-flow.ic2-flow>li { grid-template-columns:72px minmax(0,1fr); gap:24px; align-items:start; }
ol.ic2-flow.ic2-flow>li>.ic2-step {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:72px; height:72px; margin:0; padding:0; border-radius:50%;
  background:#002F4E; color:#fff; font-size:24px; font-weight:700; line-height:1; font-variant-numeric:tabular-nums;
}
.ic2-step small { display:block; margin-bottom:4px; font-size:11px; font-weight:700; letter-spacing:.1em; line-height:1; }
ol.ic2-flow.ic2-flow>li>div>h3 { margin-top:0; padding-top:6px; }
@media(max-width:600px) {
  ol.ic2-flow.ic2-flow>li { grid-template-columns:56px minmax(0,1fr); gap:16px; }
  ol.ic2-flow.ic2-flow>li>.ic2-step { width:56px; height:56px; font-size:19px; }
  .ic2-step small { margin-bottom:3px; font-size:10px; }
  ol.ic2-flow.ic2-flow>li>div>h3 { padding-top:2px; }
}

/* カードを4つ並べるときは2列 */
@media(min-width:601px) {
  .all-lower .v2-cards3.ic2-cols2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* タイル：種類を並べる（絵は80px・中央・下に項目名） */
ul.ic2-tiles { list-style:none; margin:32px auto; padding:0; max-width:900px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
ul.ic2-tiles>li { display:flex; flex-direction:column; align-items:center; gap:16px; padding:32px 16px 24px; border:1px solid #bdd0dc; border-radius:12px; background:#fff; text-align:center; font-size:15px; font-weight:700; line-height:1.6; }
ul.ic2-tiles>li>img { display:block; width:80px; height:80px; }
@media(max-width:600px) {
  ul.ic2-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  ul.ic2-tiles>li { padding:24px 12px 16px; gap:12px; font-size:14px; }
  ul.ic2-tiles>li>img { width:64px; height:64px; }
}

/* 4つの考え方をアイコンのカードで並べる（all-lower を読まないページ用・/about/ 2026-11-07） */
ul.ic2-cards { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 35px; margin:45px 0; padding:0; }
ul.ic2-cards>li { border-top:1px solid #bdd0dc; padding:25px 0; }
ul.ic2-cards>li>.ic-i { margin-bottom:16px; }
ul.ic2-cards h3 { margin:0 0 12px; font-size:20px; line-height:1.5; }
ul.ic2-cards p { margin:0; line-height:1.9; }
@media(max-width:600px) {
  ul.ic2-cards { grid-template-columns:1fr; gap:8px; margin:20px 0; }
  ul.ic2-cards h3 { font-size:18px; }
}

/* STEPの行が見出しだけのときは丸の高さの中央にそろえる（/create/new/ 2026-11-07） */
ol.ic2-flow.ic2-flow>li:has(>div>h3:only-child) { align-items:center; }
ol.ic2-flow.ic2-flow>li>div>h3:only-child { padding-top:0; margin-bottom:0; }

/* スマホのサービス図：ラベル11px以上で読めるサイズに（2026-11-08） */
@media(max-width:1000px) {
  .orbit {
    width:min(358px,calc(100vw - 24px));
    height:auto;
    aspect-ratio:358/380;
  }
  .orbit-ring {
    inset:12%;
  }
  .orbit-center {
    width:128px;
    height:128px;
    gap:4px;
  }
  .orbit-center img {
    width:84px;
  }
  .orbit-center small {
    font-size:10px;
    line-height:1.3;
  }
  .orbit-center strong {
    font-size:12px;
    line-height:1.4;
  }
  .orbit-item {
    width:25%;
    aspect-ratio:1;
    height:auto;
    border-width:4px;
    outline-offset:2px;
    padding:0 2px;
    text-align:center;
  }
  .orbit-item svg {
    width:26px;
    height:26px;
  }
  .orbit-item span {
    font-size:11px;
    line-height:1.25;
    white-space:normal;
  }
}

/* 2026-11-08 正岡さん承認：トップと /en/ の「Service01〜04」を筆記体・青から他の見出しと同じ書体・紺に。丸い矢印も紺に */
.service-row .number,
.service-row:nth-child(even) .number {
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-style:normal;
  font-weight:700;
  letter-spacing:.04em;
  color:#002F4E;
}
.round-arrow {
  background:#002F4E;
}

/* 現行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:min(1.1em,calc((100vw - 82px) / 8));
  }
}

/* 1行目「お客さんも応募も」（8字）をカードの内側に収める（2026-10-25） */
@media(min-width:1001px) {
  .hero h1 {
    font-size:40px;
  }
  .hero-focus {
    font-size:45px;
  }
}

/* スクロール案内は初期画面内の左端へ。ページと一緒に流す */
@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-facts--unit { margin:16px 0 20px; }
.key-facts--unit>div { padding:12px 0; }
.key-facts--unit dd strong { font-size:17px; }
.key-unit-h { margin:48px 0 0; font-size:18px; color:#002F4E; }
.key-unit-lead { margin:8px 0 0; font-size:14px; line-height:1.9; }
@media (max-width:640px) { .key-facts--unit>div { grid-template-columns:1fr; gap:4px; } }

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

.download-list {
  display:grid;
  gap:16px;
  margin-top:32px;
}

.download-card {
  border:1px solid #d9e3ea;
  padding:20px 24px;
}

.download-card h3 {
  font-size:16px;
  margin:0 0 8px;
}

.download-card p {
  font-size:13px;
  margin:0;
}

.download-empty {
  margin-top:32px;
  font-size:14px;
}

/* 資料ダウンロード（/download/）：左に資料紹介・右にフォーム箱 */
.download-layout {
  display:grid;
  grid-template-columns:440px 1fr;
  gap:64px;
  align-items:start;
  padding-top:48px;
  padding-bottom:96px;
}

.download-intro {
  position:sticky;
  top:144px;
}

.download-intro .eyebrow {
  margin:0 0 8px;
}

.download-intro h2 {
  font-size:29px;
  line-height:1.6;
  margin:0 0 16px;
  word-break:auto-phrase;
}

.download-intro>p:not(.eyebrow) {
  font-size:15px;
  line-height:1.9;
  margin:0 0 32px;
  text-wrap:pretty;
  word-break:auto-phrase;
}

.download-list {
  display:grid;
  gap:24px;
  margin:0;
}

.download-card h3 {
  font-size:18px;
  font-weight:700;
  line-height:1.6;
  margin:16px 0 8px;
}

.download-card p {
  font-size:14px;
  line-height:1.8;
  margin:0;
}

.download-cover {
  aspect-ratio:16/9;
  border-radius:12px;
  background:#f2f4f7;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

.download-cover img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.download-cover--empty p {
  margin:0;
  font-size:14px;
  line-height:1.8;
  color:#667085;
}

.download-form-wrap {
  background:#f2f4f7;
  border-radius:12px;
  padding:40px;
}

.download-form-title {
  font-size:16px;
  font-weight:700;
  line-height:1.6;
  margin:0 0 24px;
}

.download-form-wrap form>label {
  margin:0 0 24px;
  font-size:15px;
  line-height:1.6;
}

.download-form-wrap form>label.consent-row {
  margin:0 0 16px;
}

.download-form-wrap form>label>span:not(:has(a)) {
  margin-left:8px;
}

.download-form-wrap input:not([type=radio]):not([type=checkbox]) {
  height:48px;
  padding:0 16px;
  margin-top:8px;
  border-radius:12px;
  background:#fff;
}

.download-form-wrap form>p {
  font-size:13px;
  line-height:1.8;
  margin:0 0 8px;
}

.download-form-wrap .key-button {
  margin-top:24px;
}

.download-form-wrap .key-button[disabled] {
  cursor:not-allowed;
  opacity:.5;
}

@media(max-width:1099px) {
  .download-layout {
    grid-template-columns:1fr;
    gap:40px;
  }
  .download-intro {
    position:static;
  }
}

@media(max-width:600px) {
  .download-layout {
    width:calc(100% - 32px);
    gap:32px;
    padding-top:32px;
    padding-bottom:64px;
  }
  .download-intro h2 {
    font-size:26px;
  }
  .download-intro>p:not(.eyebrow) {
    font-size:14px;
    margin-bottom:24px;
  }
  .download-form-wrap {
    padding:24px;
  }
  .download-form-wrap .key-button {
    width:100%;
  }
}

/* 確認画面のボタンを中央に並べる。修正＝白、送信＝黄（2026-10-25） */
#contact-confirm,
#download-confirm {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
}

#contact-confirm>:not(.key-button),
#download-confirm>:not(.key-button) {
  flex:0 0 100%;
}

#contact-edit,
#download-edit {
  order:1;
  background:white;
  box-shadow:inset 0 0 0 2px #002f4e;
}

#contact-edit:hover,
#download-edit:hover {
  background:#eef3f6;
}

#contact-send,
#download-send {
  order:2;
}

#contact-send-status,
#download-send-status {
  order:3;
  text-align:center;
}

#contact-confirm .key-button,
#download-confirm .key-button {
  margin-top:24px;
  min-width:240px;
}

.contact-form-wrap form>.key-button {
  display:block;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:600px) {
  #contact-confirm .key-button,
  #download-confirm .key-button {
    margin-top:8px;
    min-width:0;
  }
  /* スマホは押してほしい「送信」を上に */
  #contact-send,
  #download-send {
    order:1;
  }
  #contact-edit,
  #download-edit {
    order:2;
  }
}

/* 料金ページ（/pricing/）：バッジ・ボタン・プランカード */
.pr-badges {
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  padding:0;
  margin:32px 0 0;
}

.pr-badges li {
  border:1px solid #7fa4ba;
  border-radius:99px;
  padding:6px 18px;
  font-size:13px;
  font-weight:700;
  color:#002f4e;
  background:#fff;
}

.pr-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin-top:36px;
}

.pr-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:99px;
  background:#f1e52b;
  color:#002f4e;
  font-weight:700;
  font-size:15px;
  min-height:58px;
  padding:16px 35px;
  border:2px solid #f1e52b;
}

.pr-btn:hover {
  background:#e8db15;
  border-color:#e8db15;
}

.pr-btn--sub {
  background:#fff;
  border-color:#002f4e;
}

.pr-btn--sub:hover {
  background:#f2f9fc;
  border-color:#002f4e;
}

.pr-btn:focus-visible {
  outline:3px solid #4c89b1;
  outline-offset:4px;
}

.pr-plans {
  display:grid;
  gap:32px;
}

.pr-plan {
  border:1px solid #bbd1dc;
  border-radius:12px;
  padding:36px 40px 28px;
  background:#fff;
}

.pr-plan__head {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:24px;
  border-bottom:1px solid #bbd1dc;
  padding-bottom:20px;
}

.pr-plan__head h3 {
  font-size:22px;
  line-height:1.7;
  margin:0;
}

.pr-plan__head h3 a:hover {
  text-decoration:underline;
}

.key-section .pr-plan__price {
  font-size:52px;
  font-weight:700;
  line-height:1;
  letter-spacing:-.04em;
  margin:0;
  white-space:nowrap;
}

.key-section .pr-plan__price span {
  font-size:15px;
  letter-spacing:0;
  margin-left:8px;
}

.pr-plan__body {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  padding:24px 0 8px;
}

.pr-plan h4 {
  font-size:15px;
  margin:0 0 12px;
  color:#497b98;
}

.pr-plan ul {
  margin:0;
  padding-left:1.2em;
  font-size:15px;
  line-height:1.9;
}

.key-section .pr-plan__not {
  font-size:13px;
  line-height:1.9;
  color:#49657a;
  margin:12px 0 0;
}

.pr-sub {
  font-size:22px;
  line-height:1.7;
  margin:64px 0 0;
}

.key-section .pr-list-line {
  border-top:1px solid #c6d7df;
  border-bottom:1px solid #c6d7df;
  padding:22px 0;
  margin:16px 0 0;
}

.pr-sim {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
}

.pr-sim h2 {
  font-size:28px;
  line-height:1.65;
  margin:0 0 16px;
}

.pr-sim .pr-btn {
  flex:none;
}

@media(max-width:1000px) {
  .pr-plan__body {
    gap:28px;
  }
  .pr-sim {
    flex-direction:column;
    align-items:flex-start;
    gap:28px;
  }
}

@media(max-width:600px) {
  .pr-badges {
    justify-content:flex-start;
  }
  .pr-actions {
    flex-direction:column;
  }
  .pr-btn {
    width:100%;
    font-size:14px;
  }
  .pr-plan {
    padding:24px 20px 20px;
  }
  .pr-plan__head {
    flex-direction:column;
    gap:12px;
  }
  .pr-plan__head h3 {
    font-size:20px;
  }
  .key-section .pr-plan__price {
    font-size:44px;
  }
  .pr-plan__body {
    grid-template-columns:1fr;
    gap:24px;
  }
  .pr-plan ul {
    font-size:14px;
  }
  .pr-sub {
    font-size:20px;
    margin-top:48px;
  }
  .pr-sim h2 {
    font-size:24px;
  }
}

/* 料金ページ v2：メニュー行・概算例・リンク集 */
.pr-menu {
  list-style:none;
  padding:0;
  margin:0;
}

.pr-plan .pr-menu li {
  padding:0 0 16px;
}

.pr-menu strong {
  display:block;
  font-size:15px;
  line-height:1.8;
}

.pr-menu span {
  display:block;
  font-size:14px;
  line-height:1.9;
  color:#49657a;
}

.pr-plan__body ul:not(.pr-menu) li + li,
.pr-plan__body ul.pr-menu li + li {
  margin-top:0;
}

.pr-example {
  border:1px solid #bbd1dc;
  border-radius:12px;
  background:#fff;
  padding:28px 32px;
  margin:32px 0 40px;
}

.key-section .pr-example p {
  margin:0;
  line-height:1.8;
}

.key-section .pr-example__label {
  font-size:13px;
  font-weight:700;
  color:#497b98;
}

.key-section .pr-example__body {
  font-size:17px;
  font-weight:700;
}

.pr-example__body strong {
  font-size:32px;
  margin-left:20px;
}

.pr-example__body strong span {
  font-size:14px;
}

.key-section .pr-example__calc {
  font-size:13px;
  color:#49657a;
}

.key-section .pr-note-center {
  text-align:center;
  margin-top:20px;
}

.pr-links {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.pr-links a {
  display:block;
  height:100%;
  border:1px solid #bbd1dc;
  border-radius:12px;
  background:#fff;
  padding:24px;
}

.pr-links a:hover {
  border-color:#002f4e;
}

.pr-links strong {
  display:block;
  font-size:17px;
  margin-bottom:8px;
}

.pr-links span {
  font-size:13px;
  line-height:1.8;
  color:#49657a;
}

.imaiso-park__content:has(.pr-diagnosis) {
  display:flex;
  flex-direction:column;
  align-items:center;
}

.imaiso-park__content .pr-diagnosis {
  order:3;
  margin:16px auto 0;
  background:transparent;
  border:2px solid #fff;
  color:#fff;
}

.imaiso-park__content .pr-diagnosis:hover {
  background:#fff;
  color:#004077;
  border-color:#fff;
}

.pr-plan .pr-menu {
  padding-left:0;
}

@media(max-width:1000px) {
  .pr-links {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:600px) {
  .pr-links {
    grid-template-columns:1fr;
  }
  .pr-example {
    padding:20px;
  }
  .pr-example__body strong {
    display:block;
    margin:4px 0 0;
    font-size:28px;
  }
}

/* 料金ページ HP制作プラン比較表（pp-/pt- 接頭辞・pricing 専用） */
.pp-plans { margin:0 0 56px; }
.pt-excl { margin-top:32px; padding:24px 32px; border:1px solid #bbd1dc; border-radius:12px; background:#fff; }
.pt-excl h4 { font-size:16px; margin:0 0 8px; color:#002F4E; }
.pt-excl ul { margin:0; padding-left:1.2em; font-size:15px; line-height:1.9; }
.pt-wrap { margin-top:32px; }
.pt-hint { display:none; margin:0 0 8px; font-size:13px; color:#49657a; }
.pt-scroll { border:1px solid #9fb8c6; background:#fff; overflow-x:auto; }
.pt { width:100%; border-collapse:collapse; font-size:16px; line-height:1.6; color:#141414; table-layout:fixed; }
.pt-cap, .pt-vh { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.pt th, .pt td { padding:16px 12px; text-align:center; vertical-align:middle; border:1px solid #bbd1dc; }
.pt thead th { background:#002F4E; color:#fff; border-color:#2f5873; padding:32px 12px; }
.pt thead th.pt-corner { background:#fff; border-color:#bbd1dc; }
.pt-label { display:block; width:fit-content; margin:0 auto 16px; padding:4px 16px; border-radius:24px; background:#fff; color:#002F4E; font-size:14px; font-weight:700; }
.pt-name { display:block; font-size:16px; font-weight:700; line-height:1.6; }
.pt tbody th { background:#eef0f1; color:#141414; font-size:14px; font-weight:700; width:240px; }
.pt thead th.pt-corner, .pt tbody th { position:sticky; left:0; z-index:1; }
.pt tbody tr.pt-row--price th { background:#fff; border-color:#bbd1dc; }
.pt-row--price td { padding:32px 12px; }
.pt-pages { display:block; font-size:14px; color:#141414; margin-bottom:8px; }
.pt-price { display:block; color:#002F4E; white-space:nowrap; }
.pt-price strong { font-size:48px; font-weight:700; letter-spacing:-.03em; line-height:1.2; }
.pt-price strong span { font-size:16px; letter-spacing:0; margin-left:2px; }
.pt-price--quote strong { font-size:32px; }
.pt tbody tr.pt-row--rec td { vertical-align:top; text-align:left; padding:24px 16px; }
.pt-rec__h { display:block; margin-bottom:16px; color:#497b98; font-size:14px; font-weight:700; text-align:center; }
.pt-rec__body { display:flex; flex-direction:column; align-items:center; gap:16px; }
.pt-rec__body ul { align-self:stretch; }
.pt-rec__ic { flex:none; width:64px; height:64px; }
.pt-rec ul { margin:0; padding:0; list-style:none; font-size:14px; line-height:1.7; }
.pt-rec li { padding-left:1em; text-indent:-1em; }
.pt-rec li::before { content:"・"; }
.pt-o { display:inline-block; width:24px; height:24px; border:2px solid #497b98; border-radius:50%; vertical-align:middle; box-sizing:border-box; }
.pt-n { color:#49657a; }
.pt-note { margin:8px 0 0; font-size:13px; color:#49657a; text-align:right; }
.pt-pagesnote { margin:16px 0 0; font-size:14px; color:#002F4E; }
.pt-plans { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:32px; }
.pt-plan { padding:24px; border:1px solid #bbd1dc; border-radius:12px; background:#fff; font-size:14px; line-height:1.8; }
.pt-plan h4 { font-size:16px; margin:0 0 16px; color:#002F4E; line-height:1.6; }
.pt-plan p { margin:0 0 8px; }
.pt-plan__k { font-weight:700; color:#002F4E; margin-top:16px !important; }
.pt-plan h4 + .pt-plan__k { margin-top:0 !important; }
.pt-plan ul { margin:0; padding-left:1.2em; }
@media(max-width:1100px) {
  .pt-plans { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:900px) {
  .pt-hint { display:block; }
  .pt { table-layout:auto; }
  .pt thead th:not(.pt-corner), .pt td { min-width:176px; }
  .pt-rec__body { flex-direction:column; align-items:flex-start; gap:8px; }
}
@media(max-width:600px) {
  .pt { font-size:14px; }
  .pt th, .pt td { padding:12px 8px; }
  .pt thead th { padding:24px 8px; }
  .pt tbody th { width:112px; min-width:112px; font-size:13px; }
  .pt thead th.pt-corner { min-width:112px; }
  .pt-price strong { font-size:36px; }
  .pt-plans { grid-template-columns:1fr; }
  .pt-excl { padding:20px; }
}

.key-section .pr-plan__price.pr-plan__price--text {
  font-size:24px;
  letter-spacing:0;
  white-space:normal;
}
.pt-simbtn { display:inline-block; padding:8px 16px; border:1px solid #002F4E; border-radius:12px; background:#fff; color:#002F4E; font-size:14px; font-weight:700; line-height:1.5; text-decoration:none; }
.pt-simbtn:hover, .pt-simbtn:focus-visible { background:#002F4E; color:#fff; }

/* ============================================================
   リセット・ベース
============================================================ */
.imx-sim *, .imx-sim *::before, .imx-sim *::after { box-sizing: border-box; margin: 0; padding: 0; }

.imx-sim {
    --color-primary:   #3EB2D2;
    --color-secondary: #255797;
    --color-bg:        #dddddd;
    --color-white:     #ffffff;
    --color-slate-50:  #f8fafc;
    --color-slate-100: #f1f5f9;
    --color-slate-200: #e2e8f0;
    --color-slate-400: #94a3b8;
    --color-slate-500: #64748b;
    --color-slate-600: #475569;
    --color-slate-700: #334155;
    --color-slate-800: #1e293b;
    --color-accent-bg: #eef7fc;
    --color-accent-border: #bae6fd;
    --color-amber-50:  #fffbeb;
    --color-amber-200: #fde68a;
    --color-amber-700: #b45309;
    --color-panel-head-bg:   #f8fafc;
    --color-panel-head-text: #475569;
    --color-card-sub-text:   #94a3b8;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-full: 999px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
    --shadow-md: 0 4px 12px rgba(37,87,151,.15);
}

.imx-sim { font-size: 16px; }

.imx-sim {
    font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans',
                 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
    background: var(--color-bg);
    color: var(--color-slate-800);
    min-height: 0;
    -webkit-font-smoothing: antialiased;
}

.imx-sim button { font-family: inherit; cursor: pointer; border: none; background: none; }
.imx-sim input, .imx-sim label { font-family: inherit; }
.imx-sim a { color: inherit; }

/* ============================================================
   レイアウト
============================================================ */
.imx-sim .container {
    max-width: 512px;
    margin: 0 auto;
    padding: 24px 16px 80px;
}
@media (min-width: 640px)  { .imx-sim .container { max-width: 672px; } }
@media (min-width: 1024px) { .imx-sim .container { max-width: 768px; } }

/* ============================================================
   ヘッダー
============================================================ */
.imx-sim .site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.imx-sim .site-header__left {
    display: flex;
    align-items: center;
    gap: 12px;
}
.imx-sim .site-header__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-slate-800);
    letter-spacing: -.02em;
}
.imx-sim .site-header__sub {
    font-size: 11px;
    color: var(--color-slate-500);
    margin-top: 2px;
}

/* 保存インジケーター */
.imx-sim #saveIndicator {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--color-primary);
    font-weight: 500;
    opacity: 0;
}
.imx-sim #saveIndicator svg { width: 12px; height: 12px; }

/* ============================================================
   ヒーローエリア（スティッキー）
============================================================ */
.imx-sim .imx-hero {
    background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
    border-radius: var(--radius-xl);
    padding: 20px 24px;
    margin-bottom: 16px;
    box-shadow: var(--shadow-md);
    position: sticky;
    top: 122px;
    z-index: 30;
}
.imx-sim .hero__inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}
.imx-sim .hero__site-type {
    font-size: 11px;
    font-weight: 700;
    color: rgba(255,255,255,.85);
    letter-spacing: .04em;
    margin-bottom: 2px;
}
.imx-sim .hero__label {
    color: rgba(255,255,255,.6);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.imx-sim .hero__total {
    font-weight: 800;
    color: var(--color-white);
    line-height: 1;
    font-size: clamp(1.9rem, 5.5vw, 3rem);
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}
.imx-sim .hero__sub {
    color: rgba(255,255,255,.5);
    font-size: 11px;
    margin-top: 6px;
}
.imx-sim .hero__sub span {
    color: rgba(255,255,255,.8);
    font-weight: 600;
}
.imx-sim .hero__step-badge {
    background: rgba(255,255,255,.2);
    color: var(--color-white);
    font-size: 10px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: var(--radius-full);
    white-space: nowrap;
    flex-shrink: 0;
}
.imx-sim .hero__reset-btn {
    font-size: 10px;
    font-weight: 600;
    color: rgba(255,255,255,.7);
    border: 1px solid rgba(255,255,255,.3);
    border-radius: var(--radius-full);
    padding: 3px 10px;
    background: rgba(255,255,255,.1);
    transition: background .15s, color .15s;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}
.imx-sim .hero__reset-btn:hover {
    background: rgba(255,255,255,.2);
    color: #fff;
}

/* ============================================================
   プログレスバー
============================================================ */
.imx-sim .progress {
    margin-bottom: 16px;
}
.imx-sim .progress__labels {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: var(--color-slate-400);
    font-weight: 500;
    margin-bottom: 6px;
}
.imx-sim .progress__track {
    height: 6px;
    background: rgba(203,213,225,.8);
    border-radius: var(--radius-full);
    overflow: hidden;
}
.imx-sim .progress__bar {
    height: 100%;
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
    border-radius: var(--radius-full);
    transition: width .4s cubic-bezier(.4,0,.2,1);
    width: 0%;
}

/* ============================================================
   パネル（ステップカード）
============================================================ */
.imx-sim .panel {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    border: 1px solid rgba(226,232,240,.8);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    animation: imx-stepIn .22s ease-out;
}
.imx-sim .panel + .panel, .imx-sim .panel + .result-section, .imx-sim .result-section + .panel {
    margin-top: 16px;
}

.imx-sim .panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid var(--color-slate-100);
    background: var(--color-panel-head-bg);
}
.imx-sim .panel__head-left {
    display: flex;
    align-items: center;
    gap: 8px;
}
.imx-sim .panel__head-hint {
    font-size: 10px;
    color: var(--color-slate-400);
}
.imx-sim .panel__body {
    padding: 16px;
}
.imx-sim .panel__body--gap { display: flex; flex-direction: column; gap: 8px; }
.imx-sim .panel__body--gap5 { display: flex; flex-direction: column; gap: 20px; }
.imx-sim .panel__footer {
    padding: 0 16px 16px;
}

/* ============================================================
   ステップバッジ
============================================================ */
.imx-sim .step-badge {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
    color: var(--color-white);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: var(--radius-full);
}
.imx-sim .imx-step-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-panel-head-text);
}

/* ============================================================
   オプションカード
============================================================ */
.imx-sim .opt-card {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--color-slate-200);
    border-radius: var(--radius-md);
    padding: 12px 16px;
    background: rgba(248,250,252,.4);
    cursor: pointer;
    user-select: none;
    transition: border-color .13s ease, background .13s ease;
}
.imx-sim .opt-card:hover:not(.opt-card--required):not(.opt-card--disabled) {
    border-color: var(--color-primary);
    background: var(--color-accent-bg);
}
.imx-sim .opt-card--selected {
    border-color: var(--color-primary) !important;
    background: var(--color-accent-bg) !important;
}
.imx-sim .opt-card--required { cursor: default; }
.imx-sim .opt-card--disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }

.imx-sim .opt-card input[type="radio"], .imx-sim .opt-card input[type="checkbox"] {
    accent-color: var(--color-primary);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.imx-sim .opt-card__name {
    font-size: 14px;
    flex: 1;
    color: var(--color-slate-700);
}
.imx-sim .opt-card__name--active {
    color: var(--color-secondary);
    font-weight: 600;
}
.imx-sim .opt-card__sub {
    font-size: 10px;
    color: var(--color-card-sub-text);
    margin-top: 2px;
}
.imx-sim .opt-card__text-wrap {
    flex: 1;
    min-width: 0;
}

/* LPバッジ */
.imx-sim .badge-lp {
    font-size: 10px;
    background: #fef3c7;
    color: var(--color-amber-700);
    padding: 2px 6px;
    border-radius: var(--radius-full);
    font-weight: 500;
    flex-shrink: 0;
}

/* カテゴリラベル */
.imx-sim .cat-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 8px;
}
.imx-sim .cat-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--color-slate-200);
}

/* ============================================================
   数量カウンター
============================================================ */
.imx-sim .qty-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.imx-sim .qty-btn {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: var(--color-slate-200);
    color: var(--color-slate-500);
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    transition: background .12s, color .12s, transform .1s;
}
.imx-sim .qty-btn:hover:not(:disabled) { background: var(--color-primary); color: var(--color-white); }
.imx-sim .qty-btn:active:not(:disabled) { transform: scale(.9); }
.imx-sim .qty-btn:disabled { opacity: .3; cursor: not-allowed; }
.imx-sim .qty-val {
    min-width: 24px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-slate-800);
}

/* ============================================================
   LPノート（注意書き）
============================================================ */
.imx-sim .lp-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    background: var(--color-amber-50);
    border: 1px solid var(--color-amber-200);
    border-radius: var(--radius-md);
    padding: 10px 12px;
    margin-bottom: 12px;
}
.imx-sim .lp-note svg { width: 14px; height: 14px; color: #f59e0b; flex-shrink: 0; margin-top: 1px; }
.imx-sim .lp-note p { font-size: 11px; color: var(--color-amber-700); }

/* ============================================================
   Step4 ディレクション費カード
============================================================ */
.imx-sim .dir-card {
    background: linear-gradient(135deg, var(--color-slate-50), var(--color-accent-bg));
    border: 1.5px solid var(--color-accent-border);
    border-radius: var(--radius-md);
    padding: 12px 16px;
    margin-top: 8px;
}
.imx-sim .dir-card__inner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.imx-sim .dir-card svg { width: 16px; height: 16px; color: var(--color-primary); flex-shrink: 0; margin-top: 2px; }
.imx-sim .dir-card__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-secondary);
}
.imx-sim .dir-card__desc {
    font-size: 11px;
    color: var(--color-slate-500);
    margin-top: 4px;
    line-height: 1.6;
}
.imx-sim .dir-card__badge {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-primary);
    background: #e0f6fd;
    padding: 2px 8px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin-left: auto;
}

/* ============================================================
   ナビゲーションボタン
============================================================ */
.imx-sim .btn-row {
    display: flex;
    gap: 8px;
}
.imx-sim .btn-primary {
    flex: 2;
    padding: 10px 0;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-white);
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
    box-shadow: var(--shadow-sm);
    transition: opacity .15s, transform .1s;
}
.imx-sim .btn-primary:hover { opacity: .9; }
.imx-sim .btn-primary:active { transform: scale(.97); }
.imx-sim .btn-primary:disabled { opacity: .55; cursor: not-allowed; }
.imx-sim .btn-primary--full { flex: 1; }

/* Step1専用：大きめボタン */
.imx-sim .btn-primary--step1 {
    padding: 16px 24px;
    font-size: 16px;
    font-weight: 700;
    border-radius: var(--radius-lg);
    letter-spacing: .01em;
    width: 100%;
}
/* Step1フッター：ボタン左右に余白を持たせる */
.imx-sim .panel__footer--step1 {
    padding: 0 16px 20px;
}

.imx-sim .btn-secondary {
    flex: 1;
    padding: 10px 0;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-slate-500);
    background: var(--color-slate-100);
    transition: background .13s, transform .1s;
}
.imx-sim .btn-secondary:hover { background: var(--color-slate-200); }
.imx-sim .btn-secondary:active { transform: scale(.97); }

/* ============================================================
   結果モード アクションバー
============================================================ */
.imx-sim .action-bar__hint {
    font-size: 11px;
    color: var(--color-slate-500);
    padding: 10px 16px;
    border-bottom: 1px solid var(--color-slate-100);
    background: rgba(248,250,252,.6);
}
.imx-sim .action-bar__body {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.imx-sim .action-bar__sub-row {
    display: flex;
    gap: 8px;
}

.imx-sim .btn-consult {
    width: 100%;
    padding: 12px 0;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-white);
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
    box-shadow: var(--shadow-md);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: opacity .15s, transform .1s;
}
.imx-sim .btn-consult:hover { opacity: .9; }
.imx-sim .btn-consult:active { transform: scale(.98); }
.imx-sim .btn-consult svg { width: 16px; height: 16px; flex-shrink: 0; }

.imx-sim .btn-icon {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 0;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-slate-500);
    border: 1px solid var(--color-slate-200);
    border-radius: var(--radius-md);
    transition: color .13s, background .13s, transform .1s;
}
.imx-sim .btn-icon:hover { color: var(--color-primary); background: rgba(62,178,210,.05); }
.imx-sim .btn-icon:active { transform: scale(.95); }
.imx-sim .btn-icon svg { width: 14px; height: 14px; }

.imx-sim .btn-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-slate-400);
    border: 1px solid var(--color-slate-200);
    border-radius: var(--radius-md);
    transition: color .13s, background .13s, transform .1s;
}
.imx-sim .btn-reset:hover { color: #ef4444; background: #fef2f2; }
.imx-sim .btn-reset:active { transform: scale(.95); }
.imx-sim .btn-reset svg { width: 14px; height: 14px; }

/* ============================================================
   注意書き
============================================================ */
.imx-sim .disclaimer {
    background: var(--color-amber-50);
    border: 1px solid rgba(253,230,138,.6);
    border-radius: var(--radius-md);
    padding: 12px 16px;
    margin-top: 16px;
}
.imx-sim .disclaimer p {
    font-size: 11px;
    color: var(--color-amber-700);
    line-height: 1.7;
}

/* ============================================================
   トースト
============================================================ */
.imx-sim .toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    color: var(--color-white);
    padding: 8px 16px;
    border-radius: var(--radius-full);
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    pointer-events: none;
    animation: imx-toastIn .25s ease-out, imx-toastOut .25s ease-in 1.5s forwards;
    z-index: 50;
}

/* ============================================================
   アニメーション
============================================================ */
@keyframes imx-stepIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes imx-toastIn { from { opacity:0; transform:translate(-50%,12px); } to { opacity:1; transform:translate(-50%,0); } }
@keyframes imx-toastOut { from { opacity:1; } to { opacity:0; } }
@keyframes imx-savePulse { 0%,50% { opacity:1; } 100% { opacity:0; } }

.imx-sim .stat-number { transition: transform .15s cubic-bezier(.4,0,.2,1); }
.imx-sim .stat-number.bump { transform: scale(1.08); }
.imx-sim .save-dot { animation: imx-savePulse 1.5s ease-out forwards; }
.imx-sim .result-section { animation: imx-stepIn .28s ease-out; }

/* ============================================================
   ユーティリティ
============================================================ */
.imx-sim .hidden { display: none !important; }

.imx-sim ::-webkit-scrollbar { width: 4px; }
.imx-sim ::-webkit-scrollbar-track { background: transparent; }
.imx-sim ::-webkit-scrollbar-thumb { background: var(--color-slate-200); border-radius: var(--radius-full); }

/* ============================================================
   印刷専用レイアウト（概算お見積り）
============================================================ */
.imx-sim #printArea { display: none; }

@media print {
    @page { size: A4; margin: 16mm 18mm; }
    body :not(:has(#printArea)):not(#printArea):not(#printArea *) { display: none !important; }
    html, body { background: #fff !important; }
    .imx-sim #printArea {
        display: block !important;
        font-family: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
        color: #1f2a35;
        background: #fff;
        font-size: 11pt;
        line-height: 1.7;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .imx-sim #printArea p, .imx-sim #printArea h1, .imx-sim #printArea h2 { margin: 0; }
    .imx-sim #printArea section, .imx-sim #printArea .pa-total-box, .imx-sim #printArea .pa-sig { break-inside: avoid; }

    .imx-sim .pa-header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 8px; border-bottom: 2px solid #002F4E; margin-bottom: 24px; }
    .imx-sim .pa-logo { width: 120px; height: auto; }
    .imx-sim .pa-meta { font-size: 9pt; color: #4a5a68; text-align: right; line-height: 1.7; }

    .imx-sim .pa-titlebox { margin-bottom: 16px; }
    .imx-sim .pa-title { font-size: 20pt; font-weight: 700; color: #002F4E; line-height: 1.4; }
    .imx-sim .pa-badge { display: inline-block; margin-top: 8px; padding: 0 8px; font-size: 9pt; font-weight: 700; color: #002F4E; border: 1px solid #002F4E; border-radius: 4px; }

    .imx-sim .pa-total-box { background: #E8EEF3; border: 1px solid #B9C9D6; border-radius: 12px; padding: 16px 24px; margin-bottom: 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
    .imx-sim .pa-total-label { font-size: 9pt; color: #4a5a68; }
    .imx-sim .pa-total-amount { font-size: 26pt; font-weight: 700; color: #002F4E; line-height: 1.3; }
    .imx-sim .pa-total-sub { font-size: 9pt; color: #4a5a68; text-align: right; max-width: 50%; }

    .imx-sim .pa-section { margin-bottom: 24px; }
    .imx-sim .pa-section-title { font-size: 11pt; font-weight: 700; color: #002F4E; border-bottom: 1px solid #B9C9D6; padding-bottom: 4px; margin-bottom: 8px; }
    .imx-sim .pa-table { width: 100%; border-collapse: collapse; font-size: 10pt; margin-bottom: 8px; }
    .imx-sim .pa-table th { width: 38%; text-align: left; font-weight: 700; background: #F3F5F7; padding: 4px 8px; border: 1px solid #B9C9D6; vertical-align: top; }
    .imx-sim .pa-table td { padding: 4px 8px; border: 1px solid #B9C9D6; vertical-align: top; }
    .imx-sim .pa-list { list-style: none; padding: 0; margin: 0; font-size: 10pt; }
    .imx-sim .pa-list li { padding-left: 16px; position: relative; }
    .imx-sim .pa-list li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 5px; height: 5px; border-radius: 50%; background: #002F4E; }

    .imx-sim .pa-note { font-size: 9pt; color: #4a5a68; border-top: 1px solid #B9C9D6; padding-top: 8px; margin-bottom: 16px; }
    .imx-sim .pa-sig { font-size: 9pt; color: #4a5a68; }
    .imx-sim .pa-sig-name { font-size: 11pt; font-weight: 700; color: #1f2a35; }
}

/* ページ内に置くための調整（サイト側の余白・印刷時の外枠） */
.imx-sim { border-radius: 12px; }
.imx-sim .container { padding-bottom: 32px; }
@media print {
    main, #simulator, #simulator .lower-wrap, .imx-sim {
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
        max-width: none !important;
        background: none !important;
        border: 0 !important;
    }
}

/* 2026-11-07 新料金：結果表示 */
.imx-sim .hero__total.hero__total--text { font-size: clamp(1.4rem, 4.2vw, 2rem); letter-spacing: 0; }
.imx-sim .hero__sub { color: rgba(255,255,255,.8); }
.imx-sim .result-lead { font-weight: 700; color: var(--color-slate-800); margin: 0 0 8px; }
.imx-sim .result-lead:not(:first-child) { margin-top: 16px; }
.imx-sim .result-facts { margin: 0 0 8px; border-top: 1px solid var(--color-slate-200); }
.imx-sim .result-facts > div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--color-slate-200); }
.imx-sim .result-facts dt { color: var(--color-slate-600); }
.imx-sim .result-facts dd { font-weight: 700; text-align: right; }
.imx-sim .result-list { list-style: none; display: grid; gap: 4px; }
.imx-sim .result-list li { padding-left: 16px; position: relative; }
.imx-sim .result-list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--color-primary); }

/* 2026-11-07 結果のコピー・ダウンロード・相談ボタン */
.imx-sim .action-bar__lead { font-size: 13px; color: var(--color-slate-600); margin: 0; }
.imx-sim .action-bar__hint { padding: 0; border: 0; background: none; margin: 0; font-size: 12px; color: var(--color-slate-600); }
.imx-sim .action-bar__sub-row { display: grid; grid-template-columns: 2fr 1fr auto; gap: 8px; }
.imx-sim .btn-icon, .imx-sim .btn-reset { min-height: 40px; padding: 8px 16px; }
.imx-sim .btn-icon { color: var(--color-slate-600); }
.imx-sim .btn-icon#btnPdf { color: var(--color-primary); border-color: var(--color-primary); font-weight: 700; }
.imx-sim .btn-icon#btnPdf:hover { background: var(--color-accent-bg); }
@media (max-width: 560px) {
    .imx-sim .action-bar__sub-row { grid-template-columns: 1fr 1fr; }
    .imx-sim .btn-icon#btnPdf { grid-column: 1 / -1; }
}

/* 2026-11-07 項目選択・プラン・クーポン */
.imx-sim .opt-card__base { display: block; font-weight: 700; color: var(--color-primary); margin-top: 2px; }
.imx-sim .pages-input { width: 88px; padding: 8px 12px; font-size: 16px; font-weight: 700; border: 1px solid var(--color-slate-200); border-radius: 8px; text-align: right; background: #fff; color: var(--color-slate-800); }
.imx-sim .badge-price { font-size: 13px; font-weight: 700; color: var(--color-primary); white-space: nowrap; flex-shrink: 0; text-align: right; }
.imx-sim .badge-price--quote { font-weight: 600; color: var(--color-card-sub-text); }
.imx-sim #optOptions .cat-label:not(:first-child) { margin-top: 16px; }
.imx-sim .result-totals { margin: 8px 0 0; border-top: 2px solid var(--color-primary); }
.imx-sim .result-totals > div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--color-slate-200); }
.imx-sim .result-totals dd { font-weight: 700; text-align: right; }
.imx-sim .result-totals .is-minus dd { color: #b3412a; }
.imx-sim .result-totals .is-final { font-size: 16px; border-bottom: 0; }
.imx-sim .result-totals .is-final dd { font-size: 20px; color: var(--color-primary); }
.imx-sim .result-plan-note { margin: 12px 0 0; padding: 12px 16px; background: var(--color-accent-bg); border: 1px solid var(--color-accent-border); border-radius: 8px; line-height: 1.7; }
.imx-sim .result-plan-note p { margin: 0; }
.imx-sim .result-plan-note__lead { font-weight: 700; }
.imx-sim .result-plan-list { margin: 8px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.imx-sim .result-plan-list li { padding: 2px 12px; background: #fff; border: 1px solid var(--color-accent-border); border-radius: 8px; font-size: 13px; }
.imx-sim .result-plan-note__extra { margin-top: 8px !important; font-size: 13px; color: var(--color-slate-600); }
.imx-sim .result-totals dt { min-width: 0; }
.imx-sim .result-monthly { margin: 12px 0 0; color: var(--color-slate-600); }
.imx-sim .result-note { margin: 16px 0 0; font-size: 12px; color: var(--color-slate-600); }
.imx-sim .coupon__body { padding: 16px 20px; }
.imx-sim .coupon__label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 8px; color: var(--color-slate-800); }
.imx-sim .coupon__row { display: flex; gap: 8px; }
.imx-sim .coupon__input { flex: 1; min-width: 0; padding: 8px 12px; font-size: 16px; border: 1px solid var(--color-slate-200); border-radius: 8px; background: #fff; color: var(--color-slate-800); text-transform: uppercase; }
.imx-sim .coupon__btn { min-height: 40px; padding: 8px 24px; font-size: 14px; font-weight: 700; border: 1px solid var(--color-primary); border-radius: 8px; background: var(--color-primary); color: #fff; cursor: pointer; }
.imx-sim .coupon__btn--sub { background: #fff; color: var(--color-primary); }
.imx-sim .coupon__terms { margin: 8px 0 0; font-size: 13px; line-height: 1.7; color: var(--color-slate-600); }
.imx-sim .coupon__msg { margin: 8px 0 0; font-size: 13px; min-height: 1.4em; color: var(--color-slate-600); }
.imx-sim .coupon__msg--error { color: #b3412a; font-weight: 700; }
.imx-sim .coupon__msg--ok { color: var(--color-primary); font-weight: 700; }
@media print {
    .imx-sim .pa-table--totals { margin-top: 8px; }
    .imx-sim .pa-table--totals td { font-weight: 700; }
    .imx-sim .pa-monthly { font-size: 9pt; color: #4a5a68; margin: 4px 0 0; }
}
.imx-sim .result-facts dd, .imx-sim .result-totals dd { white-space: nowrap; }
.imx-sim .opt-card__text-wrap > .opt-card__name, .imx-sim .opt-card__text-wrap > .opt-card__sub { display: block; }
.imx-sim .opt-card__sub { font-size: 12px; line-height: 1.6; }

/* スマホ：追従カードを固定ヘッダー（64px）の下に収めて小さくする／h1の左右余白（2026-11-08） */
body:has(.imx-sim) .lower-title {
    padding-left: 22px;
    padding-right: 22px;
}
@media (max-width: 1000px) {
    .imx-sim .imx-hero {
        top: 72px;
        padding: 10px 14px;
        margin-bottom: 12px;
        border-radius: var(--radius-lg, 12px);
    }
    .imx-sim .hero__label { display: none; }
    .imx-sim .hero__inner { align-items: center; gap: 8px; }
    .imx-sim .hero__total { font-size: 1.5rem; }
    .imx-sim .hero__total.hero__total--text { font-size: 1.25rem; }
    .imx-sim .hero__sub {
        margin-top: 4px !important;
        font-size: 11px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .imx-sim .hero__reset-btn { padding: 8px 12px; font-size: 11px; }
}

/* ===== 2026-11-08 画面点検の修正 ===== */
/* 書体：サイトと同じ Noto Sans JP */
.imx-sim { font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', sans-serif; }
.imx-sim button, .imx-sim input, .imx-sim label { font-family: inherit; }

/* スレート灰を紺の濃淡に（補足文字は読める濃さ） */
.imx-sim {
    --color-slate-50:  #f4f7f9;
    --color-slate-100: #eaf0f4;
    --color-slate-200: #d3dee6;
    --color-slate-400: #4f6b7f;
    --color-slate-500: #3f5a6e;
    --color-slate-600: #2f4a5f;
    --color-slate-700: #1f3b52;
    --color-slate-800: #002f4e;
    --color-card-sub-text: #4f6b7f;
    --color-panel-head-text: #2f4a5f;
}

/* 小さい文字を12px以上に */
.imx-sim .site-header__sub, .imx-sim .hero__site-type, .imx-sim .hero__label, .imx-sim .hero__sub,
.imx-sim .hero__step-badge, .imx-sim .hero__reset-btn, .imx-sim .progress__labels, .imx-sim .step-badge,
.imx-sim .panel__head-hint, .imx-sim .opt-card__sub, .imx-sim .badge-lp, .imx-sim .cat-label,
.imx-sim .lp-note p, .imx-sim .dir-card__desc, .imx-sim .dir-card__badge, .imx-sim .action-bar__hint,
.imx-sim .disclaimer p, .imx-sim #saveIndicator { font-size: 12px; }
.imx-sim .panel__head-hint { color: var(--color-slate-500); }
.imx-sim .hero__label { color: rgba(255,255,255,.85); }

/* 見出しの折り返し */
.imx-sim .site-header__title { text-wrap: balance; word-break: auto-phrase; line-height: 1.5; }

/* リセットボタン：通常の色・押せる高さ */
.imx-sim .btn-reset { color: var(--color-slate-700); border-color: var(--color-slate-400); min-height: 40px; }
.imx-sim .btn-reset:hover { color: #b3412a; background: #fef2f2; border-color: #b3412a; }
.imx-sim .hero__reset-btn { min-height: 40px; color: #fff; border-color: rgba(255,255,255,.7); }

/* 追従する金額カード：補足を切らずに折り返す */
@media (max-width: 1000px) {
    .imx-sim .hero__sub { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.4; margin-top: 2px !important; }
    .imx-sim .hero__reset-btn { padding: 8px 12px; font-size: 12px; }
    .imx-sim .imx-hero { padding: 8px 14px; }
}
/* 画面右下の「↑」ボタンが右端の補足文字にかぶらないよう、右に余白 */
@media (max-width: 600px) {
    .imx-sim .panel__head { padding-right: 56px; }
}

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

/* Language switch (Japanese / English). Added 2026-11-07. */
header nav .lang-switch {
  font-size:13px;
  font-weight:700;
  line-height:1.4;
  padding:6px 16px;
  border:1px solid #002f4e;
  border-radius:999px;
  color:#002f4e;
  white-space:nowrap;
}

header nav .lang-switch:hover {
  background:#002f4e;
  color:#fff;
}

.footer-organized .footer-legal a.lang-switch {
  padding:4px 16px;
  border:1px solid #ffffff55;
  border-radius:999px;
}

html[lang="en"] header nav {
  gap:32px;
}

@media(max-width:1000px) {
  header nav .lang-switch {
    align-self:flex-start;
    margin-top:8px;
  }
}

/* English pages: headline sizing and small notes (2026-11-07) */
html[lang="en"] .hero h1 {
  font-size:34px;
  line-height:1.4;
}

html[lang="en"] .hero-focus {
  font-size:1em;
  white-space:normal;
}

html[lang="en"] .work .work-note {
  margin:8px 0 0;
  font-size:12px;
  color:#4f829e;
}

@media(max-width:1000px) {
  html[lang="en"] .hero h1 {
    font-size:28px;
  }
  html[lang="en"] .hero-focus {
    font-size:1em;
  }
}

/* Consultation split: estimate = main entry, contact = other inquiries (2026-11-07) */
header nav .header-inquiry {
  white-space:nowrap;
}

.contact-intro .contact-guide {
  margin:0 0 32px;
  padding:16px 24px;
  background:#f4f8fb;
  border-left:4px solid #f2e725;
  font-size:15px;
  line-height:1.8;
  color:#002f4e;
}

.contact-intro .contact-guide a {
  font-weight:700;
  text-decoration:underline;
}

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

/* ===== 2026-11-08 画面点検の修正（共通） ===== */

/* 1 小さい文字を12px以上に（STEPの丸の中だけ11px） */
.breadcrumb,.breadcrumb a,.breadcrumb>span,.news-detail .breadcrumb,.lower-title p,
.footer-organized .footer-legal a,.footer-organized .footer-legal .copyright,.footer-organized .copyright,
.eyebrow,.recruitment-page .eyebrow,.lower-heading .eyebrow,
.route-sources span,.orbit-item span,.orbit-center small,.visual-result small,.visual-posts small,.visual-materials small,
.notice span,.footer-feature span,.news-entry__meta span,.news-other span,
.contact-form-wrap legend>span,.contact-form-wrap form>label>span:not(:has(a)),
.all-lower th small,.all-lower th small a,.about-team th small,.footer-organized .footer-legal .lang-switch {
  font-size:12px;
}
.ic2-step small,ol.ic2-flow.ic2-flow>li>.ic2-step small { font-size:11px; }

/* 3 見出しの1〜2文字だけの折り返しを防ぐ */
h1,h2,h3,.lower-title h1 {
  text-wrap:balance;
  word-break:auto-phrase;
}
p,li,dd { text-wrap:pretty; }

/* 2 先頭へ戻るボタン：紺・スマホは小さく */
.back-top { background:#002f4e; color:#fff; }
.back-top:hover,.back-top:focus-visible { background:#004077; }

/* 11 追従の相談ボタン：黄＋紺文字 */
.floating-contact { background:#f2e725; color:#002f4e; font-weight:700; }
.floating-contact:hover,.floating-contact:focus-visible { background:#fff; color:#002f4e; }

@media(max-width:600px) {
  .back-top { width:40px; height:40px; right:8px; bottom:76px; font-size:18px; }
  .fixed-consult { width:auto; padding:0; background:transparent; box-shadow:none; border-radius:0; right:8px; bottom:12px; }
  .fixed-consult .floating-contact {
    min-height:44px; padding:10px 18px; font-size:13px; box-shadow:0 2px 10px #00000040;
  }
  .fixed-consult .floating-contact span { position:static; margin-left:8px; font-size:18px; line-height:1; }
}

/* 12 フッター前の相談帯の透かし文字：帯の紺に近い色にして薄く */
.imaiso-park__marquee { opacity:.045; }
.imaiso-park__track img { filter:brightness(0) invert(1); }
@media(max-width:600px) {
  .imaiso-park__marquee { opacity:.045; }
}

/* 5 本文と同じ左右余白（お知らせ枠） */
.all-lower .v2-note-box { width:calc(100% - 100px); }
@media(max-width:1000px) { .all-lower .v2-note-box { margin-left:auto; margin-right:auto; } }
@media(max-width:600px) { .all-lower .v2-note-box { width:calc(100% - 44px); } }

/* 7 カード列のある節は、見出し・リードの左端をカードに合わせる */
.all-lower .v2-sec .section:has(>.v2-cards3)>h2,
.all-lower .v2-sec .section:has(>.v2-cards3)>.v2-prose { max-width:none; margin-left:0; margin-right:0; }
.all-lower .v2-sec .section:has(>.v2-cards3)>.v2-prose { max-width:850px; }

/* 10 サイトマップ：行を詰めてページ名をリンクに */
.about-team:has(.sitemap-group) .about-roles>div { padding:8px 0; min-height:48px; align-items:center; gap:24px; line-height:1.6; }
.about-team:has(.sitemap-group) .about-roles dt { color:#002f4e; }
.about-team:has(.sitemap-group) .about-roles dt a { color:#002f4e; text-decoration:underline; text-underline-offset:4px; text-decoration-color:#90a9b7; display:inline-block; padding:8px 0; }
.about-team:has(.sitemap-group) .about-roles dt a:hover { text-decoration-color:#002f4e; }
@media(max-width:600px) {
  .about-team:has(.sitemap-group) .about-roles>div { gap:0; padding:4px 0; }
}

/* 13 料金表のスマホ表示 */
@media(max-width:600px) {
  .all-lower table:not(.pt):not(.v2-table--kv):not(:has(thead th:nth-child(3))) {
    display:table; table-layout:fixed; width:100%; overflow:visible;
  }
  .all-lower table:not(.pt):not(.v2-table--kv):not(:has(thead th:nth-child(3))) th,
  .all-lower table:not(.pt):not(.v2-table--kv):not(:has(thead th:nth-child(3))) td { min-width:0; }
  .all-lower table:not(.pt):not(.v2-table--kv):not(:has(thead th:nth-child(3))) th:first-child { width:64%; word-break:auto-phrase; }
  .all-lower table:not(.pt):not(.v2-table--kv):not(:has(thead th:nth-child(3))) td { width:36%; }
  .all-lower table:not(.pt):not(.v2-table--kv):has(thead th:nth-child(3)) { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .all-lower table:not(.pt):not(.v2-table--kv):has(thead th:nth-child(3)) th:first-child {
    position:sticky; left:0; z-index:1; width:112px; min-width:112px; box-shadow:1px 0 0 #ccd8df; background:#eff6fa;
  }
  .all-lower table:not(.pt):not(.v2-table--kv):has(thead th:nth-child(3)) td { min-width:176px; }
}
/* /pricing/ の表：左の項目列を横スクロールでも残す */
.pt thead th.pt-corner,.pt tbody th { box-shadow:1px 0 0 #bbd1dc; background-clip:padding-box; }
.service-choice-intro>.eyebrow,.refined-service .service-choice-intro>.eyebrow,.news-other>span:first-child { font-size:12px; }

/* 14 余白：リンク一覧だけの節と、その前の節の間を詰める */
.all-lower .v2-sec--tight:has(>.section>.v2-links:only-child) { padding:24px 0; }
.all-lower .v2-sec:has(+.v2-sec--tight>.section>.v2-links:only-child) { padding-bottom:40px; }
.all-lower .np-hero+.v2-sec { padding-top:32px; }
.all-lower main>.page-content { padding-bottom:40px; }
.all-lower .page-content>.detail-section:last-child { padding-bottom:24px; }
@media(max-width:600px) { .all-lower main>.page-content { padding-bottom:24px; } }
@media(min-width:601px) { .about-team:has(.sitemap-group) .about-roles>div { grid-template-columns:320px 1fr; } }
.v2-cta .h,.imaiso-park__content h2,.lower-heading p { text-wrap:balance; word-break:auto-phrase; }

