/* JL Photography — editorial layout and progressive enhancements. */
:root{--jl-paper:var(--wp--preset--color--paper,#f5f1e9);--jl-ink:var(--wp--preset--color--ink,#171714);--jl-line:color-mix(in srgb,currentColor 18%,transparent);--jl-gutter:clamp(22px,5.5vw,90px)}
*{box-sizing:border-box}html{scroll-padding-top:110px}body{margin:0}img{max-width:100%;height:auto}button,a,input,textarea{touch-action:manipulation}a{ text-underline-offset:.22em}button{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid currentColor;outline-offset:5px}h1,h2,h3{overflow-wrap:normal;text-wrap:balance}p{overflow-wrap:break-word}main:focus{outline:none}main{min-height:50vh}.wp-site-blocks>*,.wp-site-blocks>main>*{margin-block-start:0}.wp-block-post-content>*+*{margin-block-start:1.5rem}.wp-block-post-content>.alignfull{margin-block:0}.wp-block-image{margin-bottom:0}.wp-block-image figcaption,.wp-block-gallery figcaption{font-size:.85rem;line-height:1.5}.wp-block-button__link{transition:background .2s,color .2s;min-height:46px;display:inline-flex;align-items:center;justify-content:center}.wp-block-button__link:hover{background:var(--jl-ink);color:var(--jl-paper)}
.jl-site-header{padding:20px var(--jl-gutter);border-bottom:1px solid var(--jl-line);background:var(--jl-paper);position:relative;z-index:30;gap:24px}.jl-brand{font-size:14px;letter-spacing:.19em;text-transform:uppercase;line-height:1.35;white-space:nowrap}.jl-brand a{text-decoration:none}.jl-brand-caption{font-size:9px;letter-spacing:.25em;margin-top:4px!important;text-transform:uppercase}.jl-site-header .wp-block-site-logo img{max-height:48px;width:auto}.jl-site-header .wp-block-navigation{font-size:11px;letter-spacing:.12em;text-transform:uppercase}.jl-site-header .wp-block-navigation-item__content{padding:12px 0}.jl-site-header .wp-block-navigation__container{gap:26px}.jl-site-header .wp-block-navigation-item__content:hover{text-decoration:underline}.wp-block-navigation__responsive-container.is-menu-open{background:var(--jl-paper)!important;color:var(--jl-ink)!important;padding:32px var(--jl-gutter)}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:12px;align-items:flex-start}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-family:Georgia,serif;text-transform:none;font-size:clamp(24px,6vw,40px);letter-spacing:0}.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close{min-width:44px;min-height:44px;justify-content:center;align-items:center}
.jl-eyebrow{font-size:11px;letter-spacing:.23em;text-transform:uppercase;line-height:1.7}.jl-hero.wp-block-cover{min-height:83svh;padding:clamp(48px,7vw,120px) var(--jl-gutter);align-items:flex-end}.jl-hero .wp-block-cover__inner-container{max-width:1440px;margin:0 auto}.jl-hero h1{font-size:clamp(60px,9.2vw,144px);line-height:.93;letter-spacing:-.045em;max-width:1050px;margin:22px 0 30px}.jl-hero .wp-block-button__link,.jl-contact .wp-block-button__link{border-color:currentColor;color:inherit;background:transparent}.jl-hero .wp-block-button__link:hover,.jl-contact .wp-block-button__link:hover{background:var(--jl-paper);color:var(--jl-ink)}.jl-section{padding:clamp(64px,9vw,150px) var(--jl-gutter)}.jl-intro{gap:clamp(32px,8vw,130px)}.jl-intro h2{font-size:clamp(40px,5vw,76px);line-height:1.06;letter-spacing:-.025em}.jl-intro .wp-block-image img{width:100%;height:clamp(400px,65vw,720px);object-fit:cover}.jl-intro p:not(.jl-eyebrow){max-width:510px}.jl-intro .wp-block-buttons{margin-top:32px}.jl-categories{gap:0!important;margin:0}.jl-category.wp-block-cover{min-height:540px;align-items:flex-end;padding:32px 24px}.jl-category p{margin:0;font-size:12px;letter-spacing:.19em;text-transform:uppercase}.jl-category a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.jl-category a::after{content:' ↗';margin-left:12px}.jl-category:hover img{transform:scale(1.025)}.jl-category img{transition:transform .7s}.jl-story-heading{gap:clamp(30px,7vw,110px);align-items:flex-end!important;margin-bottom:48px}.jl-story-heading h2{font-size:clamp(56px,8vw,116px);line-height:.95;letter-spacing:-.035em;margin:16px 0 0}.jl-story-heading p{max-width:560px}.jl-feature-photo img{width:100%;aspect-ratio:16/10;object-fit:cover}.jl-quote{padding:clamp(64px,10vw,160px) var(--jl-gutter);text-align:center}.jl-quote p{font-family:var(--wp--preset--font-family--editorial);font-size:clamp(30px,4.5vw,66px);line-height:1.2;max-width:1000px;margin:0 auto}.jl-contact{padding:clamp(64px,9vw,150px) var(--jl-gutter);background:var(--jl-ink);color:var(--jl-paper)}.jl-contact h2{font-size:clamp(48px,7vw,108px);line-height:1;letter-spacing:-.03em;margin:22px 0 30px}.jl-footer{padding:28px var(--jl-gutter);border-top:1px solid var(--jl-line);font-size:12px}.jl-footer a{display:inline-flex;align-items:center;min-height:44px}.jl-page-heading{padding:clamp(48px,7vw,110px) var(--jl-gutter) 48px}.jl-page-heading h1{font-size:clamp(48px,7vw,104px);line-height:1.05;letter-spacing:-.03em}.jl-page-body{padding:0 var(--jl-gutter) clamp(64px,8vw,120px)}.jl-page-body .wp-block-post-content{max-width:1100px;margin:auto}.jl-lead{font-size:clamp(18px,2.2vw,25px);line-height:1.6}.jl-project-hero img{max-height:85svh;object-fit:cover;width:100%}.jl-archive{padding:0 var(--jl-gutter) 100px}.jl-archive .wp-block-post-template{gap:clamp(32px,4vw,64px)}.jl-archive .wp-block-post-featured-image img{aspect-ratio:4/5;object-fit:cover}.jl-archive .wp-block-post:nth-child(even){padding-top:90px}.jl-archive .wp-block-post-title{font-size:clamp(30px,4vw,52px);line-height:1.1}.jl-archive .wp-block-post-title a{text-decoration:none}.jl-archive .wp-block-post-title a:hover{text-decoration:underline}.jl-archive .wp-block-post-excerpt{font-size:16px}.wp-block-post-terms{font-size:11px;letter-spacing:.13em;text-transform:uppercase}.wp-block-post-terms a{display:inline-block;padding-block:10px}.wp-block-query-pagination{margin-top:48px;gap:24px}.wp-block-query-pagination a,.wp-block-query-pagination span{padding:10px}.jl-term-list{display:flex;flex-wrap:wrap;list-style:none;padding:0;gap:8px 24px}.jl-term-list a{display:inline-block;padding:10px 0}.jl-demo-note{font-size:13px;border-left:2px solid currentColor;padding-left:16px}
/* Native galleries stay useful before JavaScript loads. */
.wp-block-gallery.is-style-jl-editorial.has-nested-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,30px);align-items:start}.wp-block-gallery.is-style-jl-editorial.has-nested-images>figure.wp-block-image{width:100%!important;max-width:none!important;display:block;margin:0}.wp-block-gallery.is-style-jl-editorial.has-nested-images>figure.wp-block-image:nth-child(3n){grid-column:1/-1}.wp-block-gallery.is-style-jl-editorial.has-nested-images>figure.wp-block-image img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}.wp-block-gallery.is-style-jl-editorial.has-nested-images>figure.wp-block-image:nth-child(3n) img{aspect-ratio:16/10}.wp-block-gallery.is-style-jl-editorial figure.wp-block-image figcaption{position:static;background:none;color:inherit;padding:10px 0;max-height:none}.wp-block-gallery.is-style-jl-swipe.has-nested-images{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:20px;scroll-snap-type:x proximity;padding-bottom:18px}.wp-block-gallery.is-style-jl-swipe.has-nested-images>figure.wp-block-image{flex:0 0 72%;width:72%!important;margin:0;scroll-snap-align:start;display:block}.wp-block-gallery.is-style-jl-swipe figure.wp-block-image img{width:100%;height:60svh;object-fit:cover}.jl-image-trigger{border:0;padding:0;margin:0;display:block;width:100%;background:transparent;color:inherit;cursor:zoom-in}.wp-block-gallery a:has(img){cursor:zoom-in}.jl-image-trigger img{display:block}.jl-gallery-dialog{max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;padding:0;border:0;background:#121210;color:#f5f1e9;overflow:hidden}.jl-gallery-dialog::backdrop{background:#121210}.jl-gallery-dialog[open]{display:flex;flex-direction:column}.jl-gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px max(20px,env(safe-area-inset-right)) 14px max(20px,env(safe-area-inset-left));min-height:76px}.jl-gallery-actions{display:flex;gap:8px}.jl-gallery-dialog button{border:1px solid #77776d;background:transparent;color:inherit;min-width:46px;min-height:46px;cursor:pointer;padding:8px 12px}.jl-gallery-dialog button:hover{background:#34342e}.jl-gallery-stage{flex:1;min-height:0;margin:0;display:flex;align-items:center;justify-content:center;position:relative;touch-action:pan-y pinch-zoom;overflow:hidden}.jl-gallery-stage img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}.jl-gallery-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px max(20px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));min-height:80px}.jl-gallery-caption{margin:0;text-align:center;font-size:14px;line-height:1.4;max-width:72ch}.jl-gallery-count{font-size:13px;letter-spacing:.08em;margin:0}.jl-modal-open{overflow:hidden}.jl-gallery-dialog button[hidden]{display:none}
/* An eight-blade iris. It never traps pointer input or hides document content. */
.jl-iris{position:fixed;inset:0;z-index:99999;pointer-events:none;display:none}.jl-iris.is-active{display:block}.jl-iris svg{display:block;width:100%;height:100%}.jl-arriving::before{content:'';position:fixed;inset:0;z-index:99998;background:#171714;pointer-events:none;animation:jl-mask-release 1.2s step-end forwards}@keyframes jl-mask-release{to{opacity:0;visibility:hidden}}
@media(min-width:1000px){.jl-intro>.wp-block-column:first-child{padding-block:40px}}
@media(max-width:900px){.jl-categories{flex-wrap:wrap!important}.jl-categories>.wp-block-column{flex-basis:50%!important;flex-grow:0!important}.jl-category.wp-block-cover{min-height:440px}.jl-site-header .wp-block-navigation__container{gap:18px}}
@media(max-width:781px){.jl-intro,.jl-story-heading{gap:36px}.jl-intro .wp-block-image img{height:65svh;min-height:350px}.jl-story-heading{margin-bottom:30px}.jl-hero.wp-block-cover{min-height:78svh}.jl-hero h1{font-size:clamp(50px,12.5vw,96px)}.jl-categories>.wp-block-column{flex-basis:50%!important}.jl-category.wp-block-cover{min-height:370px;padding:24px 18px}.jl-category p{font-size:10px;letter-spacing:.13em}.jl-archive .wp-block-post-template{grid-template-columns:repeat(2,minmax(0,1fr))}.jl-archive .wp-block-post:nth-child(even){padding-top:48px}}
@media(max-width:600px){.jl-site-header{padding-block:12px}.jl-brand{font-size:12px}.jl-brand-caption{font-size:8px}.jl-hero h1{font-size:clamp(45px,12.5vw,75px)}.jl-hero .jl-eyebrow{font-size:9px;letter-spacing:.15em}.jl-hero.wp-block-cover{min-height:76svh;padding-bottom:52px}.jl-category.wp-block-cover{min-height:310px}.jl-archive .wp-block-post-template{grid-template-columns:1fr}.jl-archive .wp-block-post:nth-child(even){padding-top:0}.jl-gallery-toolbar{min-height:68px;padding-top:10px;padding-bottom:10px}.jl-gallery-bottom{gap:10px}.jl-gallery-caption{font-size:12px}.jl-gallery-dialog button{padding:6px;min-width:44px;min-height:44px}.jl-gallery-actions{gap:6px}.jl-footer{gap:14px}.wp-block-gallery.is-style-jl-swipe.has-nested-images>figure.wp-block-image{flex-basis:88%;width:88%!important}.wp-block-gallery.is-style-jl-swipe figure.wp-block-image img{height:55svh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.jl-iris,.jl-arriving::before{display:none!important}.jl-category:hover img{transform:none}}
@media print{.jl-site-header,.jl-footer,.jl-iris,.jl-gallery-dialog,.wp-block-buttons{display:none!important}.jl-hero.wp-block-cover{min-height:400px}.jl-section{padding:24px 0}}
/* Keep the core mobile dialog inside safe page margins, including WP 7.x rules. */
.jl-site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open{padding:32px var(--jl-gutter)!important}
.jl-site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content{align-items:flex-start!important;padding-top:64px}
.jl-site-header .wp-block-navigation .is-menu-open .wp-block-navigation__container{align-items:flex-start!important;width:100%}
.jl-gallery-shell{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;background:#121210;color:#f5f1e9}
.jl-gallery-shell:fullscreen{width:100vw;height:100dvh}
