/* Marinova New Year pages: alignment. Loaded last, by the private and the shared New Year page only; every rule starts
   from one of their two page roots (the page root class with the page root id). Each section keeps one centre axis: heading groups, short introductions, call-to-action
   groups, callouts and card groups are centred on it; long explanatory text, tables, yacht rows, form fields, hints and
   validation messages stay start-aligned inside their centred containers. No text, link, image or script changes, and no
   shared stylesheet is touched. */

/* ---- Hero actions ----
   Desktop: the action group is exactly as wide as the facts panel above it and its buttons form balanced rows of two
   equal columns with one gap, so the group shares the panel's centre; a lone last button (an odd count) keeps the column
   width and sits on the centre. Phones and tablets: one stacked column of full-width buttons (equal widths, the hero's
   own gutters). In every layout each label is centred horizontally and vertically, including a wrapped label. */
.uirh-service:is(#nye-root,#nss-root) .nye-hero-actions > :is(.btn,.nye-btn2){justify-content:center;text-align:center;min-width:0}
@media (min-width:901px){
.uirh-service:is(#nye-root,#nss-root) .nye-hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.uirh-service:is(#nye-root,#nss-root) .nye-hero-actions > :is(.btn,.nye-btn2){width:100%}
.uirh-service:is(#nye-root,#nss-root) .nye-hero-actions > :last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc((100% - 12px) / 2)}
}

/* ---- Section introductions ----
   The introduction under a centred heading is a block on the heading's axis (it was a narrower block starting at the
   column's left edge, so its centre sat 70px left of the heading's). Short introductions (one or two lines on a laptop)
   are centred text; the longer ones keep start-aligned text inside the centred block. */
.uirh-service:is(#nye-root,#nss-root) .sec > .sec-in > .sec-hd > .sec-body{margin-inline:auto}
#nye-root.uirh-service :is(#shared-tickets,#timing,#package,#payment) .sec-hd > .sec-body,
#nss-root.uirh-service :is(#compare-tickets,#book) .sec-hd > .sec-body{text-align:center}

/* ---- Shared-ticket signpost (private page) ----
   Heading, introduction and button on one axis, with the accepted Home and Fleet spacing between the introduction and
   its action (24px) instead of the heading group's 40px bottom margin. */
#nye-root.uirh-service #shared-tickets .sec-hd{margin-bottom:0}
#nye-root.uirh-service #shared-tickets > .sec-in > p{margin-top:24px;text-align:center}
#nye-root.uirh-service #shared-tickets > .sec-in > p > .nye-btn2{text-align:center}

/* ---- Budget callout (private page) ----
   The panel, its title, its paragraph (at its readable 620px measure, centred) and its button are centred on the
   section's axis; the panel keeps its padding. */
#nye-root.uirh-service #other-options{text-align:center}
#nye-root.uirh-service #other-options .urg-de{margin-inline:auto}
#nye-root.uirh-service #other-options .btn{justify-content:center;text-align:center}

/* ---- Enquiry actions (both forms) ----
   Every action group is centred, before and after review and in the fallback; the short line directly above or below an
   action (the review note, the source line, the sent status and the fallback prompt) is centred with it. Labels, inputs,
   hints, the summary and validation messages keep their start alignment. Phones: the actions stack at one full width. */
.uirh-service:is(#nye-root,#nss-root) :is(.npe-actions,.nsh-actions){justify-content:center}
.uirh-service:is(#nye-root,#nss-root) :is(.npe-actions,.nsh-actions) > *{text-align:center}
/* The WhatsApp buttons carry an icon. Laid out as a flex row, a label that wraps (a narrow phone, enlarged text) kept the
   icon pinned to the button's left edge while the text centred in the space beside it, so the label read off-centre.
   Here the label is centred lines with the icon leading the first line, and the padding keeps a one-line button exactly
   44px high with the label centred vertically. Colours, wording and behaviour are unchanged. */
.uirh-service:is(#nye-root,#nss-root) :is(.npe-btn-wa,.nsh-btn-wa){display:block;text-align:center;line-height:20px;padding-block:12px;min-height:44px}
.uirh-service:is(#nye-root,#nss-root) :is(.npe-btn-wa,.nsh-btn-wa) svg{display:inline-block;vertical-align:-3px;margin-inline-end:4px}
.uirh-service:is(#nye-root,#nss-root) :is(.npe-review-note,.nsh-review-note,.npe-src,.nsh-src,.npe-sent,.nsh-sent,.npe-fallback,.nsh-fallback){text-align:center}
#nye-root.uirh-service #npeDirectLink{width:fit-content;min-width:min(100%,260px);max-width:100%;margin-inline:auto;padding:12px 26px;text-align:center}
#nss-root.uirh-service .nsh-actions + .nye-note{margin-inline:auto;text-align:center}
.uirh-service:is(#nye-root,#nss-root) :is(.npe-nojs,.nsh-nojs) p:has(> :is(.btn,.nye-btn2)){text-align:center}
#nss-root.uirh-service .nsh-nojs > .nye-note{margin-inline:auto;text-align:center}
@media (max-width:560px){
.uirh-service:is(#nye-root,#nss-root) :is(.npe-actions,.nsh-actions){flex-direction:column;align-items:stretch}
.uirh-service:is(#nye-root,#nss-root) :is(.npe-actions,.nsh-actions) > *{width:100%;min-width:0}
#nye-root.uirh-service #npeDirectLink{width:100%}
}

/* ---- Guest limits table (shared page) ----
   One centred group: the table takes the 760px reading width (it filled the 1280px page column with a narrow label
   column, leaving most of each row empty) in two equal columns, label and value start-aligned; on phones each value
   stays under its label inside its own row. The short note under it is centred. */
#nss-root.uirh-service #yachts > .sec-in > .nye-shd-facts{max-width:var(--ui-container-reading,760px)}
#nss-root.uirh-service #yachts .nye-shd-facts li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;row-gap:3px;align-items:baseline}
#nss-root.uirh-service #yachts .nye-shd-k,
#nss-root.uirh-service #yachts .nye-shd-v{min-width:0;text-align:start;overflow-wrap:break-word}
@media (max-width:620px){
#nss-root.uirh-service #yachts .nye-shd-facts li{grid-template-columns:minmax(0,1fr)}
}
#nss-root.uirh-service #yachts > .sec-in > .nye-note{margin-inline:auto;text-align:center}

/* ---- Inclusion cards (both pages) ----
   Equal card widths and one gap in every row, and a final incomplete row centred instead of left on its own: three
   columns on laptops, two on tablets and large phones, one full-width column on phones. Each card's dot and text stay
   together, start-aligned. The short note under the shared page's cards is centred. */
.uirh-service:is(#nye-root,#nss-root) .nye-inc{display:flex;flex-wrap:wrap;justify-content:center}
.uirh-service:is(#nye-root,#nss-root) .nye-inc > li{flex:0 0 calc((100% - 20px) / 3);min-width:0;box-sizing:border-box;text-align:start}
@media (max-width:900px){
.uirh-service:is(#nye-root,#nss-root) .nye-inc > li{flex-basis:calc((100% - 10px) / 2)}
}
@media (max-width:520px){
.uirh-service:is(#nye-root,#nss-root) .nye-inc > li{flex-basis:100%}
}
#nss-root.uirh-service #included > .sec-in > .nye-note{margin-inline:auto;text-align:center}

/* ---- Centred short texts wrap into balanced lines (no single word left on a last line); where a browser does not
   support it the text simply wraps as before. ---- */
#nye-root.uirh-service :is(#shared-tickets,#timing,#package,#payment) .sec-hd > .sec-body,
#nss-root.uirh-service :is(#compare-tickets,#book) .sec-hd > .sec-body,
#nye-root.uirh-service #other-options :is(.urg-ti,.urg-de),
#nss-root.uirh-service :is(#yachts,#included) > .sec-in > .nye-note,
.uirh-service:is(#nye-root,#nss-root) :is(.npe-review-note,.nsh-review-note,.npe-sent,.nsh-sent,.npe-fallback p,.nsh-fallback p),
#nss-root.uirh-service .nsh-actions + .nye-note{text-wrap:balance}
