@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap');
:root{--ivory:#fbf7ef;--paper:#fffdf9;--ink:#332b28;--muted:#766861;--rust:#b8643f;--orange:#d07a4a;--line:rgba(51,43,40,.16);--shadow:0 18px 50px rgba(67,49,38,.12);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",Arial,sans}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,rgba(208,122,74,.08),var(--ivory));color:var(--ink);font-family:var(--sans);line-height:1.65}.rsvp-header{min-height:76px;padding:0 max(22px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(251,247,239,.95);border-bottom:1px solid var(--line)}.brand-link{font-family:var(--serif);font-size:2rem;text-decoration:none}.home-link{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;text-decoration:none}.wrap{width:min(860px,calc(100% - 32px));margin:0 auto}.hero{padding:84px 0 42px;text-align:center}.eyebrow{color:var(--orange);font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;font-weight:600}.hero h1,.card h1,.card h2{margin:.2em 0;font-family:var(--serif);font-weight:500;line-height:.95}.hero h1{font-size:clamp(4rem,9vw,7rem)}.hero p{max-width:680px;margin:14px auto}.card{margin:0 auto 70px;padding:clamp(28px,6vw,60px);background:var(--paper);border-top:7px solid var(--orange);box-shadow:var(--shadow)}.card h2{font-size:clamp(2.7rem,6vw,4.6rem);text-align:center}.field{display:grid;gap:8px;margin-bottom:20px}.field label,.guest-title{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid rgba(51,43,40,.28);background:#fff;font:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(208,122,74,.2);border-color:var(--orange)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid var(--rust);background:var(--rust);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:.78rem;cursor:pointer}.button.secondary{background:transparent;color:var(--ink)}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.message{padding:16px 18px;margin:0 0 24px;background:#fff3ec;border-left:4px solid var(--orange)}.error{background:#fff0f0;border-left-color:#b43636}.guest-card{padding:24px 0;border-top:1px solid var(--line)}.guest-card:first-of-type{border-top:0}.guest-name{margin:0 0 14px;font-family:var(--serif);font-size:2rem}.choices{display:grid;grid-template-columns:1fr 1fr;gap:18px}.choice-group{padding:16px;background:#fff8f3}.choice-group legend{font-weight:600}.choice-group label{margin-right:14px}.contact-note{font-size:.95rem;color:var(--muted)}.summary{display:grid;gap:12px}.summary-item{padding:14px 16px;background:#fff8f3}.rsvp-footer{text-align:center;padding:28px;background:linear-gradient(135deg,#8f452b,#b8643f);color:#fff}.admin-table{width:100%;border-collapse:collapse;background:#fff}.admin-table th,.admin-table td{padding:10px;border:1px solid var(--line);text-align:left;vertical-align:top}.admin-nav{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#f5e4d7}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.kpi{padding:18px;background:#fff;box-shadow:var(--shadow)}.kpi strong{display:block;font-family:var(--serif);font-size:2rem;color:var(--rust)}
@media(max-width:700px){.grid-2,.choices,.kpis{grid-template-columns:1fr}.card{padding:28px 20px}.button-row{flex-direction:column}.button{width:100%}.admin-table{font-size:.85rem;display:block;overflow-x:auto}.rsvp-header{padding-inline:18px}}


/* Visual refinements added after live review */
.logo-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.logo-brand img {
    width: auto;
    height: 52px;
    display: block;
}

.brand-link,
.home-link,
a,
.button {
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease, opacity 180ms ease;
}

.brand-link:hover,
.brand-link:focus-visible,
.home-link:hover,
.home-link:focus-visible,
a:hover,
a:focus-visible {
    color: var(--orange);
}

.button:hover,
.button:focus-visible {
    transform: translateY(-1px);
    background: #9f5635;
    border-color: #9f5635;
}

.button.secondary:hover,
.button.secondary:focus-visible {
    background: rgba(208, 122, 74, 0.10);
    color: var(--ink);
    border-color: var(--orange);
}

.confirmation-hero h1 {
    font-size: clamp(3rem, 6vw, 5.2rem);
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}

.rsvp-group-hero h1 {
    font-size: clamp(3.4rem, 7vw, 5.6rem);
}

.group-name-list {
    display: grid;
    gap: 4px;
    margin: 18px auto 20px;
    font-family: var(--serif);
    font-size: clamp(1.65rem, 3vw, 2.4rem);
    line-height: 1.12;
}

.group-name-list span {
    display: block;
}

.guest-name {
    margin: 0 0 16px;
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    line-height: 1.1;
}

.shuttle-field {
    margin-top: 14px;
}

.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.4;
    cursor: pointer;
    text-transform: none;
    font-size: 0.95rem;
}

.field .checkbox-label {
    text-transform: none;
    letter-spacing: 0.02em;
    font-size: 0.95rem;
}

.shuttle-checkbox {
    width: 20px;
    height: 20px;
    min-height: 0;
    padding: 0;
    margin: 2px 0 0;
    flex: 0 0 20px;
    accent-color: #b8643f;
}

.shuttle-field small {
    display: block;
    margin-top: 8px;
    margin-left: 32px;
    color: var(--muted);
}

.rsvp-footer {
    position: relative;
    text-align: center;
    padding: 28px max(22px, calc((100vw - 1100px) / 2));
    background: linear-gradient(135deg, #8f452b, #b8643f);
    color: #fff;
}

.rsvp-footer p {
    margin: 6px 0;
}

.back-to-top,
.made-with-love a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.back-to-top:hover,
.back-to-top:focus-visible,
.made-with-love a:hover,
.made-with-love a:focus-visible {
    color: #ffe7da;
}

.made-with-love {
    position: absolute;
    right: max(22px, calc((100vw - 1100px) / 2));
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.made-with-love .heart {
    color: #d60000;
    font-size: 1rem;
}

@media (max-width: 700px) {
    .logo-brand img {
        height: 44px;
    }

    .confirmation-hero h1 {
        font-size: clamp(2.7rem, 14vw, 4rem);
    }

    .made-with-love {
        position: static;
        transform: none;
        margin-top: 10px;
        white-space: normal;
    }
}

/* Careful final RSVP corrections */
:root {
    --rust: #b8643f;
    --rust-deep: #8f4f35;
    --cream: #fff8ef;
    --menu-brown-gray: #5f5651;
}

/* No underlines or blue links in RSVP. */
body a,
body a:link,
body a:visited,
body a:active,
body a:hover,
body a:focus {
    text-decoration: none !important;
    box-shadow: none !important;
    border-bottom: 0 !important;
}

/* RSVP header logo and Wedding Website rectangle. */
.rsvp-header {
    min-height: 78px;
}

.rsvp-header .brand-link {
    display: inline-flex !important;
    align-items: center;
    text-decoration: none !important;
}

.rsvp-header-logo,
.logo-brand img {
    display: block;
    width: 150px;
    max-height: 58px;
    object-fit: contain;
}

.rsvp-header .home-link,
.rsvp-header .home-link:link,
.rsvp-header .home-link:visited {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid var(--menu-brown-gray) !important;
    color: var(--menu-brown-gray) !important;
    -webkit-text-fill-color: var(--menu-brown-gray) !important;
    background: transparent !important;
    text-decoration: none !important;
}

.rsvp-header .home-link:hover,
.rsvp-header .home-link:focus {
    border-color: var(--rust) !important;
    background: var(--rust) !important;
    color: var(--cream) !important;
    -webkit-text-fill-color: var(--cream) !important;
}

/* RSVP content links rust, footer centered/no extra credit. */
main a:not(.button),
main a:not(.button):link,
main a:not(.button):visited {
    color: var(--rust) !important;
    -webkit-text-fill-color: var(--rust) !important;
    text-decoration: none !important;
}

main a:not(.button):hover,
main a:not(.button):focus {
    color: var(--rust-deep) !important;
    -webkit-text-fill-color: var(--rust-deep) !important;
}

/* Hero/group typography. */
.hero h1,
.rsvp-group-hero h1 {
    font-size: clamp(3.1rem, 7vw, 5.8rem) !important;
    line-height: .98 !important;
}

.group-name-list {
    display: grid;
    gap: 4px;
    margin: 18px auto 20px;
    font-family: var(--serif);
    font-size: clamp(1.65rem, 2.8vw, 2.45rem);
    line-height: 1.12;
}

.group-name-list span {
    display: block;
}

.guest-name {
    margin: 0 0 16px !important;
    font-family: var(--serif);
    font-size: clamp(1.7rem, 2.7vw, 2.3rem) !important;
    line-height: 1.1 !important;
}

.confirmation-hero h1 {
    font-size: clamp(2.8rem, 6vw, 5.1rem) !important;
    line-height: 1.02 !important;
}

.confirmation-group-name {
    margin-top: 18px !important;
    font-family: var(--serif);
    font-size: clamp(1.85rem, 3.5vw, 2.8rem) !important;
    line-height: 1.12 !important;
}

/* Buttons: complete rectangles and readable text. */
.button,
.button:link,
.button:visited,
main .button,
main .button:link,
main .button:visited {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 12px 22px !important;
    border: 1px solid var(--rust) !important;
    background: var(--rust) !important;
    color: var(--cream) !important;
    -webkit-text-fill-color: var(--cream) !important;
    text-decoration: none !important;
    opacity: 1 !important;
}

.button:hover,
.button:focus,
main .button:hover,
main .button:focus {
    border-color: var(--rust-deep) !important;
    background: var(--rust-deep) !important;
    color: var(--cream) !important;
    -webkit-text-fill-color: var(--cream) !important;
}

.button.secondary,
.button.secondary:link,
.button.secondary:visited,
main .button.secondary,
main .button.secondary:link,
main .button.secondary:visited {
    background: transparent !important;
    border-color: var(--rust) !important;
    color: var(--rust) !important;
    -webkit-text-fill-color: var(--rust) !important;
}

.button.secondary:hover,
.button.secondary:focus,
main .button.secondary:hover,
main .button.secondary:focus {
    background: rgba(184,100,63,.08) !important;
    border-color: var(--rust-deep) !important;
    color: var(--rust-deep) !important;
    -webkit-text-fill-color: var(--rust-deep) !important;
}

/* Shuttle checkbox. */
.shuttle-field {
    margin-top: 14px !important;
}

.checkbox-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .02em !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
}

.shuttle-checkbox {
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    margin: 2px 0 0 !important;
    flex: 0 0 20px !important;
    accent-color: var(--rust) !important;
    transform: none !important;
}

.shuttle-field small {
    display: block !important;
    margin-top: 8px !important;
    margin-left: 32px !important;
    color: #766861 !important;
}

/* RSVP footer: same footer across RSVP pages, centered, no made-with-love credit. */
.rsvp-footer {
    text-align: center !important;
    padding: 32px max(22px, calc((100vw - 1100px) / 2)) !important;
    background: linear-gradient(135deg, #9c5639 0%, #b8643f 55%, #c8754b 100%) !important;
    color: var(--cream) !important;
}

.rsvp-footer p {
    margin: 0 !important;
}

/* Mobile RSVP fixes. */
@media (max-width: 700px) {
    .rsvp-header {
        gap: 14px;
        padding-inline: 18px;
    }

    .rsvp-header-logo,
    .logo-brand img {
        width: 126px;
        max-height: 50px;
    }

    .rsvp-header .home-link {
        min-height: 40px;
        padding: 9px 12px;
        font-size: .68rem;
        letter-spacing: .08em;
    }

    .choices {
        gap: 12px !important;
    }

    .button-row {
        gap: 12px !important;
    }

    .button-row .button {
        width: 100% !important;
    }
  /* Keep RSVP footer at the bottom of short pages */
html,
body {
    min-height: 100%;
}

body {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
}

body > main {
    flex: 1 0 auto;
}

.rsvp-footer {
    flex-shrink: 0;
    margin-top: auto !important;
}
}

