/* The pages of the new structure (apps/sito/new_layout): the house colours
   (navy #0d1e34, gold #e89820), the header and footer of sito.css. One small
   sheet, no icon font: icons are inline SVG. The style the founder chose on
   13/11/2026 (the regia's list «stile-pagine-nuove»): the titles in Fraunces
   500, the rest in Inter, both served by us (fonts/, OFL); never a weight of
   700 or 800, no spaced capitals; warm borders and rules in place of
   shadows; the sections in full-width bands, white and sand in turn. */
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/fraunces-latin.9fe3e924d0d2.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/fraunces-latin-ext.63d72c722de3.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("fonts/inter-latin.65850a373e25.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("fonts/inter-latin-ext.01ba6c2a184b.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
.itl-wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
body.nl, .nl button, .nl input, .nl select { font-family: "Inter", "Helvetica Neue", Arial, sans-serif; background: #fff; }
.nl { line-height: 1.6; font-size: 16px; }
/* the form of the new pages speaks the page's font (the widget reads --itl-font) */
.nl intime-booking { --itl-font: "Inter", "Helvetica Neue", Arial, sans-serif; }
.nl *, .nl *::before, .nl *::after { box-sizing: border-box; }
.nl svg { width: 22px; height: 22px; flex: none; }
/* room between the last block and the footer (13/11/2026); the closing band reaches down to it */
.nl-main { padding-bottom: 64px; }
.nl-preview { margin: 0; padding: 8px 20px; background: #fff4e0; color: #7a4a00; font-size: 13px; text-align: center; }

/* the header on navy, as on the site today (the logo's «InTime» is white) */
.nl .sito-header { background: #0d1e34; box-shadow: none; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.nl .sito-menu a { color: #fff; }
.nl .sito-menu a:hover { color: #e89820; }
.nl .sito-menu .current-menu-item > a { color: #0cb4ce; }  /* the lit item, as on the pages of today (sito.css) */
.nl .sito-menu-book { color: #0b1829; }
/* the menu and the titles of the footer in small letters, without spacing (the regia, 13/11/2026); the words stay as
   they are: only the first letter stands up. sito.css and the pages of today keep their capitals. */
.nl .sito-menu a { display: inline-block; font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: lowercase; }
.nl .sito-menu a::first-letter { text-transform: uppercase; }
.nl .sito-menu-book { font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.nl .sito-footer .h6 { font-weight: 600; letter-spacing: 0; text-transform: lowercase; }
.nl .sito-footer .h6::first-letter { text-transform: uppercase; }
@media (max-width: 959px) { .nl .sito-menu li a { display: block; } }
.nl-hero { position: relative; overflow: hidden; background: #0d1e34; color: #fff; padding: 36px 0 44px; }
.nl-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* the veil: the photo shows, and on the brightest photo the white words and the lead still read (AA, 13/11/2026) */
.nl-hero::before { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(13, 30, 52, .84) 0%, rgba(13, 30, 52, .74) 50%, rgba(13, 30, 52, .7) 100%); }
.nl-hero-inner { position: relative; z-index: 2; }
/* on the lighter veil the house gold read 3.3 on the brightest covers: a lighter gold in the cover only */
.nl-hero .nl-eyebrow { color: #f6c26b; }
.nl-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; padding: 0; font-size: 13px; }
.nl-crumbs li + li::before { content: "›"; margin-right: 6px; color: #8fa1ba; }
.nl-crumbs a { color: #c9d4e3; text-decoration: none; }
.nl-crumbs a:hover { color: #e89820; }
.nl-crumbs [aria-current] { color: #fff; }
.nl-eyebrow { margin: 0 0 8px; color: #e89820; font-size: 15px; font-weight: 500; }
.nl-h1 { margin: 0 0 16px; max-width: 760px; font-size: clamp(32px, 4.6vw, 50px); line-height: 1.1; }
/* the first block under the cover (the brief): the lead, then the facts as label and value under a rule */
.nl-brief { padding: 56px 0 64px; background: #fff; }
.nl-lead { margin: 0; max-width: 780px; color: #23324a; font-size: 19px; line-height: 1.6; }
.nl-promise { display: flex; align-items: center; gap: 10px; margin: 0 0 26px; color: #fff; font-weight: 500; }
.nl-btn { display: inline-block; background: #e89820; color: #0b1829; padding: 14px 28px; border-radius: 10px;
  font-weight: 600; text-decoration: none; }
.nl-btn:hover { background: #f5a824; }

.nl-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 36px; margin: 32px 0 0; padding: 0; }
/* three a row when they are three or six (the six of the sample hub) */
.nl-facts:has(> .nl-fact:nth-child(3):last-child), .nl-facts:has(> .nl-fact:nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* from 900 px the lead on the left (7/12) and the facts on the right (5/12), two by row (the founder, 13/11/2026: «il
   testo è tutto a sinistra»); the rules with :has weigh more than a class, so they are matched apart */
@media (min-width: 900px) {
  .nl-brief-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: 72px; align-items: start; }
  .nl-brief-split .nl-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 0; }
  .nl-brief-split .nl-facts:has(> .nl-fact:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nl-brief-split .nl-facts:has(> .nl-fact:nth-child(6):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.nl-fact { padding: 16px 0 20px; border-top: 1px solid #e0dacd; }
.nl-fact dt { margin: 0 0 4px; color: #5b6b80; font-size: 13px; font-weight: 400; }
.nl-fact dd { margin: 0; color: #0d1e34; font-size: 20px; font-weight: 600; line-height: 1.25; }
.nl-fact small { display: block; margin-top: 3px; color: #5b6b80; font-size: 13px; font-weight: 400; line-height: 1.35; }

/* the bar of the sections: under the cover it stays at the top while the page scrolls, the blocks present and
   the booking always in sight; on the phone the links slide sideways, the button stays */
.nl-secbar { position: sticky; top: 0; z-index: 20; margin: 0; background: rgba(255, 255, 255, .96); border-top: 1px solid #ece7dd; border-bottom: 1px solid #e6e1d6; backdrop-filter: blur(6px); }
.nl-secbar-inner { display: flex; align-items: center; gap: 16px; min-height: 56px; }
.nl-secbar-links { display: flex; flex: 1; gap: 4px; min-width: 0; margin: 0; padding: 0; list-style: none; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.nl-secbar-links::-webkit-scrollbar { display: none; }
.nl-secbar-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; box-sizing: border-box; border-radius: 8px; color: #3d4b5e; font-size: 14.5px; font-weight: 500; text-decoration: none; }
.nl-secbar-link:hover, .nl-secbar-link:focus-visible { background: #f1f4f8; color: #0d1e34; }
.nl .nl-secbar-cta { display: inline-flex; flex: none; align-items: center; min-height: 44px; padding: 0 20px; box-sizing: border-box; font-size: 14.5px; }
.nl-main [id] { scroll-margin-top: 76px; }
/* the frame of every block: its title, then one line that introduces it */
.nl-h2 + .nl-intro, .nl-intro { max-width: 900px; margin: -8px 0 22px; color: #3d4b5e; font-size: 16.5px; }
.nl .itl-cf-intro { margin: 14px auto 0; color: #c9d3e0; }

.nl-grid { display: flex; flex-direction: column; }
.nl-col { min-width: 0; order: 1; }
.nl-section { margin: 56px 0 0; }
/* the bands: every section is a band from edge to edge, the air inside it (84 above, 88 under); white and sand in
   turn within its group, the group starting white after a navy band (the cover, «Come funziona»), or sand after
   the white brief; the white cards fall on the sand. The band runs the width of the page from inside the column:
   a shadow paints the sides, clipped to the band's height. */
.nl-bands > * { --nl-band: #ffffff; }
.nl-bands > :nth-child(even) { --nl-band: #f5f0e7; }
.nl-bands-sand > :nth-child(odd) { --nl-band: #f5f0e7; }
.nl-bands-sand > :nth-child(even) { --nl-band: #ffffff; }
/* a band its own script hides (the map of a route with no key) does not count: never two whites in a row */
.nl-bands > :nth-child(odd of :not([hidden])) { --nl-band: #ffffff; }
.nl-bands > :nth-child(even of :not([hidden])) { --nl-band: #f5f0e7; }
.nl-bands-sand > :nth-child(odd of :not([hidden])) { --nl-band: #f5f0e7; }
.nl-bands-sand > :nth-child(even of :not([hidden])) { --nl-band: #ffffff; }
.nl-bands > .nl-section { margin: 0; padding: 84px 0 88px; background: var(--nl-band); box-shadow: 0 0 0 100vmax var(--nl-band); clip-path: inset(0 -100vmax); }
.nl-h2 { position: relative; margin: 0 0 22px; padding-top: 14px; font-size: 33px; line-height: 1.2; color: #0d1e34; }
.nl-h2::before { content: ""; position: absolute; top: 0; left: 0; width: 36px; height: 3px; border-radius: 2px; background: #e89820; }
.nl-h3 { margin: 0 0 8px; font-size: 19px; line-height: 1.3; font-weight: 600; color: #0d1e34; }
.nl-col > .nl-section > p, .nl-bands > .nl-section > p, .nl-faq p { max-width: 900px; }
/* the round icon of the brand, as the WordPress pages draw it: gold on navy */
.nl-badge { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: #0d1e34; color: #e89820; }
.nl-badge svg { width: 22px; height: 22px; stroke-width: 1.8; }
.nl-hero .nl-badge { width: 36px; height: 36px; background: rgba(232, 152, 32, .16); }
.nl-hero .nl-badge svg { width: 20px; height: 20px; }
/* the gold tick: a full gold disc with the navy mark, crisper than an outline */
.nl .nl-tick { width: 24px; height: 24px; flex: none; }
.nl-tick circle { fill: #e89820; }
.nl-tick path { fill: none; stroke: #0d1e34; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.nl-panel { padding: 24px; border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; }
.nl-muted { color: #5b6b80; font-size: 14px; }
.nl-link { color: #0d1e34; font-weight: 600; }

.nl-booking { order: 0; margin-top: 28px; background: #fff; border: 1px solid #e6e1d6; border-radius: 16px; padding: 22px; }
.nl-grid > .nl-booking { margin-bottom: 28px; }
.nl-booking-note { margin: 0 0 10px; color: #5b6b80; font-size: 14px; }
.nl-booking-trust { list-style: none; display: grid; gap: 10px; margin: 16px 0 0; padding: 16px 0 0; border-top: 1px solid #ece7dd; }
.nl-booking-trust li { display: flex; gap: 10px; align-items: flex-start; color: #23324a; font-size: 14px; font-weight: 600; line-height: 1.4; }
.nl-booking-trust .nl-tick { width: 20px; height: 20px; flex: none; }

.nl-road { max-width: 900px; margin: 18px 0 0; color: #3d4b5e; }
/* «stops along the way»: a day with stops per card, its steps on a gold line, the price per car and the button */
.nl-stops { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-bottom: 14px; }
.nl-stop { display: flex; flex-direction: column; }
.nl-stop > p { margin: 0 0 14px; color: #3d4b5e; }
.nl-stop-steps { list-style: none; margin: 0 0 18px 6px; padding: 0 0 0 20px; border-left: 2px solid #e8edf4; }
.nl-stop-steps li { position: relative; padding: 4px 0; color: #23324a; font-size: 15px; font-weight: 600; line-height: 1.4; }
.nl-stop-steps li::before { content: ""; position: absolute; top: 10px; left: -27px; width: 8px; height: 8px; border: 2px solid #e89820; border-radius: 50%; background: #fff; }
.nl-stop > .nl-stop-price { margin: auto 0 14px; color: #5b6b80; font-size: 14px; }
.nl-stop-price strong { color: #0d1e34; font-size: 22px; font-weight: 600; }
.nl-stop .nl-btn { align-self: flex-start; }
.nl-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.nl-car { overflow: hidden; border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.nl-car:hover { box-shadow: 0 12px 28px rgba(13, 30, 52, .10); transform: translateY(-2px); }
.nl-car img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; background: #fff; }
.nl-car-body { padding: 18px 20px 20px; border-top: 1px solid #ece7dd; }
.nl-car h3 { margin: 0 0 6px; font-size: 20px; font-weight: 600; color: #0d1e34; }
.nl-car p { margin: 0; color: #3d4b5e; font-size: 15px; }
.nl-car .nl-car-price { margin: 0 0 8px; color: #5b6b80; font-size: 14px; }
.nl-car-price strong { color: #0d1e34; font-size: 22px; font-weight: 600; }
.nl-car-price small { font-size: 13px; }
.nl-car-price a { display: inline-block; min-height: 44px; line-height: 44px; margin: -12px 0; color: #0d1e34; font-weight: 600; }
.nl-specs { margin: 16px 0 0; padding: 0; }
.nl-specs > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid #ece7dd; font-size: 14px; }
.nl-specs dt { display: flex; align-items: center; gap: 8px; color: #5b6b80; font-weight: 600; }
.nl-specs dd { margin: 0; color: #0d1e34; font-weight: 600; text-align: right; }
.nl .nl-spec-ico svg { width: 18px; height: 18px; color: #e89820; display: block; }

.nl-map { height: 380px; border: 1px solid #e6e1d6; border-radius: 14px; overflow: hidden; background: #ece7dd; }


/* the card of the airport, at the end of the meeting point: the label beside its value */
.nl-airport-card { max-width: 900px; margin: 26px 0 0; padding: 22px 24px; border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; }
.nl-airport-card dl { display: grid; gap: 10px; margin: 6px 0 0; }
.nl-airport-card dl > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 12px; }
.nl-airport-card dt { color: #5b6b80; font-size: 14px; font-weight: 600; }
.nl-airport-card dd { margin: 0; color: #0d1e34; font-weight: 600; }
@media (max-width: 640px) { .nl-airport-card dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
/* the routes of a hub as light cards: the name, «da X €», the time and the km, the trips; the whole card is the
   one link of its name */
.nl-route-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
/* three by row when four would leave one card alone on the last (route_cards.per_row) */
@media (min-width: 961px) { .nl-route-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nl-route-card { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 18px 18px 14px; border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.nl-route-card:hover, .nl-route-card:focus-within { border-color: #e89820; box-shadow: 0 8px 22px rgba(13, 30, 52, .08); }
.nl-route-name { margin: 0; padding-right: 24px; color: #0d1e34; font-size: 18px; font-weight: 600; line-height: 1.25; }
.nl-route-name a { color: inherit; text-decoration: none; }
.nl-route-name a::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.nl-route-arrow { position: absolute; top: 17px; right: 16px; display: flex; color: #e89820; }
.nl .nl-route-arrow svg { width: 18px; height: 18px; }
.nl-route-meta { margin: 0; color: #5b6b80; font-size: 14px; }
.nl-route-foot { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #ece7dd; }
.nl-route-price { margin: 0; color: #23324a; font-size: 14px; white-space: nowrap; }
.nl-route-price strong { color: #0d1e34; font-size: 19px; font-weight: 600; }
.nl-route-trips { margin: 0; color: #5b6b80; font-size: 13px; white-space: nowrap; }
.nl-route-cards + .nl-muted { margin-top: 18px; }
/* the meeting point: two columns, a rule over each point, its short title then its sentence; no circles */
.nl-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; max-width: none; margin: 0; padding: 0; list-style: none; }
.nl-point { padding: 20px 0 22px; border-top: 1px solid #e0dacd; }
.nl-point-title { margin: 0 0 6px; color: #0d1e34; font-size: 17px; font-weight: 600; line-height: 1.3; }
.nl-point p { margin: 0; color: #3d4b5e; }
.nl-table-wrap { overflow-x: auto; border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; }
.nl-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.nl-table th, .nl-table td { padding: 14px 18px; text-align: left; border-bottom: 1px solid #ece7dd; white-space: nowrap; }
.nl-table thead th { background: #faf8f4; color: #5b6b80; font-size: 13px; font-weight: 500; }
.nl-table tbody th { font-weight: 600; }
.nl-table tbody tr:last-child > * { border-bottom: 0; }
.nl-table tbody tr:hover { background: #fafbfd; }
.nl-table small { display: block; color: #5b6b80; font-size: 13px; font-weight: 400; }
/* the links of the table and inside the texts wear the house style (13/11/2026) */
.nl-table a, .nl-main .nl-muted a, .nl-main .nl-link { color: #0d1e34; text-decoration-color: #e89820; text-underline-offset: 3px; }
.nl-price { font-weight: 600; }

.nl-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.nl-review { display: flex; flex-direction: column; margin: 0; padding: 22px; border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; }
.nl-stars { margin: 0 0 10px; color: #e4a904; font-size: 17px; letter-spacing: 3px; }
.nl-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 14px; padding: 12px 16px; border: 1px solid #e3e8f0; border-radius: 12px; background: #fff; color: #23324a; font-weight: 600; }
.nl-trust .nl-stars { margin: 0; color: #00b67a; }
.nl-trust a { color: #0d1e34; font-weight: 400; text-decoration: underline; }
.nl-review blockquote { flex: 1; margin: 0 0 16px; color: #23324a; }
.nl-review figcaption { padding-top: 14px; border-top: 1px solid #ece7dd; font-size: 14px; color: #3d4b5e; }

.nl-faq { border: 1px solid #e6e1d6; border-radius: 14px; background: #fff; padding: 0 24px; }
.nl-faq details { border-bottom: 1px solid #ece7dd; padding: 18px 0; }
.nl-faq details:last-child { border-bottom: 0; }
.nl-faq summary { cursor: pointer; font-weight: 600; color: #0d1e34; list-style: none; padding-right: 28px; position: relative; }
.nl-faq summary::-webkit-details-marker { display: none; }
.nl-faq summary::after { content: "+"; position: absolute; right: 0; top: -2px; color: #e89820; font-size: 22px; }
.nl-faq details[open] summary::after { content: "–"; }
.nl-faq p { margin: 10px 0 0; color: #3d4b5e; }

/* the footer's social links, drawn without the icon font */
.nl .sito-social i { display: inline-block; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--nl-icon) center / contain no-repeat; mask: var(--nl-icon) center / contain no-repeat; }
.nl .fa-facebook-square { --nl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-5v-7h2.5l.5-3h-3V8.5c0-.9.4-1.5 1.6-1.5H18V4.3c-.4 0-1.4-.1-2.5-.1C13.2 4.2 12 5.6 12 8v2H9.5v3H12v7H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
.nl .fa-youtube { --nl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12a31 31 0 0 0 .5 4.8 3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1 31 31 0 0 0 .5-4.8 31 31 0 0 0-.5-4.8zM9.8 15.1V8.9L15.6 12z'/%3E%3C/svg%3E"); }
.nl .fa-instagram { --nl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='black'/%3E%3C/svg%3E"); }
.nl .fa-linkedin { --nl-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm1.5 7.5V19h3V9.5zM7 4.8a1.7 1.7 0 1 0 0 3.4 1.7 1.7 0 0 0 0-3.4zM10.5 9.5V19h3v-5c0-1.4.6-2.3 1.8-2.3s1.7.9 1.7 2.3v5h3v-5.6c0-2.8-1.4-4.1-3.4-4.1-1.5 0-2.4.8-2.9 1.6V9.5z'/%3E%3C/svg%3E"); }

/* the page schema (13/11/2026): the header as wide as the home's, the form inside the cover of an index, the
   trust row, «Perché InTime Limo», «Come funziona», the closing band */
.nl .sito-header-inner { max-width: none; padding: 0 36px; }
/* the cover of an index (the regia, 13/11/2026): our photo on the right, seen whole, a dark shade from the left
   under the words (they stop at 600 px: AA on a white photo), darker at the foot under the trust row; the form is
   the white bar of the widget (data-surface="bar"), no card around it; the trust row on one line */
/* the point of a hub's own photo kept in view comes with the photo (--cover-focus, city_photos.COVER_FOCUS) */
.nl-hero-side .nl-hero-img { left: auto; width: 64%; object-position: var(--cover-focus, 62% 30%); }
.nl-hero-side::before { background: linear-gradient(90deg, rgba(13, 30, 52, 1) 36%, rgba(13, 30, 52, .9) 50%, rgba(13, 30, 52, .45) 66%, rgba(13, 30, 52, .12) 84%, rgba(13, 30, 52, .05) 100%),
  linear-gradient(0deg, rgba(13, 30, 52, .92) 0, rgba(13, 30, 52, .55) 18%, rgba(13, 30, 52, 0) 40%); }
.nl-hero-side .nl-hero-words { max-width: 600px; }
.nl-hero .nl-booking { margin: 0; padding: 18px 22px; color: #0d1e34; }
.nl-hero-side .nl-booking { margin-top: 30px; padding: 0; background: none; border: 0; box-shadow: none; }
.nl-trustrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; margin: 18px 0 0; color: #fff; font-size: 13px; font-weight: 500; }
.nl-trust-points { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0; }
.nl-dot { color: #f6c26b; font-weight: 600; }
.nl-trust-tp { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .45); text-underline-offset: 4px; }
.nl-trust-tp:hover { text-decoration-color: #00b67a; }
.nl-tp-stars { display: inline-flex; gap: 2px; }
.nl-tp-stars svg { width: 15px; height: 15px; fill: #00b67a; stroke: #00b67a; }
/* the airports served: a card per hub (its photo, the city, the airport with its code as the link that covers the
   card, the engine's «from», the trips), four in a row; a hub with no photo keeps the navy ground with its name */
.nl-hub-cards { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; }
.nl-hub-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #e6e1d6; border-radius: 14px; transition: transform .2s, box-shadow .2s; }
.nl-hub-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(13, 30, 52, .10); }
.nl-hub-card:focus-within { outline: 2px solid #e89820; outline-offset: 2px; }
.nl-hub-card-img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.nl-hub-card-body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 18px 20px 20px; }
.nl-hub-card-city { margin: 0; color: #0d1e34; font-size: 26px; font-weight: 600; line-height: 1.15; }
.nl-hub-card-airport { margin: 0; color: #5b6b80; font-size: 14px; line-height: 1.4; }
.nl-hub-card a { color: inherit; text-decoration: none; }
.nl-hub-card a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.nl-hub-card-foot { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 8px; margin-top: 10px; }
.nl-hub-card-price { margin: 0; color: #23324a; font-size: 14px; white-space: nowrap; }
.nl-hub-card-price strong { color: #0d1e34; font-size: 18px; font-weight: 600; }
.nl-hub-card-trips { margin: 0; color: #5b6b80; font-size: 13px; white-space: nowrap; }
.nl-hub-card-plain { background: #0d1e34; border-color: #0d1e34; }
.nl-hub-card-plain .nl-hub-card-body { justify-content: flex-end; min-height: 300px; }
.nl-hub-card-plain .nl-hub-card-city, .nl-hub-card-plain .nl-hub-card-price, .nl-hub-card-plain .nl-hub-card-price strong { color: #fff; }
.nl-hub-card-plain .nl-hub-card-airport, .nl-hub-card-plain .nl-hub-card-trips { color: #c9d4e3; }
.nl-hub-cards + .nl-muted { margin-top: 18px; }
.nl-hero-side .nl-booking-note-under { margin: 12px 0 0; max-width: 640px; color: #d5deea; font-size: 13px; line-height: 1.5; }
.nl-other-title { margin: 36px 0 6px; color: #0d1e34; font-size: 18px; font-weight: 600; }
.nl-other-hubs { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 36px; margin: 0; padding: 0; }
.nl-other-hubs li { border-bottom: 1px solid #ece7dd; }
.nl-other-hubs a { display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 10px 2px; color: #0d1e34; text-decoration: none; }
.nl-other-city { flex: none; min-width: 88px; font-size: 16px; font-weight: 600; }
.nl-other-airport { flex: 1; color: #5b6b80; font-size: 14px; }
.nl-other-arrow { display: inline-flex; color: #e89820; }
.nl-other-arrow svg { width: 18px; height: 18px; transition: transform .2s; }
.nl-other-hubs a:hover .nl-other-airport { color: #0d1e34; }
.nl-other-hubs a:hover .nl-other-arrow svg { transform: translateX(3px); }
.nl-sub { max-width: 900px; margin: -8px 0 22px; color: #3d4b5e; }
/* «Perché InTime Limo» (the regia, 13/11/2026): our photo on the left, the list on the right, a gold mark per item */
.nl-why-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.nl-why-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 48% 50%; border-radius: 20px; }
.nl-why-list { list-style: none; margin: 4px 0 0; padding: 0; }
.nl-why-item { display: flex; gap: 14px; padding: 18px 0; border-bottom: 1px solid #ece7dd; }
.nl-why-item:last-child { border-bottom: 0; padding-bottom: 0; }
.nl-why-mark, .nl-ticklist-mark { flex: none; display: inline-flex; margin-top: 3px; color: #e89820; }
.nl-why-mark svg, .nl-ticklist-mark svg { width: 20px; height: 20px; stroke-width: 2.4; }
.nl-why-item .nl-h3 { margin: 0 0 4px; font-size: 18px; }
.nl-why-item p { margin: 0; color: #3d4b5e; }
/* the same clean list where a block lists lines (the meeting point, what is included): one thin tick per line */
.nl-ticklist { max-width: 900px; margin: 4px 0 0; padding: 0; list-style: none; }
.nl-ticklist-item { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid #ece7dd; }
.nl-ticklist-item:last-child { border-bottom: 0; padding-bottom: 0; }
.nl-ticklist-item p { margin: 0; color: #23324a; }
.nl-why-item strong { color: #0d1e34; font-weight: 600; white-space: nowrap; }
/* «Come funziona» and the closing are the pieces of the home (sito/_how_it_works.html, sito/_home_cta.html,
   the founder 13/11/2026): here their dress, as the home wears it (measured on the home, 13/11/2026), since
   the new pages load neither the theme sheet nor an icon font. The band runs the width of the page from
   inside the column: a shadow paints the sides, clipped to the band's height. */
.nl .itl-cf { margin: 0; padding: 84px 0 88px; background: #0d1b2a; box-shadow: 0 0 0 100vmax #0d1b2a; clip-path: inset(0 -100vmax); }
.nl .itl-cf > .itl-wrap { padding: 0; }
.nl .itl-cf-header { margin: 0 0 48px; text-align: center; }
.nl .itl-cf-eyebrow { display: inline-block; margin: 0 0 10px; color: #e89820; font-size: 15px; font-weight: 500; }
.nl .itl-cf-title { margin: 0; color: #fff; font-size: 33px; line-height: 1.2; }
.nl .itl-cf-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; }
.nl .itl-cf-step { padding: 28px 24px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 16px; background: rgba(255, 255, 255, .04); }
.nl .itl-cf-step--last { border-color: rgba(224, 123, 57, .3); background: rgba(224, 123, 57, .07); }
.nl .itl-cf-step-top { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; }
.nl .itl-cf-num { display: flex; flex: none; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #e89820; color: #fff; font-size: 13px; font-weight: 600; line-height: 1; }
.nl .itl-cf-step--last .itl-cf-num { background: #fff; color: #e89820; }
.nl .itl-cf-icon { display: flex; color: #e89820; }
.nl .itl-cf-icon svg { width: 22px; height: 22px; stroke-width: 2; }
.nl .itl-cf-step--last .itl-cf-icon { color: #fff; }
.nl .itl-cf-step-title { margin: 0; color: #fff; font-size: 20px; font-weight: 600; line-height: 1.3; }
.nl .itl-cf-step-desc { margin: 0; color: rgba(255, 255, 255, .65); font-size: 14px; line-height: 1.65; }
.nl .itl-cf-step--last .itl-cf-step-desc { color: rgba(255, 255, 255, .8); }
.nl .ha-cta-final { position: relative; overflow: hidden; margin: 0 0 -64px; padding: 96px 40px; background: #0d1e34; text-align: center; }
.nl .ha-cta-final::before { content: ""; position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40' fill='%23E89820' fill-opacity='0.025'/%3E%3C/svg%3E"); }
.nl .ha-cta-inner { position: relative; max-width: 600px; margin: 0 auto; }
.nl .ha-cta-final h2 { margin: 0 0 14px; color: #fff; font-size: clamp(28px, 4vw, 52px); line-height: 1.2; }
.nl .ha-cta-final h2 span { color: #e89820; }
.nl .ha-cta-inner > p { margin: 16px 0 40px; color: rgba(255, 255, 255, .48); font-size: 16px; line-height: 1.8; }
.nl .ha-cta-btns { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; margin: 0 0 28px; }
.nl .ha-btn-primary--final { display: inline-flex; align-items: center; gap: 9px; padding: 18px 40px; border-radius: 14px; background: #e89820; color: #1a305e; font-size: 16px; font-weight: 600; line-height: 1.25; text-decoration: none; transition: background .2s, transform .15s; }
.nl .ha-btn-primary--final:hover { background: #f5a824; transform: translateY(-1px); }
.nl .ha-btn-primary--final svg { width: 18px; height: 18px; stroke-width: 2.2; }
.nl .ha-cta-micros { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; }
.nl .ha-cta-micro { display: flex; align-items: center; gap: 5px; color: rgba(255, 255, 255, .28); font-size: 12px; }
.nl .ha-cta-micro svg { width: 11px; height: 11px; color: #e89820; stroke-width: 3; }
/* the index: the reviews two rows of three */
.nl-schema .nl-reviews { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (prefers-reduced-motion: reduce) { .nl-car, .nl-hub-card { transition: none; } .nl-car:hover, .nl-hub-card:hover { transform: none; } }
@media (max-width: 900px) { .nl .itl-cf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 641px) and (max-width: 960px) { .nl-route-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } .nl-schema .nl-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nl-cards, .nl-hub-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nl-why-split { gap: 32px; } }

@media (max-width: 640px) {
  .nl-hero { padding: 24px 0 36px; }
  /* the words run the whole width on the phone: one even veil */
  .nl-hero::before { background: rgba(13, 30, 52, .76); }
  .nl-brief { padding: 36px 0 44px; }
  .nl-lead { font-size: 17px; }
  /* the plain rule apart: a browser without :has drops a whole list that names it */
  .nl-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
  .nl-facts:has(> .nl-fact:nth-child(3):last-child), .nl-facts:has(> .nl-fact:nth-child(6):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
  .nl-fact dd { font-size: 18px; }
  .nl-cards, .nl-reviews { grid-template-columns: minmax(0, 1fr); }
  .nl-section { margin-top: 44px; }
  .nl-h2 { font-size: 24px; }
  .nl .itl-cf-title { font-size: 24px; }
  .nl-bands > .nl-section { padding: 56px 0 60px; }
  .nl-panel { padding: 20px; }
  .nl-faq { padding: 0 18px; }
  .nl-stops { grid-template-columns: minmax(0, 1fr); }
  .nl-stop .nl-btn { align-self: stretch; text-align: center; }
  .nl-hero .nl-btn { display: block; text-align: center; }
  .nl .itl-cf-grid, .nl-schema .nl-reviews { grid-template-columns: minmax(0, 1fr); }
  /* «Perché»: the photo on top, as wide as the column, the list under it */
  .nl-why-split { grid-template-columns: 1fr; gap: 24px; }
  .nl-why-photo { aspect-ratio: 4 / 3; object-position: 50% 30%; border-radius: 16px; }
  .nl .itl-cf { padding: 56px 0 60px; }
  .nl .itl-cf-step-title { font-size: 21px; }
  .nl .ha-cta-final { padding: 72px 20px; }
  .nl-hero .nl-booking { padding: 16px; }
  /* the phone: the photo behind all the words, the even veil; the trust row one item a line */
  .nl-hero-side .nl-hero-img { width: 100%; object-position: var(--cover-focus, 50% 30%); }
  .nl-hero-side::before { background: rgba(13, 30, 52, .78); }
  .nl-hero-side .nl-booking { padding: 0; }
  .nl-trustrow, .nl-trust-points { flex-direction: column; align-items: flex-start; }
  .nl-trust-points .nl-dot { display: none; }
  /* the cards one a line, the photo on the left */
  .nl-hub-cards { grid-template-columns: 1fr; gap: 14px; }
  .nl-hub-card { flex-direction: row; }
  .nl-hub-card-img { width: 124px; flex: none; aspect-ratio: auto; min-height: 100%; }
  .nl-hub-card-body { padding: 14px 16px; }
  .nl-hub-card-city { font-size: 22px; }
  .nl-hub-card-plain .nl-hub-card-body { min-height: 0; }
  .nl-other-hubs { grid-template-columns: 1fr; }
  .nl-table th, .nl-table td { padding: 12px 12px; font-size: 14px; white-space: normal; }
  /* the names wrap, a number never leaves its unit («78 km», «230 €») */
  .nl-table .nl-unit { white-space: nowrap; }
  /* on the phone the minutes go (the km say the distance); a route's table drops the km
     too: each destination there has its own page with both */
  .nl-table th:nth-child(3), .nl-table td:nth-child(3) { display: none; }
  .nl-table-route th:nth-child(2), .nl-table-route td:nth-child(2) { display: none; }
}
/* on the phone the route cards two a row, the price over the trips; the meeting point one column */
@media (max-width: 640px) {
  .nl-route-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .nl-route-card { padding: 14px 14px 12px; }
  .nl-route-name { padding-right: 18px; font-size: 16px; }
  .nl-route-foot { flex-direction: column; gap: 0; margin-top: 10px; padding-top: 10px; }
  .nl-route-arrow { top: 13px; right: 12px; }
  .nl-points { grid-template-columns: minmax(0, 1fr); }
}

/* the cards of an index on a computer (the founder, 13/11/2026): the photo 168 px high under a blue shade from the
   foot, the city and the airport by its own name over it, the price and the trips on one line under it. The photo,
   the shade and the names share the first row of the card; the link of the airport still covers the card. On the
   phone the cards stay as they were, the photo beside, with no shadow. */
@media (min-width: 641px) {
  .nl-hub-card:not(.nl-hub-card-plain) { display: grid; grid-template-rows: 168px auto; }
  .nl-hub-card:not(.nl-hub-card-plain)::before { content: ""; grid-area: 1 / 1; z-index: 1; pointer-events: none;
    background: linear-gradient(0deg, rgba(13, 30, 52, .86) 0%, rgba(13, 30, 52, .4) 42%, rgba(13, 30, 52, 0) 70%); }
  .nl-hub-card:not(.nl-hub-card-plain) .nl-hub-card-img { grid-area: 1 / 1; height: 168px; aspect-ratio: auto; }
  .nl-hub-card:not(.nl-hub-card-plain) .nl-hub-card-body { display: contents; }
  .nl-hub-card:not(.nl-hub-card-plain) .nl-hub-card-names { grid-area: 1 / 1; z-index: 2; align-self: end; min-width: 0; padding: 0 16px 14px; }
  .nl-hub-card:not(.nl-hub-card-plain) .nl-hub-card-city { color: #fff; font-size: 22px; line-height: 1.2; }
  .nl-hub-card:not(.nl-hub-card-plain) .nl-hub-card-airport { color: rgba(255, 255, 255, .9); font-size: 13px; }
  .nl-hub-card:not(.nl-hub-card-plain) .nl-hub-card-foot { grid-area: 2 / 1; margin: 0; padding: 12px 16px 13px; }
}
@media (max-width: 640px) {
  .nl-hub-card-names { display: flex; flex-direction: column; gap: 4px; }
  .nl-hub-card-foot { flex-direction: column; margin-top: 10px; }
  .nl-route-price { white-space: normal; }
}

/* the titles: Fraunces 500, the optical size by the size of the title */
.nl .nl-h1, .nl .nl-h2, .nl .itl-cf-title, .nl .ha-cta-final h2 { font-family: "Fraunces", Georgia, serif; font-weight: 500; letter-spacing: -.012em; font-optical-sizing: auto; }

/* «Da città a città» (the regia's list § 13, 14/11/2026): the lead in two paragraphs; the six points of the car
   instead of the train or the plane on three columns, a rule over each, no icons; the link to every route under the
   eight most requested; every route in one list by name on three columns (name, km, «da», an arrow), closed on the
   phone until a tap on its label */
.nl-brief-words .nl-lead + .nl-lead { margin-top: 18px; }
.nl-points-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; }
.nl-see-all-row { margin: 22px 0 0; }
.nl-see-all { color: #0d1e34; font-weight: 600; text-decoration: underline; text-decoration-color: #e89820; text-underline-offset: 4px; }
.nl-all-toggle { display: none; }
.nl-all-open { display: none; }
.nl-all-list { columns: 3; column-gap: 36px; margin: 0; padding: 0; list-style: none; }
.nl-all-route { break-inside: avoid; border-bottom: 1px solid #ece7dd; }
.nl-all-route a { display: flex; align-items: baseline; gap: 10px; min-height: 52px; padding: 14px 2px 12px; color: #0d1e34; text-decoration: none; }
.nl-all-name { flex: 1; min-width: 0; font-weight: 600; }
.nl-all-km { color: #5b6b80; font-size: 14px; white-space: nowrap; }
.nl-all-price { color: #23324a; font-size: 14px; white-space: nowrap; }
.nl-all-arrow { display: flex; align-self: center; color: #e89820; }
.nl .nl-all-arrow svg { width: 16px; height: 16px; transition: transform .2s; }
.nl-all-route a:hover .nl-all-name { text-decoration: underline; text-decoration-color: #e89820; text-underline-offset: 3px; }
.nl-all-route a:hover .nl-all-arrow svg { transform: translateX(3px); }
.nl-all-list + .nl-muted { margin-top: 18px; }
@media (min-width: 641px) and (max-width: 960px) { .nl-points-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nl-all-list { columns: 2; } }
@media (max-width: 640px) {
  .nl-points-3 { grid-template-columns: minmax(0, 1fr); }
  .nl-all-list { columns: 1; }
  .nl-all-toggle { display: block; position: absolute; width: 1px; height: 1px; opacity: 0; }
  .nl-all-open { display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 4px 0 14px; padding: 0 18px; border: 1px solid #0d1e34; border-radius: 10px; color: #0d1e34; font-weight: 600; cursor: pointer; }
  .nl-all-toggle:not(:checked) ~ .nl-all-list { display: none; }
  .nl-all-toggle:checked + .nl-all-open .nl-all-show, .nl-all-toggle:not(:checked) + .nl-all-open .nl-all-hide { display: none; }
  .nl-all-toggle:focus-visible + .nl-all-open { outline: 2px solid #e89820; outline-offset: 2px; }
  /* reached by «Vedi tutte le N tratte»: open on arrival, no second tap */
  .nl-all:target .nl-all-list { display: block; }
  .nl-all:target .nl-all-open { display: none; }
}
/* words for a screen reader only (a route card that leads to the form says so) */
.nl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* the page of a city (package C1): the paragraphs of a block, the line from a hub to its city, the cards of «Cosa facciamo» */
.nl-text { margin: 0 0 22px; color: #3d4b5e; font-size: 16.5px; line-height: 1.65; }
.nl-route-cards + .nl-text-after { margin-top: 22px; }
.nl-city-link { margin: 18px 0 0; }
.nl-city-link a, .nl-city-services .nl-point-title a { color: #0d1e34; font-weight: 600; text-decoration: underline; text-decoration-color: #e89820; text-underline-offset: 4px; }
.nl-cars-note { margin-top: 22px; }
.nl-route-text { margin: 4px 0 14px; color: #3d4b5e; font-size: 15px; line-height: 1.55; }
.nl-city-sub { margin: 30px 0 10px; color: #0d1e34; font-size: 19px; font-weight: 600; }
.nl-city-cards .nl-route-foot { margin-top: auto; }
.nl-table-prices th, .nl-table-prices td { white-space: normal; }
.nl-table-prices td, .nl-table-prices thead th:last-child { width: 30%; text-align: right; }
/* the photos of the page of a city (package C1-foto): a low photo at the top of a card, its arrow on a white disc over it; the Chianti beside the driver by the hour */
.nl-city-card-img { display: block; width: calc(100% + 36px); max-width: none; height: auto; margin: -18px -18px 12px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 13px 13px 0 0; background: #ece7dc; }
.nl-city-card-photo .nl-route-arrow { top: 10px; right: 10px; padding: 7px; border-radius: 50%; background: rgba(255, 255, 255, .94); }
.nl-city-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 44px; align-items: start; }
.nl-city-split-img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; background: #ece7dc; }
.nl-city-split p { max-width: 900px; }
@media (max-width: 960px) { .nl-city-split { grid-template-columns: minmax(0, 1fr); gap: 22px; } .nl-city-split-img { order: -1; } }
@media (max-width: 640px) { .nl-city-card-img { width: calc(100% + 28px); margin: -14px -14px 10px; } .nl-city-card-photo .nl-route-arrow { top: 8px; right: 8px; padding: 6px; } }
/* no row with a single card (the reading of 14/11): two per row up to a tablet, an odd last card the whole row with a lower photo; the computer keeps four or three per row (route_cards.per_row) */
@media (max-width: 960px) { .nl-route-cards.nl-city-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nl-city-cards > .nl-route-card:last-child:nth-child(odd) { grid-column: 1 / -1; } .nl-city-cards > .nl-route-card:last-child:nth-child(odd) .nl-city-card-img { aspect-ratio: 2 / 1; } }
/* the page of a city (the regia, 14/11/2026): where we pick you up and the prices start half closed on the phone, the box and its label as the list of every route; the list /italia/ as tall cards with the name on the photo */
.nl-fold-toggle, .nl-fold-open { display: none; }
@media (max-width: 640px) {
  .nl-fold-toggle { display: block; position: absolute; width: 1px; height: 1px; opacity: 0; }
  .nl-fold-open { display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 14px 0 0; padding: 0 18px; border: 1px solid #0d1e34; border-radius: 10px; color: #0d1e34; font-weight: 600; cursor: pointer; }
  /* past 3 places and 5 rows: the same numbers as the conditions of city.html */
  .nl-fold-toggle:not(:checked) ~ .nl-fold-places .nl-point:nth-child(n+4), .nl-fold-toggle:not(:checked) ~ .nl-fold-prices tbody tr:nth-child(n+6) { display: none; }
  .nl-fold-toggle:checked ~ .nl-fold-open .nl-fold-show, .nl-fold-toggle:not(:checked) ~ .nl-fold-open .nl-fold-hide { display: none; }
  .nl-fold-toggle:focus-visible ~ .nl-fold-open { outline: 2px solid #e89820; outline-offset: 2px; }
}
.nl-city-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.nl-city-tile { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: 14px; background: #0d1e34; transition: transform .2s, box-shadow .2s; }
.nl-city-tile:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(13, 30, 52, .14); }
.nl-city-tile:focus-within { outline: 2px solid #e89820; outline-offset: 2px; }
.nl-city-tile-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nl-city-tile-veil { position: absolute; inset: 0; display: flex; align-items: flex-end; gap: 10px; padding: 18px; background: linear-gradient(0deg, rgba(13, 30, 52, .86) 0%, rgba(13, 30, 52, .38) 42%, rgba(13, 30, 52, 0) 68%); }
.nl-city-tile-plain { border-top: 3px solid #e89820; background: #0d1e34 repeating-linear-gradient(-45deg, rgba(232, 152, 32, .07) 0 1px, transparent 1px 22px); }
.nl-city-tile-plain .nl-city-tile-veil { background: none; }
.nl-city-tile-name { flex: 1; min-width: 0; margin: 0; color: #fff; font-size: 24px; font-weight: 600; line-height: 1.15; }
.nl-city-tile-name a { color: inherit; text-decoration: none; }
.nl-city-tile-name a::after { content: ""; position: absolute; inset: 0; }
.nl-city-tile-arrow { display: flex; color: #e89820; }
.nl .nl-city-tile-arrow svg { width: 20px; height: 20px; }
@media (prefers-reduced-motion: reduce) { .nl-city-tile { transition: none; } .nl-city-tile:hover { transform: none; } }
@media (max-width: 640px) { .nl-city-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .nl-city-tile-veil { padding: 12px; } .nl-city-tile-name { font-size: 18px; } }
