/*
Theme Name: Daviz Plaza — Atelier
Theme URI: https://davizplaza.com/
Author: Daviz Plaza
Description: Minimal editorial portfolio theme for an artist. Built from scratch for a visual-first painting portfolio.
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: daviz-plaza
*/

:root {
  --bg: #f7f6f2;
  --text: #171717;
  --muted: #77736c;
  --line: #d9d6cf;
  --max: 1760px;
  --pad: clamp(20px, 3vw, 54px);
  --gap: clamp(14px, 1.7vw, 30px);
  --body-size: 13px;
  --title-size: clamp(26px, 4vw, 58px);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: Arial, Helvetica, sans-serif; font-size: var(--body-size); line-height: 1.45; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display:block; max-width:100%; height:auto; }
button, input { font: inherit; }
.site { min-height:100vh; }
.site-header { position: sticky; top:0; z-index:50; background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(12px); }
.header-inner { width:min(100%, var(--max)); margin:0 auto; padding: 20px var(--pad) 18px; display:grid; grid-template-columns: 1fr auto; gap:40px; align-items:center; }
.site-brand { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.main-nav ul { display:flex; flex-wrap:wrap; gap:18px; list-style:none; padding:0; margin:0; justify-content:flex-end; }
.main-nav a { font-size:11px; letter-spacing:.10em; text-transform:uppercase; opacity:.78; }
.main-nav a:hover, .main-nav .current-menu-item > a { opacity:1; }
.site-main { width:min(100%, var(--max)); margin:0 auto; padding: 8px var(--pad) 72px; }
.portfolio-toolbar { display:flex; gap:18px; align-items:center; justify-content:space-between; padding: 24px 0 34px; }
.filters { display:flex; flex-wrap:wrap; gap:11px 17px; }
.filter-btn { border:0; padding:0; background:none; cursor:pointer; color:var(--muted); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.filter-btn[aria-pressed="true"], .filter-btn:hover { color:var(--text); }
.view-note { color:var(--muted); font-size:11px; }
.portfolio-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--gap); align-items:start; }
.portfolio-item { min-width:0; }
.portfolio-image-wrap { position:relative; overflow:hidden; background:#ebe9e2; }
.portfolio-image-wrap img { width:100%; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.portfolio-item:hover .portfolio-image-wrap img { transform:scale(1.018); }
.portfolio-overlay { position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:flex-start; padding:16px; background:linear-gradient(transparent 55%, rgba(0,0,0,.42)); opacity:0; transition:opacity .25s ease; }
.portfolio-item:hover .portfolio-overlay, .portfolio-item:focus-within .portfolio-overlay { opacity:1; }
.overlay-label { color:#fff; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.portfolio-meta { padding-top:9px; display:flex; justify-content:space-between; gap:12px; }
.portfolio-title { font-size:11px; letter-spacing:.02em; }
.portfolio-year { color:var(--muted); font-size:11px; }
.portfolio-item.is-hidden { display:none; }
.section-page { max-width:960px; padding-top:55px; }
.section-page h1, .single-art h1 { font-size:var(--title-size); font-weight:400; line-height:.98; letter-spacing:-.04em; margin:0 0 34px; }
.section-page .content { max-width:720px; font-size:15px; line-height:1.75; }
.section-page .content p { margin:0 0 1.3em; }
.single-art { padding-top:42px; }
.single-art-hero { display:grid; grid-template-columns:minmax(0, 1fr) 270px; gap:clamp(30px, 6vw, 110px); align-items:start; }
.single-art-image { background:#ebe9e2; }
.single-art-details { position:sticky; top:90px; }
.single-art-details h1 { font-size:clamp(28px,4vw,52px); margin-bottom:20px; }
.art-specs { display:grid; grid-template-columns:1fr; gap:8px; color:var(--muted); font-size:11px; }
.art-specs strong { color:var(--text); font-weight:400; }
.art-description { margin-top:28px; font-size:13px; line-height:1.65; }
.art-nav { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); margin-top:70px; padding-top:22px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.lightbox { position:fixed; inset:0; background:rgba(15,15,15,.96); z-index:100; display:none; align-items:center; justify-content:center; padding:3vw; }
.lightbox.is-open { display:flex; }
.lightbox img { max-height:90vh; max-width:90vw; object-fit:contain; }
.lightbox-close, .lightbox-prev, .lightbox-next { position:absolute; top:18px; border:0; background:none; color:white; cursor:pointer; font-size:13px; letter-spacing:.08em; }
.lightbox-close { right:24px; }
.lightbox-prev { left:24px; top:50%; transform:translateY(-50%); }
.lightbox-next { right:24px; top:50%; transform:translateY(-50%); }
.site-footer { width:min(100%, var(--max)); margin:0 auto; padding:28px var(--pad) 48px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.site-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:18px}.footer-legal-nav ul{display:flex;flex-wrap:wrap;gap:14px 20px;list-style:none;margin:0;padding:0}.footer-legal-nav a{font-size:10px;letter-spacing:.07em}.site-footer-credit{white-space:nowrap}
.menu-toggle { display:none; }
@media (max-width: 1100px) { .portfolio-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) {
  .header-inner { grid-template-columns:1fr; gap:12px; }
  .main-nav ul { justify-content:flex-start; gap:12px 16px; }
  .portfolio-toolbar { align-items:flex-start; flex-direction:column; }
  .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .single-art-hero { grid-template-columns:1fr; }
  .single-art-details { position:static; }
  .art-nav { margin-top:42px; }
}
@media (max-width: 470px) { .portfolio-grid { grid-template-columns:1fr; } .portfolio-meta { padding-bottom:4px; } .site-footer-inner{align-items:flex-start;flex-direction:column}.site-footer-credit{white-space:normal} }

/* Home builder / Elementor */
.home-builder { width:100%; }
.home-builder > .elementor { max-width:none; }
.elementor-page .site-main { padding-top:0; }
.social-links { display:flex; align-items:center; gap:14px; }
.social-link { width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; opacity:.72; transition:opacity .2s ease, transform .2s ease; }
.social-link:hover { opacity:1; transform:translateY(-1px); }
.social-link svg { width:100%; height:100%; }
body.dp-menu-left .header-inner { position:relative; }
@media(max-width:760px){
  .social-links { margin-top:4px; }
  .home-builder { width:100%; }
}


/* V3: custom logo + contact page */
.site-logo-link{display:block}
.site-logo{display:block;max-width:190px;width:auto;height:auto}
.dp-contact-page .social-links{margin-top:2rem}
.dp-contact-form-wrap{margin-top:2.5rem}
.dp-contact-form p{margin:0 0 1.25rem}
.dp-contact-form label{display:block;margin-bottom:.4rem;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.dp-contact-form input,.dp-contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:.7rem 0;font:inherit;outline:none}
.dp-contact-form input:focus,.dp-contact-form textarea:focus{border-bottom-color:var(--text)}
.dp-contact-form button{border:1px solid var(--text);background:transparent;color:var(--text);padding:.75rem 1.2rem;cursor:pointer}
.dp-form-success,.dp-form-error{margin:0 0 1.5rem}
@media (min-width:761px){body.dp-menu-left .site-brand{width:100%}body.dp-menu-left .site-logo{max-width:180px}}
@media (max-width:760px){.site-logo{max-width:155px}}


/* V5: refined sidebar controls */
body.dp-menu-left .social-link svg { display:block; }
@media (max-width:760px){ body.dp-menu-left .site-header{position:sticky; width:100%; height:auto; border-right:0; } }


/* V6: robust social icon rendering */
.dp-social-links{display:flex!important;align-items:center;gap:calc(var(--dp-social-size,18px) * .65)!important;visibility:visible!important;opacity:1!important}
.dp-social-links .dp-social-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;color:var(--text)!important;line-height:1!important;text-decoration:none!important;visibility:visible!important;opacity:.72!important}
.dp-social-links .dp-social-link:hover{opacity:1!important}
.dp-social-links .dp-social-svg{display:block!important;width:1em!important;height:1em!important;max-width:none!important;max-height:none!important;color:currentColor!important;overflow:visible!important}
@media(min-width:761px){body.dp-menu-left .header-inner > .dp-social-links{margin-top:var(--dp-menu-social-gap,26px)!important}}


/* V7: hierarchical WordPress menu / submenus */
.main-nav ul { list-style:none; padding:0; margin:0; }
.main-nav > ul { display:flex; flex-wrap:wrap; gap:18px; justify-content:flex-end; }
.main-nav li { position:relative; margin:0; padding:0; }
.main-nav .sub-menu {
  display:none;
  position:absolute;
  z-index:60;
  top:calc(100% + 10px);
  left:-10px;
  min-width:190px;
  padding:12px 0;
  margin:0;
  background:var(--bg);
  border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(0,0,0,.06);
}
.main-nav .sub-menu li { width:100%; }
.main-nav .sub-menu a { display:block; padding:7px 14px; white-space:nowrap; }
.main-nav .menu-item-has-children:hover > .sub-menu,
.main-nav .menu-item-has-children:focus-within > .sub-menu { display:block; }
.main-nav .menu-item-has-children > a::after {
  content:'⌄';
  display:inline-block;
  margin-left:.45em;
  font-size:.8em;
  vertical-align:.08em;
}
.main-nav .sub-menu .sub-menu {
  top:-13px;
  left:100%;
  margin-left:1px;
}

@media (min-width:761px) {
  body.dp-menu-left .main-nav > ul {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
  }
  body.dp-menu-left .main-nav > ul > li { width:100%; }
  body.dp-menu-left .main-nav > ul > li > a {
    display:block;
    padding:6px 0;
  }
  body.dp-menu-left .main-nav .sub-menu {
    position:static;
    min-width:0;
    width:100%;
    padding:3px 0 5px 13px;
    margin:0;
    border:0;
    box-shadow:none;
    background:transparent;
  }
  body.dp-menu-left .main-nav .sub-menu a {
    padding:4px 0;
    white-space:normal;
    font-size:.92em;
    letter-spacing:.07em;
    opacity:.62;
  }
  body.dp-menu-left .main-nav .sub-menu .sub-menu {
    padding-left:13px;
    position:static;
  }
  body.dp-menu-left .main-nav .menu-item-has-children > a::after {
    content:'+';
    margin-left:.5em;
    font-size:.9em;
  }
  body.dp-menu-left .main-nav .menu-item-has-children:hover > a::after,
  body.dp-menu-left .main-nav .menu-item-has-children:focus-within > a::after {
    content:'−';
  }
}

@media (max-width:760px) {
  .main-nav .sub-menu {
    position:static;
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    padding:3px 0 6px 13px;
    border:0;
    box-shadow:none;
    background:transparent;
  }
  .main-nav .sub-menu a { white-space:normal; padding:4px 0; opacity:.65; }
  .main-nav .menu-item-has-children > a::after { content:'⌄'; }
}

/* V8: animated collapsible side submenus */
body.dp-menu-left .main-nav .sub-menu{
  display:grid;
  grid-template-rows:0fr;
  overflow:hidden;
  transition:grid-template-rows .24s ease, opacity .24s ease, padding-top .24s ease, padding-bottom .24s ease;
  opacity:0;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
body.dp-menu-left .main-nav .sub-menu > li{min-height:0;overflow:hidden;}
body.dp-menu-left .main-nav .menu-item-has-children.is-open > .sub-menu,
body.dp-menu-left .main-nav .menu-item-has-children:focus-within > .sub-menu{
  grid-template-rows:1fr;
  opacity:1;
  padding-top:3px !important;
  padding-bottom:5px !important;
}
body.dp-menu-left .main-nav .menu-item-has-children > a{position:relative;padding-right:1.25rem;}
body.dp-menu-left .main-nav .menu-item-has-children > a::after{
  content:'+';
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  font-size:.95em;
  line-height:1;
  opacity:.62;
  transition:transform .2s ease, opacity .2s ease;
}
body.dp-menu-left .main-nav .menu-item-has-children.is-open > a::after,
body.dp-menu-left .main-nav .menu-item-has-children:focus-within > a::after{
  content:'−';
  opacity:1;
}
body.dp-menu-left .main-nav .sub-menu .sub-menu{
  padding-left:13px;
}

/* Keep desktop top menu dropdowns intact; side menu owns the accordion behavior. */
@media (max-width:760px){
  body.dp-menu-left .main-nav .sub-menu{display:block;grid-template-rows:none;overflow:visible;opacity:1;padding-top:3px !important;padding-bottom:6px !important;}
}
