/* A real card on the front, its owner's story on the back. */
.home-reviews-heading { margin-bottom:4px; }
.home-reviews-heading>span { font-size:27px; color:var(--space); }
.home-reviews-intro { margin:0 18px 10px; text-align:center; font-size:11px; color:var(--muted); }
.review-card { height:calc(var(--card-height) + 136px); }
.review-card-caption { position:absolute; top:calc(var(--card-height) + 12px); left:4%; right:4%; text-align:left; }
.review-card-caption>div { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; }
.review-card-caption>div>* { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.review-card-caption>div>strong { flex:1; }
.review-card-caption>div>span { max-width:50%; }
.review-card-caption>div>span { color:#8a224b; font-size:10px; }
.review-card-caption p { font-size:12px; line-height:1.7; margin:7px 0 0; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.review-example-badge { position:absolute; top:6%; right:6%; z-index:3; background:var(--paper); color:var(--space); padding:2cqw 3cqw; border-radius:20px; font-size:2.8cqw; font-weight:650; }
.review-demo-mask { position:absolute; left:36.5%; top:3%; width:27%; aspect-ratio:1; border-radius:50%; background:var(--space); color:var(--honey); z-index:3; display:grid; place-items:center; font-size:8cqw; font-weight:750; border:2px solid var(--honey); transform:rotate(-9deg); }
.review-uploaded { background:var(--paper); }
.review-uploaded::after { display:none; }
.review-uploaded .fortune-photo { object-fit:contain; object-position:center; }
.review-back { justify-content:flex-start; gap:4cqw; overflow-y:auto; background:#fff9e9; }
.review-back-top { display:flex; justify-content:space-between; align-items:center; gap:3cqw; }
.review-back-top>b { font:800 6cqw/1 Syne,var(--font); }
.review-back-top>span { font-size:3cqw; color:var(--muted); }
.review-quote-mark { font:700 25cqw/.75 Georgia,serif; color:var(--coral); margin-top:5cqw; height:13cqw; }
.review-back h3 { margin:0; font-size:6cqw; line-height:1.4; letter-spacing:-.045em; overflow-wrap:anywhere; }
.review-back blockquote { margin:0; font-size:4cqw; line-height:1.85; color:var(--space); white-space:pre-wrap; overflow-wrap:anywhere; }
.review-back-author { display:grid; gap:1.5cqw; margin-top:auto; padding-top:5cqw; border-top:1px solid #01264120; font-size:3.5cqw; }
.review-back-author time,.review-back-author>span { font-size:2.8cqw; color:var(--muted); }
.home-review-examples { text-align:center; color:var(--muted); font-size:10px; line-height:1.6; margin:10px 22px; }
.home-review-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px; padding:4px 18px 0; }
.home-review-actions button { font:600 11px/1.4 var(--font); padding:10px 13px; border-radius:22px; border:1px solid #01264122; background:var(--paper); color:var(--space); cursor:pointer; }
.home-review-actions button:first-child { background:var(--space); color:var(--paper); }
.home-review-error { margin:8px 20px; text-align:center; font-size:11px; color:#923044; }
.home-review-error button { background:none; border:0; text-decoration:underline; color:inherit; cursor:pointer; padding:10px; }
.home-slider-dots { max-width:60%; overflow:auto; scrollbar-width:none; }
.home-slider-dots button { flex:none; }
.review-dialog { width:min(840px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:24px; border:1px solid #0126411a; border-radius:26px; background:var(--paper); color:var(--space); box-shadow:0 30px 90px #01264125; overflow:auto; overscroll-behavior:contain; }
.review-dialog::backdrop { background:#01264180; backdrop-filter:blur(5px); }
.review-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.review-dialog-head>span { font:650 10px/1.3 var(--font); letter-spacing:.1em; color:var(--muted); }
.review-dialog-head>button { width:40px; height:40px; background:white; border:1px solid #01264115; border-radius:50%; font-size:24px; color:var(--space); cursor:pointer; }
.review-dialog h2 { font-size:27px; line-height:1.3; letter-spacing:-.055em; margin:6px 0; }
.review-dialog-lead { font-size:12px; line-height:1.7; color:var(--muted); margin:10px 0 20px; }
.review-editor-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px; }
.review-dialog label { display:flex; flex-direction:column; gap:7px; font-size:12px; font-weight:600; }
.review-dialog input:not([type=checkbox]):not([type=range]),.review-dialog textarea,.review-dialog select { width:100%; min-width:0; box-sizing:border-box; font:400 14px/1.5 var(--font); padding:10px 12px; border:1px solid #01264125; border-radius:10px; background:white; color:var(--space); }
.review-dialog input[type=date] { min-height:43px; }
.review-dialog textarea { resize:vertical; min-height:130px; }
.review-dialog .review-file-label { padding:12px; background:#e7f0f1; border:1px dashed #7EACB5; border-radius:12px; text-align:center; cursor:pointer; }
.review-file-label input { font-size:11px!important; padding:6px!important; }
.review-image-stage { margin:12px auto; background:#edf1ee; border-radius:14px; min-height:150px; overflow:hidden; display:grid; place-items:center; }
.review-image-stage>p { font-size:12px; text-align:center; line-height:1.8; color:var(--muted); padding:18px; }
#review-preview { width:auto; max-width:100%; height:auto; max-height:390px; display:block; touch-action:none; }
#review-preview[hidden] { display:none; }
.review-dialog .review-check { display:flex; flex-direction:row; align-items:flex-start; gap:10px; font-size:12px; line-height:1.7; }
.review-check input { flex:none; width:18px; height:18px; margin:2px 0 0; accent-color:var(--space); }
.review-help { font-size:11px; line-height:1.7; color:var(--muted); margin:7px 0; }
#review-mask-tools { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px; border-radius:14px; background:#f5efdf; }
#review-mask-tools[hidden] { display:none; }
#review-mask-tools>label:first-child,#review-mask-tools>label:last-child { grid-column:1/-1; }
#review-mask-tools input[type=range] { width:100%; accent-color:var(--space); }
.review-mask-buttons { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px; }
.review-mask-buttons button { border:1px solid #01264120; background:var(--paper); color:var(--space); border-radius:9px; padding:8px 10px; font:500 11px/1.4 var(--font); cursor:pointer; }
.review-fields { display:flex; flex-direction:column; gap:12px; }
.review-field-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.review-consent { padding-top:12px; border-top:1px solid #01264118; }
.review-primary { background:var(--space); color:var(--paper); border:0; border-radius:12px; min-height:48px; padding:12px 16px; font:600 14px/1.4 var(--font); cursor:pointer; }
.review-dialog button:disabled { opacity:.45; cursor:default; }
.review-error { font-size:12px; line-height:1.6; color:#982340; background:#fff0f4; padding:12px; border-radius:10px; margin:0; }
.review-mine-dialog { max-width:620px; }
.review-mine-list { margin-top:20px; font-size:13px; color:var(--muted); line-height:1.8; }
.review-mine-list article { display:grid; grid-template-columns:90px minmax(0,1fr); gap:14px; padding:15px 0; border-bottom:1px solid #01264118; }
.review-mine-list img { width:90px; height:120px; object-fit:contain; border-radius:10px; background:#edf1ee; }
.review-mine-list p { overflow-wrap:anywhere; white-space:pre-wrap; font-size:12px; margin:6px 0; }
.review-mine-list button,.review-more-mine { color:#982340; background:transparent; border:1px solid #98234033; border-radius:9px; padding:8px 10px; cursor:pointer; font-size:11px; }
.review-more-mine { margin-top:15px; color:var(--space); }
.review-dialog :is(button,input,select,textarea):focus-visible,.home-review-actions button:focus-visible { outline:2px solid var(--raspberry); outline-offset:3px; }
@media(max-width:600px){
  .home-reviews-heading>span { font-size:23px; }
  .home-reviews-heading small { font-size:8px; }
  .home-reviews-intro { font-size:10px; }
  .review-card { height:calc(var(--card-height) + 130px); }
  .review-card-caption p { font-size:11px; }
  .review-card-caption>div { font-size:11px; }
  .home-review-examples { font-size:9px; }
  .home-review-actions button { font-size:10px; }
  .review-dialog { padding:18px; width:calc(100vw - 20px); max-height:calc(100dvh - 20px); border-radius:20px; }
  .review-editor-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .review-dialog h2 { font-size:24px; }
  .review-image-stage { max-width:270px; }
  .review-dialog input:not([type=checkbox]):not([type=range]),.review-dialog textarea,.review-dialog select { font-size:16px; }
  .review-field-pair { grid-template-columns:minmax(0,1fr); }
}
