/* ========================================= */
/* CONTENT PAGES (lab reports, licenses, reviews) */
/* ========================================= */
.page-hero{padding:clamp(3rem,6vw,5rem) 0 clamp(1.5rem,3vw,2.5rem)}
.page-hero .kicker{color:var(--gold);margin-bottom:1rem}
.page-hero h1{font-size:clamp(2.8rem,7vw,5rem);line-height:.92;letter-spacing:-.04em}
.page-hero p{max-width:36rem;margin-top:1.2rem;color:var(--muted);font-size:.95rem}
.page-section{padding-bottom:clamp(4rem,8vw,7rem)}

/* Generic card grid */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.2rem}

/* Lab report / license card */
.doc-card{display:flex;flex-direction:column;padding:1.6rem;background:var(--ivory);border:1px solid var(--line);transition:border-color .25s var(--ease),transform .25s var(--ease)}
.doc-card:hover{border-color:var(--muted);transform:translateY(-3px)}
.doc-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.doc-card h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;line-height:1.15}
.badge-pass,.badge-info{flex:none;padding:.3rem .6rem;border-radius:2rem;font-family:var(--mono);font-size:.52rem;letter-spacing:.08em;text-transform:uppercase}
.badge-pass{background:rgba(46,104,71,.12);color:var(--success)}
.badge-info{background:rgba(184,147,79,.16);color:#8a6d33}
.doc-card__meta{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem}
.doc-card__meta div{display:flex;justify-content:space-between;gap:1rem;font-size:.74rem}
.doc-card__meta span{color:var(--muted);font-family:var(--mono);font-size:.56rem;letter-spacing:.04em;text-transform:uppercase}
.doc-card__meta b{color:var(--ink);font-weight:500;text-align:right}
.doc-card p{color:var(--muted);font-size:.82rem;line-height:1.5}
.doc-card__link{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.3rem;padding-top:1.1rem;border-top:1px solid var(--line);color:var(--forest);font-size:.74rem;font-weight:600;width:max-content}
.doc-card__link svg{width:.9rem;height:.9rem}

/* Reviews summary */
.reviews-summary{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem;margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--line)}
.reviews-summary__score{display:flex;align-items:baseline;gap:.6rem}
.reviews-summary__score strong{font-size:3.5rem;font-weight:400;letter-spacing:-.04em;line-height:1}
.reviews-summary__stars{color:var(--gold);font-size:1.1rem;letter-spacing:.1em}
.reviews-summary__stars small{display:block;margin-top:.3rem;color:var(--muted);font-family:var(--mono);font-size:.58rem;letter-spacing:.04em;text-transform:uppercase}
.reviews-summary .button{margin-left:auto}

/* Review cards */
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1.2rem}
.rev-card{display:flex;flex-direction:column;padding:1.6rem;background:var(--ivory);border:1px solid var(--line)}
.rev-card__stars{color:var(--gold);letter-spacing:.1em;font-size:.85rem}
.rev-card h3{margin-top:.8rem;font-size:1rem;font-weight:600}
.rev-card p{margin-top:.6rem;color:var(--muted);font-size:.86rem;line-height:1.55}
.rev-card__foot{display:flex;align-items:center;gap:.7rem;margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.rev-card__avatar{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--forest);color:var(--white);font-family:var(--mono);font-size:.62rem}
.rev-card__who strong{display:block;font-size:.82rem;font-weight:600}
.rev-card__who small{color:var(--muted);font-family:var(--mono);font-size:.55rem;text-transform:uppercase}
.rev-card__who small.verified::before{content:"✓ ";color:var(--success)}

/* Review form */
.review-form{max-width:40rem;margin-top:3rem;padding:1.8rem;background:var(--ivory);border:1px solid var(--line)}
.review-form h2{font-size:1.6rem;font-family:var(--sans);font-weight:600;letter-spacing:-.02em}
.review-form>p{margin-top:.5rem;color:var(--muted);font-size:.85rem}
.review-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}
.review-form .field--full{grid-column:1 / -1}
.rating-input{display:inline-flex;flex-direction:row-reverse;gap:.2rem;width:max-content}
.rating-input input{position:absolute;opacity:0;width:0;height:0}
.rating-input label{font-size:1.6rem;color:var(--line);cursor:pointer;transition:color .15s var(--ease)}
.rating-input label:hover,.rating-input label:hover ~ label,
.rating-input input:checked ~ label{color:var(--gold)}
.review-form__msg{display:none;margin-top:1.2rem;padding:1rem 1.2rem;background:rgba(46,104,71,.1);color:var(--success);font-size:.85rem}
.review-form__msg.is-shown{display:block}

@media(max-width:36rem){
  .review-form__grid{grid-template-columns:1fr}
  .reviews-summary .button{margin-left:0}
}

/* Review Modal Overlay */
.review-modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(11, 46, 29, 0.6); /* forest-green semi-transparent overlay */
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.review-modal-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.review-modal-content {
  background: var(--ivory);
  border: 1px solid var(--line);
  padding: 2.2rem;
  max-width: 36rem;
  width: 92%;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  transform: translateY(20px);
  transition: transform 0.3s ease;
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}
.review-modal-backdrop.is-open .review-modal-content {
  transform: translateY(0);
}
.review-modal-close {
  position: absolute;
  top: 1rem;
  right: 1.2rem;
  font-size: 2.2rem;
  color: var(--muted);
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  transition: color 0.2s ease;
}
.review-modal-close:hover {
  color: var(--ink);
}
/* END CONTENT PAGES */
