@charset "UTF-8";
/* 会社概要だけに適用。既存ページの文字組み・画像・検索を変更しない。 */
.company-page { --company-ink:#294b3b; --company-text:#303c37; --company-muted:#506255; --company-soft:#f2f5ef; --company-rule:#d5ded4; color:var(--company-text); font-size:1.125rem; line-height:1.8; }
.company-page .company-wrap { width:min(1160px,calc(100% - 80px)); margin-inline:auto; }
.company-page main :is(h1,h2,h3) { color:var(--company-ink); font-weight:700; letter-spacing:.015em; text-wrap:pretty; }
.company-page main h1 { font-size:2.5rem; line-height:1.4; margin:0 0 22px; }
.company-page main h2 { font-size:2rem; line-height:1.5; margin:0 0 32px; }
.company-page main h3 { font-size:1.5rem; line-height:1.5; margin:0 0 20px; }
.company-page main :is(p,li,dt,dd,a,summary) { font-size:1.125rem; }
.company-page main p { margin:0 0 18px; }
.company-page main a { color:var(--company-ink); text-underline-offset:5px; }
.company-page .company-nowrap { white-space:nowrap; }
.company-page :is(a,summary):focus-visible { outline:3px solid #345d48; outline-offset:5px; }
.company-page :is(section[id],main[id]) { scroll-margin-top:24px; }
.company-page figure { margin:0; min-width:0; }
.company-page figure img { display:block; width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; border-radius:3px; }
.company-page figcaption { color:var(--company-muted); font-size:.875rem; line-height:1.75; margin-top:12px; }
.company-page .company-breadcrumb ol { display:flex; flex-wrap:wrap; list-style:none; gap:10px; padding:24px 0 0; margin:0; }
.company-page .company-breadcrumb :is(li,a) { font-size:.9375rem; }
.company-page .company-breadcrumb li+li::before { content:'›'; margin-right:10px; }
.company-page .company-eyebrow { display:flex; align-items:center; gap:12px; color:var(--company-muted); font-size:1rem; margin-bottom:14px; }
.company-page .company-eyebrow::before { content:''; width:28px; height:2px; background:#7b9770; flex-shrink:0; }
.company-page .company-hero { display:grid; grid-template-columns:1.5fr 1fr; align-items:center; gap:48px; padding:36px 0 32px; }
.company-page .company-hero > * { min-width:0; }
.company-page .company-hero p:last-child { margin-bottom:0; }
.company-page .company-toc { display:flex; flex-wrap:wrap; gap:12px 28px; padding:22px 0; border-block:1px solid var(--company-rule); }
.company-page .company-toc a { font-size:1rem; display:inline-flex; gap:14px; align-items:center; padding:4px 0; }
.company-page .company-toc a::after { content:'↓'; }
.company-page .company-section { padding-block:72px; }
.company-page .company-section + .company-section { border-top:1px solid var(--company-rule); }
.company-page .company-facts { margin:0; border-top:1px solid var(--company-rule); }
.company-page .company-facts > div { display:grid; grid-template-columns:190px minmax(0,1fr); gap:24px; padding:21px 16px; border-bottom:1px solid var(--company-rule); }
.company-page dt { color:var(--company-ink); font-weight:600; }
.company-page dd { margin:0; min-width:0; }
.company-page .company-facts ul { list-style:none; display:flex; flex-wrap:wrap; gap:0 1em; padding:0; margin:0; }
.company-page .company-locations { margin-top:40px; }
.company-page .company-locations dl { margin:0; }
.company-page .company-locations dl > div { display:grid; grid-template-columns:190px minmax(0,1fr); gap:24px; padding:20px 16px; border-bottom:1px solid var(--company-rule); }
.company-page .company-location-role { display:block; color:var(--company-muted); font-size:1rem; font-weight:400; margin-top:4px; }
.company-page .company-information-contact { margin-top:24px; }
.company-page .company-business-primary { display:grid; grid-template-columns:minmax(0,42fr) minmax(0,58fr); grid-template-areas:'photo heading' 'photo copy'; column-gap:36px; align-items:start; }
.company-page .company-business-primary > * { min-width:0; }
.company-page .company-business-heading { grid-area:heading; }
.company-page .company-business-brand { display:block; width:200px; max-width:100%; height:auto; object-fit:contain; margin-bottom:22px; }
.company-page .company-business-heading h3 { font-size:1.625rem; }
.company-page .company-business-primary figure { grid-area:photo; align-self:center; }
.company-page .company-business-primary figure img { aspect-ratio:1280/853; object-fit:contain; background:#fff; }
.company-page .company-business-copy { grid-area:copy; }
.company-page .company-link-row { display:flex; flex-wrap:wrap; gap:14px 30px; margin-top:24px; }
.company-page .company-business-local { display:grid; grid-template-columns:minmax(0,60fr) minmax(0,40fr); gap:40px; margin-top:44px; padding:32px; background:var(--company-soft); align-items:center; }
.company-page .company-business-local > * { min-width:0; }
.company-page .company-business-local > div > p:last-child { margin-bottom:0; }
.company-page .company-principles-band { background:var(--company-soft); }
.company-page .company-philosophy { padding:12px 0 44px; }
.company-page .company-philosophy p { font-size:1.875rem; line-height:1.8; color:var(--company-ink); font-weight:600; margin:0; text-wrap:pretty; }
.company-page .company-philosophy-line { display:block; }
.company-page .company-guidelines { list-style:none; padding:0; margin:0; }
.company-page .company-guidelines li { display:grid; grid-template-columns:48px minmax(0,1fr); gap:24px; padding:24px 0; border-top:1px solid var(--company-rule); }
.company-page .company-guidelines p { margin:0; font-size:1.125rem; line-height:1.8; }
.company-page .company-guidelines > li > span { font-size:1.5rem; line-height:1.35; color:var(--company-ink); font-weight:500; font-variant-numeric:tabular-nums; }
.company-page .company-iso-grid { display:grid; grid-template-columns:360px minmax(0,1fr); gap:52px; align-items:start; }
.company-page .company-iso-grid > * { min-width:0; }
.company-page .company-iso-logo { padding:16px 0; text-align:center; }
.company-page .company-iso-logo img { width:100%; height:auto; aspect-ratio:5/2; object-fit:contain; background:#fff; }
.company-page .company-iso-logo a { display:inline-block; font-size:1rem; margin-top:20px; }
.company-page .company-iso-facts { margin:24px 0 0; }
.company-page .company-iso-facts > div { display:grid; grid-template-columns:140px minmax(0,1fr); gap:16px; padding:12px 0; border-top:1px solid var(--company-rule); }
.company-page .company-details { border-block:1px solid var(--company-rule); margin-top:32px; }
.company-page .company-details summary { padding:20px 6px; cursor:pointer; color:var(--company-ink); font-weight:600; text-decoration:underline; text-underline-offset:5px; }
.company-page .company-details-body { padding:0 24px 24px; }
.company-page .company-details .company-iso-facts { margin:0 0 20px; }
.company-page .company-note { font-size:1rem; color:var(--company-muted); }
.company-page .company-history-intro { margin-bottom:36px; }
.company-page .company-history-intro p { margin-bottom:6px; }
.company-page .company-timeline { list-style:none; margin:0; padding:0; }
.company-page .company-timeline > li { display:grid; grid-template-columns:140px minmax(0,1fr); gap:40px; padding:0 0 36px; }
.company-page .company-timeline time { font-size:1.25rem; font-weight:600; color:var(--company-ink); line-height:1.8; }
.company-page .company-timeline-content { position:relative; padding:0 0 32px 32px; border-left:1px solid var(--company-rule); }
.company-page .company-timeline-content::before { content:''; width:9px; height:9px; background:#7b9770; border-radius:50%; position:absolute; top:13px; left:-5px; }
.company-page .company-timeline h3 { font-size:1.375rem; margin-bottom:10px; }
.company-page .company-timeline p { margin:0; }
.company-page .company-timeline > li:last-child { padding-bottom:0; }
.company-page .company-timeline > li:last-child .company-timeline-content { padding-bottom:0; }
.company-page .company-contact { background:var(--company-soft); padding:40px; margin-bottom:72px; border:0; }
.company-page .company-contact-links { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 16px; }
.company-page .company-contact-links a { display:inline-flex; align-items:center; gap:24px; padding:16px 24px; border:1px solid var(--company-ink); background:#fff; text-decoration:none; font-weight:600; }
.company-page .company-contact-links a:first-child { background:var(--company-ink); color:#fff; }
.company-page .company-related { display:flex; flex-wrap:wrap; gap:16px 28px; margin-top:24px; padding-top:24px; border-top:1px solid var(--company-rule); }
@media (max-width:900px) {
  .company-page .company-wrap { width:calc(100% - 48px); }
  .company-page .company-hero { grid-template-columns:1fr 0.85fr; gap:28px; }
  .company-page .company-iso-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .company-page .company-iso-logo { width:360px; max-width:100%; }
  .company-page .company-business-local { grid-template-columns:1fr; }
  .company-page .company-business-local figure { max-width:520px; }
  .company-page .company-business-primary { grid-template-columns:minmax(0,1fr); grid-template-areas:'heading' 'photo' 'copy'; gap:24px; }
  .company-page .company-business-heading h3 { margin-bottom:0; }
  .company-page .company-business-primary figure { width:min(100%,560px); }
  .company-page .company-philosophy p { font-size:1.5rem; }
  .company-page .company-philosophy-line { display:inline; }
}
@media (max-width:600px) {
  .company-page .company-wrap { width:calc(100% - 40px); }
  .company-page main h1 { font-size:1.875rem; }
  .company-page main h2 { font-size:1.625rem; margin-bottom:24px; }
  .company-page main h3 { font-size:1.375rem; }
  .company-page .company-hero { grid-template-columns:1fr; gap:24px; padding-top:28px; }
  .company-page .company-hero figure { max-width:400px; }
  .company-page .company-toc { gap:12px 20px; }
  .company-page .company-section { padding-block:48px; }
  .company-page .company-facts > div,.company-page .company-locations dl > div { grid-template-columns:1fr; gap:8px; padding:18px 0; }
  .company-page .company-business-local { padding:24px 20px; margin-inline:-4px; gap:24px; }
  .company-page .company-business-heading h3 { font-size:1.375rem; }
  .company-page .company-link-row { flex-direction:column; align-items:flex-start; }
  .company-page .company-philosophy { padding:0 0 32px; }
  .company-page .company-philosophy p { font-size:1.5rem; line-height:1.8; }
  .company-page .company-guidelines li { grid-template-columns:34px minmax(0,1fr); gap:14px; padding:22px 0; }
  .company-page .company-guidelines p { font-size:1.125rem; }
  .company-page .company-iso-grid { gap:12px; }
  .company-page .company-iso-facts > div { grid-template-columns:1fr; gap:4px; padding:14px 0; }
  .company-page .company-details-body { padding:0 8px 20px; }
  .company-page .company-timeline > li { grid-template-columns:1fr; gap:12px; padding-bottom:28px; }
  .company-page .company-timeline-content { padding:0 0 12px 20px; }
  .company-page .company-timeline h3 { font-size:1.25rem; }
  .company-page .company-contact { padding:28px 20px; margin-bottom:48px; }
  .company-page .company-contact-links { flex-direction:column; }
  .company-page .company-contact-links a { padding:14px 16px; gap:12px; }
  .company-page .company-related { flex-direction:column; }
}
@media (max-width:359px) {
  .company-page .company-philosophy p { font-size:1.375rem; }
}
