/*
Theme Name: David Persson Photography
Author: David Persson
Description: A dark, lightweight photography theme without a page builder. Full-screen slider on the front page and edge-to-edge gallery pages built for FooGallery.
Version: 0.3.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dpp
*/

/* ---------- Fonts (bundled, no external requests) ---------- */
@font-face{font-family:Lato;font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/lato-latin-ext-300-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Lato;font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/lato-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/lato-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/lato-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/lato-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/lato-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Lato;font-style:normal;font-weight:900;font-display:swap;src:url(assets/fonts/lato-latin-ext-900-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Lato;font-style:normal;font-weight:900;font-display:swap;src:url(assets/fonts/lato-latin-900-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Base ---------- */
:root{
  --dpp-bg:#252525;
  --dpp-bar:#1c1c1c;
  --dpp-text:#ececec;
  --dpp-muted:#b5b5b5;
  --dpp-line:rgba(255,255,255,.18);
  --dpp-pad:5vw;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--dpp-bg);color:var(--dpp-text);font-family:Lato,"Helvetica Neue",Arial,sans-serif;font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:#fff}
a:hover{color:#bdbdbd}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
.screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dpp-skip:focus{position:fixed;top:8px;left:8px;z-index:1000;width:auto;height:auto;margin:0;padding:12px 18px;clip:auto;background:#fff;color:#000;font-weight:700}

/* ---------- Header ---------- */
.dpp-header{position:relative;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 40px;padding:14px var(--dpp-pad);background:var(--dpp-bar)}
.dpp-brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none}
.dpp-brand:hover{color:#fff}
.dpp-brand .custom-logo{display:block;width:56px;height:auto}
.dpp-mark{display:block;width:56px;height:56px;flex:none}
.dpp-logo-invert .dpp-brand .custom-logo{filter:invert(1);mix-blend-mode:screen}
.dpp-brand-text{display:flex;flex-direction:column;gap:5px}
.dpp-brand-name{font-size:1.375rem;font-weight:900;letter-spacing:.2em;line-height:1;text-transform:uppercase}
.dpp-brand-tag{font-size:.625rem;letter-spacing:.56em;line-height:1;text-transform:uppercase;color:#d6d6d6}

.dpp-nav ul{display:flex;flex-wrap:wrap;align-items:center;gap:4px 34px;margin:0;padding:0;list-style:none}
.dpp-nav li{position:relative}
.dpp-nav a{display:block;padding:14px 0;border-bottom:2px solid transparent;color:#fff;font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.dpp-nav a:hover{color:#bdbdbd}
.dpp-nav .current-menu-item>a,.dpp-nav .current_page_item>a,.dpp-nav .current-menu-ancestor>a{border-bottom-color:#fff}
.dpp-nav ul ul{position:absolute;top:100%;left:-18px;z-index:30;display:none;min-width:210px;padding:8px 18px;background:var(--dpp-bar);flex-direction:column;align-items:stretch;gap:0}
.dpp-nav li:hover>ul,.dpp-nav li:focus-within>ul{display:flex}
.dpp-nav ul ul a{padding:10px 0}

.dpp-nav-toggle{display:none;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;background:transparent;color:#fff;cursor:pointer}
.dpp-nav-toggle span,.dpp-nav-toggle span::before,.dpp-nav-toggle span::after{display:block;width:26px;height:2px;background:currentColor}
.dpp-nav-toggle span{position:relative}
.dpp-nav-toggle span::before,.dpp-nav-toggle span::after{content:"";position:absolute;left:0}
.dpp-nav-toggle span::before{top:-8px}
.dpp-nav-toggle span::after{top:8px}

@media (max-width:860px){
  .dpp-nav-toggle{display:flex}
  .dpp-nav{display:none;flex-basis:100%}
  .dpp-nav.is-open{display:block}
  .dpp-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .dpp-nav a{padding:14px 0;border-bottom:1px solid var(--dpp-line)}
  .dpp-nav .current-menu-item>a,.dpp-nav .current_page_item>a{border-bottom-color:#fff}
  .dpp-nav ul ul{position:static;display:flex;padding:0 0 0 18px;background:transparent}
  .dpp-brand-name{font-size:1.0625rem}
  .dpp-mark{width:46px;height:46px}
}

/* Front page: header sits on top of the slider */
.dpp-front .dpp-header{position:absolute;top:0;left:0;right:0;z-index:auto;background:transparent;border-bottom:1px solid var(--dpp-line)}
/* The slider sits below the header without isolating it, so the inverted logo can blend with the photograph. */
.dpp-front .dpp-slider{z-index:-1}
.admin-bar.dpp-front .dpp-header{top:32px}
@media (max-width:782px){.admin-bar.dpp-front .dpp-header{top:46px}}
@media (max-width:860px){.dpp-front .dpp-nav.is-open{margin:0 calc(var(--dpp-pad) * -1) -14px;padding:0 var(--dpp-pad) 14px;background:rgba(20,20,20,.94)}}

/* ---------- Slider ---------- */
.dpp-slider{position:relative;height:100vh;height:100svh;min-height:420px;overflow:hidden;background:#111}
.admin-bar .dpp-slider{height:calc(100vh - 32px);height:calc(100svh - 32px)}
@media (max-width:782px){.admin-bar .dpp-slider{height:calc(100vh - 46px);height:calc(100svh - 46px)}}
.dpp-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .9s ease}
.dpp-slide.is-active{opacity:1}
.dpp-slide img{display:block;width:100%;height:100%;object-fit:cover}
.dpp-slider::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.62),rgba(0,0,0,0) 24%,rgba(0,0,0,0) 82%,rgba(0,0,0,.45))}
.dpp-slider-arrow{position:absolute;top:50%;z-index:5;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-top:-26px;padding:0;border:0;background:rgba(0,0,0,.35);color:#fff;cursor:pointer}
.dpp-slider-arrow:hover{background:rgba(0,0,0,.6)}
.dpp-slider-prev{left:24px}
.dpp-slider-next{right:24px}
.dpp-slider-dots{position:absolute;left:0;right:0;bottom:22px;z-index:5;display:flex;justify-content:center;gap:4px}
.dpp-slider-dot{display:flex;align-items:center;justify-content:center;width:48px;height:44px;padding:0;border:0;background:transparent;cursor:pointer}
.dpp-slider-dot::before{content:"";display:block;width:40px;height:3px;background:rgba(255,255,255,.4)}
.dpp-slider-dot[aria-current="true"]::before{background:#fff}
@media (max-width:600px){.dpp-slider-arrow{display:none}.dpp-slider-dot{width:36px}.dpp-slider-dot::before{width:28px}}
@media (prefers-reduced-motion:reduce){.dpp-slide{transition:none}}
.dpp-notice{max-width:760px;margin:0 auto;padding:160px var(--dpp-pad) 80px}

/* ---------- Pages ---------- */
.dpp-main{min-height:60vh}
.dpp-content{max-width:760px;margin:0 auto;padding:64px var(--dpp-pad) 80px}
.dpp-content>.alignwide{max-width:1200px;margin-left:calc((760px - min(1200px,90vw)) / 2);margin-right:calc((760px - min(1200px,90vw)) / 2)}
.dpp-title{margin:0 0 32px;font-size:2rem;font-weight:900;letter-spacing:.06em;line-height:1.15;text-transform:uppercase}
.dpp-title::after{content:"";display:block;width:120px;height:2px;margin-top:20px;background:#fff}
.dpp-content h2,.dpp-content h3,.dpp-content h4{margin:2em 0 .6em;font-weight:700;line-height:1.25;color:#fff}
.dpp-content h2{font-size:1.5rem}
.dpp-content h3{font-size:1.25rem}
.dpp-content p{margin:0 0 1.3em}
.dpp-content figure{margin:2em 0}
.dpp-content figcaption{margin-top:8px;font-size:.875rem;color:var(--dpp-muted)}
.dpp-content blockquote{margin:2em 0;padding:0 0 0 24px;border-left:2px solid #fff;font-size:1.125rem}
.dpp-meta{margin:-16px 0 32px;font-size:.875rem;letter-spacing:.06em;color:var(--dpp-muted)}

/* Gallery template: full width up to a maximum, no visible title */
.dpp-gallery{max-width:1920px;margin:0 auto;padding:0}
.dpp-gallery>*{margin-top:0;margin-bottom:0}
.dpp-gallery>p:empty{display:none}
.dpp-gallery .foogallery{max-width:none}

/* Forms (contact page) */
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=search],input[type=number],select,textarea{width:100%;padding:12px 14px;border:1px solid #6a6a6a;border-radius:0;background:#1c1c1c;color:#fff;font:inherit}
input:focus,select:focus,textarea:focus{border-color:#fff;outline:none}
label{display:block;margin-bottom:6px;font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
button,input[type=submit],.wp-block-button__link,.wp-element-button{display:inline-flex;align-items:center;min-height:46px;padding:0 26px;border:2px solid #fff;border-radius:0;background:transparent;color:#fff;font:inherit;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer}
input[type=submit]:hover,.wp-block-button__link:hover,.wp-element-button:hover{background:#fff;color:#000}

/* ---------- Footer ---------- */
.dpp-footer{padding:34px var(--dpp-pad);text-align:center;font-size:.8125rem;letter-spacing:.06em;color:var(--dpp-muted)}
.dpp-footer p{margin:0}
