/* Traveler places, isolated from the site-wide template and existing community styles. */
.tc-action-sr { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.tc-post__actions { display: flex !important; flex-wrap: nowrap !important; justify-content: flex-start !important; align-items: center !important; gap: 5px !important; width: 100%; }
.tc-post__actions > form, .tc-post__actions > a, .tc-post__actions > button { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; margin: 0 !important; }
.tc-post__actions > form { display: flex; }
.tc-post__actions > form > .tc-post__action { flex: 0 0 auto !important; width: auto !important; }
.tc-post__actions .tc-post__action { position: relative; display: inline-flex !important; justify-content: center !important; align-items: center !important; gap: 5px !important; min-width: 42px; min-height: 46px !important; padding: 7px 5px !important; white-space: nowrap; font-size: 13px !important; border-radius: 8px; }
.tc-post__actions .tc-post__action .tc-icon, .tc-post__actions .tc-post__action svg { width: 20px; height: 20px; flex: 0 0 20px; }
.tc-post__actions .tc-post__action:focus-visible { outline: 2px solid #ff4b39; outline-offset: -2px; }
.tc-guide__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tc-guide__item summary { display: grid; grid-template-columns: 35px minmax(0, 1fr) auto 17px; gap: 10px; align-items: center; min-height: 66px; font-size: 13px; line-height: 1.4; }
.tc-guide__item summary > span:nth-child(2) { min-width: 0; overflow-wrap: anywhere; }
.tc-guide__score { white-space: nowrap; border-color: #e9ada2; border-style: solid; border-radius: 8px; box-shadow: none; }
.tc-place-icon { display: block; width: 19px; height: 19px; flex: 0 0 19px; }
.tc-place-editor { margin: 20px 0; border: 1px solid #e9dfda; border-radius: 12px; background: #fff; }
.tc-place-editor > summary { display: flex; align-items: center; gap: 12px; min-height: 68px; padding: 15px 18px; cursor: pointer; list-style: none; }
.tc-place-editor > summary::-webkit-details-marker { display: none; }
.tc-place-editor > summary > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.tc-place-editor > summary strong { color: #352c29; font-size: 14px; line-height: 1.3; }
.tc-place-editor > summary small { color: #776d68; font-size: 12px; line-height: 1.4; }
.tc-place-editor__summary-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; color: #de4636; background: #fff1ed; border-radius: 9px; }
.tc-place-editor__summary-icon svg { width: 20px; height: 20px; }
.tc-place-editor__chevron { width: 17px; height: 17px; flex: none; margin-left: auto; color: #7c7069; }
.tc-place-editor[open] .tc-place-editor__chevron { transform: rotate(180deg); }
.tc-place-editor__inside { border-top: 1px solid #f0e8e5; padding: 18px; }
.tc-place-editor__note { margin: 0 0 15px; color: #70655f; font-size: 12px; line-height: 1.5; }
.tc-place-editor__grid, .tc-place-filters__pair { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.tc-place-editor__grid .tc-field { min-width: 0; }
.tc-place-editor__grid input, .tc-place-editor__grid select { width: 100%; min-width: 0; }
.tc-place-editor__score, .tc-place-editor__tags, .tc-place-filters__tags { min-width: 0; margin: 17px 0; padding: 0; border: 0; }
.tc-place-editor__score legend, .tc-place-editor__tags legend, .tc-place-filters__tags legend { margin-bottom: 9px; color: #423732; font-size: 13px; font-weight: 700; }
.tc-place-editor__stars, .tc-place-editor__tags > div, .tc-place-filters__tags > div { display: flex; flex-wrap: wrap; gap: 8px; }
.tc-place-editor__stars label, .tc-place-editor__tag, .tc-place-filters__tags label { cursor: pointer; }
.tc-place-editor__stars input, .tc-place-editor__tag input, .tc-place-filters__tags input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tc-place-editor__stars label > span, .tc-place-editor__tag > span, .tc-place-filters__tags label > span { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 8px 11px; border: 1px solid #e5ded8; border-radius: 8px; color: #514640; background: #fff; font-size: 12px; line-height: 1.2; }
.tc-place-editor__stars input:checked + span, .tc-place-editor__tag input:checked + span, .tc-place-filters__tags input:checked + span { border-color: #ff4b39; color: #b5392d; background: #fff3ef; }
.tc-place-editor__stars input:focus-visible + span, .tc-place-editor__tag input:focus-visible + span, .tc-place-filters__tags input:focus-visible + span { outline: 2px solid #ff4b39; outline-offset: 2px; }
.tc-place-editor__kind { margin-top: 18px; padding-top: 14px; border-top: 1px solid #f3eae6; }
.tc-place-editor__kind[hidden] { display: none !important; }
.tc-place-editor__kind h4 { margin: 0 0 14px; color: #41362f; font-size: 14px; }
.tc-place-editor__subheading { margin: 16px 0 10px; color: #53453d; font-size: 12px; font-weight: 700; }
.tc-place-editor__tags p { margin: 0 0 10px; color: #746b66; font-size: 12px; }
.tc-place-editor__extra { border-top: 1px solid #f0e8e5; padding-top: 14px; }
.tc-place-editor__extra > summary { cursor: pointer; color: #bd3a2d; font-size: 13px; font-weight: 700; }
.tc-place-editor__extra .tc-place-editor__grid { margin-top: 15px; }
.tc-place-editor__days { display: grid; gap: 8px; max-width: 510px; }
.tc-place-editor__day { display: grid; grid-template-columns: minmax(75px,1fr) minmax(0,110px) 10px minmax(0,110px); align-items: center; gap: 8px; font-size: 12px; }
.tc-place-editor__day input { width: 100%; min-width: 0; min-height: 36px; border: 1px solid #ded4cf; border-radius: 7px; padding: 4px; background: #fff; }
.tc-place-filters { display: grid; gap: 12px; margin-top: 15px; }
.tc-place-filters__tags { margin: 3px 0; }
.tc-place-filters__tags label > span { min-height: 33px; padding: 6px 8px; font-size: 11px; }
.tc-place-filters__tags .tc-place-icon { width: 16px; height: 16px; flex-basis: 16px; }
.tc-place-filters__locate { justify-self: start; border: 1px solid #e2d7d1; border-radius: 8px; background: #fff; padding: 9px 12px; color: #9d3025; cursor: pointer; font: inherit; font-weight: 700; font-size: 12px; }
.tc-place-filters__status { color: #ad392c; }
.tc-place-view-switch { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 13px 0; color: #483b35; font-size: 13px; }
.tc-place-view-switch > span { display: flex; gap: 4px; padding: 3px; border: 1px solid #e8ddd7; border-radius: 8px; background: #fff; }
.tc-place-view-switch a { padding: 7px 10px; border-radius: 6px; color: #5d514c; text-decoration: none; white-space: nowrap; }
.tc-place-view-switch a[aria-current] { color: #fff; background: #ff4b39; }
.tc-place-map { height: 390px; border: 1px solid #eee4df; border-radius: 12px; overflow: hidden; background: #f6f5f1; }
.tc-place-map-empty { margin: 6px 0 16px; color: #6e615b; font-size: 13px; }
.tc-place-pin { display: grid; width: 30px; height: 30px; place-items: center; background: #ff4b39; color: #fff; border: 3px solid #fff; border-radius: 50% 50% 50% 3px; transform: rotate(-45deg); box-shadow: 0 2px 9px #40211955; }
.tc-place-pin svg { width: 17px; height: 17px; transform: rotate(45deg); margin-left: -1px; }
.tc-place-pin--stay { background: #346a77; }
.tc-place-pin--nature { background: #50835e; }
.tc-place-card { margin: 17px 0; padding: 17px; border: 1px solid #ece1da; border-radius: 10px; background: #fffdfb; }
.tc-place-card__top { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.tc-place-card__top > div { display: grid; min-width: 0; gap: 3px; }
.tc-place-card__type { color: #ba3c2e; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; }
.tc-place-card__top strong { overflow-wrap: anywhere; color: #342b27; font-size: 16px; line-height: 1.35; }
.tc-place-card__top small { color: #80716a; font-size: 11px; }
.tc-place-card__rating { display: inline-flex; align-items: center; gap: 5px; flex: none; padding: 7px 9px; border-radius: 8px; background: #fff0e9; color: #bb392e; font-size: 12px; font-weight: 800; }
.tc-place-card__rating svg { width: 15px; height: 15px; }
.tc-place-card__facts, .tc-place-card__tags, .tc-place-card__links, .tc-place-card__more { display: flex; flex-wrap: wrap; gap: 7px 11px; margin-top: 12px; }
.tc-place-card__facts span { color: #665950; font-size: 12px; line-height: 1.5; }
.tc-place-card__facts span + span:before { content: '·'; margin-right: 10px; color: #bea9a0; }
.tc-place-card__tag { display: inline-flex; justify-content: center; align-items: center; width: 34px; height: 34px; border: 1px solid #e8d9d0; border-radius: 8px; background: #fff; color: #cc4433; }
.tc-place-card__tag .tc-place-icon { width: 19px; height: 19px; }
.tc-place-card__hours { display: flex; align-items: center; gap: 7px; margin: 13px 0 0; color: #5a514b; font-size: 12px; }
.tc-place-card__hours svg { width: 17px; height: 17px; color: #d04736; }
.tc-place-card__breakdown { display: grid; gap: 9px; margin-top: 14px; border-top: 1px solid #eee3dc; padding-top: 13px; }
.tc-place-card__breakdown > div { display: grid; grid-template-columns: 105px minmax(0,1fr) 22px; align-items: center; gap: 10px; color: #665950; font-size: 12px; }
.tc-place-card__meter { height: 8px; background: #efe8e1; border-radius: 5px; overflow: hidden; }
.tc-place-card__meter span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,rgb(145, 112, 112) 0%, rgba(255, 75, 57, 1) 100%); }
.tc-place-card__more span { color: #625752; font-size: 12px; line-height: 1.45; }
.tc-place-card__links { border-top: 1px solid #eee3dc; padding-top: 12px; }
.tc-place-card__links a { color: #b53629; font-size: 12px; font-weight: 700; text-decoration: none; }
.tc-place-card__links a:focus-visible, .tc-place-card__links a:hover { text-decoration: underline; }
.tc-icon.tc-icon--aloha-like { margin-top: 2px; }
@media (max-width: 767px) {
    .tc-guide__grid { grid-template-columns: minmax(0,1fr) !important; }
    .tc-guide__item summary { grid-template-columns: 37px minmax(0,1fr) auto; gap: 10px; min-height: 64px; font-size: 13px; }
    .tc-guide__item summary > svg { grid-column: 3; grid-row: 1 / 3; }
    .tc-guide__item summary > span:nth-child(2) { grid-column: 2; grid-row: 1; }
    .tc-guide__item summary > .tc-guide__symbol { grid-column: 1; grid-row: 1 / 3; }
    .tc-guide__item summary > .tc-guide__score { grid-column: 2; grid-row: 2; justify-self: start; padding: 3px 7px; }
    .tc-post__actions { gap: 3px !important; }
    .tc-post__actions .tc-post__action { min-width: 40px; min-height: 44px !important; gap: 3px !important; padding-inline: 4px !important; font-size: 12px !important; }
    .tc-post__actions .tc-post__action svg { width: 19px; height: 19px; flex-basis: 19px; }
    .tc-place-editor__inside { padding: 14px; }
    .tc-place-editor__grid { grid-template-columns: minmax(0, 1fr); }
    .tc-place-map { height: min(67vh, 480px); }
    .tc-place-view-switch { font-size: 12px; }
}
@media (max-width: 390px) {
    .tc-post__actions .tc-post__action svg { width: 17px; height: 17px; flex-basis: 17px; }
    .tc-post__actions .tc-post__action { font-size: 11px !important; }
    .tc-place-editor__day { grid-template-columns: 60px minmax(0,1fr) 8px minmax(0,1fr); gap: 5px; }
}
.tc-place-filter-close { display: none; border: 0; background: none; color: #544841; cursor: pointer; }
.tc-place-filter-close svg { width: 21px; height: 21px; }
@media (max-width: 991px) {
    .tc-sidebar.is-mobile-open { top: auto !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100%; max-height: min(84dvh, 760px); padding: 17px 18px max(22px, env(safe-area-inset-bottom)) !important; border-radius: 18px 18px 0 0 !important; overflow-y: auto; }
    .tc-sidebar.is-mobile-open .tc-filter-card { box-shadow: none; border: 0; padding: 0; }
    .tc-sidebar.is-mobile-open .tc-filter-card__head { position: sticky; top: -17px; z-index: 1; padding: 10px 0 12px; background: #fffdfb; }
    .tc-sidebar.is-mobile-open .tc-place-filter-close { display: inline-flex; margin-left: auto; padding: 7px; }
    .tc-place-filter-backdrop { position: fixed; inset: 0; z-index: 10009; border: 0; background: rgba(27,23,22,.48); }
    body.tc-place-filter-lock { overflow: hidden; }
}
.tc-place-editor__star-icon { display: inline-block; width: 14px; height: 14px; color: #ff4b39; }
.tc-place-card__schedule { margin-top: 10px; color: #625752; font-size: 12px; }
.tc-place-card__schedule summary { width: max-content; cursor: pointer; color: #bd3d31; font-weight: 700; }
.tc-place-card__schedule > div { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px 15px; margin-top: 10px; }
.tc-place-card__schedule span { display: flex; justify-content: space-between; gap: 9px; }
@media (max-width: 480px) { .tc-place-card__schedule > div { grid-template-columns: minmax(0,1fr); } }
.tc-place-editor__cuisine { min-width: 0; }
.tc-place-editor__suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.tc-place-editor__suggestions button { border: 1px solid #e7dcd6; border-radius: 8px; background: #fff; color: #695a53; padding: 6px 9px; cursor: pointer; font: inherit; font-size: 11px; }
.tc-place-editor__suggestions button[aria-pressed="true"] { border-color: #ff4b39; background: #fff1ec; color: #ae392c; }
.tc-place-editor__suggestions button:focus-visible { outline: 2px solid #ff4b39; outline-offset: 2px; }
.tc-place-card__hours.is-open { color: #33724e; }
.tc-place-card__hours.is-open svg { color: #33724e; }

/* Guides keep their details in one expandable surface; attachments remain in the gallery. */
.tc-guide__grid { grid-template-columns: minmax(0, 1fr) !important; }
.tc-guide__item { width: 100%; }
.tc-guide__item summary { grid-template-columns: 39px minmax(0, 1fr) auto 18px; gap: 12px; }
.tc-guide__item summary > .tc-guide__item-title { min-width: 0; overflow-wrap: normal; word-break: normal; line-height: 1.45; }
.tc-guide__eyebrow { display: block; margin-bottom: 3px; color: #ad4437; font-size: 10px; font-weight: 800; letter-spacing: .07em; line-height: 1.3; text-transform: uppercase; }
.tc-guide__item--feed { border: 1px solid #eddcd5; border-left: 3px solid #ff4b39; background: #fffaf7; box-shadow: 0 4px 14px rgba(75,43,28,.045); }
.tc-guide__item--feed summary { min-height: 82px; padding: 13px 16px; }
.tc-guide__item--feed .tc-guide__symbol { width: 43px; height: 43px; background: #fffefe; border-style: solid; border-width: 1px; border-color: #ff4b3947; }
.tc-guide__item--feed .tc-guide__item-title { color: #665148; font-size: 14px; }
.tc-guide__item[open] { background: #fffdfb; }
.tc-guide__content { min-width: 0; }
.tc-guide__content > .tc-place-card { margin: 18px 0 14px; padding: 16px; background: #fff; }
.tc-guide__content > .tc-place-card .tc-place-card__top strong { font-size: 15px; }
.tc-place-card__tag--named { width: auto; min-width: 34px; height: auto; min-height: 34px; gap: 7px; padding: 7px 10px; line-height: 1.3; font-size: 11px; font-weight: 650; }
.tc-place-card__tag-label { display: inline; }
.tc-guide__read-more { display: inline-flex; align-items: center; gap: 6px; width: max-content; max-width: 100%; margin-top: 14px; color: #bd3e31; font-size: 12px; font-weight: 700; line-height: 1.2; white-space: nowrap; text-decoration: none; }
.tc-guide__read-more:hover { text-decoration: underline; }
.tc-guide__read-more svg { width: 15px; height: 15px; }
.tc-guide-place { overflow: hidden; margin-top: 17px; border: 1px solid #ebe1da; border-radius: 9px; background: #fff; }
.tc-guide-place__head { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 11px 13px; }
.tc-guide-place__head > .tc-icon { width: 18px; height: 18px; flex: 0 0 18px; color: #dd4738; }
.tc-guide-place__head > div { min-width: 0; }
.tc-guide-place__head strong, .tc-guide-place__head small { display: block; overflow-wrap: anywhere; }
.tc-guide-place__head strong { color: #332d29; font-size: 12px; line-height: 1.4; }
.tc-guide-place__head small { color: #77706a; font-size: 11px; line-height: 1.35; }
.tc-guide-place__map-wrap { position: relative; }
.tc-guide-place__map { width: 100%; height: 245px; background: #f1f2ed; }
.tc-post-location .tc-guide-place__map-wrap { margin: 0; }
.tc-guide-place__approx { margin: 0; padding: 9px 13px; color: #695c54; background: #fff8f4; border-top: 1px solid #f0e4dd; font-size: 11px; line-height: 1.4; }
.tc-guide-place__touch { display: none; }
.tc-guide-place .tc-directions { padding: 10px 13px; }
.tc-guide-place .leaflet-control-zoom { border: 0; box-shadow: 0 2px 9px rgba(0,0,0,.14); }
.tc-guide-place .leaflet-control-zoom a, .tc-post-location .leaflet-control-zoom a { width: 34px; height: 34px; line-height: 34px; color: #bc3f32; }
@media (max-width: 767px) {
    .tc-guide__item summary { grid-template-columns: 40px minmax(0, 1fr) 18px; gap: 10px; padding: 11px 12px; }
    .tc-guide__item summary > .tc-guide__symbol { grid-column: 1; grid-row: 1 / 3; width: 40px; height: 40px; }
    .tc-guide__item summary > .tc-guide__item-title { grid-column: 2; grid-row: 1; line-height: 1.45; font-size: 13px; }
    .tc-guide__item summary > .tc-guide__score { grid-column: 2; grid-row: 2; justify-self: start; box-shadow: none; }
    .tc-guide__item summary > svg { grid-column: 3; grid-row: 1 / 3; justify-self: center; }
    .tc-guide__item--feed summary { min-height: 72px; }
    .tc-guide__content { padding: 13px 12px; }
    .tc-guide__content > .tc-place-card { padding: 12px; }
    .tc-place-card__breakdown > div { grid-template-columns: minmax(76px, 100px) minmax(0, 1fr) 18px; gap: 7px; }
    .tc-place-card__more, .tc-place-card__links, .tc-place-card__tags { gap: 8px; }
    .tc-guide-place__map { height: 235px; }
    .tc-guide-place__touch { position: absolute; z-index: 400; display: inline-flex; align-items: center; justify-content: center; min-height: 36px; left: 10px; bottom: 10px; padding: 7px 11px; border: 1px solid #f5c7bc; border-radius: 8px; color: #a83229; background: #fff; box-shadow: 0 3px 12px rgba(50,29,22,.13); font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
    .tc-guide-place__touch[aria-pressed="true"] { color: #fff; border-color: #ff4b39; background: #ff4b39; }
    .tc-guide-place__touch:focus-visible { outline: 2px solid #ff4b39; outline-offset: 2px; }
}
