/* Talampas Core blocks. Colours come from the theme's palette, with fallbacks so the blocks still
   read under another theme. */

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Departure tickets: a row that scrolls sideways (snapping) when it is wider than the page. The
   stub on the left has the start day; the whole ticket links to the trip's dates. */
.tt-tickets__list { margin: 0; padding: .25rem .25rem 1rem; list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.tt-ticket { scroll-snap-align: start; }
.tt-ticket a { position: relative; display: grid; grid-template-columns: 4.5rem 1fr; grid-template-rows: auto auto 1fr; gap: .2rem 1.1rem; height: 100%; padding: 1.1rem 1.2rem 1.1rem 0; border-radius: var(--tt-radius, 16px); background: #fff; color: inherit; text-decoration: none; box-shadow: 0 1px 0 var(--wp--preset--color--line, #d9d6ce); }
.tt-ticket a:hover .tt-ticket__tour { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.tt-ticket__day { grid-row: 1 / -1; display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 2px dashed var(--wp--preset--color--line, #d9d6ce); color: var(--wp--preset--color--violet, #4b3f8c); font-weight: 600; font-size: .9375rem; }
.tt-ticket__day strong { font: 400 2.25rem/1 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-ticket__tour { font: 400 1.3rem/1.15 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-ticket__range { color: var(--wp--preset--color--muted, #5d5a63); font-size: .9375rem; }
.tt-ticket__seats { align-self: end; justify-self: start; margin-top: .5rem; padding: .1rem .6rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line, #d9d6ce); font-size: .875rem; }
.tt-ticket.is-few .tt-ticket__seats { border-color: var(--wp--preset--color--apricot, #f5b07a); background: var(--wp--preset--color--apricot, #f5b07a); font-weight: 600; }

/* Trip search: three selects and the button, on one white bar on wide screens. */
.tt-search { display: grid; gap: .75rem; grid-template-columns: 1fr; padding: 1rem; border-radius: var(--tt-radius, 16px); background: #fff; color: var(--wp--preset--color--ink, #1f1d24); box-shadow: 0 24px 50px -24px rgba(20, 17, 38, .45); }
@media (min-width: 720px) { .tt-search { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; padding: 1.1rem 1.1rem 1.1rem 1.5rem; } }
.tt-search__field { display: grid; gap: .25rem; margin: 0; }
@media (min-width: 720px) { .tt-search__field + .tt-search__field { padding-left: 1rem; border-left: 1px solid var(--wp--preset--color--line, #d9d6ce); } }
.tt-search label { font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--muted, #5d5a63); }
.tt-search select { width: 100%; padding: .55rem .25rem; border: 0; border-bottom: 2px solid transparent; background: transparent; font: inherit; font-size: 1.125rem; font-weight: 500; color: inherit; cursor: pointer; }
.tt-search select:hover { border-bottom-color: var(--wp--preset--color--line, #d9d6ce); }
.tt-search__go { margin: 0; }
.tt-search button { width: 100%; padding: 1rem 1.6rem; border: 0; border-radius: 10px; background: var(--wp--preset--color--violet, #4b3f8c); color: #fff; font: inherit; font-weight: 600; font-size: 1.0625rem; cursor: pointer; }
.tt-search button:hover { background: var(--wp--preset--color--violet-deep, #3a3070); }

/* Region tiles: the first one large, the other two stacked beside it. The name is a stretched link. */
.tt-regions { margin: 0; padding: 0; list-style: none; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .tt-regions { grid-template-columns: 1.4fr 1fr; grid-template-rows: repeat(2, 260px); } .tt-region.is-large { grid-row: span 2; } }
.tt-region { position: relative; min-height: 300px; overflow: hidden; border-radius: var(--tt-radius, 16px); background: var(--wp--preset--color--night, #221d3f); color: #fff; }
@media (min-width: 900px) { .tt-region { min-height: 0; } }
.tt-region .tt-region__photo { position: absolute; inset: 0; width: 100%; height: 100% !important; max-width: none; object-fit: cover; }
.tt-region::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20, 17, 38, .82) 0%, rgba(20, 17, 38, .15) 60%); }
.tt-region__body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 1.5rem 1.6rem; }
.tt-region__name { margin: 0; font: 400 clamp(1.9rem, 1.4rem + 1.5vw, 2.75rem)/1.05 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-region__name a { color: #fff; text-decoration: none; }
.tt-region__name a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.tt-region:hover .tt-region__name a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; }
.tt-region:focus-within { outline: 3px solid var(--wp--preset--color--violet, #4b3f8c); outline-offset: 3px; }
.tt-region__name a:focus-visible { outline: none; }
.tt-region__line { margin: .35rem 0 0; color: #f3f1fa; }
.tt-region__count { display: inline-block; margin: .75rem 0 0; padding: .15rem .7rem; border-radius: 999px; background: rgba(255, 255, 255, .18); font-size: .9375rem; font-weight: 600; }

/* Trip cards: a tall photo with the trip over its lower part. The name is a stretched link. */
.tt-tours { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.tt-tour { position: relative; overflow: hidden; border-radius: var(--tt-radius, 16px); background: var(--wp--preset--color--night, #221d3f); color: #fff; aspect-ratio: 4 / 5; }
.tt-tour__photo { position: absolute; inset: 0; margin: 0; }
.tt-tour .tt-tour__photo img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0; }
.tt-tour::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20, 17, 38, .9) 0%, rgba(20, 17, 38, .45) 45%, rgba(20, 17, 38, 0) 70%); }
.tt-tour__next { position: absolute; z-index: 1; top: 1rem; left: 1rem; margin: 0; padding: .2rem .7rem; border-radius: 999px; background: var(--wp--preset--color--apricot, #f5b07a); color: var(--wp--preset--color--ink, #1f1d24); font-size: .9375rem; font-weight: 600; }
.tt-tour__body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; display: grid; gap: .3rem; padding: 1.4rem 1.4rem 1.3rem; }
.tt-tour__region { margin: 0; font-size: .9375rem; font-weight: 600; color: var(--wp--preset--color--apricot, #f5b07a); }
.tt-tour__name { margin: 0; font: 400 1.9rem/1.05 var(--wp--preset--font-family--display, Georgia, serif); letter-spacing: -.005em; }
.tt-tour__name a { color: #fff; text-decoration: none; }
.tt-tour__name a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.tt-tour:hover .tt-tour__name a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; }
.tt-tour:focus-within { outline: 3px solid var(--wp--preset--color--violet, #4b3f8c); outline-offset: 3px; }
.tt-tour__name a:focus-visible { outline: none; }
.tt-tour__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; color: #e8e5f3; }
.tt-tour__meta span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; margin: 0 .9rem .2rem -.5rem; border-radius: 50%; background: currentColor; vertical-align: middle; }
.tt-tour__price { margin: .5rem 0 0; padding-top: .7rem; border-top: 1px solid rgba(255, 255, 255, .25); font-size: 1.25rem; font-weight: 600; }
.tt-tour__price span { font-size: .9375rem; font-weight: 400; color: #e8e5f3; }

/* Tour finder: three selects and a button, in one row on wide screens. */
.tt-filter { display: grid; gap: 1rem; grid-template-columns: 1fr; align-items: end; margin-bottom: 1.5rem; padding: 1.25rem; border-radius: var(--tt-radius, 16px); background: #fff; }
@media (min-width: 640px) { .tt-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .tt-filter { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; } }
.tt-filter__field { display: grid; gap: .35rem; margin: 0; }
.tt-filter label { font-weight: 600; }
.tt-filter select { width: 100%; padding: .75rem .9rem; border: 2px solid #8a8690; border-radius: 8px; background: #fff; font: inherit; color: inherit; }
.tt-filter__go { display: flex; align-items: center; gap: 1rem; margin: 0; }
.tt-filter button { padding: .85rem 1.3rem; border: 0; border-radius: 8px; background: var(--wp--preset--color--violet, #4b3f8c); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.tt-filter button:hover { background: var(--wp--preset--color--violet-deep, #3a3070); }
.tt-index__count { margin: 0 0 1rem; color: var(--wp--preset--color--muted, #5d5a63); }

/* Trip hero: the trip's photo across the page with the title over its foot. */
.tt-tour-hero { position: relative; display: grid; color: #fff; background: var(--wp--preset--color--night, #221d3f); }
.tt-tour-hero > * { grid-area: 1 / 1; }
.tt-tour-hero__photo { display: block; width: 100%; height: clamp(520px, 80vh, 820px); object-fit: cover; }
.tt-tour-hero::after { content: ""; grid-area: 1 / 1; background: linear-gradient(0deg, rgba(20, 17, 38, .85) 0%, rgba(20, 17, 38, .35) 45%, rgba(20, 17, 38, .2) 100%); }
.tt-tour-hero__text { position: relative; z-index: 1; align-self: end; display: grid; gap: .9rem; padding: 7rem var(--wp--style--root--padding-left, 1.25rem) 6.5rem max(var(--wp--style--root--padding-left, 1.25rem), calc((100vw - 1200px) / 2)); }
.tt-tour-hero__back { margin: 0; font-weight: 600; color: var(--wp--preset--color--apricot, #f5b07a); }
.tt-tour-hero__back a { color: #fff; }
.tt-tour-hero__title { margin: 0; max-width: 14ch; color: #fff; font: 400 clamp(2.9rem, 1.5rem + 4.6vw, 6rem)/.98 var(--wp--preset--font-family--display, Georgia, serif); letter-spacing: -.02em; }
.tt-tour-hero__lead { margin: 0; max-width: 52ch; font-size: clamp(1.0625rem, 1rem + .35vw, 1.3125rem); color: #f3f1fa; }

/* Highlights: one white strip of five facts, riding up over the foot of the photo. */
.tt-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; overflow: hidden; border-radius: var(--tt-radius, 16px); background: var(--wp--preset--color--line, #d9d6ce); box-shadow: 0 24px 50px -28px rgba(20, 17, 38, .45); }
@media (min-width: 760px) { .tt-highlights { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.tt-highlights div { padding: 1.1rem 1.3rem; background: #fff; }
.tt-highlights dt { font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--muted, #5d5a63); }
.tt-highlights dd { margin: .2rem 0 0; font: 400 1.4rem/1.15 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-highlights div:last-child { background: var(--wp--preset--color--violet, #4b3f8c); color: #fff; }
.tt-highlights div:last-child dt { color: var(--wp--preset--color--haze, #c9c2ec); }
@media (max-width: 759px) { .tt-highlights div:last-child { grid-column: 1 / -1; } }

/* Trip bar: links to the sections, with the price and the button, stuck to the top while the trip
   is read. On phones the price and button become a bar fixed to the bottom of the screen. */
.tt-bar { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 2rem; padding: .6rem max(var(--wp--style--root--padding-left, 1.25rem), calc((100vw - 1200px) / 2)); background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(10px); border-block: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.admin-bar .tt-bar { top: var(--wp-admin--admin-bar--height, 0); }
.tt-bar__nav { overflow-x: auto; scrollbar-width: none; }
.tt-bar__nav ul { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; white-space: nowrap; }
.tt-bar__nav a { display: block; padding: .6rem .8rem; border-radius: 8px; color: var(--wp--preset--color--ink, #1f1d24); font-weight: 500; text-decoration: none; }
.tt-bar__nav a:hover { background: var(--wp--preset--color--base, #f4f3f0); }
.tt-bar__book { display: flex; align-items: center; gap: 1.25rem; }
.tt-bar__price { margin: 0; white-space: nowrap; }
.tt-bar__price strong { font: 400 1.6rem/1 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-bar__price span { font-size: .875rem; color: var(--wp--preset--color--muted, #5d5a63); }
.tt-bar__act { margin: 0; }
@media (max-width: 781px) {
	.tt-bar__book { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; justify-content: space-between; padding: .75rem var(--wp--style--root--padding-left, 1.25rem); background: #fff; box-shadow: 0 -10px 30px -12px rgba(20, 17, 38, .35); }
	.tt-bar__price span:last-child { display: none; }
}

/* Good to know: the practical facts beside the trip's description. */
.tt-know { padding: 1.75rem; border-radius: var(--tt-radius, 16px); background: #fff; }
.tt-know__title { margin: 0 0 .75rem; font-size: 1.75rem; }
.tt-know__list { margin: 0; }
.tt-know__list div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.tt-know__list dt { color: var(--wp--preset--color--muted, #5d5a63); }
.tt-know__list dd { margin: 0; }

/* Route map. Sizes inside the SVG are in map units, scaled by --u (one design pixel). */
.tt-map__frame { margin: 0; }
.tt-map__svg { display: block; width: 100%; height: auto; border-radius: var(--tt-radius, 16px); }
.tt-map__sea { fill: var(--wp--preset--color--sea, #dce3ea); }
.tt-map__land { fill: #fbfaf7; stroke: #c9c3b6; stroke-width: 1px; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.tt-map__province { fill: #8f8a96; font-family: var(--wp--preset--font-family--sans, sans-serif); font-style: italic; text-anchor: middle; }
.tt-map__route { fill: none; stroke: var(--wp--preset--color--violet, #4b3f8c); stroke-linecap: round; stroke-linejoin: round; }
.tt-map__route.is-faint { opacity: .5; }
.tt-map__pin circle { fill: var(--wp--preset--color--violet, #4b3f8c); stroke: #fff; stroke-width: 2px; vector-effect: non-scaling-stroke; }
.tt-map__pin text { fill: #fff; font-family: var(--wp--preset--font-family--sans, sans-serif); font-weight: 700; text-anchor: middle; }
.tt-map__stop { fill: var(--wp--preset--color--ink, #1f1d24); font-family: var(--wp--preset--font-family--sans, sans-serif); font-weight: 600; stroke: #fbfaf7; paint-order: stroke; stroke-linejoin: round; }
.tt-map__caption { margin-top: .75rem; }
.tt-map__list { margin: 0; padding-left: 1.4rem; display: grid; gap: .2rem 1.5rem; grid-template-columns: 1fr; font-size: .9375rem; color: var(--wp--preset--color--muted, #5d5a63); }
@media (min-width: 560px) { .tt-map__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Itinerary: one expandable row per day, in order; the first is open. */
.tt-days { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.tt-day { border-bottom: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.tt-day summary { display: grid; grid-template-columns: 4.5rem 1fr 1.5rem; align-items: baseline; gap: 1rem; padding: 1.2rem 0; cursor: pointer; list-style: none; }
.tt-day summary::-webkit-details-marker { display: none; }
.tt-day summary::after { content: "+"; justify-self: end; font-size: 1.5rem; line-height: 1; color: var(--wp--preset--color--violet, #4b3f8c); }
.tt-day details[open] summary::after { content: "\2212"; }
.tt-day__num { font-weight: 600; color: var(--wp--preset--color--violet, #4b3f8c); }
.tt-day__title { font: 400 1.5rem/1.2 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-day__body { padding: 0 0 1.4rem 5.5rem; }
@media (max-width: 559px) { .tt-day summary { grid-template-columns: 1fr 1.5rem; } .tt-day__num { grid-column: 1 / -1; } .tt-day__body { padding-left: 0; } }
.tt-day__text { margin: 0; max-width: 60ch; }
.tt-day__facts { display: flex; flex-wrap: wrap; gap: .5rem; margin: .9rem 0 0; }
.tt-day__facts div { display: flex; gap: .35rem; padding: .2rem .75rem; border-radius: 999px; background: var(--wp--preset--color--base, #f4f3f0); font-size: .9375rem; }
.tt-day__facts dt { color: var(--wp--preset--color--muted, #5d5a63); }
.tt-day__facts dt::after { content: ":"; }
.tt-day__facts dd { margin: 0; font-weight: 500; }

/* Included, not included, what to bring. */
.tt-lists { display: grid; gap: 2rem 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 820px) { .tt-lists { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tt-lists__title { margin: 0 0 .75rem; font-size: 1.25rem; }
.tt-lists ul { margin: 0; padding: 0; list-style: none; }
.tt-lists li { position: relative; padding: .45rem 0 .45rem 1.75rem; border-top: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.tt-lists li::before { content: ""; position: absolute; left: .1rem; top: .95rem; width: .8rem; height: .45rem; border-left: 2px solid var(--wp--preset--color--violet, #4b3f8c); border-bottom: 2px solid var(--wp--preset--color--violet, #4b3f8c); transform: rotate(-45deg); }
.tt-lists .is-out li::before { top: .85rem; width: .7rem; height: .7rem; border: 2px solid var(--wp--preset--color--muted, #5d5a63); border-radius: 50%; transform: none; }
.tt-lists .is-out li { color: var(--wp--preset--color--muted, #5d5a63); }
.tt-lists .is-bring li::before { top: .8rem; width: .75rem; height: .75rem; border: 2px solid var(--wp--preset--color--ink, #1f1d24); border-radius: 3px; transform: none; }

/* Departures: one row per date, with seats and the request button. */
.tt-deps__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.tt-dep { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .4rem 1.25rem; padding: 1.1rem 0; border-top: 1px solid var(--wp--preset--color--line, #d9d6ce); }
.tt-dep p { margin: 0; }
.tt-dep__date { font-weight: 600; font-size: 1.125rem; font-variant-numeric: tabular-nums; }
.tt-dep__tour { grid-column: 1 / -1; font: 400 1.375rem/1.2 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-dep__tour a { color: inherit; }
.tt-dep__seats { justify-self: end; padding: .15rem .65rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line, #d9d6ce); font-size: .9375rem; white-space: nowrap; }
.tt-dep.is-few .tt-dep__seats { border-color: var(--wp--preset--color--apricot, #f5b07a); background: var(--wp--preset--color--apricot, #f5b07a); font-weight: 600; }
.tt-dep.is-full { color: var(--wp--preset--color--muted, #5d5a63); }
.tt-dep__act { grid-column: 1 / -1; }
.tt-dep__btn { display: inline-block; white-space: nowrap; padding: .55rem 1rem; border: 2px solid var(--wp--preset--color--violet, #4b3f8c); border-radius: 8px; color: var(--wp--preset--color--violet, #4b3f8c); font-weight: 600; text-decoration: none; }
.tt-dep__btn:hover { background: var(--wp--preset--color--violet, #4b3f8c); color: #fff; }
.tt-dep__full { font-size: .9375rem; }
@media (min-width: 760px) {
	.tt-dep { grid-template-columns: minmax(10rem, 14rem) auto 1fr auto; }
	.tt-dep__act { grid-column: auto; justify-self: end; }
	.tt-dep__seats { justify-self: start; }
	.tt-deps__list.is-all .tt-dep { grid-template-columns: minmax(10rem, 13rem) 1fr auto auto; }
	.tt-deps__list.is-all .tt-dep__tour { grid-column: auto; }
}
.tt-deps__month + .tt-deps__month { margin-top: 2.5rem; }
.tt-deps__heading { margin: 0 0 .5rem; font-size: 1.75rem; }
.tt-deps__none { margin: 0; color: var(--wp--preset--color--muted, #5d5a63); }

/* Guides, compact: a row of round initials with name and where they guide. */
.tt-crew { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem 1.5rem; }
.tt-crew__item { display: grid; justify-items: center; gap: .2rem; width: 9.5rem; text-align: center; }
.tt-crew .tt-crew__photo { width: 7.5rem; height: 7.5rem !important; margin-bottom: .6rem; border-radius: 50% !important; object-fit: cover; }
.tt-crew__name { font: 400 1.3rem/1.15 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-crew__where { font-size: .9375rem; color: var(--wp--preset--color--muted, #5d5a63); }

/* Guides: initials placeholders, where they guide, languages. */
.tt-guides { margin: 0; padding: 0; list-style: none; display: grid; gap: 2rem 1.25rem; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
@media (min-width: 700px) { .tt-guides { gap: 2rem 1.75rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); } }
.tt-guide__photo { margin: 0 0 .9rem; }
.tt-guide__photo img { display: block; width: 100%; max-width: 200px !important; aspect-ratio: 1; object-fit: cover; border-radius: 50% !important; }
.tt-guide__name { margin: 0; font: 400 clamp(1.3rem, 1.1rem + .6vw, 1.6rem)/1.1 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-guide__where { margin: .25rem 0 .6rem; font-weight: 600; color: var(--wp--preset--color--violet, #4b3f8c); }
.tt-guide__facts { margin: 0; font-size: .9375rem; }
.tt-guide__facts div { display: flex; flex-wrap: wrap; gap: 0 .4rem; }
.tt-guide__facts dt { color: var(--wp--preset--color--muted, #5d5a63); }
.tt-guide__facts dt::after { content: ":"; }
.tt-guide__facts dd { margin: 0; }
.tt-guide__bio { margin: .6rem 0 0; color: var(--wp--preset--color--muted, #5d5a63); }

/* Journal cards. The title is a stretched link. */
.tt-stories { margin: 0; padding: 0; list-style: none; display: grid; gap: 2rem 1.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.tt-story { position: relative; display: flex; flex-direction: column; }
.tt-story__photo { margin: 0 0 .9rem; order: -2; }
.tt-story__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--tt-radius, 16px); }
.tt-story__meta { order: -1; margin: 0 0 .35rem; font-size: .9375rem; color: var(--wp--preset--color--muted, #5d5a63); }
.tt-story__title { margin: 0; font: 400 1.5rem/1.15 var(--wp--preset--font-family--display, Georgia, serif); }
.tt-story__title a { color: inherit; text-decoration: none; }
.tt-story__title a::after { content: ""; position: absolute; inset: 0; }
.tt-story:hover .tt-story__title a { text-decoration: underline; text-decoration-thickness: 1px; }
.tt-story:focus-within { outline: 3px solid var(--wp--preset--color--violet, #4b3f8c); outline-offset: 4px; border-radius: 6px; }
.tt-story__title a:focus-visible { outline: none; }
.tt-story__excerpt { margin: .5rem 0 0; color: var(--wp--preset--color--muted, #5d5a63); }

.tt-post-meta { margin: 0; color: var(--wp--preset--color--muted, #5d5a63); }

/* Booking and contact forms (the plugin's own; Fluent Forms replaces them on the demo). */
.tt-form__grid { display: grid; gap: 1rem 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .tt-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tt-form__field { display: grid; gap: .4rem; margin: 0; }
.tt-form__field--wide, .tt-form__actions { grid-column: 1 / -1; }
.tt-form label { font-weight: 600; }
.tt-form :is(input, select, textarea) { width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 2px solid #8a8690; border-radius: 8px; background: #fff; font: inherit; color: inherit; }
.tt-form__req { color: var(--wp--preset--color--violet, #4b3f8c); }
.tt-form__hp { position: absolute; left: -9999px; }
.tt-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: .5rem 0 0; }
.tt-form__hint { font-size: .9375rem; color: var(--wp--preset--color--muted, #5d5a63); }
.tt-form__notice { margin: 0 0 1rem; padding: .9rem 1rem; border-radius: 8px; }
.tt-form__notice--ok { background: #fbe6d4; }
.tt-form__notice--error { background: #fde8e6; }

.tt-editor-empty { padding: 1rem; border: 1px dashed #8a8690; border-radius: 8px; color: #5d5a63; }
.tt-map__inset-frame { fill: none; stroke: var(--wp--preset--color--ink, #1f1d24); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.tt-map__inset-name { fill: var(--wp--preset--color--ink, #1f1d24); font-family: var(--wp--preset--font-family--sans, sans-serif); font-weight: 600; }
.tt-map__away { fill: var(--wp--preset--color--violet, #4b3f8c); font-family: var(--wp--preset--font-family--sans, sans-serif); font-weight: 600; font-style: italic; stroke: #fbfaf7; paint-order: stroke; stroke-linejoin: round; }
.tt-map__note { margin: .5rem 0 0; font-size: .875rem; color: var(--wp--preset--color--muted, #5d5a63); }
