.toi-sg-listing { background: #e8e2d5; color: #4e3228; padding: 50px 0 100px; }
.toi-sg-listing .toi-sg-intro-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 100px; align-items: center; margin-bottom: 100px; }
.toi-sg-listing .toi-sg-intro h2 { margin: 0 0 35px; color: #4e3228; font: 700 36px/1.35 "Maitree", serif; }
.toi-sg-listing .toi-sg-intro-copy { font-size: 18px; line-height: 1.7; }
.toi-sg-listing .toi-sg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.toi-sg-listing .toi-sg-card { display: flex; flex-direction: column; min-width: 0; height: 100%; background: #fcf9f2; box-shadow: 0 8px 20px rgba(55,40,25,.08); }
.toi-sg-listing .toi-sg-card-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.toi-sg-listing .toi-sg-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.toi-sg-listing .toi-sg-card-content { display: flex; flex: 1; flex-direction: column; padding: 22px 24px 26px; text-align: left; }
.toi-sg-listing .toi-sg-card-date { color: #797d41; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.toi-sg-listing .toi-sg-card h2 { margin: 10px 0 14px; color: #403425; font: 700 22px/1.3 "Maitree", serif; }
.toi-sg-listing .toi-sg-card h2 a { color: inherit; }
.toi-sg-listing .toi-sg-card-content > p:not(.toi-sg-card-date) { color: #695741; line-height: 1.7; }
.toi-sg-listing .toi-sg-read-more { display: inline-block; margin-top: auto; padding-top: 12px; color: #4e3228; font-weight: 700; text-transform: uppercase; }
.toi-sg-listing .toi-sg-read-more:hover { color: #797d41; }
/* Override legacy itinerary button margins only for this pair of actions. */
.single-small-group .iti-content-bar .toi-sg-download { margin: 28px 0 16px; padding: 0; }
.single-small-group .iti-content-bar .toi-sg-download + .text-center { margin: 0; padding: 0; }
.single-small-group .iti-content-bar .toi-sg-download .link1,
.single-small-group .iti-content-bar .toi-sg-download + .text-center .link1 { margin-top: 0 !important; margin-bottom: 0 !important; vertical-align: top; }
.single-small-group .toi-sg-enquiry { scroll-margin-top: 120px; }
.single-small-group .toi-sg-enquiry .container { max-width: 900px; }
@media (max-width: 991px) {
    .toi-sg-listing .toi-sg-intro-grid { gap: 40px; }
    .toi-sg-listing .toi-sg-grid { gap: 20px; }
    .toi-sg-listing .toi-sg-card-content { padding: 22px; }
}
@media (max-width: 767px) {
    .toi-sg-listing { padding: 40px 0 60px; }
    .toi-sg-listing .toi-sg-intro-grid { grid-template-columns: 1fr; margin-bottom: 40px; }
    .toi-sg-listing .toi-sg-grid { grid-template-columns: 1fr; gap: 30px; }
    .toi-sg-listing .toi-sg-intro h2 { font-size: 28px; }
    .toi-sg-listing .toi-sg-intro-copy { font-size: 16px; }
}

/* Keep intro rhythm independent of legacy theme paragraph/list rules. */
.toi-sg-listing .toi-sg-intro-copy p { margin: 0 0 16px; padding: 0; }
.toi-sg-listing .toi-sg-intro-copy p:last-child { margin-bottom: 0; }
.toi-sg-listing .toi-sg-intro-copy ul,
.toi-sg-listing .toi-sg-intro-copy ol { margin: 0 0 16px; padding-left: 1.3em; list-style-position: outside; }
.toi-sg-listing .toi-sg-intro-copy li { margin: 0 0 6px; padding-left: 0; }
.toi-sg-listing .toi-sg-card-content > p:not(.toi-sg-card-date) { margin: 0 0 14px; }
.toi-sg-listing .toi-sg-card-content .toi-sg-card-date { margin: 0 0 8px; line-height: 1.4; }

/* Keep the embedded enquiry close to the end of the itinerary. */
.single-small-group:has(.toi-sg-enquiry) .itineraries-page { padding-bottom: 0; }
.single-small-group .toi-sg-enquiry.huvi-section { margin-top: 0; padding-top: 32px; }
.single-small-group .toi-sg-enquiry > .container > .huvi-title { margin-top: 0; margin-bottom: 24px; }
@media (max-width: 767px) {
    .single-small-group .toi-sg-enquiry.huvi-section { padding-top: 24px; }
}

.single-small-group .toi-sg-download .toi-sg-pdf-preview { display: block; width: fit-content; max-width: 100%; margin: 0 auto 18px; }
.single-small-group .toi-sg-pdf-preview img { display: block; width: auto; max-width: 100%; height: auto; max-height: 260px; box-shadow: 0 3px 12px rgba(55,40,25,.16); }
