/* Visitor-facing hierarchy shared by the main site and its service pages. */
/* Alternating photographic itinerary, styled as pages in a travel journal. */
.cover-clean .feature-plan { padding:26px; background:#f5f2e9; }
.cover-clean .feature-plan .plan-top { padding-bottom:26px; border-bottom:1px solid #d0d2c5; align-items:center; }
.cover-clean .feature-plan .plan-top h4 { font:500 27px/1.5 Georgia,"SimSun",serif; letter-spacing:.04em; }
.cover-clean .feature-plan ol { position:relative; display:flex; flex-direction:column; gap:26px; margin-top:0; counter-reset:journey; }
.cover-clean .feature-plan ol::before { content:""; position:absolute; left:50%; top:0; bottom:0; border-left:1px solid #d9ddcf; }
.cover-clean .feature-plan ol>li { position:relative; width:96%; counter-increment:journey; border:0; padding:0; background:none; }
.cover-clean .feature-plan ol>li:nth-child(even) { align-self:flex-end; }
.cover-clean .feature-plan .day-card { position:relative; display:grid; grid-template-columns:46% minmax(0,1fr); grid-template-rows:auto 1fr auto; align-content:stretch; gap:12px 30px; padding:22px 26px 22px 0; min-height:216px; border:1px solid #deded0; border-radius:12px; background:#fffdf7; overflow:hidden; box-shadow:0 8px 24px #3944310a; text-align:left; transition:transform .3s,box-shadow .3s; }
.cover-clean .feature-plan .day-photo { grid-column:1; grid-row:1 / 4; align-self:stretch; position:relative; margin:-22px 0; overflow:hidden; background:#dce1d1; }
.cover-clean .feature-plan .day-photo img { width:100%; height:100%; position:absolute; object-fit:cover; transition:transform .6s; }
.cover-clean .feature-plan .day-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#193c344d,transparent 65%); }
.cover-clean .feature-plan .day-card::before { content:counter(journey,decimal-leading-zero); position:absolute; z-index:1; left:18px; bottom:9px; color:#fff; font:italic 66px/1 Georgia,serif; text-shadow:0 2px 12px #17352c30; }
.cover-clean .feature-plan .day-card-top { grid-column:2; min-width:0; display:flex; margin:0; gap:8px; flex-wrap:wrap; align-items:center; }
.cover-clean .feature-plan .day-number { font-size:12px!important; color:#95573f; font-weight:600; letter-spacing:.1em; }
.cover-clean .feature-plan .day-time { font-size:11px!important; font-variant-numeric:tabular-nums; color:#697367; }
.cover-clean .feature-plan .day-card-main { grid-column:2; min-width:0; align-self:center; padding:5px 0; overflow-wrap:anywhere; }
.cover-clean .feature-plan .day-card-main strong { font-size:22px!important; line-height:1.55!important; font-weight:550; letter-spacing:.02em; }
.cover-clean .feature-plan .day-card-bottom { grid-column:2; min-width:0; display:flex; margin:0; padding-top:13px; border-top:1px solid #e4e4d8; gap:12px; flex-wrap:wrap; }
.cover-clean .feature-plan .day-tags { gap:10px; }
.cover-clean .feature-plan .day-tags b { font-size:11px!important; padding:0 0 0 8px; border-left:2px solid #b7c3a8; border-radius:0; background:none; color:#65705f; font-weight:400; }
.cover-clean .feature-plan .day-open { display:inline-flex;align-items:center;gap:6px;font-size:13px!important;font-weight:600;color:#98573f;transition:color .2s,gap .2s; }
.cover-clean .feature-plan ol>li:nth-child(even) .day-card { grid-template-columns:minmax(0,1fr) 46%; padding:22px 0 22px 26px; }
.cover-clean .feature-plan ol>li:nth-child(even) .day-photo { grid-column:2; }
.cover-clean .feature-plan ol>li:nth-child(even) .day-card-top,.cover-clean .feature-plan ol>li:nth-child(even) .day-card-main,.cover-clean .feature-plan ol>li:nth-child(even) .day-card-bottom { grid-column:1; }
.cover-clean .feature-plan ol>li:nth-child(even) .day-card::before { left:auto; right:20px; }
.cover-clean .feature-plan .day-card:hover { transform:translateY(-4px); box-shadow:0 16px 32px #39443114; border-color:#b5bfa8; }
.cover-clean .feature-plan .day-card:hover img { transform:scale(1.045); }
.cover-clean .feature-plan .day-card:hover .day-open { color:#713d2d;gap:11px; }
.cover-clean .feature-plan .day-card:active { transform:translateY(-1px) scale(.995); }
.cover-clean .feature-plan .day-card:focus-visible { outline:3px solid #a75b43; outline-offset:4px; }
.cover-clean .feature-plan .day-card:not(:has(.day-photo))::before { color:#a75b43; text-shadow:none; top:50%; bottom:auto; transform:translateY(-50%); }
@media(max-width:760px) {
 .cover-clean .feature-plan { padding:26px 18px; }
 .cover-clean .feature-plan .plan-top { display:block; }
 .cover-clean .feature-plan .plan-top h4 { font-size:23px; }
 .cover-clean .feature-plan .plan-hint { display:block; margin-top:8px; text-align:left; }
 .cover-clean .feature-plan ol { gap:22px; }
 .cover-clean .feature-plan ol>li { width:100%; }
 .cover-clean .feature-plan .day-card,.cover-clean .feature-plan ol>li:nth-child(even) .day-card { grid-template-columns:minmax(0,1fr); grid-template-rows:176px auto auto auto; padding:0 18px 18px; gap:12px; }
 .cover-clean .feature-plan .day-photo,.cover-clean .feature-plan ol>li:nth-child(even) .day-photo { grid-column:1; grid-row:1; margin:0 -18px; }
 .cover-clean .feature-plan .day-card-top,.cover-clean .feature-plan .day-card-main,.cover-clean .feature-plan .day-card-bottom { grid-column:1; }
 .cover-clean .feature-plan .day-card::before,.cover-clean .feature-plan ol>li:nth-child(even) .day-card::before { top:112px; bottom:auto; left:16px; right:auto; font-size:54px; }
 .cover-clean .feature-plan .day-card-main strong { font-size:20px!important; }
}
@media(prefers-reduced-motion:reduce) {
 .cover-clean .feature-plan .day-card,.cover-clean .feature-plan .day-photo img,.cover-clean .feature-plan .day-open { transition:none; }
 .cover-clean .feature-plan .day-card:hover { transform:none; }
 .cover-clean .feature-plan .day-card:hover img { transform:none; }
 .cover-clean .feature-plan .day-card:active { transform:none; }
 .cover-clean .feature-plan .day-card:hover .day-open { gap:6px; }
}

.cover-clean { --muted:#52645b; }
.cover-clean .section-heading { gap:24px; align-items:flex-start; }
.cover-clean .section-heading h2 { font-size:clamp(25px,3vw,34px); line-height:1.45; margin:10px 0 0; }
.cover-clean .section-heading>p { font-size:16px; line-height:1.8; color:var(--muted); max-width:420px; }
.cover-clean .eyebrow { font-size:15px; line-height:1.6; letter-spacing:.03em; }
.cover-clean .planner-card { padding:30px; }
.cover-clean .step-body>label { font-size:18px; line-height:1.6; }
.cover-clean .step-body select,.cover-clean .constraint-grid select { font-size:16px; padding:12px; }
.cover-clean .constraint-grid label>span { font-size:15px; }
.cover-clean .market b { font-size:16px; }
.cover-clean .market span { font-size:14px; line-height:1.7; color:var(--muted); }
.cover-clean .market.active { background:#c9e5d7; border-color:#6da88d; color:#29483b; }
.cover-clean .market.active b { color:#205447; }
.cover-clean .market.active span { color:#3f6252; }
.cover-clean .tag-list label { font-size:15px; padding:10px 14px; }
.cover-clean .button { font-size:15px; }
.cover-clean .feature-intro p { font-size:16px; line-height:1.8; }
.cover-clean .route-tags span,.cover-clean .day-tags b { font-size:13px; line-height:1.6; }
.cover-clean .visual-code,.cover-clean .feature-badge { font-size:13px; }
.cover-clean .visual-small,.cover-clean .feature-footer,.cover-clean .plan-hint { font-size:14px; }
.cover-clean .day-number,.cover-clean .day-time,.cover-clean .day-open { font-size:14px; line-height:1.6; }
.cover-clean .day-time { color:var(--muted); letter-spacing:0; }
.cover-clean .day-card-main strong { font-size:18px; line-height:1.6; }
.cover-clean .day-card { padding:20px; }
.cover-clean .day-card-bottom { gap:12px; flex-wrap:wrap; }
.cover-clean .alternative-body p { font-size:15px; line-height:1.8; }
.cover-clean .alt-days,.cover-clean .alt-days b,.cover-clean .route-switch { font-size:14px; }
.cover-clean .alternatives-hint { font-size:14px; color:var(--muted); }
.cover-clean .phase-tab,.cover-clean .discover-tab { font-size:16px; padding:12px 20px; }
.cover-clean #serviceHub .service-card { padding:24px; }
.cover-clean #serviceHub .service-card-body strong { font-size:19px; line-height:1.5; }
.cover-clean #serviceHub .service-card-body small { font-size:15px; color:var(--muted); line-height:1.8; }
.cover-clean #serviceHub .service-card-body em { font-size:22px; padding-top:10px; }
.cover-clean #serviceHub .service-card-body em { display:inline-flex; align-items:center; gap:10px; width:max-content; margin-top:auto; padding:10px 0 0; color:#2f6043; font-size:15px; font-style:normal; font-weight:700; }
.cover-clean #serviceHub .service-card-body em span { display:grid; place-items:center; width:28px; height:28px; border:1px solid #9ab9a7; border-radius:50%; font-size:17px; line-height:1; transition:background .2s,color .2s,transform .2s; }
.cover-clean #serviceHub .service-card:hover .service-card-body em span { background:#2f6043; color:#fff; transform:translate(2px,-2px); }
.cover-clean .discover-grid .service-card-body h3 { font-size:21px; line-height:1.5; }
.cover-clean .discover-grid .service-card-body p { font-size:16px; line-height:1.8; color:var(--muted); }
.cover-clean .service-more,.cover-clean .service-tags span { font-size:14px; }
.cover-clean .modal-panel { padding:32px; }
.cover-clean .modal-panel h2 { line-height:1.4; font-size:30px; }
.cover-clean .modal-kicker,.cover-clean .modal-context,.cover-clean .detail-time { font-size:14px; letter-spacing:0; }
.cover-clean .day-detail-grid h3,.cover-clean .guide-modal-section h3 { font-size:19px; line-height:1.5; }
.cover-clean .day-detail-grid p,.cover-clean .detail-callouts p,.cover-clean .guide-action p,
.cover-clean .guide-modal-section li,.cover-clean .personalised-strip p { font-size:16px; line-height:1.8; }
.cover-clean .detail-callouts b,.cover-clean .guide-action b,.cover-clean .personalised-strip>span { font-size:14px; }
.cover-clean .modal-disclaimer { font-size:14px; line-height:1.8; color:var(--muted); }
.cover-clean .footer { font-size:14px; }

/* Service tools: concise headings, readable controls and quieter containers. */
.service-page { font-size:16px; line-height:1.8; padding-top:28px; }
.service-page h1 { font-size:clamp(28px,4vw,38px); line-height:1.45; margin:12px 0 18px; font-weight:650; }
.service-page h2 { font-size:24px; line-height:1.5; margin:0 0 18px; }
.service-page h3 { font-size:20px; line-height:1.5; }
.service-page p { line-height:1.8; }
.service-page>.eyebrow { font-size:14px; color:#52645b; letter-spacing:.03em; margin:0 0 8px; }
.service-page .back-link { font-size:15px; margin-bottom:16px; text-decoration:none; }
.service-page .service-content { background:#fffdf8; border-color:#dedfd5; border-radius:18px; padding:28px; margin:24px 0; }
.service-page .service-content>p { color:#52645b; }
.service-page .service-note,.service-page small,.service-page .voice-note,
.service-page .booking-fx-note,.service-page .booking-fx-status { font-size:14px; line-height:1.8; color:#52645b; }
.service-page .service-action { font-size:16px; line-height:1.5; border-radius:10px; min-height:44px; text-align:center; }
.service-page input:not([type=checkbox]):not([type=radio]),.service-page textarea,.service-page select { font-size:16px; max-width:100%; }
.service-page .service-navigation { padding:16px 20px; margin:20px 0 24px; background:#eef2e9; }
.service-page .service-nav-stages { gap:8px; padding-bottom:12px; margin-bottom:12px; }
.service-page .service-nav-links { gap:8px; }
.service-page .service-navigation a,.service-page .service-navigation button { font-size:15px; padding:8px 16px; }
.service-page #lead:empty,.service-page #status:empty,.service-page #context:empty { display:none; }
.service-page .booking-timezones h3 { color:#52645b; letter-spacing:0; }
/* Shared language panel remains available on pages without a native switch. */
body:has(#languageToggle) #rj-language-control,body:has(#language) #rj-language-control { display:none!important; }
.service-page~#rj-language-control { top:16px!important; box-shadow:0 2px 8px #0001!important; }

/* Accommodation directory. */
body:has(#hotels) .brand span,body:has(#hotels) .hotel .meta,
body:has(#hotels) .hotel .source,body:has(#hotels) .muted,
body:has(#hotels) .list-heading span,body:has(#hotels) footer { font-size:14px; }
body:has(#hotels) .filters label { font-size:15px; }
body:has(#hotels) .hotel p { font-size:16px; line-height:1.8; }
body:has(#hotels) .hotel h3 { font-size:21px; }

@media(max-width:680px) {
 .cover-clean .planner-card,.cover-clean .modal-panel { padding:22px 18px; }
 .cover-clean .constraint-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cover-clean .day-card { padding:16px; }
 .cover-clean .day-card-top { gap:8px; flex-wrap:wrap; }
 .cover-clean .section-heading>p { max-width:none; }
 .cover-clean .detail-callouts,.cover-clean .day-detail-grid { grid-template-columns:1fr; }
 .service-page .service-content { padding:22px 18px; }
 .service-page .service-navigation { padding:14px; }
 .service-page .service-navigation a,.service-page .service-navigation button { padding:8px 12px; }
}

.cover-clean .service-detail-grid p,.cover-clean .service-detail-note p,.cover-clean .recommended-shop p { font-size:16px; line-height:1.8; color:#52645b; }
.cover-clean .service-detail-grid b,.cover-clean .service-detail-note b,.cover-clean .day-service-heading span { font-size:16px; }
.cover-clean .day-service-heading b,.cover-clean .day-meal-card small,.cover-clean .day-meal-card>span { font-size:14px; line-height:1.7; }
.cover-clean .day-meal-card strong { font-size:18px; line-height:1.5; }
.cover-clean .day-service-heading { flex-wrap:wrap; gap:10px; }
@media(max-width:680px){.cover-clean .service-detail-grid{grid-template-columns:1fr}}
body.cover-clean[data-language] .section-heading h2{font-family:inherit;font-size:clamp(25px,3vw,32px);font-weight:650;line-height:1.5;letter-spacing:0}.cover-clean #serviceHub .service-card{min-height:210px}.cover-clean #serviceHub .service-icon{font-size:24px}

.cover-clean .feature-intro .feature-badge{margin-bottom:18px}.cover-clean .service-card-body h3{font-family:inherit;font-weight:650}.cover-clean .service-detail .modal-kicker{display:none}

/* Runtime route styles are injected after link stylesheets. */
.cover-clean .day-number,.cover-clean .day-time,.cover-clean .day-open{font-size:14px!important;line-height:1.6!important}
.cover-clean .day-card-main strong{font-size:18px!important;line-height:1.6!important}
.cover-clean .day-tags b,.cover-clean .route-tags span{font-size:13px!important}
.cover-clean .section-heading>p{font-size:16px!important;line-height:1.8!important}
.cover-clean .feature-intro p{font-size:16px!important;line-height:1.8!important}
.cover-clean .service-card-body h3{font-size:21px!important;font-family:inherit!important;font-weight:650!important}
.cover-clean .modal-disclaimer,.cover-clean .plan-hint{font-size:14px!important}

/* Compact, centred day details. */
.cover-clean .day-experience-layout { display:block; padding:20px; background:#faf9f3; }
.cover-clean .day-experience-layout>div { min-width:0; }
.cover-clean .day-experience-layout .day-service-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 14px; }
.cover-clean .day-experience-layout .day-service-heading span { font-size:17px; line-height:1.5; }
.cover-clean .day-experience-layout .day-service-heading b { font-size:11px; font-weight:400; letter-spacing:0; color:#7b816e; }
.cover-clean .day-experience-layout .day-meal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; }
.cover-clean .day-experience-layout .day-destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cover-clean .day-experience-layout .day-meal-grid .day-meal-card { display:flex; flex-direction:column; width:100%; max-width:none; height:auto; min-height:0; margin:0; padding:0 0 14px; gap:0; border-radius:12px; background:#fffdf8; overflow:hidden; text-align:left; box-shadow:none; }
.cover-clean .day-experience-layout .day-meal-card img { width:100%; height:125px; flex:0 0 125px; object-fit:cover; }
.cover-clean .day-experience-layout .day-meal-card span { margin:12px 14px 3px; font-size:10px; line-height:1.4; letter-spacing:.02em; font-weight:500; }
.cover-clean .day-experience-layout .day-meal-card strong { margin:0 14px 5px; min-height:0; font-size:17px; line-height:1.5; }
.cover-clean .day-experience-layout .day-meal-card small { margin:0 14px; min-height:0; font-size:12px; line-height:1.65; overflow:visible; }
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card { display:grid; grid-template-columns:132px minmax(0,1fr); grid-template-rows:auto auto auto; padding:12px; gap:3px 14px; align-content:center; }
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card img { grid-column:1; grid-row:1 / 4; width:132px; height:120px; border-radius:8px; }
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card span,.cover-clean .day-experience-layout .day-destination-grid .day-meal-card strong,.cover-clean .day-experience-layout .day-destination-grid .day-meal-card small { grid-column:2; margin:0; }
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card:only-child { grid-column:1 / -1; grid-template-columns:210px minmax(0,1fr); }
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card:only-child img { width:210px; height:132px; }
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card:last-child:nth-child(odd):not(:only-child) { grid-column:1 / -1; width:calc(50% - 6px); justify-self:center; }
.cover-clean .day-experience-layout .day-dining { margin-top:22px; padding-top:18px; border-top:1px solid #dedfcf; }
.cover-clean .day-experience-layout .day-dining .day-service-heading { margin-bottom:6px; }
.cover-clean .day-experience-layout .day-dining>p { font-size:12px; line-height:1.6; color:#617064; margin:0 0 12px; }
.cover-clean .day-experience-layout .day-dining .day-meal-card:only-child { grid-column:1 / -1; display:grid; grid-template-columns:140px minmax(0,1fr); grid-template-rows:auto auto auto; gap:3px 14px; padding:12px; }
.cover-clean .day-experience-layout .day-dining .day-meal-card:only-child img { grid-row:1 / 4; width:140px; height:110px; border-radius:8px; }
.cover-clean .day-experience-layout .day-dining .day-meal-card:only-child span,.cover-clean .day-experience-layout .day-dining .day-meal-card:only-child strong,.cover-clean .day-experience-layout .day-dining .day-meal-card:only-child small { grid-column:2; margin:0; }
.cover-clean .day-experience-layout .day-dining .day-meal-grid:has(> :nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.cover-clean .day-experience-layout .day-meal-card:hover { border-color:#b49872; box-shadow:0 4px 14px #344b3810; }
@media(max-width:680px) {
 .cover-clean .day-experience-layout { padding:14px; }
 .cover-clean .day-experience-layout .day-service-heading { display:block; }
 .cover-clean .day-experience-layout .day-service-heading b { display:block; margin-top:4px; }
 .cover-clean .day-experience-layout .day-meal-grid,.cover-clean .day-experience-layout .day-dining .day-meal-grid:has(> :nth-child(2):last-child) { grid-template-columns:1fr; }
 .cover-clean .day-experience-layout .day-destination-grid .day-meal-card,.cover-clean .day-experience-layout .day-destination-grid .day-meal-card:only-child,.cover-clean .day-experience-layout .day-dining .day-meal-card { display:grid; grid-template-columns:90px minmax(0,1fr); grid-template-rows:auto auto auto; padding:10px; gap:3px 12px; }
 .cover-clean .day-experience-layout .day-meal-grid .day-meal-card img { grid-column:1; grid-row:1 / 4; width:90px; height:110px; border-radius:7px; }
 .cover-clean .day-experience-layout .day-meal-grid .day-meal-card span,.cover-clean .day-experience-layout .day-meal-grid .day-meal-card strong,.cover-clean .day-experience-layout .day-meal-grid .day-meal-card small { grid-column:2; margin:0; }
 .cover-clean .day-experience-layout .day-destination-grid .day-meal-card:last-child:nth-child(odd):not(:only-child) { width:100%; }
}
.cover-clean .detail-modal { padding:24px; }
.cover-clean .modal-panel { width:min(980px,100%); max-height:90vh; padding:30px 36px; margin:auto; }
.cover-clean .modal-panel:has(.service-detail) { width:min(820px,100%); }
.cover-clean #modalContent { width:100%; max-width:880px; margin-inline:auto; }
.cover-clean .modal-panel h2 { max-width:760px; margin:12px auto 8px; padding-inline:20px; text-align:center; font-size:28px; }
.cover-clean #modalContent>.modal-kicker,.cover-clean #modalContent>.modal-lead { text-align:center; max-width:none; padding-inline:24px; }
.cover-clean .modal-context { justify-content:center; margin:18px 0; gap:12px; }
.cover-clean .day-detail-grid { gap:12px; }
.cover-clean .day-detail-grid article { padding:16px 18px; border-radius:12px; background:#f3f2e8; border-color:#dce0cf; }
.cover-clean .day-detail-grid h3 { margin:4px 0 6px; font-size:18px; }
.cover-clean .day-detail-grid p,.cover-clean .detail-callouts p,.cover-clean .personalised-strip p { font-size:14px; line-height:1.7; }
.cover-clean .detail-callouts { gap:10px; }
.cover-clean .detail-callouts article { padding:14px; }
.cover-clean .day-service-section { padding:16px; margin-top:14px; }
.cover-clean .day-meal-grid .day-meal-card { height:auto; min-height:210px; }
.cover-clean .day-meal-grid .day-meal-card strong { min-height:0; font-size:16px; }
.cover-clean .day-meal-grid .day-meal-card small { font-size:12px; min-height:0; line-height:1.6; }
.cover-clean .personalised-strip { padding:16px 18px; }
.cover-clean .modal-close { position:sticky; float:right; top:0; margin:-12px -16px 0 0; z-index:3; background:#fffdf8; }

/* Four distinct panels retain the existing form and its controls. */
.cover-clean #plannerForm { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; padding:24px; border-radius:24px; background:#edeade; border:1px solid #d8d5c5; box-shadow:0 20px 50px #304b3320; }
.cover-clean #plannerForm .planner-step { position:relative; display:block; grid-column:span 12; padding:26px; margin:0; border:1px solid #e1e0d1; border-radius:16px; background:#fffdf5; overflow:hidden; }
.cover-clean #plannerForm .step-number { position:absolute; top:16px; right:20px; color:#c2b7a0; font:italic 44px/1 Georgia,serif; pointer-events:none; }
.cover-clean #plannerForm .step-body>label { position:relative; display:block; padding-right:50px; margin-bottom:20px; font-size:18px; }
.cover-clean #plannerForm .planner-step:nth-child(1) { grid-column:span 3; background:linear-gradient(145deg,#4b7865,#618b76); border-color:#587e68; color:#fff8e7; }
.cover-clean #plannerForm .planner-step:nth-child(1)::after { content:""; position:absolute; width:210px; height:210px; border:1px solid #e8c98640; border-radius:50%; bottom:-105px; right:-95px; pointer-events:none; box-shadow:0 0 0 25px #e8c9860a,0 0 0 50px #e8c98608; }
.cover-clean #plannerForm .planner-step:nth-child(1) .step-number { color:#e2cd9e; }
.cover-clean #plannerForm .planner-step:nth-child(1) .step-body>label { padding-right:0; margin-top:47px; color:#fff5df; font-size:16px; }
.cover-clean #plannerForm #daysSelect { position:relative; z-index:1; width:100%; color:#ffe0a5; background:#ffffff0c; border:0; border-bottom:1px solid #b3c0a1; border-radius:0; padding:8px 0; font:500 34px/1.4 Georgia,serif; }
.cover-clean #plannerForm #daysSelect option { color:#254b3b; background:#fffdf5; font-size:18px; }
.cover-clean #plannerForm .planner-step:nth-child(2) { grid-column:span 9; }
.cover-clean #plannerForm .market-grid { gap:10px; }
.cover-clean #plannerForm .market { position:relative; min-height:152px; padding:20px 14px 14px; border-radius:12px; border:1px solid #e1e0d0; background:#f5f3e9; transition:transform .2s,box-shadow .2s; }
.cover-clean #plannerForm .market::before { content:""; display:block; width:28px; height:5px; margin-bottom:18px; border-radius:3px; background:#b59b62; }
.cover-clean #plannerForm .market b { font-size:17px; }
.cover-clean #plannerForm .market span { font-size:12px; line-height:1.65; margin-top:8px; }
.cover-clean #plannerForm .market.active { border-color:#bf8a60; background:#f0d8bf; box-shadow:inset 3px 0 #b56f46; color:#75462e; }
.cover-clean #plannerForm .market.active b { color:#75462e; }
.cover-clean #plannerForm .market.active span { color:#75462e; }
.cover-clean #plannerForm .market.active::before { background:#b56f46; }
.cover-clean #plannerForm .market:hover { transform:translateY(-3px); box-shadow:0 8px 18px #294b3815; }
.cover-clean #plannerForm .tag-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.cover-clean #plannerForm .tag-list label { display:flex; align-items:center; gap:10px; min-height:56px; padding:14px 16px; border-radius:10px; background:#f5f3e9; border-color:#e1e0d0; font-size:15px; transition:background .2s; }
.cover-clean #plannerForm .tag-list label:has(input:checked) { background:#f0d8bf; border-color:#bf8a60; color:#75462e; box-shadow:inset 3px 0 #b56f46; }
.cover-clean #plannerForm .tag-list input { accent-color:#a35d3f; flex-shrink:0; }
.cover-clean #plannerForm .planner-step:nth-child(4) { background:#f0f2e7; }
.cover-clean #plannerForm .constraint-grid { gap:16px; }
.cover-clean #plannerForm .constraint-grid select { background:#fffdf7; border:1px solid #d6dac8; border-radius:10px; padding:13px 12px; }
.cover-clean #plannerForm>.button { grid-column:span 12; width:min(460px,100%); justify-self:center; padding:17px 28px; margin:4px 0; background:#cd724d; border-radius:12px; box-shadow:0 8px 20px #a85e4025; }
.cover-clean #plannerForm select:focus-visible,.cover-clean #plannerForm .market:focus-visible,.cover-clean #plannerForm label:has(input:focus-visible) { outline:3px solid #bd8e55; outline-offset:3px; }
@media(max-width:1000px) { .cover-clean #plannerForm .planner-step:nth-child(1) { grid-column:span 4; } .cover-clean #plannerForm .planner-step:nth-child(2) { grid-column:span 8; } .cover-clean #plannerForm .market-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cover-clean #plannerForm .market { min-height:130px; } }
@media(max-width:680px) {
 .cover-clean #plannerForm { padding:12px; gap:12px; }
 .cover-clean #plannerForm .planner-step,.cover-clean #plannerForm .planner-step:nth-child(1),.cover-clean #plannerForm .planner-step:nth-child(2) { grid-column:span 12; padding:20px; }
 .cover-clean #plannerForm .planner-step:nth-child(1) .step-body>label { margin-top:0; padding-right:40px; }
 .cover-clean #plannerForm #daysSelect { font-size:30px; }
 .cover-clean #plannerForm .tag-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cover-clean #plannerForm .tag-list label { padding:12px 10px; font-size:13px; }
 .cover-clean #plannerForm .constraint-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .cover-clean .detail-modal { padding:12px; }
 .cover-clean .modal-panel { padding:24px 20px; }
 .cover-clean .modal-panel h2 { font-size:24px; padding-inline:10px; }
 .cover-clean .modal-close { margin:-10px -6px 0 0; }
 .cover-clean .day-detail-grid,.cover-clean .detail-callouts { grid-template-columns:1fr; }
}

/* Travel journal tickets; shared across all three travel stages. */
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px;padding:8px 0;counter-reset:service}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card{--ticket:#edf1e6;--ink:#344f43;--edge:#cdd7c4;--accent:#617b54;position:relative;grid-column:span 2;display:block;min-height:235px;padding:0;border:1px solid var(--edge);border-radius:8px 28px 8px 28px;background:linear-gradient(135deg,#ffffff35,transparent 70%),var(--ticket);color:var(--ink);overflow:hidden;box-shadow:0 8px 18px #244d3910;transition:transform .25s,box-shadow .25s;counter-increment:service}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card::before{content:counter(service,decimal-leading-zero);position:absolute;right:23px;top:24px;font:400 40px/1 Georgia,serif;color:var(--accent);opacity:.28}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card::after{content:"↗";position:absolute;right:22px;bottom:20px;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--edge);background:#ffffff60;color:var(--accent);border-radius:50%;font-size:18px}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card-body{box-sizing:border-box;position:relative;display:flex;height:100%;padding:25px 27px 62px;gap:12px;align-items:flex-start}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card-body::after{content:"";position:absolute;bottom:35px;left:27px;right:70px;border-top:1px dashed var(--edge)}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-category{display:grid;place-items:center;width:45px;height:45px;border:1px solid var(--edge);border-radius:50%;background:#ffffff65;color:var(--accent);font:600 24px/1 "SimSun",serif}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card-title{font-size:20px;font-weight:650;line-height:1.4;letter-spacing:.02em;color:inherit}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card small{max-width:100%;color:var(--ink);opacity:1;font-size:14px;line-height:1.85}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:hover{transform:translateY(-6px);box-shadow:0 16px 28px #244d3920}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:focus-visible{outline:3px solid #bb8055;outline-offset:4px}
/* One coordinated palette per service, shared across all three stages. */
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:nth-child(1){--ticket:#dce8d5;--ink:#334d3d;--edge:#bacfb0;--accent:#58744b}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:nth-child(2){--ticket:#f2e5d3;--ink:#604c39;--edge:#ddc9ad;--accent:#94704c}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:nth-child(3){--ticket:#e5ece8;--ink:#3e554e;--edge:#c3d4cc;--accent:#668376}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:nth-child(4){--ticket:#e2ebef;--ink:#3f535e;--edge:#c0d2dc;--accent:#618297}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:nth-child(5){--ticket:#e8e3d7;--ink:#584f3f;--edge:#d1c6b1;--accent:#867351}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:nth-child(6){--ticket:#eae5ee;--ink:#554a60;--edge:#d1c5da;--accent:#837090}
@media(max-width:800px){.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after){grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card, .cover-clean #serviceHub.service-hub-before .service-card{grid-column:span 1;min-height:230px}}
@media(max-width:520px){.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after){grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card{transition:none}}

/* Five equal tickets: three above, two centered below. */
@media(min-width:801px){
.cover-clean #serviceHub.service-hub-before{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:1fr}
.cover-clean #serviceHub.service-hub-before .service-card{grid-column:span 2;min-height:235px}
.cover-clean #serviceHub.service-hub-before .service-card:nth-child(4){grid-column:2 / span 2}
.cover-clean #serviceHub.service-hub-before .service-card:nth-child(5){grid-column:4 / span 2}
}

/* Single-character service portals across all travel stages. */
.cover-clean #serviceHub .service-card::before{content:none!important}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card{min-height:150px;border-radius:8px 22px 8px 22px;box-shadow:0 4px 12px #244d390b}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card-body{height:150px;padding:0;display:grid;place-items:center}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card-body::after{content:none}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-category{width:auto;height:auto;border:0;background:none;border-radius:0;font:500 82px/1.1 "STKaiti","KaiTi","SimSun",serif;color:var(--accent);opacity:.94;transform:translateY(-2px);transition:transform .25s ease}
.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card::after{right:16px;bottom:14px;width:26px;height:26px;font-size:16px;border-color:var(--edge);background:#ffffff20;opacity:.65;transition:transform .2s ease,opacity .2s ease}
@media(hover:hover){.cover-clean #serviceHub .service-card:hover .service-category{transform:translateY(-3px) scale(1.025)}}
@media(max-width:520px){.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after){grid-template-columns:repeat(2,minmax(0,1fr))}.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card{min-height:132px}.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card-body{height:132px}.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-category{font-size:68px}}
.cover-clean .feature-footer{justify-content:flex-end}
@media(prefers-reduced-motion:reduce){.cover-clean #serviceHub .service-category{transition:none}.cover-clean #serviceHub .service-card:hover .service-category{transform:none}}

@media(hover:hover){.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:hover{transform:translateY(-3px);box-shadow:0 8px 18px #244d3912}.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:hover::after{transform:translate(2px,-2px);opacity:1}}
@media(prefers-reduced-motion:reduce){.cover-clean #serviceHub .service-card::after{transition:none}.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:hover,.cover-clean #serviceHub:is(.service-hub-before,.service-hub-during,.service-hub-after) .service-card:hover::after{transform:none}}

/* Shared daily heading follows the main page's numbered editorial titles. */
.cover-clean .day-detail-header { margin:0 0 20px; padding:0 44px 18px 0; border-bottom:1px solid var(--line); }
.cover-clean .day-detail-header h2 { display:flex; align-items:baseline; gap:14px; max-width:none; padding:0; margin:0; text-align:left; font-size:clamp(24px,3vw,32px); line-height:1.45; color:var(--green); }
.cover-clean .day-detail-number { flex:none; color:#967337; font-family:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif; font-size:clamp(27px,3.4vw,38px); font-weight:800; line-height:1.2; letter-spacing:.02em; white-space:nowrap; }
.cover-clean .day-detail-slash { flex:none; color:#b9baa7; font-size:24px; font-weight:400; }
.cover-clean .day-detail-place { min-width:0; overflow-wrap:anywhere; }
@media(max-width:680px) {
 .cover-clean .day-detail-header { margin-bottom:16px; padding:0 32px 14px 0; }
 .cover-clean .day-detail-header h2 { gap:9px; font-size:24px; }
 .cover-clean .day-detail-number { font-size:27px; }
 .cover-clean .day-detail-slash { font-size:19px; }
}

/* Daily schedule: editorial time cards shared by every itinerary. */
.cover-clean .day-detail-grid { gap:16px; align-items:stretch; }
.cover-clean .day-detail-grid article { position:relative; isolation:isolate; overflow:hidden; padding:24px; border:1px solid #dedfd2; border-radius:6px 24px 6px 24px; background:linear-gradient(145deg,#fffdf7,#f0f1e7); box-shadow:0 5px 18px #244d3906; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.cover-clean .day-detail-grid article::before { content:""; position:absolute; top:0; left:24px; width:42px; height:3px; background:#aa8a4c; border-radius:0 0 3px 3px; }
.cover-clean .day-detail-grid .detail-time { display:block; position:relative; color:#91713d; font:600 19px/1.4 Georgia,"Times New Roman",serif; letter-spacing:.025em; font-variant-numeric:tabular-nums; }
.cover-clean .day-detail-grid h3 { margin:10px 0 14px; color:#204c3e; font:700 23px/1.4 "Songti SC","STSong","Noto Serif CJK SC",serif; letter-spacing:.04em; }
.cover-clean .day-detail-grid p { margin:0; padding-top:14px; border-top:1px solid #244d3914; color:#55665d; font-size:14px; line-height:1.85; overflow-wrap:anywhere; }
@media(hover:hover) {
 .cover-clean .day-detail-grid article:hover { transform:translateY(-3px); border-color:#aa8a4c80; box-shadow:0 12px 24px #244d3910; }
}
@media(max-width:680px) {
 .cover-clean .day-detail-grid { gap:12px; }
 .cover-clean .day-detail-grid article { padding:20px; }
 .cover-clean .day-detail-grid article::before { left:20px; }
 .cover-clean .day-detail-grid .detail-time { font-size:18px; }
 .cover-clean .day-detail-grid h3 { font-size:21px; margin:8px 0 12px; }
 .cover-clean .day-detail-grid p { padding-top:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .cover-clean .day-detail-grid article { transition:none; }
 .cover-clean .day-detail-grid article:hover { transform:none; }
}

/* One shared palette and a single readable period/time heading. */
.cover-clean .day-detail-grid h3.day-period-title { display:block; margin:0 0 16px; color:#204c3e; font-family:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif; font-size:clamp(22px,2.2vw,26px); font-weight:700; line-height:1.5; letter-spacing:0; }
.cover-clean .day-detail-grid .day-period-title .detail-time { display:inline; color:inherit; font:inherit; letter-spacing:0; white-space:nowrap; font-variant-numeric:tabular-nums; }
@media(max-width:680px) {
 .cover-clean .day-detail-grid h3.day-period-title { font-size:22px; margin-bottom:14px; }
}

/* Keep itinerary destination descriptions within two lines. */
.cover-clean .day-detail-grid p,
.cover-clean .day-experience-layout .day-destination-grid .day-meal-card small { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; min-height:0; }

@media(prefers-reduced-motion:reduce){.cover-clean .feature-plan .day-card,.cover-clean .feature-plan .day-photo img{transition:none}.cover-clean .feature-plan .day-card:hover,.cover-clean .feature-plan .day-card:hover img{transform:none}}

/* Keep supporting sections aligned with the itinerary, using the same type family. */
body.cover-clean #alternatives{width:100%;max-width:100%;left:auto;transform:none;margin-top:24px}
body.cover-clean details#alternatives>summary{padding:18px 22px;border-radius:16px;background:#f4f6ef;box-shadow:none;gap:16px}
body.cover-clean details#alternatives>summary h3{font-family:inherit;font-size:20px;font-weight:650;line-height:1.5;letter-spacing:0}
body.cover-clean #alternatives .alternatives-action{padding:8px 14px;font-size:14px;border-radius:10px;box-shadow:none;background:#fffdf8}
body.cover-clean :is(.alternatives-heading h3,.guide-card h3,.feature-intro h3,.visual-big){font-family:inherit;letter-spacing:0}
body.cover-clean #alternatives .alternative-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body.cover-clean #alternatives .alternative-card .visual-big{font-size:20px;line-height:1.5}
body.cover-clean #alternatives .alternative-card .alternative-body{padding:16px;gap:12px}
body.cover-clean #alternatives .alternative-card :is(.alt-days,.alt-days b,.route-switch){font-size:14px;line-height:1.6}
body.cover-clean #alternatives .alternative-card .route-tags span{font-size:12px;padding:4px 8px}
body.cover-clean :is(.phase-tab,.discover-tab){box-shadow:none;border-radius:10px;font-size:15px;padding:10px 18px}
body.cover-clean :is(.service-card,.companion-guide){box-shadow:0 5px 18px #203c3408}
@media(max-width:800px){body.cover-clean #alternatives .alternative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){body.cover-clean #alternatives .alternative-grid{grid-template-columns:1fr}body.cover-clean details#alternatives>summary{padding:16px}body.cover-clean details#alternatives>summary h3{font-size:18px}}
