/* RankPrimora — luxury contact experience.
   Scoped under .rpq-scope so no existing site style is affected.
   Palette: navy #0D2A56 · deep #000C1E · gold #FFC100 · white.
   Scale is set for comfort: 52px inputs, 15-16px labels, 20px field icons. */

.rpq-scope, .rpq-scope *, .rpq-scope *::before, .rpq-scope *::after { box-sizing: border-box; }
.rpq-scope {
  --navy:#0D2A56; --deep:#000C1E; --gold:#FFC100; --white:#FFFFFF;
  --ink:#0D2A56; --muted:#5C6E87; --line:#DCE4EF;
  --hair:rgba(255,255,255,.11); --hair-2:rgba(255,255,255,.2);
  --err:#E5614F; --err-ink:#C0372B; --ok:#0F7B4F;
  --r-xl:24px; --r-lg:18px; --r-md:14px;
  --ease:cubic-bezier(.22,.61,.36,1);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ink); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
@media (prefers-reduced-motion: reduce){
  .rpq-scope *, .rpq-scope *::before, .rpq-scope *::after {
    animation-duration:.01ms !important; transition-duration:.01ms !important;
  }
}

/* ================================ form ================================ */
.rpq-form { display:grid; gap:22px; width:100%; }
.rpq-row { display:grid; gap:22px; grid-template-columns:1fr 1fr; }
@media (max-width:820px){ .rpq-row { grid-template-columns:1fr; gap:18px; } }

.rpq-field { display:flex; flex-direction:column; gap:9px; min-width:0; }
.rpq-label { font-size:15px; font-weight:500; letter-spacing:.005em; line-height:1.35; }
.rpq-req { color:var(--gold); margin-left:4px; font-weight:600; }
.rpq-opt { color:var(--muted); font-weight:400; font-size:13.5px; }

.rpq-inwrap { position:relative; display:block; }
.rpq-ico {
  position:absolute; left:18px; top:16px; width:20px; height:20px;
  pointer-events:none; color:#8FA2BA; transition:color .2s var(--ease);
}
.rpq-textarea + .rpq-ico, .rpq-inwrap .rpq-ico.rpq-ico-top { top:17px; }

.rpq-input, .rpq-select, .rpq-textarea {
  display:block; width:100%; min-height:52px;
  padding:14px 18px 14px 50px; font:inherit; font-size:15.5px; line-height:1.5;
  color:var(--ink); background:#fff; border:1.5px solid var(--line);
  border-radius:var(--r-md);
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
  -webkit-appearance:none; appearance:none;
}
.rpq-textarea { min-height:124px; padding-top:15px; resize:vertical; }
.rpq-select {
  cursor:pointer; padding-right:46px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='8'><path d='M1 1.5l5.5 5.5L12 1.5' stroke='%235C6E87' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat; background-position:right 18px center;
}
.rpq-input::placeholder, .rpq-textarea::placeholder { color:#9AAABF; }
.rpq-input:hover, .rpq-select:hover, .rpq-textarea:hover { border-color:#BCCADC; }
.rpq-input:focus, .rpq-select:focus, .rpq-textarea:focus {
  outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(255,193,0,.2);
}
.rpq-inwrap:focus-within .rpq-ico { color:#D98C00; }
.rpq-input[aria-invalid="true"], .rpq-select[aria-invalid="true"], .rpq-textarea[aria-invalid="true"] {
  border-color:var(--err); box-shadow:0 0 0 4px rgba(229,97,79,.15);
}
.rpq-err { font-size:13.5px; color:var(--err-ink); line-height:1.45; }
.rpq-err:empty { display:none; }

.rpq-consent { display:flex; gap:14px; align-items:flex-start; }
.rpq-check { width:22px; height:22px; margin:1px 0 0; flex:0 0 auto; accent-color:var(--gold); cursor:pointer; }
.rpq-consent label { font-size:14.5px; line-height:1.65; color:var(--muted); cursor:pointer; }
.rpq-consent a { color:#1A5FB4; text-decoration:underline; text-underline-offset:2px; }

.rpq-submit {
  display:inline-flex; align-items:center; justify-content:center; gap:11px;
  min-height:56px; padding:16px 40px; font:inherit; font-size:16px; font-weight:600;
  color:var(--deep); background:linear-gradient(135deg,#FFD24D,var(--gold));
  border:0; border-radius:var(--r-md); cursor:pointer; letter-spacing:.005em;
  box-shadow:0 6px 20px rgba(255,193,0,.26);
  transition:transform .18s var(--ease), box-shadow .22s var(--ease);
}
.rpq-submit:hover:not(:disabled){ transform:translateY(-2px); box-shadow:0 12px 30px rgba(255,193,0,.38); }
.rpq-submit:active:not(:disabled){ transform:translateY(0); }
.rpq-submit:focus-visible { outline:3px solid rgba(255,193,0,.55); outline-offset:3px; }
.rpq-submit:disabled { opacity:.62; cursor:progress; transform:none; box-shadow:none; }
.rpq-submit svg { width:19px; height:19px; flex:0 0 auto; }
@media (max-width:820px){ .rpq-submit { width:100%; padding:16px 24px; } }

.rpq-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.rpq-note { font-size:13.5px; color:var(--muted); line-height:1.7; }
.rpq-secure { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--muted); line-height:1.6; }
.rpq-secure svg { width:16px; height:16px; flex:0 0 auto; }

.rpq-success {
  padding:44px 36px; border-radius:var(--r-lg); background:#F3F9F5;
  border:1.5px solid #C3E2D1; color:#0E4C34; line-height:1.7; text-align:center; font-size:15.5px;
}
.rpq-success .rpq-tick {
  width:62px; height:62px; margin:0 auto 18px; border-radius:50%;
  background:var(--ok); display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(15,123,79,.3);
}
.rpq-success .rpq-tick svg { width:30px; height:30px; color:#fff; }
.rpq-success strong { display:block; margin-bottom:9px; font-size:22px; color:var(--ok); font-weight:600; }
.rpq-ref {
  display:inline-block; margin-top:18px; padding:9px 18px; border-radius:99px;
  background:#fff; border:1.5px solid #C3E2D1; font-size:14px; letter-spacing:.03em;
}
.rpq-formerror {
  padding:16px 20px; border-radius:var(--r-md); background:#FDF4F3;
  border:1.5px solid #F0CBC6; color:var(--err-ink); font-size:14.5px; line-height:1.6;
}

/* --------------------------- dark form skin --------------------------- */
.rpq-dark { color:#EDF3FA; }
.rpq-dark .rpq-label { color:#E3ECF7; }
.rpq-dark .rpq-opt { color:#90A6C2; }
.rpq-dark .rpq-input, .rpq-dark .rpq-select, .rpq-dark .rpq-textarea {
  background-color:rgba(255,255,255,.055); border-color:rgba(255,255,255,.16); color:#fff;
}
.rpq-dark .rpq-input::placeholder, .rpq-dark .rpq-textarea::placeholder { color:#869AB6; }
.rpq-dark .rpq-input:hover, .rpq-dark .rpq-select:hover, .rpq-dark .rpq-textarea:hover {
  border-color:rgba(255,255,255,.3); background-color:rgba(255,255,255,.08);
}
.rpq-dark .rpq-input:focus, .rpq-dark .rpq-select:focus, .rpq-dark .rpq-textarea:focus {
  background-color:rgba(255,255,255,.1); border-color:var(--gold);
}
.rpq-dark .rpq-select {
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='8'><path d='M1 1.5l5.5 5.5L12 1.5' stroke='%23A8BBD4' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.rpq-dark .rpq-select { background-repeat:no-repeat; background-position:right 18px center; }
.rpq-dark .rpq-select option { background:#0D2A56; color:#fff; }
.rpq-dark .rpq-consent label { color:#AFC2DA; }
.rpq-dark .rpq-consent a { color:var(--gold); }
.rpq-dark .rpq-note, .rpq-dark .rpq-secure { color:#90A6C2; }
.rpq-dark .rpq-ico { color:#7F93AF; }
.rpq-dark .rpq-err { color:#FF9C8C; }
.rpq-dark .rpq-formerror { background:rgba(229,97,79,.12); border-color:rgba(229,97,79,.4); color:#FFB3A5; }

/* ============================== popup ============================== */
.rpq-ov {
  position:fixed; inset:0; z-index:2147483100; display:flex;
  align-items:center; justify-content:center; padding:32px 24px;
  background:rgba(2,9,21,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  animation:rp-fade .26s var(--ease); overflow:auto;
}
@keyframes rp-fade { from{opacity:0} to{opacity:1} }
@keyframes rp-rise { from{opacity:0; transform:translateY(26px) scale(.99)} to{opacity:1; transform:none} }

.rpq-pop {
  position:relative; width:100%; max-width:1140px; max-height:calc(100vh - 64px);
  overflow:auto; margin:auto;
  display:grid; grid-template-columns:38% 62%;
  border-radius:var(--r-xl); border:1px solid var(--hair);
  background:linear-gradient(152deg,#11356B 0%,#0C254D 48%,#081B3B 100%);
  box-shadow:0 40px 110px rgba(0,6,18,.68), inset 0 1px 0 rgba(255,255,255,.07);
}
@media (max-width:980px){ .rpq-pop { grid-template-columns:1fr; max-width:620px; } }

.rpq-pop-left {
  position:relative; padding:52px 44px; color:#fff; overflow:hidden;
  background:
    radial-gradient(640px 320px at 0% 108%, rgba(255,193,0,.16), transparent 64%),
    linear-gradient(165deg, rgba(255,255,255,.05), rgba(255,255,255,0) 60%);
  border-right:1px solid var(--hair);
}
@media (max-width:980px){ .rpq-pop-left { display:none; } }
.rpq-pop-left::after{
  content:''; position:absolute; left:44px; bottom:0; width:88px; height:3px;
  background:linear-gradient(90deg,var(--gold),transparent); border-radius:2px;
}
.rpq-brand { display:flex; align-items:center; gap:13px; margin-bottom:44px; }
.rpq-brand-mark {
  width:46px; height:46px; border-radius:13px; flex:0 0 auto;
  background:linear-gradient(135deg,#FFD24D,#E8A900);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:21px; color:var(--deep);
  box-shadow:0 6px 18px rgba(255,193,0,.3);
}
.rpq-brand-txt { font-weight:600; font-size:18px; letter-spacing:.01em; line-height:1.2; }
.rpq-brand-sub { font-size:11.5px; color:#9FB4D0; letter-spacing:.14em; text-transform:uppercase; margin-top:3px; }

.rpq-pop-h { font-size:34px; line-height:1.18; font-weight:600; margin:0 0 15px; letter-spacing:-.02em; }
.rpq-pop-h em { font-style:normal; color:var(--gold); display:block; }
.rpq-pop-p { font-size:15.5px; line-height:1.75; color:#B6C8E0; margin:0 0 38px; }

.rpq-benefits { display:grid; gap:22px; margin:0; padding:0; list-style:none; }
.rpq-benefit { display:flex; gap:15px; align-items:flex-start; }
.rpq-benefit-ico {
  width:42px; height:42px; border-radius:12px; flex:0 0 auto;
  background:rgba(255,193,0,.12); border:1px solid rgba(255,193,0,.28);
  display:flex; align-items:center; justify-content:center; color:var(--gold);
}
.rpq-benefit-ico svg { width:19px; height:19px; }
.rpq-benefit b { display:block; font-size:15.5px; font-weight:600; margin-bottom:4px; }
.rpq-benefit span { font-size:13.5px; color:#9FB4D0; line-height:1.65; }

.rpq-pop-right { padding:50px 48px; background:rgba(255,255,255,.028); }
@media (max-width:980px){ .rpq-pop-right { padding:34px 26px 38px; } }
@media (max-width:520px){ .rpq-pop-right { padding:28px 20px 32px; } }
.rpq-pop-right .rpq-pop-h { font-size:30px; margin-bottom:9px; }
.rpq-pop-right .rpq-pop-p { font-size:15.5px; margin-bottom:32px; }

.rpq-close {
  position:absolute; top:20px; right:20px; width:46px; height:46px; z-index:3;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; cursor:pointer; color:#fff;
  background:rgba(255,255,255,.09); border:1px solid var(--hair);
  transition:background .2s var(--ease), transform .25s var(--ease);
}
.rpq-close:hover { background:rgba(255,255,255,.2); transform:rotate(90deg); }
.rpq-close:focus-visible { outline:3px solid rgba(255,193,0,.6); outline-offset:3px; }
.rpq-close svg { width:19px; height:19px; }

@media (max-width:620px){
  .rpq-ov { padding:0; align-items:flex-end; }
  .rpq-pop {
    max-width:none; max-height:94vh; border-radius:26px 26px 0 0;
    animation:rp-sheet .32s var(--ease);
  }
  @keyframes rp-sheet { from{transform:translateY(100%)} to{transform:none} }
  .rpq-close { top:14px; right:14px; width:42px; height:42px; }
}

/* ===================== embedded panel + invitation ===================== */
.rpq-section { padding:84px 24px; background:linear-gradient(180deg,#07172F,#0A2047); }
@media (max-width:820px){ .rpq-section { padding:52px 18px; } }
.rpq-wrap { max-width:1200px; margin:0 auto; }
.rpq-panel {
  border-radius:var(--r-xl); border:1px solid var(--hair);
  background:linear-gradient(152deg,#11356B 0%,#0C254D 48%,#081B3B 100%);
  box-shadow:0 32px 84px rgba(0,6,18,.45), inset 0 1px 0 rgba(255,255,255,.06);
  display:grid; grid-template-columns:38% 62%; overflow:hidden;
}
@media (max-width:980px){ .rpq-panel { grid-template-columns:1fr; } }
.rpq-panel-left {
  padding:52px 44px; color:#fff; position:relative; overflow:hidden;
  background:
    radial-gradient(600px 300px at 0% 108%, rgba(255,193,0,.15), transparent 64%),
    linear-gradient(165deg, rgba(255,255,255,.05), rgba(255,255,255,0) 60%);
  border-right:1px solid var(--hair);
}
@media (max-width:980px){
  .rpq-panel-left { border-right:0; border-bottom:1px solid var(--hair); padding:40px 28px; }
}
.rpq-panel-right { padding:50px 48px; background:rgba(255,255,255,.028); }
@media (max-width:980px){ .rpq-panel-right { padding:34px 26px 40px; } }
@media (max-width:520px){ .rpq-panel-right { padding:28px 20px 34px; } }

.rpq-eyebrow {
  display:inline-block; padding:8px 17px; border-radius:99px; margin-bottom:20px;
  background:rgba(255,193,0,.11); border:1px solid rgba(255,193,0,.32);
  color:var(--gold); font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
}
.rpq-h2 { font-size:38px; line-height:1.18; font-weight:600; margin:0 0 15px; letter-spacing:-.02em; color:#fff; }
.rpq-h2 em { font-style:normal; color:var(--gold); }
@media (max-width:820px){ .rpq-h2 { font-size:28px; } }
.rpq-sub { font-size:16px; line-height:1.8; color:#B6C8E0; margin:0; }

.rpq-invite {
  margin:0 auto; max-width:1200px; border-radius:var(--r-xl);
  border:1px solid var(--hair); overflow:hidden;
  background:linear-gradient(135deg,#11356B,#0A2047);
  box-shadow:0 24px 64px rgba(0,6,18,.38);
}
.rpq-invite-in {
  padding:44px 48px; display:flex; gap:34px; align-items:center; justify-content:space-between;
  flex-wrap:wrap;
  background:radial-gradient(620px 240px at 100% 0%, rgba(255,193,0,.14), transparent 62%);
}
.rpq-invite h3 { margin:0 0 9px; font-size:27px; font-weight:600; color:#fff; letter-spacing:-.015em; line-height:1.25; }
.rpq-invite p  { margin:0; font-size:15.5px; color:#B6C8E0; line-height:1.7; max-width:640px; }
@media (max-width:820px){
  .rpq-invite-in { padding:32px 24px; flex-direction:column; align-items:stretch; gap:22px; }
  .rpq-invite h3 { font-size:22px; }
}

/* ========================= contact page extras ========================= */
.rpq-contact-grid { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(0,.8fr); gap:30px; align-items:start; }
@media (max-width:1040px){ .rpq-contact-grid { grid-template-columns:1fr; } }

.rpq-card {
  border-radius:var(--r-lg); border:1px solid var(--hair); padding:36px 34px;
  background:linear-gradient(155deg, rgba(255,255,255,.075), rgba(255,255,255,.028));
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07); color:#fff;
}
@media (max-width:520px){ .rpq-card { padding:28px 22px; } }
.rpq-card h3 { margin:0 0 22px; font-size:21px; font-weight:600; letter-spacing:-.01em; }
.rpq-chan { display:flex; gap:16px; align-items:flex-start; padding:19px 0; border-top:1px solid rgba(255,255,255,.08); }
.rpq-chan:first-of-type { border-top:0; padding-top:0; }
.rpq-chan-ico {
  width:46px; height:46px; border-radius:13px; flex:0 0 auto;
  background:rgba(255,193,0,.12); border:1px solid rgba(255,193,0,.28);
  display:flex; align-items:center; justify-content:center; color:var(--gold);
}
.rpq-chan-ico svg { width:20px; height:20px; }
.rpq-chan b { display:block; font-size:15.5px; font-weight:600; margin-bottom:4px; }
.rpq-chan a, .rpq-chan span { font-size:14.5px; color:#B6C8E0; line-height:1.65; word-break:break-word; }
.rpq-chan a { color:var(--gold); text-decoration:none; }
.rpq-chan a:hover { text-decoration:underline; }

.rpq-steps { display:grid; gap:20px; }
.rpq-step { display:flex; gap:17px; align-items:flex-start; }
.rpq-step-n {
  width:40px; height:40px; border-radius:50%; flex:0 0 auto;
  background:linear-gradient(135deg,#FFD24D,var(--gold)); color:var(--deep);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px;
  box-shadow:0 5px 15px rgba(255,193,0,.26);
}
.rpq-step b { display:block; font-size:15.5px; font-weight:600; margin-bottom:4px; color:#fff; }
.rpq-step span { font-size:14px; color:#9FB4D0; line-height:1.7; }

/* ========================== cookie consent ========================== */
/* Compact bottom notice. White card, navy text, flat gold Accept: no blur,
   no overlay, no gradient, no heavy shadow. Kept short so it occupies a
   sliver of the screen rather than a quarter of it. */
.rpq-cc {
  position:fixed; left:0; right:0; bottom:0; z-index:2147483000;
  padding:14px 22px calc(14px + env(safe-area-inset-bottom, 0px));
  background:#FFFFFF; color:var(--navy);
  border-top:1px solid #DCE4EF;
  box-shadow:0 -2px 10px rgba(13,42,86,.08);
  animation:rp-ccup .32s var(--ease);
}
@keyframes rp-ccup { from{transform:translateY(100%)} to{transform:none} }
.rpq-cc-in { max-width:1200px; margin:0 auto; display:flex; gap:24px; align-items:center; justify-content:space-between; }
.rpq-cc-t { font-size:13.5px; line-height:1.6; flex:1 1 auto; min-width:0; color:var(--navy); }
.rpq-cc-h { display:block; font-size:15px; font-weight:600; margin-bottom:2px; color:var(--navy); }
.rpq-cc-brief { display:none; }
.rpq-cc-t a { color:var(--navy); text-decoration:underline; }
.rpq-cc-a { display:flex; gap:10px; flex:0 0 auto; }
.rpq-btn {
  min-height:46px; padding:12px 22px; font:inherit; font-size:14px; font-weight:600;
  border-radius:10px; cursor:pointer; border:1.5px solid transparent; white-space:nowrap;
  transition:background .2s var(--ease), border-color .2s var(--ease);
}
.rpq-btn:focus-visible { outline:3px solid rgba(13,42,86,.45); outline-offset:2px; }
.rpq-btn-accept { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.rpq-btn-accept:hover { background:#F0B500; }
.rpq-btn-ignore { background:#FFFFFF; color:var(--navy); border-color:var(--navy); }
.rpq-btn-ignore:hover { background:#F4F7FB; }

.rpq-modal {
  position:fixed; inset:0; z-index:2147483200; display:flex; align-items:center; justify-content:center;
  padding:24px; background:rgba(2,9,21,.74); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
  animation:rp-fade .24s var(--ease);
}
.rpq-modal-box {
  background:#fff; color:var(--ink); border-radius:var(--r-lg); padding:34px;
  max-width:580px; width:100%; max-height:86vh; overflow:auto;
  box-shadow:0 30px 80px rgba(0,8,22,.5); animation:rp-rise .3s var(--ease);
}
@media (max-width:520px){ .rpq-modal-box { padding:26px 22px; } }
.rpq-modal-box h2 { margin:0 0 9px; font-size:23px; font-weight:600; }
.rpq-modal-box > p { font-size:14.5px; line-height:1.7; color:var(--muted); margin:0 0 24px; }
.rpq-pref { display:flex; gap:15px; align-items:flex-start; padding:19px; border:1.5px solid var(--line);
  border-radius:var(--r-md); margin-bottom:14px; }
.rpq-pref h3 { margin:0 0 4px; font-size:16px; font-weight:600; }
.rpq-pref p { margin:0; font-size:13.5px; color:var(--muted); line-height:1.65; }
.rpq-pref-locked { background:#F6F9FC; }
.rpq-modal-actions { display:flex; gap:11px; justify-content:flex-end; margin-top:26px; flex-wrap:wrap; }
.rpq-btn-save { background:var(--navy); color:#fff; }
.rpq-btn-cancel { background:#fff; color:var(--muted); border-color:var(--line); }
@media (max-width:620px){ .rpq-modal-actions { flex-direction:column-reverse; } .rpq-modal-actions .rpq-btn { width:100%; } }

.rpq-cookie-link { background:none; border:0; padding:0; font:inherit; font-size:inherit;
  color:inherit; cursor:pointer; text-decoration:underline; opacity:.85; }
.rpq-cookie-link:hover { opacity:1; }
.rpq-noscroll { overflow:hidden !important; }

/* ===================== contact page: header + channels ===================== */
.rpq-head { text-align:center; max-width:760px; margin:0 auto 40px; }
.rpq-head .rpq-sub { max-width:640px; margin:0 auto; }
.rpq-panel-solo { grid-template-columns:1fr; }
.rpq-wrap-solo { max-width:820px; }
.rpq-section-contact { padding-top:128px; }
@media (max-width:820px){ .rpq-section-contact { padding-top:96px; } }
.rpq-panel-solo .rpq-panel-right { border-right:0; }
.rpq-aside { display:grid; gap:24px; align-content:start; }

/* Each channel is one clickable card: the whole row is the hit area, which
   gives a comfortable touch target and one obvious action per channel. */
.rpq-chan-link {
  display:flex; align-items:center; gap:16px;
  padding:16px 14px; margin:0 -14px;
  border-top:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-md); text-decoration:none; color:inherit;
  transition:background .18s var(--ease), transform .18s var(--ease);
}
.rpq-card .rpq-chan-link:first-of-type { border-top:0; }
.rpq-chan-link:hover { background:rgba(255,255,255,.07); transform:translateX(3px); }
.rpq-chan-link:active { transform:translateX(1px); }
.rpq-chan-link:focus-visible { outline:3px solid rgba(255,193,0,.6); outline-offset:2px; }
.rpq-chan-link .rpq-chan-ico { transition:transform .18s var(--ease); }
.rpq-chan-link:hover .rpq-chan-ico { transform:scale(1.06); }

.rpq-chan-body { min-width:0; flex:1 1 auto; }
.rpq-chan-body b { display:block; font-size:15.5px; font-weight:600; margin-bottom:3px; color:#fff; }
.rpq-chan-value { display:block; font-size:14.5px; line-height:1.5; color:var(--gold); word-break:break-word; }
.rpq-chan-link:hover .rpq-chan-value { text-decoration:underline; text-underline-offset:3px; }

/* Small affordance: an external-link mark where the card leaves the site,
   a chevron where it hands off to the device (the phone app). */
.rpq-chan-ext { flex:0 0 auto; color:#7F93AF; display:flex; align-items:center;
  transition:color .18s var(--ease), transform .18s var(--ease); }
.rpq-chan-ext svg { width:17px; height:17px; }
.rpq-chan-link:hover .rpq-chan-ext { color:var(--gold); transform:translateX(2px); }

/* The WhatsApp mark carries its own white keyline, so it is shown on its own
   rather than inside a tinted tile, where the keyline reads as a grey square.
   It keeps the 46px footprint of the other two icons so the column stays even. */
.rpq-chan-ico-wa { background:transparent; border-color:transparent; padding:0; }
.rpq-chan-img { width:46px; height:46px; display:block; }
.rpq-chan-wa:hover { background:rgba(37,211,102,.1); }
.rpq-chan-wa:hover .rpq-chan-value { color:#4AE07F; }
.rpq-chan-wa:hover .rpq-chan-ext { color:#4AE07F; }
.rpq-chan-wa:focus-visible { outline-color:rgba(37,211,102,.65); }

@media (max-width:1040px){
  .rpq-aside { grid-template-columns:1fr 1fr; }
  .rpq-card { height:100%; }
}
@media (max-width:760px){
  .rpq-aside { grid-template-columns:1fr; }
  .rpq-head { margin-bottom:28px; }
  .rpq-chan-link { padding:18px 12px; margin:0 -12px; }
}

/* The privacy notice under the submit button: readable on both skins. */
.rpq-secure a { color:#1A5FB4; text-decoration:underline; text-underline-offset:2px; }
.rpq-secure a:hover { text-decoration:none; }
.rpq-dark .rpq-secure a { color:var(--gold); }
.rpq-secure { align-items:flex-start; }
.rpq-secure svg { margin-top:2px; }


/* ---- Compact embedded enquiry form -------------------------------------
   Applies to the homepage and the nine service pages only. Scoped on
   .rpq-section-embed, so the Contact Us single-form layout
   (.rpq-section-contact) and the popup (.rpq-pop) keep their approved
   proportions. Font sizes are deliberately untouched: the form is made
   tighter by trimming padding and gaps, never by shrinking readable text. */
.rpq-section-embed .rpq-wrap { max-width:1120px; }
.rpq-section-embed .rpq-panel { grid-template-columns:36% 64%; }
.rpq-section-embed .rpq-panel-left { padding:32px 30px; }
.rpq-section-embed .rpq-panel-right { padding:30px 32px; }
.rpq-section-embed .rpq-form { gap:15px; }
.rpq-section-embed .rpq-row { gap:15px; }
.rpq-section-embed .rpq-field { gap:7px; }
.rpq-section-embed .rpq-input,
.rpq-section-embed .rpq-select { min-height:50px; padding-top:12px; padding-bottom:12px; }
.rpq-section-embed .rpq-textarea { min-height:106px; padding-top:13px; }
.rpq-section-embed .rpq-submit { min-height:50px; padding:13px 34px; }
.rpq-section-embed .rpq-pop-h { font-size:30px; margin:0 0 12px; }
.rpq-section-embed .rpq-pop-p { margin:0 0 22px; }
.rpq-section-embed .rpq-benefits { gap:15px; }
.rpq-section-embed .rpq-benefit-ico { width:38px; height:38px; border-radius:11px; }
@media (max-width:980px){
  .rpq-section-embed .rpq-panel { grid-template-columns:1fr; }
  .rpq-section-embed .rpq-panel-left { padding:28px 24px; }
  .rpq-section-embed .rpq-panel-right { padding:28px 24px 32px; }
}
@media (max-width:520px){
  .rpq-section-embed .rpq-panel-left { padding:24px 20px; }
  .rpq-section-embed .rpq-panel-right { padding:24px 20px 28px; }
}

/* ---- Compact popup ------------------------------------------------------
   The split layout, palette and type are unchanged; only padding and vertical
   gaps are trimmed so the dialog fits shorter screens without scrolling.
   Field and text sizes are untouched. */
.rpq-pop { grid-template-columns:36% 64%; }
.rpq-pop-left { padding:32px 30px; }
.rpq-pop-left::after { left:30px; }
.rpq-pop-right { padding:30px 32px; }
.rpq-pop-right .rpq-pop-p { margin-bottom:20px; }
.rpq-pop .rpq-form { gap:15px; }
.rpq-pop .rpq-row { gap:15px; }
.rpq-pop .rpq-field { gap:7px; }
.rpq-pop .rpq-input, .rpq-pop .rpq-select { min-height:50px; padding-top:12px; padding-bottom:12px; }
.rpq-pop .rpq-textarea { min-height:106px; padding-top:13px; }
.rpq-pop .rpq-submit { min-height:50px; padding:13px 34px; }
.rpq-pop .rpq-benefits { gap:15px; }
.rpq-pop .rpq-benefit-ico { width:38px; height:38px; border-radius:11px; }
@media (max-width:980px){
  .rpq-pop { grid-template-columns:1fr; }
  .rpq-pop-right { padding:28px 24px 32px; }
}
@media (max-width:520px){ .rpq-pop-right { padding:24px 20px 28px; } }

/* ---- Enquiry headings are a single colour ------------------------------
   The heading markup wraps part of the title in <em> to force a line break.
   That <em> also carried the gold accent, which split titles like
   "Let's Improve Your / Search Visibility" across two colours. The line
   break is kept; the colour is not. Gold stays on buttons, icons and small
   decorative accents. Scoped to the enquiry components only -- the embedded
   section, the popup and the Contact Us section -- so no heading elsewhere
   on the site, nor the navigation logo or footer branding, is affected. */
.rpq-section-embed .rpq-pop-h,
.rpq-section-embed .rpq-pop-h em,
.rpq-pop .rpq-pop-h,
.rpq-pop .rpq-pop-h em,
.rpq-section-contact .rpq-h2,
.rpq-section-contact .rpq-h2 em,
.rpq-section-contact .rpq-pop-h,
.rpq-section-contact .rpq-pop-h em { color:#FFFFFF; }

/* ---- Shorter information panel on small screens ------------------------
   On a phone the four benefit points push the form a long way down, so the
   last two are dropped below 820px and the first two carry the message.
   Nothing is resized: font sizes, input heights and tap targets are
   untouched, and all four points remain on tablet and desktop. The popup
   needs no equivalent rule because its left panel is already hidden below
   980px. */
@media (max-width:820px){
  .rpq-section-embed .rpq-benefit:nth-of-type(n+3) { display:none; }
}

/* ---- Compact consent bar: phone and tablet ----------------------------
   The stacked layout reached ~420px on a 390x664 screen and sat on top of
   the page's own calls to action. Layout only: same three choices, same DOM
   order, same handlers. Consent defaults, payloads, storage, audit logging
   and withdrawal are untouched, and the choice stays explicit.

   Phone (<=700px): message on top with the Privacy Policy link inline and
   fully visible -- no scroll box and no fade, so no sentence is clipped --
   then Manage across one row and Reject / Accept side by side.
   Tablet (701-820px): a single horizontal row, message left, three buttons
   right. Desktop keeps the approved design. */
@media (max-width:820px){
  .rpq-cc { padding:10px 13px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .rpq-cc-in { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
  .rpq-cc-t { font-size:12px; line-height:1.4; }
  /* The heading and the long message are desktop furniture: on a phone they
     cost two to four lines and say nothing the short message does not. */
  .rpq-cc-h { display:none; }
  .rpq-cc-full { display:none; }
  .rpq-cc-brief { display:inline; }
  /* Side by side: both labels are short, so two columns fit comfortably
     even at 320px and each button keeps a 46px target. */
  .rpq-cc-a { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
  .rpq-cc .rpq-btn { width:100%; min-height:46px; padding:11px 8px; font-size:13.5px; }
}

/* =================== narrow-phone overflow guard =================== */
/* Everything above this line is scoped under .rpq-scope. These rules are
   deliberately NOT, because they correct the SITE's own layout on screens
   at or below 360px, where nine pages scrolled sideways (320px viewport,
   327-340px of content).

   One cause, four symptoms: a grid or flex child defaults to
   min-width:auto, so a card -- or the "Email contact@rankprimora.com"
   pill, which is 278px of padding plus an unbreakable address -- refuses
   to shrink and pushes the document wider than the screen. Allowing those
   items to shrink is the standard remedy; page-level overflow-x:hidden
   would only have hidden the symptom and taken the sideways scroll with
   it. Nothing here applies above 360px, so every approved layout, on
   every phone from the iPhone SE (375px) upwards, is untouched. */
@media (max-width:360px){
  main [class*="grid"] > *,
  main [class*="flex"] > * { min-width:0; }

  /* The pill: trim the generous desktop padding and let the address wrap
     onto a second line rather than widening the page. */
  main a[class*="inline-flex"][class*="rounded-full"] {
    max-width:100%; flex-wrap:wrap; justify-content:center; text-align:center;
    padding-left:18px; padding-right:18px; overflow-wrap:anywhere;
  }

  /* A horizontal scroller is intentional; it must keep its own overflow. */
  main [class*="overflow-x-auto"] > * { min-width:max-content; }
}
