.hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.92;
}

.hero h1 em {
  font-family: inherit;
  font-style: italic;
  letter-spacing: -0.06em;
}

.portal-nav {
  position: relative;
  z-index: 20;
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: 64px;
  padding: 10px max(2vw, 14px);
  overflow-x: auto;
  background: #f7f5f1;
  border-top: 1px solid #e2dacf;
  border-bottom: 2px solid #171513;
  box-shadow: 0 5px 18px rgba(26, 21, 16, 0.08);
  scrollbar-width: none;
}

.portal-nav::-webkit-scrollbar {
  display: none;
}

.portal-nav a {
  position: relative;
  display: grid;
  place-items: center;
  flex: 1 0 auto;
  min-width: max-content;
  padding: 0 clamp(15px, 1.5vw, 26px);
  color: #111;
  border-right: 1px solid #d2c6b6;
  font-family: "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(10px, 0.82vw, 13px);
  font-weight: 750;
  letter-spacing: 0.085em;
  white-space: nowrap;
  text-decoration: none;
  transition: color .18s ease, background .18s ease;
}

.portal-nav a:hover {
  color: #b00000;
  background: #fff;
}

.portal-nav a:last-child {
  border-right: 0;
}

.portal-nav a.active {
  color: #b00000;
  background: #fff;
}

.portal-nav a.active::after {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 1px;
  height: 3px;
  background: #b00000;
}

.portal-nav a.home-link {
  flex: 0 0 auto;
  border-right: 0;
}

#application-email[readonly]{background:#eee8df;color:#5f574f;cursor:not-allowed}
#application-email+small{display:block;margin-top:6px;color:#81766b;font-size:9px;font-weight:500;letter-spacing:0;line-height:1.4}

/* Application form: comfortable recruiter-grade legibility. */
.modal>section{width:min(820px,calc(100vw - 36px));padding:34px 44px 31px;background:#fbf8f3;border:1px solid #d8ccbd;border-top:4px solid #aa0000;box-shadow:0 28px 80px rgba(0,0,0,.38)}
.modal>section>span{display:inline-block;padding:6px 9px;background:#f0e4d7;color:#8f0000;font-size:11px;font-weight:750;letter-spacing:.12em}
.modal h2{margin:11px 0 5px;font-family:Georgia,"Times New Roman",serif;font-size:40px;font-weight:400;line-height:1.08;letter-spacing:-.025em}
.modal>section>p{font-size:15px;line-height:1.45}
.modal form{gap:12px;margin-top:19px}
.modal form label{font-size:13px;font-weight:700;letter-spacing:.055em;line-height:1.4}
.modal .split{gap:16px}
.modal .split>label{display:flex;flex-direction:column;align-self:stretch;justify-content:flex-end}
#distance-question{display:block;line-height:1.35}
.modal form input,.modal form select,.modal form textarea{margin-top:7px;padding:12px 14px;background:#fff;border-color:#cfc2b2;font-size:16px;line-height:1.35}
.modal form select{min-height:48px}
.modal form textarea{min-height:82px}
.modal form>button{min-height:49px;padding:14px;font-size:13px;font-weight:800;letter-spacing:.085em;cursor:pointer}
.modal .close{right:22px;top:20px;width:42px;height:42px;font-size:27px;cursor:pointer}
#application-email+small{font-size:12px;line-height:1.35}
#form-status.already-applied{margin:2px 0 0;padding:14px 16px;background:#f3eadc;border-left:4px solid #b38a45;color:#4f402a;font-size:14px;font-weight:750;line-height:1.45}

@media(max-width:700px){.modal>section{width:calc(100vw - 20px);padding:43px 22px 30px}.modal h2{font-size:38px}.modal>section>p{font-size:14px}.modal form{gap:17px;margin-top:25px}.modal form label{font-size:10px}.modal form input,.modal form select,.modal form textarea{padding:15px 13px;font-size:16px}.modal .split{gap:17px}.modal form>button{font-size:11px}}

.application-success{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;overflow:hidden;background:rgba(8,7,6,.86);backdrop-filter:blur(5px)}
.application-success.hidden{display:none}
.application-success>section{position:relative;z-index:2;width:min(650px,100%);padding:55px 48px;background:#f8f3eb;border-top:6px solid #aa0000;box-shadow:0 30px 90px rgba(0,0,0,.55);text-align:center}
.application-success>section>span{color:#aa0000;font-size:12px;font-weight:950;letter-spacing:.18em}
.application-success h2{margin:14px 0 12px;font:500 46px/1.05 Georgia,"Times New Roman",serif;color:#171513}
.application-success p{max-width:500px;margin:0 auto;color:#6f655b;font:17px/1.6 Georgia,"Times New Roman",serif}
.success-tip{max-width:520px;margin:24px auto 0;padding:18px 19px;background:#e8f3ed;border:1px solid #bad7c8;border-left:5px solid #17745b;text-align:left}
.success-tip strong{display:block;color:#116047;font-size:11px;font-weight:950;letter-spacing:.16em}
.application-success .success-tip p{margin:7px 0 14px;color:#315b4b;font:14px/1.5 Arial,Helvetica,sans-serif}
.success-tip a{display:block;padding:12px 14px;background:#17745b;color:#fff;font-size:10px;font-weight:900;letter-spacing:.09em;text-align:center;text-decoration:none;transition:background .18s ease}
.success-tip a:hover{background:#105844}
.application-success button{margin-top:28px;min-height:54px;padding:16px 25px;border:0;background:#171513;color:#fff;font-size:12px;font-weight:900;letter-spacing:.11em;cursor:pointer}
.application-success button:hover{background:#aa0000}
.confetti{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.confetti i{position:absolute;top:-25px;left:var(--x);width:10px;height:18px;background:var(--color);opacity:0;animation:ftw-confetti var(--duration) cubic-bezier(.2,.7,.25,1) var(--delay) forwards}
@keyframes ftw-confetti{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(var(--spin))}}
@media(max-width:700px){.application-success>section{padding:42px 22px}.application-success h2{font-size:36px}.application-success p{font-size:15px}.confetti i{width:8px;height:14px}}

.logo-only {
  position: absolute;
  top: 64px;
  left: 0;
  z-index: 12;
  width: auto;
  height: auto;
  padding: 28px max(7vw, 35px);
  background: transparent;
  border: 0;
}

.logo-only .brand img {
  width: 220px;
}

.hero {
  padding-top: 145px;
}

/* Marketplace cards: optimized for fast scanning without changing source data. */
.jobs {
  grid-template-columns: 1fr;
  gap: 12px;
}

.job {
  min-height: 178px;
  grid-template-columns: 94px minmax(0, 1fr) 166px;
  --card-accent: #b10000;
  overflow: hidden;
  border: 1px solid #cfc1af;
  border-top: 4px solid var(--card-accent);
  box-shadow: 0 6px 18px rgba(37, 27, 19, 0.06);
  transform-origin: center;
}

.job-photo { --card-accent: #b10000; }
.job-video { --card-accent: #b18345; }
.job-content { --card-accent: #6e665d; }
.job-mixed { --card-accent: #26756b; }

.job:hover {
  transform: translateY(-4px) rotate(-0.1deg);
  border-color: var(--card-accent);
  box-shadow: 0 18px 40px rgba(37, 27, 19, 0.14);
}

.date span {
  font-size: 11px;
}

.job .date {
  position: relative;
  background: linear-gradient(155deg, #25211d 0%, #0c0b0a 76%);
}

.job .date::after {
  content: "✦";
  position: absolute;
  right: 8px;
  top: 7px;
  color: var(--card-accent);
  font-size: 11px;
}

.date b {
  font-size: 46px;
  line-height: 1;
}

.date small {
  font-size: 10px;
  color: #d2cbc3;
}

.date .date-year {
  margin: 1px 0 5px;
  color: #d3a75b;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.12em;
}

.job-main {
  padding: 21px 24px;
  background: linear-gradient(110deg, #fff 0%, #fff 68%, #faf5ed 100%);
}

.market {
  font-size: 11px;
  color: var(--card-accent);
}

.job h3 {
  margin: 6px 0 13px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1.12;
}

.job-details {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) minmax(150px, 1fr);
  gap: 0;
  margin: 0;
  overflow: hidden;
  background: #faf8f4;
  border: 1px solid #ded4c7;
  border-radius: 2px;
}

.job-details > span {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 12px 15px;
  background: transparent;
  border-left: 0;
}

.job-details > span + span {
  border-left: 1px solid #ded4c7;
}

.job-details small,
.job-roles > small {
  color: #8a7761;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.job-details strong {
  color: #201c18;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.35;
}

.job-enrichment {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
  padding: 14px 16px;
  overflow: hidden;
  background: linear-gradient(105deg, #f3eadc 0%, #fffdf9 62%, #f7eee1 100%);
  border: 1px solid #d9c7af;
  border-left: 4px solid var(--card-accent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.job-enrichment > div {
  min-width: 0;
}

.job-enrichment small {
  display: block;
  margin-bottom: 4px;
  color: var(--card-accent);
  font-size: 8.5px;
  font-weight: 950;
  letter-spacing: .17em;
}

.job-enrichment strong {
  display: block;
  color: #1d1915;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.job-enrichment em {
  display: block;
  margin-top: 4px;
  color: #786b5d;
  font-size: 9px;
  font-style: normal;
  font-weight: 750;
  letter-spacing: .04em;
}

.venue-mark {
  display: grid;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  place-items: center;
  background: #171412;
  color: #d7ad65;
  border-radius: 50%;
  box-shadow: 0 5px 14px rgba(26,20,15,.16);
}

.venue-mark svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.job-enrichment.venue-pending {
  background: linear-gradient(105deg, #f4f0e9 0%, #fff 70%);
  border-color: #d9d1c7;
  border-left-color: #9e9183;
}

.venue-pending .venue-mark {background:#4d4741;color:#e6d8c4}
.venue-pending small {color:#776d63}

.job-roles {
  margin-top: 14px;
  padding: 14px 15px 15px;
  background: linear-gradient(105deg, #f5eee4 0%, #fffaf4 100%);
  border: 1px solid #ded0bd;
  border-left: 4px solid var(--card-accent);
}

@media(max-width:700px){
  .scrim,.application-success{backdrop-filter:none;-webkit-backdrop-filter:none}
  .job:hover{transform:none}
}

.job-main>.job-roles{display:block}

.job-roles > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.job-roles > div span {
  display: inline-flex;
  align-items: center;
  min-height: 33px;
  padding: 7px 11px;
  background: #1b1917;
  color: #fff;
  border-left: 4px solid var(--card-accent);
  border-radius: 2px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.015em;
}

.job-roles > small{color:var(--card-accent);font-size:10px;letter-spacing:.18em}
.job-roles > div span::before{content:"✓";margin-right:7px;color:#dfbd7e;font-size:11px;font-weight:950}

.job aside {
  padding: 22px 18px;
  justify-content: center;
  gap: 16px;
  border-left: 1px solid #e3d8ca;
  background: linear-gradient(180deg, #fcfaf7 0%, #f1e8dc 100%);
}

.job aside .opportunity {
  padding: 6px 8px;
  background: color-mix(in srgb, var(--card-accent) 12%, white);
  color: var(--card-accent);
  border: 1px solid color-mix(in srgb, var(--card-accent) 35%, white);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: 0.11em;
  white-space: nowrap;
}

.job aside .days-away {
  font-size: 11px;
  color: #6f655b;
  letter-spacing: 0.08em;
}

.job aside button {
  width: 100%;
  min-height: 48px;
  padding: 14px 11px;
  background: #ad0000;
  color: #fff;
  border-color: #ad0000;
  border-radius: 2px;
  box-shadow: 0 8px 18px rgba(153,0,0,.2);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .15em;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.job aside button:hover {
  background: #790000;
  border-color: #790000;
  box-shadow: 0 11px 23px rgba(125,0,0,.28);
  transform: translateY(-2px);
}

@media (min-width: 901px) {
  .jobs {
    margin-top: 18px;
  }

  .filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px 220px;
    gap: 0;
    margin: 30px 0 0;
    padding: 20px;
    background: #eee4d6;
    border: 1px solid #d4c5b1;
    border-top: 4px solid #a90000;
  }

  .filters::before {
    content: "FILTER WEDDINGS — FIND THE RIGHT OPPORTUNITY";
    display: block;
    grid-column: 1 / -1;
    padding: 1px 0 16px;
    color: #332b24;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.14em;
  }

  #clear-filters {
    grid-column: 1 / -1;
    justify-self: start;
    margin: -2px 0 14px;
    padding: 9px 13px;
    border: 1px solid #9f8e7a;
    background: #fff;
    color: #3a3129;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.1em;
    cursor: pointer;
  }

  #clear-filters:hover {
    border-color: #a90000;
    background: #a90000;
    color: #fff;
  }

  .filters input,
  .filters select {
    height: 56px;
    border: 1px solid #d7ccbd;
    border-bottom: 0;
    font-size: 13px;
  }

  .filters select:last-child {
    border-bottom: 1px solid #d7ccbd;
  }
}

@media (max-width: 700px) {
  .portal-nav {
    min-height: 54px;
    padding: 7px 6px;
    border-bottom-width: 2px;
  }

  .portal-nav a {
    padding: 0 15px;
    font-size: 10px;
  }

  .portal-nav a.active::after {
    left: 15px;
    right: 15px;
    bottom: 1px;
  }

  #clear-filters {
    width: 100%;
    padding: 12px;
    border: 1px solid #9f8e7a;
    background: #fff;
    color: #3a3129;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.1em;
  }

  .logo-only {
    top: 54px;
    height: auto;
    padding: 22px;
  }

  .logo-only .brand img {
    width: 175px;
  }

  .hero {
    padding-top: 105px;
  }

  .hero-stats small {
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: 0.1em;
  }

  .job {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .date b {
    font-size: 43px;
  }

  .job-main {
    padding: 20px 16px;
  }

  .job h3 {
    font-size: 25px;
    margin-bottom: 15px;
  }

  .job-details {
    grid-template-columns: 1fr;
  }

  .job-details > span {
    padding: 10px 11px;
  }

  .job-details > span + span {
    border-left: 0;
    border-top: 1px solid #ded4c7;
  }

  .job-enrichment {padding: 12px 13px;gap: 11px}
  .venue-mark {flex-basis: 36px;width:36px;height:36px}
  .job-enrichment strong {font-size: 15px}

  .job aside {
    border-left: 0;
  }

  .job aside .opportunity {
    display: none;
  }
}
