* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: #fff; color: #000; font: 12px/16px Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
a:hover, button:hover { color: #666; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid #555; outline-offset: 3px; }
img { max-width: 100%; height: auto; }
h1 { font-size: 16px; line-height: 20px; }
.visually-hidden, .invisible {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.invisible:focus {
  z-index: 2; width: auto; height: auto; margin: 0; padding: 8px;
  clip: auto; clip-path: none; background: white;
}
#header { height: 170px; padding: 100px 38px 0; }
#logo { font-size: 16px; }
#container { display: grid; grid-template-columns: 380px minmax(0, 1fr); align-items: start; }
#left { margin-left: 0; padding: 0 20px 24px 40px; }
#main { min-width: 0; padding: 0 24px 32px 0; }
.mod_navigation ul { list-style: none; margin: 0; padding: 0; }
.mod_navigation .level_1 > li { margin-bottom: 8px; }
.mod_navigation .level_2 { display: none; padding: 8px 0 12px; }
.mod_navigation .active > .level_2, .mod_navigation .trail > .level_2 { display: block; }
.mod_navigation .level_2 > li { margin-bottom: 5px; }
.mod_navigation .level_2 a { color: #737373; }
.mod_navigation .level_2 a:hover, .mod_navigation .level_2 a:focus { color: #000; }
.menu-toggle, .project-toggle { display: none; }
.home-image { display: block; width: 440px; max-width: 100%; }
.home-image img, #pr_thumb img { display: block; }
.project-index, .project-page {
  --project-gallery-width: 1560px;
  --project-gallery-height: clamp(460px, 80svh, 580px);
}
#pr_thumb { max-width: var(--project-gallery-width); }
#pr_thumb img {
  width: 100%; height: calc(var(--project-gallery-height) - 60px);
  object-fit: contain; object-position: left center;
}
.ce_text { width: 500px; max-width: 100%; }
.news-page .ce_text { width: 700px; margin-bottom: 20px; }
.news-page .ce_text p { margin: 1px 0 0; }
.project-section { max-width: var(--project-gallery-width); }
.project-detail .ce_text { width: 650px; overflow-wrap: anywhere; }
.project-detail.is-enhanced { display: flex; flex-direction: column-reverse; align-items: flex-start; }
.project-detail.is-enhanced .project-section { width: 100%; }
.project-switcher { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.project-switcher button {
  padding: 2px 4px; border: 0; background: transparent; color: #666;
}
.project-switcher button[aria-pressed="true"] { color: #000; font-weight: bold; }
.project-switcher button + button { border-left: 1px solid #aaa; padding-left: 10px; }
.project-detail .accordion { max-width: 715px; }
.project-detail .ce_text { text-align: justify; }

@media (min-width: 801px) {
  :is(.project-index, .project-page) #container {
    grid-template-columns: clamp(270px, 30vw, 380px) minmax(0, 1fr);
    column-gap: clamp(24px, 4vw, 72px);
  }
  .project-section > .accordion { max-height: 520px; overflow-y: auto; }
}

@media (max-width: 800px) {
  body { font-size: 14px; line-height: 20px; }
  #header { min-height: 76px; height: auto; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  #container { display: block; }
  #left { padding: 0 20px 14px; }
  #main { padding: 0 20px 24px; }
  .menu-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 7px; border: 0; background: transparent; }
  .menu-icon { display: block; width: 16px; height: 12px; border-block: 1px solid; position: relative; }
  .menu-icon::after { content: ''; position: absolute; width: 100%; border-top: 1px solid; top: 4.5px; left: 0; }
  .mod_navigation .level_1 > li > :is(a, strong), .mod_navigation .level_2 > li > :is(a, strong) { display: inline-block; padding: 8px 0; }
  .mod_navigation .level_1 > li, .mod_navigation .level_2 > li { margin: 0; }
  .mod_navigation .level_2 { padding: 0 0 8px 12px; }
  .mod_navigation .has-project-toggle > :is(a, strong, .level_2) { display: none; }
  .mod_navigation .project-toggle[aria-expanded="true"] + .level_2 { display: block; }
  .project-toggle {
    display: inline-flex; align-items: center; gap: 8px; min-height: 36px;
    padding: 0; border: 0; background: transparent;
  }
  .mod_navigation :is(.active, .trail) > .project-toggle { font-weight: bold; }
  .project-toggle::after {
    content: ''; width: 6px; height: 6px; border: solid currentColor;
    border-width: 0 1px 1px 0; transform: rotate(-45deg);
  }
  .project-toggle[aria-expanded="true"]::after { transform: rotate(45deg); }
  .project-index.has-menu #pr_thumb { display: none; }
  .project-detail.is-enhanced { flex-direction: column; }
  .project-page #left:not([hidden]) + #main { margin-top: 16px; }
  .project-switcher { margin: 0 0 12px; }
  .project-switcher button { min-width: 40px; min-height: 40px; }
  .project-detail .ce_text { text-align: left; }
}
.news-page .ce_text { display: flow-root; width: 700px; margin: 0; padding-bottom: 20px; }
.news-page .ce_text p { margin: 1px 0 1em; }
.news-page .image_container { margin: 0; }

@media (min-width: 801px) {
  .news-page #logo { position: fixed; top: 100px; left: 38px; }
  .news-page #left { position: fixed; top: 170px; left: 0; width: 380px; }
  .news-page #main { grid-column: 2; }
  .news-page .ce_text { text-align: justify; }
}

@media (max-width: 800px) {
  .news-page .ce_text { overflow-wrap: anywhere; }
  .news-page .image_container { float: none !important; padding: 0 !important; margin: 0 0 12px; }
  .news-page .image_container img { display: block; }
}

.legal-page #main a { text-decoration: underline; text-underline-offset: .15em; }
.legal-page #main { overflow-wrap: anywhere; }
.legal-page h2 { font-size: 14px; line-height: 1.4; margin-top: 1.6em; }
