/* =============================================================================
   BOOKING FORM -- EDITORIAL LOOK (04-Sep-2026)

   The trip booking form in the house palette and type: the Travel Booklet /
   CC-sheet system, matching the "destination legs" variant of ccsheet-lab.html --
   a white card per section under a navy header band with a gold rule, Cormorant
   Garamond for the section titles, Mulish for everything a guest reads.

   Loaded once by bookingform.template.php together with bookingform.autosave.js.
   It restyles the legacy markup where it stands: each section is already
   "title div + .bookinfo_text div", so the title becomes the card's header and
   .bookinfo_text becomes its body. The option cards that replace the bare radio
   buttons and the "Saved" badge live here too.

   TWO THINGS THE SITE DOES THAT THESE RULES HAVE TO BEAT, hence the !important
   and the id in the selectors:
     - .bookinfo_section p / span are painted white with !important, which was
       right on the old navy form and is wrong inside a white card;
     - under 768px a long :not() chain forces 17px on p, span, td, a, li and more.
   Rules are keyed to `#book .bookinfo_text`, never to `.bookinfo_section`: the
   legacy markup pops that div off the parser stack early, so most sections are
   NOT inside it in the real page.

   The tokens are prefixed --ej- so they can live on :root without colliding with
   anything the surrounding page defines.
   ============================================================================ */

:root{
	--ej-navy:#001628; --ej-navy2:#0A2440; --ej-gold:#DBB166; --ej-deepgold:#8A6B28;
	--ej-ink:#1C2430; --ej-paper:#F7F3EC; --ej-hair:#EDE6DA; --ej-muted:#6B635A;
	--ej-white:#fff; --ej-ivory:#FBF9F4;
	--ej-ok:#1E7A4C; --ej-okbg:#E8F5ED; --ej-alert:#A32B2B; --ej-alertbg:#FBECEC;
	--ej-warnbg:#FCF3E2;
	--ej-shadow:0 1px 3px rgba(0,22,40,.07), 0 8px 24px rgba(0,22,40,.05);
	--ej-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
	--ej-sans:'Mulish',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

/* ========================================================= the page ground === */
/* Paper, and only here. This stylesheet is linked by exactly one file,
   bookingform.template.php, and newtemplatewebquotejohn.php includes that file
   only for the booking form and its payment relatives ($s = book, bookdp, thanks,
   thanksdp, payment, thankspaypal, bookflightpayment, makepayment). The webquote
   summary, the tour pages and the hotel pages never load this stylesheet, so the
   colour cannot reach them. */
body{background:var(--ej-paper)!important;}

/* SCROLL LOCK BEHIND AN OPEN DIALOG.
   Every Add / Change dialog locks the page with document.body.style.overflow="hidden"
   and releases it with "auto". That has never worked: css/webquote-css-minified.css
   sets html{overflow-x:hidden}, which makes <html> the scrolling element, so locking
   <body> does nothing and the page scrolls away behind the open dialog. Carry the lock
   up to <html>, keyed on the very inline style the legacy handlers already toggle, so
   it releases by itself when a dialog closes and needs no change to their code.
   scrollbar-gutter keeps the page from jumping sideways as the bar disappears. */
html{scrollbar-gutter:stable;}
html:has(> body[style*="overflow: hidden"]),
html:has(> body[style*="overflow:hidden"]){overflow:hidden!important;}

/* READABILITY OUTSIDE THE CARDS.
   css/webquote-css-minified.css sets body{color:#fff} for the old navy page, and the
   parser trap pops .bookinfo_section off the stack so that file's own colour rules
   never match anything. On the paper ground that left every paragraph BETWEEN the
   cards invisible: the VAT and passport notes under Travelers, the bed-size note
   under Rooms, and anything else a template drops between sections. Give #book a
   readable default and let it inherit; every card rule below is more specific and
   still wins. */
#book{color:var(--ej-ink);font-family:var(--ej-sans);}
#book p,#book h5,#book h6,#book b,#book strong,#book i,#book u,#book font,
#book span,#book li,#book label,#book td,#book th,#book div{
	color:inherit;font-family:inherit;
}
/* The site paints links cyan through a long :not() chain carrying !important, which
   is unreadable on paper. Out-rank it the same way it out-ranks everything else. */
#book a:not(#ej-x):not(#ej-y){
	color:var(--ej-deepgold)!important;
	text-decoration:underline!important;text-decoration-thickness:1px;text-underline-offset:2px;
}
#book a:not(#ej-x):not(#ej-y):hover{color:var(--ej-navy)!important;}

/* ===================================================== the section card ===== */
/* the legacy <br> between a section title and its body would split the card */
#book .bookingformtitle + br{display:none;}

#book .bookingformtitle{
	font-family:var(--ej-serif)!important;font-style:normal;font-weight:600;
	font-size:28px!important;line-height:1.15;letter-spacing:.2px;
	text-transform:none!important;text-decoration:none!important;
	color:#fff!important;background:var(--ej-navy2);
	border:1px solid var(--ej-navy2);border-bottom:0;border-radius:6px 6px 0 0;
	padding:16px 22px 14px;margin:30px 0 0;position:relative;
}
/* the editorial rule under every section title */
#book .bookingformtitle::after{
	content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ej-gold);
}
#book .bookinfo_text{
	background:var(--ej-white);color:var(--ej-ink);
	font-family:var(--ej-sans);font-size:16px;line-height:1.6;
	border:1px solid var(--ej-hair);border-top:0;border-radius:0 0 6px 6px;
	padding:20px 22px 22px;box-shadow:var(--ej-shadow);margin:0;
}
/* the Logout line borrows the .bookinfo_text class: it is a line, not a card */
#book p.bookinfo_text{
	background:none!important;border:0!important;box-shadow:none!important;
	padding:0!important;color:var(--ej-muted)!important;
}
#book p.bookinfo_text span{color:var(--ej-muted)!important;}
#book p.bookinfo_text a{color:var(--ej-deepgold)!important;}

/* ==================================================== what a guest reads ==== */
#book .bookinfo_text p,
#book .bookinfo_text span,
#book .bookinfo_text li,
#book .bookinfo_text td,
#book .bookinfo_text th,
#book .bookinfo_text b,
#book .bookinfo_text i,
#book .bookinfo_text u,
#book .bookinfo_text font,
#book .bookinfo_text label,
#book .bookinfo_text div{
	font-family:var(--ej-sans)!important;font-size:16px!important;color:inherit!important;
}
#book .bookinfo_text p{margin:0 0 12px!important;line-height:1.6!important;text-align:left!important;}
/* A legacy <br> at the very start of a paragraph was how the old form made the gap
   above it. The card's own padding is that gap now, so the stray break only leaves
   an empty first line above the text. */
#book .bookinfo_text p > br:first-child{display:none;}
#book .bookinfo_text p:last-child{margin-bottom:0!important;}
#book .bookinfo_text b,
#book .bookinfo_text strong{font-weight:700;color:var(--ej-navy)!important;}
#book .bookinfo_text a{color:var(--ej-deepgold)!important;text-decoration:underline;text-underline-offset:2px;font-size:inherit!important;}
#book .bookinfo_text a:hover{color:var(--ej-navy)!important;}
/* A TYPING BOX ENDS WHERE THE BOX ENDS.
   A textarea is inline by default, so the line it sits on adds a descender's
   worth of space underneath it -- 14px here -- and its own 6px margin sat on top
   of that and of the card's 22px. Once the comments box became the last thing in
   the Additional Information card, all three showed up as one wide empty band.
   The card's padding is the only space below it now. The card-number field keeps
   its inline behaviour: it is meant to sit in the middle of a sentence. */
#book .bookinfo_text textarea:not(#ccnumber){display:block;margin-bottom:0!important;}

/* THE AVAILABILITY NOTE.
   It is an <h5>, which the site sizes as a heading, so a one-line footnote came
   out bigger than the paragraphs it follows. It is a note, not a heading: body
   size, bold, and a thin deep-gold rule down its left edge to mark it. */
#book > h5,
#book form > h5,
#book .bookinfo_section > form > h5,
#book .bookinfo_section > h5{
	font-family:var(--ej-sans)!important;font-size:16px!important;font-weight:700!important;
	color:var(--ej-ink)!important;line-height:1.55!important;letter-spacing:0!important;
	margin:16px 0 20px!important;padding:3px 0 3px 14px!important;
	border-left:3px solid var(--ej-deepgold)!important;
}

/* the copy above the sections sits straight on the paper ground */
#book form > p,#book form > h5,#book .bookinfo_section > p{
	font-family:var(--ej-sans)!important;font-size:16px!important;color:var(--ej-ink)!important;line-height:1.6!important;
}
#book form > p b,#book form > h5 b{color:var(--ej-navy)!important;}
#book form > p a,#book .bookinfo_section > p a{color:var(--ej-deepgold)!important;}
/* the site paints loose spans white for the old navy page: on paper they vanish */
#book form > p span,#book form > h5 span,#book .bookinfo_section > p span{color:inherit!important;}

/* the notes the templates coloured inline: readable again on a white card */
#book .bookinfo_text [style*="90EE90"],
#book .bookinfo_text [style*="90ee90"],
#book .bookinfo_text [style*="lightgreen"],
#book .bookinfo_text [style*="darkgreen"]{color:var(--ej-ok)!important;}
#book .bookinfo_text p[style*="color: red"],
#book .bookinfo_text p[style*="color:red"]{
	color:var(--ej-alert)!important;background:var(--ej-alertbg);
	border-left:3px solid var(--ej-alert);padding:10px 14px;border-radius:0 4px 4px 0;margin:10px 0!important;
}
/* THE VAT NOTE IS RED, NOT PINK.
   It sits outside a card, so when the page behind it was navy this had to be a
   pale tint to be legible. On paper that same tint is barely there. It is the
   same warning as the ones inside the cards, so it is the same red. */
#book p[style*="color: red"],
#book p[style*="color:red"],
#book font[color="red"],
#book [style*="color: #FF0000"],#book [style*="color:#FF0000"],
#book [style*="color: #ff0000"],#book [style*="color:#ff0000"]{color:var(--ej-alert)!important;}

/* ============================= every booking-form page, not just the form == */
/* THE PAGES AROUND THE FORM READ ON PAPER TOO.
   Sign-in, set-a-password, forgot-password, thanks and the payment pages are all
   rendered through bookingform.template.php, so they get this stylesheet and this
   background -- but the colours here were written for #book, which is the form
   itself. Everything else kept the site's body{color:#fff} and went invisible the
   moment the page turned pale. This file is only ever loaded on those pages, so it
   can safely say what the page's own text colour is. */
body{color:var(--ej-ink)!important;}

/* THE ONE WHITE THAT SURVIVED.
   webquote-css-minified.css says `.bookinfo_section p{color:white!important}` and
   the same for span -- written for the navy page. On the booking form itself the
   markup pops .bookinfo_section off the parser stack early, so it reaches almost
   nothing and the damage was invisible; on the payment pages the wrapper survives
   and it painted the whole trip-payment statement white on paper. Same colour as
   the rest of the prose, stated with enough weight to beat it. Anything meant to
   be white on a dark panel -- the card titles, the grid headers -- sets its own
   colour and is untouched. */
.bookinfo_section p,
.bookinfo_section span,
.bookinfo_section li,
.bookinfo_section td,
.bookinfo_section h4,
.bookinfo_section h5,
.bookinfo_section h6{color:var(--ej-ink)!important;}
/* the payment statement and anything else a payment template prints */
.paymentsection,
.paymentsection p,
.paymentsection b,
.paymentsection span,
.paymentsection td,
.paymentsection li,
.paymentsection h4,
.paymentsection h5{color:var(--ej-ink)!important;}
.paymentsection a{color:var(--ej-deepgold)!important;text-decoration:underline!important;}

/* the sign-in / set-password panel */
.bookingintro,
.bookingintro p,
.bookingintro b,
.bookingintro strong,
.bookingintro div:not(.inputfield),
.bookingintro h1,.bookingintro h2,.bookingintro h3,.bookingintro h4,.bookingintro h5,.bookingintro h6,
.bookingintro span,.bookingintro td,.bookingintro li,.bookingintro font{
	color:var(--ej-ink)!important;
	font-family:var(--ej-sans)!important;
}
.bookingintro a,
.bookingintro .forget a{
	color:var(--ej-deepgold)!important;
	text-decoration:underline!important;text-underline-offset:2px;
}

/* THE PAGE TITLE.
   .allheaders-gold paints #dbb166 and .allheaders-silver paints a pale gradient
   through -webkit-text-fill-color -- both were chosen to sit on the old navy page
   and neither has the contrast for paper. Booking-form pages use the deep gold the
   rest of this design uses for a heading on a pale ground; the gradient has to be
   cleared as well, or it goes on painting the letters. */
.allheaders-gold,
.allheaders-silver,
#book .allheaders-gold,
#book .allheaders-silver{
	color:var(--ej-deepgold)!important;
	background:none!important;background-image:none!important;
	-webkit-background-clip:border-box!important;background-clip:border-box!important;
	-webkit-text-fill-color:var(--ej-deepgold)!important;
}

/* THE SIGN-IN BUTTON'S LABEL WAS CLIPPED.
   The site pins that button to height:42px with line-height:30px, sized for the old
   14px label. This stylesheet gives every button in the section its own padding, and
   padding plus a line box no longer fit inside a fixed 42px. Let the button be as
   tall as what is in it. */
#book .bookinfo_section .src_btn,
.bookingintro .src_btn,
.bookingintro input[type="submit"]{
	height:auto!important;min-height:0!important;line-height:1.2!important;
	float:none!important;vertical-align:middle;margin:0!important;
}
.bookingintro .inputfield{
	width:auto!important;overflow:visible!important;text-align:center!important;
	display:flex!important;flex-direction:row!important;flex-wrap:wrap;
	align-items:center;justify-content:center;gap:10px;
	padding-left:0!important;margin:0 auto 10px!important;
}
.bookingintro #password_text{
	float:none!important;height:auto!important;min-height:46px;margin:0!important;
	font-family:var(--ej-sans)!important;font-size:16px!important;color:var(--ej-ink)!important;
	background:var(--ej-white)!important;border:1px solid #CFC8BA!important;border-radius:6px!important;
	padding:10px 12px!important;
}

/* THE QUESTION ABOVE A GROUP OF OPTIONS.
   "Choose 1 among the following 6 tour options in Ushuaia" was set as body text
   in a page of body text, so the one line the guest actually has to act on read
   as more wall. It gets the same rank the flights card gives its two block
   headings -- the display serif over a gold hairline -- so the form has one
   sub-heading voice throughout: navy band, sub-heading, eyebrow, field. */
#book .bookinfo_text p.ejChooseTitle,
#book p.ejChooseTitle{
	display:block;
	font-family:var(--ej-serif)!important;font-size:21px!important;font-weight:600!important;
	font-style:normal!important;letter-spacing:.2px;line-height:1.25!important;
	text-transform:none!important;color:var(--ej-navy)!important;
	margin:26px 0 14px!important;padding:0 0 8px!important;
	border-bottom:1px solid var(--ej-gold)!important;
}
#book .bookinfo_text p.ejChooseTitle b,
#book p.ejChooseTitle b{font-weight:inherit!important;color:inherit!important;font-size:inherit!important;}
/* the first one in a card does not need the full run-up */
#book .bookinfo_text p.ejChooseTitle:first-child{margin-top:4px!important;}

/* ==================================================== one option, one card == */
.ejOpt{
	position:relative;display:flex;align-items:flex-start;gap:10px;
	margin:6px 0;padding:10px 13px;max-width:820px;
	border:1px solid var(--ej-hair);border-radius:8px;background:var(--ej-white);
	cursor:pointer;line-height:1.4;font-weight:400;box-sizing:border-box;
	transition:border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.ejOpt:hover{border-color:var(--ej-gold);background:var(--ej-ivory);}
.ejOpt.is-checked{border-color:var(--ej-gold);background:var(--ej-warnbg);box-shadow:inset 0 0 0 1px var(--ej-gold);}

/* the native control stays in the page (name, value and the Submit path are
   untouched); it is hidden but still focusable with the keyboard */
.ejOpt input[type="radio"],
.ejOpt input[type="checkbox"]{
	position:absolute!important;left:0;top:0;
	width:1px!important;height:1px!important;margin:0!important;
	opacity:0!important;pointer-events:none;transform:none!important;
}
.ejMark{
	flex:0 0 18px;width:18px;height:18px;margin-top:1px;
	border-radius:50%;border:2px solid #B8B2A6;background:var(--ej-white);
	position:relative;box-sizing:border-box;
}
.ejOpt input:checked ~ .ejMark{border-color:var(--ej-gold);}
.ejOpt input:checked ~ .ejMark::after{
	content:"";position:absolute;left:3px;top:3px;right:3px;bottom:3px;
	border-radius:50%;background:var(--ej-gold);
}
/* the card has to show keyboard focus: :focus first for browsers that do not
   know :focus-visible, then narrowed for those that do */
.ejOpt input:focus ~ .ejMark{box-shadow:0 0 0 3px rgba(219,177,102,.45);}
.ejOpt input:focus:not(:focus-visible) ~ .ejMark{box-shadow:none;}
.ejOpt input:focus-visible ~ .ejMark{box-shadow:0 0 0 3px rgba(219,177,102,.45);}
#book .bookinfo_text .ejOptText{color:var(--ej-ink)!important;}
/* the extra-cost note under a tour option: its own line, flush with the label */
#book .bookinfo_text .ejOptNote{
	display:block;margin:4px 0 0;padding:0;
	font-size:16px!important;line-height:1.5;
}
/* a link inside a card opens its page without choosing the option -- that is the
   browser's own rule for interactive content inside a label */
#book .bookinfo_text .ejOptText a{position:relative;z-index:1;color:var(--ej-deepgold)!important;}

/* the question a group of cards answers */
#book .bookinfo_text .ejField{margin:0 0 18px;}
#book .bookinfo_text .ejField:last-child{margin-bottom:0;}
#book .bookinfo_text .ejFieldTitle{margin:0 0 8px!important;}
/* a save that failed marks its own question */
#book .bookinfo_text .ejField.has-error .ejOpt,
#book .bookinfo_text .ejField.has-error textarea,
#book .bookinfo_text .ejField.has-error input[type="text"]{border-color:var(--ej-alert)!important;}

/* ========================================================= the fields ======= */
#book .bookinfo_text textarea,
#book .bookinfo_text input[type="text"],
#book .bookinfo_text input[type="email"],
#book .bookinfo_text input[type="tel"],
#book .bookinfo_text select,
#divPax textarea,
#divPax input[type="text"],
#divPax input[type="email"],
#divPax input[type="tel"],
#divPax select,
#divHotel textarea,
#divHotel input[type="text"],
#divHotel input[type="email"],
#divHotel input[type="tel"],
#divHotel select,
#divFlight textarea,
#divFlight input[type="text"],
#divFlight input[type="email"],
#divFlight input[type="tel"],
#divFlight select,
#divTicket textarea,
#divTicket input[type="text"],
#divTicket input[type="email"],
#divTicket input[type="tel"],
#divTicket select,
#divDomestic textarea,
#divDomestic input[type="text"],
#divDomestic input[type="email"],
#divDomestic input[type="tel"],
#divDomestic select,
#divDirectHotel textarea,
#divDirectHotel input[type="text"],
#divDirectHotel input[type="email"],
#divDirectHotel input[type="tel"],
#divDirectHotel select,
#divContact textarea,
#divContact input[type="text"],
#divContact input[type="email"],
#divContact input[type="tel"],
#divContact select,
#divCare textarea,
#divCare input[type="text"],
#divCare input[type="email"],
#divCare input[type="tel"],
#divCare select,
#divMail textarea,
#divMail input[type="text"],
#divMail input[type="email"],
#divMail input[type="tel"],
#divMail select{
	font-family:var(--ej-sans)!important;font-size:16px!important;color:var(--ej-ink)!important;
	background:var(--ej-white)!important;border:1px solid #CFC8BA!important;border-radius:6px!important;
	padding:10px 12px!important;box-shadow:none!important;
	transition:border-color .15s ease, box-shadow .15s ease;
}
/* THE CLIPPED LINE OF TEXT INSIDE A FIELD.
   bookingform-responsive.min.css pins input[type="text"] and select to
   height:35px!important. Those are border-box, so with the padding above the content
   box falls to about 13px -- smaller than Mulish's own 1.5 line box -- and the text is
   sliced off along the bottom. Let the field size itself to its own content, with a
   floor so short fields still look deliberate. Textareas are untouched: they carry
   their own heights. */
#book .bookinfo_text input[type="text"],
#book .bookinfo_text input[type="email"],
#book .bookinfo_text input[type="tel"],
#book .bookinfo_text select,
#divPax input[type="text"],
#divPax input[type="email"],
#divPax input[type="tel"],
#divPax select,
#divHotel input[type="text"],
#divHotel input[type="email"],
#divHotel input[type="tel"],
#divHotel select,
#divFlight input[type="text"],
#divFlight input[type="email"],
#divFlight input[type="tel"],
#divFlight select,
#divTicket input[type="text"],
#divTicket input[type="email"],
#divTicket input[type="tel"],
#divTicket select,
#divDomestic input[type="text"],
#divDomestic input[type="email"],
#divDomestic input[type="tel"],
#divDomestic select,
#divDirectHotel input[type="text"],
#divDirectHotel input[type="email"],
#divDirectHotel input[type="tel"],
#divDirectHotel select,
#divContact input[type="text"],
#divContact input[type="email"],
#divContact input[type="tel"],
#divContact select,
#divCare input[type="text"],
#divCare input[type="email"],
#divCare input[type="tel"],
#divCare select,
#divMail input[type="text"],
#divMail input[type="email"],
#divMail input[type="tel"],
#divMail select{
	height:auto!important;min-height:46px;line-height:1.5!important;
}
/* css/webquote-css-minified.css opens with *,*::before,*::after{box-sizing:border-box},
   so every box on this page is already border-box; these two only pin it, and stop an
   inline width:100% from ever spilling past the card. */
#book .bookinfo_text textarea,
#divPax textarea,
#divHotel textarea,
#divFlight textarea,
#divTicket textarea,
#divDomestic textarea,
#divDirectHotel textarea,
#divContact textarea,
#divCare textarea,
#divMail textarea{box-sizing:border-box!important;max-width:100%!important;}

/* THE HEIGHT OF THE TYPING BOXES.
   Those four boxes carry an inline height from a much smaller legacy type size, and
   because the page is border-box the padding and border come OUT of that height, not
   on top of it. The site's own reboot already sets textarea{padding:10px 10px}, so the
   pick-up boxes were left about ONE line tall and the guest's text scrolled out of
   sight the moment it wrapped. Give each box the rows its markup asks for at the
   current type: 22px of chrome plus N lines of 16px x 1.6. */
#book .bookinfo_text #bookPickUp1,
#book .bookinfo_text #bookPickUp2,
#book .bookinfo_text #seatotherinfo{height:99px!important;}     /* 3 lines */
#book .bookinfo_text #bookotherinfo{height:125px!important;}    /* 4 lines */
#book .bookinfo_text textarea:focus,
#book .bookinfo_text input[type="text"]:focus,
#book .bookinfo_text input[type="email"]:focus,
#book .bookinfo_text input[type="tel"]:focus,
#book .bookinfo_text select:focus,
#divPax textarea:focus,
#divPax input[type="text"]:focus,
#divPax input[type="email"]:focus,
#divPax input[type="tel"]:focus,
#divPax select:focus,
#divHotel textarea:focus,
#divHotel input[type="text"]:focus,
#divHotel input[type="email"]:focus,
#divHotel input[type="tel"]:focus,
#divHotel select:focus,
#divFlight textarea:focus,
#divFlight input[type="text"]:focus,
#divFlight input[type="email"]:focus,
#divFlight input[type="tel"]:focus,
#divFlight select:focus,
#divTicket textarea:focus,
#divTicket input[type="text"]:focus,
#divTicket input[type="email"]:focus,
#divTicket input[type="tel"]:focus,
#divTicket select:focus,
#divDomestic textarea:focus,
#divDomestic input[type="text"]:focus,
#divDomestic input[type="email"]:focus,
#divDomestic input[type="tel"]:focus,
#divDomestic select:focus,
#divDirectHotel textarea:focus,
#divDirectHotel input[type="text"]:focus,
#divDirectHotel input[type="email"]:focus,
#divDirectHotel input[type="tel"]:focus,
#divDirectHotel select:focus,
#divContact textarea:focus,
#divContact input[type="text"]:focus,
#divContact input[type="email"]:focus,
#divContact input[type="tel"]:focus,
#divContact select:focus,
#divCare textarea:focus,
#divCare input[type="text"]:focus,
#divCare input[type="email"]:focus,
#divCare input[type="tel"]:focus,
#divCare select:focus,
#divMail textarea:focus,
#divMail input[type="text"]:focus,
#divMail input[type="email"]:focus,
#divMail input[type="tel"]:focus,
#divMail select:focus{
	outline:none!important;border-color:var(--ej-gold)!important;box-shadow:0 0 0 3px rgba(219,177,102,.30)!important;
}
/* the site styles the card box by id, so this has to be at least as specific */
#book textarea#ccnumber.ejCardField{
	width:calc(9ch + 22px);min-height:0;height:auto;box-sizing:border-box;
	font-family:var(--ej-sans)!important;font-size:16px!important;letter-spacing:2px;text-align:center;
	padding:8px 10px!important;border-radius:6px!important;border:1px solid #CFC8BA!important;
	resize:none;overflow:hidden;vertical-align:middle;margin-top:0;
}

/* ========================================================= the buttons ====== */
#book .crud_button{
	font-family:var(--ej-sans)!important;font-size:12px!important;font-weight:800!important;
	letter-spacing:1.4px;text-transform:uppercase;
	color:var(--ej-navy)!important;background:var(--ej-white)!important;
	border:1px solid #CFC8BA!important;border-radius:4px!important;
	padding:9px 18px!important;margin:0 8px 10px 0!important;cursor:pointer;
	/* bookingform-responsive.min.css sets .crud_button{width:100%}, which makes the
	   three buttons stack one per line on a phone. They are a row of three short
	   actions, so keep them on one line and let them wrap only if they must. */
	display:inline-flex!important;align-items:center;justify-content:center;
	width:auto!important;max-width:none!important;float:none!important;
	width:auto!important;max-width:none!important;box-shadow:none!important;
	transition:border-color .15s ease, background-color .15s ease;
}
#book .crud_button:hover{border-color:var(--ej-gold)!important;background:var(--ej-warnbg)!important;}

#book .src_btn2,#book .bookinfo_section .src_btn{
	font-family:var(--ej-sans)!important;font-size:14px!important;font-weight:800!important;
	letter-spacing:2px;text-transform:uppercase;
	color:var(--ej-navy)!important;background:var(--ej-gold)!important;
	border:1px solid var(--ej-gold)!important;border-radius:4px!important;
	padding:14px 28px!important;cursor:pointer!important;text-shadow:none!important;
	display:inline-flex;align-items:center;gap:10px;float:none;
	box-shadow:0 6px 18px rgba(219,177,102,.25);
	transition:background-color .15s ease, box-shadow .15s ease, transform .1s ease;
}
#book .src_btn2:hover{background:#E6C27B!important;box-shadow:0 8px 22px rgba(219,177,102,.35);}
#book .src_btn2:active{transform:translateY(1px);}
#book .src_btn2 svg{
	width:18px;height:18px;flex:0 0 18px;
	stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
	transition:transform .18s cubic-bezier(.2,.8,.2,1);
}
#book .src_btn2:hover svg,
#book .src_btn2:focus svg{transform:translateX(4px);}
@media (prefers-reduced-motion:reduce){
	#book .src_btn2 svg{transition:none;}
	#book .src_btn2:hover svg,
	#book .src_btn2:focus svg{transform:none;}
}

/* ========================================================= the data grids === */
#book div.gridbox,#book div.gridbox_dhx_skyblue{
	border:1px solid var(--ej-hair)!important;border-radius:6px;overflow:hidden;
	background:var(--ej-white)!important;font-family:var(--ej-sans)!important;
}
#book div.gridbox_dhx_skyblue .xhdr,
#book div.gridbox_dhx_skyblue table.hdr,
#book div.gridbox_dhx_skyblue table.hdr tr,
#book div.gridbox_dhx_skyblue table.hdr td{
	background:var(--ej-navy)!important;background-image:none!important;border-color:var(--ej-navy)!important;
}
#book div.gridbox_dhx_skyblue table.hdr td{padding:0!important;}
#book div.gridbox_dhx_skyblue table.hdr td div.hdrcell{
	font-family:var(--ej-sans)!important;font-size:10px!important;font-weight:800!important;
	letter-spacing:1.6px;text-transform:uppercase;color:var(--ej-gold)!important;padding:10px!important;
}
#book div.gridbox_dhx_skyblue table.obj tr td{
	font-family:var(--ej-sans)!important;font-size:14px!important;color:var(--ej-ink)!important;
	padding:9px 10px!important;border-bottom:1px solid var(--ej-hair)!important;border-right:0!important;
	background-image:none!important;
}
#book div.gridbox_dhx_skyblue table.obj tr.rowselected td{
	background:var(--ej-warnbg)!important;background-image:none!important;color:var(--ej-navy)!important;
}
#book div.gridbox_dhx_skyblue .odd_dhx_skyblue{background:var(--ej-ivory)!important;}
#book .objbox{background:var(--ej-white)!important;}

/* THE EMPTY BAND UNDER A GRID'S LAST ROW.
   Every one of these grids is built with enableAutoHeigth(true,...), so dhtmlx measures
   the rows once and then writes pixel heights onto the container, the scroll box and
   the table. It measures before the web fonts arrive, so the number it writes is taller
   than the rows actually need and the surplus renders as a blank row under the data.
   That is also why the band comes and goes as the page is zoomed: dhtmlx re-measures
   and lands on a different number. Let the content decide the height instead, which is
   what enableAutoHeigth asked for in the first place. */
#book div.gridbox,#book div.gridbox_dhx_skyblue{height:auto!important;min-height:0!important;}
#book div.gridbox .objbox,#book div.gridbox_dhx_skyblue .objbox{
	height:auto!important;max-height:none!important;overflow:visible!important;
}
#book div.gridbox table.obj,#book div.gridbox_dhx_skyblue table.obj{height:auto!important;}

/* ===================================================== the "Saved" badge ==== */
/* One badge for the whole form: it slides in from the right edge and rests in
   the top right corner, so an answer saved far down the page still confirms
   itself somewhere the guest is looking. */
#ejSaveToast{
	position:fixed;top:16px;right:16px;z-index:2147483000;
	display:inline-flex;align-items:center;gap:8px;max-width:min(360px,calc(100vw - 32px));
	font-family:var(--ej-sans);font-size:14px;font-weight:700;line-height:1.35;
	color:#fff;background:var(--ej-ok);
	padding:10px 16px;border-radius:999px;
	box-shadow:0 6px 20px rgba(0,22,40,.28);
	transform:translateX(calc(100% + 28px));opacity:0;
	transition:transform .32s cubic-bezier(.2,.8,.2,1), opacity .32s ease;
	pointer-events:none;
}
#ejSaveToast.is-on{transform:translateX(0);opacity:1;}
#ejSaveToast.is-saving{background:var(--ej-navy2);}
#ejSaveToast.is-error{background:var(--ej-alert);border-radius:10px;pointer-events:auto;}
#ejSaveToast svg{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
@media (prefers-reduced-motion:reduce){
	#ejSaveToast{transition:opacity .2s ease;transform:translateX(0);}
}

/* ===================================================== the staff note ======= */
.ejStaffNote,
#book .bookinfo_text .ejStaffNote{
	margin:0 0 12px!important;font-size:13px!important;color:var(--ej-muted)!important;
	font-family:var(--ej-sans)!important;
}

/* ============================================== the Add / Change dialogs ==== */
/* They opened at 95% of the page width whatever they contained, over a tiled
   olive photograph from the old design. Give them a width that suits the handful
   of fields each one holds, centre them, and dress them like the rest of the
   form. Sizing and centring are desktop-only: below 769px the site's own rules
   already make a dialog fill the screen, which is right on a phone. */
@media (min-width:769px){
	#divPax,#divHotel,#divFlight,#divTicket,#divDomestic,#divDirectHotel,#divContact,#divCare,#divMail{
		/* inset:0 with auto margins centres against the viewport box itself, so the
		   dialog does not drift by half a scrollbar when the scroll lock hides it. */
		position:fixed!important;inset:0!important;margin:auto!important;transform:none!important;
		width:min(560px,94vw)!important;max-width:min(560px,94vw)!important;
		height:-moz-fit-content!important;height:fit-content!important;
		max-height:88vh!important;overflow-y:auto!important;overflow-x:hidden!important;
		border-radius:10px;box-shadow:0 18px 48px rgba(0,22,40,.38);
	}
	/* THE DAY BOX IS REBUILT, AND THAT USED TO MOVE THE YEAR BOX.
	   DiasMes() deletes the day dropdown's wrapper and appends a fresh one whenever
	   the month changes. The replacement does not reproduce the whitespace text node
	   the original markup had, so the inline run reflowed and the year box jumped 5px
	   sideways on every single month change. A flex wrapper ignores whitespace text
	   nodes altogether, so the row is identical before and after the rebuild. */
#divPax [id^="divDays"],#divHotel [id^="divDays"],#divFlight [id^="divDays"],#divTicket [id^="divDays"],#divDomestic [id^="divDays"],#divDirectHotel [id^="divDays"],#divContact [id^="divDays"],#divCare [id^="divDays"],#divMail [id^="divDays"],#divPax [id^="Days"],#divHotel [id^="Days"],#divFlight [id^="Days"],#divTicket [id^="Days"],#divDomestic [id^="Days"],#divDirectHotel [id^="Days"],#divContact [id^="Days"],#divCare [id^="Days"],#divMail [id^="Days"]{
	display:inline-flex!important;vertical-align:middle;
}

	/* THE DATE AND TIME DROPDOWNS KEEP STILL.
	   They had no width of their own, so the browser sized each one to its widest
	   option. Picking a month rebuilds the day list (28, 29, 30 or 31 entries), the
	   widest option changes, and every box in the row shifts. They were also about
	   2px too narrow for their own longest option once this stylesheet's padding and
	   the dropdown arrow were counted, which clipped the text. Fixed widths, sized
	   from the longest option each one can hold, so they never move and never clip. */
#divPax select[name$="Month"],#divHotel select[name$="Month"],#divFlight select[name$="Month"],#divTicket select[name$="Month"],#divDomestic select[name$="Month"],#divDirectHotel select[name$="Month"],#divContact select[name$="Month"],#divCare select[name$="Month"],#divMail select[name$="Month"]{width:140px!important;min-width:140px!important;}
#divPax select[name$="Day"],#divHotel select[name$="Day"],#divFlight select[name$="Day"],#divTicket select[name$="Day"],#divDomestic select[name$="Day"],#divDirectHotel select[name$="Day"],#divContact select[name$="Day"],#divCare select[name$="Day"],#divMail select[name$="Day"]{width:90px!important;min-width:90px!important;}
#divPax select[name$="Year"],#divHotel select[name$="Year"],#divFlight select[name$="Year"],#divTicket select[name$="Year"],#divDomestic select[name$="Year"],#divDirectHotel select[name$="Year"],#divContact select[name$="Year"],#divCare select[name$="Year"],#divMail select[name$="Year"]{width:98px!important;min-width:98px!important;}
#divPax select[name$="Hour"],#divHotel select[name$="Hour"],#divFlight select[name$="Hour"],#divTicket select[name$="Hour"],#divDomestic select[name$="Hour"],#divDirectHotel select[name$="Hour"],#divContact select[name$="Hour"],#divCare select[name$="Hour"],#divMail select[name$="Hour"]{width:88px!important;min-width:88px!important;}
#divPax select[name$="Min"],#divHotel select[name$="Min"],#divFlight select[name$="Min"],#divTicket select[name$="Min"],#divDomestic select[name$="Min"],#divDirectHotel select[name$="Min"],#divContact select[name$="Min"],#divCare select[name$="Min"],#divMail select[name$="Min"]{width:88px!important;min-width:88px!important;}
#divPax select[name$="TT"],#divHotel select[name$="TT"],#divFlight select[name$="TT"],#divTicket select[name$="TT"],#divDomestic select[name$="TT"],#divDirectHotel select[name$="TT"],#divContact select[name$="TT"],#divCare select[name$="TT"],#divMail select[name$="TT"]{width:86px!important;min-width:86px!important;}

	/* The time is four cells -- hh, a colon, mm, AM -- so once the field tables
	   became block stacks each part dropped onto its own line. Keep them inline
	   under the label they share. */
#divPax tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divFlight tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divTicket tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divDomestic tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divContact tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divCare tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divMail tr:has(> td > select[name$="Hour"]) > td:not(:first-child){
		display:inline-block!important;width:auto!important;vertical-align:middle;
	}

	/* a gap between the date and time boxes. The flex wrapper above ignores the
	   whitespace text nodes the markup relied on for spacing, so state it. */
#divPax select[name$="Month"],#divHotel select[name$="Month"],#divFlight select[name$="Month"],#divTicket select[name$="Month"],#divDomestic select[name$="Month"],#divDirectHotel select[name$="Month"],#divContact select[name$="Month"],#divCare select[name$="Month"],#divMail select[name$="Month"],#divPax select[name$="Day"],#divHotel select[name$="Day"],#divFlight select[name$="Day"],#divTicket select[name$="Day"],#divDomestic select[name$="Day"],#divDirectHotel select[name$="Day"],#divContact select[name$="Day"],#divCare select[name$="Day"],#divMail select[name$="Day"],#divPax select[name$="Hour"],#divHotel select[name$="Hour"],#divFlight select[name$="Hour"],#divTicket select[name$="Hour"],#divDomestic select[name$="Hour"],#divDirectHotel select[name$="Hour"],#divContact select[name$="Hour"],#divCare select[name$="Hour"],#divMail select[name$="Hour"],#divPax select[name$="Min"],#divHotel select[name$="Min"],#divFlight select[name$="Min"],#divTicket select[name$="Min"],#divDomestic select[name$="Min"],#divDirectHotel select[name$="Min"],#divContact select[name$="Min"],#divCare select[name$="Min"],#divMail select[name$="Min"]{
	margin-right:8px!important;
}
#divPax select[name$="Year"],#divHotel select[name$="Year"],#divFlight select[name$="Year"],#divTicket select[name$="Year"],#divDomestic select[name$="Year"],#divDirectHotel select[name$="Year"],#divContact select[name$="Year"],#divCare select[name$="Year"],#divMail select[name$="Year"],#divPax select[name$="TT"],#divHotel select[name$="TT"],#divFlight select[name$="TT"],#divTicket select[name$="TT"],#divDomestic select[name$="TT"],#divDirectHotel select[name$="TT"],#divContact select[name$="TT"],#divCare select[name$="TT"],#divMail select[name$="TT"]{
	margin-right:0!important;
}

	/* THE FIELD TABLE STOPS BEING A TABLE.
	   Stacking a label over its field only works if the table stops allocating
	   columns: a block-level row inside a real table is still handed its old column's
	   width, which left every field about 60%% of the card. Converting the field table
	   to a plain block stack removes the column algorithm entirely. The title table is
	   untouched, and so is the arrival/departure dialog, whose outer table is already
	   laid out as a grid; only its inner column tables are converted. */
#divPax table:not(:first-of-type),#divHotel table:not(:first-of-type),#divFlight table:not(:first-of-type),#divTicket table:not(:first-of-type),#divDomestic table:not(:first-of-type),#divDirectHotel table:not(:first-of-type),#divContact table:not(:first-of-type),#divCare table:not(:first-of-type),#divMail table:not(:first-of-type),#divPax table:not(:first-of-type) > tbody,#divHotel table:not(:first-of-type) > tbody,#divFlight table:not(:first-of-type) > tbody,#divTicket table:not(:first-of-type) > tbody,#divDomestic table:not(:first-of-type) > tbody,#divDirectHotel table:not(:first-of-type) > tbody,#divContact table:not(:first-of-type) > tbody,#divCare table:not(:first-of-type) > tbody,#divMail table:not(:first-of-type) > tbody,
	#divPax td table,#divHotel td table,#divFlight td table,#divTicket td table,#divDomestic td table,#divDirectHotel td table,#divContact td table,#divCare td table,#divMail td table,#divPax td table > tbody,#divHotel td table > tbody,#divFlight td table > tbody,#divTicket td table > tbody,#divDomestic td table > tbody,#divDirectHotel td table > tbody,#divContact td table > tbody,#divCare td table > tbody,#divMail td table > tbody{
		display:block!important;width:100%!important;
	}

	/* EVERY ROW OF A CONVERTED TABLE IS A BLOCK, not just the ones that carry a
	   caption. A row left as table-row inside a block tbody gets wrapped in an
	   anonymous table of its own, and the column algorithm sizes it to its
	   content -- which is why the traveller list sat in a 198px column while the
	   dropdown above it filled the card. */
#divPax table:not(:first-of-type) > tbody > tr,#divHotel table:not(:first-of-type) > tbody > tr,#divFlight table:not(:first-of-type) > tbody > tr,#divTicket table:not(:first-of-type) > tbody > tr,#divDomestic table:not(:first-of-type) > tbody > tr,#divDirectHotel table:not(:first-of-type) > tbody > tr,#divContact table:not(:first-of-type) > tbody > tr,#divCare table:not(:first-of-type) > tbody > tr,#divMail table:not(:first-of-type) > tbody > tr,#divPax td table > tbody > tr,#divHotel td table > tbody > tr,#divFlight td table > tbody > tr,#divTicket td table > tbody > tr,#divDomestic td table > tbody > tr,#divDirectHotel td table > tbody > tr,#divContact td table > tbody > tr,#divCare td table > tbody > tr,#divMail td table > tbody > tr{
		display:block!important;width:100%!important;
	}
#divPax table:not(:first-of-type) > tbody > tr > td,#divHotel table:not(:first-of-type) > tbody > tr > td,#divFlight table:not(:first-of-type) > tbody > tr > td,#divTicket table:not(:first-of-type) > tbody > tr > td,#divDomestic table:not(:first-of-type) > tbody > tr > td,#divDirectHotel table:not(:first-of-type) > tbody > tr > td,#divContact table:not(:first-of-type) > tbody > tr > td,#divCare table:not(:first-of-type) > tbody > tr > td,#divMail table:not(:first-of-type) > tbody > tr > td,#divPax td table > tbody > tr > td,#divHotel td table > tbody > tr > td,#divFlight td table > tbody > tr > td,#divTicket td table > tbody > tr > td,#divDomestic td table > tbody > tr > td,#divDirectHotel td table > tbody > tr > td,#divContact td table > tbody > tr > td,#divCare td table > tbody > tr > td,#divMail td table > tbody > tr > td{
		display:block!important;width:100%!important;text-align:left!important;
	}

	/* LABELS SIT ABOVE THEIR FIELD, AS EYEBROWS.
	   The markup is a two-cell table row, label beside field, which either wasted a
	   band of space between the two or, right-aligned, read as a wall of text pushed
	   against the boxes. Turning the row and its two cells into blocks stacks them:
	   a small uppercase caption directly over the control it names, full width, which
	   is what a form label should be and what the rest of the page already looks like.
	   Only rows whose first cell is a bold caption are touched; prose rows are left. */
#divPax table tr:has(> td:first-child > b),#divHotel table tr:has(> td:first-child > b),#divFlight table tr:has(> td:first-child > b),#divTicket table tr:has(> td:first-child > b),#divDomestic table tr:has(> td:first-child > b),#divDirectHotel table tr:has(> td:first-child > b),#divContact table tr:has(> td:first-child > b),#divCare table tr:has(> td:first-child > b),#divMail table tr:has(> td:first-child > b){
		/* the row has to be a block as well, or the table keeps allocating columns
		   and the stacked cells only get their old column's width */
		display:block!important;width:100%!important;
	}
	#divPax table tr:has(> td:first-child > b) > td,#divHotel table tr:has(> td:first-child > b) > td,#divFlight table tr:has(> td:first-child > b) > td,#divTicket table tr:has(> td:first-child > b) > td,#divDomestic table tr:has(> td:first-child > b) > td,#divDirectHotel table tr:has(> td:first-child > b) > td,#divContact table tr:has(> td:first-child > b) > td,#divCare table tr:has(> td:first-child > b) > td,#divMail table tr:has(> td:first-child > b) > td{
		text-align:left!important;
		display:block!important;width:100%!important;
	}
#divPax table tr:has(> td:first-child > b) > td:first-child,#divHotel table tr:has(> td:first-child > b) > td:first-child,#divFlight table tr:has(> td:first-child > b) > td:first-child,#divTicket table tr:has(> td:first-child > b) > td:first-child,#divDomestic table tr:has(> td:first-child > b) > td:first-child,#divDirectHotel table tr:has(> td:first-child > b) > td:first-child,#divContact table tr:has(> td:first-child > b) > td:first-child,#divCare table tr:has(> td:first-child > b) > td:first-child,#divMail table tr:has(> td:first-child > b) > td:first-child{
		text-align:left!important;
	}
#divPax table tr:has(> td:first-child > b) > td:first-child > b,#divHotel table tr:has(> td:first-child > b) > td:first-child > b,#divFlight table tr:has(> td:first-child > b) > td:first-child > b,#divTicket table tr:has(> td:first-child > b) > td:first-child > b,#divDomestic table tr:has(> td:first-child > b) > td:first-child > b,#divDirectHotel table tr:has(> td:first-child > b) > td:first-child > b,#divContact table tr:has(> td:first-child > b) > td:first-child > b,#divCare table tr:has(> td:first-child > b) > td:first-child > b,#divMail table tr:has(> td:first-child > b) > td:first-child > b{
		display:block;font-family:var(--ej-sans)!important;font-size:11px!important;
		font-weight:800!important;letter-spacing:1.4px;text-transform:uppercase;
		color:var(--ej-navy)!important;
	}
#divPax table tr:has(> td:first-child > b) > td:last-child,#divHotel table tr:has(> td:first-child > b) > td:last-child,#divFlight table tr:has(> td:first-child > b) > td:last-child,#divTicket table tr:has(> td:first-child > b) > td:last-child,#divDomestic table tr:has(> td:first-child > b) > td:last-child,#divDirectHotel table tr:has(> td:first-child > b) > td:last-child,#divContact table tr:has(> td:first-child > b) > td:last-child,#divCare table tr:has(> td:first-child > b) > td:last-child,#divMail table tr:has(> td:first-child > b) > td:last-child{
		padding-bottom:0!important;
	}
	/* a field with no width of its own should fill the row it now owns */
#divPax table tr:has(> td:first-child > b) input[type="text"],#divHotel table tr:has(> td:first-child > b) input[type="text"],#divFlight table tr:has(> td:first-child > b) input[type="text"],#divTicket table tr:has(> td:first-child > b) input[type="text"],#divDomestic table tr:has(> td:first-child > b) input[type="text"],#divDirectHotel table tr:has(> td:first-child > b) input[type="text"],#divContact table tr:has(> td:first-child > b) input[type="text"],#divCare table tr:has(> td:first-child > b) input[type="text"],#divMail table tr:has(> td:first-child > b) input[type="text"],#divPax table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divHotel table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divFlight table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divTicket table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divDomestic table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divDirectHotel table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divContact table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divCare table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]),#divMail table tr:has(> td:first-child > b) > td:last-child > select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]){
		width:100%!important;
	}
	/* the arrival/departure dialog nests a table per column; keep both inside the card */
	#divFlight table{max-width:100%!important;table-layout:auto!important;}
	/* the two that genuinely carry more fields */
	#divPax{width:min(660px,95vw)!important;max-width:min(660px,95vw)!important;}
	/* THE ARRIVAL / DEPARTURE DIALOG STACKS ITS TWO BLOCKS.
	   It is a three-column table -- arrival, a spacer, departure -- with the captions
	   on one row and the fields on the next, and its content will not compress below
	   about 1065px. Side by side that meant a dialog wider than most laptops, labels
	   shattered into three lines, and sideways scrolling. Laying the table out as a
	   single-column grid stacks the two blocks; the order below keeps each caption
	   with its own fields, which simply stacking the cells would not. */
	#divFlight{width:min(640px,95vw)!important;max-width:min(640px,95vw)!important;}
	/* the arrival/departure dialog is two columns of fields; give its labels
	   enough room that "Flight Number:" stays on one line, and let the two
	   halves share the width evenly */
	#divFlight > form > table > tbody > tr > td:first-child{width:auto;min-width:0;}
}

/* NO LEGACY OLIVE ANYWHERE INSIDE A DIALOG.
   bookingform-responsive.min.css paints every table that is not a data grid with
   table:not(.obj){background:#ececd3!important} plus a gradient, and the dialogs nest
   tables several deep, so clearing only the outer one left olive panels inside. Clear
   them all, and the olive field borders (#564300) with them. */
#divPax table,#divHotel table,#divFlight table,#divTicket table,#divDomestic table,#divDirectHotel table,#divContact table,#divCare table,#divMail table{
	background:transparent!important;background-image:none!important;
	border-color:var(--ej-hair)!important;
}
#divPax td,#divHotel td,#divFlight td,#divTicket td,#divDomestic td,#divDirectHotel td,#divContact td,#divCare td,#divMail td,#divPax th,#divHotel th,#divFlight th,#divTicket th,#divDomestic th,#divDirectHotel th,#divContact th,#divCare th,#divMail th{
	background-image:none!important;
}

/* NOTHING OLIVE, ANYWHERE, WHATEVER THE MARKUP.
   bookingform-responsive.min.css carries table:not(.obj){background:#ececd3!important}
   plus a linear-gradient, and the dialogs nest tables and divs several deep, so a rule
   aimed at one level always leaves another showing. This clears every descendant in one
   pass. It is written with two ids so it outranks anything the site can bring, and it
   sits BEFORE the navy title band and the fields below, which paint themselves back. */
#divPax table,,#divHotel table,,#divFlight table,,#divTicket table,,#divDomestic table,,#divDirectHotel table,,#divContact table,,#divCare table,,#divMail table,#divPax tbody,#divHotel tbody,#divFlight tbody,#divTicket tbody,#divDomestic tbody,#divDirectHotel tbody,#divContact tbody,#divCare tbody,#divMail tbody,#divPax tr,#divHotel tr,#divFlight tr,#divTicket tr,#divDomestic tr,#divDirectHotel tr,#divContact tr,#divCare tr,#divMail tr,#divPax td,#divHotel td,#divFlight td,#divTicket td,#divDomestic td,#divDirectHotel td,#divContact td,#divCare td,#divMail td,#divPax th,#divHotel th,#divFlight th,#divTicket th,#divDomestic th,#divDirectHotel th,#divContact th,#divCare th,#divMail th,#divPax div,#divHotel div,#divFlight div,#divTicket div,#divDomestic div,#divDirectHotel div,#divContact div,#divCare div,#divMail div,#divPax form,#divHotel form,#divFlight form,#divTicket form,#divDomestic form,#divDirectHotel form,#divContact form,#divCare form,#divMail form,#divPax p,#divHotel p,#divFlight p,#divTicket p,#divDomestic p,#divDirectHotel p,#divContact p,#divCare p,#divMail p{
	background-color:transparent!important;background-image:none!important;
}

/* THE DIALOG IS ONE CARD, NOT A STACK OF NARROW TABLES.
   Each dialog is built from two or more tables carrying old fixed widths in the
   markup (the ticket one is width="350px" for the title and 406px for the fields).
   Inside a dialog that is now 560px wide those left a band of backdrop showing down
   the right-hand side, which read as a ghost of the dialog. Make every direct table
   fill the card, and paint the card itself so any remaining gap is white. */
#divPax,#divHotel,#divFlight,#divTicket,#divDomestic,#divDirectHotel,#divContact,#divCare,#divMail{
	background:var(--ej-white)!important;overflow-x:hidden;
}
#divPax > form,#divHotel > form,#divFlight > form,#divTicket > form,#divDomestic > form,#divDirectHotel > form,#divContact > form,#divCare > form,#divMail > form{
	display:block;
}
#divPax > form > table,#divHotel > form > table,#divFlight > form > table,#divTicket > form > table,#divDomestic > form > table,#divDirectHotel > form > table,#divContact > form > table,#divCare > form > table,#divMail > form > table{
	width:100%!important;max-width:100%!important;
}

/* the card: no tiled photograph, no black hairlines */
#divPax > form > table,#divHotel > form > table,#divFlight > form > table,#divTicket > form > table,#divDomestic > form > table,#divDirectHotel > form > table,#divContact > form > table,#divCare > form > table,#divMail > form > table{
	background:var(--ej-white)!important;background-image:none!important;
	border:0!important;border-collapse:collapse!important;
	font-family:var(--ej-sans)!important;font-size:16px!important;color:var(--ej-ink)!important;
}
#divPax > form > table > tbody > tr > td,#divHotel > form > table > tbody > tr > td,#divFlight > form > table > tbody > tr > td,#divTicket > form > table > tbody > tr > td,#divDomestic > form > table > tbody > tr > td,#divDirectHotel > form > table > tbody > tr > td,#divContact > form > table > tbody > tr > td,#divCare > form > table > tbody > tr > td,#divMail > form > table > tbody > tr > td{
	background:transparent!important;background-image:none!important;
	border:0!important;
	font-family:var(--ej-sans)!important;font-size:16px!important;color:var(--ej-ink)!important;
	vertical-align:middle;
}
#divPax b,#divHotel b,#divFlight b,#divTicket b,#divDomestic b,#divDirectHotel b,#divContact b,#divCare b,#divMail b{color:var(--ej-navy)!important;font-weight:700;}

/* ================================== one left edge, one vertical rhythm ===== */
/* EVERY LABEL, FIELD AND CAPTION IN A DIALOG SHARES ONE INDENT.
   The inset used to be written on each stacked cell, and these dialogs nest
   tables two and three deep, so a field inside an inner table was pushed in
   twice while a caption in the outer cell was pushed in once: within a single
   card the content sat at 25px, 45px and 47px. The inset is now carried by
   whichever cell is OUTERMOST -- a cell inside another cell adds nothing -- so
   depth cannot change where a row starts. */
#divPax td,#divHotel td,#divFlight td,#divTicket td,#divDomestic td,#divDirectHotel td,#divContact td,#divCare td,#divMail td{
	padding-left:20px!important;padding-right:20px!important;
	padding-top:0!important;padding-bottom:0!important;
	/* the markup carries height="47" and height="49" attributes, which a table
	   cell reads as a minimum and a block reads as a ceiling: once these cells
	   became blocks, Taking Care of You clamped its content to 47px and the
	   dietary questions were drawn over the traveller list. */
	height:auto!important;
}
#divPax td td,#divHotel td td,#divFlight td td,#divTicket td td,#divDomestic td td,#divDirectHotel td td,#divContact td td,#divCare td td,#divMail td td{padding-left:0!important;padding-right:0!important;}
#divPax table,#divHotel table,#divFlight table,#divTicket table,#divDomestic table,#divDirectHotel table,#divContact table,#divCare table,#divMail table{padding:0!important;}

/* ONE GAP BETWEEN A LABEL AND THE FIELD IT NAMES.
   The gap used to come from cell padding, which differs per row, so no two
   labels sat the same distance above their control. It now comes from the
   caption's own margin, which is the same object everywhere: 14px of air above
   a field group, 6px between its label and its control. */
#divPax tr:has(> td:first-child > b) > td:first-child,#divHotel tr:has(> td:first-child > b) > td:first-child,#divFlight tr:has(> td:first-child > b) > td:first-child,#divTicket tr:has(> td:first-child > b) > td:first-child,#divDomestic tr:has(> td:first-child > b) > td:first-child,#divDirectHotel tr:has(> td:first-child > b) > td:first-child,#divContact tr:has(> td:first-child > b) > td:first-child,#divCare tr:has(> td:first-child > b) > td:first-child,#divMail tr:has(> td:first-child > b) > td:first-child{padding-top:14px!important;}
#divPax tr:has(> td:first-child > b) > td:first-child > b,#divHotel tr:has(> td:first-child > b) > td:first-child > b,#divFlight tr:has(> td:first-child > b) > td:first-child > b,#divTicket tr:has(> td:first-child > b) > td:first-child > b,#divDomestic tr:has(> td:first-child > b) > td:first-child > b,#divDirectHotel tr:has(> td:first-child > b) > td:first-child > b,#divContact tr:has(> td:first-child > b) > td:first-child > b,#divCare tr:has(> td:first-child > b) > td:first-child > b,#divMail tr:has(> td:first-child > b) > td:first-child > b{display:block;margin:0 0 6px!important;}
#divPax tr:has(> td:first-child > b) > td:last-child,#divHotel tr:has(> td:first-child > b) > td:last-child,#divFlight tr:has(> td:first-child > b) > td:last-child,#divTicket tr:has(> td:first-child > b) > td:last-child,#divDomestic tr:has(> td:first-child > b) > td:last-child,#divDirectHotel tr:has(> td:first-child > b) > td:last-child,#divContact tr:has(> td:first-child > b) > td:last-child,#divCare tr:has(> td:first-child > b) > td:last-child,#divMail tr:has(> td:first-child > b) > td:last-child{padding-bottom:0!important;}
/* a section caption -- a bold heading in a cell that then holds a table of its
   own fields -- keeps the same left edge and only a little less air under it */
#divPax td:has(> table) > b,#divHotel td:has(> table) > b,#divFlight td:has(> table) > b,#divTicket td:has(> table) > b,#divDomestic td:has(> table) > b,#divDirectHotel td:has(> table) > b,#divContact td:has(> table) > b,#divCare td:has(> table) > b,#divMail td:has(> table) > b{margin:0 0 2px!important;}
/* prose, notes and anything else that is not a labelled field still needs air */
#divPax > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divHotel > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divFlight > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divTicket > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divDomestic > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divDirectHotel > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divContact > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divCare > form > table > tbody > tr:not(:has(> td:first-child > b)) > td,#divMail > form > table > tbody > tr:not(:has(> td:first-child > b)) > td{padding-top:12px!important;}

/* the clock stays on one line, and starts where its own label starts */
#divPax tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divFlight tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divTicket tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divDomestic tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divContact tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divCare tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divMail tr:has(> td > select[name$="Hour"]) > td:not(:first-child){
	display:inline-block!important;width:auto!important;vertical-align:middle;
	padding-right:0!important;
}
#divPax tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divHotel tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divFlight tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divTicket tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divDomestic tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divContact tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divCare tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3),#divMail tr:has(> td > select[name$="Hour"]) > td:nth-child(n+3){padding-left:0!important;}

/* THE ROWS THAT ARE NOT REALLY ROWS.
   A field table's inner rows -- the three parts of a date, the two parts of a
   time -- were being given the same air as a paragraph of prose, because their
   first cell holds a control rather than a caption. Air belongs to the group,
   not to its pieces, so only an OUTERMOST row gets it. */
#divPax td tr > td,#divHotel td tr > td,#divFlight td tr > td,#divTicket td tr > td,#divDomestic td tr > td,#divDirectHotel td tr > td,#divContact td tr > td,#divCare td tr > td,#divMail td tr > td{padding-top:0!important;}

/* CANCEL AND DONE SIT JUST BELOW THE LAST FIELD.
   Their row is two cells wide: an empty one, then the buttons. Stacked as blocks
   the empty cell became a band of dead space the height of a cell's padding, and
   that -- not the buttons' own margin -- is what pushed them so far down the
   card. Drop the empty cell and give the row one padding. */
#divPax tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divHotel tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divFlight tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divTicket tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divDomestic tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divDirectHotel tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divContact tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divCare tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)),#divMail tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)){display:none!important;}
#divPax tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divHotel tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divFlight tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divTicket tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divDomestic tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divDirectHotel tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divContact tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divCare tr:has(> td > input[type="button"]) > td:has(> input[type="button"]),#divMail tr:has(> td > input[type="button"]) > td:has(> input[type="button"]){
	padding:14px 20px 16px!important;text-align:right!important;
}

/* THE TWO FLIGHT BLOCKS ARE SUB-HEADINGS, NOT FIELD LABELS.
   Set in the eyebrow style they read as the caption of the field beneath them,
   which is the wrong rank: each one heads a whole block of six fields. Give them
   the voice the form uses for a section title, one size down -- the display
   serif over a gold hairline -- so the hierarchy inside the card is legible at a
   glance: navy band, sub-heading, eyebrow, field. */
#divFlight b[class*="Caption"]:not(#ej-x):not([style*="none"]){
	display:block;font-family:var(--ej-serif)!important;font-size:21px!important;
	font-weight:600!important;font-style:normal;letter-spacing:.2px;
	text-transform:none!important;line-height:1.2;
	color:var(--ej-navy)!important;
	margin:0 0 4px!important;padding:0 0 8px!important;
	border-bottom:1px solid var(--ej-gold)!important;
}

/* A TYPING BOX IN A DIALOG IS THE SAME OBJECT AS ONE IN THE FORM.
   The markup gives these inline heights of 40px and 50px, measured for a much
   smaller type; border-box takes the padding out of that, so the health note
   and the dietary note were single scrolling lines. Give them the rows their
   markup asks for at the type they are now set in. */
#divPax textarea,#divHotel textarea,#divFlight textarea,#divTicket textarea,#divDomestic textarea,#divDirectHotel textarea,#divContact textarea,#divCare textarea,#divMail textarea{
	height:auto!important;min-height:78px;resize:vertical;
}

/* A DATE IS ONE CONTROL, not three stacked ones.
   Month, day and year live in a little table of their own inside the field
   cell. Now that a converted table's rows are blocks, that row's three cells
   would stack, so the parts of a single date are put back on one line. The
   row is matched by the month (or hour) it holds, and only inside a nested
   table, so prose rows keep their own layout. */
#divPax td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divHotel td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divFlight td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divTicket td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divDomestic td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divDirectHotel td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divContact td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divCare td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divMail td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(:has(b)),#divPax td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divHotel td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divFlight td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divTicket td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divDomestic td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divDirectHotel td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divContact td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divCare td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)),#divMail td table > tbody > tr:has(> td > select[name$="Hour"]) > td:not(:has(b)){
	display:inline-block!important;width:auto!important;vertical-align:middle;
	padding-left:0!important;padding-right:0!important;
}

/* THE COLON BETWEEN THE HOUR AND THE MINUTE GOES.
   The markup sets the two dropdowns as if they were a digital clock face. They
   are two labelled dropdowns; the separator only crowds the row. It is the one
   element sitting directly after the hour, so it can go without touching the
   markup the endpoints render. */
#divPax select[name$="Hour"] + b,#divHotel select[name$="Hour"] + b,#divFlight select[name$="Hour"] + b,#divTicket select[name$="Hour"] + b,#divDomestic select[name$="Hour"] + b,#divDirectHotel select[name$="Hour"] + b,#divContact select[name$="Hour"] + b,#divCare select[name$="Hour"] + b,#divMail select[name$="Hour"] + b,
#book select[name$="Hour"] + b{display:none!important;}

/* The hour, the minute and AM/PM are laid out by the row, not by the whitespace
   between them: a flex line ignores stray text nodes, so the gaps are the same
   8px the date row uses, whatever the markup happens to contain. */
#divPax tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divFlight tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divTicket tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divDomestic tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divContact tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divCare tr:has(> td > select[name$="Hour"]) > td:not(:first-child),#divMail tr:has(> td > select[name$="Hour"]) > td:not(:first-child){
	display:inline-flex!important;align-items:center;gap:8px;width:auto!important;
}
#divPax tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divFlight tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divTicket tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divDomestic tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divContact tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divCare tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select,#divMail tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select{
	margin-right:0!important;margin-left:0!important;
}

/* THE FLIGHTS CARD KEEPS ITS TWO BLOCKS TOGETHER AT EVERY WIDTH.
   The markup lays arrival and departure out as two table columns with their
   captions in a row of their own, so read in document order both captions come
   first and both blocks of fields follow, each headed by nothing. Ordering the
   four cells puts every caption back above its own fields -- and a phone needs
   that more than a desktop does, not less. */
#divFlight:not(#ej-x) > form > table:nth-of-type(2){display:grid!important;grid-template-columns:1fr!important;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody,#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr{display:contents!important;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr > td{display:block!important;width:auto!important;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr:nth-child(1) > td:nth-child(1){order:1;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr:nth-child(2) > td:nth-child(1){order:2;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr:nth-child(1) > td:nth-child(3){order:3;padding-top:22px!important;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr:nth-child(2) > td:nth-child(3){order:4;}
#divFlight:not(#ej-x) > form > table:nth-of-type(2) > tbody > tr > td:nth-child(2){display:none!important;}

/* the stacked-layout duplicates of the two captions; the ordering above means
   every caption already heads its own block, at every width */
#divFlight b[class*="Caption2"]:not(#ej-x):not(#ej-y){display:none!important;}

/* ============================================= one checkbox, everywhere ==== */
/* The native box was inheriting .form-control from the legacy markup, which is
   display:block;width:100%;padding:.375rem .75rem -- so the browser stretched the
   tick into a 45px slab of blue. Draw the box ourselves instead: the same 18px
   square, the same palette and the same focus ring in every dialog and in the
   form. The input keeps its name and its value, so the Submit path is unchanged. */
#divPax input[type="checkbox"],#divHotel input[type="checkbox"],#divFlight input[type="checkbox"],#divTicket input[type="checkbox"],#divDomestic input[type="checkbox"],#divDirectHotel input[type="checkbox"],#divContact input[type="checkbox"],#divCare input[type="checkbox"],#divMail input[type="checkbox"],
#book .bookinfo_text .ejChkRow input[type="checkbox"]{
	-webkit-appearance:none!important;appearance:none!important;
	box-sizing:border-box!important;
	width:18px!important;height:18px!important;min-height:0!important;max-width:18px!important;
	flex:0 0 18px;display:inline-block;vertical-align:middle;position:relative;
	margin:0!important;padding:0!important;
	border:1.5px solid #B9AF9C!important;border-radius:4px!important;
	background:var(--ej-white)!important;background-image:none!important;
	box-shadow:none!important;cursor:pointer;
	transition:border-color .12s ease, background-color .12s ease;
}
#divPax input[type="checkbox"]:hover,#divHotel input[type="checkbox"]:hover,#divFlight input[type="checkbox"]:hover,#divTicket input[type="checkbox"]:hover,#divDomestic input[type="checkbox"]:hover,#divDirectHotel input[type="checkbox"]:hover,#divContact input[type="checkbox"]:hover,#divCare input[type="checkbox"]:hover,#divMail input[type="checkbox"]:hover{border-color:var(--ej-gold)!important;}
#divPax input[type="checkbox"]:checked,#divHotel input[type="checkbox"]:checked,#divFlight input[type="checkbox"]:checked,#divTicket input[type="checkbox"]:checked,#divDomestic input[type="checkbox"]:checked,#divDirectHotel input[type="checkbox"]:checked,#divContact input[type="checkbox"]:checked,#divCare input[type="checkbox"]:checked,#divMail input[type="checkbox"]:checked{background:var(--ej-navy)!important;border-color:var(--ej-navy)!important;}
#divPax input[type="checkbox"]:checked::after,#divHotel input[type="checkbox"]:checked::after,#divFlight input[type="checkbox"]:checked::after,#divTicket input[type="checkbox"]:checked::after,#divDomestic input[type="checkbox"]:checked::after,#divDirectHotel input[type="checkbox"]:checked::after,#divContact input[type="checkbox"]:checked::after,#divCare input[type="checkbox"]:checked::after,#divMail input[type="checkbox"]:checked::after{
	content:"";position:absolute;left:5px;top:1px;width:4px;height:9px;
	border:solid var(--ej-white);border-width:0 2px 2px 0;transform:rotate(45deg);
}
#divPax input[type="checkbox"]:focus,#divHotel input[type="checkbox"]:focus,#divFlight input[type="checkbox"]:focus,#divTicket input[type="checkbox"]:focus,#divDomestic input[type="checkbox"]:focus,#divDirectHotel input[type="checkbox"]:focus,#divContact input[type="checkbox"]:focus,#divCare input[type="checkbox"]:focus,#divMail input[type="checkbox"]:focus{box-shadow:0 0 0 3px rgba(219,177,102,.45)!important;}
#divPax input[type="checkbox"]:focus:not(:focus-visible),#divHotel input[type="checkbox"]:focus:not(:focus-visible),#divFlight input[type="checkbox"]:focus:not(:focus-visible),#divTicket input[type="checkbox"]:focus:not(:focus-visible),#divDomestic input[type="checkbox"]:focus:not(:focus-visible),#divDirectHotel input[type="checkbox"]:focus:not(:focus-visible),#divContact input[type="checkbox"]:focus:not(:focus-visible),#divCare input[type="checkbox"]:focus:not(:focus-visible),#divMail input[type="checkbox"]:focus:not(:focus-visible){box-shadow:none!important;}
#divPax input[type="checkbox"]:focus-visible,#divHotel input[type="checkbox"]:focus-visible,#divFlight input[type="checkbox"]:focus-visible,#divTicket input[type="checkbox"]:focus-visible,#divDomestic input[type="checkbox"]:focus-visible,#divDirectHotel input[type="checkbox"]:focus-visible,#divContact input[type="checkbox"]:focus-visible,#divCare input[type="checkbox"]:focus-visible,#divMail input[type="checkbox"]:focus-visible{outline:none!important;box-shadow:0 0 0 3px rgba(219,177,102,.45)!important;}

/* A ROW THAT HOLDS NOTHING BUT HIDDEN INPUTS TAKES NO SPACE.
   Several dialogs park their hidden fields in a table row of their own. The row
   renders nothing, but it still took a cell's worth of padding, which is where
   the wide, unexplained band above Cancel and Done came from. */
#divPax td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divHotel td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divFlight td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divTicket td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divDomestic td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divDirectHotel td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divContact td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divCare td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)),#divMail td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)){
	padding:0!important;line-height:0!important;font-size:0!important;
}

/* THE STANDALONE CHECKBOXES USE THE SAME COMPONENT AS THE CHECKLISTS.
   The markup floats the box left and scales it 1.5x, which drew a box half again
   the size of every other control and dropped it out of the row's flow. Put it
   back in the row: same 18px square, its label beside it, both on the card's
   edge, and the label is the hit area the browser already gave us through
   <label for>. */
#divPax input[type="checkbox"],#divHotel input[type="checkbox"],#divFlight input[type="checkbox"],#divTicket input[type="checkbox"],#divDomestic input[type="checkbox"],#divDirectHotel input[type="checkbox"],#divContact input[type="checkbox"],#divCare input[type="checkbox"],#divMail input[type="checkbox"]{transform:none!important;float:none!important;}
#divPax div:has(> input[type="checkbox"] + label),#divHotel div:has(> input[type="checkbox"] + label),#divFlight div:has(> input[type="checkbox"] + label),#divTicket div:has(> input[type="checkbox"] + label),#divDomestic div:has(> input[type="checkbox"] + label),#divDirectHotel div:has(> input[type="checkbox"] + label),#divContact div:has(> input[type="checkbox"] + label),#divCare div:has(> input[type="checkbox"] + label),#divMail div:has(> input[type="checkbox"] + label){
	display:flex!important;align-items:center;gap:10px;
	margin:8px 0 0!important;padding:0!important;
}
#divPax input[type="checkbox"] + label,#divHotel input[type="checkbox"] + label,#divFlight input[type="checkbox"] + label,#divTicket input[type="checkbox"] + label,#divDomestic input[type="checkbox"] + label,#divDirectHotel input[type="checkbox"] + label,#divContact input[type="checkbox"] + label,#divCare input[type="checkbox"] + label,#divMail input[type="checkbox"] + label{
	float:none!important;margin:0!important;cursor:pointer;
	font-family:var(--ej-sans)!important;font-size:16px!important;font-weight:500!important;
	color:var(--ej-ink)!important;line-height:1.4;
}

/* ================================================= the dropdown chevron ==== */
/* THE ARROW GETS A MARGIN.
   A native select paints its arrow hard against the right edge of the box, and no
   property moves it. Draw it ourselves instead: the same chevron in every dropdown
   on the page, set in from the edge by the same 14px the text is set in from the
   left, with room reserved for it so a long option never runs underneath. */
#book .bookinfo_text select,
#divPax select,
#divHotel select,
#divFlight select,
#divTicket select,
#divDomestic select,
#divDirectHotel select,
#divContact select,
#divCare select,
#divMail select{
	-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;
	background-color:var(--ej-white)!important;
	background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B635A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
	background-repeat:no-repeat!important;
	background-position:right 14px center!important;
	background-size:12px 8px!important;
	padding-right:36px!important;
}
/* Internet Explorer / old Edge draw a second arrow of their own */
#book .bookinfo_text select::-ms-expand,
#divPax select::-ms-expand,
#divHotel select::-ms-expand,
#divFlight select::-ms-expand,
#divTicket select::-ms-expand,
#divDomestic select::-ms-expand,
#divDirectHotel select::-ms-expand,
#divContact select::-ms-expand,
#divCare select::-ms-expand,
#divMail select::-ms-expand{display:none;}

/* ============================================ a note is not a field label ==== */
/* THE DIFFERENCE BETWEEN A LABEL AND A SENTENCE.
   Every caption in this markup is a <b> in the first cell of its row, so the eyebrow
   rule turned explanatory notes into 11px uppercase captions as well -- a 29-word
   sentence set in letter-spaced capitals. The form's own authors already made the
   distinction: a caption that names a control ends in a colon, a note ends in a full
   stop. bookingform.autosave.js reads that and marks the notes, which then read as
   what they are: ordinary prose under the field they explain. */
#divPax b.ejNote:not(#ej-x),
#divHotel b.ejNote:not(#ej-x),
#divFlight b.ejNote:not(#ej-x),
#divTicket b.ejNote:not(#ej-x),
#divDomestic b.ejNote:not(#ej-x),
#divDirectHotel b.ejNote:not(#ej-x),
#divContact b.ejNote:not(#ej-x),
#divCare b.ejNote:not(#ej-x),
#divMail b.ejNote:not(#ej-x),
#book .bookinfo_text .ejNote{
	display:block;font-family:var(--ej-sans)!important;font-size:16px!important;
	font-weight:600!important;letter-spacing:0!important;text-transform:none!important;
	color:var(--ej-ink)!important;line-height:1.55;
	margin:0 0 2px!important;
}

/* a traveller the room cannot hold is still listed, but plainly out of reach */
#divPax label.ejChkRow.is-full,
#divHotel label.ejChkRow.is-full,
#divFlight label.ejChkRow.is-full,
#divTicket label.ejChkRow.is-full,
#divDomestic label.ejChkRow.is-full,
#divDirectHotel label.ejChkRow.is-full,
#divContact label.ejChkRow.is-full,
#divCare label.ejChkRow.is-full,
#divMail label.ejChkRow.is-full{opacity:.5;cursor:not-allowed;}
#divPax label.ejChkRow.is-full:hover,
#divHotel label.ejChkRow.is-full:hover,
#divFlight label.ejChkRow.is-full:hover,
#divTicket label.ejChkRow.is-full:hover,
#divDomestic label.ejChkRow.is-full:hover,
#divDirectHotel label.ejChkRow.is-full:hover,
#divContact label.ejChkRow.is-full:hover,
#divCare label.ejChkRow.is-full:hover,
#divMail label.ejChkRow.is-full:hover{background:transparent;}
#divPax label.ejChkRow.is-full input[type="checkbox"],
#divHotel label.ejChkRow.is-full input[type="checkbox"],
#divFlight label.ejChkRow.is-full input[type="checkbox"],
#divTicket label.ejChkRow.is-full input[type="checkbox"],
#divDomestic label.ejChkRow.is-full input[type="checkbox"],
#divDirectHotel label.ejChkRow.is-full input[type="checkbox"],
#divContact label.ejChkRow.is-full input[type="checkbox"],
#divCare label.ejChkRow.is-full input[type="checkbox"],
#divMail label.ejChkRow.is-full input[type="checkbox"]{cursor:not-allowed;border-color:#D8D2C6!important;background:#F4F1EB!important;}

/* ====================================== the traveller checklist as rows ==== */
/* It was a bordered panel narrower than the card, so four ordinary names wrapped
   onto two lines each, and only the 13px box was clickable. The panel is gone --
   the list is as wide as everything else -- and bookingform.autosave.js wraps each
   box and its name in a real <label>, so the whole row is the hit area. */
#divPax [id^="PreCheckPax"],#divHotel [id^="PreCheckPax"],#divFlight [id^="PreCheckPax"],#divTicket [id^="PreCheckPax"],#divDomestic [id^="PreCheckPax"],#divDirectHotel [id^="PreCheckPax"],#divContact [id^="PreCheckPax"],#divCare [id^="PreCheckPax"],#divMail [id^="PreCheckPax"]{
	height:auto!important;max-height:none!important;overflow:visible!important;
	width:100%!important;
	border:0!important;padding:0!important;margin:0!important;
	background:transparent!important;
}
#divPax [id^="checkPax"],#divHotel [id^="checkPax"],#divFlight [id^="checkPax"],#divTicket [id^="checkPax"],#divDomestic [id^="checkPax"],#divDirectHotel [id^="checkPax"],#divContact [id^="checkPax"],#divCare [id^="checkPax"],#divMail [id^="checkPax"]{height:auto!important;max-height:none!important;overflow:visible!important;}
#divPax label.ejChkRow,#divHotel label.ejChkRow,#divFlight label.ejChkRow,#divTicket label.ejChkRow,#divDomestic label.ejChkRow,#divDirectHotel label.ejChkRow,#divContact label.ejChkRow,#divCare label.ejChkRow,#divMail label.ejChkRow{
	display:flex;align-items:center;gap:10px;
	padding:7px 8px;margin:0 0 0 -8px;width:calc(100% + 8px);border-radius:6px;
	cursor:pointer;-webkit-user-select:none;user-select:none;
	transition:background-color .12s ease;
}
#divPax label.ejChkRow:hover,#divHotel label.ejChkRow:hover,#divFlight label.ejChkRow:hover,#divTicket label.ejChkRow:hover,#divDomestic label.ejChkRow:hover,#divDirectHotel label.ejChkRow:hover,#divContact label.ejChkRow:hover,#divCare label.ejChkRow:hover,#divMail label.ejChkRow:hover{background:var(--ej-ivory,#FBF8F2);}
#divPax label.ejChkRow > b,#divHotel label.ejChkRow > b,#divFlight label.ejChkRow > b,#divTicket label.ejChkRow > b,#divDomestic label.ejChkRow > b,#divDirectHotel label.ejChkRow > b,#divContact label.ejChkRow > b,#divCare label.ejChkRow > b,#divMail label.ejChkRow > b,#divPax label.ejChkRow,#divHotel label.ejChkRow,#divFlight label.ejChkRow,#divTicket label.ejChkRow,#divDomestic label.ejChkRow,#divDirectHotel label.ejChkRow,#divContact label.ejChkRow,#divCare label.ejChkRow,#divMail label.ejChkRow{
	font-family:var(--ej-sans)!important;font-size:16px!important;font-weight:500!important;
	color:var(--ej-ink)!important;line-height:1.4;white-space:normal;
}

/* the title band, the same one the form's sections and grids wear */
/* THE BAND IS THE TITLE, NOT THE INTRODUCTION.
   Several dialogs put the title and a paragraph of instructions in the same
   cell, separated by <br>, so painting the cell navy swallowed the prose as
   well -- and a paragraph set inside a title bar reads as decoration rather
   than as something to follow. The cell goes back to being part of the card;
   the heading alone carries the band, bleeding out to the card's edges through
   negative margins, and the prose sits below it on the paper at the same
   indent as every field. */
#divPax > form > table:first-of-type > tbody > tr:first-child > td,#divHotel > form > table:first-of-type > tbody > tr:first-child > td,#divFlight > form > table:first-of-type > tbody > tr:first-child > td,#divTicket > form > table:first-of-type > tbody > tr:first-child > td,#divDomestic > form > table:first-of-type > tbody > tr:first-child > td,#divDirectHotel > form > table:first-of-type > tbody > tr:first-child > td,#divContact > form > table:first-of-type > tbody > tr:first-child > td,#divCare > form > table:first-of-type > tbody > tr:first-child > td,#divMail > form > table:first-of-type > tbody > tr:first-child > td{
	color:var(--ej-ink)!important;
	background:transparent!important;background-image:none!important;
	border-bottom:0!important;
	padding:0 20px 0!important;text-align:left!important;
	font-family:var(--ej-sans)!important;font-size:16px!important;line-height:1.55;
}

#divPax > form > table:first-of-type > tbody > tr:first-child > td b,#divHotel > form > table:first-of-type > tbody > tr:first-child > td b,#divFlight > form > table:first-of-type > tbody > tr:first-child > td b,#divTicket > form > table:first-of-type > tbody > tr:first-child > td b,#divDomestic > form > table:first-of-type > tbody > tr:first-child > td b,#divDirectHotel > form > table:first-of-type > tbody > tr:first-child > td b,#divContact > form > table:first-of-type > tbody > tr:first-child > td b,#divCare > form > table:first-of-type > tbody > tr:first-child > td b,#divMail > form > table:first-of-type > tbody > tr:first-child > td b{
	display:block;margin:0 -20px 14px!important;padding:15px 20px!important;
	background:var(--ej-navy2)!important;
	border-bottom:1px solid var(--ej-gold)!important;
	font-family:var(--ej-sans)!important;font-size:11px!important;font-weight:800!important;
	letter-spacing:2px;text-transform:uppercase;color:var(--ej-gold)!important;
}
/* the line break the markup put between the title and its paragraph is the
   band's own margin now */
#divPax > form > table:first-of-type > tbody > tr:first-child > td b + br,#divHotel > form > table:first-of-type > tbody > tr:first-child > td b + br,#divFlight > form > table:first-of-type > tbody > tr:first-child > td b + br,#divTicket > form > table:first-of-type > tbody > tr:first-child > td b + br,#divDomestic > form > table:first-of-type > tbody > tr:first-child > td b + br,#divDirectHotel > form > table:first-of-type > tbody > tr:first-child > td b + br,#divContact > form > table:first-of-type > tbody > tr:first-child > td b + br,#divCare > form > table:first-of-type > tbody > tr:first-child > td b + br,#divMail > form > table:first-of-type > tbody > tr:first-child > td b + br{display:none!important;}

/* the typing controls are the shared component defined under "the fields" */

/* Cancel and Done, as pills like the rest of the form */
#divPax input[type="button"],#divHotel input[type="button"],#divFlight input[type="button"],#divTicket input[type="button"],#divDomestic input[type="button"],#divDirectHotel input[type="button"],#divContact input[type="button"],#divCare input[type="button"],#divMail input[type="button"]{
	font-family:var(--ej-sans)!important;font-size:12px!important;font-weight:800!important;
	letter-spacing:1.4px;text-transform:uppercase;
	border-radius:4px!important;padding:10px 20px!important;
	width:auto!important;height:auto!important;cursor:pointer;
	color:var(--ej-navy)!important;background:var(--ej-white)!important;
	border:1px solid #CFC8BA!important;box-shadow:none!important;float:none!important;
}
#divPax input[type="button"][value="Done"],#divHotel input[type="button"][value="Done"],#divFlight input[type="button"][value="Done"],#divTicket input[type="button"][value="Done"],#divDomestic input[type="button"][value="Done"],#divDirectHotel input[type="button"][value="Done"],#divContact input[type="button"][value="Done"],#divCare input[type="button"][value="Done"],#divMail input[type="button"][value="Done"],#divPax input[type="button"][value="Save"],#divHotel input[type="button"][value="Save"],#divFlight input[type="button"][value="Save"],#divTicket input[type="button"][value="Save"],#divDomestic input[type="button"][value="Save"],#divDirectHotel input[type="button"][value="Save"],#divContact input[type="button"][value="Save"],#divCare input[type="button"][value="Save"],#divMail input[type="button"][value="Save"]{
	color:var(--ej-navy)!important;background:var(--ej-gold)!important;border-color:var(--ej-gold)!important;
}


/* room to breathe: air under the title band, and above the action buttons */
#divPax > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divHotel > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divFlight > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divTicket > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divDomestic > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divDirectHotel > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divContact > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divCare > form > table:first-of-type > tbody > tr:nth-child(2) > td,#divMail > form > table:first-of-type > tbody > tr:nth-child(2) > td{
	padding-top:16px!important;
}
/* Cancel and Done stay on the right, where a dialog's actions belong. Their row is
   still a table row while the field rows above are blocks, so its column had
   collapsed and the buttons sat stranded at the left. Give the row the full card
   width and push its contents right. */
#divPax tr:has(input[type="button"]),#divHotel tr:has(input[type="button"]),#divFlight tr:has(input[type="button"]),#divTicket tr:has(input[type="button"]),#divDomestic tr:has(input[type="button"]),#divDirectHotel tr:has(input[type="button"]),#divContact tr:has(input[type="button"]),#divCare tr:has(input[type="button"]),#divMail tr:has(input[type="button"]){
	display:block!important;width:100%!important;
}
#divPax tr:has(input[type="button"]) > td,#divHotel tr:has(input[type="button"]) > td,#divFlight tr:has(input[type="button"]) > td,#divTicket tr:has(input[type="button"]) > td,#divDomestic tr:has(input[type="button"]) > td,#divDirectHotel tr:has(input[type="button"]) > td,#divContact tr:has(input[type="button"]) > td,#divCare tr:has(input[type="button"]) > td,#divMail tr:has(input[type="button"]) > td{
	display:block!important;width:100%!important;text-align:right!important;
}
#divPax tr.formActionButtons > td,#divHotel tr.formActionButtons > td,#divFlight tr.formActionButtons > td,#divTicket tr.formActionButtons > td,#divDomestic tr.formActionButtons > td,#divDirectHotel tr.formActionButtons > td,#divContact tr.formActionButtons > td,#divCare tr.formActionButtons > td,#divMail tr.formActionButtons > td{
	padding:14px 20px 16px!important;
}
#divPax > form > table:last-of-type > tbody > tr:last-child > td,#divHotel > form > table:last-of-type > tbody > tr:last-child > td,#divFlight > form > table:last-of-type > tbody > tr:last-child > td,#divTicket > form > table:last-of-type > tbody > tr:last-child > td,#divDomestic > form > table:last-of-type > tbody > tr:last-child > td,#divDirectHotel > form > table:last-of-type > tbody > tr:last-child > td,#divContact > form > table:last-of-type > tbody > tr:last-child > td,#divCare > form > table:last-of-type > tbody > tr:last-child > td,#divMail > form > table:last-of-type > tbody > tr:last-child > td{
	padding-bottom:16px!important;
}

/* the scrollbars a dialog and its inner panels show: thin, and in the palette */
#divPax,#divHotel,#divFlight,#divTicket,#divDomestic,#divDirectHotel,#divContact,#divCare,#divMail,#divPax *,#divHotel *,#divFlight *,#divTicket *,#divDomestic *,#divDirectHotel *,#divContact *,#divCare *,#divMail *{
	scrollbar-width:thin;scrollbar-color:#C9BFA8 transparent;
}
#divPax::-webkit-scrollbar,#divHotel::-webkit-scrollbar,#divFlight::-webkit-scrollbar,#divTicket::-webkit-scrollbar,#divDomestic::-webkit-scrollbar,#divDirectHotel::-webkit-scrollbar,#divContact::-webkit-scrollbar,#divCare::-webkit-scrollbar,#divMail::-webkit-scrollbar,#divPax *::-webkit-scrollbar,#divHotel *::-webkit-scrollbar,#divFlight *::-webkit-scrollbar,#divTicket *::-webkit-scrollbar,#divDomestic *::-webkit-scrollbar,#divDirectHotel *::-webkit-scrollbar,#divContact *::-webkit-scrollbar,#divCare *::-webkit-scrollbar,#divMail *::-webkit-scrollbar{
	width:8px;height:8px;
}
#divPax::-webkit-scrollbar-track,#divHotel::-webkit-scrollbar-track,#divFlight::-webkit-scrollbar-track,#divTicket::-webkit-scrollbar-track,#divDomestic::-webkit-scrollbar-track,#divDirectHotel::-webkit-scrollbar-track,#divContact::-webkit-scrollbar-track,#divCare::-webkit-scrollbar-track,#divMail::-webkit-scrollbar-track,#divPax *::-webkit-scrollbar-track,#divHotel *::-webkit-scrollbar-track,#divFlight *::-webkit-scrollbar-track,#divTicket *::-webkit-scrollbar-track,#divDomestic *::-webkit-scrollbar-track,#divDirectHotel *::-webkit-scrollbar-track,#divContact *::-webkit-scrollbar-track,#divCare *::-webkit-scrollbar-track,#divMail *::-webkit-scrollbar-track{
	background:transparent;
}
#divPax::-webkit-scrollbar-thumb,#divHotel::-webkit-scrollbar-thumb,#divFlight::-webkit-scrollbar-thumb,#divTicket::-webkit-scrollbar-thumb,#divDomestic::-webkit-scrollbar-thumb,#divDirectHotel::-webkit-scrollbar-thumb,#divContact::-webkit-scrollbar-thumb,#divCare::-webkit-scrollbar-thumb,#divMail::-webkit-scrollbar-thumb,#divPax *::-webkit-scrollbar-thumb,#divHotel *::-webkit-scrollbar-thumb,#divFlight *::-webkit-scrollbar-thumb,#divTicket *::-webkit-scrollbar-thumb,#divDomestic *::-webkit-scrollbar-thumb,#divDirectHotel *::-webkit-scrollbar-thumb,#divContact *::-webkit-scrollbar-thumb,#divCare *::-webkit-scrollbar-thumb,#divMail *::-webkit-scrollbar-thumb{
	background:#C9BFA8;border-radius:999px;border:2px solid transparent;background-clip:content-box;
}
#divPax::-webkit-scrollbar-thumb:hover,#divHotel::-webkit-scrollbar-thumb:hover,#divFlight::-webkit-scrollbar-thumb:hover,#divTicket::-webkit-scrollbar-thumb:hover,#divDomestic::-webkit-scrollbar-thumb:hover,#divDirectHotel::-webkit-scrollbar-thumb:hover,#divContact::-webkit-scrollbar-thumb:hover,#divCare::-webkit-scrollbar-thumb:hover,#divMail::-webkit-scrollbar-thumb:hover,#divPax *::-webkit-scrollbar-thumb:hover,#divHotel *::-webkit-scrollbar-thumb:hover,#divFlight *::-webkit-scrollbar-thumb:hover,#divTicket *::-webkit-scrollbar-thumb:hover,#divDomestic *::-webkit-scrollbar-thumb:hover,#divDirectHotel *::-webkit-scrollbar-thumb:hover,#divContact *::-webkit-scrollbar-thumb:hover,#divCare *::-webkit-scrollbar-thumb:hover,#divMail *::-webkit-scrollbar-thumb:hover{
	background:var(--ej-gold);background-clip:content-box;
}

/* ========================================================= small screens ==== */
@media (max-width:768px){
	#book .bookingformtitle{font-size:24px!important;padding:14px 16px 12px;margin-top:24px;}
	#book .bookinfo_text{padding:16px 16px 18px;}
	#book .bookinfo_text p,
	#book .bookinfo_text span,
	#book .bookinfo_text li,
	#book .bookinfo_text td,
	#book .bookinfo_text b,
	#book .bookinfo_text label,
	#book .bookinfo_text div{font-size:17px!important;}
	/* the site sizes links here with a two-id :not() chain: out-rank it */
	#book .bookinfo_text a:not(#ej-x):not(#ej-y){font-size:17px!important;}
	#book form > p,#book form > h5{font-size:17px!important;}
	/* the boxes a guest types into follow the same step up */
	#book .bookinfo_text textarea,
	#book .bookinfo_text input[type="text"],
	#book .bookinfo_text input[type="email"],
	#book .bookinfo_text input[type="tel"],
	#book .bookinfo_text select{font-size:17px!important;}
	.ejOpt{padding:12px 13px;}
	/* the mobile sheet lays every input out as a block and scales it: the hidden
	   native control must stay out of the way */
	.bookinfo_text .ejOpt input[type="radio"],
	.bookinfo_text .ejOpt input[type="checkbox"]{
		display:block!important;width:1px!important;height:1px!important;
		margin:0!important;transform:none!important;
	}
	#book textarea#ccnumber.ejCardField{width:calc(10ch + 22px);}

	/* THE ADD / CHANGE DIALOGS ON A PHONE.
	   They are laid out as wide desktop tables, several of them wider than the
	   screen. Nothing constrained them: the page merely LOOKED fine because
	   css/webquote-css-minified.css sets html{overflow-x:hidden}, which clips the
	   overflow rather than fixing it, so part of a dialog was simply unreachable.
	   Cap each one to the viewport, and let a genuinely wide one scroll inside
	   itself instead of pushing the page sideways. */
	#divPax,#divHotel,#divFlight,#divTicket,#divDomestic,
	#divDirectHotel,#divContact,#divCare,#divMail{
		max-width:100vw!important;box-sizing:border-box!important;
		overflow-x:auto!important;-webkit-overflow-scrolling:touch;
	}
	#divPax table,#divHotel table,#divFlight table,#divTicket table,
	#divDomestic table,#divDirectHotel table,#divContact table,
	#divCare table,#divMail table{max-width:100%!important;}
	#book .src_btn2{width:auto!important;max-width:none!important;}
	#ejSaveToast{top:10px;right:10px;font-size:13px;padding:9px 14px;}
}
/* ====================================================== small screens ====== */
/* THE PHONE LAYOUT IS THE SAME LAYOUT.
   bookingform-responsive.min.css solves, crudely, the problem this stylesheet now
   solves properly: it forces every cell and control to width:100%, floats the three
   parts of a date at 33% each, splits the traveller rows 10%/90%, and puts the
   checklist back inside a 125px scroller. Stacked labels over full-width fields is
   already what a phone wants, so the answer is not a second layout -- it is to stop
   the old one from fighting this one. Everything below either neutralises a legacy
   override or restates a rule this stylesheet already makes on the desktop.
   The selectors carry :not(#ej-x) purely to out-rank "div#divPax ..." by one id. */
@media (max-width:768px){

	/* the legacy sheet hangs 5px under every cell, which is not the rhythm */
	#divPax td:not(#ej-x),
	#divHotel td:not(#ej-x),
	#divFlight td:not(#ej-x),
	#divTicket td:not(#ej-x),
	#divDomestic td:not(#ej-x),
	#divDirectHotel td:not(#ej-x),
	#divContact td:not(#ej-x),
	#divCare td:not(#ej-x),
	#divMail td:not(#ej-x){
		margin-bottom:0!important;
		padding-left:16px!important;padding-right:16px!important;
	}

	/* the inset is carried by the outermost cell here too, so a field inside a
	   nested table is not pushed in twice */
	#divPax td td:not(#ej-x),
	#divHotel td td:not(#ej-x),
	#divFlight td td:not(#ej-x),
	#divTicket td td:not(#ej-x),
	#divDomestic td td:not(#ej-x),
	#divDirectHotel td td:not(#ej-x),
	#divContact td td:not(#ej-x),
	#divCare td td:not(#ej-x),
	#divMail td td:not(#ej-x){padding-left:0!important;padding-right:0!important;}

	/* the title band keeps its own padding and its left edge */
	#divPax > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divHotel > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divFlight > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divTicket > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divDomestic > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divDirectHotel > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divContact > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divCare > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y),
	#divMail > form > table:first-of-type > tbody > tr:first-child > td:not(#ej-x):not(#ej-y){padding:0 16px 0!important;text-align:left!important;}
	#divPax > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divHotel > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divFlight > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divTicket > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divDomestic > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divDirectHotel > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divContact > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divCare > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y),
	#divMail > form > table:first-of-type > tbody > tr:first-child > td b:not(#ej-x):not(#ej-y){
		display:block!important;margin:0 -16px 14px!important;padding:15px 16px!important;
		text-align:left!important;background:var(--ej-navy2)!important;
		font-family:var(--ej-sans)!important;font-size:11px!important;font-weight:800!important;
		letter-spacing:2px!important;text-transform:uppercase!important;
		color:var(--ej-gold)!important;
		border-bottom:1px solid var(--ej-gold)!important;
	}

	/* THE CHECKLIST IS NOT A WINDOW WITHIN A WINDOW HERE EITHER.
	   #PreCheckPaxFlight and friends are pinned to 125px with their own scrollbar,
	   inside a dialog that is already full-screen and scrolling. */
	#divPax [id^="PreCheckPax"]:not(#ej-x),
	#divHotel [id^="PreCheckPax"]:not(#ej-x),
	#divFlight [id^="PreCheckPax"]:not(#ej-x),
	#divTicket [id^="PreCheckPax"]:not(#ej-x),
	#divDomestic [id^="PreCheckPax"]:not(#ej-x),
	#divDirectHotel [id^="PreCheckPax"]:not(#ej-x),
	#divContact [id^="PreCheckPax"]:not(#ej-x),
	#divCare [id^="PreCheckPax"]:not(#ej-x),
	#divMail [id^="PreCheckPax"]:not(#ej-x){
		height:auto!important;min-height:0!important;max-height:none!important;
		overflow:visible!important;border:0!important;padding:0!important;
		background:transparent!important;
	}
	#divPax [id^="checkPax"]:not(#ej-x),
	#divHotel [id^="checkPax"]:not(#ej-x),
	#divFlight [id^="checkPax"]:not(#ej-x),
	#divTicket [id^="checkPax"]:not(#ej-x),
	#divDomestic [id^="checkPax"]:not(#ej-x),
	#divDirectHotel [id^="checkPax"]:not(#ej-x),
	#divContact [id^="checkPax"]:not(#ej-x),
	#divCare [id^="checkPax"]:not(#ej-x),
	#divMail [id^="checkPax"]:not(#ej-x){
		height:auto!important;max-height:none!important;overflow:visible!important;
	}
	/* the row is one object, not a 10% box beside a 90% name */
	#divPax [id^="checkPax"] *:not(#ej-x),
	#divHotel [id^="checkPax"] *:not(#ej-x),
	#divFlight [id^="checkPax"] *:not(#ej-x),
	#divTicket [id^="checkPax"] *:not(#ej-x),
	#divDomestic [id^="checkPax"] *:not(#ej-x),
	#divDirectHotel [id^="checkPax"] *:not(#ej-x),
	#divContact [id^="checkPax"] *:not(#ej-x),
	#divCare [id^="checkPax"] *:not(#ej-x),
	#divMail [id^="checkPax"] *:not(#ej-x){
		float:none!important;width:auto!important;text-align:left!important;
	}
	#divPax label.ejChkRow:not(#ej-x),
	#divHotel label.ejChkRow:not(#ej-x),
	#divFlight label.ejChkRow:not(#ej-x),
	#divTicket label.ejChkRow:not(#ej-x),
	#divDomestic label.ejChkRow:not(#ej-x),
	#divDirectHotel label.ejChkRow:not(#ej-x),
	#divContact label.ejChkRow:not(#ej-x),
	#divCare label.ejChkRow:not(#ej-x),
	#divMail label.ejChkRow:not(#ej-x){
		display:flex!important;align-items:center;gap:10px;width:calc(100% + 8px)!important;
	}
	#divPax [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divHotel [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divFlight [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divTicket [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divDomestic [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divDirectHotel [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divContact [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divCare [id^="checkPax"] input[type="checkbox"]:not(#ej-x),
	#divMail [id^="checkPax"] input[type="checkbox"]:not(#ej-x){
		width:18px!important;min-width:18px!important;max-width:18px!important;
		height:18px!important;float:none!important;margin:0!important;padding:0!important;
	}
	#divPax label.ejChkRow > b:not(#ej-x),
	#divHotel label.ejChkRow > b:not(#ej-x),
	#divFlight label.ejChkRow > b:not(#ej-x),
	#divTicket label.ejChkRow > b:not(#ej-x),
	#divDomestic label.ejChkRow > b:not(#ej-x),
	#divDirectHotel label.ejChkRow > b:not(#ej-x),
	#divContact label.ejChkRow > b:not(#ej-x),
	#divCare label.ejChkRow > b:not(#ej-x),
	#divMail label.ejChkRow > b:not(#ej-x){
		width:auto!important;float:none!important;margin:0!important;padding:0!important;
		font-size:17px!important;
	}

	/* A DATE STAYS ONE CONTROL.
	   The legacy sheet floats each part at 33% of whatever box it lands in; inside a
	   cell that sizes to its content that resolves to a few pixels, which is how the
	   month, day and year became three slivers. Lay the row out as a flex line and
	   let the three parts share it. */
	#divPax td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divHotel td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divFlight td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divTicket td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divDomestic td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divDirectHotel td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divContact td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divCare td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x),
	#divMail td table > tbody > tr:has(> td > select[name$="Month"]):not(#ej-x){
		display:flex!important;align-items:center;gap:8px;width:100%!important;
	}
	#divPax td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divHotel td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divFlight td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divTicket td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divDomestic td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divDirectHotel td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divContact td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divCare td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x),
	#divMail td table > tbody > tr:has(> td > select[name$="Month"]) > td:not(#ej-x){
		display:block!important;flex:1 1 0;min-width:0;width:auto!important;
		margin-bottom:0!important;padding:0!important;
	}
	#divPax select[name$="Month"]:not(#ej-x),
	#divHotel select[name$="Month"]:not(#ej-x),
	#divFlight select[name$="Month"]:not(#ej-x),
	#divTicket select[name$="Month"]:not(#ej-x),
	#divDomestic select[name$="Month"]:not(#ej-x),
	#divDirectHotel select[name$="Month"]:not(#ej-x),
	#divContact select[name$="Month"]:not(#ej-x),
	#divCare select[name$="Month"]:not(#ej-x),
	#divMail select[name$="Month"]:not(#ej-x),
	#divPax select[name$="Day"]:not(#ej-x),
	#divHotel select[name$="Day"]:not(#ej-x),
	#divFlight select[name$="Day"]:not(#ej-x),
	#divTicket select[name$="Day"]:not(#ej-x),
	#divDomestic select[name$="Day"]:not(#ej-x),
	#divDirectHotel select[name$="Day"]:not(#ej-x),
	#divContact select[name$="Day"]:not(#ej-x),
	#divCare select[name$="Day"]:not(#ej-x),
	#divMail select[name$="Day"]:not(#ej-x),
	#divPax select[name$="Year"]:not(#ej-x),
	#divHotel select[name$="Year"]:not(#ej-x),
	#divFlight select[name$="Year"]:not(#ej-x),
	#divTicket select[name$="Year"]:not(#ej-x),
	#divDomestic select[name$="Year"]:not(#ej-x),
	#divDirectHotel select[name$="Year"]:not(#ej-x),
	#divContact select[name$="Year"]:not(#ej-x),
	#divCare select[name$="Year"]:not(#ej-x),
	#divMail select[name$="Year"]:not(#ej-x),
	#divPax select[name$="Hour"]:not(#ej-x),
	#divHotel select[name$="Hour"]:not(#ej-x),
	#divFlight select[name$="Hour"]:not(#ej-x),
	#divTicket select[name$="Hour"]:not(#ej-x),
	#divDomestic select[name$="Hour"]:not(#ej-x),
	#divDirectHotel select[name$="Hour"]:not(#ej-x),
	#divContact select[name$="Hour"]:not(#ej-x),
	#divCare select[name$="Hour"]:not(#ej-x),
	#divMail select[name$="Hour"]:not(#ej-x),
	#divPax select[name$="Min"]:not(#ej-x),
	#divHotel select[name$="Min"]:not(#ej-x),
	#divFlight select[name$="Min"]:not(#ej-x),
	#divTicket select[name$="Min"]:not(#ej-x),
	#divDomestic select[name$="Min"]:not(#ej-x),
	#divDirectHotel select[name$="Min"]:not(#ej-x),
	#divContact select[name$="Min"]:not(#ej-x),
	#divCare select[name$="Min"]:not(#ej-x),
	#divMail select[name$="Min"]:not(#ej-x),
	#divPax select[name$="TT"]:not(#ej-x),
	#divHotel select[name$="TT"]:not(#ej-x),
	#divFlight select[name$="TT"]:not(#ej-x),
	#divTicket select[name$="TT"]:not(#ej-x),
	#divDomestic select[name$="TT"]:not(#ej-x),
	#divDirectHotel select[name$="TT"]:not(#ej-x),
	#divContact select[name$="TT"]:not(#ej-x),
	#divCare select[name$="TT"]:not(#ej-x),
	#divMail select[name$="TT"]:not(#ej-x){
		width:100%!important;min-width:0!important;max-width:none!important;
		float:none!important;display:block!important;
	}
	/* the day dropdown is rebuilt into a wrapper div, which has to flex too */
	#divPax [id^="divDays"]:not(#ej-x),
	#divHotel [id^="divDays"]:not(#ej-x),
	#divFlight [id^="divDays"]:not(#ej-x),
	#divTicket [id^="divDays"]:not(#ej-x),
	#divDomestic [id^="divDays"]:not(#ej-x),
	#divDirectHotel [id^="divDays"]:not(#ej-x),
	#divContact [id^="divDays"]:not(#ej-x),
	#divCare [id^="divDays"]:not(#ej-x),
	#divMail [id^="divDays"]:not(#ej-x),
	#divPax [id^="Days"]:not(#ej-x),
	#divHotel [id^="Days"]:not(#ej-x),
	#divFlight [id^="Days"]:not(#ej-x),
	#divTicket [id^="Days"]:not(#ej-x),
	#divDomestic [id^="Days"]:not(#ej-x),
	#divDirectHotel [id^="Days"]:not(#ej-x),
	#divContact [id^="Days"]:not(#ej-x),
	#divCare [id^="Days"]:not(#ej-x),
	#divMail [id^="Days"]:not(#ej-x){
		display:block!important;width:100%!important;float:none!important;
	}
	/* the time row on the flights card is a top-level row, not a nested table */
	#divPax tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divFlight tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divTicket tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divDomestic tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divContact tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divCare tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x),
	#divMail tr:has(> td > select[name$="Hour"]) > td:not(:first-child):not(#ej-x){
		display:flex!important;align-items:center;gap:8px;width:100%!important;
		padding-left:0!important;padding-right:0!important;
	}
	#divPax tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divFlight tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divTicket tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divDomestic tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divDirectHotel tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divContact tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divCare tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x),
	#divMail tr:has(> td > select[name$="Hour"]) > td:not(:first-child) > select:not(#ej-x){
		display:block!important;flex:1 1 0;min-width:0;width:auto!important;
		margin-bottom:0!important;
	}

	/* the flights sheet strips the padding off every control in that dialog */
	#divPax input[type="text"]:not(#ej-x),
	#divHotel input[type="text"]:not(#ej-x),
	#divFlight input[type="text"]:not(#ej-x),
	#divTicket input[type="text"]:not(#ej-x),
	#divDomestic input[type="text"]:not(#ej-x),
	#divDirectHotel input[type="text"]:not(#ej-x),
	#divContact input[type="text"]:not(#ej-x),
	#divCare input[type="text"]:not(#ej-x),
	#divMail input[type="text"]:not(#ej-x),
	#divPax select:not(#ej-x),
	#divHotel select:not(#ej-x),
	#divFlight select:not(#ej-x),
	#divTicket select:not(#ej-x),
	#divDomestic select:not(#ej-x),
	#divDirectHotel select:not(#ej-x),
	#divContact select:not(#ej-x),
	#divCare select:not(#ej-x),
	#divMail select:not(#ej-x),
	#divPax textarea:not(#ej-x),
	#divHotel textarea:not(#ej-x),
	#divFlight textarea:not(#ej-x),
	#divTicket textarea:not(#ej-x),
	#divDomestic textarea:not(#ej-x),
	#divDirectHotel textarea:not(#ej-x),
	#divContact textarea:not(#ej-x),
	#divCare textarea:not(#ej-x),
	#divMail textarea:not(#ej-x){
		font-size:17px!important;padding:10px 12px!important;
		min-height:46px;line-height:1.5!important;
		border:1px solid #CFC8BA!important;border-radius:6px!important;
		background-color:var(--ej-white)!important;
	}
	#divPax select:not(#ej-x),
	#divHotel select:not(#ej-x),
	#divFlight select:not(#ej-x),
	#divTicket select:not(#ej-x),
	#divDomestic select:not(#ej-x),
	#divDirectHotel select:not(#ej-x),
	#divContact select:not(#ej-x),
	#divCare select:not(#ej-x),
	#divMail select:not(#ej-x){padding-right:36px!important;background-position:right 12px center!important;}
	#divPax textarea:not(#ej-x),
	#divHotel textarea:not(#ej-x),
	#divFlight textarea:not(#ej-x),
	#divTicket textarea:not(#ej-x),
	#divDomestic textarea:not(#ej-x),
	#divDirectHotel textarea:not(#ej-x),
	#divContact textarea:not(#ej-x),
	#divCare textarea:not(#ej-x),
	#divMail textarea:not(#ej-x){min-height:78px;}

	/* the month holds the longest word, so it gets the longest share of the line */
	#divPax td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divHotel td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divFlight td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divTicket td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divDomestic td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divDirectHotel td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divContact td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divCare td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x),
	#divMail td table > tbody > tr:has(> td > select[name$="Month"]) > td:has(> select[name$="Month"]):not(#ej-x){flex:1.35 1 0;}
	/* and the chevron sits closer in, to leave the text its room */
	#divPax select:not(#ej-x),
	#divHotel select:not(#ej-x),
	#divFlight select:not(#ej-x),
	#divTicket select:not(#ej-x),
	#divDomestic select:not(#ej-x),
	#divDirectHotel select:not(#ej-x),
	#divContact select:not(#ej-x),
	#divCare select:not(#ej-x),
	#divMail select:not(#ej-x){padding-right:28px!important;background-position:right 9px center!important;}

	/* a dropdown fills its row, the way the text fields beside it already do */
	#divPax select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divHotel select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divFlight select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divTicket select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divDomestic select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divDirectHotel select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divContact select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divCare select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x),
	#divMail select:not([name$="Month"]):not([name$="Day"]):not([name$="Year"]):not([name$="Hour"]):not([name$="Min"]):not([name$="TT"]):not(#ej-x){width:100%!important;max-width:100%!important;}

	/* a text field fills its row too: the markup gives a few of them a fixed pixel
	   width from the old side-by-side layout, and stacked they just look unfinished */
	#divPax input[type="text"]:not(#ej-x),
	#divHotel input[type="text"]:not(#ej-x),
	#divFlight input[type="text"]:not(#ej-x),
	#divTicket input[type="text"]:not(#ej-x),
	#divDomestic input[type="text"]:not(#ej-x),
	#divDirectHotel input[type="text"]:not(#ej-x),
	#divContact input[type="text"]:not(#ej-x),
	#divCare input[type="text"]:not(#ej-x),
	#divMail input[type="text"]:not(#ej-x){width:100%!important;max-width:100%!important;}

	/* Cancel and Done are buttons, not two halves of a bar */
	#divPax input[type="button"]:not(#ej-x),
	#divHotel input[type="button"]:not(#ej-x),
	#divFlight input[type="button"]:not(#ej-x),
	#divTicket input[type="button"]:not(#ej-x),
	#divDomestic input[type="button"]:not(#ej-x),
	#divDirectHotel input[type="button"]:not(#ej-x),
	#divContact input[type="button"]:not(#ej-x),
	#divCare input[type="button"]:not(#ej-x),
	#divMail input[type="button"]:not(#ej-x){
		display:inline-block!important;width:auto!important;float:none!important;
		height:auto!important;font-size:13px!important;padding:11px 20px!important;
		margin-bottom:0!important;
	}
	#divPax tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divHotel tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divFlight tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divTicket tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divDomestic tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divDirectHotel tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divContact tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divCare tr:has(> td > input[type="button"]) > td:not(#ej-x),
	#divMail tr:has(> td > input[type="button"]) > td:not(#ej-x){text-align:right!important;}

	/* EVERY DIALOG IS A FULL-SCREEN CARD.
	   The legacy sheet names eight of the nine by hand and never mentions the flight
	   ticket dialog at all, so that one was left with neither the phone layout nor
	   the desktop one. State it once, for all of them. */
	#divPax:not(#ej-x),
	#divHotel:not(#ej-x),
	#divFlight:not(#ej-x),
	#divTicket:not(#ej-x),
	#divDomestic:not(#ej-x),
	#divDirectHotel:not(#ej-x),
	#divContact:not(#ej-x),
	#divCare:not(#ej-x),
	#divMail:not(#ej-x){
		/* A DIALOG IS AS TALL AS ITS CONTENTS.
		   The legacy sheet pins every one of them to 100vh, so a card holding two
		   fields still covered the whole screen and left the guest looking at a
		   white page. inset with auto margins centres it against the viewport and
		   lets it take the height it needs, up to nearly the full screen. */
		position:fixed!important;inset:8px!important;margin:auto!important;
		left:8px!important;right:8px!important;top:8px!important;bottom:8px!important;
		width:auto!important;max-width:none!important;
		height:-moz-fit-content!important;height:fit-content!important;
		min-height:0!important;max-height:calc(100vh - 16px)!important;
		display:block!important;overflow-y:auto!important;overflow-x:hidden!important;
		border-radius:8px;box-shadow:0 18px 48px rgba(0,22,40,.38);
	}

	/* the same stacking the legacy sheet gives the other eight */
	#divPax table:not(#ej-x),
	#divHotel table:not(#ej-x),
	#divFlight table:not(#ej-x),
	#divTicket table:not(#ej-x),
	#divDomestic table:not(#ej-x),
	#divDirectHotel table:not(#ej-x),
	#divContact table:not(#ej-x),
	#divCare table:not(#ej-x),
	#divMail table:not(#ej-x),
	#divPax tbody:not(#ej-x),
	#divHotel tbody:not(#ej-x),
	#divFlight tbody:not(#ej-x),
	#divTicket tbody:not(#ej-x),
	#divDomestic tbody:not(#ej-x),
	#divDirectHotel tbody:not(#ej-x),
	#divContact tbody:not(#ej-x),
	#divCare tbody:not(#ej-x),
	#divMail tbody:not(#ej-x),
	#divPax tr:not(#ej-x),
	#divHotel tr:not(#ej-x),
	#divFlight tr:not(#ej-x),
	#divTicket tr:not(#ej-x),
	#divDomestic tr:not(#ej-x),
	#divDirectHotel tr:not(#ej-x),
	#divContact tr:not(#ej-x),
	#divCare tr:not(#ej-x),
	#divMail tr:not(#ej-x),
	#divPax td:not(#ej-x),
	#divHotel td:not(#ej-x),
	#divFlight td:not(#ej-x),
	#divTicket td:not(#ej-x),
	#divDomestic td:not(#ej-x),
	#divDirectHotel td:not(#ej-x),
	#divContact td:not(#ej-x),
	#divCare td:not(#ej-x),
	#divMail td:not(#ej-x){
		display:block!important;width:100%!important;
	}

	/* the flights sheet pads its tables 20px, which lands on top of the card's own
	   inset and gives that one dialog a wider margin than the other eight */
	#divPax table:not(#ej-x),
	#divHotel table:not(#ej-x),
	#divFlight table:not(#ej-x),
	#divTicket table:not(#ej-x),
	#divDomestic table:not(#ej-x),
	#divDirectHotel table:not(#ej-x),
	#divContact table:not(#ej-x),
	#divCare table:not(#ej-x),
	#divMail table:not(#ej-x){padding:0!important;margin:0!important;}

	/* THE LABEL IS THE SAME OBJECT ON A PHONE.
	   Its typography lives in the desktop block, so on a small screen the eyebrows
	   fell back to ordinary bold text and stopped reading as labels. */
	#divPax table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divHotel table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divFlight table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divTicket table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divDomestic table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divDirectHotel table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divContact table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divCare table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divMail table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x){
		display:block!important;font-family:var(--ej-sans)!important;
		font-size:12px!important;font-weight:800!important;letter-spacing:1.4px!important;
		text-transform:uppercase!important;color:var(--ej-navy)!important;
		margin:0 0 6px!important;
	}
	#divPax table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divHotel table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divFlight table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divTicket table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divDomestic table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divDirectHotel table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divContact table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divCare table tr:has(> td:first-child > b) > td:first-child:not(#ej-x),
	#divMail table tr:has(> td:first-child > b) > td:first-child:not(#ej-x){padding-top:14px!important;padding-bottom:0!important;}
	#divPax table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divHotel table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divFlight table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divTicket table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divDomestic table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divDirectHotel table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divContact table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divCare table tr:has(> td:first-child > b) > td:last-child:not(#ej-x),
	#divMail table tr:has(> td:first-child > b) > td:last-child:not(#ej-x){padding-bottom:0!important;}
	/* and a note is still a note */
	#divPax b.ejNote:not(#ej-x):not(#ej-y),
	#divHotel b.ejNote:not(#ej-x):not(#ej-y),
	#divFlight b.ejNote:not(#ej-x):not(#ej-y),
	#divTicket b.ejNote:not(#ej-x):not(#ej-y),
	#divDomestic b.ejNote:not(#ej-x):not(#ej-y),
	#divDirectHotel b.ejNote:not(#ej-x):not(#ej-y),
	#divContact b.ejNote:not(#ej-x):not(#ej-y),
	#divCare b.ejNote:not(#ej-x):not(#ej-y),
	#divMail b.ejNote:not(#ej-x):not(#ej-y){
		font-size:17px!important;font-weight:600!important;letter-spacing:0!important;
		text-transform:none!important;color:var(--ej-ink)!important;line-height:1.55;
	}
	/* the two flight blocks keep their rank */
	#divFlight b[class*="Caption"]:not(#ej-x):not(#ej-y):not([style*="none"]){
		display:block!important;font-family:var(--ej-serif)!important;font-size:20px!important;
		font-weight:600!important;letter-spacing:.2px!important;text-transform:none!important;
		color:var(--ej-navy)!important;margin:0 0 4px!important;padding:0 0 8px!important;
		border-bottom:1px solid var(--ej-gold)!important;
	}

	/* a row that holds only hidden inputs still took a cell's worth of space */
	#divPax td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divHotel td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divFlight td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divTicket td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divDomestic td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divDirectHotel td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divContact td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divCare td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x),
	#divMail td:has(> input[type="hidden"]):not(:has(input:not([type="hidden"]))):not(:has(select)):not(:has(textarea)):not(:has(b)):not(#ej-x){padding:0!important;margin:0!important;line-height:0!important;font-size:0!important;}
	/* and the empty half of the action row */
	#divPax tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divHotel tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divFlight tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divTicket tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divDomestic tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divDirectHotel tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divContact tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divCare tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x),
	#divMail tr:has(> td > input[type="button"]) > td:not(:has(input)):not(:has(select)):not(:has(textarea)):not(:has(b)):not(:has(a)):not(:has(img)):not(#ej-x){display:none!important;}
	#divPax tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divHotel tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divFlight tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divTicket tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divDomestic tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divDirectHotel tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divContact tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divCare tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x),
	#divMail tr:has(> td > input[type="button"]) > td:has(> input[type="button"]):not(#ej-x){padding:14px 16px 16px!important;text-align:right!important;}

	/* the checklist rows sit on the card's edge like everything else */
	#divPax label.ejChkRow:not(#ej-x),
	#divHotel label.ejChkRow:not(#ej-x),
	#divFlight label.ejChkRow:not(#ej-x),
	#divTicket label.ejChkRow:not(#ej-x),
	#divDomestic label.ejChkRow:not(#ej-x),
	#divDirectHotel label.ejChkRow:not(#ej-x),
	#divContact label.ejChkRow:not(#ej-x),
	#divCare label.ejChkRow:not(#ej-x),
	#divMail label.ejChkRow:not(#ej-x){padding:8px!important;margin:0 0 0 -8px!important;}

	/* the eyebrow, one size up for a small screen */
	#divPax table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divHotel table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divFlight table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divTicket table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divDomestic table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divDirectHotel table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divContact table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divCare table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x),
	#divMail table tr:has(> td:first-child > b) > td:first-child > b:not(#ej-x){font-size:12px!important;}
	#divPax b.ejNote:not(#ej-x):not(#ej-y),
	#divHotel b.ejNote:not(#ej-x):not(#ej-y),
	#divFlight b.ejNote:not(#ej-x):not(#ej-y),
	#divTicket b.ejNote:not(#ej-x):not(#ej-y),
	#divDomestic b.ejNote:not(#ej-x):not(#ej-y),
	#divDirectHotel b.ejNote:not(#ej-x):not(#ej-y),
	#divContact b.ejNote:not(#ej-x):not(#ej-y),
	#divCare b.ejNote:not(#ej-x):not(#ej-y),
	#divMail b.ejNote:not(#ej-x):not(#ej-y){font-size:17px!important;}
}
