/* Ekonichiwa v1.9.55 — Featured City Tour carousel, intentionally mobile-first. */
.eko-home #packages .eko-packages-heading { margin-bottom: 23px !important; text-align:center; }
.eko-home #packages .eko-packages-heading h2 {
  margin:0; font-size:1.75rem !important; line-height:1.25 !important;
  font-weight:700 !important; color:var(--primary-color);
}
.eko-home #packages .eko-featured-bar {
  display:flex; align-items:end; justify-content:space-between; gap:12px; margin:0 0 14px;
}
.eko-home #packages .eko-featured-bar h3 {
  margin:0 0 3px; font-size:17px; line-height:1.3; font-weight:700;
  color:#20252b; letter-spacing:-.015em;
}
.eko-home #packages .eko-featured-bar p {
  margin:0; color:#777b80; font-size:12px; font-weight:400; line-height:1.4;
}
.eko-home #packages .eko-featured-arrows { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.eko-home #packages .eko-featured-arrows button {
  display:flex; align-items:center; justify-content:center; width:34px; height:34px;
  padding:0; border:1px solid #e7e5e2; border-radius:50%; color:#20252b;
  background:#fff; cursor:pointer; transition:border-color .2s,color .2s;
}
.eko-home #packages .eko-featured-arrows button svg { width:17px; height:17px; }
.eko-home #packages .eko-featured-arrows button:disabled { opacity:.32; cursor:default; }
.eko-home #packages .eko-featured-arrows button:not(:disabled):hover { border-color:#b42332; color:#b42332; }
.eko-home #packages #pkg-list-container {
  display:grid; grid-auto-flow:column; grid-auto-columns:82.5%;
  gap:14px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory;
  scroll-padding-inline:1px; -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain; scrollbar-width:none; margin:0;
  padding:0 1px 13px; scrollbar-color:transparent transparent;
}
.eko-home #packages #pkg-list-container::-webkit-scrollbar { display:none; }
.eko-home #packages .eko-featured-item {
  min-width:0; display:flex; scroll-snap-align:start;
}
.eko-home #packages .eko-featured-card {
  display:flex; flex-direction:column; width:100%; min-width:0;
  overflow:hidden; border:1px solid #f0eeeb; border-radius:4px;
  background:#fff; box-shadow:0 7px 20px rgba(25,30,38,.07);
  transition:box-shadow .22s ease,transform .22s ease;
}
.eko-home #packages .eko-featured-photo {
  display:block; position:relative; isolation:isolate; width:100%; aspect-ratio:3/2;
  margin:0; padding:0; border:0; border-radius:0; background:#f5f3f0;
  overflow:hidden; cursor:pointer; -webkit-appearance:none; appearance:none;
}
.eko-home #packages .eko-featured-photo img {
  display:block; width:100%; height:100%; object-fit:cover;
  object-position:var(--eko-photo-focus,50% 50%);
  transform-origin:var(--eko-photo-focus,50% 50%);
  transition:transform 550ms cubic-bezier(.22,.61,.36,1);
}
.eko-home #packages .eko-featured-photo::after {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to top,rgba(12,15,18,.28),transparent 37%);
}
.eko-home #packages .eko-featured-detail {
  display:inline-flex; align-items:center; gap:5px; position:absolute; z-index:2;
  right:11px; bottom:11px; padding:7px 9px; border-radius:4px;
  background:rgba(255,255,255,.96); color:#20252b;
  font-size:11px; font-weight:600; line-height:1; box-shadow:0 4px 12px rgba(0,0,0,.12);
  pointer-events:none;
}
.eko-home #packages .eko-featured-detail svg { width:12px; height:12px; }
.eko-home #packages .eko-featured-content {
  display:flex; flex-direction:column; gap:11px; flex:1; min-height:0;
  padding:13px 14px 15px;
}
.eko-home #packages .eko-featured-title {
  margin:0; min-height:1.3em; font-size:17px !important; line-height:1.3 !important;
  font-weight:700 !important; letter-spacing:-.015em; color:#20252b;
}
.eko-home #packages .eko-featured-prices { display:flex; flex-direction:column; }
.eko-home #packages .eko-featured-price {
  display:flex; align-items:baseline; justify-content:space-between; gap:7px;
  padding:7px 0; border-top:1px solid #efedea; min-width:0;
  font-size:12px; line-height:1.35; color:#4b5159;
}
.eko-home #packages .eko-featured-price strong {
  text-align:right; white-space:nowrap; font-size:13px; font-weight:700;
  line-height:1.3; color:#20252b; font-variant-numeric:tabular-nums;
}
.eko-home #packages .eko-featured-book {
  display:flex; align-items:center; justify-content:center; text-decoration:none !important;
  min-height:40px; width:100%; padding:10px 10px; margin-top:auto;
  border-radius:4px; background:var(--primary-color,#b42332); color:#fff !important;
  font-size:12px; font-weight:600; line-height:1.3;
  transition:background-color .18s ease;
}
.eko-home #packages .eko-featured-book:hover { background:#941c28; }
.eko-home #packages .eko-featured-photo:focus-visible,
.eko-home #packages .eko-featured-book:focus-visible,
.eko-home #packages #pkg-list-container:focus-visible,
.eko-home #packages #ekoShowAllTrips:focus-visible,
.eko-home #packages .eko-featured-arrows button:focus-visible {
  outline:3px solid #b42332; outline-offset:3px;
}
.eko-home #packages .eko-featured-empty {
  padding:24px; border:1px dashed #e7e3df; border-radius:4px; color:#6d7278;
  font-size:13px; grid-column:1/-1; background:#faf8f5;
}
.eko-home #packages .eko-all-trips-trigger { display:flex; justify-content:center; margin-top:15px; }
.eko-home #packages #ekoShowAllTrips {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:9px 15px; border:1px solid #dedad6; border-radius:4px;
  color:#20252b; background:#fff; font-size:12px; line-height:1.35;
  font-weight:600; cursor:pointer; transition:border-color .2s ease,color .2s ease;
}
.eko-home #packages #ekoShowAllTrips svg { width:13px; height:13px; }
.eko-home #packages #ekoShowAllTrips:hover { color:#b42332; border-color:#b42332; }
@media (hover:hover) and (pointer:fine) {
  .eko-home #packages .eko-featured-card:hover { box-shadow:0 12px 25px rgba(25,30,38,.1); }
  .eko-home #packages .eko-featured-photo:hover img { transform:scale(1.035); }
}
@media(min-width:768px) {
  .eko-home #packages #pkg-list-container { grid-auto-columns:45.5%; gap:16px; }
  .eko-home #packages .eko-featured-title { font-size:18px !important; }
}
@media(min-width:1200px) {
  .eko-home #packages #pkg-list-container { grid-auto-columns:30.2%; gap:16px; }
}
@media(max-width:991.98px) {
  .eko-home #packages.section-padding { padding:40px 20px !important; }
  .eko-home #packages > .container { width:100%; max-width:none; padding-left:0 !important; padding-right:0 !important; }
  .eko-home #packages .eko-packages-heading h2 { font-size:22px !important; font-weight:600 !important; line-height:1.35 !important; }
}
@media(max-width:575.98px) {
  .eko-home #packages .eko-featured-arrows { display:none; }
  .eko-home #packages .eko-featured-bar h3 { font-size:16px; }
  .eko-home #packages .eko-featured-bar p { font-size:11px; }
  .eko-home #packages .eko-featured-title { font-size:17px !important; }
}
/* All destinations modal shares the existing Bootstrap modal infrastructure. */
.eko-all-trips-modal .modal-dialog { max-width:560px; }
.eko-all-trips-modal .modal-content { border:0; border-radius:10px; overflow:hidden; box-shadow:0 20px 55px rgba(24,29,36,.18); }
.eko-all-trips-modal .modal-body { max-height:min(76vh,680px); overflow-y:auto; padding:0 20px 20px; }
.eko-all-trips-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:20px; }
.eko-all-trips-head h3 { margin:0 0 3px; font-size:20px; line-height:1.3; color:#20252b; font-weight:700; }
.eko-all-trips-head p { margin:0; font-size:12px; color:#777b80; line-height:1.4; }
.eko-all-trips-close { display:flex; align-items:center; justify-content:center; width:30px; height:30px; flex-shrink:0; padding:0; border:0; background:transparent; font-size:26px; line-height:1; color:#666; cursor:pointer; }
.eko-all-trip { padding:16px 0; border-top:1px solid #eeeae6; }
.eko-all-trip h4 { margin:0 0 10px; color:#20252b; font-size:15px; font-weight:700; line-height:1.35; }
.eko-all-prices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.eko-all-price { display:flex; flex-direction:column; align-items:flex-start; gap:3px; min-width:0; }
.eko-all-price span { color:#777b80; font-size:11px; line-height:1.3; }
.eko-all-price strong { color:#20252b; font-size:14px; font-weight:700; line-height:1.3; }
.eko-all-actions { display:flex; gap:9px; margin-top:12px; }
.eko-all-detail,.eko-all-book { display:inline-flex; justify-content:center; align-items:center; min-height:36px; padding:7px 14px; border-radius:4px; font-size:12px; font-weight:600; text-decoration:none !important; }
.eko-all-detail { color:#20252b; background:#fff; border:1px solid #e7e3df; cursor:pointer; }
.eko-all-book { color:#fff !important; background:var(--primary-color,#b42332); border:1px solid var(--primary-color,#b42332); }
.eko-all-book:hover { color:#fff !important; background:#941c28; }
.eko-all-trips-peak { display:flex; align-items:flex-start; gap:8px; margin:16px 0 0; font-size:12px; line-height:1.65; color:#706c69; }
.eko-all-trips-peak svg { width:14px; height:14px; flex-shrink:0; margin-top:2px; color:#b42332; }
@media(max-width:575.98px) {
  .eko-all-trips-modal .modal-dialog { margin:10px; }
  .eko-all-trips-head { padding:16px; }
  .eko-all-trips-modal .modal-body { padding:0 16px 16px; max-height:calc(100dvh - 130px); }
}
@media(prefers-reduced-motion:reduce) {
  .eko-home #packages .eko-featured-card,
  .eko-home #packages .eko-featured-photo img,
  .eko-home #packages .eko-featured-book,
  .eko-home #packages .eko-featured-arrows button,
  .eko-home #packages #ekoShowAllTrips { transition:none; }
  .eko-home #packages #pkg-list-container { scroll-behavior:auto; }
  .eko-home #packages .eko-featured-photo:hover img { transform:none; }
}
/* Legacy focal presets remain when the owner has not saved a new position in OPS. */
.eko-home #packages .eko-featured-photo img[src$="city-tour-tokyo-v41.webp"] { --eko-photo-focus:50% 53%; }
.eko-home #packages .eko-featured-photo img[src$="city-tour-fuji-v41.webp"] { --eko-photo-focus:50% 38%; }
.eko-home #packages .eko-featured-photo img[src$="city-tour-hakone-v41.webp"] { --eko-photo-focus:57% 52%; }
.eko-home #packages .eko-featured-photo img[src$="city-tour-nikko-v41.webp"] { --eko-photo-focus:50% 48%; }
.eko-home #packages .eko-featured-photo img[src$="city-tour-gala-yuzawa-v47.webp"] { --eko-photo-focus:58% 40%; }
.eko-home #packages .eko-featured-photo img[src$="city-tour-kamakura-v41.webp"] { --eko-photo-focus:50% 35%; }
.eko-home #packages .eko-featured-photo img[src$="city-tour-hitachi-park-v41.webp"] { --eko-photo-focus:55% 55%; }

/* v1.9.55: One compact metadata row on every featured and regular trip. */
.eko-home #packages .eko-featured-meta {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;
  margin:0; padding:0; min-width:0;
}
.eko-home #packages .eko-featured-meta > div { min-width:0; }
.eko-home #packages .eko-featured-meta dt {
  display:flex; align-items:center; gap:5px; margin:0 0 4px;
  font-size:10px; font-weight:500; color:#767a7f; line-height:1.3;
}
.eko-home #packages .eko-featured-meta dt svg { width:12px; height:12px; flex:0 0 12px; color:#b42332; }
.eko-home #packages .eko-featured-meta dd {
  margin:0; color:#20252b; font-size:12px; font-weight:600; line-height:1.35;
}
@media (max-width: 575.98px) {
  .eko-home #packages .eko-featured-meta { gap:8px; }
  .eko-home #packages .eko-featured-content { gap:10px; }
}
