/* Page-specific styles extracted from request_quote.html for browser caching. */
/* ============================================================
   request_quote.html — Brand purple, simplified, dynamic
   ============================================================ */
.page-request-quote{
  --rq-brand:#7E57C2;
  --rq-brand-2:#B69AF0;
  --rq-brand-dark:#7353C8;
  --rq-brand-darkest:#8E6AD8;
  --rq-soft:#F5F0FB;
  --rq-soft-2:#EDE7F6;
  --rq-line:rgba(209,196,233,.55);
  --rq-ink:#1F1240;
  --rq-muted:#6E5A99;
  --rq-shadow:0 22px 50px rgba(74,45,143,.14);
}
@keyframes rqFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes rqShine{0%{transform:translateX(-120%)}60%,100%{transform:translateX(140%)}}
@keyframes rqPulse{0%,100%{box-shadow:0 0 0 0 rgba(103,58,183,.40)}70%{box-shadow:0 0 0 14px rgba(103,58,183,0)}}
@keyframes rqFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

.page-request-quote .page-content{
  background:
    radial-gradient(circle at 12% 0%, rgba(156,107,230,.22), transparent 42%),
    radial-gradient(circle at 88% 6%, rgba(103,58,183,.18), transparent 40%),
    linear-gradient(180deg,#F5F0FB 0%,#EDE7F6 55%,#F5F0FB 100%);
  min-height:100vh;
}
.page-request-quote .container{ max-width:980px; }
.page-request-quote .rq-shell{ max-width:none; margin:0; padding:22px 0 40px; }

/* ───── HERO (compact) ───── */
.page-request-quote .rq-hero{
  position:relative;
  overflow:hidden;
  padding:26px 26px 22px;
  margin-bottom:18px;
  border-radius:26px;
  border:1px solid var(--rq-line);
  background:
    linear-gradient(160deg, rgba(255,255,255,.96), rgba(245,240,251,.94)),
    radial-gradient(circle at 100% 0%, rgba(156,107,230,.18), transparent 55%);
  box-shadow:var(--rq-shadow);
  animation:rqFadeUp .5s ease both;
}
.page-request-quote .rq-hero::before{
  content:"";position:absolute;border-radius:999px;pointer-events:none;
  width:240px;height:240px;inset:auto -80px -110px auto;
  background:radial-gradient(circle, rgba(156,107,230,.32), transparent 70%);
}
.page-request-quote .rq-hero::after{
  content:"";position:absolute;border-radius:999px;pointer-events:none;
  width:180px;height:180px;inset:-60px auto auto -40px;
  background:radial-gradient(circle, rgba(103,58,183,.22), transparent 70%);
}
.page-request-quote .rq-hero-copy{ position:relative; z-index:1; }
.page-request-quote .rq-type-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 14px; border-radius:999px;
  background:linear-gradient(135deg,#7E57C2,#7353C8);
  color:#fff; font-size:13px; font-weight:900;
  box-shadow:0 10px 22px rgba(103,58,183,.32);
}
.page-request-quote .rq-type-badge svg{ animation:rqFloat 2.6s ease-in-out infinite; }
.page-request-quote .rq-hero-title{
  margin:14px 0 0;
  background:linear-gradient(135deg,#8E6AD8 0%,#7E57C2 60%,#B69AF0 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-size:clamp(24px, 4.6vw, 34px);
  line-height:1.22; letter-spacing:-.01em;
}

/* ───── FORM CARD ───── */
.page-request-quote .rq-form-wrap{
  background:linear-gradient(180deg,#ffffff,#fbf8ff);
  border:1px solid var(--rq-line);
  border-radius:26px;
  box-shadow:var(--rq-shadow);
  overflow:hidden;
  animation:rqFadeUp .55s ease .05s both;
}
.page-request-quote .rq-header{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; margin:0; padding:22px 24px 12px;
  background:linear-gradient(180deg, var(--rq-soft), #fff);
  border-bottom:1px solid var(--rq-line);
}
.page-request-quote .rq-header-main{ display:flex; align-items:center; gap:12px; }
.page-request-quote .rq-header h1{ margin:0; color:var(--rq-brand-darkest); font-size:20px; }
.page-request-quote .mw-form-back{
  width:38px;height:38px;border-radius:12px;
  background:#fff;border:1px solid var(--rq-line);
  color:var(--rq-brand);
  display:inline-flex;align-items:center;justify-content:center;
  transition:all .2s ease;
}
.page-request-quote .mw-form-back:hover{ background:var(--rq-soft); transform:translateX(-2px); }
.page-request-quote .rq-page-badge{
  display:inline-flex; align-items:center; gap:6px;
  min-height:36px; padding:0 12px; border-radius:999px;
  background:rgba(103,58,183,.10);
  color:var(--rq-brand-dark);
  border:1px solid rgba(103,58,183,.22);
  font-size:12px; font-weight:900;
}

/* hide subtitle (verbose) */
.page-request-quote .rq-subtitle,
.page-request-quote .rq-intro-card,
.page-request-quote .rq-hint,
.page-request-quote .rq-upload-hint{ display:none !important; }

.page-request-quote .rq-form{ padding:20px 24px 8px; }
.page-request-quote .rq-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px;
}
.page-request-quote .rq-span-full{ grid-column:1 / -1; }
.page-request-quote .form-group{ margin:0; }

.page-request-quote .form-label{
  display:flex; align-items:center; gap:4px;
  margin-bottom:6px;
  color:var(--rq-brand-darkest);
  font-weight:800; font-size:13.5px;
}
.page-request-quote .rq-required{ color:#dc2626; font-weight:900; }

.page-request-quote .form-input,
.page-request-quote .form-select,
.page-request-quote .form-textarea{
  width:100%;
  border-radius:14px !important;
  border:1px solid var(--rq-line) !important;
  background:#fff !important;
  padding:12px 14px;
  color:var(--rq-ink);
  font-size:14.5px;
  transition:border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.page-request-quote .form-input:focus,
.page-request-quote .form-select:focus,
.page-request-quote .form-textarea:focus{
  border-color:var(--rq-brand) !important;
  box-shadow:0 0 0 4px rgba(103,58,183,.14) !important;
  outline:none;
}
.page-request-quote .form-char-count{
  text-align:left; margin-top:4px;
  color:var(--rq-muted); font-size:11.5px; font-weight:700;
}
.page-request-quote .rq-field-error{
  display:block; margin-top:6px;
  color:#dc2626; font-size:12.5px; font-weight:700;
}

/* upload */
.page-request-quote .rq-upload-area{
  border:1.5px dashed rgba(103,58,183,.32);
  border-radius:18px;
  background:linear-gradient(180deg, var(--rq-soft), #fff);
  padding:18px;
  transition:border-color .2s ease, background .2s ease;
}
.page-request-quote .rq-upload-area:hover{ border-color:var(--rq-brand); background:var(--rq-soft-2); }
.page-request-quote .rq-upload-trigger{
  width:100%;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:14px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--rq-line);
  color:var(--rq-brand-dark);
  font-weight:800;
  cursor:pointer;
  transition:all .2s ease;
}
.page-request-quote .rq-upload-trigger:hover{
  background:var(--rq-soft);
  border-color:var(--rq-brand);
  transform:translateY(-1px);
}
.page-request-quote .rq-upload-trigger svg{ color:var(--rq-brand); }
.page-request-quote .rq-file-summary{
  margin-top:10px; padding:8px 12px; border-radius:10px;
  background:rgba(103,58,183,.06); color:var(--rq-muted);
  font-size:12.5px; text-align:center;
}
.page-request-quote .rq-attachment-note{
  display:flex; align-items:center; gap:10px;
  margin-top:10px; padding:10px 12px; border-radius:12px;
  background:rgba(103,58,183,.10); color:var(--rq-brand-dark);
  border:1px solid rgba(103,58,183,.22);
  font-size:13px;
}
.page-request-quote .rq-attachment-note strong{ display:block; }
.page-request-quote .city-clear-btn{
  margin-top:6px; padding:6px 10px; border-radius:10px;
  background:#fff; border:1px solid var(--rq-line);
  color:var(--rq-muted); font-size:12px; font-weight:700; cursor:pointer;
}

/* actions */
.page-request-quote .rq-actions{
  display:flex; gap:10px; align-items:center; justify-content:flex-end;
  padding:18px 24px 24px;
  border-top:1px solid var(--rq-line);
  background:linear-gradient(180deg,#fff,var(--rq-soft));
}
.page-request-quote .btn-outlined{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 18px; border-radius:14px;
  background:#fff; border:1px solid var(--rq-line);
  color:var(--rq-brand-dark); font-weight:800;
  text-decoration:none;
  transition:all .2s ease;
}
.page-request-quote .btn-outlined:hover{ background:var(--rq-soft); transform:translateY(-1px); }
.page-request-quote .btn-primary-lg{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:50px; padding:0 22px; border-radius:14px; border:0;
  background:linear-gradient(135deg,#B69AF0 0%,#7E57C2 50%,#7353C8 100%);
  color:#fff; font-weight:800; font-size:14.5px;
  box-shadow:0 14px 30px rgba(103,58,183,.32),inset 0 1px 0 rgba(255,255,255,.32);
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease, box-shadow .25s ease;
}
.page-request-quote .btn-primary-lg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.25) 50%, transparent 70%);
  transform:translateX(-120%); pointer-events:none;
}
.page-request-quote .btn-primary-lg:hover::after{ animation:rqShine 1.1s ease forwards; }
.page-request-quote .btn-primary-lg:hover{
  transform:translateY(-2px); filter:brightness(1.08);
  box-shadow:0 18px 38px rgba(103,58,183,.42);
}

/* auth gate */
.page-request-quote .auth-gate{
  background:linear-gradient(160deg,#fff,var(--rq-soft));
  border:1px solid var(--rq-line);
  border-radius:24px;
  box-shadow:var(--rq-shadow);
  padding:30px 22px;
  text-align:center;
  animation:rqFadeUp .5s ease both;
}
.page-request-quote .auth-gate-icon{
  width:64px;height:64px;margin:0 auto 14px;
  border-radius:50%;
  background:linear-gradient(135deg,#B69AF0,#7E57C2);
  color:#fff; font-size:28px;
  display:flex;align-items:center;justify-content:center;
  animation:rqPulse 2.4s ease-in-out infinite;
}
.page-request-quote .auth-gate h2{ margin:0 0 6px; color:var(--rq-brand-darkest); }
.page-request-quote .auth-gate p{ margin:0 0 16px; color:var(--rq-muted); }
.page-request-quote .auth-gate .btn-primary{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 24px;border-radius:14px;border:0;
  background:linear-gradient(135deg,#B69AF0,#7E57C2);
  color:#fff;font-weight:800;text-decoration:none;
  box-shadow:0 14px 30px rgba(103,58,183,.32);
}
.page-request-quote .auth-gate-unified-icon{
  width:64px;height:64px;margin:0 auto 14px;
  border-radius:50%;
  background:linear-gradient(135deg,#B69AF0,#7E57C2);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  animation:rqPulse 2.4s ease-in-out infinite;
}
.page-request-quote .auth-gate-unified-title{ color:var(--rq-brand-darkest); }
.page-request-quote .auth-gate-unified-desc,
.page-request-quote .auth-gate-unified-note{ color:var(--rq-muted); }
.page-request-quote .auth-gate-unified-kicker{
  color:var(--rq-brand); font-weight:800; text-align:center;
}

/* submit state + success */
.page-request-quote .rq-submit-state{
  margin-top:18px; padding:18px;
  border-radius:20px;
  background:linear-gradient(160deg,#fff,var(--rq-soft));
  border:1px solid var(--rq-line);
  box-shadow:var(--rq-shadow);
}
.page-request-quote .rq-submit-state-card{ display:flex; gap:14px; align-items:flex-start; }
.page-request-quote .rq-submit-state-orb{
  width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg,#B69AF0,#7E57C2);
  flex-shrink:0;
  animation:rqPulse 1.8s ease-in-out infinite;
}
.page-request-quote .rq-submit-state-copy{ flex:1; }
.page-request-quote .rq-submit-state-copy strong{ color:var(--rq-brand-darkest); }
.page-request-quote .rq-submit-state-copy p{ margin:4px 0 8px; color:var(--rq-muted); font-size:13px; }
.page-request-quote .rq-submit-state-meta{
  display:flex;gap:12px;justify-content:space-between;
  color:var(--rq-muted);font-size:12px;font-weight:700;margin-bottom:6px;
}
.page-request-quote .rq-submit-state-progress{
  height:8px;border-radius:999px;background:var(--rq-soft-2);overflow:hidden;
}
.page-request-quote .rq-submit-state-progress span{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,#B69AF0,#7E57C2);
  transition:width .3s ease;
}
.page-request-quote .success-overlay{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  background:rgba(31,18,64,.5);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.page-request-quote .success-card{
  background:#fff;border-radius:24px;padding:30px 26px;
  text-align:center;max-width:380px;width:100%;
  box-shadow:0 30px 70px rgba(74,45,143,.24);
  animation:rqFadeUp .4s ease both;
}
.page-request-quote .success-icon{
  width:72px;height:72px;margin:0 auto 14px;
  border-radius:50%;
  background:linear-gradient(135deg,#B69AF0,#7E57C2);
  display:flex;align-items:center;justify-content:center;
  font-size:36px;
}
.page-request-quote .success-title{ color:var(--rq-brand-darkest); margin:0 0 6px; }
.page-request-quote .success-msg{ color:var(--rq-muted); margin:0 0 16px; }
.page-request-quote .success-card .btn-primary{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 22px;border-radius:14px;
  background:linear-gradient(135deg,#B69AF0,#7E57C2);
  color:#fff;font-weight:800;text-decoration:none;
  box-shadow:0 14px 30px rgba(103,58,183,.32);
}
.page-request-quote .success-card .btn-link{
  display:inline-block;color:var(--rq-muted);text-decoration:none;font-weight:700;font-size:13px;
}

/* toast */
.page-request-quote .rq-toast{
  position:fixed;bottom:90px;right:20px;left:auto;z-index:9000;
  display:none;align-items:flex-start;gap:10px;
  max-width:360px;padding:14px 16px;
  border-radius:16px;
  background:linear-gradient(160deg,#fff,var(--rq-soft));
  border:1px solid var(--rq-line);
  box-shadow:0 22px 50px rgba(74,45,143,.20);
  animation:rqFadeUp .35s ease both;
}
.page-request-quote .rq-toast.show{ display:flex; }
.page-request-quote .rq-toast-icon{
  width:36px;height:36px;border-radius:10px;
  background:rgba(103,58,183,.12);color:var(--rq-brand);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.page-request-quote .rq-toast-copy{ flex:1; }
.page-request-quote .rq-toast-copy strong{ color:var(--rq-brand-darkest); display:block; font-size:13.5px; }
.page-request-quote .rq-toast-copy p{ margin:2px 0 0; color:var(--rq-muted); font-size:12.5px; }
.page-request-quote .rq-toast-close{
  border:0;background:transparent;color:var(--rq-muted);cursor:pointer;
  padding:4px;border-radius:8px;
}
.page-request-quote .rq-toast-close:hover{ background:var(--rq-soft); color:var(--rq-brand); }
.page-request-quote .rq-toast-progress{
  position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,#B69AF0,#7E57C2);
  border-bottom-left-radius:16px;border-bottom-right-radius:16px;
}
.page-request-quote .rq-toast.success .rq-toast-icon{ background:rgba(34,197,94,.14); color:#15803d; }
.page-request-quote .rq-toast.error   .rq-toast-icon{ background:rgba(220,38,38,.14); color:#b91c1c; }
.page-request-quote .rq-toast.warning .rq-toast-icon{ background:rgba(217,119,6,.14); color:#b45309; }
.page-request-quote .rq-location-sheet{
  position:fixed;
  inset:0;
  z-index:1300;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:18px;
}
.page-request-quote .rq-location-sheet.hidden{ display:none; }
.page-request-quote .rq-location-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(31,18,64,.46);
  backdrop-filter:blur(8px);
}
.page-request-quote .rq-location-panel{
  position:relative;
  width:min(560px,100%);
  border:1px solid var(--rq-line);
  border-radius:26px;
  background:linear-gradient(180deg,#ffffff,#fbf8ff);
  box-shadow:0 30px 80px rgba(31,18,64,.26);
  padding:20px;
}
.page-request-quote .rq-location-close{
  position:absolute;
  top:14px;
  inset-inline-end:14px;
  width:38px;
  height:38px;
  border:1px solid var(--rq-line);
  border-radius:12px;
  background:#fff;
  color:var(--rq-muted);
  display:grid;
  place-items:center;
  cursor:pointer;
}
.page-request-quote .rq-location-icon{
  width:52px;
  height:52px;
  border-radius:18px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--rq-brand-2),var(--rq-brand-dark));
  box-shadow:0 14px 30px rgba(103,58,183,.26);
}
.page-request-quote .rq-location-panel h3{
  margin:14px 0 8px;
  color:var(--rq-brand-darkest);
  font-size:20px;
  line-height:1.45;
}
.page-request-quote .rq-location-panel p{
  margin:0;
  color:var(--rq-muted);
  font-size:14px;
  line-height:1.8;
}
.page-request-quote .rq-location-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:18px;
}
.page-request-quote .rq-location-primary,
.page-request-quote .rq-location-secondary,
.page-request-quote .rq-location-apply{
  min-height:48px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:900;
  cursor:pointer;
}
.page-request-quote .rq-location-primary,
.page-request-quote .rq-location-apply{
  border:0;
  color:#fff;
  background:linear-gradient(135deg,var(--rq-brand-2),var(--rq-brand));
}
.page-request-quote .rq-location-secondary{
  border:1px solid var(--rq-line);
  color:var(--rq-brand-dark);
  background:#fff;
}
.page-request-quote .rq-location-manual{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--rq-line);
  display:grid;
  gap:10px;
}
.page-request-quote .rq-location-manual.hidden{ display:none; }
.page-request-quote .rq-location-map{
  min-height:260px;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--rq-line);
  background:var(--rq-soft);
}
.page-request-quote .rq-location-field label{
  display:block;
  margin-bottom:6px;
  color:var(--rq-brand-darkest);
  font-size:13px;
  font-weight:900;
}
.page-request-quote .rq-location-field select{
  width:100%;
  min-height:46px;
  border:1px solid var(--rq-line);
  border-radius:14px;
  background:#fff;
  color:var(--rq-ink);
  padding:0 12px;
  font-size:14px;
}

/* responsive */
@media (max-width: 720px){
  .page-request-quote .rq-grid{ grid-template-columns:1fr; }
  .page-request-quote .rq-hero{ padding:22px 18px; border-radius:22px; }
  .page-request-quote .rq-header{ padding:18px 18px 10px; flex-wrap:wrap; }
  .page-request-quote .rq-form{ padding:16px 18px 8px; }
  .page-request-quote .rq-actions{ padding:16px 18px 20px; flex-direction:column-reverse; }
  .page-request-quote .rq-actions .btn-outlined,
  .page-request-quote .rq-actions .btn-primary-lg{ width:100%; }
  .page-request-quote .rq-toast{ right:12px; left:12px; max-width:none; }
  .page-request-quote .rq-location-sheet{ padding:0; }
  .page-request-quote .rq-location-panel{ border-radius:24px 24px 0 0; padding:18px; }
  .page-request-quote .rq-location-actions{ grid-template-columns:1fr; }
}

/* dark mode */
html[data-theme="dark"] body.page-request-quote .page-content{
  background:
    radial-gradient(circle at 12% 0%, rgba(103,58,183,.30), transparent 45%),
    radial-gradient(circle at 88% 6%, rgba(74,45,143,.30), transparent 45%),
    linear-gradient(180deg,#1F0E40 0%,#2A1654 60%,#1F0E40 100%);
  color:#EDE7F6;
}
html[data-theme="dark"] body.page-request-quote .rq-hero,
html[data-theme="dark"] body.page-request-quote .rq-form-wrap,
html[data-theme="dark"] body.page-request-quote .auth-gate,
html[data-theme="dark"] body.page-request-quote .rq-submit-state,
html[data-theme="dark"] body.page-request-quote .success-card{
  background:linear-gradient(160deg,#2A1654 0%,#1F0E40 100%);
  border-color:#8E6AD8;
  color:#EDE7F6;
}
html[data-theme="dark"] body.page-request-quote .form-input,
html[data-theme="dark"] body.page-request-quote .form-select,
html[data-theme="dark"] body.page-request-quote .form-textarea{
  background:#1F0E40 !important; border-color:#8E6AD8 !important; color:#EDE7F6 !important;
}
html[data-theme="dark"] body.page-request-quote .form-label,
html[data-theme="dark"] body.page-request-quote .rq-header h1,
html[data-theme="dark"] body.page-request-quote .auth-gate h2,
html[data-theme="dark"] body.page-request-quote .success-title{ color:#EDE7F6; }

@media (prefers-reduced-motion:reduce){
  .page-request-quote *,
  .page-request-quote *::before,
  .page-request-quote *::after{ animation:none !important; }
}
