/* CT-BY module card visuals (v3, Phase 1).
   1. Card image fill background (JS injects URL into .cjsm-fill-applied)
   2. Selected card state when user clicks
   3. Hide legacy AI drawer artifacts that the old Smart Match panel relied on
   4. Stable 4-card homepage layout (no carousel rotation)
*/

/* Homepage flat 4-card layout: kill Splide track/transform, force flex row of 4 */
.splide.cj-flat .splide__track { overflow: visible !important; height: auto !important; }
.splide.cj-flat .splide__list {
  display: flex !important;
  transform: none !important;
  gap: 20px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  flex-wrap: nowrap !important;
}
.splide.cj-flat .splide__slide.cj-flat-visible {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  transform: none !important;
  position: static !important;
  width: auto !important;
  margin: 0 !important;
}
.splide.cj-flat .splide__slide.cj-flat-hidden { display: none !important; }
.splide.cj-flat .splide__slide--clone { display: none !important; }
.splide.cj-flat .splide__arrows { display: none !important; }
.splide.cj-flat .splide__pagination { display: none !important; }
.splide.cj-flat .splide__slide { cursor: pointer; }
/* Mobile: stable horizontal scroll (user swipes manually, NO autoplay) */
@media (max-width: 980px) {
  .splide.cj-flat .splide__track { overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .splide.cj-flat .splide__track::-webkit-scrollbar { display: none; }
  .splide.cj-flat .splide__list {
    flex-wrap: nowrap !important;
    gap: 14px !important;
    padding: 0 20px 4px !important;
    scroll-snap-type: x mandatory;
  }
  .splide.cj-flat .splide__slide.cj-flat-visible {
    flex: 0 0 78% !important;
    max-width: 320px !important;
    scroll-snap-align: start;
  }
}

/* "See all <axis>" link under each flattened section */
.cj-see-all-wrap { text-align: right; padding: 14px 32px 32px; max-width: 1420px; margin: 0 auto; }
.cj-see-all {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #26477E;
  text-decoration: none;
  border-bottom: 1px solid #26477E;
  padding-bottom: 2px;
  transition: opacity .2s;
}
.cj-see-all:hover { opacity: 0.7; }


/* Hide the old AI drawer + launcher + planner preview (spec v2.2: no drawer, no popup) */
.cj-list-trigger, .cj-planner-preview, .cj-journey-list, .cj-list-drawer, .cj-list-backdrop, .cj-ai-search { display:none !important; }

/* Module-card image fill (injected by JS to bypass empty Shopline templates) */
.sgc-image-with-text-carousel__image.cjsm-fill-applied{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  position:relative;
}
.sgc-image-with-text-carousel__image.cjsm-fill-applied::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(170deg, rgba(38,71,126,.05) 0%, rgba(38,71,126,.22) 100%);
  pointer-events:none;
  mix-blend-mode:multiply;
}
.sgc-image-with-text-carousel__card{transition:transform .25s ease, box-shadow .25s ease}
.sgc-image-with-text-carousel__card:hover{transform:translateY(-2px);box-shadow:0 14px 26px -18px rgba(28,38,33,.25)}

/* Selected card state — appears after user clicks a module card */
.cjsm-card-selected{
  outline:2px solid #26477E;
  outline-offset:-2px;
  box-shadow:0 6px 18px -10px rgba(38,71,126,.45);
  position:relative;
}
.cjsm-card-selected::after{
  content:'✓';
  position:absolute; top:8px; right:10px;
  width:22px; height:22px; line-height:22px; text-align:center;
  background:#B08D57; color:#fff; font-size:12px;
  border-radius:50%;
  font-family:-apple-system,sans-serif;
  z-index:2;
}

/* === Three Ways panel — global styles (also covers JS-injected sections) === */
.cj3w { padding: 80px 0; background: linear-gradient(180deg, rgba(38,71,126,0.045) 0%, rgba(232,227,216,0.22) 100%); border-top: 1px solid #D6DDE1; border-bottom: 1px solid #D6DDE1; position: relative; scroll-margin-top: 80px; animation: cj3w-rise 0.36s ease-out both; }
.cj3w.cj3w--hidden { display: none !important; }
@keyframes cj3w-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.cj3w-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.cj3w-head { text-align: center; margin-bottom: 40px; }
.cj3w-eyebrow { display: inline-block; font-size: 10.5px; letter-spacing: 0.28em; text-transform: uppercase; color: #26477E; font-weight: 600; margin-bottom: 10px; font-family: 'Montserrat', -apple-system, sans-serif; }
.cj3w-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(26px, 3.4vw, 34px); font-weight: 500; margin: 0; color: #1F1F1D; line-height: 1.18; letter-spacing: -0.005em; display: inline-block; position: relative; }
.cj3w-title::after { content: ''; display: block; width: 36px; height: 2px; background: #B08D57; margin: 14px auto 0; }
.cj3w-sub { font-size: clamp(13px, 1.3vw, 15px); color: #6F6F68; margin: 6px auto 0; font-family: 'Montserrat', sans-serif; max-width: 580px; line-height: 1.55; }
.cj3w-list { display: flex; flex-direction: column; gap: 22px; }
.cj3w-way { display: grid; grid-template-columns: 240px 1fr; gap: 0; background: #fff; border: 1px solid #ECE6D9; border-radius: 16px; overflow: hidden; transition: transform 0.28s, box-shadow 0.28s, border-color 0.28s; }
.cj3w-way:hover { transform: translateY(-2px); box-shadow: 0 18px 32px -22px rgba(28,38,33,0.28); border-color: #D4CEBE; }
.cj3w-img { aspect-ratio: 1/1; background: linear-gradient(135deg, #EDE5D6 0%, #DDD5C2 100%); overflow: hidden; position: relative; }
.cj3w-img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.cj3w-body { padding: 24px 28px 24px 26px; display: flex; flex-direction: column; gap: 10px; font-family: 'Montserrat', sans-serif; }
.cj3w-num { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 26px; color: #26477E; font-weight: 500; line-height: 1; }
.cj3w-wtitle { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 22px; font-weight: 500; margin: 2px 0 4px; color: #1F1F1D; line-height: 1.25; letter-spacing: -0.008em; }
/* spec table (Best for / Pace / Stay style / Places) — 2-column dl */
.cj3w-spec { display: grid; grid-template-columns: minmax(96px, auto) 1fr; column-gap: 14px; row-gap: 7px; margin: 6px 0 0; padding: 0; }
.cj3w-spec .cj3w-row { display: contents; }
.cj3w-spec dt { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #26477E; font-weight: 600; align-self: baseline; padding-top: 1px; margin: 0; }
.cj3w-spec dd { font-size: 13.5px; color: #3a4942; line-height: 1.5; margin: 0; }
/* "Why this matches your X choice" — highlighted block */
.cj3w-why { margin-top: 12px; padding: 12px 14px; background: rgba(38,71,126,0.04); border-left: 3px solid #26477E; border-radius: 0 6px 6px 0; }
.cj3w-why__head { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #26477E; font-weight: 600; margin-bottom: 4px; }
.cj3w-why p { font-size: 13.5px; color: #1F1F1D; line-height: 1.55; margin: 0; }
/* Recent example (was: "A real X trip" — now neutral framing) */
.cj3w-case { margin-top: 10px; padding: 10px 12px; border-left: 3px solid #C29A3B; background: rgba(194, 154, 59, 0.06); border-radius: 0 6px 6px 0; }
.cj3w-clabel { display: block; font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #6e4f0f; font-weight: 600; margin-bottom: 3px; }
.cj3w-ctitle { display: block; font-size: 13.5px; color: #1F1F1D; }
/* Designed by — single-line role label */
.cj3w-by { display: flex; align-items: baseline; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed #D6DDE1; font-size: 13px; }
.cj3w-by__lab { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #26477E; font-weight: 600; }
.cj3w-by__val { color: #1F1F1D; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 14px; }
.cj3w-foot { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #F0EBDD; }
.cj3w-person { display: flex; align-items: center; gap: 10px; }
.cj3w-avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: linear-gradient(135deg, #EDE5D6 0%, #DDD5C2 100%); flex-shrink: 0; }
.cj3w-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cj3w-pname { display: flex; flex-direction: column; font-size: 13px; }
.cj3w-pname small { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #6F6F68; margin-bottom: 1px; }
.cj3w-pname span { color: #1F1F1D; font-weight: 600; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 15px; line-height: 1.2; }
.cj3w-btns { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.cj3w-btn { display: inline-flex; align-items: center; gap: 6px; background: #B08D57; color: #fff !important; font-size: 13px; font-weight: 600; padding: 10px 16px; border-radius: 28px; text-decoration: none; letter-spacing: 0.01em; white-space: nowrap; transition: background 0.2s, transform 0.18s; }
.cj3w-btn:hover { background: #335048; transform: translateY(-1px); }
.cj3w-btn--out { background: #fff; color: #26477E !important; border: 1.5px solid #26477E; padding: 8.5px 16px; }
.cj3w-btn--out:hover { background: rgba(38,71,126,0.06); }
.cj3w-shortcut { text-align: center; margin-top: 32px; font-size: 13.5px; color: #6F6F68; font-family: 'Montserrat', sans-serif; }
.cj3w-shortcut a { color: #26477E; font-weight: 600; text-decoration: none; margin-left: 6px; border-bottom: 1px solid #26477E; padding-bottom: 1px; }
/* Light "explore another lens" nav (NOT a fake combined filter) */
.cj3w-nav { margin: 40px auto 0; padding: 24px 28px; max-width: 1020px; background: #F6F8F9; border: 1px solid #D6DDE1; border-radius: 10px; font-family: 'Montserrat', sans-serif; }
.cj3w-nav__lead { font-size: 12.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #6F6F68; font-weight: 600; margin-bottom: 14px; text-align: center; }
.cj3w-nav__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cj3w-nav__list li { margin: 0; }
.cj3w-nav__link { display: inline-flex; align-items: center; padding: 9px 16px; border-radius: 22px; background: #fff; border: 1px solid #D6DDE1; font-size: 13.5px; color: #1F1F1D; font-weight: 500; text-decoration: none; transition: background 0.15s, border-color 0.15s, color 0.15s; }
.cj3w-nav__link:hover { background: rgba(38,71,126,0.06); border-color: #26477E; color: #26477E; }
.cj3w-nav__link.is-current { background: #EDE5D6; color: #6F6F68; cursor: default; pointer-events: none; }
@media (max-width: 720px) {
  .cj3w-nav { margin: 32px 16px 0; padding: 20px 18px; }
  .cj3w-nav__lead { font-size: 11px; letter-spacing: 0.14em; margin-bottom: 12px; }
  .cj3w-nav__link { padding: 8px 14px; font-size: 13px; }
}
@media (max-width: 860px) {
  .cj3w { padding: 56px 0; }
  .cj3w-wrap { padding: 0 20px; }
  .cj3w-head { margin-bottom: 28px; }
  .cj3w-way { grid-template-columns: 1fr; }
  .cj3w-img { aspect-ratio: 16/10; }
  .cj3w-body { padding: 20px 20px 22px; }
  .cj3w-foot { grid-template-columns: 1fr; gap: 12px; }
  .cj3w-btns { justify-content: flex-start; }
  .cj3w-btn { flex: 1; justify-content: center; }
  .cj3w-wtitle { font-size: 19px; }
}

/* === Route page: "Recommended from" banner + "A good fit if..." === */
.cjr-fromban { background: rgba(38,71,126,.05); border-bottom: 1px solid #D6DDE1; padding: 14px 0; }
.cjr-fromban__wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: flex; align-items: baseline; gap: 14px; font-family: 'Montserrat', sans-serif; }
.cjr-fromban__eyebrow { font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: #26477E; font-weight: 600; }
.cjr-fromban__text { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 17px; color: #1F1F1D; font-weight: 500; }
.cjr-fit-good { max-width: 1200px; margin: 26px auto; padding: 18px 22px; background: #F6F8F9; border: 1px solid #D6DDE1; border-left: 4px solid #26477E; border-radius: 0 8px 8px 0; font-family: 'Montserrat', sans-serif; }
.cjr-fit-good h4 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 17px; font-weight: 500; margin: 0 0 8px; color: #26477E; }
.cjr-fit-good ul { margin: 0; padding-left: 18px; }
.cjr-fit-good li { font-size: 14px; line-height: 1.55; color: #3a4942; margin-bottom: 4px; }
@media (max-width: 720px) {
  .cjr-fromban__wrap { flex-direction: column; gap: 4px; padding: 0 18px; }
  .cjr-fromban__text { font-size: 15px; }
  .cjr-fit-good { margin: 18px 14px; padding: 14px 18px; }
}

/* === /pages/journeys top banner (You started with: ... + Step 2 caption) === */
.cj-jb-banner { background: #EEF1F2; border-bottom: 1px solid #D6DDE1; padding: 20px 0; }
.cj-jb-banner__wrap { max-width: var(--cj-content-width, 1500px); margin: 0 auto; padding: 0 32px; display: flex; flex-direction: column; gap: 6px; font-family: 'Montserrat', sans-serif; }
.cj-jb-banner__primary { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 22px; color: #26477E; font-weight: 500; letter-spacing: -0.005em; line-height: 1.25; }
.cj-jb-banner__step { font-size: 12.5px; letter-spacing: 0.18em; text-transform: uppercase; color: #26477E; font-weight: 600; }
@media (max-width: 720px) {
  .cj-jb-banner__wrap { padding: 0 20px; }
  .cj-jb-banner__primary { font-size: 18px; }
  .cj-jb-banner__step { font-size: 11px; letter-spacing: 0.16em; }
}

/* === Three Ways: Foreign-visitor access warning === */
.cj3w-warn { background: rgba(220,90,60,0.08); border-left: 4px solid #C53D2A; padding: 14px 18px; margin: 0 0 28px; border-radius: 0 6px 6px 0; color: #4a1f15; font-size: 13.5px; line-height: 1.55; font-family: 'Montserrat', sans-serif; max-width: 1020px; margin-left: auto; margin-right: auto; }
.cj3w-warn b { color: #C53D2A; font-weight: 600; }

/* === Trust strip === */
.cjts { padding: 48px 0; background: rgba(38,71,126,0.045); border-top: 1px solid #D6DDE1; border-bottom: 1px solid #D6DDE1; position: relative; }
.cjts::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:60px; height:1px; background:#B08D57; opacity:.5; }
.cjts-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.cjts-head { text-align: center; margin-bottom: 24px; }
.cjts-eyebrow { display:inline-block; font-size:10.5px; letter-spacing:0.28em; text-transform:uppercase; color:#26477E; font-weight:600; margin-bottom:6px; font-family:'Montserrat',sans-serif; }
.cjts-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(22px, 2.6vw, 28px); font-weight: 500; margin: 0; color: #1F1F1D; letter-spacing: -0.005em; }
.cjts-row { display:flex; flex-wrap:wrap; justify-content:center; gap:0; font-family:'Montserrat',sans-serif; }
.cjts-item { display:flex; flex-direction:column; text-align:center; min-width:160px; padding:0 28px; position:relative; }
.cjts-item:not(:last-child)::after { content:''; position:absolute; right:0; top:12%; width:1px; height:76%; background:rgba(38,71,126,0.18); }
.cjts-label { font-size:10.5px; letter-spacing:0.18em; text-transform:uppercase; color:#6F6F68; margin-bottom:6px; font-weight:500; }
.cjts-val { font-size:18px; font-weight:500; color:#26477E; font-family:'Cormorant Garamond',Georgia,serif; letter-spacing:-0.01em; line-height:1.2; }
@media (max-width:860px) {
  .cjts { padding: 32px 0; }
  .cjts-row { gap: 8px; }
  .cjts-item { min-width: 140px; padding: 6px 16px; }
  .cjts-item:not(:last-child)::after { display: none; }
  .cjts-val { font-size: 16px; }
}

/* === Case grid === */
.cjcg { padding: 80px 0; background: #EEF1F2; position: relative; }
.cjcg-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.cjcg-eyebrow { display:inline-block; font-size:10.5px; letter-spacing:0.28em; text-transform:uppercase; color:#26477E; font-weight:600; margin-bottom:10px; font-family:'Montserrat',sans-serif; }
.cjcg-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(26px,3.5vw,36px); font-weight:500; margin:0; color:#1F1F1D; line-height:1.18; display:inline-block; position:relative; }
.cjcg-title::after { content:''; display:block; width:32px; height:2px; background:#B08D57; margin-top:14px; border-radius:1px; }
.cjcg-sub { font-size:clamp(13px,1.3vw,15px); color:#6F6F68; margin:6px 0 44px; font-family:'Montserrat',sans-serif; max-width:640px; line-height:1.5; }
.cjcg-grid { display:grid; gap:28px; }
.cjcg-grid--3 { grid-template-columns:repeat(3,1fr); }
.cjcg-grid--4 { grid-template-columns:repeat(4,1fr); }
.cjcg-card { display:flex; flex-direction:column; background:transparent; border:none; border-radius:0; overflow:visible; text-decoration:none; color:inherit; transition:transform .28s; }
.cjcg-card:hover { transform:none; box-shadow:none; }
.cjcg-img { aspect-ratio:4/5; background:#E7ECEE; overflow:hidden; border-radius:3px; }
.cjcg-img img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.92); }
.cjcg-body { padding:16px 18px 20px; flex:1; }
.cjcg-name { font-family:'Cormorant Garamond',Georgia,serif; font-size:17px; font-weight:500; margin:0 0 8px; color:#1F1F1D; line-height:1.35; }
.cjcg-glance { font-size:12.5px; color:#6F6F68; margin:0 0 6px; font-family:'Montserrat',sans-serif; }
.cjcg-by { font-size:12.5px; color:#26477E; margin:0; font-style:italic; font-family:'Montserrat',sans-serif; }
.cjcg-more { text-align:center; margin-top:36px; }
.cjcg-more__link { color:#26477E; font-size:13.5px; font-weight:600; text-decoration:none; border:1.5px solid #26477E; padding:12px 28px; border-radius:28px; display:inline-block; font-family:'Montserrat',sans-serif; transition:background .2s,color .2s; }
.cjcg-more__link:hover { background:#B08D57; color:#fff; }
@media (max-width:860px) {
  .cjcg { padding: 56px 0; }
  .cjcg-wrap { padding: 0 20px; }
  .cjcg-grid--3, .cjcg-grid--4 { grid-template-columns: 1fr; gap: 18px; }
  .cjcg-sub { margin-bottom: 32px; }
}

/* === Specialist grid === */
.cjsg { padding: 80px 0; background: #F6F8F9; position: relative; }
.cjsg-wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.cjsg-eyebrow { display:inline-block; font-size:10.5px; letter-spacing:0.28em; text-transform:uppercase; color:#26477E; font-weight:600; margin-bottom:10px; font-family:'Montserrat',sans-serif; }
.cjsg-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(26px,3.5vw,36px); font-weight:500; margin:0; color:#1F1F1D; line-height:1.18; display:inline-block; position:relative; }
.cjsg-title::after { content:''; display:block; width:32px; height:2px; background:#B08D57; margin-top:14px; border-radius:1px; }
.cjsg-sub { font-size:clamp(13px,1.3vw,15px); color:#6F6F68; margin:6px 0 44px; font-family:'Montserrat',sans-serif; max-width:640px; line-height:1.5; }
.cjsg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.cjsg-card { background:transparent; border:none; border-radius:0; overflow:visible; display:flex; flex-direction:column; transition:transform .28s; }
.cjsg-card:hover { transform:none; box-shadow:none; }
/* When the whole card is a link (a.cjsg-card--link), strip default anchor styling */
a.cjsg-card--link { text-decoration: none; color: inherit; cursor: pointer; }
a.cjsg-card--link:hover { text-decoration: none; }
.cjsg-photo { aspect-ratio:1/1; background:linear-gradient(135deg,#EDE5D6 0%,#DDD5C2 100%); overflow:hidden; }
.cjsg-photo img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.92); }
.cjsg-body { padding:22px 24px 24px; flex:1; display:flex; flex-direction:column; gap:12px; font-family:'Montserrat',sans-serif; }
.cjsg-name { font-family:'Cormorant Garamond',Georgia,serif; font-size:22px; font-weight:500; margin:0; color:#1F1F1D; line-height:1.2; }
.cjsg-row { font-size:13.5px; line-height:1.55; color:#3a4942; margin:0; }
.cjsg-row b { color:#26477E; font-weight:600; font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; display:block; margin-bottom:2px; }
.cjsg-btn { display:inline-flex; align-items:center; justify-content:center; background:#B08D57; color:#fff !important; font-size:13px; font-weight:600; padding:11px 20px; border-radius:28px; text-decoration:none; text-align:center; font-family:'Montserrat',sans-serif; margin-top:6px; transition:background .2s; }
.cjsg-btn:hover { background:#335048; }
@media (max-width:860px) {
  .cjsg { padding: 56px 0; }
  .cjsg-wrap { padding: 0 20px; }
  .cjsg-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* === Tickets soft entry === */
.cjtix { padding: 60px 0; background: linear-gradient(180deg, #F6F8F9, #EEF1F2); text-align: center; border-top: 1px solid #D6DDE1; }
.cjtix-wrap { max-width: 900px; margin: 0 auto; padding: 0 32px; }
.cjtix-eyebrow { font-size:10.5px; letter-spacing:0.28em; text-transform:uppercase; color:#26477E; font-weight:600; margin-bottom:10px; font-family:'Montserrat',sans-serif; display:inline-block; }
.cjtix h3 { font-family:'Cormorant Garamond',Georgia,serif; font-size:24px; font-weight:500; margin:0 0 10px; color:#1F1F1D; }
.cjtix p { font-size:14.5px; color:#6F6F68; margin:0 0 20px; font-family:'Montserrat',sans-serif; }
.cjtix a.btn { display:inline-block; background:#B08D57; color:#fff; padding:11px 24px; border-radius:28px; text-decoration:none; font-weight:600; font-size:13px; font-family:'Montserrat',sans-serif; }
.cjtix a.btn:hover { background:#335048; }

/* === Carousel tooltip arrows — CT-BY brand override === */
/* Sgc default is a bare SVG icon with no chrome. Apply teal outline + hover fill. */
.sgc-image-with-text-carousel__tooltip-arrows {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.sgc-image-with-text-carousel__tooltip-arrows::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: rgba(38, 71, 126, 0.32);
  order: 1; /* sits between prev (order 0 default) and next */
  align-self: center;
}
.sgc-image-with-text-carousel__tooltip-arrow {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50%;
  border: 1px solid #26477E !important;
  background: transparent !important;
  color: #26477E !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease, transform 0.18s ease;
  padding: 0 !important;
}
.sgc-image-with-text-carousel__tooltip-arrow[data-dir="prev"] { order: 0; }
.sgc-image-with-text-carousel__tooltip-arrow[data-dir="next"] { order: 2; }
.sgc-image-with-text-carousel__tooltip-arrow:hover {
  background: #B08D57 !important;
  color: #ffffff !important;
  border-color: #26477E !important;
  transform: translateY(-1px);
}
.sgc-image-with-text-carousel__tooltip-arrow:disabled,
.sgc-image-with-text-carousel__tooltip-arrow[aria-disabled="true"] {
  opacity: 0.32;
  cursor: not-allowed;
  transform: none;
}
.sgc-image-with-text-carousel__tooltip-arrow svg {
  width: 20px !important;
  height: 20px !important;
}
@media (max-width: 760px) {
  .sgc-image-with-text-carousel__tooltip-arrows::before { width: 16px; }
  .sgc-image-with-text-carousel__tooltip-arrow { width: 38px !important; height: 38px !important; }
  .sgc-image-with-text-carousel__tooltip-arrow svg { width: 16px !important; height: 16px !important; }
}

/* === Specialist detail panel (csd) — used inline AND as standalone /products/specialist-<slug> page === */
/* ===== 策划师页(.csd)· 山水青花瓷 ===== */
.csd {
  --cobalt:#26477E; --cobalt-deep:#1C3763; --cobalt-soft:#5C7BA8;
  --porcelain:#EEF1F2; --porcelain-2:#E3E9EC; --pk-ink:#1B2A3F;
  --pk-soft:#7E8A9A; --pk-soft2:#5A6675; --pk-line:#D6DDE1;
  background: var(--porcelain); color: var(--pk-ink);
  font-family: 'Inter', -apple-system, sans-serif; font-weight: 300;
  padding: 56px 0 64px;
}
.csd--full { min-height: 70vh; }
.csd-wrap { max-width: 1100px; margin: 0 auto; padding: 0 48px; }
.csd .disp, .csd-title, .csd-live__top h3, .csd-col h3, .csd-block h3,
.csd-way__title, .csd-cta__h, .csd-sent__d, .csd-sent__ph span, .csd-next__i b {
  font-family: 'Cormorant Garamond', Georgia, serif;
}

.csd-back { margin-bottom: 28px; }
.csd-back__link { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--cobalt); text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 3px; transition: border-color .25s; }
.csd-back__link:hover { border-color: var(--cobalt); }

/* —— 开场 —— */
.csd-hero { display: grid; grid-template-columns: 360px 1fr; gap: 56px; align-items: center; padding-bottom: 64px; border-bottom: 1px solid var(--pk-line); margin-bottom: 64px; }
.csd-hero__photo { aspect-ratio: 3/4; overflow: hidden; box-shadow: 0 34px 64px -40px rgba(27,42,63,.5); background: var(--porcelain-2); }
.csd-hero__photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.95); }
.csd-hero__photo-ph { width: 100%; height: 100%; background: var(--porcelain-2); }
.csd-eyebrow { display: block; font-size: 11px; letter-spacing: .4em; text-transform: uppercase; color: var(--cobalt-soft); margin-bottom: 16px; font-weight: 400; }
.csd-title { font-weight: 300; font-size: clamp(44px,5.4vw,68px); line-height: 1; color: var(--cobalt); margin: 0 0 10px; }
.csd-tagline { font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--cobalt-soft); margin: 0 0 20px; }
.csd-bio { font-size: 16px; line-height: 1.7; color: var(--pk-ink); max-width: 520px; margin: 0 0 20px; }
.csd-liveline { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--cobalt); margin-bottom: 26px; }
.csd-liveline em { font-style: italic; color: var(--pk-soft2); }
.csd-hero__row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.csd-btn { display: inline-block; background: var(--cobalt); color: #fff !important; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; padding: 15px 26px; text-decoration: none; transition: background .25s; }
.csd-btn:hover { background: var(--cobalt-deep); }
.csd-hero__note { font-size: 12px; color: var(--pk-soft); }

.csd-dot { display: inline-block; flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; }
.csd-dot--live { background: var(--cobalt); animation: csdPulse 2.4s ease-in-out infinite; }
.csd-dot--up { background: var(--porcelain); border: 1px solid var(--cobalt-soft); }
@keyframes csdPulse { 0%,100%{opacity:1} 50%{opacity:.35} }

/* —— 路上长卷 —— */
.csd-block { margin-bottom: 64px; }
.csd-block h3 { font-weight: 400; font-size: clamp(26px,3.4vw,38px); color: var(--cobalt); margin: 0 0 8px; }
.csd-block--live { padding-bottom: 64px; border-bottom: 1px solid var(--pk-line); }
.csd-live__top { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin-bottom: 6px; flex-wrap: wrap; }
.csd-live__perm { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 14px; color: var(--pk-soft); }
.csd-live__triphead { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--pk-soft2); margin: 14px 0 26px; flex-wrap: wrap; }
.csd-live__triphead b { color: var(--cobalt); font-weight: 500; }
.csd-live__sep { color: var(--pk-soft); }
.csd-scroll { display: flex; overflow-x: auto; scrollbar-width: none; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.csd-scroll::-webkit-scrollbar { display: none; }
.csd-sent { flex: 0 0 215px; position: relative; padding: 44px 13px 0; }
.csd-sent:before { content: ""; position: absolute; top: 19px; left: 0; right: 0; height: 1px; background: var(--cobalt-soft); opacity: .45; }
.csd-sent:first-child:before { left: 50%; }
.csd-sent:last-child:before { right: 50%; }
.csd-sent--future:before { background: none; border-top: 1px dashed var(--cobalt-soft); opacity: .5; }
.csd-sent__dot { position: absolute; top: 15px; left: 50%; transform: translateX(-50%); width: 9px; height: 9px; border-radius: 50%; background: var(--cobalt-soft); }
.csd-sent--today .csd-sent__dot { width: 13px; height: 13px; top: 13px; background: var(--cobalt); box-shadow: 0 0 0 5px rgba(38,71,126,.15); animation: csdPulse 2.4s ease-in-out infinite; }
.csd-sent--future .csd-sent__dot { background: var(--porcelain); border: 1px solid var(--cobalt-soft); }
.csd-sent__d { font-style: italic; font-size: 14px; color: var(--cobalt-soft); text-align: center; margin-bottom: 11px; }
.csd-sent__today { font-family: 'Inter', sans-serif; font-style: normal; font-weight: 500; font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: #fff; background: var(--cobalt); padding: 3px 8px; margin-right: 7px; vertical-align: 1px; }
.csd-sent__img { aspect-ratio: 1/1; overflow: hidden; background: var(--porcelain-2); margin-bottom: 10px; }
.csd-sent__img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.95); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.csd-sent:hover .csd-sent__img img { transform: scale(1.05); }
/* Route-cover fallback used on days with no daily photo yet — muted so it reads as a stand-in
   (real route photo, not stock/AI), distinct from actual journal photos. */
.csd-sent__img--ph img { filter: grayscale(.4) saturate(.6) brightness(1.03); opacity: .72; }
.csd-sent--today .csd-sent__img { outline: 1px solid var(--cobalt-soft); outline-offset: 3px; }
.csd-sent__ph { aspect-ratio: 1/1; border: 1px dashed var(--cobalt-soft); display: flex; align-items: center; justify-content: center; text-align: center; padding: 18px; margin-bottom: 10px; background: rgba(255,255,255,.35); }
.csd-sent__ph span { font-style: italic; font-size: 15px; color: var(--cobalt-soft); line-height: 1.5; }
.csd-sent__cap { font-size: 12.5px; color: var(--pk-soft2); line-height: 1.55; text-align: center; }
.csd-live__uplist { margin-top: 26px; }
.csd-live__up { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--pk-soft2); padding: 10px 0; border-top: 1px solid var(--pk-line); }
.csd-live__up b { color: var(--cobalt); font-weight: 500; }

/* —— 适合 / 不适合 —— */
.csd-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; padding-bottom: 64px; border-bottom: 1px solid var(--pk-line); margin-bottom: 64px; }
.csd-col h3 { font-weight: 400; font-size: 24px; color: var(--cobalt); margin: 0 0 18px; }
.csd-col ul { list-style: none; margin: 0; padding: 0; }
.csd-col li { font-size: 14px; color: var(--pk-ink); padding: 10px 0 10px 28px; border-bottom: 1px solid var(--pk-line); position: relative; }
.csd-col li::before { position: absolute; left: 0; font-size: 13px; }
.csd-col--good li::before { content: "—"; color: var(--cobalt); }
.csd-col--bad li { color: var(--pk-soft2); }
.csd-col--bad li::before { content: "×"; color: var(--pk-soft); }
.csd-col__note { margin-top: 16px; font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 15px; color: var(--pk-soft2); }

/* —— 近期行程日志 —— */
.csd-block--log { padding-bottom: 64px; border-bottom: 1px solid var(--pk-line); }
.csd-log { margin-top: 24px; }
.csd-log__row { display: flex; gap: 18px; align-items: baseline; padding: 13px 4px; border-bottom: 1px solid var(--pk-line); font-size: 13.5px; flex-wrap: wrap; }
.csd-log__c--0 { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; color: var(--cobalt-soft); font-size: 15px; flex: 0 0 150px; }
.csd-log__c--1 { color: var(--pk-soft2); flex: 0 0 110px; }
.csd-log__c--2 { color: var(--pk-soft2); flex: 0 0 90px; }
.csd-log__c--3 { color: var(--pk-ink); flex: 1; }

/* —— 她设计的路线 —— */
.csd-block--ways { padding-bottom: 64px; border-bottom: 1px solid var(--pk-line); }
.csd-ways-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 28px; }
.csd-way { background: transparent; }
.csd-way__img { aspect-ratio: 4/3; overflow: hidden; background: var(--porcelain-2); margin-bottom: 14px; }
.csd-way__img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.95); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.csd-way:hover .csd-way__img img { transform: scale(1.05); }
.csd-way__img--ph { background: var(--porcelain-2); }
.csd-way__title { font-weight: 400; font-size: 21px; color: var(--cobalt); margin: 0 0 5px; }
.csd-way__blurb { font-size: 13px; color: var(--pk-soft2); line-height: 1.55; margin: 0; }

/* —— 发消息后会发生什么 —— */
.csd-next__row { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; margin-top: 28px; }
.csd-next__i b { display: block; font-weight: 500; font-size: 19px; color: var(--cobalt); margin-bottom: 7px; }
.csd-next__i span { font-size: 13px; color: var(--pk-soft2); line-height: 1.6; }
.csd-next__bk { margin-top: 30px; font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 15.5px; color: var(--pk-soft2); border-left: 2px solid var(--cobalt-soft); padding-left: 16px; }

/* —— 收尾 —— */
.csd-cta-block { background: linear-gradient(180deg, var(--cobalt-deep), #15294a); color: #fff; text-align: center; padding: 60px 40px; margin: 0 -48px -64px; }
.csd-cta__h { font-weight: 300; font-size: clamp(28px,3.8vw,42px); margin: 0 0 12px; color: #fff; }
.csd-cta__h em { font-style: italic; color: #A8BCD8; }
.csd-cta__lead { font-size: 14px; color: rgba(255,255,255,.78); margin: 0 0 26px; }
.csd-cta__btn { display: inline-block; background: #fff !important; color: var(--cobalt-deep) !important; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; padding: 15px 28px; text-decoration: none; }
.csd-cta__btn:hover { background: var(--porcelain) !important; }

.csd-sticky-cta { display: none; position: fixed; left: 16px; right: 16px; bottom: 14px; z-index: 60; background: var(--cobalt, #26477E); color: #fff; text-decoration: none; padding: 15px 20px; align-items: center; justify-content: center; gap: 10px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 10px 30px -10px rgba(27,42,63,.5); }
.csd-sticky-cta__arrow { transition: transform .25s; }
.csd-sticky-cta:hover .csd-sticky-cta__arrow { transform: translateX(3px); }

@media (max-width: 860px) {
  .csd-wrap { padding: 0 22px; }
  .csd-hero { grid-template-columns: 1fr; gap: 28px; padding-bottom: 44px; margin-bottom: 44px; }
  .csd-hero__photo { max-width: 320px; }
  .csd-cols { grid-template-columns: 1fr; gap: 36px; padding-bottom: 44px; margin-bottom: 44px; }
  .csd-ways-grid { grid-template-columns: 1fr; }
  .csd-next__row { grid-template-columns: 1fr; gap: 22px; }
  .csd-sent { flex: 0 0 180px; }
  .csd-cta-block { margin: 0 -22px -64px; }
  .csd-sticky-cta { display: flex; }
  .csd--full { padding-bottom: 110px; }
  .csd-log__c--0, .csd-log__c--1, .csd-log__c--2 { flex: 0 0 auto; }
}

/* —— 客人原话(编辑器加了才显示) —— */
.csd-block--quotes { padding-bottom: 64px; border-bottom: 1px solid var(--pk-line); }
.csd-quote { margin: 26px 0 0; padding: 0; }
.csd-quote p { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 300; font-size: clamp(19px,2.4vw,26px); line-height: 1.45; color: var(--cobalt); margin: 0 0 8px; }
.csd-quote cite { font-style: normal; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--pk-soft); }

.csd-way{display:block;text-decoration:none;color:inherit}
.csd-way__go{display:inline-block;margin-top:9px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cobalt);border-bottom:1px solid var(--cobalt);padding-bottom:3px}
.csd-live__routelink{margin-left:14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cobalt);text-decoration:none;border-bottom:1px solid var(--cobalt);padding-bottom:2px}
