.mfi-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
  margin-bottom:28px;
  padding:12px;
  border-radius:28px;
  background:rgba(21,26,33,0.04);
  border:1px solid rgba(21,26,33,0.14);
}
.mfi-filters label{ margin:0; min-width:160px; flex:1; }
.mfi-filters label > span:first-child{
  display:block;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:rgba(21,26,33,0.62);
  margin-bottom:7px;
  padding-left:4px;
}
.mfi-filters select,
.mfi-filters input{
  width:100%;
}
.mfi-filters .btn-primary{
  padding:12px 22px;
  box-shadow:none;
}

.mfi-grid-cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}
.mfi-card{
  border-radius:24px;
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  background:linear-gradient(160deg, rgba(255,255,255,0.78), rgba(255,255,255,0.32));
  border:1px solid rgba(21,26,33,0.1);
  box-shadow:0 18px 50px rgba(21,26,33,0.08);
  display:flex;
  flex-direction:column;
  transition:transform .2s, box-shadow .2s;
}
.mfi-card:hover{ transform:translateY(-3px); box-shadow:0 24px 60px rgba(21,26,33,0.12); }
.mfi-card-media{
  height:190px;
  position:relative;
  background:
    linear-gradient(160deg, rgba(27,43,58,0.08), rgba(156,122,79,0.16)),
    linear-gradient(rgba(21,26,33,0.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21,26,33,0.14) 1px, transparent 1px);
  background-size:auto, 28px 28px, 28px 28px;
}
.mfi-card-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.mfi-chip{
  position:absolute; top:12px; left:12px;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  letter-spacing:0.06em;
  color:#9c7a4f;
  background:rgba(243,239,228,0.94);
  border:1px solid rgba(156,122,79,0.3);
  padding:5px 10px;
  border-radius:100px;
}
.mfi-card-body{ padding:20px 22px 22px; }
.mfi-kicker{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:#9c7a4f;
  margin-bottom:8px;
}
.mfi-card-body h3,
.mfi-row-body h3{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:20px;
  color:#1b2b3a;
  margin-bottom:8px;
}
.mfi-meta{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:rgba(21,26,33,0.62);
}
.mfi-price{
  margin-top:14px;
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:20px;
  color:#1b2b3a;
}
.mfi-price small{ font-size:12px; font-weight:500; color:rgba(21,26,33,0.62); }

.mfi-list{ display:grid; gap:14px; }
.mfi-row{
  display:grid;
  grid-template-columns:180px 1fr auto;
  gap:20px;
  align-items:center;
  padding:14px;
  border-radius:22px;
  text-decoration:none;
  color:inherit;
  background:linear-gradient(160deg, rgba(255,255,255,0.78), rgba(255,255,255,0.32));
  border:1px solid rgba(21,26,33,0.1);
  transition:transform .2s, box-shadow .2s;
}
.mfi-row:hover{ transform:translateY(-2px); box-shadow:0 18px 40px rgba(21,26,33,0.1); }
.mfi-row-media{
  height:120px;
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(160deg, rgba(27,43,58,0.08), rgba(156,122,79,0.16));
}
.mfi-row-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.mfi-row-price{
  text-align:right;
  font-family:'Space Grotesk',sans-serif;
}
.mfi-row-price strong{ display:block; font-size:22px; color:#1b2b3a; }
.mfi-row-price span{ font-size:12px; color:#9c7a4f; }

.mfi-row-media{ position:relative; }
.mfi-photo-n{
  position:absolute;
  right:10px;bottom:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  letter-spacing:0.04em;
  color:#f3efe4;
  background:rgba(27,43,58,0.78);
  padding:4px 8px;
  border-radius:100px;
}
.mfi-photos{ margin-bottom:28px; }
.mfi-photos-main{
  position:relative;
  margin:0;
  height:380px;
  border-radius:24px;
  overflow:hidden;
  background:linear-gradient(160deg, rgba(27,43,58,0.08), rgba(156,122,79,0.16));
}
.mfi-photos-main img{ width:100%;height:100%;object-fit:cover;display:block; }
.mfi-photos-count{
  position:absolute;right:14px;bottom:14px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:#f3efe4;
  background:rgba(27,43,58,0.78);
  padding:6px 10px;
  border-radius:100px;
}
.mfi-photos-thumbs{
  display:flex;
  gap:8px;
  margin-top:10px;
  overflow-x:auto;
  padding-bottom:4px;
}
.mfi-photos-thumb{
  flex:0 0 72px;
  width:72px;height:56px;
  padding:0;border:0;
  border-radius:10px;
  overflow:hidden;
  cursor:pointer;
  opacity:0.7;
  background:transparent;
}
.mfi-photos-thumb img{ width:100%;height:100%;object-fit:cover;display:block; }
.mfi-photos-thumb.is-active{ opacity:1; outline:2px solid #9c7a4f; outline-offset:2px; }
.mfi-photos-thumb:focus-visible,
.mfi-photos-open:focus-visible,
.mfi-lightbox-close:focus-visible,
.mfi-lightbox-prev:focus-visible,
.mfi-lightbox-next:focus-visible{
  outline:2px solid #9c7a4f;
  outline-offset:3px;
}
.mfi-photos-open{
  display:block;width:100%;height:100%;
  padding:0;border:0;background:transparent;cursor:zoom-in;
}
.mfi-photos-empty,
.mfi-photo-ph{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;min-height:120px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:rgba(27,43,58,0.55);
}
.mfi-photos-empty{
  height:220px;
  border-radius:24px;
  background:linear-gradient(160deg, rgba(27,43,58,0.08), rgba(156,122,79,0.16));
  margin-bottom:28px;
}
body.mfi-lightbox-open{ overflow:hidden; }
.mfi-lightbox{
  position:fixed;inset:0;z-index:80;
  background:rgba(21,26,33,0.88);
  display:flex;align-items:center;justify-content:center;
  padding:28px;
}
.mfi-lightbox[hidden]{ display:none; }
.mfi-lightbox-inner{
  position:relative;
  max-width:min(1100px, 100%);
  max-height:90vh;
}
.mfi-lightbox-img{
  display:block;
  max-width:100%;
  max-height:82vh;
  object-fit:contain;
  border-radius:8px;
}
.mfi-lightbox-close,
.mfi-lightbox-prev,
.mfi-lightbox-next{
  position:absolute;
  border:0;
  background:rgba(243,239,228,0.92);
  color:#1b2b3a;
  cursor:pointer;
  border-radius:100px;
  font-size:22px;
  line-height:1;
}
.mfi-lightbox-close{ top:-8px; right:-8px; width:40px; height:40px; }
.mfi-lightbox-prev,
.mfi-lightbox-next{ top:50%; transform:translateY(-50%); width:42px; height:42px; }
.mfi-lightbox-prev{ left:-18px; }
.mfi-lightbox-next{ right:-18px; }
.mfi-lightbox-cap{
  margin:10px 0 0;
  color:#f3efe4;
  font-size:14px;
  text-align:center;
}
.mfi-empty{
  padding:36px 28px;
  border-radius:24px;
  background:linear-gradient(160deg, rgba(255,255,255,0.78), rgba(255,255,255,0.32));
  border:1px dashed rgba(21,26,33,0.18);
}
.mfi-empty p{ margin:0 0 14px; color:rgba(21,26,33,0.7); max-width:48ch; }

.mfi-form{ margin-top:8px; }
.mfi-captcha input[type="text"]{
  max-width:140px;
}
.mfi-docs{
  margin:4px 0 8px;
  padding:18px 18px 6px;
  border:1px solid rgba(27,43,58,0.12);
  border-radius:20px;
  background:rgba(243,239,228,0.42);
}
.mfi-docs legend{
  padding:0 8px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  color:#1b2b3a;
}
.mfi-docs-note{
  margin:0 0 14px;
  font-size:13px;
  line-height:1.5;
  color:rgba(27,43,58,0.68);
}
.mfi-file-caption{
  display:block;
  margin-bottom:7px;
}
.mfi-file{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  margin:0 0 4px;
  padding:5px 14px 5px 5px;
  font-family:'Inter',sans-serif;
  font-size:13px;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  color:#1b2b3a;
  border:1px dashed rgba(27,43,58,0.22);
  border-radius:16px;
  background:rgba(243,239,228,0.72);
  cursor:pointer;
  transition:border-color .2s, box-shadow .2s, background-color .2s;
}
.mfi-file:hover,
.mfi-file:focus-within{
  border-style:solid;
  border-color:rgba(156,122,79,0.55);
  box-shadow:0 0 0 4px rgba(156,122,79,0.16);
  background:rgba(243,239,228,0.96);
}
.mfi-file-input{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.mfi-file-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  border-radius:100px;
  background:linear-gradient(90deg, #1b2b3a, #2c4459);
  color:#f3efe4;
  font-family:'Inter',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  line-height:1.2;
  box-shadow:0 4px 14px rgba(27,43,58,0.2);
}
.mfi-file-btn::before{
  content:'+';
  font-size:15px;
  font-weight:500;
  line-height:1;
  color:#c4a574;
}
.mfi-file.is-filled .mfi-file-btn::before{
  content:'✓';
  font-size:12px;
}
.mfi-file-name{
  min-width:0;
  font-family:'Inter',sans-serif;
  font-size:13px;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  color:rgba(27,43,58,0.5);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mfi-file.is-filled .mfi-file-name{
  color:#1b2b3a;
}

.mfi-cal-desk{
  margin-top:0;
  margin-bottom:18px;
}
  padding:22px 22px 18px;
  border-radius:24px;
  background:linear-gradient(160deg, rgba(255,255,255,0.78), rgba(255,255,255,0.32));
  border:1px solid rgba(27,43,58,0.1);
}
.mfi-cal .eyebrow{ margin-bottom:14px; }
.mfi-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.mfi-cal-title{
  margin:0;
  font-family:'Space Grotesk',sans-serif;
  font-size:22px;
  font-weight:600;
  letter-spacing:-0.03em;
  color:#1b2b3a;
  text-transform:capitalize;
}
.mfi-cal-nav{
  width:40px;
  height:40px;
  border:1px solid rgba(27,43,58,0.14);
  border-radius:100px;
  background:rgba(243,239,228,0.72);
  color:#1b2b3a;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.mfi-cal-nav:hover{
  border-color:rgba(156,122,79,0.55);
  background:#f3efe4;
}
.mfi-cal-grid{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:6px;
}
.mfi-cal-dow{
  text-align:center;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  letter-spacing:0.08em;
  color:#9c7a4f;
  padding:4px 0 6px;
}
.mfi-cal-day{
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  font-size:13px;
  font-weight:500;
  color:#1b2b3a;
  border:0;
  padding:0;
  width:100%;
  font-family:inherit;
  background:transparent;
}
button.mfi-cal-day{
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
.mfi-cal-day.is-pad{ visibility:hidden; }
.mfi-cal-day.is-free{
  background:#d6efd8;
  color:#1b3d24;
}
.mfi-cal-day.is-pick:hover{
  box-shadow:0 0 0 2px rgba(27,43,58,0.28);
}
.mfi-cal-day.is-blocked{
  background:#f6d4d2;
  color:#5a2422;
}
.mfi-cal-day.is-past{
  background:rgba(27,43,58,0.06);
  color:rgba(27,43,58,0.38);
}
.mfi-cal-day.is-today{
  box-shadow:0 0 0 2px #9c7a4f;
}
.mfi-cal-day.is-in-range,
.mfi-cal-day.is-free.is-in-range,
.mfi-cal-day.is-blocked.is-in-range{
  background:#1b2b3a;
  color:#f3efe4;
}
.mfi-cal-day.is-preview{
  background:#2c4459;
  color:#f3efe4;
}
.mfi-cal-day.is-preview-bad{
  background:#c98986;
  color:#3a1614;
}
.mfi-cal-day.is-range-start,
.mfi-cal-day.is-range-end{
  box-shadow:0 0 0 2px #9c7a4f;
}
.mfi-cal-legend{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:14px 18px;
  margin:16px 0 0;
  padding:0;
  font-size:13px;
  color:rgba(27,43,58,0.7);
}
.mfi-cal-legend li{
  display:flex;
  align-items:center;
  gap:8px;
}
.mfi-cal-swatch{
  width:12px;
  height:12px;
  border-radius:4px;
}
.mfi-cal-swatch.is-free{ background:#d6efd8; }
.mfi-cal-swatch.is-blocked{ background:#f6d4d2; }
.mfi-cal-swatch.is-range{ background:#1b2b3a; }
.mfi-cal-swatch.is-past{ background:rgba(27,43,58,0.16); }
.mfi-cal-note{
  margin:12px 0 0;
  font-size:13px;
  line-height:1.5;
  color:rgba(27,43,58,0.62);
}
.mfi-cal-choice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 0;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(27,43,58,0.06);
  font-size:14px;
  font-weight:500;
  color:#1b2b3a;
}
.mfi-cal-choice[hidden],
.mfi-cal-warn[hidden]{ display:none; }
.mfi-cal-clear{
  border:0;
  background:transparent;
  color:#9c7a4f;
  font:inherit;
  font-size:13px;
  cursor:pointer;
  padding:0;
  text-decoration:underline;
  text-underline-offset:3px;
}
.mfi-cal-warn{
  margin:10px 0 0;
  font-size:13px;
  color:#8a2a2a;
}

@media (max-width: 900px){
  .mfi-grid-cards{ grid-template-columns:1fr; }
  .mfi-row{ grid-template-columns:1fr; }
  .mfi-row-price{ text-align:left; }
}
