:root {
  --lucky-orange: #f36b32;
  --lucky-orange-dark: #cf4719;
  --lucky-booking: #1f5875;
  --lucky-booking-dark: #173f57;
  --lucky-ink: #18212b;
  --lucky-muted: #5e6a75;
  --lucky-paper: #fffaf6;
  --lucky-line: #eadfd7;
  --lucky-green: #18735b;
}

html { scroll-behavior: smooth; }
body { color: var(--lucky-ink); background: #fff; }
img { max-width: 100%; height: auto; }

.lucky-content { max-width: 980px; margin: 0 auto 30px; font-size: 17px; line-height: 1.9; }
.lucky-content h2 { color: var(--lucky-ink); font-size: 26px; line-height: 1.35; margin: 34px 0 12px; }
.lucky-content h3 { font-size: 20px; margin-top: 24px; }
.lucky-content p { margin: 0 0 18px; }
.lucky-lead { font-size: 20px; color: #273746; padding: 20px 24px; border-left: 5px solid var(--lucky-orange); background: var(--lucky-paper); }
.lucky-hero { margin: 0 0 30px; padding: 0; overflow: hidden; text-align: center; border-radius: 18px; background: #f4f6f8; box-shadow: 0 8px 24px rgba(23,35,50,.08); }
.lucky-hero img,
.article .lucky-hero img,
.entry-content .lucky-hero img { display: block; width: 100%; max-width: none; height: clamp(300px, 38vw, 520px); margin: 0; border-radius: 0; object-fit: cover; object-position: center; image-rendering: auto; }
.lucky-hero figcaption { color: var(--lucky-muted); font-size: 15px; line-height: 1.65; padding: 14px 20px 16px; background: #f7f9fa; }
.lucky-gallery figcaption { color: var(--lucky-muted); font-size: 14px; padding-top: 8px; }
@media (max-width: 700px) { .lucky-hero img, .article .lucky-hero img, .entry-content .lucky-hero img { height: 230px; } .lucky-hero figcaption { padding: 12px 14px 14px; font-size: 14px; } }
.lucky-note { margin: 26px 0; padding: 18px 22px; border: 1px solid #f2c8b3; border-radius: 12px; background: #fff7f1; }

.lucky-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin: 30px 0; }
.lucky-gallery figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid #e2e7ed; border-radius: 16px; background: #fff; box-shadow: 0 7px 22px rgba(23,35,50,.07); transition: transform .22s ease, box-shadow .22s ease; }
.lucky-gallery figure:hover { transform: translateY(-4px); box-shadow: 0 13px 30px rgba(23,35,50,.13); }
.lucky-gallery-link { display: flex; height: 100%; flex-direction: column; color: inherit; text-decoration: none !important; }
.lucky-gallery img,
.article .lucky-gallery img,
.entry-content .lucky-gallery img { display: block; width: 100%; max-width: none; height: 205px; margin: 0; border-radius: 0; background: #f3f3f3; object-fit: cover; image-rendering: auto; transition: transform .32s ease; }
.lucky-gallery figure:hover img { transform: scale(1.035); }
.lucky-gallery .lucky-gallery-link figcaption { flex: 1; padding: 14px 16px 8px; color: #465368; font-size: 15px; line-height: 1.65; background: #fff; }
.lucky-gallery-link::after { content: "查看详情 →"; align-self: flex-start; margin: 5px 16px 16px; padding: 6px 11px; border-radius: 999px; color: #c34c20; background: #fff1e9; font-size: 13px; font-weight: 700; }
@media (max-width: 900px) { .lucky-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 580px) { .lucky-gallery { grid-template-columns: 1fr; gap: 16px; } .lucky-gallery img, .article .lucky-gallery img, .entry-content .lucky-gallery img { height: 220px; } }

.lucky-faq { margin: 34px 0; }
.lucky-faq details { border: 1px solid var(--lucky-line); border-radius: 10px; margin-bottom: 12px; background: #fff; }
.lucky-faq summary { cursor: pointer; padding: 16px 18px; font-weight: 700; color: var(--lucky-ink); }
.lucky-faq details p { padding: 0 18px 18px; margin: 0; color: var(--lucky-muted); }

.lucky-cta { margin: 34px 0; padding: 28px; border-radius: 16px; color: #fff; background: linear-gradient(135deg, #17324d, #25617d); box-shadow: 0 12px 30px rgba(23,50,77,.20); }
.lucky-cta h2 { color: #fff; margin-top: 0; }
.lucky-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 0 !important; }
.lucky-btn { display: inline-block; padding: 11px 18px; border: 1px solid var(--lucky-orange); border-radius: 999px; color: var(--lucky-orange); background: #fff; font-weight: 700; text-align: center; }
.lucky-btn:hover, .lucky-btn:focus { color: var(--lucky-orange-dark); text-decoration: none; }
.lucky-btn-primary { color: #fff; background: var(--lucky-booking); border-color: var(--lucky-booking); }
.lucky-cta .lucky-btn-primary { background: #fff; color: var(--lucky-orange-dark); border-color: #fff; }
.lucky-cta .lucky-btn:not(.lucky-btn-primary) { color: #fff; border-color: #fff; background: transparent; }
.lucky-booking-panel .lucky-booking-number { margin: 8px 0 4px; font-size: 19px; letter-spacing: .01em; }
.lucky-booking-panel .lucky-cta-actions { margin-top: 20px; }
.lucky-booking-panel .lucky-btn { min-width: 170px; text-align: center; justify-content: center; }
.lucky-booking-panel .lucky-btn-wechat { background: #158f55 !important; border-color: #158f55 !important; color: #fff !important; }
.lucky-booking-panel .lucky-btn-wechat:hover { background: #0d7343 !important; border-color: #0d7343 !important; }
.lucky-route-hub { margin: 26px 0 36px; }
.lucky-route-hub-copy .lucky-lead { font-size: 19px; color: #354052; }
.lucky-price-band { display: flex; flex-direction: column; gap: 5px; margin: 24px 0; padding: 22px 24px; border-radius: 16px; color: #fff; background: linear-gradient(135deg,#17324d,#25617d); box-shadow: 0 12px 28px rgba(23,50,77,.18); }

/* Protect low-resolution originals from browser upscaling. */
img.lucky-no-upscale,
.article img.lucky-no-upscale,
.entry-content img.lucky-no-upscale {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 520px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  object-fit: contain !important;
  transform: none !important;
}
.lucky-gallery img.lucky-no-upscale,
.lucky-hotel-gallery img.lucky-no-upscale { max-height: 230px !important; }
.lucky-hotel-row-image img.lucky-no-upscale { max-height: 380px !important; }
.lucky-price-band strong { font-size: 24px; }
.lucky-price-band span { font-size: 16px; opacity: .96; }
.lucky-choice-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 20px 0; }
.lucky-choice-grid > div { padding: 18px; border: 1px solid #eadfd8; border-radius: 14px; background: #fffaf7; }
.lucky-choice-grid strong { color: #172332; font-size: 17px; }
.lucky-choice-grid p { margin: 7px 0 0; color: #667085; font-size: 14px; }
.lucky-price-note { padding: 16px 18px; border-left: 4px solid #f47842; background: #fff7f1; color: #5f493f; }
.lucky-route-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 24px 0 32px; }
.lucky-route-facts span { display: flex; flex-direction: column; padding: 17px; border-radius: 14px; background: #fff7f1; border: 1px solid #f1dfd3; color: #667085; }
.lucky-route-facts strong { color: #c34c20; font-size: 18px; margin-bottom: 3px; }
.lucky-route-stops { display: grid; gap: 10px; padding-left: 28px; }
.lucky-route-stops li { padding: 10px 14px; border-radius: 10px; background: #f7f8fa; }
.lucky-route-highlights { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 0; list-style: none; }
.lucky-route-highlights li { padding: 18px; border-radius: 14px; background: #f1f8f4; border: 1px solid #d9eadf; }
@media (max-width: 900px) { .lucky-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .lucky-route-facts,.lucky-route-highlights { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .lucky-choice-grid { grid-template-columns: 1fr; } .lucky-price-band strong { font-size: 20px; } }
.lucky-multiday-hub { margin: 26px 0 38px; }
.lucky-team-types { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 24px 0; }
.lucky-team-types > div { padding: 22px; border-radius: 16px; border: 1px solid #e0e6ed; background: linear-gradient(145deg,#fff,#f7fafc); }
.lucky-team-types strong { font-size: 21px; color: #172332; }
.lucky-team-types p { margin: 8px 0 0; color: #667085; }
.lucky-price-table { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; margin: 20px 0; }
.lucky-price-table span { display: flex; flex-direction: column; padding: 17px 12px; text-align: center; border-radius: 13px; background: #fff7f1; border: 1px solid #f1d9ca; color: #bf4b1e; }
.lucky-price-table strong { color: #172332; margin-bottom: 5px; }
.lucky-multiday-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 24px 0 30px; }
.lucky-multiday-facts span { display: flex; flex-direction: column; padding: 18px; border-radius: 14px; background: #f7f9fb; border: 1px solid #e2e7ed; color: #667085; }
.lucky-multiday-facts strong { color: #172332; font-size: 18px; margin-bottom: 4px; }
.lucky-day-plan { display: grid; gap: 11px; padding-left: 28px; }
.lucky-day-plan li { padding: 13px 16px; border-radius: 12px; background: #f7f8fa; border-left: 4px solid #f47842; }
.lucky-tour-prices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 20px 0; }
.lucky-tour-prices > div { display: flex; flex-direction: column; padding: 24px; border-radius: 16px; background: linear-gradient(145deg,#172332,#24364a); color: #fff; }
.lucky-tour-prices strong { font-size: 17px; }
.lucky-tour-prices b { margin: 5px 0; color: #ffb28c; font-size: 28px; }
.lucky-tour-prices span { color: #dce3ea; }
.lucky-border-note { padding: 17px 19px; border-radius: 12px; background: #fff3cd; border: 1px solid #f1d88a; color: #725b13; }
@media (max-width: 1000px) { .lucky-price-table { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) { .lucky-team-types,.lucky-tour-prices,.lucky-multiday-facts { grid-template-columns: 1fr; } .lucky-price-table { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 460px) { .lucky-price-table { grid-template-columns: 1fr; } }

.lucky-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 25px 0; }
.lucky-service-card { display: block; padding: 20px; border: 1px solid var(--lucky-line); border-radius: 14px; color: var(--lucky-ink); background: #fff; box-shadow: 0 6px 18px rgba(32,38,44,.05); }
.lucky-service-card:hover { transform: translateY(-2px); border-color: #f2a47f; text-decoration: none; }
.lucky-service-card h2 { font-size: 19px; margin: 0 0 8px; }
.lucky-service-card span { color: var(--lucky-muted); font-size: 14px; }

/* Homepage recommendation cards: larger, cleaner and consistent. */
.lucky-home-cards { margin-top: 48px; padding: 30px 0; }
.lucky-home-cards .s-head { margin-bottom: 24px; text-align: left; border-bottom: 1px solid #dfe7eb; }
.lucky-home-cards .s-head-title { margin: 0 0 12px; color: #172332; font-size: 30px; line-height: 1.25; }
.lucky-home-cards .s-sub-title { display: none; }
.lucky-popular-cars .s-sub-title { display: none; }
.lucky-home-cards .flex-viewport { overflow: visible !important; }
.lucky-home-cards .slides { display: grid !important; width: auto !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; transform: none !important; }
.lucky-home-cards .slides > li { display: block !important; float: none !important; width: auto !important; margin: 0 !important; }
.lucky-home-cards .s-item-wrap { height: 100%; overflow: hidden; border: 1px solid #dfe7eb; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(25,43,58,.07); }
.lucky-home-cards .thumb { display: block; overflow: hidden; background: #eef3f5; }
.lucky-home-cards .thumb img { display: block; width: 100% !important; max-width: none !important; height: 220px !important; margin: 0 !important; border: 0 !important; object-fit: cover; object-position: center; image-rendering: auto; }
.lucky-home-cards .title { margin: 0; padding: 15px 16px 18px; font-size: 17px; line-height: 1.45; }
.lucky-home-cards .title a { color: #172332; text-decoration: none; }
.lucky-home-cards .flex-direction-nav, .lucky-home-cards .flex-control-nav { display: none !important; }
@media (max-width: 900px) { .lucky-home-cards .slides { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 580px) { .lucky-home-cards { margin-top: 28px; padding: 20px 0; } .lucky-home-cards .slides { grid-template-columns: 1fr; gap: 16px; } .lucky-home-cards .thumb img { height: 230px !important; } }

/* Keep legacy sliders from widening the mobile canvas while their scripts initialise. */
html, body { overflow-x: hidden; }

/* Skip layout/paint work for sections that are still far below the viewport. */
.lucky-home-cards,
.lucky-route-grid,
.lucky-related-grid,
.lucky-hotel-grid,
.lucky-service-grid { content-visibility: auto; contain-intrinsic-size: 720px; }

.lucky-assurances { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 0; margin: 24px 0; list-style: none; }
.lucky-assurances li { padding: 15px 12px; border-radius: 12px; background: #f7f9fa; text-align: center; }
.lucky-assurances strong, .lucky-assurances span { display: block; }
.lucky-assurances strong { color: var(--lucky-green); margin-bottom: 5px; }
.lucky-assurances span { color: var(--lucky-muted); font-size: 13px; line-height: 1.5; }

.lucky-home-hub { margin: 40px 0; padding: 34px; border-radius: 20px; background: #f8f5f2; }
.lucky-home-hub .lucky-home-title { margin: 0 0 8px; text-align: center; font-size: 30px; }
.lucky-home-hub .lucky-home-subtitle { text-align: center; color: var(--lucky-muted); margin-bottom: 24px; }
.lucky-home-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.lucky-home-grid a { display: block; min-height: 116px; padding: 18px; border-radius: 14px; color: var(--lucky-ink); background: #fff; border: 1px solid #eee1d8; }
.lucky-home-grid a:hover { border-color: var(--lucky-orange); text-decoration: none; }
.lucky-home-grid strong { display: block; margin-bottom: 7px; font-size: 17px; }
.lucky-home-grid span { color: var(--lucky-muted); font-size: 14px; line-height: 1.55; }

.lucky-mobile-bar { display: none; }
.lucky-wechat-modal[hidden] { display: none !important; }
.lucky-wechat-modal { position: fixed; z-index: 100200; inset: 0; display: grid; place-items: center; padding: 18px; }
.lucky-wechat-backdrop { position: absolute; inset: 0; background: rgba(13, 28, 42, .72); backdrop-filter: blur(3px); }
.lucky-wechat-dialog { position: relative; width: min(92vw, 390px); padding: 28px 24px 24px; border-radius: 22px; background: #fff; color: #172536; text-align: center; box-shadow: 0 24px 70px rgba(0, 0, 0, .28); }
.lucky-wechat-dialog h2 { margin: 0 30px 18px; color: #172536; font-size: 24px; line-height: 1.35; }
.lucky-wechat-dialog img { display: block; width: 258px; max-width: 100%; height: auto; margin: 0 auto 16px; image-rendering: auto; }
.lucky-wechat-dialog p { margin: 0 0 18px; color: #465567; font-size: 16px; line-height: 1.75; }
.lucky-wechat-close { position: absolute; top: 10px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #eef3f6; color: #172536; font-size: 30px; line-height: 36px; cursor: pointer; }
.lucky-wechat-open { display: flex; min-height: 50px; align-items: center; justify-content: center; border-radius: 12px; background: #18794e; color: #fff !important; font-size: 18px; font-weight: 700; text-decoration: none !important; }
.lucky-wechat-modal-open { overflow: hidden; }
.entry-content .lucky-content { max-width: none; }
.entry-related li a { line-height: 1.55; }

/* Footer readability: high contrast and calmer spacing on every page. */
.footer,
.footer-simple {
  color: #eaf1f6;
  background: #172b3a;
  font-size: 16px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.footer .copyright,
.footer-simple .copyright {
  color: #eaf1f6;
  background: #172b3a;
}
.footer a,
.footer-simple a {
  color: #fff;
  font-weight: 600;
}
.footer a:hover,
.footer a:focus,
.footer-simple a:hover,
.footer-simple a:focus {
  color: #fff;
  text-decoration: underline;
}
.footer-simple .menu,
.footer-simple .footer-menu { margin-bottom: 18px; }
.footer-simple .menu li,
.footer-simple .footer-menu li {
  margin: 5px 0;
  border-right-color: #718390;
  line-height: 1.5;
}

.lucky-contact-page { color: var(--lucky-ink); }
.lucky-contact-intro { margin-bottom: 24px; }
.lucky-contact-intro h2 { margin-top: 0; }
.lucky-contact-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; margin: 24px 0; }
.lucky-contact-card { padding: 26px; border: 1px solid var(--lucky-line); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(24,34,45,.06); }
.lucky-contact-primary { color: #fff; border-color: #2c6d8b; background: linear-gradient(135deg, var(--lucky-booking-dark), #286c8a); box-shadow: 0 14px 34px rgba(23,63,87,.22); }
.lucky-contact-primary h2 { margin: 8px 0 10px; font-size: 34px; }
.lucky-contact-primary h2 a { color: #fff; text-decoration: none; }
.lucky-contact-primary .lucky-btn-primary { color: var(--lucky-booking-dark); background: #fff; border-color: #fff; }
.lucky-contact-kicker { display: block; font-size: 13px; font-weight: 700; letter-spacing: .08em; opacity: .82; }
.lucky-contact-wechat { display: grid; grid-template-columns: 1fr 150px; gap: 20px; align-items: center; }
.lucky-contact-wechat img { width: 150px; height: 150px; object-fit: contain; border-radius: 10px; }
.lucky-contact-checklist, .lucky-contact-services { margin: 28px 0; padding: 26px; border-radius: 16px; background: #f7f9fa; }
.lucky-contact-checklist ol { margin: 0; padding-left: 22px; }
.lucky-contact-checklist li { margin: 11px 0; }
.lucky-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.lucky-link-grid a { display: block; padding: 12px 14px; border: 1px solid var(--lucky-line); border-radius: 10px; color: var(--lucky-ink); background: #fff; }
.lucky-link-grid a:hover { color: var(--lucky-orange-dark); border-color: var(--lucky-orange); text-decoration: none; }

.lucky-hotel-story .lucky-lead { font-size: 21px; line-height: 1.8; }
.lucky-hotel-redesigned { overflow: hidden; }
.lucky-hotel-hero { position: relative; overflow: hidden; margin: -1px -1px 30px; min-height: 390px; border-radius: 18px; background: #172332; }
.lucky-hotel-hero:after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,22,32,.82) 0%, rgba(12,22,32,.42) 48%, rgba(12,22,32,.08) 78%); }
.lucky-hotel-hero img { display: block; width: 100%; height: 440px; object-fit: cover; object-position: center; border-radius: 0; }
.lucky-hotel-hero figcaption { position: absolute; z-index: 1; left: 42px; bottom: 38px; width: min(560px, calc(100% - 84px)); color: #fff; }
.lucky-hotel-hero figcaption span { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.lucky-hotel-hero figcaption strong { display: block; margin-bottom: 10px; font-size: clamp(30px, 4vw, 48px); line-height: 1.2; }
.lucky-hotel-hero figcaption em { display: block; font-size: 17px; font-style: normal; line-height: 1.75; }
.lucky-hotel-redesigned > .lucky-lead { margin: 0 0 26px; }
.lucky-hotel-arrival, .lucky-hotel-moment { margin: 28px 0; padding: 26px; border-radius: 16px; }
.lucky-hotel-arrival { background: linear-gradient(135deg, #fff7f1, #fff); border: 1px solid #f1d2c1; }
.lucky-hotel-moment { background: #f6f8fa; border-left: 5px solid var(--lucky-green); }
.lucky-hotel-arrival h2, .lucky-hotel-moment h2 { margin-top: 0; }
.lucky-hotel-story-row { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: 22px; align-items: stretch; margin: 30px 0; }
.lucky-hotel-story-row-reverse { grid-template-columns: minmax(300px, .95fr) minmax(0, 1.05fr); }
.lucky-hotel-story-row-solo { grid-template-columns: 1fr; }
.lucky-hotel-story-row .lucky-hotel-arrival, .lucky-hotel-story-row .lucky-hotel-moment { height: 100%; margin: 0; padding: 30px; }
.lucky-hotel-row-image { overflow: hidden; min-height: 330px; margin: 0; border-radius: 16px; background: #eef1f3; }
.lucky-hotel-row-image img { display: block; width: 100%; height: 100%; min-height: 330px; object-fit: cover; border-radius: 0; transition: transform .35s ease; }
.lucky-hotel-story-row:hover .lucky-hotel-row-image img { transform: scale(1.025); }
.lucky-hotel-gallery-section { margin: 36px 0; padding: 30px; border: 1px solid var(--lucky-line); border-radius: 18px; background: #f7f9fa; }
.lucky-section-heading { max-width: 760px; margin-bottom: 22px; }
.lucky-section-heading h2 { margin: 5px 0 8px; }
.lucky-section-heading p { margin: 0; color: var(--lucky-muted); }
.lucky-hotel-gallery { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.lucky-hotel-gallery figure { overflow: hidden; margin: 0; border-radius: 14px; background: #fff; box-shadow: 0 6px 20px rgba(24,34,45,.07); }
.lucky-hotel-gallery img { display: block; width: 100%; height: 230px; object-fit: cover; border-radius: 0; transition: transform .3s ease; }
.lucky-hotel-gallery figure:hover img { transform: scale(1.035); }
.lucky-hotel-gallery figcaption { padding: 12px 14px; color: var(--lucky-muted); font-size: 13px; line-height: 1.6; }
.lucky-hotel-address { margin: 24px 0; padding: 24px 26px; border: 2px solid #f0a17d; border-radius: 16px; background: #fffaf6; }
.lucky-hotel-address h2 { margin: 6px 0 12px; }
.lucky-hotel-address address { display: block; margin: 0 0 14px; padding: 14px 16px; border-left: 5px solid var(--lucky-orange); color: var(--lucky-ink); background: #fff; font-size: 19px; font-style: normal; font-weight: 700; line-height: 1.65; }
.lucky-hotel-map-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.lucky-hotel-map-actions button { font: inherit; cursor: pointer; }
.lucky-map-stay-note { margin: 12px 0 0; color: var(--lucky-muted); font-size: 14px; }
body.lucky-map-open { overflow: hidden; }
.lucky-map-modal { position: fixed; z-index: 100000; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; }
.lucky-map-modal.is-open { display: flex; }
.lucky-map-backdrop { position: absolute; inset: 0; background: rgba(15, 25, 35, .68); backdrop-filter: blur(3px); }
.lucky-map-dialog { position: relative; z-index: 1; width: min(880px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 28px; border-radius: 20px; background: #fff; box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.lucky-map-dialog h2 { margin: 4px 52px 4px 0; }
.lucky-map-dialog .lucky-map-hotel { margin: 0; color: var(--lucky-orange-dark); font-size: 18px; font-weight: 700; }
.lucky-map-dialog address { margin: 10px 0 16px; color: var(--lucky-ink); font-size: 18px; font-style: normal; font-weight: 700; }
.lucky-map-close { position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; border: 0; border-radius: 50%; color: #fff; background: var(--lucky-ink); font-size: 28px; line-height: 40px; cursor: pointer; }
.lucky-map-frame-wrap { overflow: hidden; border: 1px solid var(--lucky-line); border-radius: 14px; background: #eef1f3; }
.lucky-map-frame { display: block; width: 100%; height: min(48vh, 440px); border: 0; }
.lucky-map-help { margin: 14px 0; color: var(--lucky-muted); }
.lucky-map-dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.lucky-map-dialog-actions button { font: inherit; cursor: pointer; }
.lucky-original-hotel { margin: 32px 0; padding: 26px; border: 1px solid var(--lucky-line); border-radius: 16px; background: #fff; }
.lucky-original-hotel h2 { margin-top: 0; }
.lucky-original-hotel img { display: block; width: auto; max-width: 100%; height: auto; margin: 18px auto; border-radius: 12px; image-rendering: auto; }
.lucky-original-hotel figcaption { color: var(--lucky-muted); text-align: center; }

/* Keep the new popular-car photography visible and elegant on hover. */
.lucky-popular-cars .s-item-wrap .thumb { background: #fff; }
.lucky-popular-cars .s-item-wrap .thumb img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  transition: transform .28s ease, filter .28s ease;
}
.lucky-popular-cars .s-item-wrap:hover .thumb:before { opacity: .12; filter: alpha(opacity=12); }
.lucky-popular-cars .s-item-wrap:hover .thumb img { transform: scale(1.025); filter: contrast(1.03) saturate(1.04); }

/* Homepage service icons: calm, consistent, and easier to scan. */
.feature.section { margin-top: 30px; }
.feature .fea {
  min-height: 300px;
  margin-bottom: 12px;
  padding: 30px 22px 26px;
  border: 8px solid #fff;
  border-radius: 26px;
  background: linear-gradient(180deg, #fff 0%, #fff9f5 100%);
  background-clip: padding-box;
  box-shadow: inset 0 0 0 1px rgba(231, 212, 201, .72);
}
.feature .fea:hover {
  box-shadow: inset 0 0 0 1px rgba(244, 120, 66, .45), 0 12px 30px rgba(61, 43, 34, .08);
}
.feature .fa {
  width: 82px;
  height: 82px;
  line-height: 82px;
  font-size: 30px;
  color: #e8652f !important;
  background: linear-gradient(135deg, #fff3ec, #ffdfce) !important;
  border: 1px solid rgba(244, 120, 66, .22);
  box-shadow: 0 10px 24px rgba(215, 92, 42, .12);
}
.feature .fea:hover .fa {
  color: #fff !important;
  background: linear-gradient(135deg, #f58a55, #ee642e) !important;
  box-shadow: 0 12px 28px rgba(215, 92, 42, .22);
}
.feature .fea .fea-item-title {
  margin: 20px 0 8px;
  color: #1c2a38;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
}
.feature .fea p {
  max-width: 390px;
  min-height: 54px;
  margin: 0 auto;
  padding: 0 18px;
  color: #667085;
  font-size: 15px;
  line-height: 1.8;
}

@media (max-width: 991px) {
  .lucky-assurances { grid-template-columns: repeat(2, 1fr); }
  .lucky-home-grid { grid-template-columns: repeat(2, 1fr); }
  .lucky-hotel-story-row, .lucky-hotel-story-row-reverse { grid-template-columns: 1fr; }
  .lucky-hotel-story-row-reverse .lucky-hotel-row-image { order: 2; }
  .lucky-hotel-gallery { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 767px) {
  body { padding-bottom: 66px; }
  .lucky-content { font-size: 16px; line-height: 1.8; }
  .lucky-content h2 { font-size: 23px; }
  .lucky-lead { font-size: 18px; padding: 16px 18px; }
  .lucky-gallery, .lucky-service-grid, .lucky-home-grid { grid-template-columns: 1fr; }
  .lucky-assurances { grid-template-columns: 1fr 1fr; }
  .lucky-home-hub { padding: 24px 16px; }
  .lucky-contact-grid, .lucky-contact-wechat, .lucky-link-grid { grid-template-columns: 1fr; }
  .lucky-contact-wechat img { width: 140px; height: 140px; }
  .lucky-contact-card, .lucky-contact-checklist, .lucky-contact-services { padding: 20px; }
  .lucky-hotel-arrival, .lucky-hotel-moment, .lucky-hotel-address, .lucky-original-hotel { padding: 20px; }
  .lucky-hotel-hero { min-height: 330px; margin-bottom: 22px; }
  .lucky-hotel-hero img { height: 360px; }
  .lucky-hotel-hero figcaption { left: 22px; bottom: 24px; width: calc(100% - 44px); }
  .lucky-hotel-hero figcaption em { font-size: 15px; }
  .lucky-hotel-story-row .lucky-hotel-arrival, .lucky-hotel-story-row .lucky-hotel-moment { padding: 22px; }
  .lucky-hotel-row-image, .lucky-hotel-row-image img { min-height: 260px; }
  .lucky-hotel-gallery-section { padding: 22px 16px; }
  .lucky-hotel-gallery { grid-template-columns: 1fr; }
  .lucky-hotel-gallery img { height: auto; max-height: 360px; object-fit: cover; }
  .lucky-hotel-map-actions, .lucky-map-dialog-actions { display: grid; grid-template-columns: 1fr; }
  .lucky-hotel-map-actions .lucky-btn, .lucky-map-dialog-actions .lucky-btn { width: 100%; text-align: center; }
  .lucky-map-modal { padding: 10px; }
  .lucky-map-dialog { max-height: calc(100vh - 20px); padding: 22px 16px 18px; border-radius: 16px; }
  .lucky-map-frame { height: 38vh; min-height: 250px; }
  .lucky-mobile-bar { position: fixed; z-index: 99999; display: grid; grid-template-columns: 1fr 1fr; left: 0; right: 0; bottom: 0; height: 60px; box-shadow: 0 -4px 18px rgba(0,0,0,.16); }
  .lucky-mobile-bar a { display: flex; align-items: center; justify-content: center; color: #fff; background: #1a2834; font-weight: 700; }
  .lucky-mobile-bar a:first-child { flex-direction: column; gap: 1px; line-height: 1.15; }
  .lucky-mobile-bar a:first-child span { font-size: 14px; font-weight: 600; }
  .lucky-mobile-bar a:first-child strong { color: #fff; font-size: 17px; font-weight: 800; letter-spacing: .2px; }
  .lucky-mobile-bar a:first-child { background: var(--lucky-booking); }
  .lucky-mobile-bar a:last-child { background: #18794e; }
  .footer,
  .footer-simple { font-size: 17px; line-height: 1.9; }
  .footer .copyright,
  .footer-simple .copyright { padding: 28px 18px 82px; }
  .footer-simple .menu,
  .footer-simple .footer-menu { margin-bottom: 20px; }
  .footer-simple .menu li,
  .footer-simple .footer-menu li { padding: 0 8px 0 7px; }
  .feature .fea { min-height: 260px; padding: 24px 12px 20px; border-width: 5px; }
  .feature .fa { width: 70px; height: 70px; line-height: 70px; font-size: 27px; }
  .feature .fea .fea-item-title { margin-top: 15px; font-size: 20px; }
  .feature .fea p { min-height: 0; padding: 0 6px; font-size: 14px; }
}

/* Keep the mobile navigation on-screen instead of shifting the whole page away. */
@media (max-width: 1024px) {
  body.navbar-on {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    overflow: hidden !important;
    transform: none !important;
  }
  body.navbar-on #header .navbar-collapse {
    display: block !important;
    position: fixed !important;
    z-index: 100002 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(88vw, 380px) !important;
    height: 100vh !important;
    margin: 0 !important;
    padding: 72px 0 82px !important;
    background: #172536 !important;
    box-shadow: -14px 0 36px rgba(0, 0, 0, .26);
    overflow-y: auto !important;
    transform: none !important;
  }
  body.navbar-on .navbar-toggle {
    position: fixed !important;
    z-index: 100003 !important;
    top: 15px !important;
    right: 18px !important;
    margin: 0 !important;
  }
  body.navbar-on .navbar-on-shadow {
    z-index: 100001 !important;
  }
  body.navbar-on #header .navbar-nav,
  body.navbar-on #header .navbar-nav > li,
  body.navbar-on #header .navbar-nav > li > a {
    width: 100% !important;
  }
  body.navbar-on #header .navbar-nav > li > a {
    padding: 4px 24px !important;
    color: #fff !important;
    font-size: 17px !important;
    line-height: 46px !important;
    text-align: left !important;
  }
  body.navbar-on #header .navbar-nav > li.active > a,
  body.navbar-on #header .navbar-nav > li > a:hover,
  body.navbar-on #header .navbar-nav > li > a:focus {
    color: #172536 !important;
    background: #fff !important;
  }
  body.navbar-on #header .navbar-nav .dropdown-menu {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 0 14px !important;
    background: rgba(255, 255, 255, .07) !important;
  }
  body.navbar-on #header .navbar-nav .dropdown-menu a {
    color: #fff !important;
    font-size: 16px !important;
    line-height: 30px !important;
    text-align: left !important;
  }
  body.navbar-on #header .m-dropdown {
    display: none !important;
  }
}
