:root {
    color-scheme: light;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #111719;
    background: #f5f7f6;
    font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #f5f7f6; }
button, input { font: inherit; }
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.skip-link {
    position: fixed;
    z-index: 1000;
    top: .75rem;
    left: .75rem;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    padding: 0 1rem;
    border-radius: 5px;
    color: #fff;
    background: #111719;
    font-weight: 850;
    text-decoration: none;
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(-100% - 1.5rem));
}
.skip-link:focus {
    outline: 3px solid #f52219;
    outline-offset: 2px;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
[id="main-content"]:focus { outline: none; }
:where(a[href], button, input, summary):focus-visible {
    outline: 3px solid #111719;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px #fff;
}
.brand {
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    color: #111719;
    font-size: 2rem;
    font-weight: 900;
    text-decoration: none;
}
.brand span {
    width: .55rem;
    height: .55rem;
    margin: 0 0 .65rem .2rem;
    border-radius: 50%;
    background: #f52219;
}
.network-status {
    position: fixed;
    z-index: 90;
    right: 1rem;
    bottom: 4.75rem;
    width: min(28rem, calc(100vw - 2rem));
    margin: 0;
    padding: .8rem 1rem;
    border: 1px solid #d8dfdd;
    border-left: 4px solid #f52219;
    background: #fff;
    color: #101619;
    box-shadow: 0 12px 30px rgb(16 22 25 / 14%);
    font-size: .88rem;
    font-weight: 750;
    line-height: 1.4;
}
.network-status[data-state="recovered"] { border-left-color: #087d75; }
.network-status[hidden] { display: none; }
.eyebrow {
    margin: 0 0 .55rem;
    color: #b5201d;
    font-size: .8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.public-page { min-height: 100vh; background: #f5f7f6; }
.public-header {
    min-height: 4.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: .75rem max(1.25rem, calc((100% - 74rem) / 2));
    border-bottom: 1px solid #dce2e0;
    background: #fff;
}
.public-nav { display: flex; align-items: center; gap: 1.5rem; }
.public-nav a { color: #334044; font-size: .9rem; font-weight: 750; text-decoration: none; }
.public-nav .public-account {
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    padding: 0 1rem;
    border-radius: 5px;
    color: #fff;
    background: #111719;
}
.recipe-banner { margin: 0; padding: .5rem 1.25rem; color: #35585a; background: #e9f4f2; font-size: .78rem; text-align: center; }
.public-page main { background: #fff; }
.public-hero { position: relative; height: min(34rem, calc(100svh - 7rem)); min-height: 27rem; overflow: hidden; background: #111719; }
.public-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.public-hero-shade { position: absolute; inset: 0; background: rgba(10, 16, 17, .56); }
.public-hero-content {
    position: relative;
    z-index: 1;
    width: min(calc(100% - 2.5rem), 74rem);
    height: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    color: #fff;
}
.public-hero-content .eyebrow { color: #fff; }
.public-hero h1 { max-width: 12ch; margin: 0; font-size: 4rem; line-height: 1; letter-spacing: 0; }
.public-hero-content > p:last-of-type { max-width: 38rem; margin: 1.15rem 0 1.5rem; font-size: 1.05rem; line-height: 1.55; }
.public-primary {
    min-height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.2rem;
    border-radius: 5px;
    color: #fff;
    background: #e51f17;
    font-weight: 850;
    text-decoration: none;
}
.public-hero-status { max-width: 38rem; margin: 0; padding-left: .85rem; border-left: 3px solid #e51f17; color: #fff; font-weight: 850; line-height: 1.4; }
.public-hero-next { margin-top: .55rem; color: rgba(255, 255, 255, .86); font-size: .78rem; }
.public-availability { width: min(calc(100% - 2.5rem), 74rem); margin: 0 auto; padding: 2.25rem 0; border-bottom: 1px solid #dce2e0; scroll-margin-top: 1rem; }
.public-availability > header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1rem; }
.public-availability h2 { margin: 0; font-size: 1.4rem; }
.public-availability p:not(.eyebrow) { margin: .35rem 0 0; color: #53615e; }
.public-availability small { display: block; margin-top: .35rem; color: #087d75; }
.public-availability-list { margin: 0; padding: 0; border-top: 1px solid #dce2e0; list-style: none; }
.public-availability-list li { min-height: 4.5rem; display: grid; grid-template-columns: 7rem minmax(0, 1fr) auto; align-items: center; gap: 1.25rem; padding: .75rem 0; border-bottom: 1px solid #dce2e0; }
.public-availability-list time, .public-availability-list li > div { min-width: 0; display: grid; gap: .1rem; }
.public-availability-list time span, .public-availability-list li > div span { color: #667174; font-size: .82rem; }
.public-text-link { min-height: 2.75rem; display: inline-flex; align-items: center; flex: 0 0 auto; color: #087d75; font-weight: 850; }
.public-process { width: min(calc(100% - 2.5rem), 74rem); margin: 0 auto; padding: 4rem 0; }
.public-section-heading { margin-bottom: 2rem; }
.public-section-heading h2 { margin: 0; font-size: 2rem; letter-spacing: 0; }
.public-process ol, .public-offers ul { margin: 0; padding: 0; border-top: 1px solid #dce2e0; list-style: none; }
.public-process li { min-height: 5rem; display: grid; grid-template-columns: 3rem 1fr; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #dce2e0; }
.public-process li > span { color: #b5201d; font-size: .78rem; font-weight: 900; }
.public-process strong, .public-offers strong { display: block; }
.public-process li p { margin: .25rem 0 0; color: #667174; }
.public-faq { width: min(calc(100% - 2.5rem), 74rem); margin: 0 auto; padding: 4rem 0; border-top: 1px solid #dce2e0; scroll-margin-top: 1rem; }
.public-faq dl { margin: 0; border-top: 1px solid #dce2e0; }
.public-faq dl > div { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(20rem, 1.2fr); gap: 3rem; padding: 1.35rem 0; border-bottom: 1px solid #dce2e0; }
.public-faq dt { font-weight: 850; line-height: 1.4; }
.public-faq dd { margin: 0; color: #53615e; line-height: 1.55; }
.public-offers { padding: 4rem max(1.25rem, calc((100% - 74rem) / 2)); background: #f5f7f6; }
.public-offers li { min-height: 4.75rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid #d2dad8; }
.public-offers small { display: block; margin-top: .2rem; color: #667174; }
.public-offers li > span { flex: 0 0 auto; font-weight: 900; }
.public-offers > .public-primary { margin-top: 1.5rem; }
.public-footer { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem max(1.25rem, calc((100% - 74rem) / 2)); color: #fff; background: #111719; }
.public-footer span { font-weight: 900; }
.public-footer nav { display: flex; align-items: center; gap: 1.25rem; }
.public-footer a { min-height: 2.75rem; display: inline-flex; align-items: center; color: #fff; }

.rdv-help-heading, .rdv-help-states, .rdv-help-answers { width: min(calc(100% - 2.5rem), 74rem); margin: 0 auto; }
.rdv-help-heading { padding: 5rem 0 4rem; border-bottom: 1px solid #dce2e0; }
.rdv-help-heading h1 { max-width: 16ch; margin: 0; font-size: 3.5rem; line-height: 1.05; letter-spacing: 0; }
.rdv-help-heading > p:not(.eyebrow) { max-width: 43rem; margin: 1rem 0 0; color: #53615e; font-size: 1.05rem; line-height: 1.6; }
.rdv-help-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.25rem; margin-top: 1.5rem; }
.rdv-help-reservation-status { margin: 0; color: #52605f; font-weight: 800; line-height: 1.4; }
.rdv-help-agent { width: min(calc(100% - 2.5rem), 74rem); display: grid; grid-template-columns: minmax(0, .75fr) minmax(22rem, 1.25fr); gap: 2rem 4rem; margin: 0 auto; padding: 3rem 0; border-bottom: 1px solid #dce2e0; }
.rdv-help-agent h2 { margin: 0; font-size: 2rem; letter-spacing: 0; }
.rdv-help-agent > div:first-child > p:not(.eyebrow) { max-width: 31rem; margin: .7rem 0 0; color: #53615e; line-height: 1.55; }
.rdv-help-agent-input label { display: block; margin-bottom: .5rem; font-weight: 850; }
.rdv-help-agent-input > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.rdv-help-agent-input input { min-width: 0; min-height: 3.25rem; padding: 0 .9rem; border: 1px solid #aebbb7; border-right: 0; border-radius: 5px 0 0 5px; color: #111719; background: #fff; }
.rdv-help-agent-input button { min-height: 3.25rem; padding: 0 1.2rem; border: 0; border-radius: 0 5px 5px 0; color: #fff; background: #111719; font-weight: 850; cursor: pointer; }
.rdv-help-agent-input input:focus-visible, .rdv-help-agent-input button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(8, 125, 117, .35); outline-offset: 1px; }
.rdv-help-agent-result { grid-column: 1 / -1; padding-top: 1.25rem; border-top: 2px solid #087d75; }
.rdv-help-agent-result[hidden] { display: none; }
.rdv-help-agent-transcript { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.rdv-help-agent-exchange { display: grid; gap: .65rem; }
.rdv-help-agent-turn { max-width: min(100%, 52rem); }
.rdv-help-agent-turn.is-user { justify-self: end; max-width: min(100%, 38rem); padding: .7rem .9rem; border-radius: 5px; background: #f0f3f2; }
.rdv-help-agent-turn.is-assistant { padding-left: .9rem; border-left: 3px solid #087d75; }
.rdv-help-agent-author { display: block; margin-bottom: .2rem; color: #087d75; font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.rdv-help-agent-turn.is-user .rdv-help-agent-author { color: #53615e; }
.rdv-help-agent-result strong { display: block; font-size: 1.1rem; }
.rdv-help-agent-result p { margin: .3rem 0 0; color: #53615e; line-height: 1.6; }
.rdv-help-agent-result a { min-height: 2.75rem; display: inline-flex; align-items: center; color: #087d75; font-weight: 850; }
.rdv-help-states, .rdv-help-answers { padding: 4rem 0; scroll-margin-top: 1rem; }
.rdv-help-states ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid #dce2e0; list-style: none; }
.rdv-help-states li { min-width: 0; padding: 1.25rem 1rem 1.25rem 0; border-bottom: 1px solid #dce2e0; }
.rdv-help-states li + li { padding-left: 1rem; border-left: 1px solid #dce2e0; }
.rdv-help-states li > span { display: block; margin-bottom: .75rem; color: #b5201d; font-size: .78rem; font-weight: 900; }
.rdv-help-states strong { display: block; line-height: 1.35; }
.rdv-help-states li p { margin: .45rem 0 0; color: #667174; font-size: .9rem; line-height: 1.55; }
.rdv-help-answers { border-top: 1px solid #dce2e0; }
.rdv-help-answers dl { margin: 0; border-top: 1px solid #dce2e0; }
.rdv-help-answers dl > div { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(20rem, 1.2fr); gap: 3rem; padding: 1.35rem 0; border-bottom: 1px solid #dce2e0; }
.rdv-help-answers dt { font-weight: 850; line-height: 1.4; }
.rdv-help-answers dd { margin: 0; color: #53615e; line-height: 1.6; }
.rdv-help-sources { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .8fr); gap: 4rem; padding: 4rem max(1.25rem, calc((100% - 74rem) / 2)); background: #eef3f1; scroll-margin-top: 1rem; }
.rdv-help-sources h2 { margin: 0; font-size: 2rem; letter-spacing: 0; }
.rdv-help-sources p:not(.eyebrow) { max-width: 38rem; margin: .85rem 0 0; color: #53615e; line-height: 1.6; }
.rdv-help-sources ul { margin: 0; padding: 0; border-top: 1px solid #cbd6d2; list-style: none; }
.rdv-help-sources li { border-bottom: 1px solid #cbd6d2; }
.rdv-help-sources a { min-height: 3.25rem; display: flex; align-items: center; color: #08756e; font-weight: 850; }

@media (max-width: 760px) {
    main a[href] { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; }
    .public-header { min-height: 4.25rem; gap: 1rem; }
    .public-header .brand { font-size: 1.75rem; }
    .public-nav { gap: .75rem; }
    .public-nav > a:not(.public-account) { display: none; }
    .public-nav .public-account { min-height: 2.75rem; }
    .public-hero { height: min(31rem, calc(100svh - 10.5rem)); min-height: 0; }
    .public-hero > img { object-position: 88% center; }
    .public-hero h1 { font-size: 2.65rem; }
    .public-hero-content > p:last-of-type { font-size: .98rem; }
    .public-availability > header { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .public-availability-list li { grid-template-columns: 6rem minmax(0, 1fr); gap: .75rem; }
    .public-availability-list .public-text-link { grid-column: 2; justify-self: start; }
    .public-process, .public-faq, .public-offers { padding-top: 3rem; padding-bottom: 3rem; }
    .public-faq dl > div { grid-template-columns: 1fr; gap: .45rem; padding: 1.1rem 0; }
    .rdv-help-heading { padding: 3.5rem 0 3rem; }
    .rdv-help-heading h1 { font-size: 2.5rem; }
    .rdv-help-actions { align-items: stretch; flex-direction: column; }
    .rdv-help-actions .public-primary, .rdv-help-actions .public-text-link { width: 100%; }
    .rdv-help-agent { grid-template-columns: 1fr; gap: 1.5rem; padding: 2.5rem 0; }
    .rdv-help-agent-input > div { grid-template-columns: 1fr; gap: .5rem; }
    .rdv-help-agent-input input, .rdv-help-agent-input button { min-height: 3rem; border: 1px solid #aebbb7; border-radius: 5px; }
    .rdv-help-agent-input button { border-color: #111719; }
    .rdv-help-states, .rdv-help-answers { padding: 3rem 0; }
    .rdv-help-states ol { grid-template-columns: 1fr; }
    .rdv-help-states li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem; padding: 1rem 0; border-left: 0; }
    .rdv-help-states li + li { padding-left: 0; border-left: 0; }
    .rdv-help-states li > span { margin: .15rem 0 0; }
    .rdv-help-answers dl > div { grid-template-columns: 1fr; gap: .45rem; padding: 1.1rem 0; }
    .rdv-help-sources { grid-template-columns: 1fr; gap: 2rem; padding-top: 3rem; padding-bottom: 3rem; }
    .public-footer { align-items: flex-start; flex-direction: column; }
    .public-footer nav { width: 100%; align-items: flex-start; flex-direction: column; gap: 0; }
}
