/* PianoLookup visual system v4
   Based on approved home + brand design demos.
   Functional PHP/data logic is intentionally untouched. */

:root{
  --pl-lacquer:#14110F;
  --pl-lacquer-2:#221C18;
  --pl-ivory:#FBF9F5;
  --pl-paper:#FFFFFF;
  --pl-felt:#9E1B32;
  --pl-brass:#A9822F;
  --pl-ink:#1C1815;
  --pl-mute:#6E645C;
  --pl-rule:#DCD5CB;
  --pl-display:"Palatino Linotype",Palatino,"Iowan Old Style","Book Antiqua",Georgia,serif;
  --pl-ui:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

*{box-sizing:border-box}
html{background:var(--pl-ivory)}
body{
  margin:0!important;
  background:var(--pl-ivory)!important;
  color:var(--pl-ink)!important;
  font:16px/1.6 var(--pl-ui)!important;
  -webkit-font-smoothing:antialiased;
}
.wrap{
  width:auto!important;
  max-width:960px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:24px!important;
  padding-right:24px!important;
}
a{color:inherit}
:focus-visible{outline:2px solid var(--pl-felt)!important;outline-offset:2px}

/* header */
.site-header,.top{
  background:var(--pl-ivory)!important;
  border:0!important;
  border-bottom:1px solid var(--pl-rule)!important;
  box-shadow:none!important;
}
.site-header .header-inner,
.top .wrap{
  min-height:0!important;
  padding-top:18px!important;
  padding-bottom:18px!important;
  display:flex!important;
  align-items:baseline!important;
  justify-content:space-between!important;
  gap:24px!important;
  flex-wrap:wrap!important;
}
.logo,.top .brand{
  font:600 21px/1 var(--pl-display)!important;
  letter-spacing:.01em!important;
  color:var(--pl-ink)!important;
  text-decoration:none!important;
}
.logo em,.top .brand em{
  font-style:normal;
  color:var(--pl-felt);
}
.site-header nav,
.top nav,
.brands-main-nav,
.unified-brand-nav,
.service-main-nav{
  display:flex!important;
  gap:22px!important;
  align-items:center!important;
  flex-wrap:wrap!important;
}
.site-header nav a,
.top nav a,
.brands-main-nav a,
.unified-brand-nav a,
.service-main-nav a{
  color:var(--pl-mute)!important;
  text-decoration:none!important;
  border-bottom:1px solid transparent!important;
  padding:0 0 2px!important;
  font:14.5px/1.4 var(--pl-ui)!important;
}
.site-header nav a:hover,
.top nav a:hover,
.site-header nav a[aria-current="page"]{
  color:var(--pl-ink)!important;
  border-bottom-color:var(--pl-felt)!important;
  text-decoration:none!important;
}

/* headings */
h1,h2,h3{
  color:var(--pl-ink);
}
h1{
  font-family:var(--pl-display)!important;
  font-weight:400!important;
  letter-spacing:-.005em!important;
}
h2{
  font-family:var(--pl-display)!important;
  font-weight:600!important;
  letter-spacing:0!important;
}
.eyebrow{
  font:700 12px/1.3 var(--pl-ui)!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}

/* ---------------- HOME ---------------- */
body.pl-home .hero{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 42%),
    var(--pl-lacquer)!important;
  border-bottom:3px solid var(--pl-felt)!important;
  color:#F2EDE6!important;
}
body.pl-home .hero>.wrap{
  padding-top:52px!important;
  padding-bottom:42px!important;
}
body.pl-home .hero h1{
  margin:0 0 10px!important;
  color:#F2EDE6!important;
  font-size:clamp(30px,4.6vw,46px)!important;
  line-height:1.1!important;
}
body.pl-home .hero>div>p,
body.pl-home .hero .wrap>p{
  margin:0 0 30px!important;
  max-width:52ch!important;
  color:#B8AEA4!important;
  font-size:16px!important;
}
body.pl-home .card{
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
body.pl-home .grid{
  display:grid!important;
  grid-template-columns:1.15fr 1fr auto!important;
  gap:12px!important;
  align-items:end!important;
}
body.pl-home .field{
  text-align:left!important;
}
body.pl-home .field label{
  display:block!important;
  margin:0 0 7px!important;
  color:#9E948B!important;
  font:13px var(--pl-ui)!important;
}
body.pl-home .field select,
body.pl-home .field input{
  width:100%!important;
  height:52px!important;
  padding:0 14px!important;
  border-radius:3px!important;
  border:1px solid #4A423B!important;
  background:#0C0A09!important;
  color:#F5F1EA!important;
  font-family:var(--pl-ui)!important;
  box-shadow:none!important;
}
body.pl-home .field input{
  font-size:19px!important;
  font-variant-numeric:tabular-nums;
  letter-spacing:.09em!important;
}
body.pl-home .field input::placeholder{color:#5E554D!important}
body.pl-home .btn,
body.pl-home button[type="submit"]{
  height:52px!important;
  padding:0 26px!important;
  border:0!important;
  border-radius:3px!important;
  background:var(--pl-felt)!important;
  color:#fff!important;
  font:600 16px var(--pl-ui)!important;
  cursor:pointer;
  box-shadow:none!important;
}
body.pl-home .btn:hover,
body.pl-home button[type="submit"]:hover{background:#88182B!important}

body.pl-home .error{
  max-width:960px!important;
  margin:18px auto 0!important;
  border-radius:3px!important;
  background:#fff3ef!important;
  border:1px solid #edc7bb!important;
  color:#833820!important;
}

/* lookup result as instrument passport */
body.pl-home .result{
  max-width:960px!important;
  margin:-30px auto 0!important;
  padding:0!important;
  background:var(--pl-paper)!important;
  border:1px solid var(--pl-rule)!important;
  border-top:3px solid var(--pl-brass)!important;
  border-radius:3px!important;
  overflow:hidden!important;
  box-shadow:0 12px 30px -22px rgba(20,17,15,.5)!important;
}
body.pl-home .result+.result{margin-top:18px!important}
body.pl-home .result-head{
  padding:20px 28px!important;
  border-bottom:1px solid var(--pl-rule)!important;
  background:#fff!important;
}
body.pl-home .result-head .eyebrow{color:var(--pl-mute)!important}
body.pl-home .year{
  margin:6px 0 0!important;
  font:400 clamp(56px,9vw,88px)/.9 var(--pl-display)!important;
  letter-spacing:-.02em!important;
  color:var(--pl-ink)!important;
  font-variant-numeric:tabular-nums;
}
body.pl-home .age{
  margin-top:10px!important;
  color:var(--pl-mute)!important;
  font-size:14px!important;
}
body.pl-home .details{
  display:grid!important;
  grid-template-columns:repeat(2,1fr)!important;
  gap:0!important;
  background:#fff!important;
}
body.pl-home .detail{
  padding:15px 28px!important;
  border:0!important;
  border-bottom:1px dotted #E7E1D7!important;
}
body.pl-home .detail:nth-child(odd){border-right:1px solid var(--pl-rule)!important}
body.pl-home .detail small{
  color:var(--pl-mute)!important;
  font-size:13px!important;
  margin-bottom:3px!important;
}
body.pl-home .detail strong{
  color:var(--pl-ink)!important;
  font-size:15px!important;
  font-weight:600!important;
  font-variant-numeric:tabular-nums;
}
body.pl-home .result>.note{
  margin:0!important;
  padding:14px 28px!important;
  border:0!important;
  border-top:1px dashed var(--pl-rule)!important;
  background:#fff!important;
  color:var(--pl-mute)!important;
  font-size:13.5px!important;
}
body.pl-home .about{
  padding:48px 0!important;
  background:transparent!important;
}
body.pl-home .about-grid{gap:18px!important}
body.pl-home .mini{
  background:#F4F0E7!important;
  border:0!important;
  border-radius:3px!important;
  padding:20px!important;
}
body.pl-home .mini h2{
  font-size:20px!important;
  margin:0 0 6px!important;
}
body.pl-home .mini p{color:var(--pl-mute)!important}

/* ---------------- BRAND / SERIES ---------------- */
body.pl-brand .hero,
body.pl-series .hero{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 42%),
    var(--pl-lacquer)!important;
  border-bottom:3px solid var(--pl-felt)!important;
  color:#F2EDE6!important;
}
body.pl-brand .hero>.wrap,
body.pl-series .hero>.wrap{
  padding-top:26px!important;
  padding-bottom:40px!important;
}
body.pl-brand .hero .back-link,
body.pl-series .hero .back-link{
  display:inline-block!important;
  margin:0 0 16px!important;
  color:#9E948B!important;
  text-decoration:none!important;
  font-size:14px!important;
}
body.pl-brand .hero .back-link:hover,
body.pl-series .hero .back-link:hover{color:#E7E0D7!important}
body.pl-brand .hero .eyebrow,
body.pl-series .hero .eyebrow{color:#9E948B!important}
body.pl-brand .hero h1,
body.pl-series .hero h1{
  margin:0 0 10px!important;
  color:#F2EDE6!important;
  font-size:clamp(28px,4.2vw,42px)!important;
  line-height:1.12!important;
}
body.pl-brand .hero .lead,
body.pl-series .hero .lead{
  margin:0 0 26px!important;
  max-width:56ch!important;
  color:#B8AEA4!important;
  font-size:16px!important;
}
body.pl-brand .lookup,
body.pl-series .lookup{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:12px!important;
  align-items:end!important;
  max-width:620px!important;
  margin:0!important;
}
body.pl-brand .lookup label,
body.pl-series .lookup label{margin:0!important}
body.pl-brand .lookup label>span,
body.pl-series .lookup label>span{
  display:block!important;
  margin-bottom:7px!important;
  color:#9E948B!important;
  font-size:13px!important;
}
body.pl-brand .lookup input,
body.pl-series .lookup input{
  width:100%!important;
  height:52px!important;
  padding:0 14px!important;
  border-radius:3px!important;
  border:1px solid #4A423B!important;
  background:#0C0A09!important;
  color:#F5F1EA!important;
  font:19px var(--pl-ui)!important;
  font-variant-numeric:tabular-nums;
  letter-spacing:.09em!important;
  box-shadow:none!important;
}
body.pl-brand .lookup input::placeholder,
body.pl-series .lookup input::placeholder{color:#5E554D!important}
body.pl-brand .lookup button,
body.pl-series .lookup button{
  height:52px!important;
  padding:0 24px!important;
  border:0!important;
  border-radius:3px!important;
  background:var(--pl-felt)!important;
  color:#fff!important;
  font:600 16px var(--pl-ui)!important;
  box-shadow:none!important;
}
body.pl-brand .lookup button:hover,
body.pl-series .lookup button:hover{background:#88182B!important}

body.pl-brand .stats,
body.pl-series .stats{
  margin:20px 0 0!important;
  display:flex!important;
  gap:10px 28px!important;
  flex-wrap:wrap!important;
  color:#8E857C!important;
}
body.pl-brand .stats>div,
body.pl-series .stats>div{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  display:flex!important;
  gap:7px!important;
  align-items:baseline!important;
}
body.pl-brand .stats strong,
body.pl-series .stats strong{color:#D8CFC5!important;font-weight:600!important}
body.pl-brand .stats span,
body.pl-series .stats span{color:#8E857C!important;font-size:14px!important}

/* content spacing */
body.pl-brand main>.section,
body.pl-brand main>.info-section,
body.pl-series main>.section,
body.pl-series main>.info-section{
  padding-top:48px!important;
  padding-bottom:8px!important;
}
body.pl-brand main h2,
body.pl-series main h2{
  font-size:23px!important;
  margin:0 0 6px!important;
}
body.pl-brand .section-intro,
body.pl-series .section-intro{
  margin:0 0 20px!important;
  color:var(--pl-mute)!important;
  max-width:64ch!important;
}

/* production series accordion */
body.pl-brand .range-block,
body.pl-series .range-block,
body.pl-brand details,
body.pl-series details{
  margin:0 0 10px!important;
  border:1px solid var(--pl-rule)!important;
  border-radius:3px!important;
  background:var(--pl-paper)!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
body.pl-brand .range-block summary,
body.pl-series .range-block summary,
body.pl-brand details summary,
body.pl-series details summary{
  padding:13px 18px!important;
  background:#fff!important;
  color:var(--pl-ink)!important;
  cursor:pointer!important;
  font-weight:600!important;
  list-style-position:inside!important;
}
body.pl-brand details[open] summary,
body.pl-series details[open] summary{
  box-shadow:inset 0 3px 0 var(--pl-brass)!important;
  border-bottom:1px solid var(--pl-rule)!important;
}
body.pl-brand .range-block table,
body.pl-series .range-block table,
body.pl-brand details table,
body.pl-series details table{
  width:100%!important;
  border-collapse:collapse!important;
  background:#fff!important;
  font-variant-numeric:tabular-nums;
}
body.pl-brand table th,
body.pl-series table th{
  padding:10px 18px!important;
  color:var(--pl-mute)!important;
  background:#F7F4EE!important;
  font-size:12px!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
  text-align:left!important;
  border-bottom:1px solid var(--pl-rule)!important;
}
body.pl-brand table td,
body.pl-series table td{
  padding:7px 18px!important;
  border:0!important;
  border-bottom:1px dotted #E7E1D7!important;
  font-size:14.5px!important;
}
body.pl-brand table tr:last-child td,
body.pl-series table tr:last-child td{border-bottom:0!important}

/* location / production info cards if still present */
body.pl-brand .series-grid,
body.pl-series .series-grid{
  gap:16px!important;
}
body.pl-brand .series-card,
body.pl-series .series-card{
  background:#fff!important;
  border:1px solid var(--pl-rule)!important;
  border-radius:3px!important;
  box-shadow:none!important;
}
body.pl-brand dl,
body.pl-series dl{margin:0!important}

/* find serial hint */
body.pl-brand section.note,
body.pl-series section.note,
body.pl-brand .hint,
body.pl-series .hint{
  margin-top:28px!important;
  padding:16px 20px!important;
  border:0!important;
  border-left:3px solid var(--pl-brass)!important;
  border-radius:0!important;
  background:#F4F0E7!important;
  color:var(--pl-ink)!important;
}
body.pl-brand section.note a,
body.pl-series section.note a{color:var(--pl-felt)!important}

/* related makers */
body.pl-brand .related-makers{
  display:block!important;
}
body.pl-brand .related-maker-links{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;
  gap:0 26px!important;
  margin-top:12px!important;
}
body.pl-brand .related-maker-links a{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  padding:11px 2px!important;
  border:0!important;
  border-bottom:1px solid var(--pl-rule)!important;
  border-radius:0!important;
  background:transparent!important;
  text-decoration:none!important;
}
body.pl-brand .related-maker-links a:hover{background:#F3EFE8!important}

/* ---------------- BRANDS INDEX ---------------- */
body.pl-brands main.hero{
  padding-top:48px!important;
  padding-bottom:48px!important;
  text-align:left!important;
}
body.pl-brands main.hero h1{
  margin:0 0 8px!important;
  font-size:clamp(32px,4.5vw,44px)!important;
}
body.pl-brands main.hero>.lead{max-width:64ch!important;color:var(--pl-mute)!important}
body.pl-brands .brand-filter{
  border-radius:3px!important;
  border-color:var(--pl-rule)!important;
  background:#fff!important;
}
body.pl-brands .brand-card{
  border-radius:3px!important;
  border-color:var(--pl-rule)!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.pl-brands .brand-card:hover{background:#F3EFE8!important}
body.pl-brands .brand-popular a{
  border-radius:2px!important;
  border-color:var(--pl-rule)!important;
}
body.pl-brands .brand-control select{
  border-radius:3px!important;
  border-color:var(--pl-rule)!important;
}

/* footer */
.site-footer,.foot,footer{
  margin-top:48px!important;
  padding:24px 0!important;
  border-top:1px solid var(--pl-rule)!important;
  background:transparent!important;
  color:var(--pl-mute)!important;
  font-size:13.5px!important;
}
.footer-links{gap:18px!important}

/* mobile */
@media(max-width:760px){
  .wrap{padding-left:18px!important;padding-right:18px!important}
  .site-header .header-inner,.top .wrap{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:10px!important;
  }
  .site-header nav,.top nav,.brands-main-nav,.unified-brand-nav,.service-main-nav{
    gap:10px 16px!important;
  }

  body.pl-home .hero>.wrap{padding-top:38px!important;padding-bottom:48px!important}
  body.pl-home .grid{grid-template-columns:1fr!important}
  body.pl-home .btn,body.pl-home button[type="submit"]{width:100%!important}
  body.pl-home .details{grid-template-columns:1fr!important}
  body.pl-home .detail:nth-child(odd){border-right:0!important}
  body.pl-home .result{margin-top:-24px!important}

  body.pl-brand .hero>.wrap,
  body.pl-series .hero>.wrap{padding-top:22px!important;padding-bottom:34px!important}
  body.pl-brand .lookup,
  body.pl-series .lookup{grid-template-columns:1fr!important;max-width:none!important}
  body.pl-brand .lookup button,
  body.pl-series .lookup button{width:100%!important}

  body.pl-brand table th,
  body.pl-series table th,
  body.pl-brand table td,
  body.pl-series table td{padding-left:12px!important;padding-right:12px!important}

  body.pl-brand .related-maker-links{grid-template-columns:1fr!important}
}

/* === PianoLookup v4 tune start === */

/* Brand / series lookup:
   remove the old white card shell and keep only dark input + red action */
body.pl-brand .lookup,
body.pl-series .lookup{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin-top:0!important;
}

body.pl-brand .lookup label,
body.pl-series .lookup label{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
}

body.pl-brand .lookup input,
body.pl-series .lookup input{
  border-color:#493F38!important;
  background:#0C0A09!important;
  color:#F5F1EA!important;
}

/* Coverage should be secondary information, not another headline */
body.pl-brand .stats,
body.pl-series .stats{
  margin-top:16px!important;
  gap:6px!important;
}

body.pl-brand .stats > div,
body.pl-series .stats > div{
  display:flex!important;
  align-items:baseline!important;
  gap:6px!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

body.pl-brand .stats strong,
body.pl-series .stats strong{
  font-family:var(--pl-ui)!important;
  font-size:14px!important;
  line-height:1.4!important;
  font-weight:600!important;
  letter-spacing:0!important;
  color:#B9AFA5!important;
}

body.pl-brand .stats span,
body.pl-series .stats span{
  font-size:12px!important;
  line-height:1.4!important;
  color:#81776F!important;
}

/* Brand directory: denser list, same two-column structure */
body.pl-brands .brand-card{
  min-height:0!important;
  padding:17px 22px!important;
}

body.pl-brands .brand-card strong,
body.pl-brands .brand-card h2,
body.pl-brands .brand-card h3{
  font-size:18px!important;
  line-height:1.25!important;
  margin:0!important;
}

body.pl-brands .brand-card .brand-origin{
  font-size:10px!important;
  vertical-align:middle!important;
}

body.pl-brands .brand-current-origin{
  margin-top:5px!important;
  font-size:10.5px!important;
  line-height:1.3!important;
}

body.pl-brands .brand-list,
body.pl-brands .brands-grid{
  gap:12px 16px!important;
}

body.pl-brands .brand-popular{
  margin-bottom:12px!important;
}

body.pl-brands .brand-popular a{
  padding:7px 11px!important;
}

body.pl-brands .brand-controls{
  margin-bottom:14px!important;
}

@media(max-width:760px){
  body.pl-brand .lookup,
  body.pl-series .lookup{
    gap:10px!important;
  }

  body.pl-brand .stats,
  body.pl-series .stats{
    margin-top:13px!important;
  }

  body.pl-brands .brand-card{
    padding:15px 17px!important;
  }
}

/* === PianoLookup v4 tune end === */

/* === PianoLookup accordion affordance start === */

/* Make production-series rows obviously interactive */
body.pl-brand details > summary,
body.pl-series details > summary{
  position:relative!important;
  list-style:none!important;
  transition:background-color .14s ease!important;
}

body.pl-brand details > summary::-webkit-details-marker,
body.pl-series details > summary::-webkit-details-marker{
  display:none!important;
}

body.pl-brand details:not([open]) > summary:hover,
body.pl-series details:not([open]) > summary:hover{
  background:#F7F4EE!important;
}

/* Keep year coverage on the right, then add a compact +/- indicator */
body.pl-brand details > summary .pl-series-coverage,
body.pl-series details > summary .pl-series-coverage{
  margin-left:auto!important;
}

body.pl-brand details > summary::after,
body.pl-series details > summary::after{
  content:"+";
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  margin-left:8px!important;
  color:var(--pl-brass)!important;
  font:700 16px/1 var(--pl-ui)!important;
}

body.pl-brand details[open] > summary::after,
body.pl-series details[open] > summary::after{
  content:"−";
}

/* === PianoLookup accordion affordance end === */

/* === PL_PUBLIC_EXAMPLES_CSS_V1 START === */
.pl-public-examples-note{margin:10px 0 14px!important;padding:11px 13px!important;border-left:3px solid var(--pl-brass,#A9822F)!important;background:#F5F1E8!important;color:var(--pl-mute,#6E645C)!important;font-size:13.5px!important;line-height:1.5!important}
.pl-public-examples-none{margin:10px 0 4px!important;padding:12px 14px!important;border:1px solid var(--pl-rule,#DCD5CB)!important;background:#fff!important;color:var(--pl-mute,#6E645C)!important;font-size:13.5px!important}
/* === PL_PUBLIC_EXAMPLES_CSS_V1 END === */
