/* PUYU product, company and quality pages. Shared primitives live in corporate.css. */
.content-page,
.product-page { background: #fff; }

.content-hero,
.product-hero {
  padding: 64px 0;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.content-hero h1,
.product-hero h1 {
  margin: 0;
  max-width: 22ch;
  font-size: clamp(38px, 4.1vw, 60px);
  line-height: 1.09;
  font-weight: 500;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.content-hero .lead,
.product-hero .lead {
  max-width: 65ch;
  margin: 24px 0 0;
  font-size: 18px;
  line-height: 1.65;
  color: var(--muted);
}
.content-hero .actions,
.product-hero .actions { margin: 28px 0 0; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.product-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
}
.product-hero-copy { min-width: 0; }
.product-hero .breadcrumb {
  margin: 0 0 28px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}
.breadcrumb a { color: var(--accent); text-underline-offset: 4px; }
.product-hero-photo { margin: 0; background: #fff; }
.product-hero-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 6 / 5;
  object-fit: contain;
}
.product-hero-photo figcaption {
  border-top: 1px solid var(--line);
  padding: 14px 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.section-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 6vw, 80px);
  align-items: end;
  margin-bottom: 36px;
}
.section-head > p { margin: 0; color: var(--muted); line-height: 1.75; }
.section-head h2 { margin: 0; max-width: 22ch; }
.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.product-card,
.product-card.dark,
.product-card.light {
  display: flex;
  flex-direction: column;
  position: relative;
  min-width: 0;
  padding: 28px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
}
.product-card .num {
  display: block;
  margin-bottom: 18px;
  color: var(--accent);
  font-size: 13px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.product-card .card-product-photo { margin: 0 0 24px; background: var(--paper); }
.product-card .card-product-photo img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: contain;
}
.product-card .card-product-photo figcaption {
  padding: 10px 12px;
  background: #fff;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.product-card .tag,
.product-card.dark .tag { margin: 0 0 12px; color: var(--accent); font-size: 11px; letter-spacing: .08em; }
.product-card h3 { margin: 0 0 14px; font-size: 28px; line-height: 1.2; font-weight: 500; letter-spacing: -.02em; }
.product-card > p:not(.tag) { margin: 0 0 22px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.product-card dl { margin: auto 0 24px; }
.product-card dl > div {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.5;
}
.product-card dt { color: var(--muted); }
.product-card dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.product-link,
.product-card.dark .product-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 44px;
  color: var(--accent);
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.product-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
  margin-block: 0;
  padding-block: 14px;
  border: 0;
  border-bottom: 1px solid var(--line);
}
.product-section-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}
.product-section-nav a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 6px; }
.product-section-nav a:focus-visible,
.configuration-choice:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
#application-specifications,
#product-configurations,
#order-details,
#buyer-questions { scroll-margin-top: 100px; }
.content-grid,
.detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: clamp(40px, 6vw, 88px);
  align-items: start;
}
.detail-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.content-copy,
.detail-copy { min-width: 0; }
.content-copy h2,
.detail-copy h2 { margin: 0 0 24px; max-width: 24ch; }
.content-copy h3,
.detail-copy h3 { margin: 36px 0 14px; font-size: 23px; line-height: 1.3; font-weight: 500; }
.content-copy p,
.content-copy li,
.detail-copy p,
.detail-copy li { max-width: 70ch; color: var(--muted); line-height: 1.8; }
.content-copy p,
.detail-copy p { margin: 0 0 20px; }
.content-copy ul,
.detail-copy ul { margin: 0 0 24px; padding-left: 20px; }
.content-copy li,
.detail-copy li { padding-left: 4px; margin: 8px 0; }
.content-copy a,
.detail-copy a { color: var(--accent); text-underline-offset: 4px; }
.fact-panel,
.spec-table { min-width: 0; padding: 30px; background: var(--paper); border: 1px solid var(--line); }
.fact-panel h2,
.spec-table h2 { margin: 0 0 24px; font-size: 25px; line-height: 1.2; letter-spacing: -.02em; }
.fact-panel dl,
.spec-table dl { margin: 0; }
.fact-panel dl > div,
.spec-table dl > div { padding: 16px 0; border-top: 1px solid var(--line); }
.fact-panel dt,
.spec-table dt { color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; }
.fact-panel dd,
.spec-table dd { margin: 6px 0 0; font-size: 15px; line-height: 1.65; font-weight: 500; overflow-wrap: anywhere; }
.fact-panel .btn { margin-top: 24px; }

.quote-note,
.term-note,
.method-note,
.rfq-example {
  margin: 24px 0 0;
  padding: 18px 20px;
  background: #eaf2f3;
  border: 0;
  border-left: 2px solid var(--accent);
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.quote-note strong,
.term-note strong,
.method-note strong,
.rfq-example strong { color: var(--ink); }
.spec-table .quote-note { padding: 16px 0 0; border: 0; border-top: 1px solid var(--line); background: transparent; font-size: 13px; }
.spec-guide { background: #fff; border-top: 1px solid var(--line); }
.spec-guide h2 { max-width: 32ch; margin-bottom: 24px; }
.spec-guide > .shell > p { max-width: 85ch; color: var(--muted); line-height: 1.75; }
.configuration-hint { margin: 22px 0; font-size: 15px; }
.configuration-choice { display: inline-flex; align-items: center; min-height: 44px; color: var(--accent); font-weight: 600; text-underline-offset: 4px; }
.table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); background: #fff; margin-top: 24px; scrollbar-color: #7899a0 #eaf0f2; }
.table-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.tech-table { width: 100%; border-collapse: collapse; min-width: 620px; font-size: 15px; font-variant-numeric: tabular-nums; }
.tech-table th,
.tech-table td { padding: 18px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); line-height: 1.7; overflow-wrap: anywhere; }
.tech-table thead th { background: var(--navy); color: #fff; font-size: 13px; font-weight: 500; letter-spacing: .015em; text-transform: none; }
.tech-table tbody th { width: 30%; background: var(--paper); color: var(--ink); font-size: 14px; font-weight: 500; letter-spacing: normal; text-transform: none; }
.tech-table tbody td { color: var(--muted); }
.tech-table tbody td:first-child { color: var(--ink); font-weight: 500; }
.tech-table tbody tr:nth-child(even) td { background: #f7f9fa; }
.tech-table tbody tr:last-child > * { border-bottom: 0; }
.configuration-table { min-width: 940px; }
.configuration-table th,
.configuration-table td { width: 20%; }
.inspection-matrix { min-width: 900px; }
.inspection-matrix tbody th { width: 21%; }
.inspection-matrix caption { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.inspection-intro { max-width: 80ch; color: var(--muted); line-height: 1.75; }

.application-specs { background: var(--paper); }
.application-specs h2 { margin-bottom: 24px; max-width: 30ch; }
.application-intro { max-width: 80ch; color: var(--muted); line-height: 1.75; }
.application-grid,
.coating-grid,
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 32px 0; }
.application-grid article,
.coating-grid article,
.check-grid article { min-width: 0; padding: 28px 24px; border: 1px solid var(--line); background: #fff; }
.application-grid h3,
.coating-grid h3,
.check-grid h3 { margin: 0 0 16px; color: var(--ink); font-size: 22px; line-height: 1.3; font-weight: 500; }
.application-grid p,
.coating-grid p,
.check-grid p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.application-note { margin: 20px 0 0; max-width: 90ch; color: var(--muted); font-size: 14px; line-height: 1.75; }
.application-specs .rfq-example { background: #fff; }
.band { background: var(--navy); color: #fff; }
.band .section-head > p { color: #c3d1d7; }
.band .check-grid article { border-color: #38505e; background: #1a3544; }
.band .check-grid h3 { color: #fff; }
.band .check-grid p { color: #c3d1d7; }
.anodized-checks { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.product-gallery > p,
.about-photo-section > p { max-width: 80ch; color: var(--muted); line-height: 1.75; }
.product-gallery-grid,
.about-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 32px; }
.product-gallery-card,
.about-photo-grid figure { margin: 0; border: 1px solid var(--line); background: var(--paper); }
.product-gallery-card img { display: block; width: 100%; height: 300px; object-fit: contain; }
.product-gallery-card figcaption,
.about-photo-grid figcaption { padding: 16px 20px; border-top: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 13px; line-height: 1.65; }
.product-gallery-card.line-card { grid-column: 1 / -1; }
.product-gallery-card.line-card img { height: auto; max-height: 340px; object-fit: contain; }
.about-photo-grid img { display: block; width: 100%; height: 360px; object-fit: cover; }

.anodized-showcase { padding: 40px 0; background: #fff; border-bottom: 1px solid var(--line); }
.finish-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); min-height: 180px; border: 1px solid var(--line); }
.finish { display: flex; align-items: end; padding: 16px; min-width: 0; border-right: 1px solid #fff; }
.finish:last-child { border-right: 0; }
.finish span { padding: 6px 9px; background: var(--navy); color: #fff; font-size: 11px; line-height: 1.4; }
.finish.natural { background: linear-gradient(115deg, #b4bab8, #f1f1eb 50%, #c6cbc8); }
.finish.bronze { background: linear-gradient(115deg, #624a37, #a88660 50%, #70513d); }
.finish.charcoal { background: linear-gradient(115deg, #252d31, #535d64 50%, #2e363a); }
.finish.brushed { background: repeating-linear-gradient(90deg, #b8b9b4 0, #e7e7e1 2px, #a7aaa8 4px); }
.finish.embossed { background: radial-gradient(circle at 10px 10px, #e6e6df 0 2px, #aeb2af 3px 5px, #d0d1cb 6px 10px); background-size: 20px 20px; }
.visual-disclaimer { margin-top: 16px; margin-bottom: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }

.faq { background: var(--paper); }
.faq h2 { margin-bottom: 32px; }
.faq-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.faq-list article { min-width: 0; border-top: 1px solid var(--line); padding: 28px 0; }
.faq-list h3 { margin: 0 0 14px; font-size: 21px; font-weight: 500; line-height: 1.35; color: var(--ink); }
.faq-list p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.related-products { border-top: 1px solid var(--line); }
.related-products h2 { font-size: 30px; margin-bottom: 24px; }
.related-products p { max-width: 80ch; color: var(--muted); line-height: 1.75; }
.related-products a { color: var(--accent); text-underline-offset: 4px; }
.product-cta { background: var(--navy); color: #fff; }
.product-cta .shell { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.product-cta h2 { max-width: 24ch; margin: 0; color: #fff; }
.product-cta .btn { flex: 0 0 auto; background: #fff; color: var(--navy); }
.product-cta .btn:hover { background: #eaf2f3; color: var(--navy); }

@media (max-width: 1050px) {
  .content-grid,
  .detail-grid { gap: 36px; }
  .fact-panel,
  .spec-table { padding: 24px; }
  .application-grid { gap: 16px; }
  .application-grid article { padding: 24px 20px; }
  .anodized-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-hero-layout { gap: 32px; }
}
@media (max-width: 800px) {
  .content-hero,
  .product-hero { padding: 48px 0; }
  .product-hero-layout,
  .content-grid,
  .detail-grid,
  .section-head { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .product-hero h1 { max-width: 24ch; }
  .product-hero-photo { max-width: 600px; width: 100%; }
  .product-hero-photo img { height: 300px; aspect-ratio: auto; }
  .application-grid,
  .coating-grid,
  .check-grid { grid-template-columns: minmax(0, 1fr); }
  .anodized-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-grid { gap: 20px; }
  .product-card { padding: 22px; }
  .product-card h3 { font-size: 25px; }
  .product-card dl > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .product-card .card-product-photo img { height: 180px; }
  .product-gallery-card img { height: 250px; }
  .about-photo-grid img { height: 280px; }
  .product-cta .shell { align-items: start; flex-direction: column; gap: 24px; }
}
@media (max-width: 560px) {
  .content-hero,
  .product-hero { padding: 36px 0 40px; }
  .content-hero h1,
  .product-hero h1 { font-size: clamp(32px, 8.7vw, 42px); line-height: 1.13; letter-spacing: -.025em; }
  .content-hero .lead,
  .product-hero .lead { margin-top: 20px; font-size: 16px; line-height: 1.75; }
  .product-hero .breadcrumb { margin-bottom: 20px; font-size: 12px; }
  .product-hero-photo img { height: 230px; }
  .product-section-nav { gap: 0 24px; padding-block: 12px; }
  .product-section-nav a { font-size: 13px; }
  .product-grid,
  .product-gallery-grid,
  .about-photo-grid,
  .anodized-checks,
  .faq-list { grid-template-columns: minmax(0, 1fr); }
  .product-card { padding: 20px; }
  .product-card h3 { font-size: 26px; }
  .product-card .card-product-photo img { height: 210px; }
  .product-card dl > div { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 14px; }
  .fact-panel,
  .spec-table { padding: 24px 20px; }
  .fact-panel h2,
  .spec-table h2 { font-size: 24px; }
  .quote-note,
  .term-note,
  .method-note,
  .rfq-example { padding: 16px; }
  .spec-table .quote-note { padding: 16px 0 0; }
  .tech-table th,
  .tech-table td { padding: 15px 16px; }
  .application-grid h3,
  .coating-grid h3,
  .check-grid h3 { font-size: 21px; }
  .product-gallery-card img { height: 240px; }
  .about-photo-grid img { height: 250px; }
  .finish-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); min-height: 150px; }
  .finish { padding: 8px 4px; align-items: center; justify-content: center; }
  .finish span { writing-mode: vertical-rl; padding: 8px 5px; font-size: 10px; }
  .faq-list article { padding: 24px 0; }
  .faq-list h3 { font-size: 21px; }
  .related-products h2 { font-size: 28px; }
}
@media print {
  .content-hero,
  .product-hero { padding: 24px 0; background: #fff; }
  .product-section-nav,
  .product-cta { display: none; }
  .table-wrap { overflow: visible; }
  .tech-table,
  .configuration-table,
  .inspection-matrix { min-width: 0; font-size: 10px; }
  .tech-table th,
  .tech-table td { padding: 8px; }
  .product-grid,
  .product-gallery-grid,
  .content-grid,
  .detail-grid { break-inside: avoid; }
}
