/* Premium homepage enquiry dialog */
.quote{
  width:min(1000px,calc(100% - 2rem));
  max-width:none;
  max-height:calc(100vh - 2rem);
  max-height:calc(100dvh - 2rem);
  padding:0;
  overflow:visible;
  color:var(--text);
  background:transparent;
  border:0;
}
.quote::backdrop{
  background:rgba(3,10,28,.76);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  animation:quote-backdrop-in .45s ease both;
}
.quote[open]{animation:quote-modal-in .65s var(--ease-out) both}
.quote-ring{
  padding:2px;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(135deg,#F3D675,#B8921F 32%,#F3D675 54%,#B8921F);
  box-shadow:0 36px 100px rgba(0,0,0,.5);
}
.quote-card{
  position:relative;
  max-height:calc(100vh - 2.25rem);
  max-height:calc(100dvh - 2.25rem);
  overflow:hidden;
  border-radius:22px;
  background:#FCFBF8;
}
.quote-content{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,3fr);
  max-height:calc(100vh - 2.25rem);
  max-height:calc(100dvh - 2.25rem);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:var(--gold) #F1EEE7;
}
.quote-close{
  position:absolute;
  top:1rem;
  right:1rem;
  z-index:5;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:var(--navy);
  background:#fff;
  border:1px solid rgba(184,146,31,.55);
  border-radius:50%;
  box-shadow:0 8px 20px rgba(7,26,61,.13);
  transition:transform .35s var(--ease-out),background .25s,color .25s,box-shadow .25s;
}
.quote-close .ico{width:1rem;height:1rem}
.quote-close:hover{transform:rotate(90deg);color:var(--navy);background:var(--gold-grad);box-shadow:0 10px 24px rgba(184,146,31,.3)}
.quote-side{
  position:relative;
  display:flex;
  min-height:560px;
  flex-direction:column;
  justify-content:space-between;
  padding:2.2rem 2rem 1.8rem;
  overflow:hidden;
  isolation:isolate;
  color:#fff;
  background:linear-gradient(145deg,#061633 0%,#0A2A66 57%,#071A3D 100%);
}
.quote-side::before{
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  background:linear-gradient(180deg,rgba(5,18,43,.2) 0%,rgba(5,18,43,.42) 48%,#071A3D 100%),url("../img/achievements/achievements-bg.webp") center/cover no-repeat;
  opacity:.55;
}
.quote-side::after{
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  background:radial-gradient(ellipse at 18% 26%,rgba(29,83,165,.42),transparent 48%);
}
.qs-logo{width:clamp(118px,14vw,154px);height:auto;filter:drop-shadow(0 6px 16px rgba(0,0,0,.35));animation:quote-side-in .8s .12s var(--ease-out) both}
.qs-copy{position:relative;z-index:2;max-width:56%;margin-top:auto;padding:2.4rem 0 1rem;animation:quote-side-in .75s .2s var(--ease-out) both}
.qs-eyebrow,.qm-eyebrow{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .85rem;
  color:#E8C95D;
  font:800 .68rem/1.4 var(--sans);
  letter-spacing:.17em;
  text-transform:uppercase;
}
.qs-eyebrow .ico{width:1.1rem;height:1.1rem}
.qs-title{max-width:none;margin:0 0 .9rem;color:#fff;font-size:clamp(1.32rem,2.4vw,1.62rem);line-height:1.14;letter-spacing:-.04em}
.qs-title span{display:block;color:#E9CA67}
.qs-text{max-width:none;margin:0;color:#D1D9E8;font-size:.9rem;line-height:1.7}
.qs-visual{
  position:absolute;
  z-index:-1;
  right:-1.8rem;
  bottom:.25rem;
  width:min(52%,235px);
  max-height:45%;
  object-fit:contain;
  object-position:right bottom;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.35));
  opacity:.8;
  -webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);
  mask-image:linear-gradient(180deg,#000 72%,transparent);
  animation:quote-visual-in 1.1s .1s var(--ease-out) both;
}
.qs-line{position:absolute;z-index:1;right:0;width:56%;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(243,214,117,.75))}
.qs-line-one{top:25%;transform:rotate(-28deg);transform-origin:right}
.qs-line-two{top:31%;right:-9%;width:75%;transform:rotate(-28deg);transform-origin:right;opacity:.45}
.qs-promise{position:relative;z-index:2;display:flex;align-items:center;gap:.55rem;margin:1.25rem 0 0;color:#E7D9AB;font-size:.72rem;letter-spacing:.025em}
.qs-promise .ico{width:1.1rem;height:1.1rem;color:#E9CA67}
.quote-main{position:relative;padding:2.5rem 2.45rem 1.75rem;background:linear-gradient(155deg,#fff 0%,#FCFBF8 76%,#F7F4EC 100%)}
.qm-head{margin:0 2.5rem 1.5rem 0;animation:quote-form-in .7s .18s var(--ease-out) both}
.qm-eyebrow{margin-bottom:.55rem;font-size:.62rem}
.qm-head h2{margin:0 0 .45rem;font-size:clamp(1.27rem,2.3vw,1.62rem);line-height:1.2;letter-spacing:-.035em}
.qm-head>p:last-child{margin:0;color:var(--muted);font-size:.86rem}
.quote-main .quote-form{display:block;padding:0;animation:quote-form-in .75s .28s var(--ease-out) both}
.quote-fields{display:grid;grid-template-columns:1fr 1fr;gap:.9rem .8rem}
.quote-field{min-width:0}
.quote-field-wide{grid-column:1/-1}
.quote-field label{display:block;margin:0 0 .34rem;color:#33415B;font-size:.76rem;font-weight:700;letter-spacing:.005em}
.quote-field label b{color:var(--gold-deep)}
.quote-field label span{color:#7A8495;font-weight:500}
.quote-field input,.quote-field select,.quote-field textarea{
  display:block;
  width:100%;
  min-height:46px;
  padding:.72rem .85rem;
  color:var(--text);
  background:#fff;
  border:1px solid rgba(7,26,61,.14);
  border-radius:9px;
  box-shadow:0 3px 10px rgba(7,26,61,.035);
  font:500 .83rem/1.4 var(--sans);
  transition:border-color .25s,box-shadow .25s,background .25s;
}
.quote-field textarea{min-height:76px;resize:vertical}
.quote-field select{appearance:none;padding-right:2.2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%23B8921F' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center}
.quote-field input::placeholder,.quote-field textarea::placeholder{color:#929BAA}
.quote-field input:focus,.quote-field select:focus,.quote-field textarea:focus{outline:0;border-color:#C5A338;background:#fff;box-shadow:0 0 0 3px rgba(212,175,55,.18),0 5px 16px rgba(7,26,61,.07)}
.quote-field.invalid input,.quote-field.invalid select,.quote-field.invalid textarea{border-color:#B53A32;box-shadow:0 0 0 3px rgba(181,58,50,.1)}
.quote-error{display:block;min-height:.15rem;margin-top:.2rem;color:#A52D25;font-size:.7rem;line-height:1.3}
.quote-submit{
  position:relative;
  display:flex;
  width:100%;
  min-height:52px;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  margin-top:.7rem;
  padding:.8rem 1.2rem;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(110deg,#071A3D,#0B3478 58%,#071A3D);
  border:1px solid rgba(212,175,55,.75);
  border-radius:9px;
  box-shadow:0 12px 24px -14px rgba(7,26,61,.8);
  font:800 .76rem/1.3 var(--sans);
  letter-spacing:.09em;
  text-transform:uppercase;
  transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s;
}
.quote-submit::before{position:absolute;top:-80%;bottom:-80%;left:-35%;width:22%;content:"";transform:rotate(24deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transition:left .65s var(--ease-out)}
.quote-submit span,.quote-submit .ico{position:relative;z-index:1}
.quote-submit .ico{width:1.15rem;height:1.15rem;color:#E9CA67;transition:transform .3s}
.quote-submit:hover{transform:translateY(-2px);border-color:#F3D675;box-shadow:0 16px 28px -14px rgba(7,26,61,.72)}
.quote-submit:hover::before{left:120%}
.quote-submit:hover .ico{transform:translateX(4px)}
.quote-submit:disabled{cursor:wait;opacity:.72;transform:none}
.quote-status{min-height:1.2em;margin:.55rem 0 0;font-size:.78rem;font-weight:700}
.quote-status:empty{display:none}
.quote-status.bad{color:#A52D25}
.quote-fine{margin:.3rem 0 0;color:#7A8495;font-size:.68rem;line-height:1.5;text-align:center}
.quote-done{display:grid;min-height:360px;align-content:center;justify-items:center;gap:.9rem;padding:1rem;text-align:center}
.quote-done[hidden]{display:none}
.qd-ico{display:grid;place-items:center;width:72px;height:72px;color:var(--navy);background:var(--gold-grad);border-radius:50%;box-shadow:0 0 0 9px rgba(212,175,55,.14),0 18px 34px -15px rgba(184,146,31,.65)}
.qd-ico .ico{width:2.1rem;height:2.1rem}
.quote-done h3{margin:.35rem 0 0;font-size:1.32rem}
.quote-done p{max-width:25rem;margin:0;color:var(--muted);font-size:.92rem}
@keyframes quote-modal-in{from{opacity:0;transform:translateY(20px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes quote-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes quote-side-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes quote-visual-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
@keyframes quote-form-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

@media (max-width:820px){
  .quote{width:min(720px,calc(100% - 1.25rem))}
  .quote-content{grid-template-columns:minmax(0,1.8fr) minmax(0,3.2fr)}
  .quote-side{min-height:520px;padding:1.8rem 1.45rem 1.5rem}
  .quote-main{padding:2.25rem 1.7rem 1.5rem}
  .qs-visual{right:-2rem;width:62%}
  .quote-fields{gap:.75rem .65rem}
}
@media (max-width:640px){
  .quote{width:calc(100% - 1rem);max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem)}
  .quote-ring{border-radius:19px}
  .quote-card{max-height:calc(100vh - 1.25rem);max-height:calc(100dvh - 1.25rem);border-radius:17px}
  .quote-content{display:block;max-height:calc(100vh - 1.25rem);max-height:calc(100dvh - 1.25rem)}
  .quote-close{top:.65rem;right:.65rem;width:38px;height:38px}
  .quote-side{display:block;min-height:0;padding:1rem 4rem .95rem 1.1rem}
  .quote-side::before{background:linear-gradient(100deg,rgba(5,18,43,.34),#071A3D 88%),url("../img/achievements/achievements-bg.webp") center/cover no-repeat}
  .qs-logo{width:86px;margin-bottom:.55rem}
  .qs-copy{max-width:none;margin:0;padding:0}
  .qs-eyebrow{margin-bottom:.35rem;font-size:.55rem}
  .qs-title{max-width:23rem;margin:0;font-size:1.09rem}
  .qs-text,.qs-visual,.qs-line,.qs-promise{display:none}
  .quote-main{padding:1.25rem 1.1rem 1.15rem}
  .qm-head{margin:0 2.5rem 1rem 0}
  .qm-eyebrow{font-size:.56rem}
  .qm-head h2{font-size:1.17rem}
  .quote-done{min-height:260px}
}
@media (max-width:430px){
  .quote-fields{grid-template-columns:1fr}
  .quote-field-wide{grid-column:auto}
  .quote-side{padding-right:3.6rem}
  .quote-main{padding-inline:.9rem}
  .quote-submit{font-size:.68rem;letter-spacing:.065em}
}
@media (prefers-reduced-motion:reduce){
  .quote::backdrop,.quote[open],.qs-logo,.qs-copy,.qs-visual,.qm-head,.quote-form{animation:none}
  .quote-close,.quote-submit,.quote-submit::before,.quote-submit .ico{transition:none}
}
