*{box-sizing:border-box}html,body{margin:0}body{color:#343434;font-family:"Arial Rounded MT Bold","Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,sans-serif}.hero{position:relative;overflow:hidden;background:#f8af76;isolation:isolate}.hero:before,.hero:after{content:"";position:absolute;z-index:-1;width:62%;height:49%;background-color:#f7a058;background-image:radial-gradient(circle,#ffc18b 0 5px,transparent 5.5px);background-size:53px 53px;border-radius:0 0 60% 10%;transform:rotate(-10deg)}.hero:before{left:-9%;top:-17%}.hero:after{right:-19%;bottom:-28%;transform:rotate(-25deg)}.hero-inner{position:relative;max-width:2160px;aspect-ratio:2160/954;margin:auto}.hero-panel{position:absolute;left:29.8%;top:9.75%;width:40.4%;height:80.4%;border-radius:2.6vw;background:#fff;text-align:center;padding-top:3%}.brand{display:flex;align-items:center;justify-content:center;height:10%;color:#251d1a;gap:.35vw;font-weight:900}.brand-mark{display:block;position:relative;width:3.4vw;height:3.4vw;border:.48vw solid #dc80b5;border-right-color:transparent;border-bottom-color:#b97eb8;border-radius:50%;transform:rotate(-20deg)}.brand-mark:after{content:"";position:absolute;inset:20%;border:.43vw solid #f7ad6d;border-right:0;border-bottom:0;border-radius:50%}.brand-mark i{position:absolute;background:#f7ad6d;width:70%;height:23%;left:1%;bottom:0;border-radius:20px;transform:rotate(-35deg)}.company{font-size:.95vw;line-height:1.05;letter-spacing:.04em}.brand-name{font-size:2.1vw;letter-spacing:.13em}h1{font-size:3.95vw;line-height:1.3;letter-spacing:.06em;font-weight:900;margin:3.35vw -2vw 2.75vw;white-space:nowrap}.services{display:flex;justify-content:center;gap:.82vw;list-style:none;margin:0;padding:0}.services li{width:7.7vw;height:7.7vw;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;background:linear-gradient(120deg,#ea7fb4,#b97fb4);font-size:1.52vw;font-weight:600;line-height:1.14}.tagline{font-size:1.43vw;font-weight:700;letter-spacing:.07em;margin:1.05vw -1vw 0}.art{position:absolute;display:block;height:auto}.person-left{width:15.3%;left:18.5%;top:43%;clip-path:polygon(43% 3%,58% 1%,68% 3%,77% 11%,83% 24%,86% 33%,80% 38%,77% 40%,85% 44%,92% 54%,99% 75%,99% 86%,94% 90%,84% 92%,84% 98%,18% 98%,18% 89%,10% 87%,6% 82%,7% 74%,7% 57%,2% 45%,6% 40%,12% 39%,12% 29%,16% 27%,19% 39%,22% 42%,18% 52%,21% 60%,30% 48%,43% 41%,33% 37%,27% 34%,26% 29%,30% 14%,35% 6%)}.person-right{width:12.3%;left:67.4%;top:44.8%}
.person-right{clip-path:polygon(42% 2%,59% 2%,72% 7%,81% 18%,84% 43%,91% 51%,98% 61%,96% 70%,100% 84%,96% 89%,95% 98%,7% 98%,7% 90%,2% 84%,3% 72%,5% 60%,10% 60%,15% 49%,23% 44%,20% 30%,22% 17%,29% 7%)}.envelopes{width:6.4%;left:24.4%;top:11%}.envelopes{clip-path:polygon(5% 18%,63% 3%,97% 71%,77% 77%,81% 86%,25% 97%,3% 65%,21% 56%)}.documents-left{width:5.6%;left:19.6%;top:30%}.calculator{width:4.2%;left:73.4%;top:11.2%}.money{width:5.4%;left:68.7%;top:30%}.documents-right{width:7.2%;left:76.1%;top:22.5%}.pattern{position:absolute;z-index:-1;width:39%;height:50%;background:repeating-linear-gradient(135deg,transparent 0 30px,#ffc08966 31px 34px),#f89c66;border-radius:50%}.pattern-one{right:-8%;top:-12%;transform:rotate(15deg)}.pattern-two{left:-17%;bottom:-18%}.ring{position:absolute;border:7px solid #f4a64e;border-radius:50%;width:12vw;height:12vw;z-index:-1;background:radial-gradient(circle,#f6a14d 0 6px,transparent 7px) 0 0/34px 34px}.ring-one{left:3%;top:51%}.ring-two{right:3%;top:30%;width:9vw;height:9vw}
@media(min-width:2160px){.hero-inner{max-width:none}}
@media(max-width:767px){.hero{background:#ffbd8a}.hero-inner{aspect-ratio:585/656;min-height:560px}.hero-panel{left:8.9%;top:9.15%;width:82.3%;height:64.5%;border-radius:5.1vw;padding-top:6.4vw}.brand{height:7vw;gap:.6vw}.brand-mark{width:6.5vw;height:6.5vw;border-width:.95vw}.brand-mark:after{border-width:.8vw}.company{font-size:1.9vw}.brand-name{font-size:4.3vw;letter-spacing:.08em}h1{font-size:8.25vw;line-height:1.31;letter-spacing:.035em;margin:5.6vw -3vw 4.35vw}.services{gap:1.7vw}.services li{width:15.65vw;height:15.65vw;font-size:3.6vw;font-weight:500}.tagline{font-size:3.45vw;letter-spacing:.015em;margin:1.9vw -3vw 0;white-space:nowrap}.person-left{left:51.1%;top:71.3%;width:23.6%}.person-right{left:30.3%;top:71.3%;width:20%}.envelopes{left:15%;top:71%;width:12.1%}.documents-left{left:7.6%;top:86%;width:11.3%}.calculator{left:84.5%;top:69.3%;width:8%}.money{left:72.6%;top:79.4%;width:11.6%}.documents-right{left:83%;top:88%;width:11.5%}.hero:before{width:52%;height:15%;left:-18%;top:-8%;background-size:20px 20px;background-image:radial-gradient(circle,#ffcd98 0 2px,transparent 2.5px)}.hero:after{width:57%;height:15%;bottom:-12%;background-size:20px 20px}.pattern-one{width:75%;height:39%;right:-26%;top:-16%;background-size:auto}.pattern-two{width:78%;height:35%;left:-26%;bottom:-10%}.ring-one{width:19vw;height:19vw;top:66%;left:4.5%;border-width:4px;background-size:20px 20px}.ring-two{width:12vw;height:12vw;top:15%;right:6%;border-width:3px}}
@media(max-width:499px){.hero-inner{min-height:0}}
/* The supplied PNGs retain parts of the source background. Clip those margins without modifying the originals. */
.calculator{clip-path:polygon(9% 15%,77% 6%,93% 86%,24% 94%)}
.documents-left{clip-path:polygon(6% 8%,34% 4%,37% 19%,59% 21%,58% 36%,69% 15%,96% 26%,59% 96%,33% 84%,17% 84%)}
.documents-right{clip-path:polygon(46% 4%,96% 20%,73% 71%,81% 88%,28% 98%,4% 44%,31% 40%)}

.money{clip-path:polygon(39% 15%,43% 7%,52% 6%,58% 10%,68% 10%,73% 18%,90% 27%,96% 38%,91% 47%,86% 48%,92% 64%,89% 80%,78% 92%,66% 95%,24% 85%,11% 77%,4% 62%,7% 46%,18% 33%,10% 29%,17% 20%)}
.person-left{clip-path:polygon(40% 2%,59% 0%,70% 3%,79% 12%,84% 25%,86% 34%,81% 39%,77% 41%,87% 46%,94% 58%,100% 77%,100% 88%,94% 92%,88% 93%,88% 99%,18% 99%,18% 89%,10% 89%,5% 84%,5% 70%,0% 39%,8% 35%,8% 25%,13% 24%,16% 35%,19% 37%,21% 44%,17% 51%,20% 59%,29% 49%,42% 42%,32% 39%,25% 34%,25% 28%,29% 14%,34% 6%)}

@media(max-width:767px){h1{margin-top:4.9vw;margin-bottom:3.5vw}.tagline{margin-top:1.9vw}}

/* Section 2 — scoped rules preserve the existing first view. */
.concerns {
  --concern-accent: #f79356;
  background: #fff8e5;
  padding: 5.55vw 0 5.7vw;
  font-family: "Hiragino Maru Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  color: #363634;
}
.concerns-inner { width: 76.4%; max-width: 1650px; margin: 0 auto; }
.concerns-heading { text-align: center; }
.concerns-eyebrow { display: inline-block; margin: 0; padding: .55vw 2.05vw; border-radius: 100px; background: var(--concern-accent); color: white; font-size: 1.65vw; line-height: 1.35; font-weight: 700; }
.concerns-heading h2 { margin: .6vw 0 4.25vw; font-size: 2.7vw; letter-spacing: .06em; line-height: 1.5; font-weight: 800; }
.concerns-heading h2 > span:first-child { color: var(--concern-accent); font-size: 1.42em; }
.concerns-grid { display: grid; grid-template-columns: 1.25fr 1fr 1.25fr; grid-template-rows: auto auto; column-gap: 1.5vw; row-gap: 4.3vw; align-items: center; }
.concerns-illustration { grid-column: 2; grid-row: 1 / 3; position: relative; display: grid; place-items: center; }
.concerns-illustration::before { content: ""; position: absolute; width: 94%; aspect-ratio: 1; border-radius: 50%; background: white; }
.concerns-illustration > img { position: relative; display: block; width: 100%; height: auto; }
.concern-card { position: relative; background: white; border-radius: .85vw; padding: 1.55vw 1.15vw 1.45vw; min-width: 0; }
.concern-staff { grid-column: 1; grid-row: 1; }
.concern-cost { grid-column: 1; grid-row: 2; }
.concern-bias { grid-column: 3; grid-row: 1; transform: translateY(.85vw); }
.concern-focus { grid-column: 3; grid-row: 2; transform: translateY(.85vw); }
.concern-card::after { content: ""; position: absolute; top: 65%; right: -1.8vw; border-style: solid; border-width: 1.15vw 0 0 1.9vw; border-color: transparent transparent transparent white; }
.concern-bias::after, .concern-focus::after { left: -1.8vw; right: auto; border-width: 1.15vw 1.9vw 0 0; border-color: transparent white transparent transparent; }
.concern-card h3 { position: absolute; top: -1.75vw; left: 18%; width: 64%; margin: 0; display: flex; align-items: center; justify-content: center; gap: .65vw; padding: .35vw .5vw; border-radius: 100px; color: white; background: var(--concern-accent); font-size: 1.22vw; line-height: 1.35; white-space: nowrap; }
.concern-card h3 img { width: 1.6vw; height: 1.6vw; object-fit: contain; }
.concern-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .8vw; }
.concern-card li { position: relative; padding-left: 1.55vw; font-size: 1.11vw; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; }
.concern-card li::before { content: ""; position: absolute; top: .23em; left: 0; width: 1.15vw; height: 1.15vw; background: url("Images/sec2%20transparent%20png%20assets/icon_checkmark.png") center / contain no-repeat; }
.concerns-message { text-align: center; font-size: 2.45vw; font-weight: 800; line-height: 1.45; margin: 1.9vw -2vw 0; }
.concerns-message::before { content: ""; display: block; height: 2.6vw; width: 0; border-left: .16vw dashed #55534b; margin: 0 auto 1.4vw; }
.concerns-message strong { color: var(--concern-accent); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: .045em; }
@media (max-width: 767px) {
  .concerns { padding: 15.4vw 0 16vw; }
  .concerns-inner { width: calc(100% - 10.26vw); max-width: 620px; }
  .concerns-eyebrow { padding: .8vw 2.2vw; font-size: 4.1vw; }
  .concerns-heading h2 { margin: 2.1vw -1vw 6.7vw; font-size: 7.1vw; line-height: 1.4; letter-spacing: .06em; }
  .concerns-heading h2 > span:first-child { font-size: 1.4em; }
  .concerns-title-rest { display: block; }
  .concerns-grid { display: flex; flex-direction: column; gap: 12.6vw; }
  .concerns-illustration { width: 50.5%; margin: 0 auto .1vw; }
  .concern-card { width: 100%; border-radius: 2.8vw; padding: 5.7vw 5vw; transform: none; }
  .concern-card::after { display: none; }
  .concern-card h3 { top: -6.5vw; left: 15.7%; width: 68.6%; font-size: 4.6vw; padding: 1.2vw .5vw; gap: 2.2vw; line-height: 1.35; }
  .concern-card h3 img { width: 5.6vw; height: 5.6vw; }
  .concern-card ul { gap: 3.8vw; }
  .concern-card li { padding-left: 5.6vw; font-size: 4.1vw; line-height: 1.5; }
  .concern-card li::before { width: 4.3vw; height: 4.3vw; top: .25em; }
  .concerns-message { font-size: 5.05vw; line-height: 1.25; margin: 12vw 0 0; }
  .concerns-message::before, .concerns-pc-break { display: none; }
  .concerns-message strong { font-size: 1.3em; line-height: 1.3; }
  .concerns-message strong::before { content: ""; display: block; margin-top: 1vw; }
}
/* Prefer the installed Japanese sans-serif face for consistent, rounded text. */
.concerns { font-family: "Noto Sans JP", Meiryo, "Yu Gothic", sans-serif; }
@media (max-width: 767px) {
  .concerns-illustration { margin-bottom: 2.3vw; }
  .concerns-message { margin-top: 12vw; }
}

/* Section 3: three cards above two centered cards; one column on phones. */
.reasons { background: #f39456; padding: 5.5vw 0; color: #252525; font-family: "Noto Sans JP", Meiryo, "Yu Gothic", sans-serif; }
.reasons-inner { width: 76.4%; margin: 0 auto; }
.reasons h2 { color: #fff; text-align: center; font-size: 2.5vw; line-height: 1.5; margin: 0 0 2.9vw; font-weight: 700; }
.reasons-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 2.55vw; }
.reason-card { grid-column: span 2; background: #fff; border-radius: .75vw; padding: 2.1vw 1.75vw; text-align: center; min-width: 0; }
.reason-card:nth-child(4) { grid-column: 2 / span 2; }
.reason-card h3 { margin: 0; color: #f79356; font-size: 1.6vw; line-height: 1.55; font-weight: 700; }
.reason-card p { margin: .65vw 0 0; font-size: 1.12vw; line-height: 1.5; overflow-wrap: anywhere; }
.reason-art { position: relative; width: 12vw; height: 9.5vw; margin: .9vw auto 0; isolation: isolate; display: flex; align-items: center; justify-content: center; }
.reason-art::before, .reason-art::after { content: ""; position: absolute; z-index: -1; background: #fff8e5; border-radius: 50%; }
.reason-art::before { width: 57%; height: 69%; left: 0; top: 0; }
.reason-art::after { width: 72%; height: 84%; right: 0; bottom: 0; }
.reason-art img { display: block; object-fit: contain; height: auto; max-height: 90%; }
.reason-man { width: 66%; }
.reason-expert { width: 43%; }
.reason-volume { width: 78%; }
.reason-worker { width: 94%; }
.reason-growth .reason-chart { position: absolute; width: 64%; height: 83%; max-height: none; left: 3%; top: 1%; object-fit: fill; clip-path: inset(0 20% 0 0); }
.reason-growth .reason-businesswoman { position: absolute; width: 36%; height: 66%; right: 6%; bottom: 10%; }
@media (max-width: 767px) {
  .reasons { padding: 15.4vw 0; }
  .reasons-inner { width: 89.75%; }
  .reasons h2 { font-size: 6.7vw; margin: 0 0 10.25vw; white-space: nowrap; }
  .reasons-grid { display: flex; flex-direction: column; gap: 9.7vw; }
  .reason-card { border-radius: 2.6vw; padding: 7.8vw 7.6vw; }
  .reason-card h3 { font-size: 6vw; line-height: 1.5; }
  .reason-card p { font-size: 4.1vw; line-height: 1.5; margin-top: 2.55vw; }
  .reason-art { width: 43.5vw; height: 34.6vw; margin-top: 3.4vw; }
}
/* Hide the neighboring figure retained at the edge of the chart source. */
.reason-growth .reason-chart { width: 80%; clip-path: inset(0 24% 0 0); }

/* Section 4: service lists retain their reading order at every viewport size. */
.service-catalog { background: #fff; color: #3b3b39; padding: 5.6vw 0; font-family: "Noto Sans JP", Meiryo, "Yu Gothic", sans-serif; }
.service-catalog-inner { width: 76.4%; margin: 0 auto; }
.service-catalog h2 { margin: 0 0 2.65vw; text-align: center; font-size: 2.45vw; font-weight: 700; line-height: 1.5; }
.service-catalog-groups { display: grid; gap: 4.15vw; }
.service-group { --service-color: #f39456; --service-tint: #fff8e5; --service-check: url("Images/sec4%20transparent%20png%20assets/icons/check_orange.png"); background: var(--service-tint); }
.service-office { --service-color: #e980b0; --service-tint: #fff0f7; --service-check: url("Images/sec4%20transparent%20png%20assets/icons/check_pink.png"); }
.service-subsidy { --service-color: #57c2ee; --service-tint: #e5f7ff; --service-check: url("Images/sec4%20transparent%20png%20assets/icons/check_blue.png"); }
.service-digital { --service-color: #b17db5; --service-tint: #f3eaf5; --service-check: url("Images/sec4%20transparent%20png%20assets/icons/check_purple.png"); }
.service-other { --service-color: #969696; --service-tint: #f8f8f8; --service-check: url("Images/sec4%20transparent%20png%20assets/icons/check_gray.png"); }
.service-group h3 { margin: 0; padding: .7vw 1vw; background: var(--service-color); color: #fff; text-align: center; font-size: 1.9vw; line-height: 1.5; font-weight: 700; }
.service-group-body { display: grid; grid-template-columns: minmax(0, 1fr) 14vw; align-items: center; gap: 3vw; padding: 2.5vw 11.3vw; min-height: 14.9vw; }
.service-group-lists { display: grid; grid-template-columns: .9fr 1.25fr; align-items: start; gap: 2vw; }
.service-group ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .6vw; }
.service-group li { position: relative; padding-left: 1.5vw; font-size: 1.1vw; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.service-group li::before { content: ""; position: absolute; top: .32em; left: 0; width: 1.05vw; height: .85vw; background: var(--service-check) center / contain no-repeat; }
.service-visual { display: block; width: 100%; height: auto; max-height: 11vw; object-fit: contain; }
.service-subsidy .service-visual, .service-digital .service-visual { max-height: 8.7vw; }
.service-catalog-note { font-size: 1.85vw; line-height: 1.5; font-weight: 700; text-align: center; margin: 1.65vw 0 0; }
@media (max-width: 767px) {
  .service-catalog { padding: 15vw 0; }
  .service-catalog-inner { width: 89.75%; }
  .service-catalog h2 { font-size: 6.8vw; margin-bottom: 10.25vw; }
  .service-catalog-groups { gap: 15.4vw; }
  .service-group h3 { font-size: 5.1vw; padding: 1.4vw 1vw; line-height: 1.5; }
  .service-group-body { display: flex; flex-direction: column; gap: 8.5vw; padding: 5.1vw 9.5vw 7.7vw; min-height: 0; }
  .service-group-lists { display: flex; flex-direction: column; align-items: stretch; gap: 2.5vw; width: max-content; max-width: 100%; }
  .service-group ul { gap: 2.5vw; }
  .service-group li { font-size: 4.05vw; line-height: 1.4; padding-left: 5.3vw; }
  .service-group li::before { width: 4.1vw; height: 3.1vw; top: .27em; }
  .service-visual { width: 37vw; max-height: 27vw; }
  .service-subsidy .service-visual { width: 40vw; max-height: 31vw; }
  .service-digital .service-visual { width: 34vw; max-height: 25vw; }
  .service-other .service-group-body { padding-left: 8vw; padding-right: 8vw; }
  .service-other .service-visual { width: 46vw; max-height: 30vw; }
  .service-catalog-note { font-size: 6vw; line-height: 1.45; margin-top: 6.4vw; }
}
/* Frame the actual artwork, excluding blank margins retained in supplied PNGs. */
.service-figure { width: 14vw; display: grid; place-items: center; }
.service-subsidy .service-figure, .service-digital .service-figure, .service-other .service-figure { position: relative; overflow: hidden; width: 11vw; height: 8.3vw; justify-self: center; }
.service-subsidy .service-visual { position: absolute; width: 190%; max-height: none; top: -7%; left: -26%; }
.service-digital .service-visual { position: absolute; width: 182%; max-height: none; top: -10%; left: -35%; }
.service-other .service-figure { width: 13vw; }
.service-other .service-visual { position: absolute; width: 135%; max-height: none; top: -6%; left: -13%; }
.service-group li::before { background-size: 185% 185%; }
@media (min-width: 768px) { .service-other .service-group-body { padding-left: 10.4vw; padding-right: 10.4vw; } .service-other .service-group-lists { grid-template-columns: 1fr 1.2fr; } }
@media (max-width: 767px) {
  .service-figure { width: 37vw; }
  .service-subsidy .service-figure { width: 40vw; height: 29vw; }
  .service-digital .service-figure { width: 34vw; height: 25vw; }
  .service-other .service-figure { width: 46vw; height: 30vw; }
}

/* Section 5 — process and company profile. No rasterized text is used. */
.getting-started { background: #fff8e5; color: #353533; padding: 5.5vw 0; font-family: "Noto Sans JP", Meiryo, "Yu Gothic", sans-serif; }
.getting-started-inner { width: 76.4%; margin: 0 auto; }
.getting-started h2 { text-align: center; font-size: 2.5vw; line-height: 1.5; margin: 0; font-weight: 700; }
.process-steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1.1vw; list-style: none; padding: 0; margin: 4.1vw 0 0; }
.process-steps > li { position: relative; border: 1px solid #c7c7c7; border-radius: 1.8vw; background: #fff; padding: 2.05vw 1vw 1.15vw; text-align: center; color: #111; }
.process-number { position: absolute; top: -1.8vw; left: -1px; width: 3.5vw; height: 3.5vw; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #f79356; font-size: 1.75vw; font-weight: 700; }
.process-steps h3 { margin: 0 0 1.5vw; font-size: 1.65vw; line-height: 1.5; white-space: nowrap; font-weight: 700; }
.process-steps li:nth-child(n+4) h3 { color: #f79356; }
.process-steps p { margin: 0; font-size: 1.12vw; line-height: 1.5; overflow-wrap: anywhere; }
.company-profile { margin-top: 6.8vw; }
.company-profile-layout { display: grid; grid-template-columns: 1fr 1.045fr; gap: 4.1vw; align-items: stretch; margin-top: 4.15vw; }
.company-details { margin: 0; font-size: 1.23vw; line-height: 1.55; color: #161616; }
.company-details > div { display: grid; grid-template-columns: 32% 68%; padding: .85vw 1.35vw; }
.company-details > div:nth-child(odd) { background: #fff; }
.company-details dt { font-weight: 600; }
.company-details dd { margin: 0; overflow-wrap: anywhere; }
.company-map { min-width: 0; min-height: 24.5vw; }
.company-map iframe { display: block; width: 100%; height: 100%; min-height: 24.5vw; border: 0; }
@media (max-width: 767px) {
  .getting-started { padding: 20.5vw 0; }
  .getting-started-inner { width: 89.75%; }
  .getting-started h2 { font-size: 7.2vw; }
  .process-steps { grid-template-columns: 1fr; gap: 4.1vw; margin-top: 10.25vw; }
  .process-steps > li { border-radius: 6.4vw; padding: 4.1vw 5.6vw; }
  .process-number { top: -2.6vw; width: 10.25vw; height: 10.25vw; font-size: 6.4vw; }
  .process-steps h3 { font-size: 5.4vw; margin-bottom: 2.3vw; }
  .process-steps p { font-size: 4.35vw; line-height: 1.5; }
  .company-profile { margin-top: 25.6vw; }
  .company-profile-layout { grid-template-columns: 1fr; gap: 15.4vw; margin-top: 10.25vw; }
  .company-details { font-size: 4.15vw; line-height: 1.5; }
  .company-details > div { grid-template-columns: 35% 65%; padding: 3.7vw 5.1vw; }
  .company-map { min-height: 0; aspect-ratio: 3 / 2; }
  .company-map iframe { min-height: 0; height: 100%; }
}

/* Persistent contact button, including space for the device's bottom safe area. */
body { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
.phone-contact { position: fixed; z-index: 100; bottom: 0; left: 0; width: 100%; padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px)); background: rgba(255,255,255,.97); border-top: 1px solid #f4dbc9; box-shadow: 0 -3px 18px #38231314; }
.phone-contact-link { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 60px; max-width: 560px; margin: 0 auto; padding: 10px 24px; border-radius: 999px; color: #fff; background: #aa481b; text-decoration: none; font-family: "Noto Sans JP", Meiryo, sans-serif; font-weight: 700; }
.phone-contact-link:hover { background: #913c15; }
.phone-contact-link:focus-visible { outline: 3px solid #292929; outline-offset: 3px; }
.phone-contact-icon { width: 25px; height: 25px; flex-shrink: 0; }
.phone-contact-label { font-size: 15px; }
.phone-contact-number { font-size: 24px; white-space: nowrap; }
@media (max-width: 767px) {
  body { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  .phone-contact { padding: 10px 15px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .phone-contact-link { display: grid; grid-template-columns: 25px auto; column-gap: 12px; row-gap: 0; min-height: 64px; padding: 7px 14px; }
  .phone-contact-icon { grid-row: 1 / 3; }
  .phone-contact-label { font-size: 12px; text-align: center; line-height: 1.4; }
  .phone-contact-number { font-size: 23px; line-height: 1.4; }
}


/* First-view illustrations animate immediately, including without JavaScript. */
.hero .art { transform-origin: 50% 85%; animation: fv-icon-float 3.2s ease-in-out infinite; }
.hero .person-left { animation: fv-person-sway 3.4s ease-in-out infinite; }
.hero .person-right { animation: fv-person-sway 3.8s ease-in-out -1.7s infinite reverse; }
.hero .envelopes { animation-delay: -.5s; }
.hero .documents-left { animation-delay: -1.4s; animation-duration: 3.7s; }
.hero .calculator { animation-delay: -2.1s; }
.hero .money { animation-delay: -.9s; animation-duration: 2.9s; }
.hero .documents-right { animation-delay: -2.6s; animation-duration: 3.6s; }
.hero.fv-motion-offscreen .art { animation-play-state: paused; }
@keyframes fv-person-sway {
  0%,100% { transform: translateY(0) rotate(-1.5deg); }
  50% { transform: translateY(-14px) rotate(1.5deg); }
}
@keyframes fv-icon-float {
  0%,100% { transform: translateY(3px) rotate(-5deg); }
  50% { transform: translateY(-20px) rotate(5deg); }
}
@media(max-width:767px) {
  @keyframes fv-person-sway {
    0%,100% { transform: translateY(0) rotate(-1.5deg); }
    50% { transform: translateY(-9px) rotate(1.5deg); }
  }
  @keyframes fv-icon-float {
    0%,100% { transform: translateY(2px) rotate(-5deg); }
    50% { transform: translateY(-12px) rotate(5deg); }
  }
}
/* Compact persistent phone bar (approximately 70% of the original height). */
body { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px)); }
.phone-contact { padding: 7px 20px calc(7px + env(safe-area-inset-bottom, 0px)); }
.phone-contact-link { min-height: 44px; padding: 5px 20px; }
.phone-contact-number { font-size: 22px; }
@media(max-width:767px) {
  body { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px)); }
  .phone-contact { padding: 7px 15px calc(7px + env(safe-area-inset-bottom, 0px)); }
  .phone-contact-link { min-height: 44px; padding: 3px 14px; }
  .phone-contact-label { font-size: 11px; line-height: 1.25; }
  .phone-contact-number { font-size: 20px; line-height: 1.2; }
}
