/* The page stays covered; only the inner shell follows the keyboard viewport. */
html.ram-travel-active, body.ram-travel-active {
    height: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none;
    background-color: #f7f8f6;
}
body.ram-travel-active { position: fixed !important; inset: 0 !important; width: 100% !important; margin: 0 !important; }
/* Also excludes old Elementor fields from Safari's previous/next field controls. */
body.ram-travel-active > :not([data-ram-travel]) { display: none !important; }
.ram-travel-form {
    --travel-green: #315c48;
    --travel-ink: #243b30;
    --travel-muted: #52665b;
    --travel-line: #d9e3dd;
    --travel-error: #9a271f;
    --travel-frame-gap: 18px;
    position: fixed;
    z-index: 2147483000;
    inset: 0;
    display: flex;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: radial-gradient(circle at 84% 10%,rgba(196,165,106,.12),transparent 27%),linear-gradient(145deg,#eef3f0,#f7f8f6 46%,#f1eee7);
    color: var(--travel-ink);
    font: 400 16px/1.6 Poppins,Arial,sans-serif;
    text-align: left;
    -webkit-text-size-adjust: 100%;
}
.ram-travel-form, .ram-travel-form *, .ram-travel-form *::before, .ram-travel-form *::after { box-sizing: border-box; }
.ram-travel-form [hidden] { display: none !important; }
.ram-travel-shell {
    position: absolute;
    top: calc(var(--travel-viewport-top, 0px) + var(--travel-frame-gap));
    left: calc(var(--travel-viewport-left, 0px) + var(--travel-frame-gap));
    width: calc(var(--travel-viewport-width, 100%) - 2 * var(--travel-frame-gap));
    height: calc(var(--travel-viewport-height, 100%) - 2 * var(--travel-frame-gap));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
    background: radial-gradient(circle at top right,rgba(196,165,106,.11),transparent 34%),linear-gradient(#fff,#fbfcfb);
    border: 1px solid rgba(36,70,56,.07);
    border-radius: 28px;
    box-shadow: 0 24px 70px rgba(35,63,50,.09),0 4px 14px rgba(35,63,50,.04);
}
.ram-travel-topbar {
    position: sticky;
    z-index: 3;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 28px;
    background: #fff;
    border-bottom: 1px solid #e6ece7;
}
.ram-travel-brand { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; line-height: 1.4; }
.ram-travel-brand__icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex: 0 0 36px; background: #edf3ed; color: var(--travel-green); border-radius: 50%; font-size: 24px; }
.ram-travel-content { width: 100%; max-width: 840px; min-height: calc(100% - 90px); margin: 0 auto; padding: 20px 36px 0; }
.ram-travel-progress { margin-bottom: 28px; }
.ram-travel-progress ol { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; list-style: none; margin: 0; padding: 0; }
.ram-travel-progress li { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 0 0 12px; border-bottom: 3px solid #e5ebe7; color: #63766a; font-size: 13px; line-height: 1.4; }
.ram-travel-progress li[aria-current] { border-color: var(--travel-green); color: #153a2f; font-weight: 600; }
.ram-travel-progress li.is-done { border-color: #8aa997; }
.ram-travel-progress__dot { display: flex; align-items: center; justify-content: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; border: 1px solid #c7d7cc; background: #fff; font-size: 13px; }
.ram-travel-progress [aria-current] .ram-travel-progress__dot, .ram-travel-progress .is-done .ram-travel-progress__dot { background: var(--travel-green); color: #fff; border-color: var(--travel-green); }
.ram-travel-fields { margin: 0; padding: 0; }
.ram-travel-step-heading { margin: 0 0 22px; scroll-margin-top: 100px; }
.ram-travel-step-heading:focus { outline: 0; }
.ram-travel-eyebrow { margin: 0 0 5px; color: var(--travel-green); font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.ram-travel-form h1 { margin: 0 0 8px; padding: 0; color: #153a2f; font: 600 clamp(26px,3vw,36px)/1.25 Poppins,Arial,sans-serif; }
.ram-travel-step-heading > p:last-child { margin: 0; color: var(--travel-muted); }
.ram-travel-form h2 { margin: 0 0 8px; color: #244638; font: 600 19px/1.4 Poppins,Arial,sans-serif; }
.ram-travel-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.ram-travel-form label { display: flex; flex-direction: column; min-width: 0; gap: 7px; margin: 0 0 20px; color: var(--travel-ink); font-size: 15px; font-weight: 500; line-height: 1.5; }
.ram-travel-form :is(input,select,textarea,button) { font-family: inherit; letter-spacing: normal; text-transform: none; }
.ram-travel-form :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) {
    appearance: none;
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 54px;
    height: auto;
    margin: 0;
    padding: 13px 15px;
    border: 1px solid #c6d5ca;
    border-radius: 12px;
    outline-offset: 3px;
    background: #fff;
    color: #243b30 !important;
    -webkit-text-fill-color: #243b30 !important;
    opacity: 1;
    box-shadow: 0 2px 4px rgba(35,63,50,.025);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
}
.ram-travel-form select { padding-right: 35px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23315c48' d='m1 1 5 5 5-5' stroke='%23315c48' fill='none' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.ram-travel-form textarea { resize: vertical; }
.ram-travel-form input::placeholder, .ram-travel-form textarea::placeholder { color: #65766b; opacity: 1; }
.ram-travel-form input[type=date]::-webkit-date-and-time-value { min-height: 1.5em; text-align: left; }
.ram-travel-form input[type=checkbox] { appearance: auto; width: 24px; height: 24px; flex: 0 0 24px; margin: 2px 0 0; accent-color: var(--travel-green); }
.ram-travel-form :is(input,select,textarea,button,a):focus-visible { outline: 3px solid var(--travel-green); outline-offset: 3px; }
.ram-travel-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 18px; }
.ram-travel-explainer { margin: 0 0 22px; padding: 14px 16px; border-inline-start: 3px solid #c4a56a; border-radius: 0 8px 8px 0; background: #fbf6ec; color: #52624f; font-size: 14px; }
.ram-travel-help { display: block; margin: 0 0 18px; color: var(--travel-muted); font-size: 14px; font-weight: 400; line-height: 1.6; }
label .ram-travel-help { margin: 0; font-size: 13px; }
.ram-travel-flight { margin-top: 4px; padding-top: 22px; border-top: 1px solid var(--travel-line); }
.ram-travel-form label.ram-travel-confirm { display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: start; gap: 12px; margin-top: 6px; padding: 16px; border: 1px solid var(--travel-line); border-radius: 12px; background: #f2f7f3; font-size: 14px; }
.ram-travel-confirm .ram-travel-field-error { grid-column: 1 / -1; }
.ram-travel-summary { margin: 0 0 24px; padding: 20px; border: 1px solid #d6e0d8; border-radius: 14px; background: #f2f7f3; }
.ram-travel-summary > div { padding: 14px 0; }
.ram-travel-summary > div + div { border-top: 1px solid #d5dfd7; }
.ram-travel-summary p { margin: 2px 0; font-size: 14px; overflow-wrap: anywhere; }
.ram-travel-form .ram-travel-edit { min-height: 44px; margin: 4px 0 0; padding: 8px 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; color: #244638; font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.ram-travel-privacy { display: inline-flex; align-items: center; min-height: 44px; color: var(--travel-green); text-decoration: underline; text-underline-offset: 3px; font-size: 14px; }
.ram-travel-actions { position: sticky; z-index: 2; bottom: 0; display: flex; align-items: stretch; justify-content: space-between; gap: 14px; margin: 22px -4px 0; padding: 18px 4px max(18px,env(safe-area-inset-bottom)); background: #fbfcfb; border-top: 1px solid var(--travel-line); }
.ram-travel-actions button { appearance: none; min-width: 0; min-height: 54px; margin: 0; padding: 14px 22px; border: 0; border-radius: 14px; background: var(--travel-green) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: none; font-size: 16px; font-weight: 500; line-height: 1.5; text-align: center; white-space: normal; cursor: pointer; }
.ram-travel-actions button:is(:hover,:focus) { background: #244638 !important; color: #fff !important; }
.ram-travel-actions .ram-travel-back { flex: 0 0 auto; padding: 14px 6px; background: transparent !important; color: #315c48 !important; -webkit-text-fill-color: #315c48 !important; text-decoration: underline; text-underline-offset: 4px; }
.ram-travel-actions .ram-travel-back:is(:hover,:focus) { background: transparent !important; color: #153a2f !important; -webkit-text-fill-color: #153a2f !important; }
.ram-travel-next, .ram-travel-submit { flex: 1 1 auto; }
.ram-travel-actions button:disabled { opacity: .65; cursor: wait; }
.ram-travel-form :is(input,select,textarea)[aria-invalid=true] { border: 2px solid #b13d32 !important; background: #fff7f5 !important; }
.ram-travel-field-error { display: block; width: 100%; color: var(--travel-error) !important; -webkit-text-fill-color: var(--travel-error) !important; font-size: 14px; font-weight: 500; line-height: 1.5; }
.ram-travel-message { margin: 14px 0; color: var(--travel-green); }
.ram-travel-message:empty { display: none; }
.ram-travel-success { max-width: 650px; margin: 40px auto; padding: 30px; border: 1px solid #c5d9cb; border-radius: 18px; background: #f0f7f1; outline: 0; text-align: center; }
.ram-travel-success__icon { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin: 0 auto 20px; border-radius: 50%; background: var(--travel-green); color: #fff; font-size: 30px; }
.ram-travel-success h1 { font-size: 28px; }
.ram-travel-success p { color: var(--travel-muted); }
.ram-travel-sr, .ram-travel-trap { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 680px) {
    .ram-travel-form { --travel-frame-gap: 0px; }
    .ram-travel-shell { border: 0; border-radius: 0; scrollbar-gutter: auto; }
    .ram-travel-topbar { gap: 10px; padding: max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left)); }
    .ram-travel-brand { max-width: 180px; gap: 7px; font-size: 14px; }
    .ram-travel-brand__icon { display: none; }
    .ram-travel-content { padding: 18px max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left)); }
    .ram-travel-progress { margin-bottom: 22px; }
    .ram-travel-progress li { flex-direction: column; align-items: flex-start; gap: 7px; font-size: 12px; }
    .ram-travel-progress__dot { flex-basis: 26px; width: 26px; height: 26px; }
    .ram-travel-grid { grid-template-columns: minmax(0,1fr); }
    .ram-travel-step-heading > p:last-child { font-size: 15px; }
    .ram-travel-actions { gap: 12px; padding-top: 14px; }
    .ram-travel-actions button { padding: 13px 14px; font-size: 15px; }
    .ram-travel-summary { padding: 16px; }
    .ram-travel-success { padding: 24px 18px; margin-top: 28px; }
}
/* A landscape keyboard can leave less room than header, field and footer combined. */
.ram-travel-compact { --travel-frame-gap: 0px; }
.ram-travel-compact .ram-travel-topbar { position: relative; }
@media (prefers-reduced-motion: no-preference) {
    .ram-travel-form fieldset:not([hidden]) { animation: ramTravelStepIn .25s ease-out; }
    @keyframes ramTravelStepIn { from { opacity: .2; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}
@media (forced-colors: active) { .ram-travel-form select { appearance: auto; background-image: none; } }
.ram-travel-request-error { margin: 0 0 18px; padding: 12px 14px; border-inline-start: 3px solid #b13d32; background: #fff1ef; color: #8d251e !important; -webkit-text-fill-color: #8d251e !important; font-size: 14px; line-height: 1.55; }
.ram-travel-phone-field { min-width: 0; margin-bottom: 20px; }
.ram-travel-phone-field > label { margin-bottom: 7px; }
.ram-travel-phone { display: grid; grid-template-columns: minmax(120px,1fr) minmax(0,1.25fr); gap: 10px; }
.ram-travel-phone-field .ram-travel-help { margin: 7px 0 0; font-size: 13px; }
@media(max-width:680px) { .ram-travel-phone { grid-template-columns: minmax(0,1fr); } }

/* Every pictogram accompanies a readable written label. No icon font or request. */
.ram-travel-form .ram-travel-icon { display:inline-block; width:22px; height:22px; flex:0 0 22px; color:var(--travel-green); vertical-align:middle; }
.ram-travel-form .ram-travel-label { display:flex; align-items:center; gap:9px; }
.ram-travel-form h1 { display:flex; align-items:center; gap:12px; }
.ram-travel-form h2 { display:flex; align-items:center; gap:10px; }
.ram-travel-form .ram-travel-step-symbol { display:flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; border-radius:14px; background:#edf3ed; }
.ram-travel-form .ram-travel-step-symbol .ram-travel-icon { width:28px; height:28px; }
