.otri.tr-directory{max-width:1440px;margin-top:20px}
.tr-directory .tr-calendar-hero{padding:24px 26px;border-radius:22px;background:linear-gradient(115deg,#143c67,#2761a1 65%,#4483a9);color:#fff;margin-bottom:24px}
.tr-directory .tr-calendar-hero h2{color:#fff;font-size:28px;margin:0 0 10px;line-height:1.25}
.tr-directory .tr-calendar-hero p{margin:0;color:#fff}
.tr-directory .tr-calendar-hero .tr-calendar-eyebrow{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.12em;color:#d5e8ff}
.tr-directory .tr-calendar-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}
.tr-directory .tr-calendar-heading h1{margin:0;font-size:30px}
.tr-directory .tr-calendar-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tr-directory .tr-my-link{font-size:14px;color:#246da4;text-decoration:none}
.tr-directory .tr-calendar-bar{display:flex;flex-wrap:wrap;border:1px solid #d9e4f1;border-radius:16px;margin-bottom:20px;overflow:hidden;background:#fff}
.tr-directory .tr-calendar-dates{display:flex;flex:1;overflow-x:auto;min-width:0;scrollbar-width:thin}
.tr-directory .tr-date-tab{display:flex;flex:1 0 auto;flex-direction:column;gap:3px;justify-content:center;align-items:center;min-height:68px;padding:10px 16px;border-right:1px solid #d9e4f1;border-bottom:3px solid transparent;text-decoration:none;color:#55718f;font-size:14px;white-space:nowrap}
.tr-directory .tr-date-tab small{font-size:12px;color:#8395a8}
.tr-directory .tr-date-tab[aria-current]{background:#edf5ff;color:#086bc1;border-bottom-color:#087ee9}
.tr-directory .tr-date-tab:hover{background:#f2f7fc}
.tr-directory .tr-other-date{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px;max-width:100%}
.tr-directory .tr-other-date label{font-size:12px;color:#60768d}
.otri.tr-directory .tr-other-date input[type=date]{width:150px!important;min-height:38px;padding:7px 9px!important;font-size:13px!important}
.tr-directory .tr-other-date button{border-radius:9px;background:#edf5ff;color:#086bc1;font-family:inherit;font-size:13px;font-weight:700;padding:10px 12px;min-height:38px;cursor:pointer}
.tr-directory .tr-calendar-bar :focus-visible{outline:3px solid #087ee9;outline-offset:-3px}
@media(max-width:760px){
 .otri.tr-directory{padding:0 10px;margin-top:14px}
 .tr-directory .tr-calendar-hero{padding:20px 18px;border-radius:16px;margin-bottom:18px}
 .tr-directory .tr-calendar-hero h2{font-size:23px}
 .tr-directory .tr-calendar-hero p{font-size:14px}
 .tr-directory .tr-calendar-heading h1{font-size:25px}
 .tr-directory .tr-calendar-heading{align-items:flex-start;margin-bottom:16px}
 .tr-directory .tr-calendar-dates{flex-basis:100%}
 .tr-directory .tr-date-tab{min-height:64px;padding:9px 14px}
 .tr-directory .tr-other-date{width:100%;border-top:1px solid #d9e4f1}
 .tr-directory .tr-other-date label{flex-basis:100%}
 .otri.tr-directory .tr-other-date input[type=date]{flex:1;min-width:0!important}
}

.tr-directory .tr-route-filters{border:1px solid #d9e4f1;border-radius:14px;margin:0 0 16px;background:#fff}
.tr-directory .tr-route-filters summary{cursor:pointer;padding:12px 16px;color:#1766a3;font-weight:650;min-height:44px}
.tr-directory .tr-route-filters form{padding:0 16px 16px}
.tr-directory .tr-route-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tr-directory .tr-route-fields .tr-field{margin-bottom:0}
.tr-directory .tr-filter-state{font-size:14px;color:#42627b;margin:0 0 16px}
.tr-directory .tr-filter-state a{color:#096fc1;margin-left:10px}
@media(max-width:760px){.tr-directory .tr-route-fields{grid-template-columns:1fr}.tr-directory .tr-route-filters .tr-actions .tr-btn{flex:1}}
/* Compact route cards scoped to the trip directory. */
.otri.tr-directory .tr-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.otri.tr-directory .tr-card{display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-rows:auto;gap:10px 12px;padding:16px;margin:0;height:auto;min-height:0;border:1px solid #dce6ef;border-radius:16px;background:#fff;box-shadow:0 3px 14px #17365206}
.otri.tr-directory .tr-card.tr-vip{border:1px solid #e8c366;background:#fffef8;box-shadow:0 3px 14px #be8b0c08}
.otri.tr-directory .tr-card>.tr-photo-link,.otri.tr-directory .tr-card>.tr-photo{grid-column:1;grid-row:1 / 4;width:76px;height:76px;min-height:0;margin:0;border-radius:12px;overflow:hidden}
.otri.tr-directory .tr-card .tr-photo-link .tr-photo{display:block;width:76px;height:76px;min-height:0;margin:0;object-fit:cover;border-radius:12px}
.otri.tr-directory .tr-card>.tr-photo-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px;background:#edf6fc;gap:4px;text-decoration:none;text-align:center;color:#285e7c}
.otri.tr-directory .tr-card>.tr-photo-placeholder>span{display:none}
.otri.tr-directory .tr-card>.tr-photo-placeholder strong{font-size:16px;line-height:1.2}
.otri.tr-directory .tr-card>.tr-photo-placeholder small{font-size:9px;line-height:1.25}
.otri.tr-directory .tr-card>.tr-vip-badge{grid-column:2;grid-row:1;justify-self:start;align-self:start;font-size:10px;padding:2px 6px;margin:0}
.otri.tr-directory .tr-card>.tr-eyebrow{grid-column:2;grid-row:2;margin:0;font-size:13px;line-height:1.45;letter-spacing:0;color:#236da0;font-weight:650}
.otri.tr-directory .tr-card>h2{grid-column:2;grid-row:3;margin:0;font-size:19px;line-height:1.3;align-self:start}
.otri.tr-directory .tr-card>h2 a{color:#183d56;text-decoration:none;overflow-wrap:anywhere}
.otri.tr-directory .tr-card>.tr-badges{grid-column:1 / -1;grid-row:4;display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 0}
.otri.tr-directory .tr-card .tr-badge{font-size:11px;line-height:1.35;padding:4px 7px;border-radius:7px}
.otri.tr-directory .tr-card>.tr-price{grid-column:1 / -1;grid-row:5;margin:0;font-size:18px;line-height:1.35}
.otri.tr-directory .tr-card>.tr-muted{grid-column:1 / -1;grid-row:6;margin:0;font-size:12px;line-height:1.4}
.otri.tr-directory .tr-card>.tr-btn{grid-column:1 / -1;grid-row:7;margin:0;min-height:44px;font-size:13px!important;padding:9px 12px!important;border-radius:10px!important;background:#f0f7fd!important}
@media(max-width:1100px){.otri.tr-directory .tr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.otri.tr-directory .tr-grid{grid-template-columns:minmax(0,1fr);gap:12px}.otri.tr-directory .tr-card{padding:14px;gap:9px 12px}.otri.tr-directory .tr-card>h2{font-size:19px}.otri.tr-directory .tr-card>.tr-eyebrow{font-size:12px}}

.otri.tr-directory .tr-card>.tr-photo-placeholder strong{white-space:nowrap;word-break:normal;font-size:15px;max-width:none}
