.heart-btn svg { transition: transform 0.2s ease, fill 0.2s ease, stroke 0.2s ease; }
.heart-btn:hover svg { transform: scale(1.1); }
.heart-btn:active svg { transform: scale(0.95); }
.heart-btn svg { stroke: #ef4444; fill: transparent; }
.heart-btn.hearted svg { fill: #ef4444; stroke: #ef4444; }
.itbs-card a.itbs-primary-btn { color: #fff; }
.itbs-card a.itbs-primary-btn:hover { color: #fff; }
.itbs-card .itbs-card-content { display:flex; flex-direction:column; height:100%; }
.itbs-card .itbs-card-content > .text-sm.text-gray-700 { font-size:15px; line-height:1.55; font-weight:500; }
.itbs-card .itbs-card-content .text-xs.text-gray-500,
.itbs-card .itbs-card-content .text-xs.text-gray-700 { font-size:13px; line-height:1.4; font-weight:500; }
.itbs-catalog-date-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.itbs-catalog-date-text { min-width:0; }
.itbs-catalog-seats { flex:0 0 auto; border-radius:999px; padding:2px 8px; font-size:11px; font-weight:800; line-height:1.4; white-space:nowrap; }
.itbs-catalog-seats.is-open { background:#dcfce7; color:#166534; }
.itbs-catalog-seats.is-low { background:#fef3c7; color:#92400e; }
.itbs-catalog-seats.is-full { background:#fee2e2; color:#991b1b; }
.catalog-hero { position:relative; min-height:580px; overflow:hidden; background:#f7f3eb; color:#111827; }
.catalog-hero__media,.catalog-hero__veil { position:absolute; inset:0; }
.catalog-hero__media img { width:100%; height:100%; object-fit:cover; object-position:72% center; }
.catalog-hero__veil {
    background:
        linear-gradient(90deg,#f7f3eb 0%,rgba(247,243,235,.98) 37%,rgba(247,243,235,.78) 57%,rgba(247,243,235,.08) 82%),
        linear-gradient(180deg,rgba(247,243,235,.18),rgba(247,243,235,.42));
}
.catalog-hero__inner { position:relative; z-index:1; width:min(1280px,calc(100% - 48px)); min-height:580px; margin:0 auto; padding:132px 0 70px; display:flex; align-items:center; }
.catalog-hero__copy { width:min(760px,64%); }
.catalog-hero__eyebrow { margin:0 0 17px; color:var(--itbs-primary); font-size:clamp(14px,1.35vw,18px); font-weight:950; letter-spacing:.13em; line-height:1.25; text-transform:uppercase; }
.catalog-hero__title { margin:0; max-width:750px; color:#0f172a !important; font-size:clamp(44px,5.1vw,76px); font-weight:950; letter-spacing:-.055em; line-height:.96; text-wrap:balance; }
.catalog-hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:31px; }
.catalog-hero__action { display:inline-flex; min-height:52px; align-items:center; justify-content:center; border-radius:15px; padding:0 22px; font-size:15px; font-weight:900; transition:transform .18s ease,background .18s ease,border-color .18s ease; }
.catalog-hero__action:hover,.catalog-hero__action:focus-visible { transform:translateY(-2px); }
.catalog-hero__action--primary { border:1px solid var(--itbs-primary); background:var(--itbs-primary); color:#fff !important; box-shadow:0 18px 36px -22px color-mix(in srgb,var(--itbs-primary) 95%,transparent); }
.catalog-hero__action--primary:hover,.catalog-hero__action--primary:focus-visible { background:var(--itbs-primary-dark); border-color:var(--itbs-primary-dark); }
.catalog-hero__action--secondary { border:1px solid #cbd5e1; background:rgba(255,255,255,.82); color:#0f172a !important; backdrop-filter:blur(8px); }
.catalog-hero__action--secondary:hover,.catalog-hero__action--secondary:focus-visible { border-color:#94a3b8; background:#fff; }
.catalog-hero__proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:760px; margin-top:38px; border-top:1px solid rgba(15,23,42,.13); border-bottom:1px solid rgba(15,23,42,.13); }
.catalog-hero__proof-item { min-height:64px; padding:15px 18px; border-right:1px solid rgba(15,23,42,.13); color:#334155; font-size:12px; font-weight:850; line-height:1.35; }
.catalog-hero__proof-item:first-child { padding-left:0; }
.catalog-hero__proof-item:last-child { border-right:0; }
.catalog-hero__proof-mark { margin-right:7px; color:var(--itbs-primary); font-weight:950; }
.catalog-hero--city { min-height:430px; background:#0b6b38; color:#fff; }
.catalog-hero--city .catalog-hero__media,
.catalog-hero--city .catalog-hero__veil { display:none; }
.catalog-hero--city .catalog-hero__inner { min-height:430px; padding-top:118px; padding-bottom:58px; }
.catalog-hero--city .catalog-hero__copy { width:min(900px,82%); }
.catalog-hero--city .catalog-hero__eyebrow { color:#ffd34e; }
.catalog-hero--city .catalog-hero__title { color:#fff !important; }
.catalog-hero--city .catalog-hero__action--secondary { border-color:rgba(255,255,255,.52); background:rgba(255,255,255,.08); color:#fff !important; }
.catalog-hero--city .catalog-hero__action--secondary:hover,
.catalog-hero--city .catalog-hero__action--secondary:focus-visible { border-color:#fff; background:#fff; color:#0b6b38 !important; }
.itbs-tomorrow-link { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:8px; padding:0 16px; border-radius:12px; background:#0b6b38; color:#fff; font-size:14px; font-weight:850; white-space:nowrap; transition:background .18s ease,transform .18s ease; }
.itbs-tomorrow-link:hover,.itbs-tomorrow-link:focus-visible { background:#07572e; color:#fff; transform:translateY(-1px); }
@media (max-width: 640px) {
    .catalog-hero { min-height:650px; }
    .catalog-hero__media img { object-position:68% center; opacity:.32; }
    .catalog-hero__veil { background:linear-gradient(180deg,rgba(247,243,235,.98) 5%,rgba(247,243,235,.9) 58%,rgba(247,243,235,.72)); }
    .catalog-hero__inner { width:min(100% - 32px,1280px); min-height:650px; padding:112px 0 48px; align-items:flex-start; }
    .catalog-hero__copy { width:100%; }
    .catalog-hero__eyebrow { max-width:300px; font-size:12px; }
    .catalog-hero__title { max-width:560px; font-size:clamp(40px,12vw,58px); line-height:.98; }
    .catalog-hero__actions { display:grid; grid-template-columns:1fr; margin-top:27px; }
    .catalog-hero__action { width:100%; }
    .catalog-hero__proof { grid-template-columns:1fr; margin-top:28px; }
    .catalog-hero__proof-item,.catalog-hero__proof-item:first-child { min-height:0; padding:10px 0; border-right:0; border-bottom:1px solid rgba(15,23,42,.1); }
    .catalog-hero__proof-item:last-child { border-bottom:0; }
    .catalog-hero--city { min-height:500px; }
    .catalog-hero--city .catalog-hero__inner { min-height:500px; padding-top:108px; padding-bottom:44px; }
    .catalog-hero--city .catalog-hero__copy { width:100%; }
    .itbs-tomorrow-link { width:100%; }
}
.catalog-highlight { display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-bottom:18px; }
.catalog-highlight .hero-img { flex:1 1 320px; min-width:260px; border-radius:24px; overflow:hidden; box-shadow:0 18px 40px -22px rgba(15,23,42,0.35); }
.catalog-highlight .hero-img img { width:100%; height:100%; object-fit:cover; display:block; }
.catalog-highlight .hero-copy { flex:1 1 280px; min-width:240px; }
.catalog-highlight .hero-copy h2 { margin:0 0 6px; font-size:22px; font-weight:800; color:#0f172a; }
.catalog-highlight .hero-copy p { margin:0 0 10px; color:#475569; line-height:1.5; }

.catalog-seo-text { color:#334155; }
.catalog-seo-text h2 { margin:0 0 16px; font-size:24px; font-weight:900; color:#0f172a; line-height:1.25; }
.catalog-seo-text h3 { margin:24px 0 12px; font-size:18px; font-weight:800; color:#0f172a; line-height:1.25; }
.catalog-seo-text p { margin:0 0 12px; line-height:1.7; }
.catalog-seo-text ul { margin:0 0 12px; padding-left:22px; list-style:disc; }
.catalog-seo-text li { margin:0 0 8px; line-height:1.6; }
.catalog-seo-text p:last-child { margin-bottom:0; }
.itbs-catalog-empty{margin:18px 0 0;padding:28px 20px;border:1px dashed #cbd5e1;border-radius:var(--itbs-radius-lg,18px);background:#fff;text-align:center}
.itbs-catalog-empty[hidden]{display:none}
.itbs-catalog-empty p{margin:0 0 14px;color:#334155;font-size:16px;font-weight:600}
.itbs-catalog-empty button{min-height:44px;padding:0 18px;border:1px solid var(--itbs-primary);border-radius:var(--itbs-radius,12px);background:var(--itbs-primary);color:#fff;font-weight:700;cursor:pointer}
.itbs-catalog-empty button:hover{background:var(--itbs-primary-dark,var(--itbs-primary))}

/* Cards after the first page wait in the HTML until «Show more» (every theme; Immersion forces display on its cards). */
.itbs-card.itbs-more-hidden { display: none !important; }
/* A light card on its way to its full one (2026-11-07): a quiet placeholder with the tour's name for the moment the full
   card loads; if loading failed, a plain link to the tour. */
.itbs-card-stub { display: flex; align-items: flex-end; min-height: 420px; padding: 22px; border-radius: 24px; border: 1px solid #e2e8f0;
    background: linear-gradient(110deg, #f1f5f9 30%, #f8fafc 50%, #f1f5f9 70%) 0 0 / 250% 100%; animation: itbs-stub-shine 1.4s linear infinite; }
.itbs-card-stub__link { font-weight: 700; font-size: 18px; line-height: 1.3; color: #0f172a; text-decoration: none; }
.itbs-card-stub.is-failed { animation: none; background: #fff; min-height: 0; }
.itbs-card-stub.is-failed .itbs-card-stub__link:hover { text-decoration: underline; }
@keyframes itbs-stub-shine { to { background-position: -250% 0; } }
@media (prefers-reduced-motion: reduce) { .itbs-card-stub { animation: none; } }
/* The end of the shown cards while more wait: the next page loads as it comes near (no button to miss). */
.itbs-more-mark { display: flex; justify-content: center; gap: 8px; padding: 28px 0 8px; }
.itbs-more-mark[hidden] { display: none; }
.itbs-more-mark span { width: 9px; height: 9px; border-radius: 50%; background: var(--itbs-primary, #186b5c); opacity: .35; animation: itbs-more-dot 1.2s ease-in-out infinite; }
.itbs-more-mark span:nth-child(2) { animation-delay: .15s; } .itbs-more-mark span:nth-child(3) { animation-delay: .3s; }
@keyframes itbs-more-dot { 0%, 100% { opacity: .25; transform: scale(.85); } 50% { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .itbs-more-mark span { animation: none; } }
