/*
Theme Name: Photosolve
Theme URI: https://photosolve.com
Description: Hands-on camera gear and imaging journal. Child theme built on Sydney for Photosolve.
Author: Photosolve Editorial
Template: sydney
Version: 1.0.0
Text Domain: photosolve
*/

:root{
--pso-paper:#f3f4f6;
--pso-paper-2:#e9ebef;
--pso-paper-3:#ffffff;
--pso-line:#d4d8df;
--pso-line-2:#c2c8d1;
--pso-ink:#1d2127;
--pso-ink-2:#454d59;
--pso-ink-3:#5f6671;
--pso-teal:#0a6a73;
--pso-teal-deep:#085159;
--pso-teal-bright:#23b7c4;
--pso-dark:#14171c;
--pso-dark-2:#1b2026;
--pso-dark-3:#242a33;
--pso-on-dark:#e8ebf0;
--pso-on-dark-2:#aab2bf;
--pso-on-dark-3:#79828f;
--pso-head:"Bricolage Grotesque","Source Sans 3",sans-serif;
--pso-body:"Source Sans 3",system-ui,sans-serif;
--pso-mono:"Spline Sans Mono",ui-monospace,monospace;
--pso-max:1264px;
--pso-pad:28px;
--pso-rail:336px;
--pso-gap:52px;
--pso-radius:3px;
--pso-radius-lg:6px;
}

*,*::before,*::after{box-sizing:border-box;}

body.photosolve{
margin:0;
background:var(--pso-paper);
color:var(--pso-ink);
font-family:var(--pso-body);
font-size:18px;
line-height:1.72;
-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility;
}

.photosolve h1,.photosolve h2,.photosolve h3,.photosolve h4{
font-family:var(--pso-head);
color:var(--pso-ink);
font-weight:700;
line-height:1.16;
letter-spacing:-0.012em;
margin:0 0 0.5em;
}

.photosolve a{color:var(--pso-teal);text-decoration:none;}
.photosolve a:hover{color:var(--pso-teal-deep);text-decoration:underline;text-underline-offset:3px;}

.photosolve img{max-width:100%;height:auto;display:block;}

.pso-shell{max-width:var(--pso-max);margin:0 auto;padding:0 var(--pso-pad);}

.pso-eyebrow{
font-family:var(--pso-mono);
font-size:11.5px;
font-weight:500;
letter-spacing:0.22em;
text-transform:uppercase;
color:var(--pso-teal);
display:inline-block;
}

.pso-topbar{
background:var(--pso-dark);
color:var(--pso-on-dark-2);
font-family:var(--pso-mono);
font-size:12px;
letter-spacing:0.04em;
border-bottom:1px solid rgba(255,255,255,0.06);
}
.pso-topbar .pso-shell{
display:flex;
justify-content:space-between;
align-items:center;
min-height:38px;
gap:18px;
}
.pso-topbar-spec{display:flex;gap:20px;flex-wrap:wrap;}
.pso-topbar-spec span{color:var(--pso-on-dark-3);}
.pso-topbar-spec b{color:var(--pso-teal-bright);font-weight:500;}

.pso-masthead{
background:var(--pso-paper);
border-bottom:1px solid var(--pso-line);
}
.pso-masthead .pso-shell{
display:flex;
align-items:center;
justify-content:space-between;
gap:32px;
padding-top:26px;
padding-bottom:26px;
}
.pso-brand{display:flex;align-items:center;gap:16px;text-decoration:none;}
.pso-brand:hover{text-decoration:none;}
.pso-brand-mark{flex:0 0 auto;width:46px;height:46px;}
.pso-brand-mark svg{width:100%;height:100%;display:block;}
.pso-brand-text{display:flex;flex-direction:column;line-height:1;}
.pso-brand-name{
font-family:var(--pso-head);
font-weight:800;
font-size:27px;
letter-spacing:-0.02em;
color:var(--pso-ink);
}
.pso-brand-tag{
font-family:var(--pso-mono);
font-size:11px;
letter-spacing:0.14em;
text-transform:uppercase;
color:var(--pso-ink-3);
margin-top:7px;
}

.pso-nav{display:flex;align-items:center;}
.pso-nav ul{list-style:none;display:flex;gap:30px;margin:0;padding:0;}
.pso-nav a{
font-family:var(--pso-head);
font-weight:600;
font-size:15.5px;
letter-spacing:-0.005em;
color:var(--pso-ink-2);
padding:6px 0;
position:relative;
}
.pso-nav a:hover{color:var(--pso-ink);text-decoration:none;}
.pso-nav a::after{
content:"";
position:absolute;
left:0;
bottom:-2px;
width:0;
height:2px;
background:var(--pso-teal);
transition:width 0.22s ease;
}
.pso-nav a:hover::after{width:100%;}
.pso-nav .current-menu-item a{color:var(--pso-ink);}
.pso-nav .current-menu-item a::after{width:100%;}

.pso-burger{display:none;background:none;border:1px solid var(--pso-line-2);border-radius:var(--pso-radius);width:44px;height:40px;cursor:pointer;padding:0;}
.pso-burger span{display:block;width:20px;height:2px;background:var(--pso-ink);margin:4px auto;}

.pso-hero{
background:var(--pso-dark);
color:var(--pso-on-dark);
position:relative;
overflow:hidden;
}
.pso-hero .pso-shell{
position:relative;
z-index:2;
padding-top:74px;
padding-bottom:78px;
max-width:780px;
margin-left:auto;
margin-right:auto;
}
.pso-hero-eyebrow{
font-family:var(--pso-mono);
font-size:12px;
letter-spacing:0.24em;
text-transform:uppercase;
color:var(--pso-teal-bright);
}
.pso-hero h1{
color:var(--pso-on-dark);
font-size:52px;
font-weight:800;
letter-spacing:-0.022em;
line-height:1.06;
margin:20px 0 0;
max-width:16ch;
}
.pso-hero p{
color:var(--pso-on-dark-2);
font-size:19px;
line-height:1.62;
margin:22px 0 0;
max-width:52ch;
}
.pso-hero-meta{
margin-top:30px;
display:flex;
gap:26px;
flex-wrap:wrap;
font-family:var(--pso-mono);
font-size:12px;
letter-spacing:0.05em;
color:var(--pso-on-dark-3);
}
.pso-hero-meta b{color:var(--pso-teal-bright);font-weight:500;}

.pso-iris{
position:absolute;
top:50%;
right:-130px;
transform:translateY(-50%);
width:520px;
height:520px;
z-index:1;
opacity:0.9;
animation:pso-iris-spin 64s linear infinite;
}
.pso-iris svg{width:100%;height:100%;display:block;}
.pso-iris .pso-blade{
fill:none;
stroke:var(--pso-teal-bright);
stroke-width:1.1;
opacity:0.5;
}
.pso-iris .pso-blade-fill{
fill:var(--pso-teal-bright);
opacity:0.05;
}
.pso-iris .pso-ring{
fill:none;
stroke:var(--pso-on-dark-3);
stroke-width:0.8;
opacity:0.3;
}
.pso-iris .pso-center{fill:var(--pso-dark-3);}

@keyframes pso-iris-spin{from{transform:translateY(-50%) rotate(0deg);}to{transform:translateY(-50%) rotate(360deg);}}

@media (prefers-reduced-motion:reduce){
.pso-iris{animation:none;}
}

.pso-body-wrap{padding-top:54px;padding-bottom:72px;}
.pso-grid{
display:grid;
grid-template-columns:1fr var(--pso-rail);
gap:var(--pso-gap);
align-items:start;
}

.pso-stream-head{
display:flex;
align-items:baseline;
justify-content:space-between;
gap:16px;
padding-bottom:18px;
margin-bottom:30px;
border-bottom:2px solid var(--pso-ink);
}
.pso-stream-head h2{font-size:21px;margin:0;letter-spacing:-0.01em;}
.pso-stream-head .pso-count{
font-family:var(--pso-mono);
font-size:12px;
letter-spacing:0.08em;
color:var(--pso-ink-3);
}

.pso-card{
border-bottom:1px solid var(--pso-line);
padding:30px 0;
}
.pso-card:first-of-type{padding-top:0;}
.pso-card-meta{
display:flex;
align-items:center;
gap:14px;
font-family:var(--pso-mono);
font-size:11.5px;
letter-spacing:0.06em;
color:var(--pso-ink-3);
margin-bottom:13px;
}
.pso-card-cat{
color:var(--pso-teal);
text-transform:uppercase;
letter-spacing:0.12em;
font-weight:500;
}
.pso-card-cat:hover{color:var(--pso-teal-deep);text-decoration:none;}
.pso-card-dot{width:3px;height:3px;border-radius:50%;background:var(--pso-line-2);}
.pso-card h3{font-size:26px;line-height:1.18;margin:0 0 12px;}
.pso-card h3 a{color:var(--pso-ink);}
.pso-card h3 a:hover{color:var(--pso-teal-deep);text-decoration:none;}
.pso-card-excerpt{color:var(--pso-ink-2);font-size:16.5px;line-height:1.66;margin:0;}
.pso-card-more{
display:inline-flex;
align-items:center;
gap:7px;
margin-top:15px;
font-family:var(--pso-mono);
font-size:12px;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--pso-teal);
font-weight:500;
}
.pso-card-more:hover{gap:11px;text-decoration:none;}

.pso-pagination{margin-top:44px;display:flex;gap:10px;font-family:var(--pso-mono);font-size:13px;}
.pso-pagination a,.pso-pagination span{
padding:9px 15px;
border:1px solid var(--pso-line-2);
border-radius:var(--pso-radius);
color:var(--pso-ink-2);
}
.pso-pagination .current{background:var(--pso-ink);color:var(--pso-paper);border-color:var(--pso-ink);}
.pso-pagination a:hover{border-color:var(--pso-teal);color:var(--pso-teal);text-decoration:none;}

.pso-rail{display:flex;flex-direction:column;gap:30px;position:sticky;top:24px;}
.pso-widget{
background:var(--pso-paper-3);
border:1px solid var(--pso-line);
border-radius:var(--pso-radius-lg);
overflow:hidden;
}
.pso-widget-head{
display:flex;
align-items:center;
gap:9px;
padding:15px 20px;
background:var(--pso-dark);
color:var(--pso-on-dark);
}
.pso-widget-head .pso-wtick{width:7px;height:7px;background:var(--pso-teal-bright);border-radius:1px;}
.pso-widget-head h3{
font-family:var(--pso-mono);
font-size:12px;
font-weight:600;
letter-spacing:0.14em;
text-transform:uppercase;
color:var(--pso-on-dark);
margin:0;
}
.pso-widget-body{padding:8px 20px 16px;}

.pso-rail-cats{list-style:none;margin:0;padding:0;}
.pso-rail-cats li{border-bottom:1px solid var(--pso-line);}
.pso-rail-cats li:last-child{border-bottom:none;}
.pso-rail-cats a{
display:flex;
justify-content:space-between;
align-items:center;
gap:12px;
padding:11px 0;
color:var(--pso-ink-2);
font-weight:600;
font-size:15.5px;
font-family:var(--pso-head);
}
.pso-rail-cats a:hover{color:var(--pso-teal);text-decoration:none;}
.pso-rail-cats .pso-c-count{
font-family:var(--pso-mono);
font-size:11px;
font-weight:400;
color:var(--pso-ink-3);
background:var(--pso-paper-2);
padding:2px 8px;
border-radius:20px;
}

.pso-rail-recent{list-style:none;margin:0;padding:0;}
.pso-rail-recent li{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--pso-line);}
.pso-rail-recent li:last-child{border-bottom:none;}
.pso-rail-idx{
flex:0 0 auto;
font-family:var(--pso-mono);
font-size:12px;
font-weight:500;
color:var(--pso-teal);
padding-top:2px;
min-width:22px;
}
.pso-rail-recent a{
color:var(--pso-ink);
font-weight:600;
font-size:15px;
line-height:1.34;
font-family:var(--pso-head);
letter-spacing:-0.005em;
}
.pso-rail-recent a:hover{color:var(--pso-teal-deep);text-decoration:none;}
.pso-rail-recent time{
display:block;
font-family:var(--pso-mono);
font-size:10.5px;
letter-spacing:0.05em;
color:var(--pso-ink-3);
margin-top:5px;
}

.pso-rail-pages{list-style:none;margin:0;padding:0;}
.pso-rail-pages li{border-bottom:1px solid var(--pso-line);}
.pso-rail-pages li:last-child{border-bottom:none;}
.pso-rail-pages a{
display:block;
padding:10px 0;
color:var(--pso-ink-2);
font-size:15px;
font-weight:500;
}
.pso-rail-pages a:hover{color:var(--pso-teal);text-decoration:none;}
.pso-rail-empty{display:block;padding:12px 0;color:var(--pso-ink-3);font-size:14px;line-height:1.5;}

.pso-rail-note{
background:var(--pso-paper-2);
border:1px solid var(--pso-line);
border-radius:var(--pso-radius-lg);
padding:18px 20px;
}
.pso-rail-note p{margin:0;font-size:14px;line-height:1.6;color:var(--pso-ink-2);}
.pso-rail-note .pso-eyebrow{margin-bottom:8px;}

.pso-article{max-width:none;}
.pso-article-header{margin-bottom:34px;padding-bottom:28px;border-bottom:1px solid var(--pso-line);}
.pso-article-header h1{font-size:40px;line-height:1.1;letter-spacing:-0.02em;margin:14px 0 0;}
.pso-article-meta{
display:flex;
gap:14px;
align-items:center;
font-family:var(--pso-mono);
font-size:12px;
letter-spacing:0.05em;
color:var(--pso-ink-3);
margin-top:18px;
}
.pso-article-body{font-size:18.5px;line-height:1.78;color:var(--pso-ink);}
.pso-article-body p{margin:0 0 1.35em;}
.pso-article-body h2{font-size:27px;margin:1.7em 0 0.6em;letter-spacing:-0.012em;}
.pso-article-body h3{font-size:21px;margin:1.5em 0 0.5em;}
.pso-article-body ul,.pso-article-body ol{margin:0 0 1.35em;padding-left:1.3em;}
.pso-article-body li{margin:0 0 0.5em;}
.pso-article-body blockquote{
margin:1.6em 0;
padding:4px 0 4px 24px;
border-left:3px solid var(--pso-teal);
color:var(--pso-ink-2);
font-size:19px;
}
.pso-article-body strong{font-weight:700;color:var(--pso-ink);}
.pso-article-body a{font-weight:600;}

.pso-footer{background:var(--pso-dark);color:var(--pso-on-dark-2);margin-top:0;}
.pso-footer-top{padding-top:56px;padding-bottom:46px;border-bottom:1px solid rgba(255,255,255,0.07);}
.pso-footer-cols{
display:grid;
grid-template-columns:1.5fr 1fr 1fr;
gap:46px;
}
.pso-footer-brand .pso-brand-name{color:var(--pso-on-dark);font-size:23px;}
.pso-footer-brand p{margin:16px 0 0;font-size:15px;line-height:1.66;color:var(--pso-on-dark-2);max-width:38ch;}
.pso-footer h4{
font-family:var(--pso-mono);
font-size:11.5px;
font-weight:600;
letter-spacing:0.16em;
text-transform:uppercase;
color:var(--pso-on-dark-3);
margin:0 0 18px;
}
.pso-footer-col ul{list-style:none;margin:0;padding:0;}
.pso-footer-col li{margin:0 0 11px;}
.pso-footer-col a{color:var(--pso-on-dark-2);font-size:15px;}
.pso-footer-col a:hover{color:var(--pso-teal-bright);text-decoration:none;}
.pso-footer-bottom{padding-top:24px;padding-bottom:30px;}
.pso-footer-bottom .pso-shell{
display:flex;
justify-content:space-between;
align-items:center;
gap:16px;
flex-wrap:wrap;
font-family:var(--pso-mono);
font-size:11.5px;
letter-spacing:0.05em;
color:var(--pso-on-dark-3);
}

@media (max-width:980px){
.pso-grid{grid-template-columns:1fr;}
.pso-rail{position:static;flex-direction:column;}
.pso-footer-cols{grid-template-columns:1fr 1fr;}
.pso-iris{width:380px;right:-150px;opacity:0.6;}
.pso-hero h1{font-size:42px;}
}

@media (max-width:680px){
body.photosolve{font-size:17px;}
.pso-nav{display:none;}
.pso-burger{display:block;}
.pso-masthead .pso-shell{padding-top:18px;padding-bottom:18px;}
.pso-hero .pso-shell{padding-top:52px;padding-bottom:54px;}
.pso-hero h1{font-size:33px;}
.pso-hero p{font-size:17px;}
.pso-iris{display:none;}
.pso-footer-cols{grid-template-columns:1fr;gap:34px;}
.pso-card h3{font-size:22px;}
.pso-article-header h1{font-size:30px;}
.pso-topbar-spec span:nth-child(n+3){display:none;}
}

.pso-nav-open .pso-nav{
display:block;
position:absolute;
left:0;
right:0;
top:100%;
background:var(--pso-paper-3);
border-bottom:1px solid var(--pso-line);
padding:14px var(--pso-pad);
z-index:40;
}
.pso-nav-open .pso-nav ul{flex-direction:column;gap:4px;}
.pso-nav-open .pso-nav a{padding:11px 0;border-bottom:1px solid var(--pso-line);}
.pso-masthead{position:relative;}
