/*
 * Contact form. Uses the theme's tokens so it inherits the approved palette
 * rather than shipping its own look.
 */
.bof{max-width:640px}
.bof__title{font-size:var(--t-xl,26px);margin-bottom:var(--s3,24px)}
.bof__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bof__full{grid-column:1 / -1}
@media(max-width:560px){.bof__grid{grid-template-columns:1fr}.bof__half{grid-column:1 / -1}}

.bof .fld label{display:block;font-size:12px;font-weight:600;
  color:var(--ink-2,#5A544B);margin-bottom:6px}
.bof .fld label span{color:#B4462F}
.bof .fld input,.bof .fld textarea,.bof .fld select{
  width:100%;padding:13px 14px;border:1px solid var(--line-2,#D6D3CC);
  border-radius:10px;font:inherit;font-size:15px;background:#fff;
  color:var(--ink,#12100D);transition:border-color .18s,box-shadow .18s}
.bof .fld textarea{resize:vertical;min-height:120px;line-height:1.6}
.bof .fld input:focus,.bof .fld textarea:focus,.bof .fld select:focus{
  outline:0;border-color:var(--forest,#0F3B2D);
  box-shadow:0 0 0 3px rgba(15,59,45,.12)}
.bof .fld.is-err input,.bof .fld.is-err textarea{border-color:#B4462F}
.bof .fld__e{display:block;font-size:12px;color:#B4462F;margin-top:5px;font-weight:500;min-height:0}

/* Off-screen, never display:none — some bots skip hidden inputs entirely. */
.bof__hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.bof__foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}
.bof__note{font-size:12.5px;color:var(--ink-3,#918A80);line-height:1.5;margin:0;flex:1;min-width:200px}
.bof__note a{color:var(--forest,#0F3B2D);font-weight:600}

.bof__msg{margin:14px 0 0;font-size:13.5px;font-weight:600;line-height:1.5}
.bof__msg.is-ok{color:#0E6B31}
.bof__msg.is-err{color:#B4462F}
.bof.is-sent .bof__grid{opacity:.55;transition:opacity .3s}

/* Support hours, stated once from the setting so the form and the footer can
   never contradict each other. */
.bof__hours{display:flex;align-items:center;gap:8px;margin:0 0 18px;
  padding:11px 14px;border-radius:10px;background:var(--panel-2,#F0F0EE);
  font-size:12.5px;font-weight:600;color:var(--forest,#0F3B2D)}
.bof__hours svg{flex:none;opacity:.75}

.bof__opt{font-weight:500;color:var(--ink-3,#918A80);font-size:11px}

/* +91 sits inside the field rather than beside it, so the row cannot break. */
.bof__tel{display:flex;align-items:stretch;border:1px solid var(--line-2,#D6D3CC);
  border-radius:10px;background:#fff;overflow:hidden;transition:border-color .18s,box-shadow .18s}
.bof__tel:focus-within{border-color:var(--forest,#0F3B2D);box-shadow:0 0 0 3px rgba(15,59,45,.12)}
.bof__tel-pre{display:flex;align-items:center;padding:0 12px;background:var(--panel,#F6F6F4);
  border-right:1px solid var(--line-2,#D6D3CC);font-size:14px;font-weight:600;
  color:var(--ink-2,#5A544B);flex:none}
.bof__tel input{border:0 !important;border-radius:0 !important;box-shadow:none !important;flex:1;min-width:0}
.bof .fld.is-err .bof__tel{border-color:#B4462F}

.bof input[type="file"]{width:100%;padding:11px 13px;border:1px dashed var(--line-2,#D6D3CC);
  border-radius:10px;background:#fff;font:inherit;font-size:13px;cursor:pointer}
.bof input[type="file"]:focus{outline:0;border-color:var(--forest,#0F3B2D)}
.bof__hint{display:block;font-size:11.5px;color:var(--ink-3,#918A80);margin-top:6px;line-height:1.45}
