/* ============================================================
   dop · review gate  (1\u20134 stars \u2192 private feedback popup
                       5 stars \u2192 straight to Google review)
   Drop the .rev-gate widget anywhere; review-gate.js wires it
   and injects the shared modal. Set window.DOP_REVIEW_URL.
   ============================================================ */
.rev-gate{
  background:var(--paper-2,#FBF8F2); border:1px solid var(--line,rgba(28,26,20,.13));
  border-radius:22px; padding:clamp(28px,4vw,44px); text-align:center;
  box-shadow:0 18px 44px -36px rgba(28,26,20,.5);
}
.rev-gate .rg-kicker{margin:0 0 10px; font:600 11px/1 var(--ui,"Quicksand",system-ui,sans-serif); letter-spacing:.22em; text-transform:uppercase; color:var(--green,#15634A);}
.rev-gate .rg-h{margin:0; font-family:var(--serif,"Playfair Display",Georgia,serif); font-weight:500; font-size:clamp(23px,2.8vw,32px); line-height:1.18; letter-spacing:-.012em; color:var(--ink,#1C1A14);}
.rev-gate .rg-sub{margin:11px auto 0; font-family:var(--edit,"Cormorant Garamond",Georgia,serif); font-style:italic; font-size:clamp(16px,1.9vw,20px); line-height:1.45; color:var(--ink-soft,#5C574C); max-width:46ch;}
.rg-stars{display:inline-flex; gap:6px; margin-top:22px;}
.rg-star{width:clamp(42px,8vw,54px); height:clamp(42px,8vw,54px); padding:6px; border:0; background:transparent; cursor:pointer; color:var(--stone,#D6C7AC); transition:transform .15s ease, color .15s ease;}
.rg-star svg{width:100%; height:100%; display:block; fill:currentColor;}
.rg-star:hover{transform:translateY(-3px) scale(1.06);}
.rg-star.on{color:#E3A92B;}
.rg-hint{margin:14px 0 0; font:600 10.5px/1 var(--ui,"Quicksand",system-ui,sans-serif); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint,#928B7C);}

/* ---- shared modal (injected by review-gate.js) ---- */
.rgm-overlay{position:fixed; inset:0; z-index:300; background:rgba(20,18,12,.55); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); display:grid; place-items:center; padding:20px; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s;}
.rgm-overlay.on{opacity:1; visibility:visible; transition:opacity .3s ease;}
.rgm{position:relative; width:min(470px,100%); background:var(--paper,#F6F1E8); border:1px solid var(--line,rgba(28,26,20,.13)); border-radius:24px; padding:clamp(28px,4vw,40px); text-align:left; box-shadow:0 50px 90px -34px rgba(20,18,12,.7); transform:translateY(16px) scale(.97); transition:transform .38s cubic-bezier(.22,.84,.24,1);}
.rgm-overlay.on .rgm{transform:none;}
.rgm-close{position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; border:1px solid var(--line,rgba(28,26,20,.13)); background:var(--paper-2,#FBF8F2); color:var(--ink-soft,#5C574C); display:grid; place-items:center; cursor:pointer; transition:background .2s, color .2s;}
.rgm-close:hover{background:var(--sand,#EADFCB); color:var(--ink,#1C1A14);}
.rgm-close svg{width:16px; height:16px;}
.rgm-stars{display:flex; gap:4px; margin-bottom:16px;}
.rgm-stars span{width:26px; height:26px; color:var(--stone,#D6C7AC); display:block;}
.rgm-stars span svg{width:100%; height:100%; fill:currentColor; display:block;}
.rgm-stars span.on{color:#E3A92B;}
.rgm-title{margin:0; font-family:var(--serif,"Playfair Display",Georgia,serif); font-weight:600; font-size:clamp(21px,2.4vw,26px); color:var(--ink,#1C1A14);}
.rgm-sub{margin:9px 0 18px; font-family:var(--edit,"Cormorant Garamond",Georgia,serif); font-style:italic; font-size:17px; line-height:1.45; color:var(--ink-soft,#5C574C);}
.rgm-text{width:100%; min-height:118px; resize:vertical; box-sizing:border-box; padding:13px 15px; border-radius:13px; border:1px solid var(--line,rgba(28,26,20,.13)); background:var(--paper-2,#FBF8F2); font:500 17px/1.5 var(--edit,"Cormorant Garamond",Georgia,serif); color:var(--ink,#1C1A14);}
.rgm-input{width:100%; box-sizing:border-box; margin-top:10px; padding:12px 15px; border-radius:13px; border:1px solid var(--line,rgba(28,26,20,.13)); background:var(--paper-2,#FBF8F2); font:500 15px/1 var(--ui,"Quicksand",system-ui,sans-serif); color:var(--ink,#1C1A14);}
.rgm-text::placeholder, .rgm-input::placeholder{color:var(--ink-faint,#928B7C);}
.rgm-text:focus, .rgm-input:focus{outline:none; border-color:var(--green,#15634A);}
.rgm-submit{margin-top:16px; width:100%; display:inline-flex; align-items:center; justify-content:center; gap:8px; font:700 13px/1 var(--ui,"Quicksand",system-ui,sans-serif); letter-spacing:.05em; background:var(--green,#15634A); color:var(--paper,#F6F1E8); border:1.5px solid var(--green,#15634A); padding:15px 24px; border-radius:100px; cursor:pointer; transition:background .25s, transform .2s;}
.rgm-submit:hover{background:var(--green-700,#0F4536); border-color:var(--green-700,#0F4536); transform:translateY(-1px);}
.rgm-thanks{text-align:center; padding:6px 0 2px;}
.rgm-check{width:54px; height:54px; margin:0 auto 14px; border-radius:50%; background:var(--signal-tint,#E4EFE9); color:var(--green,#15634A); display:grid; place-items:center;}
.rgm-check svg{width:26px; height:26px;}
.rgm-thanks h3{margin:0; font-family:var(--serif,"Playfair Display",Georgia,serif); font-weight:600; font-size:24px; color:var(--ink,#1C1A14);}
.rgm-thanks p{margin:8px auto 18px; font-family:var(--edit,"Cormorant Garamond",Georgia,serif); font-style:italic; font-size:17px; color:var(--ink-soft,#5C574C); max-width:34ch;}
