/*
Theme Name: Rico Lebrun Estate
Theme URI: https://ricolebrun.com
Author: The Estate of Rico Lebrun
Description: Custom archival/biographical theme for the Rico Lebrun Estate website, built to match the project's approved demo design (dark ground, Playfair Display serif headings, Inter sans body, rust/gold accent palette).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rico-lebrun
*/

:root{
  --bg:#0a0a0a;
  --bg-panel:#111110;
  --bg-navy-1:#0c1119;
  --bg-navy-2:#08090b;
  --ink:#f1ece0;
  --ink-soft:#a49d90;
  --ink-mute:#6f6a5f;
  --gold:#c3a05f;
  --gold-dim:#8a733f;
  --rust:#9c3a26;
  --rust-dim:#5e2417;
  --line:rgba(241,236,224,0.10);
  --line-strong:rgba(241,236,224,0.22);
  --radius:2px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Playfair Display',serif;
  font-weight:500;
  margin:0;
  color:var(--ink);
}
p{margin:0 0 1em 0; color:var(--ink-soft);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 32px;}
@media(max-width:640px){.container{padding:0 20px;}}

:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

.eyebrow{
  font-size:11.5px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
  display:inline-block;
  margin-bottom:14px;
}

/* ---------- HEADER / NAV ---------- */
header.topnav{
  position:sticky; top:0; z-index:100;
  background:rgba(10,10,10,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1180px; margin:0 auto; padding:18px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
@media(max-width:640px){.nav-inner{padding:16px 20px;}}
.logo{display:flex; flex-direction:column; line-height:1.1; cursor:pointer;}
.logo .name{font-family:'Playfair Display',serif; font-size:19px; letter-spacing:0.02em; color:var(--rust); font-weight:600;}
.logo .dates{font-size:10px; letter-spacing:0.22em; color:var(--ink-mute); margin-top:3px;}
nav.links{display:flex; gap:34px;}
nav.links a{
  font-size:11.5px; letter-spacing:0.13em; text-transform:uppercase;
  color:var(--ink-soft); font-weight:600; padding-bottom:5px;
  border-bottom:1px solid transparent; transition:color .2s, border-color .2s;
  white-space:nowrap;
}
nav.links a:hover{color:var(--ink);}
nav.links a.active{color:var(--gold); border-bottom-color:var(--gold);}
@media(max-width:980px){ nav.links{display:none;} }
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{width:22px; height:1.5px; background:var(--ink);}
@media(max-width:980px){ .burger{display:flex;} }
.mobile-menu{display:none; flex-direction:column; border-top:1px solid var(--line); background:var(--bg);}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  padding:16px 20px; font-size:12.5px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--ink-soft); border-bottom:1px solid var(--line); font-weight:600;
}
.mobile-menu a.active{color:var(--gold);}

/* ---------- PAGE WRAPPER ---------- */
.hero{
  background:linear-gradient(160deg, var(--bg-navy-1) 0%, var(--bg-navy-2) 65%);
  padding:96px 0 76px;
  border-bottom:1px solid var(--line);
}
.hero h1{font-size:clamp(44px,7vw,78px); letter-spacing:-0.01em;}
.hero .sub{
  margin-top:18px; font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink-mute); font-weight:500;
}
.section{padding:72px 0;}
.section.tight{padding:48px 0;}
.section + .section{border-top:1px solid var(--line);}

.lede{font-size:20px; line-height:1.65; color:var(--ink-soft); max-width:640px; font-family:'Playfair Display',serif; font-style:italic;}

.notice{
  border:1px dashed var(--line-strong); border-radius:var(--radius);
  padding:16px 20px; font-size:13px; color:var(--ink-mute);
  margin:0 0 44px 0; max-width:720px;
}
.notice strong{color:var(--gold-dim); font-weight:600;}

/* Biography / Works outline blocks (fallback for plain content, not accordion) */
.bio-block{display:grid; grid-template-columns:200px 1fr; gap:36px; padding:30px 0; border-top:1px solid var(--line);}
.bio-block:last-of-type{border-bottom:1px solid var(--line);}
@media(max-width:760px){ .bio-block{grid-template-columns:1fr; gap:10px;} }
.bio-block .years{font-size:12px; letter-spacing:0.1em; color:var(--gold-dim); text-transform:uppercase; padding-top:4px;}
.bio-block h3{font-size:22px; margin-bottom:10px; font-weight:500;}
.bio-block p{font-size:15px;}
sup.fn{color:var(--gold); font-size:11px; cursor:default; margin-left:1px;}

.sources{margin-top:56px; padding-top:36px; border-top:1px solid var(--line);}
.sources h4{font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:18px; font-family:'Inter',sans-serif; font-weight:600;}
.sources ol{margin:0; padding-left:20px; color:var(--ink-mute); font-size:12.5px;}
.sources li{margin-bottom:9px; line-height:1.55;}
.sources a{color:var(--ink-soft); border-bottom:1px solid var(--line-strong);}
.sources a:hover{color:var(--gold);}

/* ---------- Collections / Estate grids ---------- */
.inst-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; margin-top:8px;}
.inst-card{
  border:1px solid var(--line); padding:26px 24px; cursor:pointer;
  transition:border-color .2s, background .2s;
}
.inst-card:hover{border-color:var(--line-strong); background:var(--bg-panel);}
.inst-card h3{font-size:19px; font-weight:500; margin-bottom:6px;}
.inst-card .loc{font-size:12px; color:var(--ink-mute); letter-spacing:0.04em;}
.inst-card .count{margin-top:14px; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-dim);}

.backlink{
  display:inline-flex; align-items:center; gap:8px; font-size:12px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--ink-mute); margin-bottom:28px; cursor:pointer; font-weight:600;
}
.backlink:hover{color:var(--gold);}

.work-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:30px 24px;}
.work-card .thumb{
  aspect-ratio:6/5; width:100%;
  background:linear-gradient(135deg, #1a1a1a 0%, #131313 100%);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.work-card .thumb svg{width:34px; height:34px; opacity:0.28;}
.work-card .thumb img{width:100%; height:100%; object-fit:contain; display:block;}
.thumb.clickable{cursor:pointer;}
.thumb.clickable img{transition:opacity .2s;}
.thumb.clickable:hover img{opacity:0.85;}

/* ---------- Lightbox ---------- */
#lightbox{
  display:none; position:fixed; inset:0; z-index:1000;
  background:rgba(6,6,6,0.94); padding:56px 24px; overflow:auto;
  align-items:center; justify-content:center; flex-direction:column;
}
#lightbox.open{display:flex;}
#lightbox img{max-width:min(92vw,1100px); max-height:76vh; object-fit:contain; border:1px solid var(--line-strong);}
#lightbox .lb-caption{margin-top:20px; font-size:13.5px; color:var(--ink-soft); text-align:center; max-width:700px;}
#lightbox .lb-hint{margin-top:8px; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-mute);}
#lightbox .lb-close{
  position:fixed; top:22px; right:28px; background:none; border:1px solid var(--line-strong);
  color:var(--ink-soft); width:38px; height:38px; font-size:18px; cursor:pointer; line-height:1;
}
#lightbox .lb-close:hover{border-color:var(--gold); color:var(--gold);}
@media(max-width:640px){
  #lightbox{padding:70px 14px 24px;}
  #lightbox .lb-close{top:14px; right:14px;}
}
.work-card .thumb .ph-label{
  position:absolute; bottom:10px; left:0; right:0; text-align:center;
  font-size:9.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mute);
}
.work-card .meta{padding-top:13px;}
.work-card .medium{font-size:10.5px; letter-spacing:0.09em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:6px;}
.work-card h4{font-size:16px; font-weight:500; margin-bottom:5px; line-height:1.3;}
.work-card .dims{font-size:12px; color:var(--ink-mute);}

.empty-card{
  aspect-ratio:6/5; border:1px dashed var(--line-strong);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  color:var(--ink-mute); text-align:center; padding:20px;
}
.empty-card svg{width:26px; height:26px; opacity:0.4;}
.empty-card .t1{font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-mute);}
.empty-card .t2{font-size:11px; color:var(--ink-mute); opacity:0.7;}

.subtabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:40px;}
.subtabs button, .subtabs a{
  background:none; border:1px solid var(--line); color:var(--ink-soft);
  padding:10px 20px; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase;
  cursor:pointer; font-family:'Inter',sans-serif; font-weight:600; transition:all .2s;
  display:inline-block;
}
.subtabs button:hover, .subtabs a:hover{border-color:var(--line-strong); color:var(--ink);}
.subtabs button.active, .subtabs a.active{border-color:var(--gold); color:var(--gold);}

.est-panel{display:none;}
.est-panel.active{display:block;}
.est-note{font-size:13px; color:var(--ink-mute); margin-bottom:30px; max-width:600px;}

/* ---------- Accordion (Life / Works) ---------- */
.accordion-list{border-top:1px solid var(--line);}
.accordion-item{border-bottom:1px solid var(--line);}
.accordion-header{
  width:100%; display:grid; grid-template-columns:130px 1fr 20px; align-items:center; gap:24px;
  text-align:left; background:none; border:none; cursor:pointer;
  font-family:inherit; padding:22px 0; color:var(--ink);
}
.accordion-header .yr{font-size:12px; letter-spacing:0.1em; color:var(--gold-dim); text-transform:uppercase;}
.accordion-header .ttl{font-family:'Playfair Display',serif; font-size:22px; font-weight:500; transition:color .15s;}
.accordion-header .chev{font-size:14px; color:var(--ink-mute); transition:transform .2s;}
.accordion-header:hover .ttl{color:var(--gold);}
.accordion-item.open .accordion-header .ttl{color:var(--gold);}
.accordion-item.open .accordion-header .chev{transform:rotate(45deg);}
.accordion-body{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.accordion-body-inner{padding:0 0 28px 0; max-width:640px;}
@media(max-width:640px){
  .accordion-header{grid-template-columns:1fr 16px; row-gap:4px;}
  .accordion-header .yr{grid-column:1/2; grid-row:1;}
  .accordion-header .ttl{grid-column:1/2; grid-row:2; font-size:22px;}
  .accordion-header .chev{grid-row:1/3;}
}

/* ---------- Texts / Bibliography ---------- */
.text-col h2{font-size:26px; margin-bottom:26px;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media(max-width:820px){ .two-col{grid-template-columns:1fr; gap:48px;} }
.text-entry{padding:18px 0; border-top:1px solid var(--line);}
.text-entry:last-child{border-bottom:1px solid var(--line);}
.text-entry .ttl{font-family:'Playfair Display',serif; font-size:16.5px; margin-bottom:5px;}
.text-entry .meta2{font-size:11.5px; color:var(--ink-mute); letter-spacing:0.03em;}

.biblio-list{max-width:820px;}
.biblio-entry{
  display:grid; grid-template-columns:64px 1fr; gap:22px;
  padding:20px 0; border-top:1px solid var(--line); font-size:14.5px; color:var(--ink-soft);
}
.biblio-entry:last-child{border-bottom:1px solid var(--line);}
.biblio-entry .tag{font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-dim); padding-top:2px;}
.biblio-entry .cite b{color:var(--ink); font-weight:500;}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px;}
@media(max-width:860px){ .contact-grid{grid-template-columns:1fr; gap:44px;} }
label{display:block; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:9px; font-weight:600;}
.field{margin-bottom:24px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media(max-width:520px){.row2{grid-template-columns:1fr;}}
input, select, textarea{
  width:100%; background:transparent; border:1px solid var(--line-strong);
  color:var(--ink); padding:13px 14px; font-family:'Inter',sans-serif; font-size:14px;
  border-radius:var(--radius);
}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--gold);}
textarea{min-height:140px; resize:vertical;}
select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23a49d90'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center;}
.send-btn{
  background:none; border:1px solid var(--gold); color:var(--gold);
  padding:14px 30px; font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
  cursor:pointer; font-weight:600; display:inline-flex; align-items:center; gap:10px;
  transition:background .2s, color .2s;
}
.send-btn:hover{background:var(--gold); color:#0a0a0a;}
.confirm{
  display:none; border:1px solid var(--line-strong); padding:18px 20px; margin-top:20px;
  font-size:13.5px; color:var(--ink-soft);
}
.confirm.show{display:block;}
.info-panel{border:1px solid var(--line); padding:30px 28px; height:fit-content;}
.info-panel h3{font-size:20px; margin-bottom:22px; font-weight:500;}
.info-item{margin-bottom:20px;}
.info-item .lbl{font-size:10.5px; letter-spacing:0.09em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:5px;}
.info-item .val{font-size:13.5px; color:var(--ink-soft);}

footer.site-footer{border-top:1px solid var(--line); padding:36px 0; text-align:center;}
footer.site-footer p{font-size:11.5px; color:var(--ink-mute); margin:0; letter-spacing:0.04em;}

/* ---------- WordPress defaults harmonized ---------- */
.alignwide{max-width:1180px; margin-left:auto; margin-right:auto;}
.wp-caption, figure{margin:0;}
.screen-reader-text{position:absolute; left:-9999px;}
