/* Only the portal entry and additional request form; the email form is unchanged. */
.desktop-nav.portal-nav { gap: clamp(.65rem, 1.35vw, 1.4rem); }
.portal-login { color: var(--orange-bright) !important; white-space: nowrap; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; grid-template-areas: "message-heading" "message-form" "details-heading" "details-cards" "portal"; }
.contact-message-heading { grid-area: message-heading; }
.contact-details-heading { grid-area: details-heading; margin-top: 1rem; }
.contact-message-heading h2, .contact-details-heading h2 { margin: 0; }
.contact-layout > #contactForm { grid-area: message-form; min-width: 0; }
.contact-details-cards { grid-area: details-cards; display: grid; gap: 1rem; min-width: 0; }
.contact-details-cards .contact-info-card { margin: 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.contact-details-cards .contact-info-value { overflow-wrap: anywhere; }
.contact-layout > .portal-request { grid-area: portal; margin-top: 1rem; min-width: 0; }
.contact-layout > .portal-request .portal-intro { max-width: 72ch; }
@media (min-width: 1024px) {
  .contact-layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 2.5rem; grid-template-areas: "message-heading details-heading" "message-form details-cards" "portal portal"; }
  .contact-details-heading { margin-top: 0; }
  .contact-details-cards { grid-template-rows: repeat(5, auto); }
}
.portal-request { margin-top: 3.5rem; padding: clamp(1.25rem, 3vw, 2.5rem); background: #f6f3eb; border: 1px solid #e5dfd2; border-top: 4px solid var(--orange); scroll-margin-top: 110px; }
.portal-request h2 { font-family: 'Big Shoulders Display', sans-serif; font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 900; line-height: 1.06; text-transform: uppercase; margin: .75rem 0 1.25rem; }
.portal-request h2 span { color: var(--orange); }
.portal-intro { line-height: 1.7; color: #4e4b44; }
.portal-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; gap: 1rem; padding: 1.5rem 0; margin: 1.25rem 0; border-top: 1px solid #ded8cb; border-bottom: 1px solid #ded8cb; font-size: .8rem; font-weight: 700; }
.portal-steps span { display: block; color: var(--orange); font-size: .75rem; margin-bottom: .35rem; }
.portal-account-note { margin-bottom: 1.75rem; font-size: .85rem; line-height: 1.7; }
.portal-request a { text-decoration: underline; text-underline-offset: 3px; }
.portal-request fieldset { padding: 0; border: 0; min-width: 0; }
.portal-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem 1rem; }
.portal-full { grid-column: 1 / -1; }
.portal-form-grid label { display: block; font-size: .8rem; font-weight: 700; margin-bottom: .4rem; }
.portal-request .form-input, .portal-request .form-select, .portal-request .form-textarea { min-width: 0; max-width: 100%; font-size: 16px; background: white; }
.portal-request small { display: block; color: #5c574e; font-size: .75rem; line-height: 1.6; margin-top: .5rem; }
.portal-check { display: flex; align-items: flex-start; gap: .65rem; margin-top: 1.15rem; font-size: .8rem; line-height: 1.6; }
.portal-check input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: .15rem; accent-color: var(--orange); }
#portal-request-explainer { font-size: .75rem; line-height: 1.65; color: #5c574e; margin: 1.2rem 0; }
.portal-submit { width: 100%; justify-content: center; gap: 1rem; }
.portal-submit:disabled { opacity: .6; cursor: wait; }
.portal-status { font-size: .85rem; line-height: 1.6; margin: 1rem 0 0; }
.portal-status:empty { display: none; }
.portal-date-field { position: relative; }
.portal-date-entry { position: relative; }
.portal-date-entry input { padding-right: 46px; }
#portal-calendar-toggle { position: absolute; right: 5px; top: 5px; bottom: 5px; border: 0; background: transparent; width: 36px; cursor: pointer; }
.portal-calendar { position: absolute; z-index: 5; top: 100%; left: 0; background: #fff; border: 1px solid #ded8cb; padding: 12px; width: min(290px, 100%); box-shadow: 0 12px 32px #1d241d26; }
.portal-calendar[hidden] { display: none; }
.portal-calendar-heading { display: flex; align-items: center; justify-content: space-between; font-size: 14px; }
.portal-calendar button { border: 0; background: transparent; padding: 7px; cursor: pointer; color: #252b22; font-size: 14px; }
.portal-calendar button:disabled { opacity: .3; cursor: default; }
.portal-calendar button:hover, .portal-calendar button:focus-visible { background: #f6f3eb; }
.portal-calendar button[aria-pressed="true"] { background: var(--orange); color: white; }
.portal-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; gap: 2px; margin: 8px 0; }
.portal-status[data-state="error"] { color: #9b2b1e; }
.portal-status[data-state="success"] { padding: 1.2rem; border: 1px solid #adbea5; background: #eef5e9; color: #244c23; }
.portal-honeypot, .portal-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 540px) { .portal-form-grid { grid-template-columns: minmax(0, 1fr); } .portal-steps { gap: .65rem; font-size: .72rem; } }
