/* RAYSUN — archive / single templates (products, solutions, projects, resources). */

/* Cards */
.card-media{display:block;border-radius:var(--r-img);overflow:hidden;border:1px solid var(--line)}
.card-media img{width:100%;height:100%;object-fit:cover;display:block}
.ph-frame{background:var(--grey);border:1px solid var(--line)}

/* Specimen plate shown while a product has no photo yet: the construction
   name stands in for the image slot rather than a grey placeholder box. */
.ph-plate{
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--paper-2);
}
.ph-plate-name{
  font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.04em;
  text-transform:uppercase;color:var(--blue-deep);padding:0 24px;max-width:86%;
}
.card-body{display:flex;flex-direction:column;gap:10px;flex:1}
.card-body h3{margin:0}
.card-body h3 a{color:var(--ink);text-decoration:none}
.card-body h3 a:hover{color:var(--blue)}
.card-meta{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.card-link{font-size:14px;font-weight:600;color:var(--blue);text-decoration:none}
.card-link:hover{color:var(--blue-deep)}
.project-card .card-link{margin-top:auto}

/* Product detail */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:14px}
.gallery-grid .frame img{width:100%;height:100%;object-fit:cover}
.split{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start;margin-top:36px}
.aside{display:flex;flex-direction:column;gap:20px}
.panel{border:1px solid var(--line);border-radius:var(--r);background:var(--white);padding:24px}
.panel h3{font-size:18px;margin-bottom:14px}
.panel p{font-size:14px}
.panel .btn{margin-top:16px;width:100%}

/* Lists */
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.check-list li{position:relative;padding-left:22px;color:var(--muted);font-size:15px;line-height:1.5}
.check-list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:2px;background:var(--blue)}
.decision-list{margin:16px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:16px}
.decision-list li{border:1px solid var(--line);border-radius:var(--r);background:var(--white);padding:20px 24px;display:flex;flex-direction:column;gap:6px}
.decision-list strong{font-size:16px;color:var(--ink)}
.decision-list span{font-size:15px;color:var(--muted)}
.decision-list em{font-size:14px;color:var(--blue);font-style:normal}

/* WYSIWYG rich text */
.rich{color:var(--muted)}
.rich>*+*{margin-top:16px}
.rich h2,.rich h3{color:var(--ink);margin-top:32px}
.rich ul,.rich ol{padding-left:22px}
.rich li{margin-top:8px}
.rich strong{color:var(--ink)}

/* Empty state */
.empty-state{
  border:1px dashed var(--control);border-radius:var(--r);background:var(--white);
  padding:56px 32px;text-align:center;
}
.empty-state h2{margin-bottom:10px}
.empty-state p{max-width:52ch;margin-inline:auto}
.empty-state .btn{margin-top:20px}

/* Pagination */
.pagination{margin-top:44px}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.pagination .nav-links a,.pagination .nav-links span{
  min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--r-control);font-size:14px;
  color:var(--ink);text-decoration:none;padding:0 12px;background:var(--white);
}
.pagination .nav-links a:hover{border-color:var(--blue);color:var(--blue)}
.pagination .nav-links .current{background:var(--blue);border-color:var(--blue);color:#fff}

/* CTA band */
.cta-band-inner{display:flex;justify-content:space-between;align-items:center;gap:48px}
.cta-band-copy{max-width:60ch}
.cta-band-copy .lead{color:var(--paper-2)}
.cta-band .btn-row{margin-top:0;flex:none}

/* Contact channels */
.contact-channels{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.contact-channels li{display:flex;flex-direction:column;gap:2px}
.contact-channels .cc-label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.contact-channels a{font-size:16px;color:var(--blue);text-decoration:none}
.contact-channels a:hover{color:var(--blue-deep)}

/* Search form */
.search-form{display:flex;gap:10px;max-width:560px}
.search-form input[type="search"]{
  flex:1;min-height:50px;padding:12px 14px;border-radius:var(--r-control);
  border:1px solid var(--control);background:var(--white);font-size:15px;color:var(--ink);
}
.search-form input:focus{border-color:var(--blue);outline:none;box-shadow:var(--focus-ring)}

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

/* Inquiry panel */
.inquiry-panel{
  border:1px solid var(--line);border-radius:var(--r);background:var(--white);
  padding:32px;position:static;
}
.inquiry-panel h2{margin-bottom:8px}
.inquiry-panel>p{font-size:15px;margin-bottom:24px}
.inquiry-panel .grid{gap:16px}
.inquiry-panel .btn{width:100%;margin-top:4px}
.opt{color:var(--muted);font-weight:400;font-size:13px}

@media(max-width:1023px){
  .split{grid-template-columns:1fr;gap:36px}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .cta-band-inner{display:block}
  .cta-band .btn-row{margin-top:24px}
  .inquiry-panel{position:static}
}
@media(max-width:767px){
  .gallery-grid{grid-template-columns:1fr}
}

/* Local product-detail variants; shared tokens and other page layouts stay intact. */
.single-rs_product .gallery-grid{gap:16px;margin-bottom:24px}
.product-gallery-item{margin:0;min-width:0}
.product-gallery-item .img-caption{margin-top:12px;font-size:13px;line-height:1.6}
.product-image-pending{
  display:flex;align-items:center;justify-content:center;min-height:320px;
  padding:32px;background:var(--grey);border:1px solid var(--line);
  border-radius:var(--r-img);text-align:center;
}
.product-image-pending span{
  font-family:var(--font-mono);font-size:13px;line-height:1.6;
  color:var(--muted);overflow-wrap:anywhere;
}
.single-rs_product .split{margin-top:32px;gap:48px}
.single-rs_product .aside{gap:24px}
.single-rs_product .panel h3{margin-bottom:16px}
.single-rs_product .check-list{gap:12px}
.single-rs_product .rich{font-variant-numeric:tabular-nums}
.single-rs_product .rich code{font-family:var(--font-mono);font-size:13px}
.product-selection-tip{margin-top:32px}
.product-edge-backing,.product-next-steps{margin-top:48px}
.product-edge-backing .ptable{table-layout:fixed}
.product-edge-backing .ptable caption{
  text-align:left;font-size:20px;font-weight:600;color:var(--ink);padding:0 0 16px;
}
.product-edge-backing .ptable th,.product-edge-backing .ptable td{
  padding:16px 24px;font-size:15px;overflow-wrap:anywhere;
}
.product-edge-backing .ptable th{width:32%}
.product-edge-backing>p{margin-top:16px}
.product-next-steps h2{margin-bottom:16px}
.product-next-steps ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}
.product-next-steps a{
  display:flex;align-items:center;min-height:48px;padding:12px 16px;
  border:1px solid var(--line);border-radius:var(--r-control);font-size:15px;
}

/* Contact: permanent labels, one field per row, bounded form width. */
.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,640px);gap:48px;margin-top:0}
.contact-direct{margin-top:32px}
.contact-section .inquiry-panel{width:100%;max-width:640px;min-width:0;position:static;padding:32px}
.contact-section .inquiry-panel form{display:block;min-width:0}
.contact-section .field{margin-bottom:24px}
.contact-section .field label{margin-bottom:8px;font-size:14px}
.contact-section .field input,.contact-section .field textarea{font-size:15px;min-height:48px;padding:12px 16px}
.contact-section .field textarea{min-height:160px}
.contact-section #f-quantity,.contact-section #f-date{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.contact-section .field .hint{font-size:13px;line-height:1.6;margin-top:8px}
.contact-section .field .inquiry-upload-guidance{margin:0 0 16px}
.contact-section .inquiry-upload{padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--grey)}
.contact-section input[type="file"]{display:block;width:100%;max-width:100%;padding:0;min-height:48px;font-size:13px;white-space:normal}
.contact-section input[type="file"]::file-selector-button{min-height:48px;margin-right:12px;padding:12px 16px;border:1px solid var(--control);border-radius:var(--r-control);background:var(--white);color:var(--ink);font:inherit;cursor:pointer}
.contact-section .opt,.contact-section .cc-label{font-size:13px}
.contact-section .inquiry-panel .btn{margin-top:0;min-height:48px}
.contact-section .form-status{margin:12px 0;font-size:15px}
@media(max-width:1023px){
  .contact-layout{grid-template-columns:1fr;gap:48px}
  .single-rs_product .split{grid-template-columns:1fr;gap:32px}
}
@media(max-width:767px){
  .contact-section .inquiry-panel{padding:24px}
  .contact-section .inquiry-upload{padding:16px}
  .product-next-steps ul{grid-template-columns:1fr;gap:12px}
  .product-edge-backing .ptable th,.product-edge-backing .ptable td{padding:12px;font-size:13px}
  .product-edge-backing .ptable th{width:32%}
  .product-image-pending{min-height:240px;padding:24px}
}
.contact-section .contact-response-note{margin-top:12px;font-size:13px;line-height:1.6}
.single-rs_product .product-related-grid{margin-top:32px}

.backing-decisions .card h2{font-size:21px}.backing-decisions{margin-block:32px}.contact-section .inquiry-upload{border:1.5px dashed var(--control)}.card-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-body h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.single-rs_product .product-gallery-item .frame img{object-fit:contain}
