/*
Theme Name: Architekt Kähler
Description: Responsives Theme für Architekt Kähler.
Version: 6.9.7.1
Author: LOOP Media – Hanno Köster
Author URI: https://www.loop-media.de
Requires at least: 6.7
Requires PHP: 7.2
Text Domain: kaehler
*/

:root { --kaehler-bg: #050505; --kaehler-surface: #111; --kaehler-text: #b6b6b4; --kaehler-muted: #777; --kaehler-heading: #f0f0ed; --kaehler-line: #2f2f2d; --kaehler-width: 1360px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--kaehler-bg); color: var(--kaehler-text); font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: clamp(1.0625rem, .75vw + .5rem, 1.25rem); line-height: 1.72; }
a { color: inherit; }
img { display: block; height: auto; max-width: 100%; }
.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
.screen-reader-text:focus { clip: auto; clip-path: none; background: #fff; color: #000; height: auto; left: 1rem; padding: .5rem .75rem; top: 1rem; width: auto; z-index: 100; }
.kaehler-shell { margin: 0 auto; width: min(calc(100% - 5rem), var(--kaehler-width)); }

.site-header { background: rgba(5, 5, 5, .96); position: sticky; top: 0; z-index: 20; }
.site-header .kaehler-shell { align-items: center; display: grid; gap: clamp(1.75rem, 3vw, 4rem); grid-template-columns: auto minmax(0, 1fr) auto; min-height: 0; padding: clamp(2.5rem, 3vw, 3.125rem) 0 clamp(1.5rem, 2vw, 2.25rem); }
.site-header__top { display: contents; }
.custom-logo-link { display: block; grid-column: 1; grid-row: 1; width: 300px; }
.header-actions { align-items: center; display: flex; gap: .5rem; grid-column: 3; grid-row: 1; }
.site-search { position: relative; }
.site-search__toggle, .menu-toggle { align-items: center; background: transparent; border: 1px solid transparent; color: #d5d5d1; cursor: pointer; display: inline-flex; height: 44px; justify-content: center; padding: 0; transition: border-color .2s ease, color .2s ease; width: 44px; }
.site-search__toggle:hover, .site-search__toggle:focus-visible, .menu-toggle:hover, .menu-toggle:focus-visible { border-color: #777; color: #fff; outline: none; }
.site-search__toggle:hover, .site-search__toggle:focus-visible { border-color: transparent; color: #fff; }
.site-search__toggle { border: 0; }
.site-search__toggle svg { fill: none; height: 24px; stroke: currentColor; stroke-linecap: round; stroke-width: 1.5; width: 24px; }
.site-search__form { align-items: center; background: #050505; border: 0; box-shadow: 0 .8rem 1.8rem rgba(0, 0, 0, .28); display: flex; left: 0; min-height: clamp(6.5rem, 10vw, 8.5rem); opacity: 0; padding: clamp(1.5rem, 3vw, 2.5rem) max(2.5rem, calc((100vw - var(--kaehler-width)) / 2)); pointer-events: none; position: fixed; right: 0; top: 0; transform: translateY(-100%); transition: opacity .3s ease, transform .3s cubic-bezier(.22, .61, .36, 1), visibility .3s ease; visibility: hidden; z-index: 110; }
.site-search__form.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
.site-search__form label { display: block; margin: 0 auto; max-width: 900px; width: calc(100% - 4rem); }
.site-search__form input { background: transparent; border: 0; border-bottom: 1px solid rgba(235, 235, 228, .38); border-radius: 0; color: #f0f0ed; font: inherit; font-size: clamp(1.125rem, 1.25vw, 1.5rem); height: 2.8rem; outline: none; padding: .2rem 0; width: 100%; }
.site-search__form input::placeholder { color: #777; opacity: 1; }
.site-search__form input:focus-visible { border-bottom-color: #fff; box-shadow: 0 1px 0 #fff; outline: none; }
.site-search__close { align-items: center; background: transparent; border: 0; color: #bbb; cursor: pointer; display: inline-flex; height: 2.75rem; justify-content: center; padding: 0; position: absolute; right: max(2.5rem, calc((100vw - var(--kaehler-width)) / 2)); top: 50%; transform: translateY(-50%); width: 2.75rem; }
.site-search__close span, .site-search__close span::after { background: currentColor; content: ''; display: block; height: 1px; position: absolute; width: 21px; }
.site-search__close span { transform: rotate(45deg); }
.site-search__close span::after { transform: rotate(90deg); }
.site-search__close:hover, .site-search__close:focus-visible { color: #fff; outline: none; }
.menu-toggle { display: none; }
.menu-toggle { border: 0; }
.menu-toggle:hover, .menu-toggle:focus-visible { border-color: transparent; color: #fff; }
.menu-toggle__icon, .menu-toggle__icon::before, .menu-toggle__icon::after { background: currentColor; content: ''; display: block; height: 1px; position: relative; width: 32px; }
.menu-toggle__icon::before { position: absolute; top: -9px; }
.menu-toggle__icon::after { position: absolute; top: 9px; }
.primary-navigation { grid-column: 2; grid-row: 1; min-width: 0; }
.primary-navigation > .menu { align-items: center; display: flex; gap: clamp(.25rem, 1vw, 1.1rem); justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.primary-navigation li { margin: 0; }
.primary-navigation a { color: #c9c9c5; display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 300; letter-spacing: .065em; padding: .75rem .25rem; text-decoration: none; text-transform: uppercase; transition: color .2s ease; white-space: nowrap; }
.primary-navigation > .menu > li > a:hover, .primary-navigation > .menu > li > a:focus-visible, .primary-navigation > .menu > li.current-menu-item > a, .primary-navigation > .menu > li.current-menu-ancestor > .primary-navigation__project-trigger > .project-submenu-toggle { color: #fff; outline: none; }
.primary-navigation__project-trigger { align-items: center; display: flex; }
.project-submenu-toggle { align-items: center; background: transparent; border: 0; color: #c9c9c5; cursor: pointer; display: inline-flex; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 300; gap: .35rem; letter-spacing: .065em; padding: .75rem .25rem; text-transform: uppercase; transition: color .2s ease; }
.project-submenu-toggle__chevron { border-bottom: 1px solid currentColor; border-right: 1px solid currentColor; height: 6px; margin-top: -.2rem; transform: rotate(45deg); width: 6px; }
.menu-item--projects:hover .project-submenu-toggle, .menu-item--projects:focus-within .project-submenu-toggle, .menu-item--projects.is-open .project-submenu-toggle { color: #fff; outline: none; }
.primary-navigation .sub-menu { background: #171717; box-shadow: 0 1.2rem 2.8rem rgba(0, 0, 0, .35); left: -.9rem; list-style: none; margin: 0; min-width: 245px; opacity: 0; padding: .8rem .9rem; pointer-events: none; position: absolute; top: 100%; transform: translateY(-6px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; visibility: hidden; z-index: 30; }
.menu-item--projects { position: relative; }
.menu-item--projects:hover > .sub-menu, .menu-item--projects:focus-within > .sub-menu, .menu-item--projects.is-open > .sub-menu { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
.primary-navigation .sub-menu a { font-size: clamp(.9375rem, .35vw + .7rem, 1.0625rem); letter-spacing: .04em; padding: .7rem .55rem; text-transform: none; white-space: normal; }
.primary-navigation .sub-menu a:hover, .primary-navigation .sub-menu a:focus-visible { background: rgba(255, 255, 255, .06); color: #fff; }
.primary-navigation .sub-menu .current-menu-item > a, .primary-navigation .sub-menu .current-menu-ancestor > a { color: #fff; }

.site-main { padding: clamp(2rem, 4vw, 4.5rem) 0 clamp(3rem, 7vw, 7rem); }
.home .site-main { padding-top: clamp(.75rem, 1.7vw, 1.5rem); }
.home-hero { position: relative; }
.home-slider { aspect-ratio: 16 / 8; background: #111; max-height: 680px; min-height: 380px; overflow: hidden; position: relative; }
.home-slider::after { background: linear-gradient(180deg, transparent 60%, rgba(0, 0, 0, .38)); content: ''; inset: 0; pointer-events: none; position: absolute; }
.home-slider__slide { inset: 0; opacity: 0; position: absolute; transition: opacity 2.2s ease-in-out; }
.home-slider__slide.is-active { opacity: 1; }
.home-slider__slide img { height: 100%; object-fit: cover; width: 100%; }
.home-slider__controls { bottom: 1.25rem; display: flex; gap: .5rem; position: absolute; right: 1.25rem; z-index: 2; }
.home-slider__control { background: rgba(0, 0, 0, .5); border: 1px solid rgba(255, 255, 255, .8); border-radius: 100%; cursor: pointer; height: .7rem; padding: 0; transition: background-color .2s ease; width: .7rem; }
.home-slider__control[aria-current='true'] { background: #fff; }
.home-slider__control:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.site-footer { background: #0a0a0a; border-top: 1px solid var(--kaehler-line); color: #999; font-size: clamp(1rem, .8vw + .45rem, 1.1875rem); line-height: 1.7; padding: clamp(3.5rem, 7vw, 6rem) 0 1.5rem; }
.site-footer__grid { display: grid; gap: clamp(2.5rem, 6vw, 7rem); grid-template-columns: 1.25fr 1fr 1fr; }
.site-footer__column h2 { color: #deded9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: clamp(1rem, .65vw + .55rem, 1.125rem); font-weight: 400; letter-spacing: .1em; margin: 0 0 1.35rem; text-transform: uppercase; }
.site-footer__column p { margin: 0 0 1.3rem; }
.site-footer__column ul { list-style: none; margin: 0; padding: 0; }
.site-footer__column li + li { margin-top: .55rem; }
.site-footer a { color: #aaa; text-decoration: none; transition: color .2s ease; }
.site-footer a:hover, .site-footer a:focus-visible { color: #fff; outline: none; }
.site-footer .current-menu-item > a, .site-footer .current-menu-ancestor > a { color: #fff; }
.site-footer__copyright { align-items: center; border-top: 1px solid var(--kaehler-line); color: #666; display: flex; font-size: clamp(.75rem, .35vw + .55rem, .875rem); justify-content: space-between; letter-spacing: .09em; margin: clamp(3rem, 5vw, 4.5rem) 0 0; padding-top: 1.35rem; width: 100%; }
.site-footer__copyright a { color: inherit; text-align: right; }

.page-layout, .project-layout { display: grid; gap: clamp(2.5rem, 5vw, 5rem); grid-template-columns: minmax(0, 3fr) minmax(250px, 1fr); }
.page-layout--full { grid-template-columns: minmax(0, 1fr); }
.error-404 { align-items: start; display: grid; min-height: min(52vh, 34rem); padding: clamp(.5rem, 2vw, 2rem) 0; }
.error-404__content { border-left: 1px solid var(--kaehler-line); max-width: 44rem; padding-left: clamp(1.5rem, 4vw, 4rem); }
.error-404 p.error-404__number { color: #666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: clamp(5rem, 15vw, 10rem); font-weight: 200; letter-spacing: -.07em; line-height: .8; margin: 0 0 clamp(3.25rem, 5vw, 4.5rem); }
.error-404 h1 { color: var(--kaehler-heading); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 300; letter-spacing: .035em; line-height: 1.15; margin: 0 0 1.15rem; text-transform: uppercase; }
.error-404 p { margin: 0; max-width: 32rem; }
.error-404__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.25rem; }
.error-404__actions a { border: 1px solid #666; color: var(--kaehler-heading); font-size: .85rem; letter-spacing: .05em; padding: .7rem 1rem; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.error-404__actions a:hover, .error-404__actions a:focus-visible { background: #f0f0ed; border-color: #f0f0ed; color: #050505; outline: none; }
.entry-header h1, .project-sidebar h2, .project-card h2 { color: var(--kaehler-heading); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: 300; letter-spacing: .035em; line-height: 1.14; margin: 0 0 1.35rem; text-transform: uppercase; }
.entry-header h1 { font-size: clamp(2.5rem, 3vw + .5rem, 3.5rem); }
.project-sidebar h2 { font-size: clamp(1.25rem, 1vw + .55rem, 1.75rem); }
.project-card h2 { font-size: clamp(1.75rem, 1.55vw + .7rem, 2.25rem); }
.entry-content { max-width: 46rem; }
.entry-content p { margin: 0 0 1.5rem; }
.page-layout--full .entry-content,
.page-layout--full .entry-content p { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 300; line-height: 1.6; }
.page-layout--full .entry-content strong { font-weight: 400; }
.page-layout--full .entry-content h1,
.page-layout--full .entry-content h2,
.page-layout--full .entry-content h3,
.page-layout--full .entry-content h4,
.page-layout--full .entry-content h5,
.page-layout--full .entry-content h6 { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: 300; letter-spacing: .025em; }
.page-id-37 .entry-content { max-width: 54rem; }
.page-id-35 .entry-content > h2,
.page-id-39 .entry-content > h2 { color: var(--kaehler-heading); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: clamp(1.1rem, .9vw + .65rem, 1.35rem); font-weight: 400; letter-spacing: .085em; line-height: 1.25; margin: clamp(3rem, 6vw, 4.5rem) 0 1.15rem; text-transform: uppercase; }
.page-id-35 .entry-content > h2:first-child,
.page-id-39 .entry-content > h2:first-child { margin-top: 0; }
.page-id-35 .entry-content > h3,
.page-id-39 .entry-content > h3 { color: var(--kaehler-heading); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1rem; font-weight: 400; letter-spacing: .05em; line-height: 1.35; margin: 2rem 0 .6rem; }
.page-id-39 .entry-content > h4 { color: var(--kaehler-heading); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1rem; font-weight: 400; letter-spacing: .025em; line-height: 1.45; margin: 1.6rem 0 .6rem; }
.page-id-35 .entry-content > p,
.page-id-39 .entry-content > p { margin-bottom: 1.15rem; }
.page-id-35 .entry-content > ul,
.page-id-39 .entry-content > ul { margin: .3rem 0 1.35rem; padding-left: 1.2rem; }
.page-id-35 .entry-content > ul li,
.page-id-39 .entry-content > ul li { margin: .35rem 0; padding-left: .2rem; }
.page-layout--full .entry-content .about-profile { border-bottom: 1px solid var(--kaehler-line); margin: 0 0 clamp(2.75rem, 5vw, 4rem); padding: 0 0 clamp(2.25rem, 4vw, 3.25rem); }
.page-layout--full .entry-content .about-profile__name { color: var(--kaehler-heading); font-size: clamp(1.5rem, 2vw, 2rem); font-weight: 300; letter-spacing: .035em; line-height: 1.25; margin: 0 0 .7rem; }
.page-layout--full .entry-content .about-profile p { margin: 0; }
.page-layout--full .entry-content .about-section { margin-top: clamp(2.5rem, 5vw, 4rem); }
.page-layout--full .entry-content .about-section h2 { color: var(--kaehler-heading); font-size: clamp(1.1rem, .9vw + .65rem, 1.35rem); font-weight: 400; letter-spacing: .085em; line-height: 1.25; margin: 0 0 1.15rem; text-transform: uppercase; }
.page-layout--full .entry-content .about-section h3 { color: var(--kaehler-heading); font-size: 1rem; font-weight: 400; letter-spacing: .05em; line-height: 1.35; margin: 1.6rem 0 .6rem; }
.page-layout--full .entry-content .about-section p { margin: 0; }
.page-layout--full .entry-content .about-section p + p { margin-top: .45rem; }
.page-layout--full .entry-content .about-section ul { margin: 0; padding-left: 1.2rem; }
.page-layout--full .entry-content .about-section li { margin: .35rem 0; padding-left: .2rem; }
.entry-content .has-text-align-justify,
.entry-content [style*="text-align: justify"],
.entry-content [style*="text-align:justify"] { text-align: left !important; }
.entry-content img { border: 1px solid #4b4b48; margin: 1.5rem 0; }
.project-sidebar { border-left: 1px solid var(--kaehler-line); padding-left: clamp(1.5rem, 3vw, 3rem); }
.project-sidebar ul { list-style: none; margin: 0; padding: 0; }
.project-sidebar > ul > li { margin: 1.5rem 0 0; }
.project-sidebar > ul > li:first-child { margin-top: 0; }
.project-sidebar > ul > li > a { color: #d1d1cd; font-weight: 400; }
.project-sidebar > ul > li.current-menu-item > a, .project-sidebar > ul > li.current-menu-ancestor > a, .project-sidebar .current-menu-item > a, .project-sidebar .current-menu-ancestor > a { color: #fff; }
.project-sidebar li { position: relative; }
.project-sidebar li::before { color: #777; content: '•'; left: 0; position: absolute; text-align: center; top: 0; width: .8rem; }
.project-sidebar li > a { display: block; padding-left: 1.35rem; }
.site-main .project-sidebar > .project-sidebar__menu > li > .sub-menu { list-style: none !important; margin: .8rem 0 0 42px !important; padding-left: 0 !important; }
.site-main .project-sidebar .sub-menu li { font-size: .9em; line-height: 1.45; margin: .42rem 0; }
.site-main .project-sidebar .sub-menu .sub-menu { margin-left: 42px !important; }
.project-sidebar a { text-decoration: none; }
.project-sidebar a:hover, .project-sidebar a:focus-visible { color: #fff; outline: none; text-decoration: none; }
.project-grid { display: grid; gap: clamp(2rem, 3vw, 3.25rem); grid-template-columns: minmax(0, 1fr); }
.project-card { display: flex; flex-direction: column; min-width: 0; }
.project-card__image { aspect-ratio: 3.3 / 1; border: 1px solid #444; display: block; overflow: hidden; width: 100%; }
.project-card__image img { height: 100%; object-fit: cover; object-position: center; transition: transform .5s ease; width: 100%; }
.project-card:hover .project-card__image img { transform: scale(1.025); }
.project-card:hover h2, .project-card:focus-within h2 { color: #fff; }
.project-card__content { padding-top: 1rem; }
.project-card h2 { font-size: 20px; line-height: 1.2; margin-bottom: .55rem; }
.project-card p { font-size: 1rem; line-height: 1.55; margin: 0; }
.project-card a { text-decoration: none; }
.project-card a:hover h2, .project-card a:focus-visible h2 { color: #fff; text-decoration: none; }
.project-featured-image { border: 1px solid #4b4b48; margin: 0 0 1.8rem; }
.project-location { font-style: italic; margin-bottom: 2rem; }
.project-gallery { display: grid; gap: 1.2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2.5rem; }
.project-gallery img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.entry-content .wp-block-gallery { gap: 1.2rem; margin: 2.5rem 0; }
.entry-content .wp-block-gallery img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.single-portfolio .entry-header { margin-bottom: clamp(1.4rem, 2.5vw, 2.5rem); }
.single-portfolio .entry-header h1 { font-size: 28px; line-height: 1.15; margin: 0; }
.project-layout > .single-portfolio + .project-sidebar h2 { font-size: 22px; line-height: 1.2; }
.project-layout > .single-portfolio + .project-sidebar a { font-size: inherit; }
.single-portfolio .entry-content,
.single-portfolio .entry-content p { font-size: 18px; line-height: 1.6; }
.single-portfolio .project-featured-image { border: 0; margin: 0 0 clamp(2rem, 4vw, 3.75rem); overflow: hidden; }
.single-portfolio .project-featured-image img { border: 0; margin: 0; width: 100%; }
.single-portfolio .entry-content { max-width: none; }
.single-portfolio .entry-content > p,
.single-portfolio .project-text-section { margin: 0 0 1.5rem; max-width: 46rem; }
.single-portfolio .project-text-label { color: var(--kaehler-heading); display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: .9em; font-weight: 400; letter-spacing: .06em; margin-bottom: 1rem; text-transform: uppercase; }
.single-portfolio .project-text-label__content { display: block; }
.single-portfolio .project-text-label__content + .project-text-label__content { margin-top: 1rem; }
.single-portfolio .project-text-list { margin: 1rem 0 0; padding-left: 1.3rem; }
.single-portfolio .project-text-list li { margin: .35rem 0; padding-left: .15rem; }
.single-portfolio .entry-content > * + * { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.single-portfolio .entry-content .gallery,
.single-portfolio .entry-content .wp-block-gallery,
.single-portfolio .project-gallery { display: grid !important; gap: clamp(.8rem, 1.5vw, 1.4rem); grid-template-columns: repeat(3, minmax(0, 1fr)) !important; margin: clamp(2.5rem, 5vw, 4.5rem) 0; }
.single-portfolio .entry-content .gallery:has(> .gallery-item:nth-of-type(4):last-of-type) > .gallery-item:nth-of-type(3),
.single-portfolio .entry-content .wp-block-gallery:has(> figure:nth-child(4):last-child) > figure:nth-child(3),
.single-portfolio .project-gallery:has(> :nth-child(4):last-child) > :nth-child(3) { grid-column-start: 1 !important; }
.single-portfolio .entry-content .gallery > br { display: none !important; }
.single-portfolio .entry-content .gallery-item,
.single-portfolio .entry-content .wp-block-gallery > figure,
.single-portfolio .entry-content .wp-block-gallery > .wp-block-image,
.single-portfolio .project-gallery > * { flex: none !important; float: none !important; grid-column: auto !important; margin: 0 !important; max-width: none !important; min-width: 0 !important; width: auto !important; }
.single-portfolio .entry-content .gallery-icon,
.single-portfolio .entry-content .wp-block-gallery > figure,
.single-portfolio .project-gallery > * { border: 1px solid rgba(255, 255, 255, .35); display: block; height: 100%; overflow: hidden; transition: border-color .25s ease; }
.single-portfolio .entry-content .gallery-item .gallery-icon,
.single-portfolio .entry-content .wp-block-gallery > figure,
.single-portfolio .project-gallery > * { border-color: rgba(255, 255, 255, .30) !important; border-width: 1px !important; box-shadow: none !important; }
.single-portfolio .entry-content .gallery-item .gallery-icon > a,
.single-portfolio .entry-content .gallery-item .gallery-icon img,
.single-portfolio .entry-content .wp-block-gallery > figure > *,
.single-portfolio .entry-content .wp-block-gallery > figure img,
.single-portfolio .project-gallery > * > * { border: 0 !important; box-shadow: none !important; }
.single-portfolio .entry-content .gallery img,
.single-portfolio .entry-content .wp-block-gallery img,
.single-portfolio .project-gallery img { aspect-ratio: 4 / 3; border: 0; cursor: zoom-in; height: 100%; margin: 0; object-fit: cover; transition: transform .35s ease; width: 100%; }
.single-portfolio .entry-content .gallery img:hover,
.single-portfolio .entry-content .gallery img:focus-visible,
.single-portfolio .entry-content .wp-block-gallery img:hover,
.single-portfolio .entry-content .wp-block-gallery img:focus-visible,
.single-portfolio .project-gallery img:hover,
.single-portfolio .project-gallery img:focus-visible { outline: none; transform: scale(1.025); }
.single-portfolio .entry-content .gallery-item:hover .gallery-icon,
.single-portfolio .entry-content .gallery-item:focus-within .gallery-icon,
.single-portfolio .entry-content .wp-block-gallery > figure:hover,
.single-portfolio .entry-content .wp-block-gallery > figure:focus-within,
.single-portfolio .project-gallery > *:hover,
.single-portfolio .project-gallery > *:focus-within { border-color: rgba(255, 255, 255, .45) !important; }
.single-portfolio .entry-content .gallery img:focus-visible,
.single-portfolio .entry-content .wp-block-gallery img:focus-visible,
.single-portfolio .project-gallery img:focus-visible { box-shadow: none; }
.project-lightbox { align-items: center; background: rgba(0, 0, 0, .94); display: flex; inset: 0; justify-content: center; opacity: 0; padding: clamp(1.5rem, 5vw, 5rem); pointer-events: none; position: fixed; transition: opacity .2s ease, visibility .2s ease; visibility: hidden; z-index: 120; }
.project-lightbox.is-open { opacity: 1; pointer-events: auto; visibility: visible; }
.project-lightbox__content { align-items: center; display: flex; height: 80vh; justify-content: center; max-width: min(100%, var(--kaehler-width)); position: relative; width: min(100%, var(--kaehler-width)); }
.project-lightbox__image { height: 100%; max-height: 80vh; max-width: 100%; object-fit: contain; transition: opacity .2s ease; width: 100%; }
.project-lightbox__image.is-changing { opacity: .15; }
.project-lightbox__close,
.project-lightbox__previous,
.project-lightbox__next { align-items: center; background: rgba(0, 0, 0, .55); border: 0; color: #fff; cursor: pointer; display: inline-flex; height: 3rem; justify-content: center; line-height: 1; padding: 0; position: absolute; width: 3rem; z-index: 2; }
.project-lightbox__close { font-size: 2rem; right: 0; top: 0; }
.project-lightbox__previous,
.project-lightbox__next { font-size: 2.5rem; top: 50%; transform: translateY(-50%); }
.project-lightbox__previous { left: 0; }
.project-lightbox__next { right: 0; }
.project-lightbox__close:hover,
.project-lightbox__close:focus-visible,
.project-lightbox__previous:hover,
.project-lightbox__previous:focus-visible,
.project-lightbox__next:hover,
.project-lightbox__next:focus-visible { background: rgba(0, 0, 0, .55); color: #fff; outline: 1px solid rgba(255, 255, 255, .7); outline-offset: 3px; }
body.has-project-lightbox { overflow: hidden; }
.has-motion .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s cubic-bezier(.22, .61, .36, 1); }
.has-motion .reveal.is-revealed { opacity: 1; transform: translateY(0); }
.has-motion .project-card.reveal:nth-child(2n) { transition-delay: .08s; }
.has-motion .page-layout--full .entry-content.reveal { transform: none; transition: opacity .45s ease .08s; }
.has-motion .site-footer.reveal { transition-delay: 0s; }
.kaehler-demo-note { border-left: 2px solid #777; color: #aaa; font-size: .9rem; margin: 0 0 2rem; padding-left: .9rem; }

@media (max-width: 1024px) { .kaehler-shell { width: min(calc(100% - 3rem), var(--kaehler-width)); } .site-header .kaehler-shell { display: block; min-height: 0; padding: clamp(1.75rem, 4vw, 2.25rem) 0 clamp(1.25rem, 2.5vw, 1.75rem); } .site-header__top { align-items: center; display: flex; justify-content: space-between; } .custom-logo-link { width: min(270px, 42vw); } .header-actions { gap: .3rem; } .menu-toggle { display: inline-flex; } .primary-navigation { margin-top: .9rem; } .primary-navigation > .menu { background: #121212; display: none; gap: 0; padding: .55rem 1.1rem; } .primary-navigation.is-open > .menu { display: block; } .primary-navigation > .menu > li { border-bottom: 1px solid rgba(255, 255, 255, .09); } .primary-navigation > .menu > li:last-child { border-bottom: 0; } .primary-navigation a, .project-submenu-toggle { font-size: 1rem; line-height: 1.72; } .primary-navigation a { padding: .85rem 0; } .primary-navigation__project-trigger { justify-content: space-between; } .project-submenu-toggle { justify-content: space-between; margin-right: -.15rem; width: 100%; } .primary-navigation .sub-menu { background: transparent; box-shadow: none; display: none; opacity: 1; padding: 0 0 .45rem .8rem; pointer-events: auto; position: static; transform: none; visibility: visible; } .menu-item--projects:hover > .sub-menu, .menu-item--projects:focus-within > .sub-menu, .menu-item--projects.is-open > .sub-menu { display: block; } .primary-navigation .sub-menu a { color: #aaa; font-size: .9375rem; padding: .55rem 0; } .project-layout { grid-template-columns: 1fr; gap: 2.5rem; } .project-layout .project-sidebar { border-left: 0; border-top: 1px solid var(--kaehler-line); padding: 2rem 0 0; } .site-search__close { right: 1.5rem; } }
@media (max-width: 1024px) { .primary-navigation > .menu { background: transparent; padding: .35rem 0; } .primary-navigation > .menu > li { border-bottom: 0; } }
@media (max-width: 600px) { .site-search__form { min-height: 6rem; padding: 1.25rem 1.5rem; } .site-search__form label { width: calc(100% - 3.25rem); } .site-search__close { right: 1rem; } }
@media (prefers-reduced-motion: reduce) { .site-search__form { transition: none; } }
@media (max-width: 760px) { .kaehler-shell { width: min(calc(100% - 2rem), var(--kaehler-width)); } body { font-size: 1rem; } .home-slider { min-height: 320px; } .page-layout, .project-layout { grid-template-columns: 1fr; } .project-sidebar { border-left: 0; border-top: 1px solid var(--kaehler-line); padding: 1.8rem 0 0; } .project-grid { grid-template-columns: 1fr; } .site-footer__grid { gap: 2.5rem; grid-template-columns: 1fr 1fr; } .site-footer__column:first-child { grid-column: 1 / -1; } .site-search__close { right: 1rem; } }
@media (max-width: 600px) { .kaehler-shell { width: min(calc(100% - 2.5rem), var(--kaehler-width)); } .site-header .kaehler-shell { padding: 1.5rem 0 1rem; } .custom-logo-link { width: min(235px, 63vw); } .home-slider { aspect-ratio: 4 / 3; min-height: 0; } .home-slider__controls { bottom: .8rem; right: .8rem; } .site-main { padding: 1.5rem 0 3rem; } .site-footer { font-size: 1rem; padding-top: 3rem; } .site-footer__grid { grid-template-columns: 1fr; } .site-footer__column:first-child { grid-column: auto; } .site-footer__copyright { align-items: flex-start; flex-direction: column; gap: .6rem; margin-top: 2.75rem; } .site-footer__copyright a { text-align: left; } .entry-header h1 { font-size: clamp(2rem, 8vw, 2.75rem); } .single-portfolio .entry-header h1 { font-size: 24px; } .project-layout > .single-portfolio + .project-sidebar h2 { font-size: 20px; } .project-layout > .single-portfolio + .project-sidebar a { font-size: 16px; } .single-portfolio .entry-content, .single-portfolio .entry-content p, .page-layout--full .entry-content, .page-layout--full .entry-content p { font-size: 16px; } .single-portfolio .entry-content .gallery, .single-portfolio .entry-content .wp-block-gallery, .single-portfolio .project-gallery { grid-template-columns: 1fr !important; } .project-card h2 { font-size: clamp(1.5rem, 6vw, 2rem); } .project-gallery { gap: .7rem; } .error-404 { min-height: 42vh; padding: .5rem 0; } .error-404__content { padding-left: 1.25rem; } }
@media (max-width: 600px) { .project-lightbox { padding: 1rem; } .project-lightbox__content { height: 80vh; } .project-lightbox__close, .project-lightbox__previous, .project-lightbox__next { height: 2.5rem; width: 2.5rem; } .project-lightbox__previous, .project-lightbox__next { font-size: 2rem; } }
@media (min-width: 601px) and (max-width: 1024px) { .single-portfolio .entry-content .gallery, .single-portfolio .entry-content .wp-block-gallery, .single-portfolio .project-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (min-width: 601px) and (max-width: 1024px) { .single-portfolio .entry-header h1 { font-size: 26px; } .project-layout > .single-portfolio + .project-sidebar h2 { font-size: 20px; } .project-layout > .single-portfolio + .project-sidebar a { font-size: 17px; } .single-portfolio .entry-content, .single-portfolio .entry-content p, .page-layout--full .entry-content, .page-layout--full .entry-content p { font-size: 17px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } .single-portfolio .entry-content .gallery img, .single-portfolio .entry-content .wp-block-gallery img, .single-portfolio .project-gallery img, .project-lightbox { transition: none; } }
.site-main h1,
.site-main h2 { font-size: 24px; line-height: 1.25; }
.site-main .project-card h2 { font-size: 20px; line-height: 1.2; }
.site-main .entry-header h1 { font-size: 24px; line-height: 1.25; }
.site-main .project-layout .project-sidebar h2 { font-size: 22px; line-height: 1.2; }
.site-main h3 { font-size: 21px; line-height: 1.25; }
.site-main h4,
.site-main h5,
.site-main h6 { font-size: 18px; line-height: 1.25; }
@media (max-width: 600px) { .site-main h1, .site-main h2, .site-main .entry-header h1 { font-size: 22px; } .site-main .project-layout .project-sidebar h2 { font-size: 20px; } .site-main h3 { font-size: 20px; } .site-main h4, .site-main h5, .site-main h6 { font-size: 17px; } }
