/* Review system additions for the existing Simonz Roofing blue/gold website. */
.review-submit-link{margin-top:28px;text-align:center}
.review-card .review-meta{display:block;margin-top:7px;font-size:.82rem;opacity:.72}
.reviews-grid-full{grid-template-columns:repeat(3,minmax(0,1fr))}

.reviews-page-hero{padding:90px 0 70px;background:linear-gradient(135deg,#07182b,#0d2d50);color:#fff}
.reviews-page-hero.compact{padding:70px 0 55px}
.reviews-page-hero-inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,.5fr);gap:48px;align-items:center}
.reviews-page-hero h1{font-size:clamp(2.4rem,6vw,4.7rem);line-height:1.02;margin:.35em 0 .25em;max-width:800px}
.reviews-page-hero p{max-width:680px;font-size:1.08rem;line-height:1.7;color:rgba(255,255,255,.82)}
.review-summary{padding:30px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.08);text-align:center;box-shadow:0 22px 50px rgba(0,0,0,.2)}
.review-summary>strong{display:block;font-size:4rem;line-height:1}
.review-summary .stars{font-size:1.35rem;margin:14px 0 8px}
.review-summary span{color:rgba(255,255,255,.76)}

.review-form-container{max-width:900px}
.review-form-panel{position:relative;padding:clamp(24px,5vw,48px);border-radius:24px;background:#fff;box-shadow:0 22px 55px rgba(7,24,43,.12);border:1px solid rgba(7,24,43,.1)}
.review-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.review-field{display:grid;gap:8px;margin-bottom:22px}
.review-field label,.rating-fieldset legend{font-weight:800;color:#07182b}
.review-field label small{font-weight:500;opacity:.65;margin-left:6px}
.review-field input,.review-field select,.review-field textarea{width:100%;padding:14px 15px;border:1px solid rgba(7,24,43,.22);border-radius:10px;background:#fff;color:#07182b;font:inherit;box-sizing:border-box}
.review-field select option{background:#fff;color:#07182b}
.review-field textarea{min-height:180px;resize:vertical}
.review-field input:focus,.review-field select:focus,.review-field textarea:focus{outline:3px solid rgba(211,166,72,.22);border-color:#b7892f}
.review-field>small,.review-form-note{color:#607083;font-size:.88rem}
.rating-fieldset{border:0;padding:0;margin:0 0 22px}
.star-rating{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:3px}
.star-rating input{position:absolute;opacity:0;pointer-events:none}
.star-rating label{font-size:2.35rem;line-height:1;color:#c7cbd1;cursor:pointer;transition:transform .15s ease,color .15s ease}
.star-rating label:hover,.star-rating label:hover~label,.star-rating input:checked~label{color:#d3a648}
.star-rating label:hover{transform:scale(1.08)}
.review-consent{display:flex;gap:12px;align-items:flex-start;margin:6px 0 22px;line-height:1.5;color:#07182b!important;font-weight:650;cursor:pointer}
.review-consent span{display:block;color:#07182b!important;opacity:1!important}
.review-consent input[type="checkbox"]{width:20px;height:20px;min-width:20px;margin:2px 0 0;accent-color:#1586d1;cursor:pointer;appearance:auto}
.review-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.review-alert{padding:16px 18px;margin-bottom:22px;border-radius:12px;background:#eef5fb;border:1px solid #bcd0e1;color:#163c5e}
.review-alert.error{background:#fff0f0;border-color:#e2a8a8;color:#8c2222}
.review-alert ul{margin:9px 0 0;padding-left:20px}
.review-success{text-align:center}
.success-mark{width:66px;height:66px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:#0d7b4d;color:#fff;font-size:2rem;font-weight:900}

.reviews-admin-body{background:#eef2f6;color:#07182b;min-height:100vh}
.admin-header{background:#07182b;color:#fff;padding:15px 0}
.admin-header-inner{display:flex;justify-content:space-between;align-items:center;gap:24px}
.admin-header .brand{color:#fff}.admin-header .brand img{height:50px;width:auto}
.admin-header nav{display:flex;gap:20px;align-items:center}.admin-header nav a{color:#fff}
.admin-login-section{padding:80px 0}
.admin-login-panel{max-width:520px;margin:0 auto;padding:40px;border-radius:22px;background:#fff;box-shadow:0 20px 55px rgba(7,24,43,.14)}
.admin-login-panel h1,.admin-title h1{font-size:clamp(2.1rem,5vw,3.7rem);margin:.2em 0}
.admin-title{padding:55px 0 35px;background:#fff;border-bottom:1px solid #dce3ea}
.admin-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px}
.admin-tabs a{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid #d8e0e7;color:#15334e;text-decoration:none;font-weight:800}
.admin-tabs a.active{background:#07182b;color:#fff;border-color:#07182b}
.admin-tabs span{display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:rgba(128,145,160,.18);font-size:.78rem}
.admin-review-list{display:grid;gap:20px}
.admin-review-card,.admin-empty{padding:26px;border-radius:18px;background:#fff;border:1px solid #dbe3ea;box-shadow:0 10px 28px rgba(7,24,43,.06);scroll-margin-top:20px}
.admin-review-top{display:flex;justify-content:space-between;gap:18px;align-items:center}
.admin-review-top>div:first-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.admin-review-top time{font-size:.88rem;color:#6a7885}
.status-pill{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.status-pill.pending{background:#fff5d8;color:#745400}.status-pill.approved{background:#dcf5e8;color:#12623d}.status-pill.denied{background:#fee5e5;color:#8c2222}
.admin-review-card h2{margin:18px 0 10px}
.admin-review-meta{display:flex;flex-wrap:wrap;gap:10px 20px;color:#566879;font-size:.92rem}
.admin-review-card blockquote{margin:22px 0;padding:18px 20px;border-left:4px solid #d3a648;background:#f7f9fb;border-radius:0 10px 10px 0;font-size:1.04rem;line-height:1.65}
.admin-actions{display:flex;gap:9px;flex-wrap:wrap}.admin-actions form{margin:0}.admin-actions .btn{border:0;cursor:pointer}
.admin-delete{background:#8c2222!important;color:#fff!important}

@media(max-width:850px){.reviews-page-hero-inner{grid-template-columns:1fr}.review-summary{max-width:320px}.reviews-grid-full{grid-template-columns:1fr 1fr}.review-form-grid{grid-template-columns:1fr}.admin-header-inner{align-items:flex-start}.admin-header nav{flex-direction:column;align-items:flex-end;gap:7px}}
@media(max-width:600px){.reviews-page-hero{padding:62px 0 48px}.reviews-grid-full{grid-template-columns:1fr}.review-form-panel{padding:22px 18px}.admin-login-section{padding:45px 0}.admin-login-panel{padding:28px 20px}.admin-review-card{padding:20px 16px}.admin-review-top{align-items:flex-start;flex-direction:column}.admin-actions{display:grid}.admin-actions form,.admin-actions .btn{width:100%}}

/* High-contrast success confirmation. */
.review-success{
  color:#07182b!important;
}
.review-success h2{
  color:#07182b!important;
  opacity:1!important;
}
.review-success p{
  color:#4d6072!important;
  opacity:1!important;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
.review-success .hero-actions{
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
}
.review-success .btn.primary{
  background:#198bd1!important;
  border-color:#198bd1!important;
  color:#fff!important;
}
.review-success .btn.secondary{
  display:inline-flex!important;
  background:#fff!important;
  border:2px solid #198bd1!important;
  color:#07182b!important;
}
.review-success .btn.primary:hover,
.review-success .btn.secondary:hover{
  opacity:.9;
}

/* Strong override against the main site's generic label/input rules. */
.review-form-panel label.review-consent{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:12px!important;
  color:#07182b!important;
  opacity:1!important;
  font-weight:700!important;
  text-align:left!important;
}
.review-form-panel label.review-consent span{
  display:block!important;
  flex:1 1 auto!important;
  color:#07182b!important;
  opacity:1!important;
  visibility:visible!important;
}
.review-form-panel label.review-consent input[type="checkbox"]{
  position:static!important;
  display:block!important;
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  margin:2px 0 0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  accent-color:#198bd1!important;
}
