/*
Theme Name: David Zehnder Portfolio
Theme URI: https://davidzehnder.com
Author: David Zehnder
Description: A minimal, responsive portfolio theme with masonry, horizontal, vertical and carousel galleries.
Version: 3.5.0
Requires at least: 5.8
Requires PHP: 7.2
Text Domain: david-zehnder-portfolio
*/

:root{--ink:#111;--muted:#777;--line:#dedede;--paper:#fff}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px}button,a{color:inherit;font:inherit}.site-sidebar{position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column;width:290px;padding:44px 38px;overflow-y:auto;background:#fff}.site-title{display:block;margin-bottom:47px;color:inherit;font-size:16px;line-height:1;text-decoration:none;letter-spacing:-.02em}.portfolio-menu,.portfolio-menu ul{list-style:none;margin:0;padding:0}.portfolio-menu a{display:block;max-width:215px;padding:4px 0;font-size:13px;line-height:1.45;text-decoration:none;transition:opacity .18s}.portfolio-menu .current-menu-item>a,.portfolio-menu .current_page_item>a,.portfolio-menu a:hover{opacity:.4}.portfolio-menu .menu-item:last-child{margin-top:12px}.site-main{max-width:1500px;margin-left:290px;padding:80px 6vw 100px 40px}.entry-header{margin:0 0 18px}.entry-title{margin:0;font-size:13px;font-weight:400;letter-spacing:.01em}.entry-content{font-size:16px;line-height:1.65}.entry-content>p{max-width:700px}.entry-content img{max-width:100%;height:auto}.entry-content iframe{max-width:100%;border:0}.gallery-toolbar{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 12px;color:#888}.gallery-toolbar button{display:flex;align-items:center;gap:5px;border:0;padding:0;background:none;cursor:pointer;font-size:10px;letter-spacing:.05em}.gallery-toolbar button.is-active{color:#111}.dz-gallery{width:100%}.dz-gallery figure{margin:0}.dz-gallery img{display:block;width:100%;height:100%;object-fit:contain}.dz-gallery[data-mode=masonry]{columns:3 250px;column-gap:14px}.dz-gallery[data-mode=masonry] figure{margin:0 0 14px;break-inside:avoid}.dz-gallery[data-mode=masonry] img{height:auto}.dz-gallery[data-mode=horizontal]{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory}.dz-gallery[data-mode=horizontal] figure{position:relative;flex:0 0 min(82vw,950px);height:min(72vh,760px);background:#f4f4f4;scroll-snap-align:start}.dz-gallery[data-mode=vertical]{height:min(75vh,800px);overflow-y:auto;scroll-snap-type:y mandatory}.dz-gallery[data-mode=vertical] figure{height:100%;margin:0 0 12px;background:#f4f4f4;scroll-snap-align:start}.dz-gallery[data-mode=carousel]{position:relative;max-width:1050px;height:min(72vh,760px);background:#f4f4f4}.dz-gallery[data-mode=carousel] figure{display:none;width:100%;height:100%}.dz-gallery[data-mode=carousel] figure.is-active{display:block}.carousel-button{position:absolute;top:50%;z-index:3;width:48px;height:64px;border:0;background:rgba(255,255,255,.84);cursor:pointer;transform:translateY(-50%)}.carousel-button.prev{left:0}.carousel-button.next{right:0}.carousel-count{position:absolute;right:0;bottom:0;z-index:3;padding:9px 11px;background:rgba(255,255,255,.9);font-size:11px}.wp-block-embed,.entry-content iframe{width:min(100%,1100px);aspect-ratio:16/9;height:auto}.mobile-header{display:none}.about-page .entry-content{max-width:780px}.about-page .entry-content>p{max-width:none}
@media(max-width:760px){.mobile-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96)}.mobile-header a{text-decoration:none}.menu-toggle{border:0;background:none;font-size:22px;cursor:pointer}.site-sidebar{top:64px;width:100%;padding:23px 20px 40px;transform:translateX(-105%);transition:transform .25s}.site-sidebar.is-open{transform:translateX(0)}.site-title{display:none}.portfolio-menu a{max-width:calc(100vw - 40px);padding:7px 0;font-size:15px}.site-main{margin-left:0;padding:28px 20px 70px}.dz-gallery[data-mode=masonry]{columns:2 135px;column-gap:8px}.dz-gallery[data-mode=masonry] figure{margin-bottom:8px}.gallery-toolbar span{display:none}.dz-gallery[data-mode=horizontal] figure{flex-basis:88vw;height:58vh}.dz-gallery[data-mode=vertical],.dz-gallery[data-mode=carousel]{height:58vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:760px){body.menu-open{overflow:hidden}}
body.lightbox-open{overflow:hidden}.dz-gallery[data-mode=masonry] figure,.dz-gallery[data-mode=masonry] a{cursor:zoom-in}.dz-lightbox{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:48px 72px;background:rgba(0,0,0,.94)}.dz-lightbox.is-open{display:flex}.dz-lightbox figure{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;margin:0}.dz-lightbox img{display:block;max-width:100%;max-height:calc(100vh - 110px);width:auto;height:auto;object-fit:contain}.dz-lightbox figcaption{padding-top:12px;color:#fff;font-size:12px}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;z-index:2;border:0;background:transparent;color:#fff;cursor:pointer}.lightbox-close{top:18px;right:25px;font-size:38px;line-height:1}.lightbox-prev,.lightbox-next{top:50%;width:56px;height:70px;font-size:32px;transform:translateY(-50%)}.lightbox-prev{left:8px}.lightbox-next{right:8px}@media(max-width:760px){.dz-lightbox{padding:56px 40px 40px}.lightbox-prev,.lightbox-next{width:40px}.lightbox-close{right:16px}}
.portfolio-menu>.menu-item-has-children{margin-top:18px}.portfolio-menu>.menu-item-has-children:first-child{margin-top:0}.portfolio-menu>.menu-item-has-children>a{margin-bottom:7px;font-size:12px;letter-spacing:.06em}.portfolio-menu .sub-menu{margin:0 0 16px;padding:0}.portfolio-menu .sub-menu a{padding:3px 0;font-size:13px;letter-spacing:0}.portfolio-menu>.menu-item:last-child{margin-top:20px}
.dz-gallery[data-mode=carousel]{max-width:none;height:min(78vh,900px)}.dz-gallery[data-mode=carousel] .carousel-button{opacity:0;background:rgba(255,255,255,.88);transition:opacity .22s ease}.dz-gallery[data-mode=carousel]:hover .carousel-button,.dz-gallery[data-mode=carousel]:focus-within .carousel-button{opacity:1}.dz-gallery[data-mode=carousel] .carousel-button:hover{background:#fff}.dz-gallery[data-mode=carousel] figure img{transition:opacity .2s ease}@media(hover:none){.dz-gallery[data-mode=carousel] .carousel-button{opacity:.9}}@media(max-width:760px){.dz-gallery[data-mode=carousel]{height:62vh}}
.project-close{position:fixed;top:27px;right:33px;z-index:15;display:grid;place-items:center;width:40px;height:40px;color:#777;font-size:31px;font-weight:200;line-height:1;text-decoration:none;transition:color .18s ease,transform .18s ease}.project-close:hover,.project-close:focus{color:#111;transform:scale(1.06)}@media(max-width:760px){.project-close{display:none}}
.project-layout-below .project-description{max-width:680px;margin-top:38px}.project-description{font-size:16px;line-height:1.65;white-space:pre-line}.project-description-title{margin:0 0 13px;font-size:17px;font-weight:600;line-height:1.35;letter-spacing:.01em;text-transform:none}.project-description p:first-of-type{margin-top:0}.project-description p:last-child{margin-bottom:0}.project-layout-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,310px);gap:clamp(32px,5vw,74px);align-items:start}.project-layout-side .project-description{position:sticky;top:80px}.project-layout-side .entry-content{min-width:0}@media(max-width:1050px){.project-layout-side{display:block}.project-layout-side .project-description{position:static;max-width:680px;margin-top:38px}}@media(max-width:760px){.project-description{font-size:15px}.project-description-title{font-size:16px}.project-layout-below .project-description,.project-layout-side .project-description{margin-top:28px}}
.dz-gallery[data-mode=carousel].auto-carousel figure.is-active{animation:dzFadeIn .8s ease both}.dz-gallery[data-mode=carousel].auto-carousel .carousel-button,.dz-gallery[data-mode=carousel].auto-carousel .carousel-count{display:none!important}@keyframes dzFadeIn{from{opacity:0}to{opacity:1}}
.dz-gallery[data-mode=masonry] figure:has(iframe),.dz-gallery[data-mode=masonry] figure:has(video){display:inline-block;width:100%;cursor:default}.dz-gallery[data-mode=masonry] iframe,.dz-gallery[data-mode=masonry] video{display:block;width:100%;max-width:100%;aspect-ratio:16/9;height:auto;background:#000}
body{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif}.site-title{font-size:20px;font-weight:400;letter-spacing:-.025em}.mobile-header>a{font-size:18px;letter-spacing:-.02em}
.dz-gallery[data-mode=carousel] figure>figcaption{display:none}.carousel-legend{min-height:18px;margin-top:7px;color:#777;font-size:10px;font-weight:400;line-height:1.4;letter-spacing:.025em}.carousel-legend[hidden]{display:block;visibility:hidden}
.sidebar-footer{margin-top:auto;padding-top:40px;color:#888;font-size:10px;font-weight:400;line-height:1.4;letter-spacing:.04em;text-align:left;white-space:nowrap}@media(max-width:760px){.sidebar-footer{margin-top:36px;padding-top:0}}
.portfolio-menu>.menu-item-has-children::after{content:"–";display:block;margin:2px 0 15px;color:#111;font-size:13px;line-height:1}.portfolio-menu>.menu-item-has-children .sub-menu{margin-bottom:7px}
.portfolio-menu a,.portfolio-menu .sub-menu a{font-size:13px}.portfolio-menu>.menu-item-has-children>a{font-size:15px}.portfolio-menu>.menu-item-has-children::after{font-size:13px}@media(max-width:760px){.portfolio-menu a,.portfolio-menu .sub-menu a{font-size:15px}.portfolio-menu>.menu-item-has-children>a{font-size:16px}}
.site-title{letter-spacing:-.01em}.portfolio-menu a{padding-top:5px;padding-bottom:5px;letter-spacing:.015em}.portfolio-menu>.menu-item-has-children>a{letter-spacing:.025em}@media(max-width:760px){.mobile-header>a{letter-spacing:0}.portfolio-menu a{padding-top:8px;padding-bottom:8px}}
.home .site-main{padding-top:44px;padding-right:3vw;padding-bottom:44px}.home .dz-gallery[data-mode=carousel]{height:calc(100vh - 112px);min-height:520px}@media(max-width:760px){.home .site-main{padding-top:22px;padding-bottom:40px}.home .dz-gallery[data-mode=carousel]{height:calc(100svh - 145px);min-height:360px}}
.dz-gallery[data-mode=horizontal] iframe,.dz-gallery[data-mode=horizontal] video,.dz-gallery[data-mode=vertical] iframe,.dz-gallery[data-mode=vertical] video,.dz-gallery[data-mode=carousel] iframe,.dz-gallery[data-mode=carousel] video{display:block;width:100%;height:100%;border:0;background:#000;object-fit:contain}.lightbox-media{display:flex;align-items:center;justify-content:center;width:100%;height:calc(100% - 34px)}.lightbox-media img,.lightbox-media video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.lightbox-media iframe{display:block;width:min(100%,1200px);height:auto;max-height:100%;aspect-ratio:16/9;border:0;background:#000}
.dz-gallery[data-mode=masonry]{width:100%;max-width:920px;columns:4 200px;column-gap:40px}.dz-gallery[data-mode=masonry] figure{margin-bottom:40px}@media(max-width:1100px) and (min-width:761px){.dz-gallery[data-mode=masonry]{max-width:680px;columns:3 200px;column-gap:30px}.dz-gallery[data-mode=masonry] figure{margin-bottom:30px}}@media(max-width:760px){.dz-gallery[data-mode=masonry]{max-width:none;columns:2 135px;column-gap:8px}.dz-gallery[data-mode=masonry] figure{margin-bottom:8px}}
.dz-gallery[data-mode=carousel] .carousel-button{width:46px;height:72px;padding:0;background:transparent;color:#555;font-family:Arial,Helvetica,sans-serif;font-size:45px;font-weight:200;line-height:1;opacity:0;text-shadow:0 0 5px rgba(255,255,255,.9);transition:opacity .2s ease,color .2s ease}.dz-gallery[data-mode=carousel] .carousel-button.prev{left:10px}.dz-gallery[data-mode=carousel] .carousel-button.next{right:10px}.dz-gallery[data-mode=carousel] .carousel-button:hover,.dz-gallery[data-mode=carousel] .carousel-button:focus{background:transparent;color:#111;outline:none}.lightbox-prev,.lightbox-next{font-size:48px;font-weight:200}
.dz-gallery[data-mode=masonry].has-custom-thumb-sizes{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:4px;gap:40px;columns:auto}.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure{grid-column:span 2;margin:0;break-inside:auto}.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure.is-style-thumb-small{grid-column:span 1}.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure.is-style-thumb-large{grid-column:span 4}.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure.is-style-thumb-wide{grid-column:span 6}@media(max-width:1100px) and (min-width:761px){.dz-gallery[data-mode=masonry].has-custom-thumb-sizes{grid-template-columns:repeat(6,minmax(0,1fr));gap:30px}}@media(max-width:760px){.dz-gallery[data-mode=masonry].has-custom-thumb-sizes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure,.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure.is-style-thumb-small{grid-column:span 1}.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure.is-style-thumb-large,.dz-gallery[data-mode=masonry].has-custom-thumb-sizes>figure.is-style-thumb-wide{grid-column:span 2}}
.dz-gallery[data-mode=video]{display:block;width:100%;max-width:1250px}.dz-gallery[data-mode=video]>figure{width:100%;margin:0 0 24px}.dz-gallery[data-mode=video] iframe,.dz-gallery[data-mode=video] video{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;background:#000}.dz-gallery[data-mode=video] img{display:block;width:100%;height:auto;object-fit:contain}.gallery-layout-video .project-description{max-width:760px;margin-top:38px}@media(max-width:760px){.dz-gallery[data-mode=video]>figure{margin-bottom:14px}.gallery-layout-video .project-description{margin-top:28px}}
.project-description{font-family:"Avenir Next",Avenir,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;font-weight:300;line-height:1.75;letter-spacing:.012em}.project-description-title{font-family:inherit;font-size:18px;font-weight:600;line-height:1.35;letter-spacing:.015em}@media(max-width:760px){.project-description{font-size:15px;line-height:1.7}}
.dz-gallery[data-mode=masonry]:not(.has-custom-thumb-sizes){display:block!important}.dz-gallery[data-mode=masonry]:not(.has-custom-thumb-sizes)>figure{display:inline-block!important;width:100%!important;max-width:none!important;vertical-align:top;break-inside:avoid}.dz-gallery[data-mode=masonry]:not(.has-custom-thumb-sizes)>figure img{display:block;width:100%!important;height:auto!important}
.dz-gallery[data-mode=masonry] .gallery-item{float:none!important;width:100%!important;max-width:none!important;margin:0!important}.dz-gallery[data-mode=masonry] .gallery-icon{margin:0}.dz-gallery[data-mode=masonry] br{display:none}
.gallery-layout-video .dz-gallery[data-mode=video],.gallery-layout-video .project-description{width:100%;max-width:780px}.gallery-layout-video .dz-gallery[data-mode=video]>figure{width:100%}
