@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');

:root { --artboard-w:1672; --artboard-h:941; }
* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; width:100%; background:#fff; }
body { font-family: 'Montserrat', Arial, Helvetica, sans-serif; }
.page-wrap { width:100%; display:block; background:#fff; overflow-x:hidden; }
.order-artboard {
  position:relative;
  width:100vw;
  aspect-ratio:1672/941;
  background-image:image-set(url('assets/order-form-background.png') 1x, url('assets/order-form-background@2x.png') 2x, url('assets/order-form-background@3x.png') 3x);
  background-position:center top;
  background-size:100% 100%;
  background-repeat:no-repeat;
  overflow:hidden;
  margin:0;
}
.hidden { display:none; }
.hotspot { position:absolute; display:block; margin:0; padding:0; font:500 clamp(10px,0.78vw,14px) 'Montserrat', Arial, Helvetica, sans-serif; }
.textfield {
  border:0;
  outline:0;
  border-radius:clamp(4px,0.45vw,10px);
  background:transparent;
  color:transparent;
  padding:0.45% 0.75%;
  appearance:auto;
  font-family:'Montserrat', Arial, Helvetica, sans-serif;
}
.textfield:focus, .textfield.filled {
  background:rgba(255,255,255,0.98);
  color:#141414;
  border:1px solid rgba(199,207,213,.95);
  box-shadow:0 0 0 2px rgba(255,31,109,.12);
}
textarea.textfield { resize:none; line-height:1.22; padding-top:0.55%; }
select.textfield { cursor:pointer; }
select[multiple].textfield { overflow:hidden; }
select[multiple].textfield:focus, select[multiple].textfield.filled { overflow:auto; height:auto; min-height:8%; z-index:10; }
.filefield { cursor:pointer; border-radius:1.6%; }
.filefield input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.filefield .file-name {
  display:none;
  position:absolute;
  left:18%; right:18%; top:37%;
  text-align:center;
  padding:0.5% 1%;
  border-radius:8px;
  background:rgba(255,255,255,.97);
  color:#222;
  font:700 clamp(10px,0.82vw,14px) 'Montserrat', Arial, Helvetica, sans-serif;
  box-shadow:0 0 0 1px rgba(168,82,255,.25);
}
.filefield.filled .file-name { display:block; }
.check {
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  cursor:pointer;
}
.check:checked::after {
  content:'✓';
  position:absolute;
  inset:-2% 0 0 8%;
  font:bold clamp(14px,1.25vw,24px) 'Montserrat', Arial, Helvetica, sans-serif;
  color:#ff1f6d;
}
.submit-button {
  border:0;
  background:transparent;
  cursor:pointer;
  border-radius:8px;
}
.submit-button:focus { outline:3px solid rgba(255,31,109,.35); outline-offset:2px; }
@media (max-width: 900px) {
  .hotspot { font-size: 10px; }
  .textfield { padding-left:1.05%; padding-right:1.05%; }
}


/* Native select controls were expanding visually in Safari after selection.
   Keep the real select clickable/submittable, but render the chosen value in a stable overlay. */
select.hotspot.textfield {
  opacity: 0 !important;
  color: transparent !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  z-index: 5 !important;
}

select.hotspot.textfield:focus,
select.hotspot.textfield.filled,
select.hotspot.textfield:active {
  opacity: 0 !important;
  color: transparent !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  height: inherit;
  min-height: 0 !important;
  overflow: hidden !important;
}

.faux-select-value {
  z-index: 4;
  pointer-events: none;
  opacity: 0;
  display: flex;
  align-items: center;
  padding: 0.45% 0.75%;
  border-radius: clamp(4px,0.45vw,10px);
  background: rgba(255,255,255,0.98);
  color: #141414;
  border: 1px solid rgba(199,207,213,.95);
  font: 500 clamp(10px,0.78vw,14px) 'Montserrat', Arial, Helvetica, sans-serif;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.faux-select-value.has-value {
  opacity: 1;
}
