*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#17304c;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.7;background:#fff}.container{width:min(1180px,92%);margin:auto}.header{height:76px;border-bottom:1px solid #e5edf5;background:#fff;position:sticky;top:0;z-index:20}.header-inner{height:100%;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:#10385f}.brand strong{font-size:28px;letter-spacing:2px}.brand span{font-size:11px;line-height:1.4}nav{display:flex;gap:25px;margin-left:auto}nav a{color:#344d67;text-decoration:none;font-size:13px}.btn{background:#075a96;color:#fff;text-decoration:none;border-radius:5px;display:inline-block;font-weight:700}.small{padding:10px 18px}.hero{background:linear-gradient(100deg,#f4f9fd 0%,#e8f3fb 100%)}.hero-grid{min-height:500px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center}.hero-copy{padding:55px 0}.kicker{color:#1670ae;font-size:11px;letter-spacing:2px;font-weight:800}.hero h1{font-size:46px;line-height:1.35;margin:12px 0 18px;color:#0b3157}.lead{color:#38536c}.hero-points{display:grid;grid-template-columns:repeat(3,1fr);margin-top:35px;border-top:1px solid #cbdce9}.hero-points>div{display:flex;gap:10px;padding:20px 12px;border-right:1px solid #cbdce9}.hero-points b{font-size:22px}.hero-points strong,.hero-points small{display:block}.hero-points small{font-size:10px;color:#61798e}.photo-placeholder{height:390px;margin-left:35px;border-radius:8px;background:linear-gradient(135deg,#dceaf4,#a9c8dd);display:flex;align-items:center;justify-content:center;text-align:center;color:#41667e;font-size:22px}.photo-placeholder small{font-size:12px}.section{padding:72px 0}.section-title{text-align:center;margin-bottom:35px}.section-title h2,.works h2,.company h2,.contact-section h2{font-size:29px;margin:0 0 7px;color:#10385f}.section-title p,.works-head p{margin:0;color:#6a7d8f}.service-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.service-grid article{border:1px solid #e0e8ef;border-radius:6px;overflow:hidden;background:#fff}.service-grid h3,.service-grid p,.service-grid a{margin-left:17px;margin-right:17px}.service-grid h3{font-size:16px}.service-grid p{font-size:12px;color:#617386;min-height:84px}.service-grid a{font-size:12px;color:#0870b4;text-decoration:none;display:block;margin-bottom:16px}.service-photo,.work-photo{background:#d9e8f2 center/cover no-repeat}.service-photo{height:130px}.p1{background-image:linear-gradient(135deg,#d4e6f2,#8fb2ca)}.p2{background-image:linear-gradient(45deg,#a8c4d6,#326c94)}.p3{background-image:linear-gradient(135deg,#eef1f2,#d3b995)}.p4{background-image:linear-gradient(135deg,#d7e0e7,#7b96a8)}.p5{background-image:linear-gradient(135deg,#edf0f2,#bdc9d0)}.works{background:#eef7fd}.works-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.outline{border:1px solid #6ca3cb;padding:9px 16px;color:#176da8;text-decoration:none;border-radius:4px;font-size:12px}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.work-grid article{background:#fff;border-radius:5px;overflow:hidden;padding-bottom:17px}.work-photo{height:150px}.w1{background-image:linear-gradient(135deg,#c9ddea,#7fa3ba)}.w2{background-image:linear-gradient(135deg,#e3eaee,#9eafb9)}.w3{background-image:linear-gradient(135deg,#e7e1d8,#b9a68e)}.w4{background-image:linear-gradient(135deg,#7193aa,#193e59)}.work-grid h3,.work-grid p,.work-grid span{margin-left:15px;margin-right:15px}.work-grid h3{font-size:15px}.work-grid p{font-size:12px;color:#65788a}.work-grid span{font-size:10px;color:#2875a8;background:#edf6fc;padding:3px 6px}.company-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.company table{width:100%;border-collapse:collapse}.company th,.company td{text-align:left;border-bottom:1px solid #dce5ed;padding:13px;font-size:13px}.company th{width:110px;color:#65798b}.faq{background:#f8fafc}.faq details{max-width:850px;margin:10px auto;border-bottom:1px solid #dfe6ec;padding:13px}.faq summary{font-weight:700;cursor:pointer}.faq details p{color:#65798b}.contact-section{padding:60px 0;background:#e7f3fb}.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center}.contact-grid>div:last-child{text-align:right}.large{padding:16px 26px}.note{font-size:11px;color:#728597}.footer{display:flex;justify-content:space-between;padding:28px 0}footer{background:#102a43;color:#cbd8e3}.footer strong{font-size:24px;color:#fff}@media(max-width:900px){nav{display:none}.header-inner{justify-content:space-between}.hero-grid{grid-template-columns:1fr}.hero-photo{margin:0 0 40px;height:280px}.service-grid{grid-template-columns:repeat(2,1fr)}.work-grid{grid-template-columns:repeat(2,1fr)}.company-grid,.contact-grid{grid-template-columns:1fr}.contact-grid>div:last-child{text-align:left;margin-top:20px}}@media(max-width:560px){.brand span{display:none}.hero h1{font-size:34px}.hero-points{grid-template-columns:1fr}.service-grid,.work-grid{grid-template-columns:1fr}.works-head{display:block}.outline{display:inline-block;margin-top:15px}}
.company td a,.note a{color:#0870b4}.contact-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.contact-actions .email{background:#2675a8}.contact-actions .note{margin:0}.footer small{font-size:12px;font-weight:normal}@media(max-width:900px){.contact-actions{align-items:flex-start}}

/* v4: main image and phone equipment */
.hero-photo{overflow:hidden;background:#eaf3f9}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover}.service-photo.phone-photo{background:#fff;display:flex;align-items:center;justify-content:center}.phone-photo img{width:100%;height:100%;object-fit:contain}.service-grid article a[href="#"]{display:none}

/* v5 photos and smartphone navigation */
.service-photo:not(.phone-photo) img{display:block;width:100%;height:100%;object-fit:cover}
.menu-toggle{display:none}
.mobile-contact{display:none}
@media(max-width:900px){.header-inner{position:relative}.menu-toggle{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #cfdeea;background:white;border-radius:6px;cursor:pointer;margin-left:auto}.menu-toggle span{display:block;width:21px;height:2px;background:#0b3a64}.header-inner>nav{display:none;position:absolute;top:calc(100% - 1px);left:0;right:0;background:#fff;box-shadow:0 12px 18px #102a4324;padding:12px;flex-direction:column;gap:0;z-index:40}.header-inner>nav.is-open{display:flex}.header-inner>nav a{padding:12px 16px;border-bottom:1px solid #e5edf5}.header-inner>.btn.small{display:none}.header{height:68px}.mobile-contact{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;background:#0a3e70;z-index:50;box-shadow:0 -3px 14px #102a4325;padding-bottom:env(safe-area-inset-bottom)}.mobile-contact a{color:white;text-decoration:none;text-align:center;padding:12px 3px;font-weight:700;font-size:14px;border-right:1px solid #ffffff33}body{padding-bottom:60px}.hero-copy{padding:34px 0 22px}.hero-photo{height:270px;margin:0 0 26px}.section{padding:48px 0}.company-grid{gap:18px}}
@media(max-width:560px){.brand strong{font-size:25px}.hero h1{font-size:clamp(26px,7vw,34px)}.lead br{display:none}.hero-points{grid-template-columns:repeat(3,1fr);margin-top:22px}.hero-points>div{display:block;text-align:center;padding:12px 5px;border-right:1px solid #cbdce9}.hero-points b{display:block}.hero-points strong{font-size:12px}.hero-points small{font-size:10px}.service-grid{grid-template-columns:1fr;gap:12px}.service-grid article{display:grid;grid-template-columns:118px 1fr;grid-template-rows:auto 1fr;min-height:118px;align-items:start}.service-grid article .service-photo{grid-row:1/3;height:100%;min-height:118px}.service-grid h3{font-size:14px;margin:12px 12px 2px}.service-grid p{min-height:0;font-size:12px;margin:0 12px 12px}.company th{width:88px}.company td{overflow-wrap:anywhere}.contact-actions .large{width:100%;text-align:center}.footer{display:block;text-align:center}.footer span{display:block;font-size:11px;margin-top:8px}}
