/* Lunch is a peer article in the board's shared news grid. */
.lunch-news {
  display: grid;
  grid-template-columns: minmax(0, 31fr) minmax(0, 69fr);
  gap: clamp(16px, 2.1vw, 26px);
  align-items: stretch;
  min-height: clamp(200px, 25vh, 285px);
  animation: news-in .55s ease both;
}
.lunch-intro {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(15px, 1.8vw, 23px);
  border-radius: 13px;
  background: linear-gradient(145deg, #112e4f, #0a4f78);
  color: #f7fbff;
}
.lunch-intro::before {
  content: '';
  position: absolute;
  right: -36px;
  top: -43px;
  width: 110px;
  height: 110px;
  border: 1px solid #e9dcb847;
  border-radius: 50%;
  box-shadow: 0 0 0 14px #d9e6ef08, 0 0 0 28px #d9e6ef05;
  pointer-events: none;
}
.lunch-intro > * { position: relative; }
.lunch-intro .news-kicker {
  margin: 0 0 13px;
  font-size: 8px;
  font-weight: 650;
  letter-spacing: .13em;
  line-height: 1.3;
  color: #c8dded;
}
.lunch-intro .news-kicker > span { color: inherit; }
.lunch-intro h2 {
  margin: 0 0 12px;
  font-size: clamp(25px, 3.3vh, 35px);
  font-weight: 420;
  line-height: 1.07;
  letter-spacing: -.9px;
  text-wrap: pretty;
}
.lunch-date {
  margin: 0 0 9px;
  color: #eee0c2;
  font-size: 9px;
  font-weight: 550;
  line-height: 1.4;
}
.lunch-description {
  margin: 0;
  color: #c0d3e3;
  font-size: 11px;
  line-height: 1.5;
  text-wrap: pretty;
}
.lunch-schedule {
  display: block;
  width: 100%;
  margin: 13px 0 0;
  padding-top: 10px;
  border-top: 1px solid #d0e6f125;
  color: #a6c5db;
  font-size: 9px;
  line-height: 1.4;
}
.lunch-schedule small { font-size: inherit; }
.lunch-form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  margin: 0;
}
.lunch-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.lunch-form legend {
  max-width: 100%;
  padding: 0;
  color: #213c5a;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.15px;
}
.lunch-hint {
  margin: 2px 0 5px;
  color: #7b8c9e;
  font-size: 9px;
  line-height: 1.3;
}
.lunch-options { display: grid; gap: 5px; }
.lunch-option {
  position: relative;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 68px;
  padding: 4px 7px;
  overflow: hidden;
  border: 1px solid #e1e8f0;
  border-radius: 9px;
  background: #f8fafc;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.lunch-option::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 10px;
  right: 10px;
  height: 2px;
  background: #75a9d9;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .24s ease;
}
.lunch-option:hover { border-color: #b7cde3; background: #f0f6fc; }
.lunch-option:has(input:checked) { border-color: #9cbfe1; background: #eef5fc; }
.lunch-option:has(input:checked)::before { transform: scaleX(1); }
.lunch-option:has(input:focus-visible) { outline: 2px solid #278be0; outline-offset: 3px; }
.lunch-option:has(input:disabled) { cursor: default; }
.lunch-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  margin: 0;
  padding: 0;
}
.option-photo {
  display: block;
  width: 58px;
  height: 58px;
  object-fit: cover;
  object-position: center;
  border: 1px solid #e2e5e7;
  border-radius: 6px;
  background: #f1ecdf;
  transition: border-color .18s ease;
}
.lunch-option input:checked + .option-photo { border-color: #81add3; }
.option-copy { min-width: 0; }
.option-copy strong {
  display: block;
  color: #29425e;
  font-size: 11px;
  font-weight: 550;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.option-copy small {
  display: block;
  margin-top: 2px;
  color: #8392a2;
  font-size: 9px;
  line-height: 1.3;
}
.option-check {
  display: inline-block;
  width: 15px;
  height: 15px;
  color: #337cb6;
  opacity: 0;
  transform: scale(.7);
  transition: opacity .18s ease, transform .2s ease;
}
svg.option-check { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
span.option-check::after {
  content: '';
  display: block;
  width: 7px;
  height: 4px;
  margin: 4px 0 0 3px;
  border-left: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: rotate(-45deg);
}
.lunch-option input:checked ~ .option-check { opacity: 1; transform: scale(1); }
.lunch-actions { display: flex; align-items: center; gap: 12px; margin-top: 8px; }
#lunch-submit {
  flex-shrink: 0;
  padding: 6px 11px;
  border: 1px solid #216da6;
  border-radius: 7px;
  background: #174e79;
  color: #f6fbff;
  font-size: 9px;
  font-weight: 550;
  line-height: 1.3;
  transition: background .18s ease, opacity .18s ease;
}
#lunch-submit:hover:not(:disabled) { background: #126299; }
#lunch-submit:disabled { opacity: .45; cursor: default; }
.lunch-form.busy #lunch-submit { cursor: wait; }
#lunch-status { min-width: 0; color: #6f8499; font-size: 9px; line-height: 1.35; }
.lunch-form.has-vote #lunch-status { color: #43806c; }
.lunch-local-note { display: block; margin-top: 3px; color: #91a0ae; font-size: 8px; line-height: 1.3; }
.team.is-restored .lunch-news { animation: none; }

@media (max-aspect-ratio: 1/1) {
  .lunch-news { min-height: 260px; gap: 20px; }
  .lunch-intro { padding: 16px; }
  .lunch-intro h2 { font-size: 29px; }
}
@media (max-width: 650px) {
  .lunch-news { min-height: 220px; grid-template-columns: minmax(0, 30fr) minmax(0, 70fr); gap: 13px; }
  .lunch-intro { padding: 12px; border-radius: 11px; }
  .lunch-intro .news-kicker { font-size: 7px; margin-bottom: 9px; letter-spacing: .07em; }
  .lunch-intro h2 { font-size: 24px; margin-bottom: 9px; letter-spacing: -.6px; }
  .lunch-date { font-size: 9px; margin-bottom: 7px; }
  .lunch-description { font-size: 10px; line-height: 1.45; }
  .lunch-schedule { font-size: 8px; margin-top: 9px; padding-top: 8px; }
  .lunch-form legend { font-size: 11px; }
  .lunch-hint { font-size: 9px; margin: 2px 0 4px; }
  .lunch-options { gap: 4px; }
  .lunch-option { min-height: 50px; padding: 3px 6px; grid-template-columns: 42px minmax(0, 1fr) 12px; gap: 7px; border-radius: 7px; }
  .option-photo { width: 42px; height: 42px; border-radius: 5px; }
  .option-copy strong { font-size: 10px; }
  .option-copy small { font-size: 8px; }
  .option-check { width: 12px; height: 12px; }
  .lunch-actions { gap: 7px; margin-top: 8px; }
  #lunch-submit { font-size: 9px; padding: 6px 10px; }
  #lunch-status { font-size: 8px; }
  .lunch-local-note { font-size: 7px; margin-top: 4px; }
}
@media (max-height: 820px) and (min-aspect-ratio: 1/1) {
  .lunch-news { min-height: 175px; gap: 18px; }
  .lunch-intro { padding: 14px; }
  .lunch-intro .news-kicker { margin-bottom: 8px; font-size: 7px; }
  .lunch-intro h2 { font-size: 26px; margin-bottom: 7px; }
  .lunch-date { font-size: 9px; margin-bottom: 5px; }
  .lunch-description { font-size: 10px; line-height: 1.4; }
  .lunch-schedule { margin-top: 7px; padding-top: 6px; font-size: 8px; }
  .lunch-form legend { font-size: 11px; }
  .lunch-hint { font-size: 8px; margin: 2px 0 5px; }
  .lunch-options { gap: 4px; }
  .lunch-option { min-height: 50px; padding: 3px 7px; gap: 8px; grid-template-columns: 42px minmax(0, 1fr) 14px; border-radius: 7px; }
  .option-photo { width: 42px; height: 42px; border-radius: 5px; }
  .option-copy strong { font-size: 10px; line-height: 1.2; }
  .option-copy small { font-size: 8px; line-height: 1.2; margin-top: 1px; }
  .lunch-actions { margin-top: 6px; gap: 9px; }
  #lunch-submit { padding: 5px 10px; font-size: 9px; }
  #lunch-status { font-size: 8px; }
  .lunch-local-note { margin-top: 3px; font-size: 7px; line-height: 1.3; }
}
@media (max-height: 600px) and (min-aspect-ratio: 1/1) {
  .lunch-news { min-height: 160px; gap: 15px; }
  .lunch-intro { padding: 11px 13px; }
  .lunch-intro h2 { font-size: 23px; margin-bottom: 6px; }
  .lunch-intro .news-kicker { margin-bottom: 6px; }
  .lunch-description { font-size: 9px; line-height: 1.35; }
  .lunch-schedule { margin-top: 5px; padding-top: 5px; font-size: 7px; }
  .lunch-form legend { font-size: 10px; }
  .lunch-hint { margin-bottom: 4px; }
  .lunch-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
  .lunch-option { min-height: 104px; padding: 6px; grid-template-columns: minmax(0, 1fr); gap: 5px; align-content: start; align-items: start; }
  .lunch-option .option-check { position: absolute; top: 8px; right: 6px; }
  .lunch-option .option-copy small { margin-top: 2px; }
  .option-copy strong { font-size: 9px; }
  .option-copy small { font-size: 7px; }
  .lunch-actions { margin-top: 5px; }
  #lunch-submit { padding: 4px 9px; font-size: 8px; }
  #lunch-status { font-size: 7px; }
}
@media (max-width: 440px) and (min-aspect-ratio: 1/1), (max-width: 380px) {
  .lunch-news { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .lunch-intro { display: block; }
  .lunch-intro h2 { font-size: 23px; }
  .lunch-description, .lunch-schedule { display: none; }
  .lunch-date { margin-bottom: 0; }
}
.lunch-countdown {
  width: 100%;
  margin-top: 13px;
  padding-top: 10px;
  border-top: 1px solid #d0e6f125;
}
.lunch-countdown small {
  display: block;
  color: #b7d0e2;
  font-size: 8px;
  line-height: 1.4;
  letter-spacing: .06em;
}
.lunch-countdown strong {
  display: block;
  margin-top: 4px;
  color: #f0e3c8;
  font-size: 24px;
  font-weight: 450;
  line-height: 1.1;
  letter-spacing: .035em;
  font-variant-numeric: tabular-nums;
}
.lunch-countdown.is-closed strong { font-size: 15px; letter-spacing: 0; }
@media (max-width: 650px) {
  .lunch-countdown { margin-top: 9px; padding-top: 8px; }
  .lunch-countdown small { font-size: 7px; letter-spacing: 0; }
  .lunch-countdown strong { font-size: 20px; }
}
@media (max-height: 820px) and (min-aspect-ratio: 1/1) {
  .lunch-countdown { margin-top: 8px; padding-top: 7px; }
  .lunch-countdown small { font-size: 7px; letter-spacing: .03em; }
  .lunch-countdown strong { font-size: 20px; }
}
@media (max-height: 600px) and (min-aspect-ratio: 1/1) {
  .lunch-countdown { margin-top: 6px; padding-top: 5px; }
  .lunch-countdown small { font-size: 6.5px; letter-spacing: 0; }
  .lunch-countdown strong { font-size: 17px; margin-top: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .lunch-news { animation: none; }
  .lunch-option, .lunch-option::before, .option-photo, .option-check, #lunch-submit { transition: none; }
}
/* Optional dessert announcement, independent of the single-choice menu. */
.team.is-board .duvy-dessert{position:relative;display:flex;align-items:center;min-height:114px;margin:14px 0 0;padding:16px 20px 16px 112px;overflow:hidden;border:1px solid #bad7e5;border-radius:11px;background:linear-gradient(110deg,#d8edf7,#edf6fa);color:#155778}
.dessert-face{position:absolute;left:0;bottom:0;width:102px;height:100%;overflow:hidden;pointer-events:none}
.dessert-face img{position:absolute;width:220px;max-width:none;height:auto;left:-80px;top:0}
.dessert-copy{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.dessert-copy small{font-size:9px;letter-spacing:.12em;color:#396e87}
.dessert-copy strong{font-size:16px;line-height:1.35;font-weight:600}
.team .dessert-like{padding:5px 12px;border:1px solid #a8c9db;border-radius:7px;background:#ffffff85;color:#155778;font:inherit;font-size:12px;cursor:pointer;transform:none!important;box-shadow:none!important}
.team .dessert-like:hover,.team .dessert-like[aria-pressed=true]{background:#176c98;color:#fff;border-color:#176c98}
@media(max-width:550px){.team.is-board .duvy-dessert{padding-left:90px;padding-right:12px}.dessert-face{width:82px}.dessert-copy strong{font-size:14px}}

/* Full head inside the artwork viewport; count stays independent of menu voting. */
.dessert-face img{width:150px;left:-28px;top:12px}
.team.is-board .duvy-dessert{gap:12px;padding-right:20px}
.dessert-copy{flex:1}
.dessert-total{flex:0 0 auto;min-width:68px;text-align:center;color:#176c98}
.dessert-total strong{display:block;font-size:42px;font-weight:300;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.dessert-total small{display:block;font-size:10px;margin-top:6px;white-space:nowrap}
@media(max-width:550px){.team.is-board .duvy-dessert{padding-left:80px;padding-right:10px;gap:8px}.dessert-face{width:72px}.dessert-face img{width:125px;left:-27px;top:15px}.dessert-total{min-width:42px}.dessert-total strong{font-size:32px}.dessert-copy strong{font-size:13px}}
