/* Holiday polish shared by the actual family form, pass and photo portal. */
.family-page,.me-app.theme-holiday{--cream:#fff5e4;--paper:#fffef9;--green:#00563d;--deep:#003f2e;--red:#ce1028;--gold:#f4ba38;--ink:#123e32;--muted:#52695d;--mint:#d5eee3;background-color:var(--cream)}
.family-page .family-header{border-bottom:3px solid #ce1028;background:#fffdf6}
.family-page .hero-text h1{color:#ce1028;text-shadow:0 3px 0 #fff}
.family-page .hero-text h1 span{color:#00563d}
.family-page .hero-visual{filter:drop-shadow(0 14px 18px #b66d1717)}
.family-page .button.red{background:#ce1028;color:#fff;border-color:#ce1028;box-shadow:0 4px 0 #980d20}
.family-page .button.green{background:#00563d;color:#fff;border-color:#00563d}
.family-page .visit-wrap{background:linear-gradient(125deg,#dcefe5,#fff1ce);border-top:4px solid #e8ad29;border-bottom:1px solid #c8ddcf}
.family-page .visit-step>b{background:#ce1028;color:#fff;border-color:#ce1028;font-weight:800}
.family-page .paper-note{background:#fff9e7;border:1px solid #e4bd69}
.family-page .family-form{background:#fffef9;border:1px solid #d3dfd4;border-top:7px solid #ce1028;box-shadow:0 16px 40px #00563d12}
.family-page .form-heading .small-tag{background:#d9ede2;color:#00513a}
.family-page .volunteer-callout{background:linear-gradient(115deg,#00563d,#003f2e);border-top:4px solid #efb637}
.family-page .family-form input[type=submit],.family-page .family-form button.button:not(.secondary){background:#ce1028;color:#fff!important;border:2px solid #ce1028;box-shadow:0 3px 0 #980d20}
.family-page .family-form input:focus,.family-page .family-form textarea:focus,.family-page .family-form select:focus{outline:3px solid #e9b23e;outline-offset:2px}
/* A calm line above the sign-up form saying what the phone box is for. */
.family-page .family-form .code-note{margin:0 0 20px;padding:11px 15px;background:#fff9e7;border:1px solid #e4bd69;border-left:4px solid #e9b23e;border-radius:8px;color:#00513a;font-size:15px;line-height:1.5}
/* Keep the long native Gravity form below its introduction, using the page width. */
@media screen{
 .family-page .visit{display:block;max-width:1180px;padding:48px}
 .family-page .visit-copy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:26px}
 .family-page .visit-copy>.eyebrow,.family-page .visit-copy>h2,.family-page .visit-copy>p,.family-page .visit-copy>.paper-note{grid-column:1/-1;max-width:none}
 .family-page .visit-copy h2{font-size:36px;margin:0}
 .family-page .visit-copy>p:not(.eyebrow){font-size:15px}
 .family-page .visit-step{margin:0;padding:16px;background:#fffdf5;border:1px solid #c4d7c8;border-radius:10px}
 .family-page .visit-step p{font-size:14px}
 .family-page .visit-copy>.paper-note{margin:0;padding:14px 18px;font-size:14px}
 .family-page .family-form{width:100%;max-width:none;padding:32px 36px;border-radius:16px}
}
.family-page .family-form .form-heading .small-tag{background:#ae1025;color:#fff;font-size:11px;letter-spacing:.08em;padding:8px 12px;border-radius:6px}
.family-page .volunteer-callout a.button.cream{background:#ce1028!important;color:#fff!important;border:2px solid #ffe6a2;border-radius:8px;font-size:15px;box-shadow:0 3px 0 #7a0919;min-height:50px;text-decoration:none}
.family-page .volunteer-callout a.button.cream:hover{background:#ac0b20!important}
/* Native Gravity markup: readable labels, compact group counts and explicit choices. */
.family-page .family-form .gform_wrapper .gform_fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px!important}
.family-page .family-form .gform_wrapper .gfield{grid-column:1/-1;min-width:0;margin:0}
.family-page .family-form .gform_wrapper .gfield:has(input[name="input_3"]),.family-page .family-form .gform_wrapper .gfield:has(input[name="input_4"]){grid-column:span 1}
.family-page .family-form .gform_wrapper .gfield_label{font-size:17px;font-weight:750;color:#123e32;line-height:1.4;margin-bottom:7px}
.family-page .family-form .gform_wrapper .gfield_required{color:#a00d21;font-size:13px}
.family-page .family-form .gform_wrapper .gfield_description,.family-page .family-form .gform_wrapper .ginput_counter{font-size:14px;line-height:1.55;color:#40594b;padding-top:6px}
.family-page .family-form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=hidden]),.family-page .family-form .gform_wrapper textarea,.family-page .family-form .gform_wrapper select{width:100%;max-width:100%;min-height:48px;padding:11px 13px;font-size:16px;color:#163d30;background:#fff;border:1px solid #819a8b;border-radius:7px;box-shadow:none}
.family-page .family-form .gform_wrapper .gfield--type-radio{background:#fff7e5;border:1px solid #dfc99c;border-left:4px solid #bd142a;border-radius:10px;padding:18px}
.family-page .family-form .gform_wrapper .gfield_radio{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.family-page .family-form .gform_wrapper .gchoice{display:flex;align-items:flex-start;gap:10px;min-height:48px;padding:12px;background:#fff;border:1px solid #93aa9b;border-radius:7px;margin:0}
.family-page .family-form .gform_wrapper .gchoice:has(input:checked){background:#e0efe3;border:2px solid #00543b;padding:11px}
.family-page .family-form .gform_wrapper .gchoice input{appearance:auto!important;width:20px!important;height:20px!important;min-width:20px!important;flex:0 0 20px;margin:2px 0 0!important;accent-color:#a40b24;box-shadow:none}
.family-page .family-form .gform_wrapper .gchoice input:before{content:none!important}
.family-page .family-form .gform_wrapper .gchoice label{font-size:15px!important;color:#123e32!important;line-height:1.45;max-width:none;cursor:pointer}
.family-page .family-form .gform_wrapper .gform_footer{margin-top:24px;padding:0}
.family-page .family-form .gform_wrapper .gform_footer input[type=submit]{padding:14px 25px;font-size:17px;min-height:52px;border-radius:8px;cursor:pointer}
@media screen and (max-width:680px){.family-page .visit{padding:32px 20px}.family-page .visit-copy{grid-template-columns:1fr}.family-page .visit-copy h2{font-size:30px}.family-page .family-form{padding:24px 18px}.family-page .family-form .gform_wrapper .gform_fields{grid-template-columns:1fr;gap:20px!important}.family-page .family-form .gform_wrapper .gfield_radio{grid-template-columns:1fr}.family-page .family-form .gform_wrapper .gfield_label{font-size:16px}.family-page .family-form .gform_wrapper .gfield--type-radio{padding:15px}}
.family-pass-flow{--ink:#123e32;--paper:#fffef9;--red:#ce1028;position:relative;background:radial-gradient(ellipse at top right,#ffe5a7 0,transparent 52%),#fff5e4;padding:18px clamp(14px,3vw,28px) 24px;border-radius:22px;border:1px solid #e7d4ac;margin:20px auto;max-width:760px}
.family-pass-flow .pass-intro{padding:22px 0 12px}
.family-pass-flow .pass-intro .eyebrow{color:#b40d24;font-weight:800}
.family-pass-flow .pass-intro h1{font-size:clamp(1.9rem,5vw,2.8rem);color:#00563d;letter-spacing:-.04em}
.family-pass-flow .pass-intro p{font-size:15px;line-height:1.6}
.family-pass-flow .family-pass{position:relative;margin:12px auto 20px;max-width:620px;width:100%;padding:28px 22px;border:2px solid #00563d;border-top:10px solid #ce1028;border-radius:18px;background:#fffef9;box-shadow:0 10px 26px #00563d12}
.family-pass-flow .family-pass>.eyebrow{color:#b40d24;font-weight:800}
.family-pass-flow .family-pass h2{font-size:clamp(1.45rem,3.8vw,1.9rem);color:#00563d}
.family-pass-flow .pass-identity{padding:15px 12px;margin:18px 0 20px;background:#dcefe4;border-radius:12px;border:1px solid #bddbc9}
.family-pass-flow .pass-identity span{display:block;font-size:10px;letter-spacing:.12em;font-weight:800;color:#405e4e}
.family-pass-flow .pass-identity strong{display:block;font-size:clamp(1.15rem,3vw,1.55rem);font-weight:850;line-height:1.3;margin:5px 0;overflow-wrap:anywhere}
.family-pass-flow .pass-identity b{display:inline-block;background:#00563d;color:#fff;border-radius:30px;padding:3px 11px;font-size:12px}
.family-pass-flow .qr{max-width:210px;padding:10px;background:#fff;margin:16px auto}
.family-pass-flow .pass-code{color:#00513a;font-size:clamp(.85rem,2.4vw,1.05rem);background:#f0f5ec;border-radius:8px;padding:10px 6px;letter-spacing:.01em}
.family-pass-flow .family-pass p{font-size:14px;line-height:1.55}
.family-pass-flow .pass-photographer{padding:12px;background:#fff3d5;border-left:4px solid #e5aa27;text-align:left;border-radius:5px}
.family-pass-flow .pass-address{font-size:12px!important;overflow-wrap:anywhere}
.family-pass-flow .actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:20px 0 14px}
.family-pass-flow .actions .button{flex:1 1 180px;width:auto;margin:0;min-height:49px;background:#ce1028;border:2px solid #ce1028;color:#fff!important;box-shadow:0 3px 0 #980d20;font-size:14px}
.family-pass-flow .actions a.button.secondary{background:#fffef9;border:2px solid #00563d;color:#00563d!important;box-shadow:0 3px 0 #c4d9cc}
.family-pass-flow .actions .button:hover{filter:brightness(.94)}
.family-pass-flow .center.subtle{font-size:12px;color:#4f675b;line-height:1.6}
.me-app.theme-holiday .portal-intro .eyebrow{color:#b40d24}
.me-app.theme-holiday .code-login .button{background:#ce1028;border-color:#ce1028;color:#fff!important}
@media(max-width:560px){.family-pass-flow{padding:12px 12px 18px}.family-pass-flow .family-pass{padding:22px 14px}.family-pass-flow .actions .button{flex-basis:100%}.family-pass-flow .pass-code{font-size:12px}.family-pass-flow .qr{max-width:185px}}
@media print{.family-pass-flow{border:0;background:#fff;padding:0;margin:0;max-width:none}.family-pass-flow .family-pass{max-width:5.8in;width:auto;border:2px solid #00563d;border-top:7px solid #ce1028;padding:.2in;margin:.15in auto!important;box-shadow:none;break-inside:avoid}.family-pass-flow .pass-identity{background:#edf6ee!important;padding:10px;margin:12px 0}.family-pass-flow .qr{width:1.45in;margin:10px auto;padding:6px}.family-pass-flow .pass-photographer{font-size:10pt!important}.family-pass-flow .family-pass p{font-size:10pt}.family-pass-flow .pass-code{font-size:12pt!important}.family-pass-flow .pass-identity strong{font-size:17pt}.family-pass-flow .actions,.family-pass-flow .pass-intro,.family-pass-flow .center{display:none!important}}
.mantle-made{box-sizing:border-box;max-width:1180px;margin:42px auto;background:#114634;color:#fff9eb;border-top:5px solid #e6b94c;border-radius:18px;padding:36px 38px;display:grid;grid-template-columns:50px 1fr auto;gap:24px;align-items:center;position:relative;overflow:hidden}
.mantle-made-mark{width:50px;height:50px;display:grid;place-items:center;border:1px solid #80a28c;border-radius:50%;font-size:30px;color:#f2c960}
.mantle-made .mantle-made-label{font:750 10px/1.5 "Segoe UI",Arial,sans-serif;letter-spacing:.16em;color:#f2cf79;margin:0 0 13px}
.mantle-made h2{color:#fff9eb;font:750 clamp(28px,3.6vw,42px)/1.12 "Segoe UI",Arial,sans-serif;letter-spacing:-.04em;margin:0 0 16px}
.mantle-made h2 span{color:#f2cf79}
.mantle-made .mantle-made-copy{font:400 15px/1.75 "Segoe UI",Arial,sans-serif;color:#fff9eb;max-width:630px;margin:0}
.mantle-made .mantle-made-link{display:inline-flex;align-items:center;justify-content:center;gap:18px;white-space:nowrap;background:#fff6e4;color:#114634;border:1px solid #fff6e4;border-radius:8px;padding:15px 21px;font:750 14px/1.4 "Segoe UI",Arial,sans-serif;text-decoration:none}
.mantle-made .mantle-made-link:hover{background:#f2cf79;border-color:#f2cf79;color:#114634}
.mantle-made .mantle-made-link:focus-visible{outline:3px solid #f2cf79;outline-offset:5px}
@media(max-width:800px){.mantle-made{margin:30px 20px;padding:28px;grid-template-columns:1fr;gap:16px}.mantle-made-mark{display:none}.mantle-made .mantle-made-link{justify-self:start}.me-app .mantle-made{margin-left:0;margin-right:0}}
@media print{.mantle-made{display:none!important}}
@media print{
  .family-page:has(.family-pass-flow) .family-header,
  .family-page:has(.family-pass-flow) main>section:not(.visit-wrap),
  .family-page:has(.family-pass-flow) .visit-copy,
  .family-page:has(.family-pass-flow) .footer{display:none!important}
  .family-page:has(.family-pass-flow) .family-form{display:block!important}
  .family-page:has(.family-pass-flow) .form-heading,
  .family-page:has(.family-pass-flow) .privacy-line{display:none!important}
  .family-page:has(.family-pass-flow) .visit-wrap,
  .family-page:has(.family-pass-flow) .visit,
  .family-page:has(.family-pass-flow) .family-form{display:block;width:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none;background:#fff}
}
