:root { --ink:#0a1329; --muted:#616978; --line:#dce0e6; --pale:#f3f5f7; --font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif; --latin:"Helvetica Neue",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; background:#fff; color:var(--ink); font:15px/1.9 var(--font); -webkit-font-smoothing:antialiased; overflow-wrap:anywhere; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
a,button,input,textarea { touch-action:manipulation; outline-offset:5px; }
:focus-visible { outline:2px solid #43689c; }
img { display:block; max-width:100%; height:auto; }
svg { display:block; }
h1,h2,h3,p,figure { margin:0; }
.container { width:min(1240px,calc(100% - 112px)); margin-inline:auto; }
.skip-link { position:fixed; z-index:100; top:12px; left:16px; padding:10px 20px; color:#fff; background:var(--ink); transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:sticky; z-index:20; top:0; background:#fff; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:36px; min-height:108px; }
.brand { display:inline-flex; align-items:center; gap:10px; flex:none; }
.brand-mark { width:35px; height:35px; }
.brand-type { display:block; font:800 32px/1 var(--latin); letter-spacing:.01em; }
.brand-caption { display:block; margin-top:7px; font:500 9px/1.25 var(--font); letter-spacing:.08em; }
.primary-nav { display:flex; align-items:center; gap:clamp(20px,2vw,30px); margin-left:auto; font-size:13px; font-weight:650; }
.primary-nav > a { padding-block:12px; white-space:nowrap; }
.primary-nav > a:hover { text-decoration:underline; text-underline-offset:7px; }
.menu-toggle { display:none; }
.hero { --hero-image-height:clamp(344px,calc(34vw + 24px),484px); position:relative; isolation:isolate; padding-block:16px; }
.hero-grid { position:absolute; z-index:-2; inset:0; background-image:linear-gradient(to right,#0a132910 1px,transparent 1px); background-size:12.5% 100%; border-right:1px solid #0a132910; }
.hero-carousel { width:calc(100% - 72px); margin-inline:44px 28px; }
.hero-viewport { position:relative; height:var(--hero-image-height); overflow:hidden; background:#e9f0f7; }
.hero-slide { position:absolute; inset:0; opacity:0; z-index:0; pointer-events:none; transition:opacity .65s ease; }
.hero-slide.is-active { opacity:1; z-index:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; }
.hero-slide .slide-city { object-position:60% 50%; }
.hero-slide .slide-edit { object-position:50% 35%; }
.hero-slide .slide-camera { object-position:50% 50%; }
.hero-controls { position:relative; display:flex; align-items:center; justify-content:center; height:40px; margin-top:10px; }
.hero-controls[hidden] { display:none; }
.hero-dots { display:flex; align-items:center; justify-content:center; }
.hero-dot { display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; background:transparent; cursor:pointer; color:var(--ink); }
.hero-dot span { width:9px; height:9px; border:1px solid currentColor; border-radius:50%; background:#fff; transition:background .2s ease; }
.hero-dot.is-active span { background:currentColor; }
.hero-dot:hover span { box-shadow:0 0 0 3px #0a13290c; }
.hero-toggle { position:absolute; left:calc(50% + 72px); display:grid; place-items:center; width:32px; height:40px; padding:0; border:0; background:transparent; color:var(--muted); cursor:pointer; }
.hero-toggle:hover { color:var(--ink); }
.hero-toggle svg { width:13px; height:13px; fill:currentColor; }
.hero-toggle .play-icon,.hero-toggle[data-paused="true"] .pause-icon { display:none; }
.hero-toggle[data-paused="true"] .play-icon { display:block; }
.news-section { display:grid; grid-template-columns:194px 1fr; align-items:center; gap:30px; margin-top:35px; padding-block:25px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.news-section h2 { display:flex; align-items:center; gap:16px; font-size:11px; font-weight:500; }
.news-section h2 > span { font:700 15px/1 var(--latin); letter-spacing:.02em; }
.news-row { display:flex; align-items:center; gap:27px; font-size:13px; }
.news-row time { font:500 12px/1.7 var(--latin); color:var(--muted); letter-spacing:.03em; }
.news-row .arrow { margin-left:auto; font-size:22px; line-height:1; }
.news-row:hover .news-text { text-decoration:underline; text-underline-offset:5px; }
.section { padding-block:108px; }
.eyebrow { font:600 12px/1.6 var(--latin); letter-spacing:.035em; }
.section-heading h2 { margin-top:14px; font-size:48px; line-height:1.4; letter-spacing:-.03em; font-weight:800; }
.business-layout { display:grid; grid-template-columns:32% minmax(0,1fr); gap:55px; align-items:start; }
.business-list { border-top:1px solid var(--ink); }
.business-item { padding:28px 0; border-bottom:1px solid var(--line); }
.business-item h3 { font-size:19px; font-weight:650; line-height:1.8; }
.business-item p { margin-top:12px; font-size:14px; line-height:2.05; color:#4f5867; }
.company-section { background:var(--pale); }
.company-layout { display:grid; grid-template-columns:32% 1fr; gap:55px; align-items:start; }
.company-intro { margin-top:27px; font-size:12px; color:var(--muted); }
.company-table { margin:0; border-top:1px solid var(--ink); }
.company-table > div { display:grid; grid-template-columns:130px 1fr; gap:24px; padding:19px 0; border-bottom:1px solid #d3d9e0; align-items:start; }
.company-table dt { font-size:12px; font-weight:500; line-height:2; color:#505c6a; }
.company-table dd { margin:0; min-width:0; font-size:13px; line-height:1.95; }
.company-table .company-name { font-size:16px; font-weight:650; }
.detail-image { height:auto; }
.bank-note { display:block; font-size:11px; color:var(--muted); }
.inline-link { display:inline-flex; align-items:center; gap:17px; text-decoration:underline; text-underline-offset:4px; }
.chevron { display:inline-block; flex:none; width:7px; height:7px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); }
.contact-section { display:flex; align-items:center; justify-content:space-between; gap:48px; padding-block:96px 103px; }
.contact-heading h2 { font-size:44px; line-height:1.45; letter-spacing:-.03em; font-weight:800; margin-top:13px; }
.contact-heading > p:last-child { font-size:13px; line-height:2; margin-top:24px; color:var(--muted); }
.contact-button { display:inline-flex; justify-content:space-between; align-items:center; gap:46px; min-height:80px; padding:17px 23px 17px 33px; border:1px solid var(--ink); border-radius:60px; font-size:14px; font-weight:600; transition:background .2s,color .2s; }
.button-arrow { display:grid; place-items:center; width:43px; height:43px; border:1px solid var(--line); border-radius:50%; font:400 22px/1 var(--latin); }
.contact-button:hover { color:#fff; background:var(--ink); }
.site-footer { background:#fff; border-top:1px solid var(--line); }
.footer-main { display:flex; align-items:flex-start; justify-content:space-between; gap:60px; padding-block:47px 45px; }
.footer-brand { display:block; font:800 34px/1 var(--latin); letter-spacing:-.01em; }
.footer-brand > span { display:block; margin-top:13px; font:500 11px/1.5 var(--font); letter-spacing:.035em; }
.footer-identity p { margin-top:18px; font-size:10px; color:var(--muted); }
.footer-nav { display:grid; grid-template-columns:repeat(3,max-content); gap:14px 29px; padding-top:8px; margin-left:auto; font-size:12px; text-align:left; }
.footer-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.back-top { flex:none; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; border:1px solid var(--ink); font:400 23px/1 var(--latin); }
.back-top:hover { background:var(--ink); color:#fff; }
.footer-bottom { display:flex; align-items:center; justify-content:flex-end; gap:20px; border-top:1px solid var(--line); padding-block:23px 29px; color:var(--muted); }
.footer-bottom small { font:400 10px/1.5 var(--latin); letter-spacing:.02em; }
.breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:13px; padding-block:21px; border-top:1px solid var(--line); font-size:10px; color:var(--muted); }
.breadcrumbs a:hover { text-decoration:underline; }
.breadcrumbs span[aria-hidden] { color:#a4adba; }
.page-title { padding-block:41px 48px; }
.page-title h1 { font-size:45px; font-weight:800; line-height:1.55; letter-spacing:-.035em; margin-top:13px; }
.page-title p:not(.eyebrow) { margin-top:18px; font-size:13px; color:var(--muted); }
.article-wrap { padding-block:10px 95px; }
.article-body { max-width:900px; margin-left:auto; }
.article-body .article-intro { font-size:14px; line-height:2.1; margin-bottom:34px; }
.policy-section { margin-top:33px; }
.policy-section h2 { font-size:18px; font-weight:700; line-height:1.8; padding-bottom:13px; margin-bottom:15px; border-bottom:1px solid var(--line); }
.policy-section p,.policy-section li { font-size:13px; line-height:2.1; color:#4f5968; }
.policy-section p + p { margin-top:12px; }
.policy-section ul { margin-top:13px; padding-left:20px; }
.article-body a:not(.outline-button) { text-decoration:underline; text-underline-offset:4px; }
.policy-date { font-size:12px; margin-top:35px; color:var(--muted); text-align:right; }
.article-actions { border-top:1px solid var(--line); padding-top:35px; margin-top:43px; }
.outline-button { display:inline-flex; align-items:center; justify-content:space-between; min-width:220px; gap:35px; border:1px solid var(--ink); border-radius:40px; padding:14px 24px; font-size:12px; }
.outline-button:hover { background:var(--ink); color:#fff; }
.news-article-date { font-size:12px; color:var(--muted); margin-bottom:20px; }
.news-article-title { font-size:26px; font-weight:700; line-height:1.7; border-bottom:1px solid var(--line); padding-bottom:25px; margin-bottom:30px; }
.news-article-copy p { font-size:14px; line-height:2.1; margin-bottom:20px; }
.sitemap-list { list-style:none; padding:0 !important; display:grid; grid-template-columns:1fr 1fr; gap:11px 25px; }
.contact-page-body { max-width:960px; padding-block:0 110px; }
.contact-page-intro { font-size:13px; color:var(--muted); line-height:2; margin-bottom:45px; }
.contact-form { margin-inline:auto; }
.form-intro { display:flex; align-items:center; gap:9px; font-size:11px; color:var(--muted); padding-bottom:18px; }
.required,.optional { display:inline-block; flex:none; font-size:10px; font-weight:500; line-height:1.5; padding:2px 7px; border-radius:2px; }
.required { background:var(--ink); color:#fff; }
.optional { background:#e9edf2; color:#626e7b; }
.form-row { display:grid; grid-template-columns:224px 1fr; border-top:1px solid var(--line); padding-block:21px; }
.form-row > label { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; padding:12px 32px 12px 0; font-size:13px; font-weight:600; }
.form-row > label .required,.form-row > label .optional { margin-top:4px; }
.form-field { min-width:0; }
.form-field input,.form-field textarea { width:100%; min-height:50px; padding:12px 16px; color:var(--ink); background:#f6f7f9; border:1px solid #d9dfe6; border-radius:2px; font-size:15px; line-height:1.7; }
.form-field textarea { min-height:190px; resize:vertical; }
.form-field input::placeholder,.form-field textarea::placeholder { color:#858d9a; font-size:12px; }
.form-field input:focus,.form-field textarea:focus { background:#fff; }
.form-field [aria-invalid="true"] { border-color:#ac3434; }
.field-error { margin-top:8px; color:#9e2929; font-size:12px; line-height:1.8; }
.field-error[hidden] { display:none; }
.consent + .field-error:not([hidden]) { margin-top:-16px; margin-bottom:24px; }
.form-bottom { border-top:1px solid var(--line); padding-top:31px; text-align:center; }
.form-privacy { font-size:12px; line-height:2; color:var(--muted); }
.form-privacy a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.consent { display:flex; align-items:center; justify-content:center; gap:11px; margin:22px 0 26px; font-size:12px; cursor:pointer; }
.consent input { width:17px; height:17px; accent-color:var(--ink); flex:none; }
.submit-button { display:inline-flex; align-items:center; justify-content:space-between; gap:40px; min-width:294px; min-height:61px; padding:16px 28px; background:var(--ink); border:1px solid var(--ink); border-radius:40px; color:#fff; font-size:13px; cursor:pointer; }
.submit-button:hover { background:#28354f; }
.submit-button:disabled { cursor:wait; opacity:.65; }
.form-status { margin-top:20px; font-size:12px; color:var(--muted); }
.form-status:empty { display:none; }
.form-status[data-state="error"] { color:#9e2929; }
.thanks-main { padding:96px 24px 130px; }
.thanks-card { max-width:800px; margin-inline:auto; text-align:center; }
.thanks-card h1 { font-size:33px; line-height:1.7; font-weight:800; margin:22px 0 26px; }
.thanks-card p:not(.eyebrow) { font-size:14px; color:var(--muted); line-height:2.1; }
.thanks-card .outline-button { margin-top:39px; }
@media (min-width:1600px) {
  .container { width:min(1440px,calc(100% - 144px)); }
  .hero { --hero-image-height:524px; }
}
@media (max-width:1100px) {
  .container { width:calc(100% - 72px); } .header-inner { min-height:94px; }
  .primary-nav { gap:20px; font-size:12px; } .brand-type { font-size:29px; }
  .section { padding-block:86px; } .section-heading h2 { font-size:42px; }
  .business-layout { grid-template-columns:27% minmax(0,1fr); gap:39px; }
  .business-item { padding-block:26px; } .business-item h3 { font-size:18px; } .business-item p br { display:none; }
  .company-layout { grid-template-columns:27% 1fr; gap:39px; } .company-table > div { grid-template-columns:110px 1fr; gap:20px; }
  .contact-section { padding-block:80px; gap:28px; } .contact-heading h2 { font-size:37px; } .contact-button { gap:28px; min-height:72px; font-size:12px; padding-left:26px; }
  .footer-main { gap:35px; } .footer-nav { gap:15px 23px; font-size:11px; }
}
@media (max-width:960px) {
  .hero-carousel { width:100%; margin-inline:0; }
  .header-inner { flex-wrap:wrap; gap:0; padding-block:19px; }
  .primary-nav { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:20px 0 0; border-top:1px solid var(--line); font-size:12px; }
  .primary-nav > a { min-width:0; padding:15px 10px; border-bottom:1px solid var(--line); white-space:normal; }
  .has-menu .primary-nav { display:none; } .has-menu .primary-nav.is-open { display:grid; }
  .has-menu .menu-toggle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:45px; height:40px; padding:0; margin-left:auto; border:0; background:transparent; color:var(--ink); cursor:pointer; }
  .menu-icon { display:block; width:24px; height:10px; border-top:1px solid; border-bottom:1px solid; } .menu-label { font-size:8px; line-height:1; }
}
@media (max-width:760px) {
  html { scroll-padding-top:88px; } .container { width:calc(100% - 40px); }
  .header-inner { min-height:80px; flex-wrap:wrap; gap:0; padding-block:19px; } .brand { gap:8px; } .brand-type { font-size:27px; } .brand-mark { width:29px; height:29px; } .brand-caption { font-size:8px; margin-top:5px; }
  .hero { --hero-image-height:352px; } .hero-grid { background-size:25% 100%; }
  .news-section { grid-template-columns:1fr; gap:14px; margin-top:23px; padding-block:23px; } .news-section h2 { gap:13px; font-size:10px; } .news-section h2 > span { font-size:13px; }
  .news-row { gap:18px; font-size:12px; } .news-row time { font-size:11px; } .news-row .arrow { font-size:20px; }
  .section { padding-block:67px; } .eyebrow { font-size:10px; } .section-heading h2 { font-size:35px; margin-top:11px; }
  .business-layout { grid-template-columns:1fr; gap:32px; }
  .business-item { padding-block:25px 27px; } .business-item h3 { font-size:18px; line-height:1.6; }
  .company-layout { grid-template-columns:1fr; gap:32px; } .company-intro { margin-top:19px; font-size:11px; } .company-table > div { grid-template-columns:112px 1fr; gap:17px; padding-block:18px; } .company-table dt { font-size:11px; } .company-table dd { font-size:12px; } .company-table .company-name { font-size:15px; }
  .contact-section { display:block; padding-block:65px 71px; } .contact-heading h2 { font-size:34px; margin-top:10px; } .contact-heading > p:last-child { font-size:12px; margin-top:22px; }
  .contact-button { width:min(350px,100%); margin-top:33px; min-height:69px; padding:13px 17px 13px 25px; font-size:12px; } .button-arrow { width:38px; height:38px; font-size:21px; }
  .footer-main { position:relative; flex-direction:column; gap:30px; padding-block:35px; } .footer-brand { font-size:29px; } .footer-brand > span { margin-top:10px; font-size:10px; } .footer-identity p { font-size:9px; margin-top:13px; }
  .footer-nav { width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; padding:0; gap:17px 25px; font-size:11px; } .back-top { position:absolute; top:35px; right:0; width:39px; height:39px; font-size:20px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:18px; padding-block:23px; } .footer-bottom small { font-size:9px; }
  .breadcrumbs { font-size:9px; padding-block:16px; gap:11px; } .page-title { padding-block:31px 37px; } .page-title h1 { font-size:32px; line-height:1.55; margin-top:12px; } .page-title p:not(.eyebrow) { margin-top:17px; font-size:12px; }
  .article-wrap { padding-block:0 65px; } .article-body .article-intro { font-size:12px; } .policy-section { margin-top:28px; } .policy-section h2 { font-size:16px; padding-bottom:12px; margin-bottom:13px; } .policy-section p,.policy-section li { font-size:12px; } .policy-date { font-size:10px; }
  .article-actions { padding-top:28px; margin-top:32px; } .outline-button { font-size:11px; min-width:205px; padding:13px 20px; } .news-article-date { font-size:10px; } .news-article-title { font-size:21px; padding-bottom:20px; margin-bottom:25px; } .news-article-copy p { font-size:12px; }
  .contact-page-body { padding-bottom:70px; } .contact-page-intro { font-size:12px; margin-bottom:30px; } .form-intro { font-size:10px; }
  .form-row { grid-template-columns:1fr; padding-block:18px 21px; } .form-row > label { padding:0 0 13px; justify-content:flex-start; align-items:center; gap:12px; font-size:12px; } .form-row > label .required,.form-row > label .optional { margin-top:0; }
  .form-field input,.form-field textarea { font-size:16px; min-height:49px; padding:11px 13px; } .form-field textarea { min-height:180px; } .form-field input::placeholder,.form-field textarea::placeholder { font-size:12px; }
  .form-bottom { padding-top:24px; } .form-privacy { text-align:left; font-size:11px; } .form-privacy br { display:none; } .consent { font-size:11px; gap:9px; } .submit-button { min-width:0; width:min(320px,100%); min-height:58px; font-size:12px; padding-inline:24px; } .form-status { font-size:11px; }
  .thanks-main { padding-block:65px 87px; } .thanks-card h1 { font-size:26px; } .thanks-card p:not(.eyebrow) { font-size:12px; }
}
@media (max-width:480px) {
  .container { width:calc(100% - 36px); } .hero { --hero-image-height:300px; padding-block:12px; }
  .news-row { display:grid; grid-template-columns:1fr 26px; gap:6px 15px; } .news-row time { grid-column:1; } .news-text { grid-column:1; } .news-row .arrow { grid-column:2; grid-row:1 / 3; }
  .company-table > div { grid-template-columns:1fr; gap:8px; padding-block:16px; } .company-table dt { font-size:10px; } .company-table dd { font-size:13px; } .company-table .detail-image { max-width:100%; }
  .footer-nav { display:grid; grid-template-columns:repeat(2,1fr); gap:13px 22px; } .page-title h1 { font-size:28px; } .sitemap-list { grid-template-columns:1fr; } .desktop-break { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; }
}
@media print {
  .site-header { position:static; } .primary-nav,.menu-toggle,.hero,.news-section,.contact-section,.site-footer,.article-actions,.breadcrumbs { display:none !important; }
  .container { width:100%; } body { font-size:10pt; }
  .section { padding-block:25px; } .section-heading h2,.page-title h1 { font-size:22pt; } .business-item { break-inside:avoid; padding-block:15px; } .company-section { background:#fff; } .business-layout,.company-layout { grid-template-columns:145px 1fr; gap:30px; } .company-table > div { break-inside:avoid; }
  .page-title { padding-block:25px; } .article-wrap { padding-block:0; }
}

@media (max-width:760px) {
  .business-item p,.contact-heading > p:last-child,.contact-page-intro { font-size:14px; }
}

/* Sitemap page */
.sitemap-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; }
.sitemap-group h2 { font-size:18px; font-weight:700; padding-bottom:20px; border-bottom:1px solid var(--ink); }
.sitemap-page-links { list-style:none; padding:0; margin:0; }
.sitemap-page-links li { border-bottom:1px solid var(--line); }
.article-body .sitemap-page-links a { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 6px 20px 0; font-size:13px; text-decoration:none; }
.article-body .sitemap-page-links a:hover > span:first-child { text-decoration:underline; text-underline-offset:5px; }
@media (max-width:1100px) {
  .sitemap-groups { gap:40px; }
}
@media (max-width:760px) {
  .sitemap-groups { grid-template-columns:1fr; gap:37px; }
  .sitemap-group h2 { font-size:17px; padding-bottom:15px; }
  .article-body .sitemap-page-links a { font-size:14px; padding-block:18px; }
}
