:root{--bg:#f5f6f4;--primary:#294b43;--dark:#1c352e;--soft:#edf3ee;--line:#d9e1db;--text:#22332e;--muted:#51615b;--sand:#fbf2e8;--sand-line:#e6d7c5}
header{border-bottom:4px solid #874250}
.brand p{color:#e0ebe4}.brand span{color:#f0d9c1;font-weight:400}
.eyebrow{color:#803849}.intro-programma{border-left:4px solid #874250}
fieldset{border:1px solid var(--line);border-radius:8px;margin:12px 0 20px;padding:14px}legend{padding:0 6px;font-weight:bold}
textarea{width:100%;min-height:95px;padding:12px;border:1px solid #acbacb;border-radius:8px;font:inherit}
.check{display:flex;align-items:center;gap:10px;font-weight:normal}.check input{width:18px;height:18px;min-height:0;flex:none;accent-color:var(--primary)}
.compact{min-height:46px;font-size:16px;padding:9px 14px}.narrow{max-width:520px}
.line{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:10px 0}.line label{margin:0}
.record{border-top:1px solid var(--line);padding:16px 0}.record p{margin:4px 0 8px}.record .actions{margin-top:8px}
.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:16px}th,td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line)}
.archive-table th{background:var(--soft)}
.wide-page main{max-width:1600px}
.contact-directory table{min-width:1050px}
.contact-directory td,.contact-directory th{padding:7px 9px;font-size:14px;white-space:nowrap}
.contact-directory td{max-width:240px;overflow:hidden;text-overflow:ellipsis}
.contact-directory td:last-child{max-width:none}
.recontact-directory table{min-width:660px}
.archive-highlight td,.archive-highlight th{background:#fff0cf}
.volunteer-grid table{table-layout:fixed;min-width:660px}
.volunteer-grid th,.volunteer-grid td{padding:5px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.volunteer-grid th:nth-child(-n+2){width:17%}
.volunteer-grid th:last-child{width:134px}
.volunteer-grid select,.volunteer-grid button{min-height:34px;padding:4px 8px;font-size:14px}
.volunteer-card{display:none}
@media(max-width:760px){
  .volunteer-grid{display:none}
  .volunteer-card{display:block}
}
.archive-table td{min-width:8em;max-width:28em;white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top}
.lunch-list{list-style:none;padding:0}.lunch-list li{padding:9px 0;border-bottom:1px solid var(--line)}main a:not(.button){color:var(--primary)}
.signup-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.signup-paths section{border:1px solid;border-left-width:4px;border-radius:8px;padding:16px}
.signup-paths .signup-recovery{background:#eaf2eb;border-color:#548069}
.signup-paths .signup-new{background:#fff5e5;border-color:#c99c59}
.signup-paths h3{font-size:clamp(22px,2.5vw,25px);line-height:1.2;margin:0 0 10px}
.signup-recovery h3{color:#244f3c}
.signup-new h3{color:#754419}
.signup-paths p{margin:4px 0 8px}
.signup-paths a{display:inline-flex;align-items:center;min-height:44px;font-weight:bold}
.signup-paths .signup-status{font-weight:bold;margin-top:12px}
.recovery-confirmation{max-width:740px;background:#eaf4ee;border-color:#9db9aa;border-left:5px solid #38624e;padding:clamp(20px,4vw,34px)}
.recovery-confirmation .eyebrow{color:#315c47}
.recovery-confirmation h2{font-size:clamp(28px,4vw,38px);color:#203f33}
.recovery-confirmation p:not(.eyebrow){font-size:18px}
.signup-lunch-photo{position:relative;margin:16px 0 20px;border-radius:8px;overflow:hidden;background:#203c33;color:#fff5e4}
.signup-lunch-photo>img{display:block;width:100%;height:auto;aspect-ratio:2.25;object-fit:cover;object-position:center 85%}
.signup-lunch-photo figcaption{position:absolute;inset:auto 0 0;display:flex;align-items:center;gap:12px;padding:20px 14px 10px;background:linear-gradient(transparent,rgba(36,12,9,.88))}
.signup-lunch-photo figcaption img{flex:none;border-radius:50%;background:#fff;object-fit:contain}
.signup-lunch-photo strong{font:italic 700 clamp(16px,2.5vw,27px)/1.18 Georgia,serif;text-shadow:0 1px 3px #321009}
@media(max-width:520px){
  .signup-lunch-photo>img{aspect-ratio:1.75}
  .signup-lunch-photo figcaption{padding:12px 9px 7px;gap:8px}
  .signup-lunch-photo figcaption img{width:32px;height:32px}
}
.signup .short-binary{margin:0;padding:0 0 4px;border:0}
.short-binary legend{padding:0}
.short-binary .check{display:inline-flex;min-height:40px;margin:0 16px 0 0}
.signup-choices{background:#f5eee3;border-color:#e4d6c4}
.signup-events{background:#f8edef;border-color:#ead3d9}
.signup textarea{min-height:72px}
.signup-family{background:#edf4e9;border-color:#cbdcc8}
.signup-page{background:#fcf6ef}
.signup-banner,.program-page .intro-programma{background:#89000c}
.natale-header{background:linear-gradient(115deg,#254639,#192f29);border-bottom-color:#d5ac63}
.natale-header .header-inner{justify-content:space-between}
.natale-wordmark,.natale-signature{display:flex;align-items:center;gap:12px}
.natale-wordmark h1{font-family:Georgia,serif;font-size:clamp(24px,4vw,45px);line-height:1.05;color:#fff5e4}
.natale-wordmark em{color:#ffdaa1;font-weight:normal}
.natale-hat{width:clamp(48px,8vw,84px);height:auto;flex:none}
.natale-signature{text-align:right}
.natale-signature p{margin:0;font-size:15px;line-height:1.3}
.natale-signature p+p{color:#ffdaa1;margin-top:4px}
.signup-page .brand p{color:#fff0e7}
.signup-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:clamp(16px,4vw,28px);border-radius:8px;border-bottom:3px solid #d5ac63;color:#fff9f2}
.signup-banner h2{margin:0}
.signup-banner p:last-child{margin:5px 0 0}
.signup-banner .eyebrow{color:#ffdfa1}
.signup-icon{width:1.25em;height:1.25em;vertical-align:middle}
.signup-contact{background:#fff9ee;border-color:#ead7af}
.signup-training{background:#f4f6ec;border-color:#d7dec8}
.signup form>button{background:#971629;color:#fff}
.signup form>button:hover{background:#750e20}
.family-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:10px 16px}
.intro-programma{border:0;color:#fff9ed;background:radial-gradient(ellipse at top right,#a34652,transparent 68%),#76263c;padding:clamp(24px,5vw,50px)}
.natale-hero-copy{max-width:33rem;position:relative}
.intro-programma .eyebrow{color:#ffe0a9}
.intro-programma .button{background:#ffdf9f;color:#492030;border-color:#ffdf9f}
.program-page .intro-programma{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,34%);align-items:center;gap:clamp(16px,3vw,32px);background:linear-gradient(120deg,#89000c,#a02639);padding:clamp(20px,4vw,36px);border-bottom:3px solid #d5ac63}
.natale-hero-copy p:last-child{margin-bottom:0}
.home-photo{margin:0}
.home-photo img{display:block;width:100%;height:auto;border-radius:6px}
.home-photo figcaption{margin-top:6px;font-size:13px}
main .home-photo a:not(.button){color:#fff1dc}
.home-help{background:#fff8eb;border-color:#e8d8b9}
.home-help .button{min-height:46px;font-size:17px}
.home-deadline{margin:12px 0 0;font-size:15px;color:var(--muted)}
.home-organizers{display:inline-flex;align-items:center;min-height:44px;color:inherit}
.signup-contact{background:linear-gradient(135deg,#fff9ef,#f5e5ce);border-color:#ddbf91}
.signup-family{background:linear-gradient(135deg,#f0f7eb,#dcead5);border-color:#b6cdb0}
.signup-choices:not(.signup-contact):not(.signup-family):not(.signup-training):not(.signup-events){background:linear-gradient(135deg,#fff8e8,#f6e3b4);border-color:#e2c37d}
.signup-training{background:linear-gradient(135deg,#f4f2fa,#e8e0f3);border-color:#cfc1e2}
.signup-events{background:linear-gradient(135deg,#fff1f1,#f5d9de);border-color:#dfb4be}
@media(max-width:760px){
  .signup-paths{grid-template-columns:1fr}
  .program-page .intro-programma{grid-template-columns:1fr}
  .home-photo{max-width:360px}
  .signup-banner{flex-direction:column;align-items:flex-start;gap:14px}
  .natale-signature{gap:8px}
  .natale-signature p{font-size:12px}
  .natale-signature .logo{width:38px;height:38px;flex:none}
  .panel,fieldset,.cols>*{min-width:0}
  main{overflow-wrap:anywhere}
  nav a,nav .compact{font-size:15px;min-height:44px}
  nav a{flex:0 0 auto}
  .line label{flex:1 1 180px;min-width:0}
  .table-scroll{max-width:100%}
  .meeting-list table,.meeting-list tbody,.meeting-list tr,.meeting-list td{display:block}
  .meeting-list thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .meeting-list tr{padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}
  .meeting-list td{padding:3px 0;border:0}
  .meeting-list td:nth-child(-n+2){display:inline;font-weight:bold}
  .meeting-list td:nth-child(2){margin-left:.3em}
  .meeting-list td[data-label]::before{content:attr(data-label);display:block;font-weight:bold;margin:4px 0}
  .meeting-list td:last-child{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}
}
