@charset "UTF-8";

:root {
  --paper: #eeeee8;
  --white: #fff;
  --ink: #242628;
  --muted: #62645f;
  --line: #d3d5cc;
  --accent: #ff8000;
  --accent-text: #a84905;
  --header-height: 0px;
  --sidebar-width: 260px;
  --gutter: clamp(24px, 4vw, 68px);
  --content-width: 1280px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-height) + 28px); }
body { margin: 0; -webkit-font-smoothing: antialiased; background: var(--paper); }
#main, .site-footer { margin-left: var(--sidebar-width); }
#main { background: url("assets/brand-pattern.svg") 100% 0 / 1080px 1080px repeat-y; }
::selection { background: #fbd7b4; color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a, input, textarea { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--accent-text); outline-offset: 6px; }
[hidden] { display: none !important; }
p { margin: 0 0 1.25em; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; letter-spacing: -.055em; text-wrap: balance; }
.container { width: min(calc(100% - var(--gutter) * 2), var(--content-width)); margin-inline: auto; }
.section { padding-block: clamp(72px, 9vw, 144px); position: relative; isolation: isolate; }
.section::before { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: url("assets/science-pattern.svg") center 32% / 1200px auto repeat-y; }
.environment::before { background-position: center 70%; }
.seminars::before { background-position: center 90%; }
.news-home::before { background-position: center 12%; }
.eyebrow { font: 11px/1.5 "Cascadia Mono", "SFMono-Regular", Consolas, monospace; text-transform: uppercase; letter-spacing: .15em; }
.eyebrow .dot { display: inline-block; width: 6px; height: 6px; margin: 0 10px 1px 0; background: var(--accent); }
.section-number { color: var(--muted); margin-bottom: 24px; }
.text-link { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; font-size: 14px; border-bottom: 1px solid currentColor; }
.text-link span, .button span, .header-contact span { transition: transform .25s ease; }
.text-link:hover span, .button:hover span, .header-contact:hover span { transform: translate(3px, -3px); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 30px; padding: 15px 24px; min-height: 52px; border-radius: 32px; border: 1px solid var(--ink); background: var(--ink); color: var(--white); font-size: 14px; font-weight: 500; }
.button:hover { background: #3e413f; }
.button-secondary { background: transparent; color: var(--ink); border-color: #b7b9b1; }
.button-secondary:hover { background: #e6e8e1; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 16px; background: var(--white); }
.skip-link:focus { top: 10px; }
.mobile-header { display: none; }
.header-inner { height: 100%; width: calc(100% - var(--gutter) * 2); margin: auto; display: flex; align-items: center; gap: 20px; }
.brand { display: inline-flex; flex-shrink: 0; width: 168px; }
.brand img { width: 100%; height: auto; }
.site-sidebar { position: fixed; z-index: 60; inset: 0 auto 0 0; width: var(--sidebar-width); height: 100vh; height: 100dvh; overflow-y: auto; overscroll-behavior-y: contain; border-right: 1px solid #c7c9bf; background: linear-gradient(150deg, #e5e5dfe6, #e8e8e2f5 55%, #dcded5ed), url("assets/brand-pattern.svg") center bottom / 660px 660px; scrollbar-width: thin; scrollbar-color: #b6baae transparent; }
.sidebar-inner { min-height: 100%; display: flex; flex-direction: column; position: relative; padding: 38px 24px 22px; }
.sidebar-brand { width: 212px; max-width: 100%; }
.sidebar-tagline { margin: 16px 0 0; color: #696c62; font-size: 10px; letter-spacing: .045em; }
.sidebar-nav { display: flex; flex-direction: column; gap: 3px; margin: 36px -10px 34px; }
.sidebar-nav a { display: flex; align-items: center; min-height: 44px; gap: 14px; padding: 10px 12px; font-size: 14px; border-radius: 3px; color: #60635a; transition: color .2s, background-color .2s; }
.nav-index { font: 9px/1.5 "Cascadia Mono", Consolas, monospace; color: #7c8075; }
.nav-indicator { width: 5px; height: 5px; margin-left: auto; background: var(--accent); opacity: 0; }
.sidebar-nav a:hover { color: var(--ink); background: #ffffff50; }
.sidebar-nav a[aria-current="page"] { background: #fbfbf4c4; color: var(--ink); box-shadow: inset 2px 0 var(--accent); }
.sidebar-nav a[aria-current="page"] .nav-indicator { opacity: 1; }
.sidebar-info { margin-top: auto; }
.sidebar-accreditation { padding: 14px 0; border-block: 1px solid #c9ccc1; }
.accreditation-image-link { display: block; }
/* Protected original: preserve full artwork, colours, whitespace and aspect ratio. */
.accreditation-image { display: block; width: 100%; height: auto; max-width: 100%; opacity: 1; filter: none; mix-blend-mode: normal; transform: none; clip-path: none; mask: none; border: 0; border-radius: 0; }
.accreditation-download { display: flex; justify-content: space-between; align-items: center; min-height: 28px; margin-top: 8px; font-size: 10px; color: #555d4e; }
.sidebar-partners, .sidebar-social { margin-top: 24px; }
.sidebar-partners .eyebrow, .sidebar-social .eyebrow { margin-bottom: 12px; font-size: 9px; color: var(--muted); }
.partner-list, .social-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.partner-link { display: flex; align-items: center; gap: 10px; min-height: 60px; padding: 12px 10px; border: 1px solid #c9ccc1; border-radius: 4px; background: #fff; color: #4a554a; }
.partner-link img { width: calc(100% - 24px); height: auto; object-fit: contain; }
.partner-link > span { flex-shrink: 0; font-size: 14px; }
.partner-fluffy { background: #192e37; border-color: #192e37; color: #bdd9e6; }
.partner-link:hover { border-color: var(--accent-text); }
.social-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.social-list a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; }
.social-list a:hover { border-color: var(--accent-text); color: var(--accent-text); }
.social-upcoming { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px; border: 1px dashed var(--line); border-radius: 4px; color: var(--muted); font-size: 11px; }
.social-status { color: var(--accent-text); font: 9px/1.5 "Cascadia Mono", Consolas, monospace; letter-spacing: .02em; }
.sidebar-contact { padding-top: 24px; }
.sidebar-contact .eyebrow { margin: 0 0 12px; font-size: 9px; color: #6f7367; }
.sidebar-contact a { display: flex; justify-content: space-between; align-items: center; min-height: 28px; font-size: 12px; }
.sidebar-contact a:first-of-type { font-size: 15px; letter-spacing: -.02em; }
.sidebar-legal { display: flex; gap: 18px; margin-top: 24px; font-size: 9px; color: #6b7063; }
.sidebar-legal a { display: inline-flex; align-items: center; min-height: 28px; }
.sidebar-legal a[aria-current="page"] { color: var(--accent-text); text-decoration: underline; }
.sidebar-close { display: none; }
.sidebar-backdrop { position: fixed; inset: 0; z-index: 55; background: #22272066; backdrop-filter: blur(4px); }
.header-contact { font-size: 12px; border: 1px solid #a4a69e; padding: 10px 17px; border-radius: 24px; display: flex; gap: 22px; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 13px 7px; border: 0; background: transparent; }
.menu-toggle span { display: block; height: 1px; width: 26px; background: var(--ink); margin: 6px 0; transition: transform .2s; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.technical-bg { position: relative; isolation: isolate; }
.technical-bg::before { content: ""; z-index: -1; position: absolute; inset: 0; pointer-events: none; background-image: url("assets/science-pattern.svg"), linear-gradient(#67705f0a 1px, transparent 1px), linear-gradient(90deg, #67705f0a 1px, transparent 1px); background-size: 1200px auto, 56px 56px, 56px 56px; background-position: center 15%, 0 0, 0 0; }
.hero { min-height: min(920px, calc(100svh - var(--header-height))); display: flex; flex-direction: column; justify-content: center; position: relative; padding-top: clamp(60px, 9vh, 120px); padding-bottom: 32px; background: radial-gradient(ellipse at 92% 24%, #efd7bc75, transparent 55%), linear-gradient(110deg, #eeeee8e6 30%, #e4e5dd55); }
.hero > .container { position: relative; }
.hero-brand-signal { position: absolute; z-index: -1; inset: 0; background: url("assets/brand-signal.svg") right center / min(75%, 940px) auto no-repeat; opacity: .6; pointer-events: none; mask-image: linear-gradient(90deg, transparent 48%, #000 85%); }
.hero-kicker { margin: 0 0 34px 5px; color: #54564f; }
.hero h1 { font-size: clamp(72px, calc((100vw - var(--sidebar-width)) * .125), 166px); line-height: .95; font-weight: 500; letter-spacing: -.085em; max-width: 100%; }
.hero h1 span { display: block; }
.hero h1 span:last-child { color: #747a6e; }
.hero-copy { display: flex; align-items: center; gap: 54px; margin: 38px 0 72px 7px; }
.hero-copy p { font-size: 15px; line-height: 1.6; color: var(--muted); margin: 0; max-width: 275px; }
.hero-foot { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 22px; margin-top: auto; color: var(--muted); font-size: 11px; }
.hero-foot a { display: flex; align-items: center; gap: 18px; min-height: 44px; }
.hero-foot .arrow-circle { height: 30px; width: 30px; display: grid; place-content: center; border: 1px solid #bdc0b6; border-radius: 50%; font-size: 17px; }
#unternehmen { background: linear-gradient(90deg, #eeeee850, #eeeee8ee 60%); }
.intro-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(32px, 4vw, 80px); }
.section-heading { font-size: clamp(38px, calc((100vw - var(--sidebar-width)) * .054), 72px); line-height: 1.07; }
.section-heading .soft { color: #888c83; }
.intro-grid .richtext { padding-top: 46px; }
.richtext { font-size: 16px; line-height: 1.85; color: #575b54; overflow-wrap: anywhere; }
.richtext p:last-child { margin-bottom: 0; }
.richtext > :first-child { margin-top: 0; }
.richtext a { text-decoration: underline; text-decoration-color: #aeb4a5; text-underline-offset: 4px; }
.richtext a:hover { color: var(--accent-text); }
.richtext h2 { font-size: clamp(26px, 3.5vw, 42px); line-height: 1.2; color: var(--ink); margin: 64px 0 24px; }
.richtext h3 { font-size: clamp(21px, 2.6vw, 28px); line-height: 1.3; color: var(--ink); margin: 40px 0 16px; letter-spacing: -.035em; }
.richtext h4 { font-size: 19px; color: var(--ink); margin: 32px 0 12px; }
.richtext ul, .richtext ol { padding-left: 22px; margin-block: 20px 28px; }
.richtext li { padding-left: 6px; margin-block: 8px; }
.richtext li::marker { color: var(--accent-text); }
.richtext strong { font-weight: 600; color: var(--ink); }
.richtext table { width: 100%; border-collapse: collapse; font-size: 15px; text-align: left; margin-block: 28px; }
.richtext th { font-weight: 500; color: var(--ink); background: #e9ebe4; }
.richtext td, .richtext th { border-bottom: 1px solid var(--line); padding: 16px; vertical-align: top; }
.table-scroll { overflow-x: auto; margin-block: 24px; }
.table-scroll table { min-width: 540px; margin: 0; }
.richtext section + section, .richtext article + article { margin-top: 40px; padding-top: 36px; border-top: 1px solid var(--line); }
.richtext time, .richtext .news-date { font-size: 12px; color: var(--muted); letter-spacing: .02em; }
.richtext blockquote { margin: 36px 0; padding: 12px 0 12px 24px; border-left: 2px solid var(--accent); }
.richtext hr { border: none; border-top: 1px solid var(--line); margin: 48px 0; }
.scroll-scene { --scene-progress: 1; --scene-scale: 1; --scene-radius: 0px; --scene-caption-opacity: 1; position: relative; }
.scene-sticky { position: relative; height: calc(100vh - var(--header-height)); height: calc(100svh - var(--header-height)); min-height: 360px; display: grid; place-items: center; }
.motion-ready .scroll-scene { height: 220vh; height: 220svh; }
.motion-ready .scene-sticky { position: sticky; top: var(--header-height); }
.scene-art { position: absolute; inset: 0; overflow: hidden; border-radius: var(--scene-radius); transform: scale(var(--scene-scale)); transform-origin: 50% 50%; will-change: transform; background: #141d20; }
.scene-art > img { width: 100%; height: 100%; object-fit: cover; }
.scene-brand-motif { position: absolute; inset: 0; pointer-events: none; background: url("assets/brand-signal.svg") right center / min(75%, 800px) auto no-repeat; opacity: .24; mix-blend-mode: screen; }
.scene-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #0d1419d1 0%, #0d141940 35%, transparent 60%); }
.scene-caption { position: absolute; z-index: 1; left: var(--gutter); right: var(--gutter); bottom: clamp(32px, 7vh, 80px); color: #f8faf4; opacity: var(--scene-caption-opacity); }
.scene-caption .eyebrow { margin-bottom: 18px; color: #d6dfd4; }
.scene-caption h2 { max-width: 700px; font-size: clamp(38px, calc((100vw - var(--sidebar-width)) * .062), 88px); line-height: 1.02; }
.scene-caption h2 em { font-style: normal; color: #a9b9af; }
.scene-index { position: absolute; z-index: 1; right: var(--gutter); top: 36px; color: #d4ded4; }
.scene-light .scene-art { background: #e9ece6; }
.scene-light .scene-brand-motif { mix-blend-mode: multiply; opacity: .3; }
.scene-light .scene-art::after { background: linear-gradient(0deg, #e9ece6e6 0%, #e9ece640 32%, transparent 65%); }
.scene-light .scene-caption { color: #28352f; }
.scene-light .scene-caption .eyebrow, .scene-light .scene-index { color: #485e50; }
.scene-light .scene-caption h2 em { color: #708372; }
.environment { background: linear-gradient(100deg, #e0e2d999, #e4e5de 56%), url("assets/brand-pattern.svg") left center / 1000px 1000px; }
.environment-grid { display: grid; grid-template-columns: .75fr 1fr; gap: clamp(36px, 5vw, 90px); }
.environment-heading { position: sticky; top: calc(var(--header-height) + 64px); align-self: start; }
.environment-heading .section-heading { margin-bottom: 38px; }
.section-top { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 52px; }
.section-top .text-link { flex-shrink: 0; }
.services-list { border-top: 1px solid var(--line); }
#pruefleistungen { background: linear-gradient(90deg, #eeeee8e6 50%, #eeeee875); }
.service-row { display: grid; grid-template-columns: 60px 1fr 60px; gap: 22px; align-items: center; min-height: 108px; padding-block: 22px; border-bottom: 1px solid var(--line); transition: padding .25s, background .25s; }
.service-row:hover { padding-inline: 20px; background: #eeefe9; }
.service-row .service-number { font: 11px "Cascadia Mono", Consolas, monospace; color: var(--muted); }
.service-row h3 { font-size: clamp(22px, calc((100vw - var(--sidebar-width)) * .034), 40px); line-height: 1.2; letter-spacing: -.045em; }
.service-arrow { justify-self: end; width: 42px; height: 42px; border: 1px solid #c9cdc0; border-radius: 50%; display: grid; place-items: center; font-size: 21px; }
.consultation { padding-top: 0; }
.consultation .richtext { max-width: 850px; margin-left: auto; font-size: 19px; }
.seminars { background: linear-gradient(100deg, #e6e5ddcc, #eeeee8ee 60%), url("assets/brand-pattern.svg") left center / 900px 900px; }
.seminars .richtext { margin-top: 42px; columns: 2; column-gap: 64px; }
.seminars .richtext p, .seminars .richtext li { break-inside: avoid; }
.seminars .richtext ol { padding-left: 18px; }
.seminars .richtext a[href="https://www.caesar-beratungsbuero.de/seminarkalender/"] { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 54px; max-width: 100%; margin-top: 16px; padding: 14px 24px; border: 1px solid #ff8000; border-radius: 28px; background: #ff8000; color: #242628; font-size: 15px; font-weight: 600; line-height: 1.5; text-decoration: none; }
.seminars .richtext a[href="https://www.caesar-beratungsbuero.de/seminarkalender/"]::after { content: "↗"; font-size: 20px; line-height: 1; }
.seminars .richtext a[href="https://www.caesar-beratungsbuero.de/seminarkalender/"]:hover { background: #ffa348; border-color: #ffa348; }
.seminars .text-link { margin-top: 32px; }
.news-home .richtext { max-width: 920px; margin-left: auto; }
.news-home .richtext h2, .news-home .richtext h3 { font-size: 28px; }
.news-item { border-top: 1px solid var(--line); }
.news-item:last-of-type { border-bottom: 1px solid var(--line); }
.news-item > summary { display: grid; grid-template-columns: 100px minmax(0, 1fr) 24px; gap: 20px; align-items: start; padding: 28px 0; list-style: none; cursor: pointer; }
.news-item > summary::-webkit-details-marker { display: none; }
.news-item > summary::after { content: "+"; font-size: 25px; line-height: 1; font-weight: 300; color: #687062; text-align: right; }
.news-item[open] > summary::after { content: "−"; }
.news-item > summary:hover .news-title { color: var(--accent-text); }
.news-item .news-date { padding-top: 6px; font-family: "Cascadia Mono", Consolas, monospace; font-size: 10px; }
.news-title { font-size: 21px; line-height: 1.35; letter-spacing: -.035em; color: var(--ink); }
.news-body { padding: 0 44px 32px 120px; font-size: 15px; }
.rss-feeds { margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--line); }
.rss-feeds .rss-intro, .rss-feeds .rss-status { font-size: 14px; color: var(--muted); }
.rss-status:empty { display: none; }
.rss-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.rss-source { display: flex; flex-direction: column; min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #ffffff60; }
.richtext .rss-source h3 { margin: 0 0 18px; font-size: 21px; line-height: 1.3; }
.richtext .rss-items { list-style: none; padding: 0; margin: 0; }
.rss-items li { margin: 0; padding: 14px 0; border-top: 1px solid var(--line); }
.rss-items a { display: block; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.rss-items time { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; }
.richtext .rss-notice { font-size: 13px; line-height: 1.6; color: var(--muted); }
.rss-source-footer { margin-top: auto; padding-top: 18px; font-size: 12px; }
.rss-source a:hover { color: var(--accent-text); }
@media (max-width: 650px) { .rss-grid { grid-template-columns: 1fr; } .rss-source { padding: 20px; } }
.download-item { padding: 22px 0; border-bottom: 1px solid var(--line); }
.download-item a { font-size: 18px; }
.file-size { color: var(--muted); font: 11px "Cascadia Mono", Consolas, monospace; }
.team-person { border-bottom: 1px solid var(--line); padding: 12px 0 32px; }
.team-person h2 { margin-top: 0; }
.team-person p { margin-bottom: 10px; }
.contact-band { padding-block: 90px; background: linear-gradient(105deg, #252a27, #252a27e8), url("assets/brand-signal.svg") right center / 580px auto no-repeat; color: var(--paper); }
.contact-band .container { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.contact-band h2 { font-size: clamp(36px, calc((100vw - var(--sidebar-width)) * .057), 76px); line-height: 1.1; }
.contact-band .eyebrow { color: #c3c9bf; margin-bottom: 24px; }
.contact-band .button { background: var(--paper); border-color: var(--paper); color: var(--ink); flex-shrink: 0; }
.site-footer { padding: 64px 0 24px; background: linear-gradient(90deg, #e5e7ddcc, #eeeee8ed 65%), url("assets/brand-pattern.svg") left center / 960px 960px; }
.footer-top { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: start; gap: 32px; padding-bottom: 58px; }
.footer-top p { font-size: 12px; line-height: 1.8; color: var(--muted); margin: 0; }
.footer-contact { display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.footer-contact a:first-child { display: flex; justify-content: space-between; }
.footer-contact a:last-child { color: var(--muted); font-size: 12px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid var(--line); padding-top: 22px; font-size: 10px; color: var(--muted); }
.footer-bottom > div { display: flex; flex-wrap: wrap; gap: 28px; }
.footer-bottom a { display: inline-flex; min-height: 32px; align-items: center; }
.page-hero { padding: 66px 0 80px; border-bottom: 1px solid var(--line); background: linear-gradient(90deg, #eeeee8 15%, #eeeee888), url("assets/brand-signal.svg") right center / 650px auto no-repeat; }
.breadcrumb { display: flex; gap: 14px; align-items: center; margin-bottom: 48px; color: var(--muted); font-size: 12px; }
.breadcrumb a:hover { text-decoration: underline; }
.page-hero .eyebrow { margin-bottom: 24px; }
.page-hero h1 { font-size: clamp(52px, calc((100vw - var(--sidebar-width)) * .09), 116px); line-height: 1.05; overflow-wrap: anywhere; }
.detail-layout { display: block; }
.detail-content { min-width: 0; max-width: 900px; }
.contact-map { margin-top: 26px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #ffffff60; }
.contact-map iframe { display: block; width: 100%; height: clamp(300px, 45vw, 420px); border: 0; }
.contact-map-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; padding: 18px 20px; font-size: 13px; line-height: 1.6; }
.contact-map-footer > span { flex: 1 1 240px; color: var(--muted); }
.contact-map-footer a { text-decoration: underline; text-underline-offset: 4px; }
.contact-map-footer a:hover { color: var(--accent-text); }
.contact-form { margin-top: 54px; padding-top: 36px; border-top: 1px solid var(--line); }
.contact-form h2 { font-size: 32px; margin-bottom: 18px; }
.contact-form > p { font-size: 14px; line-height: 1.6; color: var(--muted); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 28px; }
.form-grid label { display: flex; flex-direction: column; gap: 9px; font-size: 13px; }
.form-grid input, .form-grid textarea { background: #ffffff60; border: 1px solid #bdc1b5; border-radius: 6px; padding: 13px; min-height: 48px; width: 100%; color: var(--ink); }
.form-grid textarea { resize: vertical; min-height: 160px; }
.full-width { grid-column: 1 / -1; }
.contact-form .button { margin-top: 24px; }
.form-status { margin-top: 18px; font-size: 14px; color: var(--muted); }
.inline-error { max-width: 720px; margin: 100px auto; padding: 32px; line-height: 1.8; }

.gallery-home { border-top: 1px solid var(--line); }
.gallery-layout .detail-content { max-width: none; }
.gallery-preview { margin-top: 70px; }
.gallery-home .gallery-preview { margin-top: 0; }
.gallery-heading { font-size: clamp(27px, 3vw, 42px); line-height: 1.15; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; }
.gallery-card { margin: 0; min-width: 0; }
.gallery-image-link { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #dfe2d7; border-radius: 6px; }
.gallery-image-link img { width: 100%; height: 100%; object-fit: cover; }
.gallery-card-document .gallery-image-link { background: #fff; border-radius: 0; }
.gallery-card-document img { object-fit: contain; opacity: 1; filter: none; mix-blend-mode: normal; transform: none; clip-path: none; mask: none; }
.gallery-card figcaption { display: flex; justify-content: space-between; gap: 18px; padding-top: 14px; font-size: 13px; line-height: 1.5; color: #4e5748; }
.gallery-card figcaption > span:last-child { flex-shrink: 0; font-size: 17px; }
.gallery-image-link:hover + figcaption { color: var(--accent-text); }
.gallery-filter { display: flex; flex-wrap: wrap; gap: 10px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.gallery-filter button { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; border: 1px solid #bdc2b4; background: #eeeee899; border-radius: 24px; padding: 10px 16px; font-size: 12px; }
.gallery-filter button span { font: 10px/1 Consolas, monospace; opacity: .7; }
.gallery-filter button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--white); }
.gallery-filter button:hover:not([aria-pressed="true"]) { background: #e0e3d6; }
.gallery-count { margin: 22px 0 30px; color: var(--muted); font: 11px/1.5 Consolas, monospace; }
body.gallery-open { overflow: hidden; }
.gallery-viewer { padding: 0; border: 1px solid #596351; width: min(1180px, calc(100vw - 40px)); max-width: calc(100vw - 40px); max-height: calc(100dvh - 32px); background: #1e241f; color: #f4f5ec; border-radius: 8px; }
.gallery-viewer::backdrop { background: #131912e8; backdrop-filter: blur(7px); }
.gallery-viewer[open] { display: flex; flex-direction: column; }
.viewer-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 10px 18px 10px 24px; flex-shrink: 0; }
.viewer-toolbar .eyebrow { font-size: 10px; color: #c1c8b8; }
.viewer-close, .viewer-previous, .viewer-next { border: 1px solid #79816c; background: transparent; color: #f3f6e9; border-radius: 50%; width: 44px; height: 44px; padding: 0; font-size: 24px; }
.viewer-close { border-color: transparent; font-size: 30px; }
.viewer-stage { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 14px; align-items: center; padding: 0 16px; min-height: 0; }
.viewer-stage img { display: block; width: 100%; height: min(67dvh, 780px); object-fit: contain; opacity: 1; filter: none; transform: none; mix-blend-mode: normal; clip-path: none; mask: none; }
.viewer-stage button:hover, .viewer-close:hover { background: #414b35; }
.viewer-stage button:disabled { opacity: .3; cursor: default; }
.viewer-caption { padding: 20px 24px 24px; flex-shrink: 0; }
.viewer-caption p { margin: 0 0 14px; font-size: 16px; line-height: 1.4; }
.viewer-caption > div { display: flex; justify-content: space-between; gap: 20px; font-size: 12px; color: #c4cdb9; }
.viewer-original { text-decoration: underline; text-underline-offset: 4px; }
.gallery-viewer :focus-visible { outline-color: #ffb66d; }

@media (min-width: 1100px) and (max-width: 1300px) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 850px) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) {
  .gallery-grid { grid-template-columns: 1fr; gap: 30px; }
  .gallery-preview { margin-top: 50px; }
  .gallery-filter { gap: 8px; }
  .gallery-filter button { font-size: 11px; padding: 9px 12px; }
  .gallery-viewer { width: calc(100vw - 16px); max-width: calc(100vw - 16px); }
  .viewer-toolbar { padding: 8px 10px 8px 16px; }
  .viewer-stage { grid-template-columns: 1fr 1fr; gap: 14px; padding: 0 12px; }
  .viewer-stage img { grid-column: 1 / -1; grid-row: 1; height: 54dvh; }
  .viewer-previous { grid-column: 1; grid-row: 2; justify-self: end; }
  .viewer-next { grid-column: 2; grid-row: 2; }
  .viewer-caption { padding: 18px 16px; }
  .viewer-caption p { font-size: 14px; }
}
@media (max-height: 600px) { .viewer-stage img { height: 45dvh; } .viewer-caption { padding-block: 12px; } }

@media (min-width: 1700px) { .hero h1 { font-size: 172px; } }
@media (min-width: 1100px) and (max-height: 800px) {
  .sidebar-inner { padding-top: 26px; padding-bottom: 18px; }
  .sidebar-brand { width: 194px; }
  .sidebar-tagline { margin-top: 12px; }
  .sidebar-nav { margin-top: 28px; margin-bottom: 24px; }
  .sidebar-nav a { min-height: 40px; }
  .sidebar-contact { padding-top: 18px; }
  .sidebar-legal { margin-top: 18px; }
}
@media (width < 1100px) {
  :root { --sidebar-width: 0px; --header-height: 72px; }
  body.menu-open { overflow: hidden; }
  .mobile-header { display: block; height: var(--header-height); position: sticky; top: 0; z-index: 40; border-bottom: 1px solid #cdd0c3; background: #e8e9e1ee; backdrop-filter: blur(18px); }
  .header-inner { gap: 20px; }
  .mobile-header .brand { width: 112px; }
  .header-contact { margin-left: auto; }
  .menu-toggle { display: block; flex-shrink: 0; margin-left: -7px; }
  .site-sidebar { width: min(320px, calc(100vw - 32px)); transform: translateX(-105%); visibility: hidden; transition: transform .28s ease, visibility .28s; box-shadow: 16px 0 50px #20261a22; }
  .site-sidebar[data-open="true"] { transform: translateX(0); visibility: visible; }
  .sidebar-inner { padding: 60px 26px 24px; }
  .sidebar-brand { width: 224px; }
  .sidebar-nav { margin-top: 26px; }
  .sidebar-close { display: grid; place-items: center; position: absolute; top: 9px; right: 15px; border: 0; background: transparent; width: 44px; height: 44px; font-size: 32px; font-weight: 300; }
  .sidebar-contact a { min-height: 36px; }
  .sidebar-legal a { min-height: 36px; }
}
@media (max-width: 850px) {
  .hero { min-height: min(820px, calc(100svh - var(--header-height))); }
  .hero h1 { font-size: clamp(80px, 13.8vw, 120px); }
  .hero-brand-signal { background-size: 85% auto; background-position: right top; opacity: .6; }
  .intro-grid, .environment-grid { grid-template-columns: 1fr; gap: 38px; }
  .intro-grid .richtext { padding-top: 0; max-width: 650px; }
  .environment-heading { position: static; }
  .environment-heading .section-heading { margin-bottom: 16px; }
  .environment-grid .richtext { max-width: 650px; }
  .seminars .richtext { columns: auto; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-contact { grid-column: 2; }
  .footer-bottom { align-items: start; }
  .footer-bottom > div { gap: 10px 20px; justify-content: end; }
}
@media (max-width: 540px) {
  :root { --gutter: 24px; }
  .header-inner { gap: 12px; }
  .header-contact { padding: 9px 12px; gap: 10px; }
  .mobile-header .brand { width: 96px; }
  .section::before, .technical-bg::before { opacity: .6; }
  .hero { padding-top: 58px; }
  .hero h1 { font-size: clamp(58px, 14.5vw, 80px); }
  .hero-kicker { font-size: 9px; margin-left: 2px; margin-bottom: 34px; }
  .hero-brand-signal { background-size: 440px auto; background-position: calc(100% + 110px) 5%; opacity: .55; mask-image: linear-gradient(90deg, transparent 20%, #000); }
  .hero-copy { margin: 32px 0 56px; flex-direction: column; align-items: start; gap: 25px; }
  .hero-copy p { font-size: 14px; }
  .hero-copy .button { padding: 13px 22px; min-height: 48px; }
  .hero-foot { font-size: 10px; gap: 12px; }
  .hero-foot .eyebrow { font-size: 9px; letter-spacing: .07em; }
  .section-heading { font-size: 42px; }
  .richtext { font-size: 15px; line-height: 1.85; }
  .motion-ready .scroll-scene { height: 180svh; }
  .scene-art > img { object-position: 52% 42%; }
  .scene-caption { left: 28px; right: 24px; bottom: 42px; }
  .scene-caption h2 { font-size: 43px; }
  .scene-caption .eyebrow { font-size: 9px; }
  .scene-index { right: 28px; font-size: 9px; }
  .section-top { align-items: start; flex-direction: column; gap: 22px; }
  .service-row { grid-template-columns: 28px 1fr 32px; gap: 12px; min-height: 100px; }
  .service-row h3 { font-size: 22px; }
  .service-arrow { width: 32px; height: 32px; font-size: 18px; }
  .service-row:hover { padding-inline: 0; }
  .consultation .richtext { font-size: 17px; }
  .contact-band .container { align-items: start; flex-direction: column; }
  .footer-top { grid-template-columns: 1fr; gap: 28px; padding-bottom: 38px; }
  .footer-contact { grid-column: auto; max-width: 300px; }
  .footer-bottom { flex-direction: column; gap: 14px; }
  .footer-bottom > div { justify-content: start; }
  .page-hero { padding: 40px 0 54px; }
  .breadcrumb { margin-bottom: 38px; }
  .page-hero h1 { font-size: 56px; }
  .form-grid { grid-template-columns: 1fr; }
  .richtext td, .richtext th { padding: 12px; }
  .news-item > summary { grid-template-columns: minmax(0, 1fr) 24px; gap: 8px 12px; }
  .news-item .news-date { grid-column: 1; }
  .news-item .news-title { grid-column: 1; font-size: 20px; }
  .news-item > summary::after { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .news-body { padding: 0 0 28px; }
}
@media (max-height: 600px) and (min-width: 541px) {
  .hero { min-height: 640px; }
  .scene-caption h2 { font-size: 42px; }
  .scene-caption { bottom: 28px; }
  .scene-index { top: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation: none !important; }
  .scroll-scene, .motion-ready .scroll-scene { height: auto; }
  .scene-sticky, .motion-ready .scene-sticky { position: relative; top: auto; height: min(720px, 90svh); min-height: 420px; }
  .scene-art { transform: none; border-radius: 0; will-change: auto; }
  .scene-caption { opacity: 1; }
}
@media (max-height: 500px) {
  .motion-ready .scroll-scene { height: auto; }
  .motion-ready .scene-sticky { position: relative; top: auto; height: 480px; }
  .scene-art { transform: none; border-radius: 0; }
  .scene-caption { opacity: 1; }
  .scene-caption h2 { font-size: 38px; }
}
@media print {
  .mobile-header, .site-sidebar, .sidebar-backdrop, .hero-brand-signal, .scroll-scene, .contact-form, .site-footer, .contact-band { display: none; }
  #main, .site-footer { margin-left: 0; background: none; }
  .section::before, .technical-bg::before { display: none; }
  body { background: white; color: black; }
  .section { padding-block: 24px; }
  .container { width: 100%; }
  .hero { min-height: 0; padding-block: 24px; }
  .hero h1 { font-size: 56px; }
  .intro-grid, .environment-grid, .detail-layout { display: block; }
  .richtext { color: black; font-size: 11pt; }
  .hero-foot { display: none; }
}
