/* Two text sizes per viewport: a quiet heading and one readable body/control size. */
.invitation-main{max-width:1180px;margin:0 auto;padding:145px 65px 110px;display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start;font-size:16px;line-height:1.6}
.invitation-heading h1{font-size:36px;line-height:1.2;letter-spacing:-.025em;margin:0 0 24px;max-width:360px}
.invitation-heading>p{font-size:16px;line-height:1.7;color:var(--muted)}
.invitation-photo{margin-top:36px}.invitation-photo img{display:block;width:100%;height:auto;aspect-ratio:1024/1535;object-fit:contain}
.invitation-preview{font-size:16px;line-height:1.6;color:var(--muted);margin:0 0 28px}
.invitation-main fieldset{border:0;border-top:1px solid var(--line);padding:22px 0 0;margin:0 0 32px;min-width:0}
.invitation-main legend{font-size:16px;line-height:1.6;padding:0 14px 0 0}
.invitation-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px}
.invitation-main label{display:block;font-size:16px;line-height:1.6}
.invitation-main input:not([type=radio]),.invitation-main select,.invitation-main textarea{display:block;width:100%;min-width:0;border:1px solid var(--control-line);border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:16px;padding:10px 11px;min-height:46px;margin-top:7px}
.invitation-main textarea{resize:vertical}.invitation-main fieldset>.invitation-grid+label{margin-top:20px}
.invitation-main input::placeholder,.invitation-main textarea::placeholder{color:var(--muted);font-size:16px;opacity:1}
.invitation-main input:focus-visible,.invitation-main select:focus-visible,.invitation-main textarea:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.invitation-connection{margin:24px 0 20px;font-size:16px}.invitation-options{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.invitation-options label{display:flex;gap:10px;align-items:center;min-height:40px;font-size:16px;cursor:pointer}
.invitation-options input{accent-color:var(--ink);width:16px;height:16px;margin:0;flex-shrink:0}.optional{font-size:16px;color:var(--muted)}
.invitation-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 26px;border:1px solid var(--ink);background:var(--ink);color:var(--ground);font-size:16px;line-height:1.5;cursor:pointer}
.invitation-button:hover{background:transparent;color:var(--ink)}#invitation-submit{width:100%;margin-top:0}.invitation-button:disabled{opacity:.5;cursor:not-allowed}
.invitation-success{padding:0 0 35px}.invitation-success h2{font-size:36px;line-height:1.2;margin:0 0 24px}.invitation-success-disclaimer{font-size:16px;line-height:1.7;margin-bottom:28px}
.invitation-back{display:block;margin-top:24px;font-size:16px;text-decoration:underline;text-underline-offset:4px}
.invitation-teaser{text-align:center;padding:80px 25px 90px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 auto 70px;max-width:1050px}
.invitation-teaser h2{font-size:36px;line-height:1.3;margin:0 0 16px}.invitation-teaser>p{font-size:16px;color:var(--muted);line-height:1.7}.invitation-teaser .invitation-button{margin-top:25px}.invitation-teaser small{display:block;color:var(--muted);font-size:16px;margin-top:16px}
.invitation-main [hidden]{display:none!important}.invitation-cover-link{display:block;width:fit-content;margin:22px auto 0;font-size:16px;border-bottom:1px solid var(--ink);padding-bottom:4px}
@media(max-width:850px){.invitation-main{gap:45px;padding:120px 35px 85px}}
@media(max-width:650px){.invitation-main{display:block;padding:105px 25px 70px}.invitation-heading h1{font-size:32px;max-width:none;margin-bottom:20px}.invitation-photo{display:none}.invitation-form-column{margin-top:32px}.invitation-grid{gap:20px 14px}.invitation-teaser{padding:60px 25px 70px;margin-bottom:45px}.invitation-teaser h2,.invitation-success h2{font-size:32px}}
@media(max-width:370px){.invitation-grid{grid-template-columns:1fr}}
/* Live, read-only date selection. All guest details remain in the form. */
.invitation-calendar{border:1px solid var(--control-line);margin-top:20px;padding:16px;background:var(--ground)}
.invitation-calendar button,.invitation-availability button{font:inherit;font-size:16px;color:var(--ink);background:transparent;border:1px solid transparent;cursor:pointer;min-height:44px}
.invitation-calendar button:focus-visible,.invitation-availability button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.invitation-calendar-modes{display:flex;align-items:center;gap:8px}.invitation-calendar-modes [data-date-mode]{padding:6px 12px;border-color:var(--control-line)}
.invitation-calendar-modes [aria-pressed=true]{color:var(--ground);background:var(--ink)}.invitation-calendar-modes [data-calendar-close]{margin-left:auto;padding:6px 0 6px 8px;text-decoration:underline;text-underline-offset:3px}
.invitation-calendar-nav{display:flex;align-items:center;justify-content:space-between;margin:14px 0 8px;gap:8px}.invitation-calendar-nav p{margin:0;text-align:center}.invitation-calendar-nav button{width:44px;flex-shrink:0;border-color:var(--line)}
.invitation-calendar table{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed}.invitation-calendar th{font-weight:400;padding:5px 0;color:var(--muted)}.invitation-calendar abbr{text-decoration:none}.invitation-calendar td{padding:0;text-align:center}
.invitation-calendar td button{display:block;width:100%;padding:5px 0;border-color:var(--line)}.invitation-calendar td button:not(:disabled):hover{border-color:var(--ink);background:var(--surface-raised)}
.invitation-calendar td button:disabled{color:var(--muted);text-decoration:line-through;opacity:.6;cursor:not-allowed;border-color:transparent}.invitation-calendar td button[aria-pressed=true]{background:var(--ink);color:var(--ground);opacity:1;text-decoration:none}
.invitation-calendar .invitation-in-stay{background:var(--surface-raised)}.invitation-calendar-nav button:disabled{opacity:.35;cursor:not-allowed}
.invitation-availability{margin:12px 0 20px;color:var(--muted)}.invitation-availability p{margin:0}.invitation-availability button{padding:5px 0;text-decoration:underline;text-underline-offset:4px}
#arrival,#departure{cursor:pointer}
@media(max-width:370px){.invitation-calendar{padding:10px}.invitation-calendar-modes{gap:5px}.invitation-calendar-modes [data-date-mode]{padding:6px 8px}}
.invitation-privacy,.invitation-send-status{font-size:16px;line-height:1.6;color:var(--muted);margin:0 0 18px}.invitation-send-status{margin:16px 0 0}.invitation-privacy a,#invitation-send-help a{text-decoration:underline;text-underline-offset:3px}
.invitation-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.invitation-main #arrival,.invitation-main #departure{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='4' y='5' width='16' height='16' rx='1'/%3E%3Cpath d='M8 3v4m8-4v4M4 11h16'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:18px 18px}
