/* The date calendar shares the estimate form's existing scheduling fields. */
.date-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8%; align-items: center; border-top: 1px solid var(--line); }
.date-intro h2 { font-size: clamp(3.8rem,6vw,6rem); margin-bottom: 26px; }
.date-intro > p:not(.eyebrow) { max-width: 365px; font-size: 14px; line-height: 1.85; color: var(--muted); }
.date-intro > .date-confirmation { margin-top: 28px; padding-top: 21px; border-top: 1px solid var(--line); font-size: 12px; }
.date-intro noscript a { text-decoration: underline; text-underline-offset: 3px; }
.date-calendar { min-width: 0; padding: 28px 32px 24px; border: 1px solid #c6d0bc; background: var(--paper); }
.calendar-eyebrow { color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .12em; margin-bottom: 20px; }
.calendar-month-bar { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; gap: 10px; align-items: center; margin-bottom: 20px; }
.calendar-month-bar h3 { text-align: center; font-size: 23px; letter-spacing: -.035em; line-height: 1.3; }
.calendar-nav { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); background: transparent; color: var(--green); font-size: 22px; }
.calendar-nav:hover:not(:disabled) { background: #eef1e2; border-color: var(--green); }
.date-calendar button:disabled { cursor: default; }
.calendar-weekdays,.calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.calendar-weekdays { color: var(--muted); font-size: 11px; text-align: center; margin-bottom: 9px; }
.calendar-days { min-height: 245px; align-content: start; }
.calendar-day { position: relative; display: grid; place-items: center; min-width: 0; min-height: 44px; padding: 7px 0; border: 1px solid transparent; border-radius: 0; background: #f2f3e9; color: var(--green); font-size: 15px; line-height: 1; }
.calendar-day:hover:not(:disabled) { border-color: var(--green); background: #e5ebd6; }
.calendar-day.is-today { border-color: #809374; }
.calendar-day[aria-pressed="true"] { color: var(--paper); background: var(--green); border-color: var(--green); font-weight: 600; }
.calendar-day[aria-pressed="true"]:hover:not(:disabled) { background: var(--green); color: var(--paper); }
.calendar-day:disabled { opacity: 1; color: #a4aaa0; background: transparent; }
.calendar-day:focus-visible { outline-offset: 1px; z-index: 1; }
.calendar-flexibility { border-top: 1px solid var(--line); padding-top: 17px; margin-top: 19px; }
.calendar-flexibility legend { padding-right: 10px; font-size: 13px; font-weight: 600; }
.calendar-flex-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.calendar-flex-buttons button { min-height: 47px; padding: 10px; border: 1px solid var(--line); color: var(--green); background: transparent; font-size: 12px; font-weight: 600; line-height: 1.45; }
.calendar-flex-buttons button:hover:not(:disabled) { border-color: var(--green); }
.calendar-flex-buttons button[aria-pressed="true"] { background: var(--green); border-color: var(--green); color: var(--paper); }
.calendar-flexibility > p { font-size: 11px; line-height: 1.7; color: var(--muted); margin-top: 10px; }
.calendar-selection { min-height: 58px; font-size: 13px; line-height: 1.7; color: var(--green); margin-top: 20px; }
.calendar-actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.calendar-actions .button { font-size: 13px; }
.calendar-any-date { min-height: 44px; padding: 10px 0; background: transparent; border: 0; color: var(--green); font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.calendar-any-date[aria-pressed="true"] { font-weight: 600; }
@media(max-width:1100px) {
  .date-section { gap: 5%; grid-template-columns: .85fr 1.15fr; }
  .date-calendar { padding: 25px 22px 21px; }
  .calendar-days { min-height: 245px; }
}
@media(max-width:760px) {
  .date-section { grid-template-columns: 1fr; gap: 32px; }
  .date-intro h2 { font-size: clamp(3.4rem,12vw,4.8rem); }
  .date-intro > p:not(.eyebrow) { max-width: none; font-size: 13px; }
  .date-intro > .date-confirmation { font-size: 12px; margin-top: 22px; padding-top: 17px; }
  .date-calendar { padding: 24px 16px 19px; }
  .calendar-month-bar h3 { font-size: 22px; }
  .calendar-weekdays,.calendar-days { gap: 3px; }
  .calendar-days { min-height: 232px; }
  .calendar-day { min-height: 44px; font-size: 14px; }
  .calendar-selection { min-height: 66px; }
}
@media(max-width:370px) {
  .date-calendar { padding: 22px 11px 16px; }
  .calendar-month-bar { gap: 5px; }
  .calendar-month-bar h3 { font-size: 20px; }
  .calendar-day { font-size: 13px; }
  .calendar-flex-buttons { gap: 6px; }
  .calendar-flex-buttons button { padding: 9px 5px; font-size: 11px; }
  .calendar-actions .button { font-size: 12px; padding: 14px; }
}
