:root{--blue:#063491;--text:#626262;--pale:rgba(0,0,0,.05)}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:#fff;color:var(--text);font-family:Arial,"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;font-size:16px;line-height:1.8;overflow-wrap:anywhere}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button{font:inherit}h1,h2,h3,p,ul,dl,dd{margin:0}ul{padding:0;list-style:none}a:focus-visible,button:focus-visible{outline:3px solid #1764c0;outline-offset:5px}section[id]{scroll-margin-top:28px}.container{width:84%;max-width:1160px;margin-inline:auto}.site-header{max-width:1600px;margin:auto;min-height:166px;padding:42px 4.3%;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:block;flex-shrink:0;width:311px}.nav-list{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;row-gap:12px;font-size:14px;line-height:1.2}.nav-list li+li{border-left:1px solid #888}.nav-list a{display:block;padding:4px 20px;white-space:nowrap}.site-header .nav-list li:last-child a{padding-right:0}.hero{position:relative;max-width:1600px;margin:auto;height:43vw;max-height:690px;min-height:390px}.hero>img{margin-left:25.5%;width:74.5%;height:100%;object-fit:cover;object-position:28% center}.hero h1{position:absolute;left:6.5%;top:9%;color:var(--blue);font-size:clamp(90px,10.7vw,170px);line-height:1.16;letter-spacing:-.025em;font-weight:700}.intro{padding-block:66px 94px;width:87%}.intro h2{font-size:38px;font-weight:400;margin-bottom:24px;line-height:1.5}.intro p{letter-spacing:.045em;line-height:1.85}.section-heading{text-align:center;margin-bottom:64px}.section-heading h2{font-size:62px;line-height:1.15;color:var(--blue);letter-spacing:-.03em}.section-heading p{font-size:20px;letter-spacing:.12em;margin-top:8px}.feature{display:grid;align-items:center}.business-feature{grid-template-columns:61% 39%}.business-feature>img{width:100%;height:auto;aspect-ratio:1.43;object-fit:cover;object-position:left}.feature-copy{padding:32px 12%}.feature h3{font-size:30px;line-height:1.75;margin-bottom:24px}.feature p{line-height:1.8}.business-feature .feature-copy{padding-left:11%;padding-right:12%}.services{display:grid;grid-template-columns:1fr 1fr;gap:100px 64px;padding-block:112px 70px}.services img{width:100%;aspect-ratio:1.42;object-fit:cover}.services h3{font-size:21px;margin:20px 0 12px}.services p{line-height:1.8}.news{background:var(--pale);padding:86px 0 88px}.news .section-heading{margin-bottom:76px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.news-grid img{width:100%;aspect-ratio:1.39;object-fit:cover}.news-grid .portrait{object-position:center 28%}.news-grid time{display:block;font-size:18px;margin-top:22px}.news-grid h3{font-size:18px;color:#252525;line-height:1.55;margin-top:6px}.base{padding-top:128px}.base .section-heading{margin-bottom:62px}.base-feature{grid-template-columns:50% 50%}.base-feature>img{width:100%;aspect-ratio:1.28;object-fit:cover;object-position:center 62%}.base-feature .feature-copy{padding-inline:13% 10%}.company{padding-top:136px}.company .section-heading{margin-bottom:36px}.company-image{width:100%;aspect-ratio:2347/821;object-fit:cover;object-position:center top}.company-details{width:75%;max-width:1100px;margin:auto;padding:56px 0 150px;color:#333;font-size:18px}.company-details dl>div{display:grid;grid-template-columns:195px 1fr;gap:0;line-height:2}.company-details dt{font-weight:400}.overview-heading{margin:90px 0 62px}.overview-heading h3{font-size:38px;line-height:1.3;color:var(--blue)}.contact{background:var(--pale);padding:66px 0 72px}.contact .section-heading{margin-bottom:38px}.contact-feature{grid-template-columns:47.4% 52.6%;align-items:start}.contact-feature>img{width:100%;aspect-ratio:1.5;object-fit:cover}.contact-feature .feature-copy{padding:36px 17% 0 13.5%}.contact-button{display:flex;justify-content:center;align-items:center;gap:5px;max-width:100%;width:310px;min-height:59px;margin-top:54px;border:1px solid #555;background:transparent;color:#333;cursor:pointer}.contact-button:hover{background:#fff}.telephone{margin:36px 10px 0}.telephone p{font-size:18px}.telephone a{font-size:30px;font-weight:700;line-height:1.3}.contact-status{margin-top:16px;font-size:14px}.site-footer{text-align:center;padding:82px 24px 116px;border-bottom:60px solid var(--blue)}.site-footer small{display:block;margin-top:42px;font-size:18px;color:#262626}.skip-link{position:absolute;top:8px;left:8px;padding:8px 16px;background:white;z-index:10;transform:translateY(-160%)}.skip-link:focus{transform:none}
@media(min-width:1600px){.intro{max-width:1392px}}
@media(max-width:1100px){.site-header{padding:28px 4%;min-height:120px;flex-wrap:wrap}.brand{width:275px}.nav-list a{padding-inline:13px}.site-header nav{margin-left:auto}.hero{min-height:330px}.hero h1{font-size:10.7vw}.intro h2{font-size:32px}.section-heading h2{font-size:52px}.feature h3{font-size:25px}.feature-copy,.business-feature .feature-copy{padding:24px 8%}.services{gap:64px 36px;padding-top:80px}.base-feature .feature-copy{padding-inline:10% 7%}.company-details{width:84%;font-size:16px}.company-details dl>div{grid-template-columns:170px 1fr}.contact-feature .feature-copy{padding:16px 9% 0 10%}.contact-button{margin-top:28px}.site-footer small{font-size:14px}}
@media(max-width:700px){body{font-size:16px}.container{width:calc(100% - 40px)}.site-header{padding:22px 20px 24px;gap:22px;justify-content:center}.brand{width:275px}.site-header nav{margin:0;width:100%}.nav-list{row-gap:16px;font-size:14px}.nav-list a{padding:4px 12px}.site-header .nav-list li:last-child a{padding-right:12px}.hero{height:360px;min-height:0}.hero>img{margin-left:16%;width:84%;object-position:48% center}.hero h1{left:5%;top:34px;font-size:clamp(64px,15vw,100px);line-height:1.2;text-shadow:0 0 12px #ffffff30}.intro{padding:40px 0 66px}.intro h2{font-size:25px;margin-bottom:22px}.intro p{letter-spacing:0;line-height:1.95}.desktop-break{display:none}.section-heading{margin-bottom:32px}.section-heading h2{font-size:43px}.section-heading p{font-size:16px;margin-top:6px}.feature{grid-template-columns:1fr;gap:0}.business-feature>img{aspect-ratio:1.5}.feature-copy,.business-feature .feature-copy,.base-feature .feature-copy,.contact-feature .feature-copy{padding:28px 20px 0}.feature h3{font-size:24px;line-height:1.6;margin-bottom:18px}.services{grid-template-columns:1fr;gap:40px;padding-block:44px 60px}.services img{aspect-ratio:1.42}.services h3{font-size:20px;margin:16px 0 12px}.news{padding:52px 0 58px}.news .section-heading{margin-bottom:32px}.news-grid{grid-template-columns:1fr;gap:32px}.news-grid img{aspect-ratio:1.5}.news-grid time{font-size:16px;margin-top:14px}.news-grid h3{font-size:17px}.base{padding-top:60px}.base .section-heading{margin-bottom:32px}.base-feature>img{aspect-ratio:1.4}.company{padding-top:64px}.company .section-heading{margin-bottom:28px}.company-image{aspect-ratio:1.85;object-position:40% center}.company-details{width:calc(100% - 40px);padding:30px 0 60px}.company-details dl>div{grid-template-columns:1fr;gap:4px;padding:12px 0;border-bottom:1px solid #e5e5e5;line-height:1.8}.company-details dt{font-weight:700}.overview-heading{margin:44px 0 18px}.overview-heading h3{font-size:30px}.contact{padding:48px 0}.contact .section-heading{margin-bottom:28px}.contact-feature>img{aspect-ratio:1.6}.contact-button{width:100%;margin-top:28px}.telephone{margin:28px 0 0;text-align:center}.telephone p{font-size:16px}.telephone a{font-size:30px}.site-footer{padding:42px 20px 50px;border-bottom-width:24px}.site-footer small{font-size:12px;line-height:1.9;margin-top:30px}.site-footer .nav-list{font-size:12px}.site-footer .nav-list a{padding-inline:10px}}

/* お問い合わせ導線を復活させる場合は body の contact-links-hidden を削除。 */
.contact-links-hidden .contact-nav-item,
.contact-links-hidden .contact-button,
.contact-links-hidden .contact-status { display: none; }
.menu-toggle, .menu-backdrop { display: none; }
@media (max-width: 700px) {
  .site-header { min-height: 88px; justify-content: space-between; gap: 0; padding: 20px; }
  .site-header .brand { width: min(275px, calc(100% - 64px)); }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; width: 44px; height: 44px; padding: 8px; border: 0; background: transparent; color: var(--blue); cursor: pointer; }
  .menu-toggle span { display: block; width: 26px; height: 2px; background: currentColor; }
  .menu-toggle[aria-expanded="true"] { position: fixed; top: 22px; right: 20px; z-index: 102; }
  .menu-toggle[aria-expanded="true"] span { position: absolute; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { display: none; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: rotate(-45deg); }
  .site-header nav { display: block; position: fixed; z-index: 101; top: 0; right: 0; width: min(84vw, 360px); height: 100dvh; margin: 0; padding: 96px 24px 32px; overflow-y: auto; overscroll-behavior: contain; background: #fff; visibility: hidden; transform: translateX(100%); transition: transform .3s ease, visibility 0s .3s; }
  .site-header.menu-open nav { visibility: visible; transform: translateX(0); transition-delay: 0s; }
  .menu-backdrop { display: block; position: fixed; z-index: 100; inset: 0; background: rgb(0 0 0 / 35%); opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility 0s .3s; }
  .menu-open .menu-backdrop { opacity: 1; visibility: visible; transition-delay: 0s; }
  body.menu-active { overflow: hidden; }
  .site-header.menu-open::before { content: ''; width: 44px; height: 44px; order: 1; }
  .site-header .nav-list { display: block; border-top: 1px solid #ddd; }
  .site-header .nav-list li + li { border-left: 0; }
  .site-header .nav-list a { padding: 14px 8px; border-bottom: 1px solid #ddd; }
}

@media (prefers-reduced-motion: reduce) { .site-header nav, .menu-backdrop { transition: none; } }

/* ナビのアンカー移動をスムーススクロールに。「動きを減らす」設定では即時移動。 */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
