/* Floating contact + modal — matches colewinters.com theme */
.contact-fab{
  position:fixed;
  bottom:max(1.25rem,env(safe-area-inset-bottom));
  right:max(1.25rem,env(safe-area-inset-right));
  z-index:90;
  display:flex;align-items:center;gap:.65rem;
  background:var(--deep,#10161b);
  color:var(--bone,#f4f2ec);
  border:1px solid rgba(143,179,196,.35);
  box-shadow:0 8px 32px rgba(0,0,0,.45),0 0 0 1px rgba(168,197,212,.06) inset;
  font-family:'IBM Plex Mono',monospace;
  font-weight:400;font-size:.68rem;
  letter-spacing:.18em;text-transform:uppercase;
  padding:.75rem 1rem .75rem .85rem;
  cursor:pointer;
  transition:background .25s,border-color .25s,color .25s,transform .2s;
}
.contact-fab:hover{
  background:rgba(16,22,27,.98);
  border-color:rgba(168,197,212,.55);
  transform:translateY(-2px);
}
.contact-fab:focus-visible{outline:1px solid var(--signal,#e0301e);outline-offset:4px}
.contact-fab-icon{
  width:1.1rem;height:1.1rem;flex-shrink:0;
  color:var(--ice,#8fb3c4);
}
.contact-fab-label{display:none}
@media (min-width:480px){.contact-fab-label{display:inline}}

#contact-modal.modal-overlay{z-index:110}

#contact-modal .modal{max-width:32rem}

#contact-modal .word-count{
  font-family:'IBM Plex Mono',monospace;
  font-size:.65rem;letter-spacing:.12em;
  color:rgba(244,242,236,.45);
  text-align:right;margin-top:-.35rem;
}
#contact-modal .word-count.over{color:var(--signal,#e0301e)}

/* Modal + form (standalone on pages without index.html modal styles) */
#contact-modal.modal-overlay{
  position:fixed;inset:0;
  background:rgba(11,11,13,.88);
  display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));
  opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
#contact-modal.modal-overlay.open{opacity:1;pointer-events:all}
#contact-modal .modal{
  background:var(--deep,#10161b);
  border:1px solid rgba(244,242,236,.12);
  max-width:30rem;width:100%;
  margin:auto;flex-shrink:0;
  padding:3rem 2.5rem;position:relative;
  transform:translateY(16px);
  transition:transform .3s ease;
}
#contact-modal.modal-overlay.open .modal{transform:none}
#contact-modal .modal-close{
  position:absolute;top:1.25rem;right:1.5rem;
  background:none;border:none;color:rgba(244,242,236,.72);
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;
  letter-spacing:.2em;text-transform:uppercase;
  cursor:pointer;padding:.25rem;transition:color .2s;
}
#contact-modal .modal-close:hover{color:var(--bone,#f4f2ec)}
#contact-modal h2{
  font-family:'Cormorant Garamond',serif;
  font-weight:400;font-size:clamp(1.4rem,3vw,1.9rem);
  line-height:1.25;margin-bottom:1rem;
}
#contact-modal .sub{color:rgba(244,242,236,.58);font-size:.98rem;margin-bottom:2rem;line-height:1.68}
#contact-modal .modal-form{display:flex;flex-direction:column;gap:1rem}
#contact-modal .field-group{display:flex;flex-direction:column;gap:.4rem}
#contact-modal .field-group label{
  font-family:'IBM Plex Mono',monospace;font-weight:400;
  font-size:.67rem;letter-spacing:.25em;text-transform:uppercase;
  color:var(--ice-bright,#a8c5d4);
}
#contact-modal .field-group input,#contact-modal .field-group textarea{
  background-color:transparent;border:1px solid rgba(244,242,236,.22);
  color:var(--bone,#f4f2ec);
  font-family:'Newsreader',Georgia,serif;font-size:.95rem;font-weight:300;
  padding:.75rem 1rem;width:100%;transition:border-color .2s;
  cursor:text;caret-color:var(--bone,#f4f2ec);color-scheme:dark;
}
#contact-modal .field-group textarea{resize:vertical;min-height:4.5rem}
#contact-modal .field-group input::placeholder,#contact-modal .field-group textarea::placeholder{color:rgba(244,242,236,.45)}
#contact-modal .field-group input:focus,#contact-modal .field-group textarea:focus{border-color:rgba(244,242,236,.5);outline:none}
#contact-modal .custom-select{position:relative}
#contact-modal .custom-select-native{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
#contact-modal .custom-select-trigger{
  position:relative;display:block;width:100%;text-align:left;
  background-color:transparent;border:1px solid rgba(244,242,236,.22);
  color:var(--bone,#f4f2ec);
  font-family:'Newsreader',Georgia,serif;font-size:.95rem;font-weight:300;
  padding:.75rem 2.5rem .75rem 1rem;transition:border-color .2s;
  cursor:pointer;color-scheme:dark;-webkit-appearance:none;appearance:none;
}
#contact-modal .custom-select-trigger.placeholder{color:rgba(244,242,236,.3)}
#contact-modal .custom-select-trigger:focus,#contact-modal .custom-select.open .custom-select-trigger{border-color:rgba(244,242,236,.5);outline:none}
#contact-modal .custom-select-trigger::after{
  content:"";position:absolute;right:1rem;top:50%;
  width:12px;height:8px;margin-top:-4px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238fb3c4' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat center/contain;
  transition:transform .2s;
}
#contact-modal .custom-select.open .custom-select-trigger::after{transform:rotate(180deg)}
#contact-modal .custom-select-menu{
  position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;
  list-style:none;margin:0;padding:.25rem 0;
  background:var(--deep,#10161b);border:1px solid rgba(244,242,236,.22);
  max-height:12rem;overflow-y:auto;
}
#contact-modal .custom-select-menu[hidden]{display:none}
#contact-modal .custom-select-menu [role=option]{
  padding:.65rem 1rem;font-family:'Newsreader',Georgia,serif;
  font-size:.95rem;font-weight:300;color:var(--bone,#f4f2ec);cursor:pointer;
}
#contact-modal .custom-select-menu [role=option]:hover,
#contact-modal .custom-select-menu [role=option].focused{background:rgba(143,179,196,.12)}
#contact-modal .custom-select-menu [role=option][aria-selected=true]{color:var(--ice,#8fb3c4)}
#contact-modal .modal-status{
  font-family:'IBM Plex Mono',monospace;font-size:.78rem;letter-spacing:.08em;
  border-left:1px solid var(--signal,#e0301e);
  padding:.5rem 0 .5rem 1rem;display:none;margin-top:.5rem;
}
#contact-modal .modal-status.visible{display:block}
#contact-modal .modal-status.error{color:var(--signal,#e0301e)}
#contact-modal .modal-success{display:none}
#contact-modal .modal-success.visible{display:block}
#contact-modal .modal-success h3{
  font-family:'Cormorant Garamond',serif;font-weight:400;font-size:1.4rem;margin-bottom:1rem;
}
#contact-modal .modal-success p{color:rgba(244,242,236,.58);font-size:.98rem;line-height:1.7}
#contact-modal .btn-primary{
  background:var(--bone,#f4f2ec);color:var(--ink,#0b0b0d);
  border:1px solid var(--bone,#f4f2ec);
  font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:.75rem;
  letter-spacing:.2em;text-transform:uppercase;
  padding:.85rem 1.6rem;cursor:pointer;
  transition:background .25s,border-color .25s,color .25s;
}
#contact-modal .btn-primary:hover{background:var(--signal,#e0301e);border-color:var(--signal,#e0301e);color:var(--bone,#f4f2ec)}
#contact-modal .btn-primary:disabled{opacity:.5;cursor:default}
@media (max-width:600px){#contact-modal .modal{padding:2.25rem 1.5rem}}
