/*
Theme Name: EDDImage
Theme URI: https://eddimage.com
Author: Eduard Florin Niga
Author URI: https://eddimage.com
Description: Independent custom WordPress theme for EDDImage photography, species archives, prints and presentations.
Version: 1.0.13
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: eddimage
*/

:root{
  --edd-bg:#f7f3e8;
  --edd-panel:#ffffff;
  --edd-text:#111827;
  --edd-muted:#58636d;
  --edd-olive:#6f8244;
  --edd-olive-dark:#536237;
  --edd-line:rgba(83,98,55,.18);
  --edd-footer:#eee9dd;
  --edd-shadow:0 18px 54px rgba(31,41,51,.10);
  --edd-radius:26px;
  --edd-header-height:82px;
}

html{
  margin:0;
  padding:0;
  scroll-behavior:smooth;
  scrollbar-gutter:stable;
}

body{
  margin:0;
  padding:0;
  overflow-x:hidden;
  background:var(--edd-bg);
  color:var(--edd-text);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.6;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

body.admin-bar .edd-site-header{top:32px}

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

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

a{
  color:inherit;
  text-decoration:none;
}

a:hover{color:var(--edd-olive-dark)}

button,input,textarea,select{font:inherit}

.screen-reader-text{
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.screen-reader-text:focus{
  z-index:100000;
  top:8px;
  left:8px;
  width:auto;
  height:auto;
  padding:12px 16px;
  clip:auto;
  background:#fff;
  color:#111827;
  border-radius:8px;
  box-shadow:var(--edd-shadow);
}

.edd-site-header{
  position:sticky;
  top:0;
  z-index:9999;
  min-height:var(--edd-header-height);
  background:rgba(250,248,242,.96);
  border-bottom:1px solid var(--edd-line);
  box-shadow:0 8px 30px rgba(31,41,51,.05);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.edd-header-inner{
  width:min(100% - 64px,1600px);
  min-height:96px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(360px,460px) minmax(0,1fr);
  align-items:center;
  gap:54px;
}

.edd-brand{
  display:flex;
  align-items:center;
  min-width:0;
}

.edd-custom-logo-link{display:block}

.edd-custom-logo-link img{
  max-height:56px;
  width:auto;
}

.edd-site-title{
  display:block;
  color:var(--edd-text);
  font-size:clamp(1.15rem,1.7vw,1.55rem);
  line-height:1.1;
  font-weight:850;
  letter-spacing:-.035em;
  white-space:nowrap;
}

.edd-site-description{
  display:block;
  margin-top:5px;
  color:var(--edd-muted);
  font-size:.74rem;
  line-height:1.2;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.edd-menu-toggle{
  display:none;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid var(--edd-line);
  border-radius:999px;
  background:#fff;
  color:var(--edd-text);
  cursor:pointer;
}

.edd-menu-toggle-lines,
.edd-menu-toggle-lines::before,
.edd-menu-toggle-lines::after{
  position:relative;
  display:block;
  width:20px;
  height:2px;
  margin:auto;
  background:currentColor;
  border-radius:999px;
  transition:transform .2s ease,opacity .2s ease;
}

.edd-menu-toggle-lines::before,
.edd-menu-toggle-lines::after{
  content:"";
  position:absolute;
  left:0;
}

.edd-menu-toggle-lines::before{top:-6px}
.edd-menu-toggle-lines::after{top:6px}

.edd-menu-toggle[aria-expanded="true"] .edd-menu-toggle-lines{background:transparent}
.edd-menu-toggle[aria-expanded="true"] .edd-menu-toggle-lines::before{top:0;transform:rotate(45deg)}
.edd-menu-toggle[aria-expanded="true"] .edd-menu-toggle-lines::after{top:0;transform:rotate(-45deg)}

.edd-primary-nav ul{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px 30px;
  margin:0;
  padding:0;
  list-style:none;
}

.edd-primary-nav li{position:relative}

.edd-primary-nav a{
  display:block;
  padding:12px 0;
  color:#46515b;
  font-size:.93rem;
  font-weight:720;
  line-height:1.2;
  white-space:nowrap;
  transition:color .2s ease;
}

.edd-primary-nav a:hover,
.edd-primary-nav .current-menu-item>a,
.edd-primary-nav .current-menu-ancestor>a{
  color:var(--edd-olive-dark);
}

.edd-primary-nav .sub-menu{
  position:absolute;
  top:100%;
  left:-18px;
  z-index:30;
  display:none;
  min-width:230px;
  padding:12px;
  border:1px solid var(--edd-line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--edd-shadow);
}

.edd-primary-nav li:hover>.sub-menu,
.edd-primary-nav li:focus-within>.sub-menu{display:block}

.edd-primary-nav .sub-menu a{
  padding:11px 13px;
  border-radius:11px;
}

.edd-primary-nav .sub-menu a:hover{background:#f4f0e6}

.edd-site-main{
  min-height:65vh;
  overflow:visible;
}

.edd-default-content,
.edd-archive-wrap,
.edd-search-wrap,
.edd-error-wrap{
  width:min(100% - 48px,1180px);
  margin:0 auto;
  padding:84px 0 100px;
}

.edd-default-article{
  background:#fff;
  border:1px solid var(--edd-line);
  border-radius:var(--edd-radius);
  padding:clamp(28px,5vw,64px);
  box-shadow:var(--edd-shadow);
}

.edd-entry-header{margin-bottom:34px}

.edd-entry-title,
.edd-archive-title,
.edd-search-title,
.edd-error-title{
  margin:0;
  color:var(--edd-text);
  font-size:clamp(2.8rem,6vw,6.2rem);
  line-height:.96;
  letter-spacing:-.06em;
  font-weight:850;
}

.edd-entry-meta{
  margin-top:16px;
  color:var(--edd-muted);
  font-size:.92rem;
}

.edd-entry-content{
  color:#34424c;
  font-size:1.08rem;
  line-height:1.78;
}

.edd-entry-content>*:first-child{margin-top:0}
.edd-entry-content>*:last-child{margin-bottom:0}
.edd-entry-content h2,
.edd-entry-content h3,
.edd-entry-content h4{
  color:var(--edd-text);
  line-height:1.15;
  letter-spacing:-.035em;
}
.edd-entry-content a{
  color:var(--edd-olive-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}

.edd-post-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin-top:44px;
}

.edd-post-card{
  overflow:hidden;
  border:1px solid var(--edd-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 50px rgba(31,41,51,.08);
}

.edd-post-card-image{
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#ebe7dc;
}

.edd-post-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.edd-post-card:hover .edd-post-card-image img{transform:scale(1.035)}

.edd-post-card-copy{padding:24px}

.edd-post-card h2{
  margin:0;
  color:var(--edd-text);
  font-size:1.55rem;
  line-height:1.15;
  letter-spacing:-.035em;
}

.edd-post-card p{
  margin:14px 0 0;
  color:var(--edd-muted);
}

.edd-pagination{margin-top:48px}
.edd-pagination .nav-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.edd-pagination .page-numbers{
  display:inline-flex;
  min-width:42px;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border:1px solid var(--edd-line);
  border-radius:999px;
  background:#fff;
}
.edd-pagination .current{
  background:var(--edd-olive);
  color:#fff;
}

.edd-site-footer{
  border-top:1px solid var(--edd-line);
  background:var(--edd-footer);
  color:var(--edd-text);
}

.edd-footer-inner{
  width:min(100% - 48px,1440px);
  margin:0 auto;
  padding:72px 0 54px;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);
  gap:80px;
}

.edd-footer-brand h2{
  margin:0;
  color:var(--edd-text);
  font-size:clamp(1.8rem,3vw,2.8rem);
  line-height:1;
  letter-spacing:-.045em;
}

.edd-footer-brand p{
  max-width:650px;
  margin:20px 0 0;
  color:var(--edd-muted);
  font-size:1.02rem;
  line-height:1.7;
}

.edd-footer-menu ul{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 28px;
  margin:0;
  padding:0;
  list-style:none;
}

.edd-footer-menu a{
  color:var(--edd-olive-dark);
  font-weight:720;
}

.edd-footer-bottom{
  width:min(100% - 48px,1440px);
  margin:0 auto;
  padding:22px 0 28px;
  border-top:1px solid rgba(83,98,55,.15);
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#6b7280;
  font-size:.86rem;
}

.edd-back-to-top{
  position:fixed!important;
  right:22px!important;
  bottom:22px!important;
  z-index:2147483000!important;
  width:54px!important;
  height:54px!important;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(83,98,55,.28)!important;
  border-radius:999px!important;
  background:rgba(250,248,242,.97)!important;
  color:var(--edd-olive-dark)!important;
  box-shadow:0 16px 42px rgba(31,41,51,.20)!important;
  cursor:pointer!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  transition:opacity .16s ease,visibility .16s ease!important;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

.edd-back-to-top span{
  display:block;
  font-size:27px;
  font-weight:800;
  line-height:1;
  transform:translateY(-1px);
}

.edd-back-to-top.is-visible{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
}

.edd-back-to-top:hover,
.edd-back-to-top:focus-visible{
  background:#fff!important;
  box-shadow:0 20px 50px rgba(31,41,51,.24)!important;
}

body.page-template-default .edd-site-main>.wp-block-group:first-child,
body.page-template-default .edd-site-main>.wp-block-html:first-child{
  margin-top:0;
}

/* Designed full-width pages already contain their own headings and layout. */
body.page .edd-site-main>.edd-designed-page{
  width:100%;
}

/* WordPress alignment support */
.alignwide{
  width:min(100% - 48px,1440px);
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}
.alignfull{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}

@media(max-width:1100px){
  .edd-menu-toggle{
    display:grid;
    place-items:center;
    flex:0 0 auto;
  }

  .edd-header-inner{
    position:relative;
    flex-wrap:wrap;
    min-height:74px;
  }

  .edd-primary-nav{
    display:none;
    width:100%;
    padding:6px 0 22px;
  }

  .edd-primary-nav.is-open{display:block}

  .edd-primary-nav ul{
    display:block;
  }

  .edd-primary-nav a{
    padding:13px 0;
    border-bottom:1px solid rgba(83,98,55,.12);
  }

  .edd-primary-nav .sub-menu{
    position:static;
    display:block;
    min-width:0;
    padding:0 0 0 18px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  .edd-primary-nav .sub-menu a{padding:11px 0}

  .edd-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:782px){
  body.admin-bar .edd-site-header{top:46px}
}

@media(max-width:700px){
  :root{--edd-header-height:72px}

  .edd-header-inner,
  .edd-default-content,
  .edd-archive-wrap,
  .edd-search-wrap,
  .edd-error-wrap,
  .edd-footer-inner,
  .edd-footer-bottom{
    width:min(100% - 32px,1440px);
  }

  .edd-site-description{display:none}

  .edd-post-grid{grid-template-columns:1fr}

  .edd-footer-inner{
    grid-template-columns:1fr;
    gap:42px;
    padding:56px 0 42px;
  }

  .edd-footer-menu ul{grid-template-columns:1fr}

  .edd-footer-bottom{
    display:block;
    text-align:center;
  }

  .edd-footer-bottom span{display:block;margin-top:6px}

  .edd-back-to-top{
    right:14px;
    bottom:14px;
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}


/* Header refinements */
.edd-site-title{
  font-size:clamp(1.35rem,1.8vw,1.75rem);
}

.edd-site-description{
  margin-top:7px;
  letter-spacing:.12em;
}

body.page .edd-site-footer{
  margin-top:0;
}

@media (max-width:1300px) and (min-width:1101px){
  .edd-header-inner{
    grid-template-columns:minmax(300px,390px) minmax(0,1fr);
    gap:34px;
  }

  .edd-primary-nav ul{
    gap:8px 22px;
  }

  .edd-primary-nav a{
    font-size:.88rem;
  }
}


/* Active navigation state */
.edd-primary-nav > ul > li > a{
  position:relative;
}

.edd-primary-nav > ul > li > a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:5px;
  height:2px;
  border-radius:999px;
  background:var(--edd-olive);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .2s ease;
}

.edd-primary-nav > ul > li:hover > a::after,
.edd-primary-nav > ul > li.current-menu-item > a::after,
.edd-primary-nav > ul > li.current-menu-parent > a::after,
.edd-primary-nav > ul > li.current-menu-ancestor > a::after,
.edd-primary-nav > ul > li.current_page_item > a::after,
.edd-primary-nav > ul > li.current_page_parent > a::after,
.edd-primary-nav > ul > li.current_page_ancestor > a::after{
  transform:scaleX(1);
}

.edd-primary-nav > ul > li.current-menu-item > a,
.edd-primary-nav > ul > li.current-menu-parent > a,
.edd-primary-nav > ul > li.current-menu-ancestor > a,
.edd-primary-nav > ul > li.current_page_item > a,
.edd-primary-nav > ul > li.current_page_parent > a,
.edd-primary-nav > ul > li.current_page_ancestor > a{
  color:var(--edd-olive-dark);
}

@media(max-width:1100px){
  .edd-primary-nav > ul > li > a::after{
    display:none;
  }

  .edd-primary-nav > ul > li.current-menu-item > a,
  .edd-primary-nav > ul > li.current-menu-parent > a,
  .edd-primary-nav > ul > li.current-menu-ancestor > a,
  .edd-primary-nav > ul > li.current_page_item > a,
  .edd-primary-nav > ul > li.current_page_parent > a,
  .edd-primary-nav > ul > li.current_page_ancestor > a{
    padding-left:14px;
    border-left:3px solid var(--edd-olive);
    background:rgba(111,130,68,.06);
  }
}


/* Robust active navigation fallback */
.edd-primary-nav > ul > li.edd-current-menu-item > a,
.edd-primary-nav > ul > li.edd-current-menu-ancestor > a{
  color:var(--edd-olive-dark);
}

.edd-primary-nav > ul > li.edd-current-menu-item > a::after,
.edd-primary-nav > ul > li.edd-current-menu-ancestor > a::after{
  transform:scaleX(1);
}

@media(max-width:1100px){
  .edd-primary-nav > ul > li.edd-current-menu-item > a,
  .edd-primary-nav > ul > li.edd-current-menu-ancestor > a{
    padding-left:14px;
    border-left:3px solid var(--edd-olive);
    background:rgba(111,130,68,.06);
  }
}


/* Global inner-page back button */
.edd-page-back-bar{
  position:relative;
  z-index:20;
  width:min(100% - 48px,1440px);
  margin:0 auto;
  padding:18px 0 0;
}

.edd-page-back{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:10px 18px;
  border:1px solid var(--edd-line);
  border-radius:999px;
  background:rgba(250,248,242,.96);
  color:var(--edd-olive-dark);
  font-size:.92rem;
  font-weight:800;
  line-height:1;
  box-shadow:0 10px 28px rgba(31,41,51,.08);
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}

.edd-page-back:hover{
  transform:translateY(-1px);
  background:#fff;
  color:var(--edd-olive-dark);
  box-shadow:0 14px 34px rgba(31,41,51,.12);
}

.edd-page-back span{
  font-size:1.18rem;
  line-height:1;
}

@media(max-width:700px){
  .edd-page-back-bar{
    width:min(100% - 32px,1440px);
    padding-top:14px;
  }
}


/* Image protection: discourages casual dragging and long-press saving. */
img{
  -webkit-user-drag:none;
  user-drag:none;
  -webkit-touch-callout:none;
  user-select:none;
}
