.tse-tarangire,
.tse-tarangire * { box-sizing: border-box; }
.tse-tarangire { width: 100%; max-width: 100%; color: #202a24; letter-spacing: 0; }
.tse-tarangire h1,
.tse-tarangire h2,
.tse-tarangire h3,
.tse-tarangire h4 { letter-spacing: 0; overflow-wrap: anywhere; }
.tse-tarangire .tse-accommodation__container { width: min(1180px, calc(100% - 48px)); }
.tse-tarangire .tse-accommodation__section { padding-block: 72px; }
.tse-tarangire .tse-accommodation__section-head { max-width: 820px; margin-bottom: 32px; }
.tse-tarangire .tse-accommodation__section-head h2,
.tse-tarangire .tse-tarangire__expert h2 { margin: 0; color: #1d2922; font-size: 36px; font-weight: 750; line-height: 1.2; letter-spacing: 0; text-wrap: balance; }
.tse-tarangire .tse-accommodation__section-head > p:last-child { font-size: 18px; line-height: 1.65; }
.tse-tarangire .tse-accommodation__eyebrow { font-size: 12px; letter-spacing: 0; color: #47751b; }

.tse-tarangire__hero { position: relative; display: flex; min-height: 560px; align-items: flex-end; overflow: hidden; background: #27372c; color: #fff; }
.tse-tarangire__hero-image,
.tse-tarangire__hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.tse-tarangire__hero-image { display: block; object-fit: cover; object-position: center; }
.tse-tarangire__hero-shade { background: linear-gradient(180deg, rgba(11, 20, 14, .04) 24%, rgba(11, 20, 14, .75) 100%); }
.tse-tarangire__hero-inner { position: relative; z-index: 1; margin-inline: auto; padding-block: 28px 64px; }
.tse-tarangire__hero h1 { max-width: 880px; margin: 0; color: #fff; font-size: 64px; font-weight: 750; line-height: 1.08; text-wrap: balance; }
.tse-tarangire__hero-intro { max-width: 720px; margin-top: 18px; color: #fff; font-size: 19px; line-height: 1.65; }
.tse-tarangire__hero-intro > :last-child { margin-bottom: 0; }
.tse-tarangire .tse-tarangire__package-jump { gap: 12px; margin-top: 24px; border-radius: 6px; background: #47751b; letter-spacing: 0; }
.tse-tarangire .tse-tarangire__package-jump:hover { background: #365620; }
.tse-tarangire__breadcrumb { margin-bottom: 20px; color: rgba(255,255,255,.9); font-size: 14px; }
.tse-tarangire__breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tse-tarangire__breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }
.tse-tarangire__breadcrumb a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.tse-tarangire .tse-tarangire__section { padding-block: 52px; }
.tse-tarangire__section-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 48px; align-items: start; }
.tse-tarangire__section-layout .tse-accommodation__section-head { margin: 0; }
.tse-tarangire__section-layout .tse-accommodation__richtext { min-width: 0; margin: 0; }
.tse-tarangire .tse-accommodation__richtext { font-size: 18px; line-height: 1.75; overflow-wrap: anywhere; }
.tse-tarangire .tse-accommodation__richtext p { margin-bottom: 1em; }
.tse-tarangire .tse-accommodation__richtext h2,
.tse-tarangire .tse-accommodation__richtext h3 { font-size: 23px; line-height: 1.3; }
.tse-tarangire .tse-accommodation__richtext h4 { font-size: 19px; line-height: 1.35; }
.tse-tarangire .tse-accommodation__richtext li { margin-block: 8px; padding-left: 4px; }
.tse-tarangire .tse-accommodation__richtext li::marker { color: #47751b; }
.tse-tarangire .tse-accommodation__richtext > :last-child { margin-bottom: 0; }
.tse-tarangire .tse-accommodation__richtext blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 3px solid #68a522; }
.tse-tarangire__section--special,
.tse-tarangire__animals { background: #f7f8f7; }
.tse-tarangire__narrow { max-width: 860px; }
.tse-tarangire__location .tse-accommodation__location-copy { max-width: 760px; }
.tse-tarangire__location .tse-accommodation__location-copy h3 { margin: 0 0 8px; font-size: 21px; }
.tse-tarangire__location .tse-accommodation__location-copy p { margin: 8px 0; line-height: 1.7; }
.tse-tarangire .tse-tarangire__location .tse-accommodation__map { min-height: 0; aspect-ratio: 16 / 10; }
.tse-tarangire .tse-tarangire__location .tse-accommodation__map-canvas { min-height: 0; }
.tse-tarangire__animal-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px 24px; margin: 0; padding: 0; list-style: none; }
.tse-tarangire__animal-grid li { display: flex; min-width: 0; align-items: center; gap: 12px; padding-block: 12px; border-bottom: 1px solid #e2e7e3; color: #24352b; font-size: 16px; font-weight: 650; line-height: 1.4; }
.tse-tarangire__animal-grid li > span:last-child { min-width: 0; overflow-wrap: anywhere; hyphens: auto; }
.tse-tarangire__animal-icon { display: grid; width: 48px; height: 40px; flex: 0 0 48px; place-items: center; color: #426d50; }
.tse-tarangire__animal-icon svg { display: block; width: 48px; height: 40px; max-width: 100%; }
.tse-tarangire .tse-tarangire__best-time-section { padding-block: 80px; }

/* The shared archive card renderer is reused without its archive-only wrapper. */
.tse-tarangire .tse-tarangire__packages { padding-block: 80px; border-top: 3px solid #68a522; background: #f3f5f6; }
.tse-tarangire__packages .tse-accommodation__section-head h2 { font-size: 42px; }
.tse-tarangire #tse-tarangire-packages-title { scroll-margin-top: 112px; }
.tse-tarangire__package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.tse-tarangire__packages .tseia-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #dce3df; border-radius: 8px; background: #fff; }
.tse-tarangire__packages .tseia-card__media { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 8px; align-items: start; color: #24352b; text-decoration: none; }
.tse-tarangire__packages .tseia-card__image,
.tse-tarangire__packages .tseia-card__placeholder { display: block; grid-column: 1 / -1; grid-row: 1; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: #edf0ed; }
.tse-tarangire__packages .tseia-card__badges { display: flex; grid-column: 1; grid-row: 2; min-width: 0; flex-wrap: wrap; gap: 6px; margin-left: 20px; }
.tse-tarangire__packages .tseia-card__badges:empty { display: none; }
.tse-tarangire__packages .tseia-card__badges > span,
.tse-tarangire__packages .tseia-card__level,
.tse-tarangire__packages .tseia-card__chips > span { padding: 5px 8px; border-radius: 4px; background: #f0f4ee; color: #365620; font-size: 13px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.tse-tarangire__packages .tseia-card__level { grid-column: 2; grid-row: 2; max-width: 130px; margin-right: 20px; }
.tse-tarangire__packages .tseia-card__body { display: flex; flex: 1; min-width: 0; flex-direction: column; padding: 18px 20px 20px; }
.tse-tarangire__packages .tseia-card__title { margin: 0; font-size: 22px; font-weight: 750; line-height: 1.3; }
.tse-tarangire__packages .tseia-card__title a { color: #1d2922; text-decoration: none; }
.tse-tarangire__packages .tseia-card__title a:hover { color: #47751b; }
.tse-tarangire__packages .tseia-card__destinations { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; color: #59675f; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.tse-tarangire__packages .tseia-card__destinations svg { flex: 0 0 17px; width: 17px; height: 17px; margin-top: 2px; fill: currentColor; }
.tse-tarangire__packages .tseia-card__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.tse-tarangire__packages .tseia-card__description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin: 14px 0 0; color: #59675f; font-size: 16px; line-height: 1.6; }
.tse-tarangire__packages .tseia-card__footer { display: flex; flex-direction: column; gap: 16px; margin-top: auto; padding-top: 24px; }
.tse-tarangire__packages .tseia-card__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 7px; margin: 0; color: #59675f; font-size: 14px; line-height: 1.5; }
.tse-tarangire__packages .tseia-card__price strong { color: #1d2922; font-size: 24px; font-weight: 750; line-height: 1.25; overflow-wrap: anywhere; }
.tse-tarangire__packages .tseia-card__price small { font-size: 13px; }
.tse-tarangire__packages .tseia-card__price--request strong { font-size: 20px; }
.tse-tarangire__packages .tseia-card__cta { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-radius: 6px; background: #47751b; color: #fff; font-size: 16px; font-weight: 750; line-height: 1.4; text-decoration: none; }
.tse-tarangire__packages .tseia-card__cta:hover { background: #365620; color: #fff; }
.tse-tarangire__packages .tseia-card a:focus-visible { outline: 3px solid #47751b; outline-offset: 3px; }
.tse-tarangire__packages .tseia-card__cta:focus-visible { outline-offset: -5px; outline-color: #fff; }

.tse-tarangire .tse-accommodation__related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tse-tarangire .tse-accommodation__related-card { min-width: 0; }
.tse-tarangire .tse-accommodation-related__card { border-radius: 8px; box-shadow: none; }
.tse-tarangire .tse-accommodation-related__image { aspect-ratio: 3 / 2; border-radius: 7px 7px 0 0; }
.tse-tarangire .tse-accommodation-related__title,
.tse-tarangire .tse-accommodation-related__price strong,
.tse-tarangire .tse-accommodation-related__type { letter-spacing: 0; }
.tse-tarangire .tse-accommodation-related__link { min-height: 44px; }
.tse-tarangire .tse-accommodation__gallery { padding-block: 48px; background: #fff; }
.tse-tarangire .tse-accommodation__gallery-track { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 10px; min-height: 0; aspect-ratio: 2.6 / 1; }
.tse-tarangire .tse-accommodation__gallery-head { max-width: none; }
.tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track > button.tse-accommodation__gallery-item { display: block; min-width: 0; height: 100%; padding: 0; border: 0; border-radius: 6px; box-shadow: none; }
.tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track > button.tse-accommodation__gallery-item:nth-child(n+6) { display: none; }
.tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track > button.tse-accommodation__gallery-item.is-featured { grid-row: 1 / 3; }
.tse-tarangire .tse-accommodation__gallery-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.tse-tarangire .tse-accommodation__gallery-track[data-gallery-count="1"],
.tse-tarangire .tse-accommodation__gallery-track[data-gallery-count="2"] { grid-template-rows: minmax(0, 1fr); }
.tse-tarangire .tse-accommodation__gallery-track[data-gallery-count="1"] { grid-template-columns: minmax(0, 1fr); aspect-ratio: 16 / 9; }
.tse-tarangire .tse-accommodation__gallery-track[data-gallery-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); aspect-ratio: 3 / 1; }
.tse-tarangire .tse-accommodation__gallery-track[data-gallery-count="3"] { grid-template-columns: 2fr 1fr; aspect-ratio: 2 / 1; }
.tse-tarangire .tse-accommodation__gallery-track[data-gallery-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); aspect-ratio: 1.5 / 1; }
.tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track[data-gallery-count="1"] > button.is-featured,
.tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track[data-gallery-count="2"] > button.is-featured,
.tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track[data-gallery-count="4"] > button.is-featured { grid-row: auto; }

.tse-tarangire .tse-tarangire__expert .tse-accommodation__container { max-width: 860px; }
.tse-tarangire .tse-tarangire__expert { padding-block: 48px; }
.tse-tarangire__expert-layout { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 24px; align-items: start; margin: 0; padding: 0; text-align: left; }
.tse-tarangire__expert-layout.is-without-portrait { grid-template-columns: minmax(0, 1fr); }
.tse-tarangire__expert-portrait { display: block; width: 84px; height: 84px; margin: 0; border-radius: 50%; object-fit: cover; }
.tse-tarangire__expert-copy { min-width: 0; max-width: 700px; }
.tse-tarangire__expert-identity { margin-top: 16px; color: #24352b; font-size: 17px; line-height: 1.5; }
.tse-tarangire__expert-identity p { margin: 4px 0 0; color: #59675f; font-size: 15px; }
.tse-tarangire__expert-advice { margin-top: 18px; color: #354139; font-size: 18px; line-height: 1.75; overflow-wrap: anywhere; }
.tse-tarangire__expert-advice > :last-child { margin-bottom: 0; }
.tse-tarangire .tse-accommodation__reviews { background: #f7f8f7; }

.tse-tarangire__faq-list { border-top: 1px solid #e4e9e5; }
.tse-tarangire__faq-item { border-bottom: 1px solid #e4e9e5; }
.tse-tarangire__faq-item h3 { margin: 0; }
.tse-tarangire__faq-item button { display: flex; width: 100%; min-height: 68px; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 2px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #202a24; font: inherit; font-size: 18px; font-weight: 650; line-height: 1.5; text-align: left; cursor: pointer; }
.tse-tarangire__faq-item button:focus-visible { outline: 3px solid #34764e; outline-offset: 3px; }
.tse-tarangire__faq-icon { flex: 0 0 auto; color: #32754b; font-size: 27px; font-weight: 400; line-height: 1; }
.tse-tarangire__faq-answer { max-width: 760px; padding: 0 40px 22px 2px; line-height: 1.75; overflow-wrap: anywhere; }
.tse-tarangire__faq-answer > :last-child { margin-bottom: 0; }
.tse-tarangire__faq-answer p { margin: 0 0 1em; }
.tse-tarangire__faq-answer ul,
.tse-tarangire__faq-answer ol { margin: 0 0 1em; padding-left: 1.4em; }
.tse-tarangire__faq-answer li { margin-block: .4em; }
.tse-tarangire__faq-answer a { text-decoration: underline; text-underline-offset: 3px; }
.tse-tarangire__faq-answer[hidden] { display: none; }
.tse-tarangire .tse-tarangire__final-cta { background: #f0f4ee; }
.tse-tarangire__final-cta .tse-accommodation__container { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.tse-tarangire__final-cta h2 { max-width: 680px; margin: 0; color: #1f2e25; font-size: 36px; font-weight: 750; line-height: 1.2; text-wrap: balance; }
.tse-tarangire__cta-copy { margin: 16px 0 0; font-size: 18px; line-height: 1.6; }
.tse-tarangire .tse-tarangire__final-cta .tse-accommodation__primary-cta { flex-shrink: 0; gap: 12px; border-radius: 6px; background: #47751b; letter-spacing: 0; }
.tse-tarangire .tse-tarangire__final-cta .tse-accommodation__primary-cta:hover { background: #365620; }

@media (max-width: 1060px) {
    .tse-tarangire__hero { min-height: 500px; }
    .tse-tarangire__hero h1 { font-size: 52px; }
    .tse-tarangire__section-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr); gap: 32px; }
    .tse-tarangire .tse-accommodation__section-head h2,
    .tse-tarangire .tse-tarangire__expert h2 { font-size: 32px; }
    .tse-tarangire__packages .tse-accommodation__section-head h2 { font-size: 38px; }
    .tse-tarangire__animal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tse-tarangire__package-grid,
    .tse-tarangire .tse-accommodation__related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .tse-tarangire .tse-accommodation__container { width: calc(100% - 32px); }
    .tse-tarangire .tse-accommodation__section { padding-block: 48px; }
    .tse-tarangire .tse-accommodation__section-head { margin-bottom: 24px; }
    .tse-tarangire .tse-accommodation__section-head h2,
    .tse-tarangire .tse-tarangire__expert h2 { font-size: 28px; }
    .tse-tarangire .tse-accommodation__section-head > p:last-child { font-size: 17px; }
    .tse-tarangire .tse-tarangire__section { padding-block: 40px; }
    .tse-tarangire__section-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .tse-tarangire__section-layout .tse-accommodation__section-head { margin: 0; }
    .tse-tarangire .tse-accommodation__richtext { font-size: 17px; }
    .tse-tarangire .tse-accommodation__richtext h2,
    .tse-tarangire .tse-accommodation__richtext h3 { font-size: 21px; }
    .tse-tarangire__final-cta .tse-accommodation__container { align-items: stretch; flex-direction: column; gap: 24px; }
    .tse-tarangire__final-cta h2 { font-size: 28px; }
    .tse-tarangire .tse-tarangire__location .tse-accommodation__map { aspect-ratio: 4 / 3; }
    .tse-tarangire .tse-accommodation__gallery { padding-block: 40px; }
    .tse-tarangire .tse-accommodation__gallery-track,
    .tse-tarangire .tse-accommodation__gallery-track[data-gallery-count] { display: flex; gap: 10px; aspect-ratio: auto; margin: 0; padding: 0; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
    .tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track > button.tse-accommodation__gallery-item,
    .tse-tarangire .tse-accommodation__gallery .tse-accommodation__gallery-track > button.tse-accommodation__gallery-item:nth-child(n+6) { display: block; flex: 0 0 88%; height: auto; aspect-ratio: 4 / 3; scroll-snap-align: start; }
    .tse-tarangire .tse-tarangire__expert { padding-block: 40px; }
    .tse-tarangire__expert-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .tse-tarangire__expert-portrait { width: 64px; height: 64px; }
    .tse-tarangire__expert-advice { font-size: 17px; }
}
@media (max-width: 700px) {
    .tse-tarangire__hero { min-height: 430px; }
    .tse-tarangire__hero-inner { padding-block: 24px 40px; }
    .tse-tarangire__hero h1 { font-size: 40px; }
    .tse-tarangire__hero-intro { font-size: 17px; }
    .tse-tarangire__animal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
    .tse-tarangire__animal-grid li { gap: 8px; font-size: 15px; }
    .tse-tarangire__animal-icon { width: 44px; height: 36px; flex-basis: 44px; }
    .tse-tarangire__animal-icon svg { width: 44px; height: 36px; }
    .tse-tarangire .tse-tarangire__best-time-section,
    .tse-tarangire .tse-tarangire__packages { padding-block: 56px; }
    .tse-tarangire__packages .tse-accommodation__section-head h2 { font-size: 32px; }
    .tse-tarangire__package-grid,
    .tse-tarangire .tse-accommodation__related-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .tse-tarangire__packages .tseia-card__body { padding-inline: 18px; }
    .tse-tarangire__packages .tseia-card__badges { margin-left: 18px; }
    .tse-tarangire__packages .tseia-card__level { margin-right: 18px; }
    .tse-tarangire__faq-item button { min-height: 64px; font-size: 17px; }
    .tse-tarangire__faq-answer { padding-right: 12px; }
}
@media (max-width: 360px) {
    .tse-tarangire__hero h1 { font-size: 36px; }
    .tse-tarangire__animal-grid { column-gap: 10px; }
    .tse-tarangire__animal-grid li { font-size: 14px; }
    .tse-tarangire__animal-icon { flex-basis: 40px; width: 40px; }
    .tse-tarangire__packages .tseia-card__level { max-width: 110px; }
}
