
:root{--brand:#0b73c7;--sky:#eef9ff;--ink:#17354a;--body:#496575;--line:#dfeef7;--green:#37b980;--gold:#b99859;--shadow:0 14px 38px rgba(50,105,145,.10);--radius:24px;--container:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:var(--body);background:#fff;line-height:1.8}img{display:block;max-width:100%}a{color:var(--brand)}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--ink);line-height:1.45}.container{width:min(calc(100% - 48px),var(--container));margin:auto}.skip{position:absolute;left:-9999px}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header-inner{min-height:92px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);flex:none}.brand>img{width:54px}.brand span{display:grid;gap:4px}.brand strong{font-size:19px;line-height:1}.brand span img{width:115px;height:auto}.desktop-nav{display:flex;gap:22px;margin:auto}.desktop-nav a{font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}.desktop-nav a[aria-current]{color:var(--brand);font-weight:700}.header-cta{text-align:right}.phone{display:block;text-decoration:none;font-size:21px;font-weight:800}.header-cta>div{display:flex;gap:7px}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:white;text-decoration:none;border-radius:999px;padding:12px 22px;font-weight:700;line-height:1.4;border:1px solid var(--brand)}.btn.small{padding:8px 13px;font-size:11px}.btn.line{background:var(--green);border-color:var(--green)}.btn.outline{background:white;color:var(--brand)}.mobile-menu{display:none}.hero{background:linear-gradient(110deg,#effaff 0%,#f7fcff 55%,#fff 100%);padding:74px 0 88px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--brand);font-weight:700;margin-bottom:12px}.hero h1{font-size:clamp(36px,4vw,56px);letter-spacing:.03em}.hero h1 span{color:var(--brand)}.hero-copy>p:not(.eyebrow){margin-top:22px;font-size:16px;max-width:550px}.hero-actions{display:flex;gap:12px;margin-top:30px}.stats{display:flex;gap:26px;margin-top:34px}.stats div{border-left:2px solid #bce2f7;padding-left:15px}.stats strong{display:block;color:var(--brand);font-size:17px}.stats span{font-size:11px}.hero-visual{position:relative}.hero-photo{width:100%;aspect-ratio:1.34;object-fit:cover;border-radius:58px 20px 58px 20px;box-shadow:var(--shadow)}.hero-cat{position:absolute;width:100px;left:-30px;bottom:-35px}.bubble{position:absolute;left:55px;bottom:-8px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 13px;color:var(--brand);font-size:11px}.section{padding:88px 0}.heading{text-align:center;margin-bottom:42px}.heading h2{font-size:30px}.heading>p:last-child{margin-top:10px}.heading.side{display:flex;justify-content:space-between;align-items:end;text-align:left}.heading.side a{text-decoration:none;font-size:13px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.service-grid article{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:white;box-shadow:var(--shadow)}.service-grid article>img{width:100%;aspect-ratio:1.7;object-fit:cover}.service-grid article>div{padding:24px}.service-grid span{font-size:11px;color:var(--brand);font-weight:700}.service-grid h3{font-size:19px;margin-top:7px}.service-grid p{font-size:14px;margin-top:12px}.service-grid a{display:inline-block;margin-top:18px;font-size:13px;text-decoration:none}.certificate{background:linear-gradient(130deg,#f3fbff,#fffdf7 55%,#f2fbff)}.certificate-inner{text-align:center;max-width:900px}.gold{color:var(--gold)}.certificate h2{font-size:28px}.certificate-catch{font-size:30px;color:var(--brand);font-weight:700;margin-top:20px}.lead{max-width:730px;margin:18px auto 0}.cert-card{width:360px;min-height:460px;background:white;border:1px solid #cdb990;margin:36px auto 30px;padding:26px;box-shadow:0 18px 40px rgba(92,82,55,.10);position:relative}.cert-card>span{font-size:10px;color:var(--gold);letter-spacing:.2em}.cert-mark{font-size:36px;color:var(--gold);margin:25px}.cert-card>strong{display:block;color:var(--brand);font:600 28px/1.2 Georgia,serif;letter-spacing:.09em}.cert-card>small{display:block;margin-top:15px}.cert-lines{display:grid;gap:26px;margin:45px 15px}.cert-lines i{border-bottom:1px solid #cfc7b8}.cert-card>img{width:38px;margin:34px auto 0}.cert-points{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:25px;text-align:left;margin:0 0 30px}.cert-points li{padding:18px;border-top:1px solid #decba4;font-size:13px}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.reason-grid article{text-align:center;background:var(--sky);padding:30px;border-radius:var(--radius)}.reason-grid img{width:115px;height:115px;object-fit:contain;margin:auto}.reason-grid span{color:var(--brand);font-weight:700;font-size:12px}.reason-grid h3{font-size:19px;margin:8px 0 12px}.reason-grid p{text-align:left;font-size:14px}.flow{padding-top:52px}.flow-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:22px}.flow-grid li{text-align:center}.flow-grid img{width:135px;height:135px;object-fit:contain;margin:auto}.flow-grid strong{display:block;color:var(--brand);font-size:12px}.flow-grid h3{font-size:15px;margin:8px 0}.flow-grid p{font-size:12px}.works-preview{background:#f8fcff}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.works-grid a{text-decoration:none;background:white;border-radius:20px;overflow:hidden;border:1px solid var(--line)}.works-grid img{width:100%;aspect-ratio:1.7;object-fit:cover}.works-grid a div{padding:20px}.works-grid span{font-size:11px}.works-grid h3{font-size:17px;margin-top:5px}.news-list{border-top:1px solid var(--line)}.news-list a{display:grid;grid-template-columns:120px 120px 1fr;gap:20px;padding:20px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);align-items:center}.news-list time{font-size:12px}.news-list span{font-size:11px;color:var(--brand)}.contact{padding:78px 0;background:linear-gradient(#f1faff,#e8f6fe);text-align:center}.contact-inner{position:relative}.contact-inner>img{width:85px;margin:0 auto 10px}.contact h2{font-size:29px}.contact p:not(.eyebrow){margin-top:10px}.contact-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-width:980px;margin:32px auto 0}.contact-buttons .btn{min-height:78px}.contact-buttons small{font-weight:400}.phone-btn{background:#fff;color:var(--brand)}.footer{padding:55px 0 25px;background:#f7fcff}.footer-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:55px}.footer address{font-style:normal;font-size:12px;margin-top:20px}.footer nav{display:grid;gap:9px}.footer nav strong{font-size:13px}.footer nav a{font-size:12px;color:var(--body);text-decoration:none}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;margin-top:35px;font-size:11px}.mobile-contact{display:none}
@media(max-width:1080px){.desktop-nav,.header-cta{display:none}.mobile-menu{display:block;margin-left:auto}.mobile-menu summary{list-style:none;display:grid;gap:4px;justify-items:center;color:var(--brand);font-size:9px}.mobile-menu summary span{width:27px;height:2px;background:var(--brand)}.mobile-menu[open] nav{position:absolute;left:0;right:0;top:92px;background:white;padding:18px 24px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,1fr);z-index:25}.mobile-menu nav a{padding:10px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.hero-grid{gap:35px}.flow-grid{gap:10px}.flow-grid img{width:110px;height:110px}}
@media(max-width:767px){body{padding-bottom:70px}.container{width:min(calc(100% - 32px),var(--container))}.header-inner{min-height:76px}.brand>img{width:44px}.brand strong{font-size:17px}.brand span img{width:100px}.mobile-menu[open] nav{top:76px;display:block}.mobile-menu nav a{display:block}.hero{padding:45px 0 60px}.hero-grid{grid-template-columns:1fr;gap:35px}.hero h1{font-size:34px}.hero-copy>p:not(.eyebrow){font-size:14px}.hero-actions{display:grid}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats div{padding-left:9px}.stats strong{font-size:13px}.stats span{font-size:9px}.hero-cat{width:72px;left:-8px;bottom:-24px}.bubble{left:48px;font-size:9px}.section{padding:60px 0}.heading{margin-bottom:30px}.heading h2{font-size:25px}.heading.side{align-items:start}.heading.side a{font-size:11px}.service-grid,.reason-grid,.works-grid{grid-template-columns:1fr}.certificate-catch{font-size:24px}.cert-card{width:min(340px,100%)}.cert-points{grid-template-columns:1fr}.flow-grid{grid-template-columns:1fr;gap:20px}.flow-grid li{display:grid;grid-template-columns:88px 1fr;text-align:left;align-items:center}.flow-grid img{grid-row:1/4;width:82px;height:82px}.flow-grid strong,.flow-grid h3,.flow-grid p{grid-column:2}.flow-grid h3{margin:2px 0}.news-list a{grid-template-columns:100px 1fr;gap:6px 12px}.news-list strong{grid-column:1/-1}.contact-buttons{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-grid>div{grid-column:1/-1}.mobile-contact{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);background:white;border-top:1px solid var(--line);z-index:30}.mobile-contact a{padding:14px 4px;text-align:center;text-decoration:none;font-size:12px;font-weight:700}.mobile-contact a:first-child{background:var(--green);color:white}}


/* === LEGACY TOKEN NAMES / SOFT BLUE VALUES ===
   Layout, photos, components and functional colors are unchanged.
   Only blue text accents and active-text cues are shifted to a soft orange palette. */
:root{--accent-orange:#6D9FBD;--accent-orange-deep:#3C6E8C;--accent-orange-light:#B9D7E9;--accent-orange-pale:#EFF7FC;--accent-orange-line:#CDE2EF;}

/* Home: text accents */
a{color:var(--accent-orange-deep)}
.desktop-nav a[aria-current]{color:var(--accent-orange-deep);border-color:var(--accent-orange)}
.phone,.eyebrow,.hero h1 span,.stats strong,.service-grid span,.certificate-catch,.cert-card>strong,.reason-grid span,.flow-grid strong,.news-list span{color:var(--accent-orange-deep)}
.heading h2,.hero h1{color:var(--ink)}
.mobile-menu summary{color:var(--accent-orange-deep)}
.mobile-menu summary span{background:var(--accent-orange)}
.bubble{color:var(--accent-orange-deep);border-color:var(--accent-orange-line)}
.heading.side a{color:var(--accent-orange-deep)}
.footer nav a:hover{color:var(--accent-orange-deep)}

/* === SOFT BLUE ACCENT THEME / 2026-09-09 ===
   Main accents are warm orange. Functional green stays green.
   A muted teal and gold are retained as secondary accents so the site does not become monochrome.
   Layout, content, photos, cat illustrations and component structure are unchanged. */
:root{
  --brand:#497E9F;
  --blue:#497E9F;
  --blue2:#95BED6;
  --blue-deep:#3C6E8C;
  --accent-orange:#497E9F;
  --accent-orange-deep:#3C6E8C;
  --orange:#E8A05C;
  --gold:#D4A14F;
  --secondary:#4B8D97;
  --secondary-soft:#EEF7F8;
  --warm-soft:#EFF7FC;
}

/* Primary accent */
a{color:var(--blue,var(--brand));}
.eyebrow,.brand-name,.header-phone,.hero-catch,.text-link,
.desktop-nav a[aria-current],.desktop-nav a:hover,
.section-heading h2,.heading h2,.heading.side a,
.number-card strong,.featured-kicker,.record-flow span,.record-flow strong,
.record-note strong,.service-grid span,.service-grid a,.reason-grid span,
.flow-grid strong,.news-list span,.footer-bottom a,
.method-card h3,.side-card h3,.service-mini a span,
.field>label,.field>legend{color:var(--blue,var(--brand));}

/* Primary buttons: orange, LINE stays green */
.btn:not(.btn-line), .header-cta-row .btn:not(.btn-line){
  background:linear-gradient(90deg,#497E9F,#76A5C2);
  border-color:#497E9F;
  color:#fff;
  box-shadow:0 7px 18px rgba(69,118,147,.10);
}
.btn-outline,.btn.outline{
  background:#fff !important;
  color:#3C6E8C !important;
  border-color:#A7C9DE !important;
  box-shadow:none !important;
}
.btn-phone,.phone-btn{
  background:#fff !important;
  color:var(--secondary) !important;
  border-color:#A9CED2 !important;
  box-shadow:none !important;
}
.btn-line{background:linear-gradient(90deg,#169F52,#2AC56A) !important;border-color:#169F52 !important;color:#fff !important;}

/* Navigation and small UI */
.mobile-menu summary{color:#497E9F;}
.mobile-menu summary span{background:#497E9F;}
.category-nav a{color:#3C6E8C;border-color:#B8D4E5;}
.category-nav a.is-active,.category-nav a:hover{background:#497E9F;color:#fff;border-color:#497E9F;}
.breadcrumb a,.case-meta,.number-label,.method-number,.field-help,.method-note,.hero-small-message{color:#647F88;}

/* Secondary accents */
.case-label-washer{background:#4B969E !important;}
.case-label-home{background:#47A685 !important;}
.status-badge{color:#667E85;}
.record-flow li:not(:last-child):after{color:#D4A14F !important;}
.archive-icon,.method-illustration:before{background:var(--secondary-soft) !important;}
.field-required{background:#EFF7FC !important;color:#3C6E8C !important;border-color:#CDE2EF !important;}

/* Tags and soft chips */
.case-points li,.work-tags span,.service-option:has(input:checked),.record-note{
  background:#EFF7FC;
  color:#3C6E8C;
}
.service-option:has(input:checked){border-color:#497E9F;box-shadow:inset 0 0 0 1px #497E9F;}
.service-option input{accent-color:#497E9F;}

/* Keep cool pale blues as structural background; add warm cream in selected areas */
.certificate,.company-hero,.inquiry-hero,.news-hero,.faq-hero{
  background-color:#FFFDF9;
}

/* Mobile fixed contact bar: green / teal / orange */
.mobile-contact a:first-child{background:#18A957 !important;color:#fff !important;}
.mobile-contact a:nth-child(2){background:#4B8D97 !important;color:#fff !important;}
.mobile-contact a:nth-child(3){background:#497E9F !important;color:#fff !important;}

/* Focus states */
a:focus-visible,summary:focus-visible,.service-option input:focus-visible{
  outline-color:#79A9C6 !important;
}



/* === HOME HERO REFINEMENT / 2026-09-09 ===
   Scope: the home hero only. All wording, colours, assets and lower pages stay intact.
   Desktop: give the Japanese headline a slightly wider text column.
   The two block spans are the intended lines; wrapping remains available for
   enlarged text/accessibility rather than clipping or horizontally scrolling. */
.hero { padding-block:clamp(48px,4.9vw,70px) clamp(60px,5.3vw,76px); }
.hero .hero-grid {
  grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);
  gap:clamp(32px,4vw,60px);
  align-items:center;
}
.hero .hero-copy,.hero .hero-visual { min-width:0; }
.hero .hero-title {
  margin:0;
  font-size:clamp(30px,3.5vw,46px);
  line-height:1.5;
  letter-spacing:0;
  font-weight:700;
  word-break:normal;
  overflow-wrap:anywhere;
}
.hero .hero-title > span { display:block; }
.hero .hero-title__lead { color:var(--ink); }
.hero .hero-title__accent { color:var(--accent-orange-deep); }
.hero .hero-copy > p:not(.eyebrow) {
  max-width:35em;
  margin-top:22px;
  font-size:15px;
  line-height:1.95;
}
.hero .hero-actions { margin-top:28px; gap:12px; flex-wrap:wrap; }
.hero .stats { margin-top:30px; gap:22px; }
.hero .hero-photo { object-position:center; }
@media(max-width:1079px) and (min-width:768px) {
  .hero .stats { gap:14px; }
  .hero .stats div { padding-left:10px; }
  .hero .stats strong { font-size:14px; }
  .hero .hero-cat { width:84px; left:-22px; bottom:-28px; }
  .hero .bubble { left:46px; }
}
@media(max-width:767px) {
  .hero { padding-block:40px 56px; }
  .hero .hero-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
  .hero .hero-title { font-size:clamp(22px,7vw,40px); line-height:1.55; }
  .hero .hero-copy > p:not(.eyebrow) { font-size:14px; margin-top:20px; line-height:1.95; }
  .hero .hero-actions { margin-top:24px; }
  .hero .stats { margin-top:26px; gap:8px; }
  .hero .hero-visual { margin:0 6px; }
}
/* === END HOME HERO REFINEMENT === */
