/* Shared storefront proportions: home, transport, tours and tickets. */
.public-catalog .catalog-page .search-form { width:100%; margin:0 0 24px; padding:16px; background:white; border:1px solid #e3e5e7; border-radius:12px; }
.public-catalog { background:var(--page-background); font-size:14px; line-height:1.5; }
.public-catalog .section { width:min(1120px,calc(100% - 40px)); padding:32px 0 48px; }
.public-catalog .hero { min-height:260px; }
.public-catalog .page-hero { min-height:164px; }
.public-catalog .hero__content,.public-catalog .page-hero>div { width:min(1120px,calc(100% - 40px)); padding:46px 0; }
.public-catalog .hero h1 { font-size:clamp(30px,3.5vw,42px); line-height:1.15; letter-spacing:-.025em; }
.public-catalog .page-hero h1,.public-catalog .section h1 { font-size:clamp(26px,3vw,34px); line-height:1.2; margin:0; letter-spacing:-.02em; }
.public-catalog .hero p,.public-catalog .page-hero p { font-size:15px; max-width:540px; margin:12px 0 0; }
.public-catalog .hero .eyebrow,.public-catalog .page-hero .eyebrow { font-size:11px; margin:0 0 8px; }
.public-catalog .section__title { max-width:none; margin:0 0 24px; text-align:left; }
.public-catalog .section__title h2 { font-size:24px; line-height:1.25; }
.public-catalog .section__title p { margin:8px 0 0; font-size:14px; }
.public-catalog .eyebrow { font-size:11px; letter-spacing:.06em; }
.public-catalog .search-band { background:#f6e88f; border-bottom:1px solid #e9dda0; }
.public-catalog .search-form { width:min(1120px,calc(100% - 40px)); grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; padding:18px 0; }
.public-catalog .search-form:has([aria-label=Passageiros]) { grid-template-columns:minmax(0,1fr) 150px auto; }
.public-catalog .search-form label { color:#465260; font-size:12px; gap:6px; }
.public-catalog .search-form input { min-height:44px; padding:10px 12px; font-size:14px; }
.public-catalog .button { min-height:44px; padding:10px 16px; font-size:13px; font-weight:700; line-height:1.25; }
.public-catalog .trip-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
.public-catalog .trip-card { grid-template-rows:auto 1fr; border:1px solid #e3e5e7; border-radius:12px; box-shadow:0 3px 12px #17202a06; }
.public-catalog .trip-card__image { display:block; aspect-ratio:16/9; overflow:hidden; background:#eceff1; }
.public-catalog .trip-card__image img { width:100%; height:100%; object-fit:cover; }
.public-catalog .trip-card__body { display:flex; flex-direction:column; gap:12px; padding:16px; }
.public-catalog .trip-card h2,.public-catalog .trip-card h3 { font-size:17px; line-height:1.35; font-weight:700; margin:6px 0 8px; letter-spacing:-.01em; }
.public-catalog .trip-card p { margin:0; font-size:13px; line-height:1.55; color:#667085; }
.public-catalog .trip-card .eyebrow { color:#52677a; font-size:10px; }
.public-catalog .trip-card__description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.public-catalog .trip-card__footer { margin-top:auto; padding-top:14px; border-top:1px solid #edf0f2; display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.public-catalog .trip-card__footer>span,.public-catalog .catalog-price strong { color:#17794b; font-size:20px; font-weight:700; line-height:1.3; }
.public-catalog .catalog-price { display:grid; gap:2px; }
.public-catalog .catalog-price small { font-size:11px; color:#667085; font-weight:400; }
.public-catalog .trip-card__footer .button { flex:0 0 auto; }
.public-catalog .trip-card .seat-count { font-size:11px; font-weight:400; }
.public-catalog .catalog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.public-catalog .catalog-heading p:last-child { color:#667085; margin:10px 0 0; }
.public-catalog .ticket-page .search-form { width:100%; margin:0 0 24px; padding:16px; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; background:white; border:1px solid #e3e5e7; border-radius:12px; }
.public-catalog .footer { font-size:13px; padding-block:24px; }
@media(min-width:601px) and (max-width:1000px) { .public-catalog .trip-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
    .public-catalog .section,.public-catalog .hero__content,.public-catalog .page-hero>div,.public-catalog .search-form { width:calc(100% - 32px); }
    .public-catalog .section { padding:24px 0 36px; }
    .public-catalog .hero { min-height:224px; }
    .public-catalog .page-hero { min-height:140px; }
    .public-catalog .hero__content,.public-catalog .page-hero>div { padding:32px 0; }
    .public-catalog .trip-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
    .public-catalog .trip-card__image { aspect-ratio:16/9; max-height:230px; }
    .public-catalog .search-form,.public-catalog .search-form:has([aria-label=Passageiros]),.public-catalog .ticket-page .search-form { grid-template-columns:minmax(0,1fr); }
    .public-catalog .search-form input { font-size:16px; }
    .public-catalog .catalog-heading { align-items:flex-start; flex-direction:column; }
    .public-catalog .section__title h2 { font-size:22px; }
}

/* Home only: keep its search controls and card actions contained at every breakpoint. */
.home-page .catalog-page,
.home-page .catalog-heading > div,
.home-page .catalog-page .search-form > * { min-width:0; }
.home-page .catalog-heading p:last-child { max-width:680px; }
.home-page .catalog-page .search-form { grid-template-columns:minmax(0,1fr) minmax(132px,150px) max-content; }

@media(min-width:601px) and (max-width:850px) {
    .home-page .catalog-page .search-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-page .catalog-page .search-form .button { grid-column:1/-1; justify-self:end; min-width:150px; }
}

@media(max-width:600px) {
    .home-page .catalog-page .search-form { grid-template-columns:minmax(0,1fr); }
    .home-page .catalog-page .search-form .button { width:100%; }
}

@media(max-width:420px) {
    .home-page .trip-card__footer { align-items:stretch; }
    .home-page .trip-card__footer .catalog-price,
    .home-page .trip-card__footer .button { width:100%; }
}

/* Transport and tour listing: keep its controls and dense card content usable independently of other catalog pages. */
.public-catalog .catalog-page--announcements,
.public-catalog .catalog-page--announcements .catalog-heading > div,
.public-catalog .catalog-page--announcements .search-form > *,
.public-catalog .catalog-page--announcements .trip-card,
.public-catalog .catalog-page--announcements .trip-card__body > div,
.public-catalog .catalog-page--announcements .trip-card h2 {
    min-width: 0;
}

.public-catalog .catalog-page--announcements .catalog-heading p:last-child {
    max-width: 680px;
}

.public-catalog .catalog-page--announcements .search-form .button {
    min-width: 112px;
}

.public-catalog .catalog-page--announcements .catalog-search-summary {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 8px;
    margin: -8px 0 20px;
    color: #52677a;
    font-size: 13px;
}

.public-catalog .catalog-page--announcements .catalog-search-summary strong,
.public-catalog .catalog-page--announcements .trip-card h2,
.public-catalog .catalog-page--announcements .trip-card h2 a,
.public-catalog .catalog-page--announcements .trip-card__description {
    overflow-wrap: anywhere;
}

.public-catalog .catalog-page--announcements .catalog-search-summary > span {
    min-width: 0;
}

.public-catalog .catalog-page--announcements .catalog-search-summary a {
    color: #17794b;
    font-weight: 700;
    text-underline-offset: 3px;
}

.public-catalog .catalog-page--announcements .catalog-search-summary a:focus-visible {
    outline: 3px solid var(--blue);
    outline-offset: 3px;
}

@media(max-width:600px) {
    .public-catalog .catalog-page--announcements .search-form .button {
        width: 100%;
    }
}

@media(max-width:420px) {
    .public-catalog .catalog-page--announcements .trip-card__body {
        padding: 15px;
    }

    .public-catalog .catalog-page--announcements .trip-card__footer {
        align-items: stretch;
    }

    .public-catalog .catalog-page--announcements .trip-card__footer .catalog-price,
    .public-catalog .catalog-page--announcements .trip-card__footer .button {
        width: 100%;
    }

    .public-catalog .catalog-page--announcements .trip-card__footer .button {
        justify-content: center;
    }
}
