/* Calendar scoped to GMS; shared modal and CTA identity retained. */
.gms-calendar-launch { display:flex; justify-content:center; margin-top:1.5rem; }
body[data-calendar-open] { overflow:hidden; }
.gms-calendar { --brand:#FF1064; width:min(88rem,calc(100% - 2rem)); }
.gms-calendar .possibilities-modal__panel { display:flex; flex-direction:column; height:92svh; max-height:64rem; padding:clamp(1rem,2.5vw,2.2rem); padding-bottom:0; overflow:hidden; }
.gms-calendar-heading { flex:none; }
.gms-calendar-heading h2 { font-size:clamp(1.75rem,3.7vw,3.3rem); text-transform:uppercase; line-height:1; margin:.5rem 0 .7rem; }
.gms-calendar-heading > p:last-child { color:var(--ink-soft); max-width:70ch; font-size:.9rem; }
.gms-calendar .possibilities-modal__close { position:relative; margin:0 0 .5rem 1rem; }
.gms-calendar-months { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:.35rem; margin:1.25rem 0 .75rem; flex:none; }
.gms-calendar-months button { border:1px solid var(--line); border-radius:999px; padding:.65rem .2rem; background:transparent; color:var(--ink); font:600 .75rem var(--font-body); cursor:pointer; }
.gms-calendar-months button:hover { border-color:var(--brand); color:var(--brand); }
.gms-calendar-months button[aria-current="true"] { background:var(--brand); border-color:var(--brand); color:#fff; }
.gms-calendar button:focus-visible,.gms-calendar-scroll:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
.gms-calendar-month-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.6rem 0 .85rem; flex:none; }
.gms-calendar-month-heading h3 { color:var(--brand); font-size:clamp(1.5rem,3vw,2.3rem); text-transform:uppercase; line-height:1; }
.gms-calendar-month-heading button { padding:.4rem; border:0; background:none; color:var(--ink-soft); text-decoration:underline; text-underline-offset:3px; font:inherit; font-size:.75rem; cursor:pointer; }
.gms-calendar-month-heading button:disabled { opacity:.4; cursor:default; }
.gms-calendar-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:3px 3px 1.5rem; }
.gms-calendar-weekdays,.gms-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.5rem; }
.gms-calendar-weekdays { padding:0 0 .5rem; font-size:.7rem; font-weight:700; text-transform:uppercase; color:var(--ink-soft); text-align:center; }
.gms-calendar-day { min-width:0; border:1px solid var(--line-soft); border-radius:1rem; padding:.6rem; background:rgba(255,255,255,.65); }
.gms-calendar-date { display:flex; align-items:baseline; justify-content:space-between; gap:.25rem; margin-bottom:.5rem; }
.gms-calendar-date strong { font-family:var(--font-display); font-size:1.6rem; line-height:1; }
.gms-calendar-date span { font-size:.65rem; color:var(--ink-soft); }
.gms-calendar-event { display:block; position:relative; margin-top:.4rem; cursor:pointer; }
.gms-calendar-event input { position:absolute; opacity:0; width:1px; height:1px; }
.gms-calendar-event span { display:block; padding:.65rem .5rem; border:1px solid var(--line); border-radius:.65rem; color:var(--ink); background:var(--bg-card); font-size:.72rem; line-height:1.45; overflow-wrap:anywhere; transition:background .2s,color .2s,border-color .2s; }
.gms-calendar-event:hover span { border-color:var(--brand); }
.gms-calendar-event input:checked + span { background:#FF1064; border-color:#FF1064; color:#fff; }
.gms-calendar-event input:focus-visible + span { outline:2px solid var(--brand); outline-offset:2px; }
.gms-calendar-source { margin-top:1.25rem; font-size:.7rem; color:var(--ink-soft); }
.gms-calendar-source a { text-decoration:underline; }
.gms-calendar .possibilities-modal__footer { position:relative; flex:none; margin-inline:clamp(-2.2rem,-2.5vw,-1rem); padding:1rem clamp(1rem,2.5vw,2.2rem); }
.gms-calendar .needs-summary p { font-size:.8rem; max-height:3.8em; overflow:auto; }
.gms-calendar .possibilities-modal__continue { font-size:.8rem; }
.gms-calendar-object[hidden] { display:none; }
.gms-contact .gms-calendar-object textarea { min-height:4rem; color:var(--ink); background:var(--bg-card); }
@media(max-width:70rem) {
 .gms-calendar-months { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .gms-calendar-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .gms-calendar-weekdays,.gms-calendar-blank { display:none; }
}
@media(max-width:47.99rem) {
 .gms-calendar { width:calc(100% - 1rem); }
 .gms-calendar .possibilities-modal__panel { height:94svh; max-height:94svh; padding:.9rem .9rem 0; }
 .gms-calendar-heading .eyebrow { font-size:.6rem; }
 .gms-calendar-heading > p:last-child { font-size:.75rem; line-height:1.4; }
 .gms-calendar .possibilities-modal__close { width:2.25rem; height:2.25rem; }
 .gms-calendar-months { margin:.8rem 0 .3rem; gap:.3rem; }
 .gms-calendar-months button { font-size:.62rem; padding:.55rem .1rem; }
 .gms-calendar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .gms-calendar-event span { font-size:.75rem; min-height:44px; }
 .gms-calendar .possibilities-modal__footer { margin-inline:-.9rem; padding:.8rem .9rem max(.8rem,env(safe-area-inset-bottom)); gap:.6rem; }
 .gms-calendar .needs-summary p { display:none; }
 .gms-calendar .needs-summary strong { margin:0; }
 .gms-calendar .possibilities-modal__continue { padding:.85rem 1rem; font-size:.7rem; }
 .gms-calendar-month-heading { padding:.5rem 0 .7rem; }
}
@media(prefers-reduced-motion:reduce) { .gms-calendar-event span { transition:none; } }

/* Form actions share a baseline and the right edge of the message field. */
.gms-contact .gms-form-actions { display:grid; grid-template-columns:max-content max-content; justify-content:space-between; align-items:center; gap:1rem; width:100%; }
.gms-form-actions .form__status { grid-column:1 / -1; }
.gms-form-actions .btn { padding:1rem 1.2rem; font-size:.75rem; }
.gms-optional { text-transform:none; font-size:.75em; letter-spacing:0; color:var(--ink-soft); }
@media(max-width:47.99rem) {
 .gms-contact .gms-form-actions { grid-template-columns:minmax(0,1fr) auto; gap:.65rem; }
 .gms-form-actions .btn { padding:.9rem .7rem; font-size:.6rem; letter-spacing:.025em; }
 .gms-form-actions .btn__label { gap:.4rem; }
 .gms-form-actions svg { width:1rem; height:1rem; flex-shrink:0; }
}
