/* Party invitation maker (Birthday Parties page) */
@font-face{font-family:'MSB Invite Serif';src:url('fraunces-soft.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:block}

.invite-maker .section-head{max-width:760px}
.invite-maker__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:start}
.invite-form{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:30px;display:flex;flex-direction:column;gap:22px}
.invite-form fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;min-width:0}
.invite-form legend{font-family:var(--serif);font-variation-settings:"SOFT" 100,"opsz" 72;font-weight:600;font-size:1.2rem;color:var(--navy);margin-bottom:10px;padding:0}
.invite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.invite-grid--3{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}
.invite-grid--age{grid-template-columns:minmax(0,1fr) 120px}
.invite-wide{grid-column:1/-1}
.invite-form .field{font-size:.9rem;gap:5px;min-width:0}
.invite-form .field input,.invite-form .field select,.invite-form .field textarea{min-height:46px;padding:9px 13px;font-size:1rem;width:100%;min-width:0}
.invite-form .field textarea{min-height:84px;resize:vertical}
.invite-form .field small{font-weight:600;color:var(--muted);font-size:.82rem;line-height:1.45}
.invite-colours{flex-direction:row !important;flex-wrap:wrap;gap:10px 14px !important}
.invite-colours legend{width:100%}
.invite-swatch{position:relative;display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 8px;border:2px solid var(--line);border-radius:999px;cursor:pointer;font-weight:800;font-size:.92rem;color:var(--navy);background:#fff}
.invite-swatch input{position:absolute;opacity:0;width:1px;height:1px}
.invite-swatch span{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.invite-swatch:has(input:checked){border-color:var(--navy);box-shadow:0 0 0 3px var(--mist)}
.invite-swatch:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:2px}
.invite-check{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--navy);cursor:pointer}
.invite-check input{width:22px;height:22px;accent-color:var(--navy);flex:none}

.invite-preview{position:sticky;top:110px;display:flex;flex-direction:column;gap:16px}
.invite-preview__paper{background:#fff;border-radius:14px;box-shadow:0 22px 50px -24px rgba(14,58,91,.45);padding:0;overflow:hidden;max-width:440px;width:100%;margin:0 auto;transform:rotate(-1.2deg)}
.invite-preview__paper canvas{display:block;width:100%;height:auto;aspect-ratio:148/210}
.invite-count{font-size:.9rem;color:var(--muted);text-align:center;margin:0}
.invite-layout{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center}
.invite-layout label{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;color:var(--ink);cursor:pointer}
.invite-layout input{width:18px;height:18px;accent-color:var(--navy)}
.invite-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.invite-blank{align-self:center;border:0;background:none;padding:6px 4px;font:800 .95rem var(--sans);color:var(--navy-2);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.invite-blank:hover{color:var(--navy)}
.invite-status{min-height:1.4em;text-align:center;font-weight:700;color:var(--navy);margin:0}
.invite-privacy{font-size:.85rem;color:var(--muted);text-align:center;margin:0}
.invite-done{background:var(--lime-tint);border-radius:var(--r-md);padding:18px 20px;text-align:center}
.invite-done p{margin:0 0 10px;font-weight:700;color:var(--navy)}
.is-busy .invite-actions .btn,.is-busy .invite-blank{opacity:.6;pointer-events:none}

@media (max-width:960px){
  .invite-maker__grid{grid-template-columns:1fr;gap:28px}
  .invite-preview{position:static}
  .invite-preview__paper{max-width:360px}
}
@media (max-width:640px){
  .invite-form{padding:22px 18px}
  .invite-grid,.invite-grid--3{grid-template-columns:1fr 1fr}
  .invite-grid--3 > :first-child{grid-column:1/-1}
  .invite-preview__paper{max-width:300px}
  .invite-actions .btn{width:100%;justify-content:center}
}

/* Guest names */
.invite-guests{background:var(--mist);border:2px dashed #A9CFE6 !important;border-radius:var(--r-md);padding:18px 18px 16px !important}
.invite-guests legend{float:left;width:100%;margin-bottom:6px !important}
.invite-guests legend .field-hint{font-family:var(--sans);font-size:.85rem}
.invite-guests__intro{margin:0;font-weight:600;color:var(--ink);font-size:.95rem;line-height:1.5;clear:both}
.invite-guests .field textarea{min-height:110px;background:#fff}
.invite-guests__chips{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin:0}
.invite-guests__chips strong{width:100%;font-size:.88rem;color:var(--navy)}
.invite-guests__chips span{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:3px 12px;font-weight:800;font-size:.85rem;color:var(--navy)}
.invite-guests__note{font-weight:600;color:var(--muted);font-size:.82rem;line-height:1.45}

/* Step through each guest's invitation */
.invite-guestnav{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:-4px}
.invite-guestnav[hidden]{display:none}
.invite-guestnav span{font-weight:800;color:var(--navy);font-size:.95rem;min-width:12em;text-align:center}
.invite-guestnav button{width:40px;height:40px;border-radius:50%;border:2px solid var(--line);background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer;padding:0}
.invite-guestnav button svg{width:20px;height:20px}
.invite-guestnav button:hover:not(:disabled){border-color:var(--navy-2)}
.invite-guestnav button:disabled{opacity:.35;cursor:default}
.invite-reset{border:0;background:none;padding:0;font:800 .85rem var(--sans);color:var(--navy-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* Teaser near the top of the page */
.invite-teaser{display:flex;align-items:center;gap:22px;padding:16px 22px 16px 16px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink);transition:transform .2s ease,box-shadow .2s ease;max-width:520px}
.invite-teaser:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:var(--ink)}
.invite-teaser__art{position:relative;flex:none;width:118px;height:120px}
.invite-teaser__art img{position:absolute;width:74px;height:auto;border-radius:6px;box-shadow:0 10px 22px -10px rgba(14,58,91,.55)}
.invite-teaser__art img:first-child{left:4px;top:10px;transform:rotate(-9deg)}
.invite-teaser__art img:last-child{left:40px;top:2px;transform:rotate(6deg)}
.invite-teaser:hover .invite-teaser__art img:last-child{transform:rotate(9deg) translateY(-3px)}
.invite-teaser__art img{transition:transform .25s ease}
.invite-teaser__text{display:flex;flex-direction:column;gap:4px;min-width:0}
.invite-teaser__tag{align-self:flex-start;background:var(--lime-hi);color:var(--navy);font-weight:900;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:999px}
.invite-teaser__text strong{font-family:var(--serif);font-variation-settings:"SOFT" 100,"opsz" 72;font-weight:600;font-size:1.25rem;color:var(--navy);line-height:1.2}
.invite-teaser__text > span:not(.invite-teaser__tag):not(.link-arrow){font-size:.9rem;color:var(--muted);font-weight:600;line-height:1.45}
.invite-teaser .link-arrow{margin-top:2px;font-size:.92rem}
@media (max-width:640px){
  .invite-teaser{gap:14px;padding:14px}
  .invite-teaser__art{width:92px;height:104px}
  .invite-teaser__art img{width:62px}
  .invite-teaser__art img:last-child{left:28px}
}
@media (prefers-reduced-motion:reduce){.invite-teaser,.invite-teaser__art img{transition:none}}
