:root{--ink:#0c2530;--blue:#087f9b;--cyan:#dff7f8;--pale:#f4fbfb;--line:#cfe2e5;--white:#fff;--sans:'DM Sans','Noto Sans JP',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:#fff;overflow-x:hidden}a{color:inherit;text-decoration:none}.header{position:fixed;z-index:50;top:0;left:0;width:100%;height:92px;display:flex;align-items:center;padding:0 4vw;border-bottom:1px solid rgba(12,37,48,.1);background:rgba(255,255,255,.76);backdrop-filter:blur(18px);transition:.3s}.header.compact{height:74px}.logo{display:flex;align-items:center;gap:11px}.logo-mark{width:42px;height:42px;background:var(--ink);color:#fff;border-radius:50% 50% 50% 10%;display:grid;place-items:center;font-weight:700;font-size:21px}.logo-type{display:flex;flex-direction:column;line-height:1}.logo-type strong{font-size:18px;letter-spacing:.16em}.logo-type small{font-size:9px;margin-top:6px;letter-spacing:.15em}.nav{margin-left:auto;display:flex;gap:34px;font-size:13px;letter-spacing:.08em}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--blue);transition:.3s}.nav a:hover:after{width:100%}.header-cta{margin-left:34px;background:var(--ink);color:#fff;padding:15px 20px;font-size:12px;border-radius:100px}.header-cta span{margin-left:14px}.menu-button{display:none;border:0;background:none}.hero{min-height:100vh;position:relative;display:flex;align-items:center;padding:130px 7vw 100px;background:linear-gradient(120deg,#fff 10%,#eefafa 100%);overflow:hidden}.hero-copy{position:relative;z-index:2;width:64%}.eyebrow{font-size:11px;letter-spacing:.28em;font-weight:700;color:var(--blue);margin:0 0 24px}.hero h1{font-size:clamp(54px,7vw,108px);line-height:1.05;letter-spacing:-.05em;margin:0;font-weight:500}.hero h1 em{font-style:normal;color:var(--blue)}.hero-lead{margin-top:38px;line-height:2;font-size:15px}.hero-visual{position:absolute;width:42vw;height:42vw;right:2vw;top:15%;display:grid;place-items:center}.hero-photo-wrap{position:absolute;inset:8%;border-radius:50%;overflow:hidden;box-shadow:0 35px 80px rgba(12,37,48,.18);background:#dceff0}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.72) contrast(.94)}.hero-photo-overlay{position:absolute;inset:0;background:linear-gradient(145deg,rgba(220,250,250,.13),rgba(8,127,155,.22));mix-blend-mode:multiply}.ring{position:absolute;border:1px solid rgba(8,127,155,.25);border-radius:50%;animation:float 8s ease-in-out infinite}.ring-1{inset:2%}.ring-2{inset:14%;animation-delay:-2s}.ring-3{inset:27%;animation-delay:-4s;background:rgba(255,255,255,.36);backdrop-filter:blur(10px)}.hero-badge{position:relative;z-index:2;width:145px;height:145px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 25px 60px rgba(12,37,48,.2)}.hero-badge span{font-size:50px}.hero-badge small{font-size:9px;line-height:1.5;letter-spacing:.12em}.hero-orb{position:absolute;border-radius:50%;filter:blur(1px);background:rgba(57,202,211,.13)}.orb-1{width:390px;height:390px;left:-150px;top:0}.orb-2{width:300px;height:300px;right:25%;bottom:-180px}.scroll{position:absolute;bottom:90px;left:4vw;display:flex;gap:10px;align-items:center;transform:rotate(90deg);transform-origin:left}.scroll span{font-size:9px;letter-spacing:.25em}.scroll i{width:55px;height:1px;background:var(--ink)}.hero-service-line{position:absolute;bottom:0;left:0;width:100%;display:flex;white-space:nowrap;border-top:1px solid var(--line);padding:18px 0;gap:58px;font-size:10px;letter-spacing:.18em;color:#62818a;animation:ticker 24s linear infinite}.hero-service-line div:before{content:"●";font-size:5px;margin-right:58px;color:var(--blue)}
.section{padding:140px 7vw}.section-label{display:flex;align-items:center;gap:14px}.section-label span{font-size:10px;background:var(--ink);color:#fff;width:25px;height:25px;border-radius:50%;display:grid;place-items:center}.section-label p{font-size:11px;letter-spacing:.22em;font-weight:700}.message-grid{display:grid;grid-template-columns:1.4fr .7fr;gap:10vw;margin-top:70px}.message h2{font-size:clamp(38px,5vw,74px);line-height:1.35;letter-spacing:-.04em;margin:0;font-weight:500}.message h2 span{color:var(--blue)}.message-text{padding-top:20px}.message-text p{line-height:2.1;font-size:14px;color:#47616a}.text-link{display:inline-flex;margin-top:30px;padding-bottom:8px;border-bottom:1px solid var(--ink);font-size:12px}.text-link span{margin-left:60px}.business{background:var(--pale)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:75px}.section-heading h2,.strength h2,.company h2{font-size:clamp(42px,5vw,70px);margin:0 0 12px;letter-spacing:-.04em;font-weight:500}.section-heading>div:last-child>p{color:#627982}.service-list{border-top:1px solid var(--line)}.service-card{display:grid;grid-template-columns:70px 180px 115px 1fr 50px;align-items:center;gap:30px;border-bottom:1px solid var(--line);padding:38px 14px;transition:.35s;position:relative;overflow:hidden}.service-card:before{content:"";position:absolute;inset:0;background:#fff;transform:translateX(-101%);transition:.45s}.service-card:hover:before{transform:none}.service-card>*{position:relative}.service-card:hover .service-icon{background:#d4f0f1}.service-number{font-size:11px;color:#76929a}.service-photo{width:180px;height:120px;border-radius:8px;overflow:hidden;background:#dceff0}.service-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(.94);transition:transform .55s}.service-card:hover .service-photo img{transform:scale(1.06)}.service-icon{width:95px;height:95px;border-radius:50%;background:#e1f4f4;position:relative;display:grid;place-items:center}.service-icon:before,.service-icon:after,.service-icon i:before,.service-icon i:after{content:"";position:absolute}.water:before{width:30px;height:42px;background:var(--blue);border-radius:55% 55% 60% 60%;clip-path:polygon(50% 0,100% 66%,85% 90%,50% 100%,15% 90%,0 66%)}.air:before{width:52px;height:34px;border:3px solid var(--blue);border-radius:5px}.air:after{width:38px;height:2px;background:var(--blue);box-shadow:0 8px 0 var(--blue),0 16px 0 var(--blue);top:58px}.pest:before{width:32px;height:42px;border:3px solid var(--blue);border-radius:50%}.pest:after{width:50px;height:3px;background:var(--blue);box-shadow:0 -12px 0 var(--blue),0 12px 0 var(--blue)}.road:before{width:55px;height:25px;border:3px solid var(--blue);border-radius:6px 14px 5px 5px}.road:after{width:12px;height:12px;border-radius:50%;background:var(--blue);left:32px;bottom:33px;box-shadow:34px 0 0 var(--blue)}.ads:before{width:50px;height:42px;border-left:4px solid var(--blue);border-bottom:4px solid var(--blue)}.ads:after{width:8px;height:24px;background:var(--blue);bottom:36px;left:43px;box-shadow:14px -11px 0 var(--blue),28px -25px 0 var(--blue)}.service-en{font-size:10px;letter-spacing:.2em;color:var(--blue);margin:0 0 9px}.service-content h3{font-size:24px;margin:0 0 12px;font-weight:600}.service-content>p:last-child{font-size:13px;color:#627982;line-height:1.8;max-width:650px}.service-arrow{font-size:20px;border:1px solid var(--line);width:44px;height:44px;border-radius:50%;display:grid;place-items:center}.strength{background:var(--ink);color:#fff}.strength-intro{text-align:center;margin-bottom:70px}.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.15)}.strength-grid article{background:var(--ink);padding:55px 45px;min-height:290px}.strength-grid span{color:#54c9d4;font-size:11px}.strength-grid h3{font-size:26px;margin:60px 0 16px}.strength-grid p{font-size:13px;line-height:1.9;color:#a8bec4}.company{background:linear-gradient(145deg,#e8f6f7,#fff)}.company-panel{max-width:1100px;margin:auto;background:#fff;padding:80px;display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;box-shadow:0 30px 80px rgba(13,67,78,.08)}.company-title>p:last-child{color:#647b83}.company dl{margin:0}.company dl div{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--line);padding:23px 0;font-size:13px}.company dt{font-weight:700}.company dd{margin:0;color:#566f77;line-height:1.7}.contact{position:relative;background:#dff5f5;text-align:center;overflow:hidden;padding-top:170px;padding-bottom:170px}.contact-bg-text{position:absolute;top:30px;left:50%;transform:translateX(-50%);font-size:15vw;line-height:1;font-weight:700;color:rgba(255,255,255,.55);letter-spacing:-.06em}.contact-inner{position:relative}.contact h2{font-size:clamp(42px,5.5vw,78px);line-height:1.3;margin:0 0 25px;font-weight:500;letter-spacing:-.04em}.contact-inner>p:not(.eyebrow){font-size:13px;color:#506a72}.contact-button{display:flex;align-items:center;justify-content:space-between;max-width:430px;margin:45px auto 20px;background:var(--ink);color:#fff;padding:21px 25px 21px 30px;border-radius:100px;font-size:14px;transition:.3s}.contact-button:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(12,37,48,.2)}.contact-button i{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-style:normal}.contact small{font-size:10px;color:#769097}footer{background:#071c24;color:#fff;padding:75px 7vw 30px}.footer-logo{display:flex;align-items:center;gap:12px}.footer-logo div{display:flex;flex-direction:column}.footer-logo strong{letter-spacing:.18em}.footer-logo small{font-size:9px;margin-top:5px}.footer-nav{display:flex;gap:35px;justify-content:flex-end;margin-top:-32px;font-size:12px}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:70px;padding-top:28px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;color:#8ea4ab}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.15s}.delay-2{transition-delay:.3s}.cursor-glow{position:fixed;width:300px;height:300px;border-radius:50%;background:rgba(31,185,196,.06);pointer-events:none;z-index:0;transform:translate(-50%,-50%)}@keyframes float{50%{transform:translateY(-18px) scale(1.02)}}@keyframes ticker{to{transform:translateX(-50%)}}
@media(max-width:1100px){.service-card{grid-template-columns:55px 150px 1fr 45px}.service-photo{width:150px;height:105px}.service-icon{display:none}}
@media(max-width:900px){.nav,.header-cta{display:none}.menu-button{display:flex;margin-left:auto;width:42px;height:42px;flex-direction:column;justify-content:center;gap:7px}.menu-button span{display:block;width:25px;height:1px;background:var(--ink)}.hero{padding-left:7vw}.hero-copy{width:100%}.hero h1{font-size:13vw}.hero-visual{opacity:.5;width:70vw;height:70vw;right:-27vw;top:30%}.message-grid,.company-panel{grid-template-columns:1fr}.section-heading{align-items:flex-start;gap:40px;flex-direction:column}.service-card{grid-template-columns:40px 130px 1fr}.service-photo{width:130px;height:95px}.service-icon{display:none}.service-arrow{display:none}.strength-grid{grid-template-columns:1fr}.company-panel{padding:50px 35px;gap:40px}.footer-nav{margin:40px 0 0;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:600px){.header{height:72px}.logo-type small{display:none}.section{padding:100px 6vw}.hero{min-height:850px;padding-top:110px;align-items:flex-start}.hero-lead br{display:none}.hero-visual{top:48%;right:-20%;width:85vw;height:85vw}.hero-badge{width:110px;height:110px}.hero-badge span{font-size:38px}.scroll{display:none}.message-grid{margin-top:45px}.service-card{grid-template-columns:35px 1fr;padding:28px 4px;gap:14px}.service-photo{grid-column:2;width:100%;height:185px;margin-bottom:8px}.service-icon{display:none}.service-content h3{font-size:21px}.company-panel{padding:40px 25px}.company dl div{grid-template-columns:1fr;gap:8px}.contact{padding-top:120px;padding-bottom:120px}.footer-bottom{gap:20px}.cursor-glow{display:none}}

/* Japanese staff visual for strengths */
.strength-layout{max-width:1180px;margin:0 auto}.strength-photo{position:relative;height:460px;margin-bottom:1px;overflow:hidden;background:#173944}.strength-photo img{width:100%;height:100%;object-fit:cover;object-position:center 38%;filter:saturate(.72) contrast(.94);opacity:.84}.strength-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,28,36,.72),rgba(7,28,36,.06) 65%)}.strength-photo-copy{position:absolute;z-index:2;left:55px;bottom:48px;display:flex;flex-direction:column;max-width:460px}.strength-photo-copy strong{font-size:clamp(25px,3vw,42px);font-weight:500;line-height:1.35}.strength-photo-copy span{margin-top:13px;color:#d2e2e6;font-size:13px;line-height:1.8}.strength-grid article{min-height:265px}
@media(max-width:900px){.strength-photo{height:390px}.strength-photo-copy{left:30px;right:30px;bottom:30px}}
@media(max-width:600px){.strength-photo{height:330px}.strength-photo img{object-position:center}.strength-photo-copy{left:22px;right:22px;bottom:24px}}

/* Contact page */
.contact-page { background: #f5f9fc; color: #10263b; }
.inquiry-main { min-height: 100vh; padding-top: 110px; }
.inquiry-hero { padding: 90px max(6vw, 24px) 64px; background: linear-gradient(135deg, #eef8fc, #fff); border-bottom: 1px solid #dce9ef; }
.inquiry-hero .eyebrow { font: 600 13px/1 'Outfit', sans-serif; letter-spacing: .2em; color: #2c91ae; margin-bottom: 20px; }
.inquiry-hero h1 { margin: 0 0 18px; font-size: clamp(42px, 7vw, 84px); letter-spacing: -.04em; }
.inquiry-hero p { margin: 0; color: #5d7081; font-size: 16px; }
.inquiry-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 7vw, 110px); padding: 90px max(6vw, 24px) 120px; max-width: 1440px; margin: auto; }
.inquiry-info h2 { margin: 24px 0; font-size: clamp(28px, 3.4vw, 48px); line-height: 1.4; letter-spacing: -.03em; }
.inquiry-info > p:not(.section-label) { color: #647684; line-height: 2; }
.inquiry-mail-card { margin-top: 40px; padding: 28px; background: #0b304a; border-radius: 18px; color: #fff; }
.inquiry-mail-card small, .inquiry-address small { display: block; margin-bottom: 10px; font-weight: 600; color: #8ecfdf; }
.inquiry-mail-card a { color: #fff; font: 500 clamp(14px, 1.5vw, 20px)/1.5 'Outfit', sans-serif; overflow-wrap: anywhere; }
.inquiry-address { margin-top: 28px; padding: 0 8px; }
.inquiry-address p { line-height: 1.8; margin: 0; }
.inquiry-form { background: #fff; border: 1px solid #dbe8ee; border-radius: 24px; padding: clamp(26px, 4vw, 56px); box-shadow: 0 24px 70px rgba(30, 70, 90, .08); }
.form-field { margin-bottom: 28px; }
.form-field label, .two-columns label { display: block; margin-bottom: 10px; font-weight: 600; font-size: 14px; }
.form-field label span, .two-columns label span { margin-left: 8px; color: #2387a5; font-size: 11px; }
.form-field input, .form-field select, .form-field textarea { width: 100%; box-sizing: border-box; border: 1px solid #cadbe3; border-radius: 10px; padding: 15px 16px; background: #f9fcfd; color: #10263b; font: inherit; outline: none; transition: .2s; }
.form-field textarea { resize: vertical; min-height: 170px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: #3295b1; box-shadow: 0 0 0 4px rgba(50,149,177,.12); background: #fff; }
.two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.privacy-check { display: flex; align-items: flex-start; gap: 10px; color: #536978; font-size: 13px; line-height: 1.7; margin: 4px 0 24px; }
.privacy-check input { margin-top: 5px; accent-color: #2387a5; }
.form-submit { width: 100%; border: 0; border-radius: 999px; padding: 18px 24px; background: #0b304a; color: #fff; display: flex; justify-content: space-between; align-items: center; font: 600 16px/1 'Noto Sans JP', sans-serif; cursor: pointer; transition: transform .2s, background .2s; }
.form-submit:hover { transform: translateY(-2px); background: #17617a; }
.form-submit i { font-style: normal; font-size: 20px; }
.form-note { margin: 14px 0 0; color: #7b8b96; font-size: 12px; line-height: 1.7; }
.contact-footer { margin-top: 0; }
@media (max-width: 900px) { .inquiry-layout { grid-template-columns: 1fr; padding-top: 60px; } .inquiry-main { padding-top: 80px; } }
@media (max-width: 640px) { .inquiry-hero { padding-top: 64px; } .two-columns { grid-template-columns: 1fr; } .inquiry-form { border-radius: 18px; } }

/* Mobile usability enhancements */
@media (max-width: 900px) {
  body.menu-open { overflow: hidden; }
  .header { padding: 0 20px; }
  .menu-button { position: relative; z-index: 102; padding: 0; cursor: pointer; }
  .menu-button span { transition: transform .25s, opacity .25s; transform-origin: center; }
  .menu-button[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .header .nav {
    display: flex; position: fixed; inset: 0; z-index: 100; margin: 0; padding: 120px 28px 40px;
    background: rgba(255,255,255,.98); flex-direction: column; align-items: flex-start; gap: 0;
    opacity: 0; visibility: hidden; transform: translateY(-12px); transition: .25s;
  }
  .header.menu-open .nav { opacity: 1; visibility: visible; transform: none; }
  .header .nav a { width: 100%; padding: 20px 4px; border-bottom: 1px solid var(--line); font-size: 20px; }
  .header .nav a::after { display: none; }
}
@media (max-width: 600px) {
  .header { padding: 0 16px; }
  .logo-mark { width: 38px; height: 38px; font-size: 18px; }
  .logo-type strong { font-size: 15px; }
  .hero { min-height: 760px; padding: 105px 20px 90px; }
  .hero h1 { font-size: clamp(42px, 12vw, 62px); line-height: 1.15; }
  .hero-lead { margin-top: 24px; font-size: 14px; line-height: 1.85; max-width: 82%; }
  .hero-visual { top: 43%; right: -30%; width: 92vw; height: 92vw; }
  .hero-service-line { padding: 14px 0; }
  .section { padding: 82px 20px; }
  .message h2, .section-heading h2, .strength h2, .company h2 { font-size: 36px; }
  .message-text p { font-size: 14px; line-height: 1.95; }
  .service-card { padding: 24px 0; }
  .service-photo { height: 210px; border-radius: 12px; }
  .service-content>p:last-child { font-size: 14px; }
  .strength-grid article { padding: 38px 24px; min-height: auto; }
  .strength-grid h3 { margin: 34px 0 12px; font-size: 23px; }
  .company-panel { padding: 34px 20px; border-radius: 14px; }
  .contact-button { width: 100%; margin-top: 32px; }
  footer { padding: 58px 20px 28px; }
  .footer-nav { gap: 22px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .inquiry-main { padding-top: 72px; }
  .inquiry-hero { padding: 58px 20px 42px; }
  .inquiry-hero h1 { font-size: 42px; }
  .inquiry-hero p { font-size: 14px; line-height: 1.8; }
  .inquiry-layout { padding: 50px 20px 80px; gap: 34px; }
  .inquiry-info h2 { font-size: 30px; }
  .inquiry-mail-card { padding: 22px 18px; }
  .inquiry-form { padding: 28px 18px; }
  .form-field input, .form-field select, .form-field textarea { font-size: 16px; padding: 14px; }
  .form-submit { min-height: 56px; }
}
@media (max-width: 380px) {
  .logo-type strong { letter-spacing: .1em; }
  .hero h1 { font-size: 39px; }
  .hero-lead { max-width: 90%; }
  .section { padding-left: 16px; padding-right: 16px; }
}
