/*
 * Catalog pages (template-parts/catalog.php): a quiet hero, a sticky row of duration
 * filters over a grid of tour cards, then the supporting blocks.
 *
 * Colours are written out per rule rather than shared through variables, as everywhere
 * else in this theme. Navy #0e1620, gold #c8a44a / #a8862e / #e0c475, teal #1a6e8a /
 * #145670, cream #f8f5ee, ink #1b1b1b, soft ink #5a5448, line #e6e0d5.
 */

.tgc { background: #fff; color: #1b1b1b; }
.tgc-wrap { width: min(100% - 48px, 1200px); margin-inline: auto; }
.tgc .tgc-ico { flex: none; width: 16px; height: 16px; }
/* theme.css gives .tgt-icon a bottom margin for its own layouts, which lifts the glyph off
   centre inside the round frames used here. */
.tgc .tgt-icon { display: block; margin: 0; }
.tgc-title, .tgc-hero__title, .tgc-card__title, .tgc-choose__when { text-wrap: balance; }

/* ---------------------------------------------------------------- Headings */

.tgc-head { max-width: 720px; margin: 0 auto 36px; text-align: center; }
.tgc-head--left { margin-left: 0; text-align: left; }
.tgc-kicker {
	display: inline-flex; align-items: center; gap: 12px; margin: 0 0 12px;
	font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 12px; font-weight: 700;
	line-height: 1.2; letter-spacing: .22em; text-transform: uppercase; color: #a8862e;
}
.tgc-kicker::before { content: ''; width: 28px; height: 1px; background: currentColor; opacity: .55; }
.tgc-head--mid .tgc-kicker::after { content: ''; width: 28px; height: 1px; background: currentColor; opacity: .55; }
.tgc-title {
	margin: 0; font-family: Georgia, 'Times New Roman', serif; font-weight: 400;
	font-size: clamp(30px, 1.6vw + 20px, 44px); line-height: 1.15; letter-spacing: -.01em; color: #0e1620;
}
.tgc-title em { font-style: italic; color: #a8862e; }
.tgc-lead { margin: 14px 0 0; font-size: 17px; line-height: 1.7; color: #5a5448; }
.tgc-lead a { color: #1a6e8a; text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------------- Hero */

.tgc-hero {
	position: relative; isolation: isolate; padding: 64px 24px 68px; text-align: center; color: #fff;
	background-color: #0e1620; background-size: cover; background-position: center 62%;
}
.tgc-hero::before {
	content: ''; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(14, 22, 32, .84) 0%, rgba(14, 22, 32, .72) 50%, rgba(14, 22, 32, .9) 100%);
}
.tgc-hero__inner { max-width: 860px; margin: 0 auto; }
/* A grid column never grows to fit a line that cannot wrap (the one-line breadcrumb on phones). */
.tgc-hero__copy { min-width: 0; }
.tgc-hero .tgt-crumbs { display: flex; justify-content: center; margin: 0 0 24px; font-size: 13px; color: rgba(255, 255, 255, .55); }
.tgc-hero .tgt-crumbs ol { justify-content: center; }
.tgc-hero .tgt-crumbs a { color: rgba(255, 255, 255, .7); }
.tgc-hero .tgt-crumbs a:hover { color: #e0c475; text-decoration: none; }
.tgc-hero .tgt-crumbs li + li::before { color: rgba(255, 255, 255, .35); }
.tgc-kicker--light { color: #e0c475; }
.tgc-kicker--light::after { content: ''; width: 28px; height: 1px; background: currentColor; opacity: .55; }
.tgc-hero__title {
	margin: 0; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; color: #fff;
	font-size: clamp(38px, 3vw + 18px, 62px); line-height: 1.08; letter-spacing: -.015em;
}
.tgc-hero__title em { display: block; font-style: italic; color: #e0c475; }
.tgc-hero__lead { max-width: 640px; margin: 24px auto 0; font-size: 18px; line-height: 1.65; color: rgba(255, 255, 255, .84); }
.tgc-hero__trust {
	list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 26px;
	margin: 30px 0 0; padding: 0; font-size: 13.5px; color: rgba(255, 255, 255, .72);
}
.tgc-hero__trust li { display: inline-flex; align-items: center; gap: 8px; }
.tgc-hero__trust .tgc-ico { color: #e0c475; }

/* ---------------------------------------------------------------- Filter row */

.tgc-catalog { position: relative; scroll-margin-top: 62px; }
.tgc-filter {
	position: sticky; top: 62px; z-index: 40; background: #fff; border-bottom: 1px solid #ece6da;
	transition: box-shadow .25s ease;
}
body.admin-bar .tgc-filter { top: 94px; }
.tgc-filter.is-stuck { box-shadow: 0 10px 28px rgba(14, 22, 32, .08); }
.tgc-filter__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; }
/* The row scrolls sideways on a phone, and a scrolling box clips its children's shadows;
   the padding gives the active pill's shadow room, the negative margin keeps the alignment. */
.tgc-filter__pills { display: flex; gap: 10px; overflow-x: auto; margin: 0 -14px; padding: 10px 14px 14px; scrollbar-width: none; }
.tgc-filter__pills::-webkit-scrollbar { display: none; }
.tgc-pill {
	appearance: none; flex: none; border: 0; border-radius: 999px; padding: 11px 21px; cursor: pointer;
	background: #f3ece0; color: #3a3a3a; white-space: nowrap;
	font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 14px; font-weight: 700; line-height: 1;
	transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.tgc-pill:hover { background: #ebe0cc; }
.tgc-pill[aria-pressed="true"] { background: #0e1620; color: #fff; box-shadow: 0 6px 16px rgba(14, 22, 32, .2); }
.tgc-filter__count { margin: 0; font-size: 14px; color: #8a8375; white-space: nowrap; }

/* ---------------------------------------------------------------- Grid */

.tgc-catalog__body { background: #f8f5ee; padding: 44px 0 64px; }
.tgc-catalog .tgc-head { margin-bottom: 32px; }
.tgc-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }

.tgc-card {
	display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: 18px;
	box-shadow: 0 1px 2px rgba(14, 22, 32, .04), 0 12px 32px rgba(14, 22, 32, .07);
	transition: transform .3s ease, box-shadow .3s ease;
}
.tgc-card[hidden] { display: none; }
.tgc-card:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(14, 22, 32, .05), 0 22px 44px rgba(14, 22, 32, .13); }
.tgc-card__media { position: relative; display: block; aspect-ratio: 5 / 3; overflow: hidden; background: #e8e1d2; }
.tgc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.tgc-card:hover .tgc-card__media img { transform: scale(1.045); }

.tgc-badge {
	position: absolute; top: 14px; left: 14px; display: inline-flex; align-items: center; gap: 5px;
	padding: 6px 12px; border-radius: 999px; border: 1px solid transparent; background: rgba(255, 255, 255, .95);
	font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 12px; font-weight: 700; line-height: 1.1;
}
.tgc-badge--relaxed { color: #145670; border-color: rgba(26, 110, 138, .35); }
.tgc-badge--moderate { color: #8a6c1f; border-color: rgba(200, 164, 74, .6); }
.tgc-badge--fast { color: #a4472a; border-color: rgba(180, 88, 56, .4); }
.tgc-badge--star { left: auto; right: 14px; background: #0e1620; color: #e0c475; }
.tgc-badge--star .tgc-ico { width: 13px; height: 13px; fill: currentColor; stroke: none; }
.tgc-badge--inline { position: static; background: transparent; }

.tgc-card__body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 22px; }
.tgc-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 0 0 12px; font-size: 13px; color: #6b6558; }
.tgc-card__meta > span { display: inline-flex; align-items: center; gap: 6px; }
.tgc-card__meta .tgc-ico { color: #c8a44a; }
.tgc-card__aside { margin-left: auto; color: #1b1b1b; font-weight: 700; }
.tgc-card__title { margin: 0 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; line-height: 1.3; color: #0e1620; }
.tgc-card__title a { color: inherit; transition: color .2s ease; }
.tgc-card__title a:hover { color: #1a6e8a; }
.tgc-card__text { margin: 0 0 18px; font-size: 15px; line-height: 1.65; color: #5a5448; }

.tgc-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: auto 0 0; padding: 0; }
.tgc-chip {
	padding: 6px 12px; border: 1px solid #eadcb8; border-radius: 999px; background: #fdfaf3;
	font-size: 12.5px; line-height: 1.25; color: #6e5a2a;
}
.tgc-chip--link { padding: 0; border-color: #e0c98f; background: #fff; }
.tgc-chip--link a { display: inline-flex; align-items: center; gap: 3px; padding: 6px 10px 6px 12px; color: #a8862e; font-weight: 700; border-radius: 999px; transition: background .2s ease; }
.tgc-chip--link a:hover { background: #f6ecd4; }
.tgc-chip--link .tgc-ico { width: 14px; height: 14px; }

.tgc-card__wa {
	display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 18px; padding: 15px 18px;
	border-radius: 12px; background: #0e1620; color: #fff; font-size: 15px; font-weight: 700;
	transition: background .2s ease;
}
.tgc-card__wa:hover { background: #145670; color: #fff; }
.tgc-card__wa > svg:first-child { width: 19px; height: 19px; fill: currentColor; }

.tgc-empty { margin: 40px 0 0; text-align: center; color: #5a5448; }
.tgc-empty[hidden] { display: none; }
.tgc-empty a, .tgc-note a { color: #1a6e8a; text-decoration: underline; text-underline-offset: 3px; }
.tgc-note { max-width: 640px; margin: 32px auto 0; text-align: center; font-size: 14.5px; line-height: 1.7; color: #6b6558; }

/* ---------------------------------------------------------------- Bands */

.tgc-band { padding: 64px 0; }
.tgc-band--white { background: #fff; }
.tgc-band--cream { background: #f8f5ee; }
.tgc-band--navy { background: #0e1620; color: #fff; }
.tgc-band--navy .tgc-kicker { color: #e0c475; }
.tgc-band--navy .tgc-title { color: #fff; }
.tgc-band--navy .tgc-title em { color: #e0c475; }
.tgc-band--navy .tgc-lead { color: rgba(255, 255, 255, .72); }

.tgc-textlink { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #1a6e8a; transition: color .2s ease; }
.tgc-textlink .tgc-ico { transition: transform .25s ease; }
.tgc-textlink:hover { color: #145670; }
.tgc-textlink:hover .tgc-ico { transform: translateX(4px); }

/* Answer: copy beside four fact tiles */
.tgc-answer { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 56px; align-items: center; }
.tgc-answer .tgc-head { margin-bottom: 20px; }
.tgc-more > summary { list-style: none; display: inline-flex; align-items: center; gap: 12px; cursor: pointer; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #1a6e8a; }
.tgc-more > summary::-webkit-details-marker { display: none; }
.tgc-more__shut, .tgc-more[open] .tgc-more__open { display: none; }
.tgc-more[open] .tgc-more__shut { display: inline; }
.tgc-more__mark { position: relative; width: 26px; height: 26px; border: 1px solid rgba(26, 110, 138, .4); border-radius: 50%; }
.tgc-more__mark::before, .tgc-more__mark::after { content: ''; position: absolute; top: 50%; left: 50%; width: 10px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .25s ease; }
.tgc-more__mark::after { transform: translate(-50%, -50%) rotate(90deg); }
.tgc-more[open] .tgc-more__mark::after { transform: translate(-50%, -50%) rotate(0); }
.tgc-more__body { margin-top: 22px; }
.tgc-more__body p { margin: 0 0 14px; font-size: 16px; line-height: 1.75; color: #3a3a3a; }
.tgc-facts { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
.tgc-fact { display: flex; flex-direction: column; gap: 4px; padding: 22px; border: 1px solid #eee7da; border-radius: 18px; background: #f8f5ee; }
.tgc-fact__icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 12px; border: 1px solid rgba(200, 164, 74, .5); border-radius: 50%; background: #fff; color: #a8862e; }
.tgc-fact__icon svg { width: 24px; height: 24px; }
.tgc-fact strong { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: #0e1620; }
.tgc-fact span { font-size: 14px; color: #6b6558; }

/* Choose: four numbered cards */
.tgc-choose { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
.tgc-choose__item { display: flex; flex-direction: column; padding: 30px 32px 28px; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.tgc-choose__item:hover { border-color: rgba(200, 164, 74, .65); box-shadow: 0 16px 36px rgba(14, 22, 32, .07); transform: translateY(-3px); }
.tgc-choose__no { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 16px; color: #a8862e; }
.tgc-choose__no::after { content: ''; width: 36px; height: 1px; background: #d8c79a; }
.tgc-choose__when { margin: 0 0 12px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; line-height: 1.35; color: #0e1620; }
.tgc-choose__then { flex: 1; margin: 0 0 18px; font-size: 15.5px; line-height: 1.7; color: #5a5448; }
.tgc-choose__then a { color: #1a6e8a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc-choose__then a:hover { color: #145670; }

/* Table */
.tgc-tablewrap { overflow: hidden; border: 1px solid #ebe4d6; border-radius: 18px; background: #fff; box-shadow: 0 12px 32px rgba(14, 22, 32, .05); }
.tgc-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.tgc-table thead th { padding: 18px 22px; border-bottom: 1px solid #ebe4d6; background: #f8f5ee; text-align: left; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8a8375; }
.tgc-table tbody th, .tgc-table tbody td { padding: 17px 22px; border-bottom: 1px solid #f0eadf; text-align: left; vertical-align: middle; color: #3a3a3a; }
.tgc-table tbody tr:last-child > * { border-bottom: 0; }
.tgc-table tbody tr { transition: background .2s ease; }
.tgc-table tbody tr:hover { background: #fcfaf6; }
.tgc-table tbody th { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; font-weight: 400; color: #0e1620; }
.tgc-table tbody th a { color: #0e1620; }
.tgc-table tbody th a:hover { color: #1a6e8a; }
.tgc-tag { display: inline-flex; padding: 5px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 700; line-height: 1.2; }
.tgc-tag--yes { background: #e8f2f5; color: #145670; }
.tgc-tag--no { background: #f1eee8; color: #8a8375; }

/* Pricing */
.tgc-pricing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1000px; margin: 0 auto; }
.tgc-pricing__col { padding: 30px 32px 26px; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; }
.tgc-pricing__col--included { border-top: 3px solid #c8a44a; }
.tgc-pricing__col--excluded { background: #fbf9f5; }
.tgc-pricing__col h3 { margin: 0 0 18px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; color: #0e1620; }
.tgc-pricing__col ul { list-style: none; margin: 0; padding: 0; }
.tgc-pricing__col li { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px dashed #e8e0d0; font-size: 15.5px; line-height: 1.5; color: #3a3a3a; }
.tgc-pricing__col li:last-child { border-bottom: 0; }
.tgc-pricing__col li .tgc-ico { width: 22px; height: 22px; margin-top: -1px; padding: 4px; border-radius: 50%; }
.tgc-pricing__col--included li .tgc-ico { background: #f6ecd4; color: #a8862e; }
.tgc-pricing__col--excluded li .tgc-ico { background: #efebe3; color: #9a9385; }
.tgc-banner { display: flex; align-items: center; gap: 16px; max-width: 1000px; margin: 20px auto 0; padding: 18px 24px; border-radius: 16px; background: #0e1620; color: rgba(255, 255, 255, .86); font-size: 15px; line-height: 1.6; }
.tgc-banner__icon { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(224, 196, 117, .45); border-radius: 50%; color: #e0c475; }
.tgc-banner__icon svg { width: 22px; height: 22px; }

/* Places: photograph beside the paragraph */
.tgc-places { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
.tgc-place { display: grid; grid-template-columns: 42% minmax(0, 1fr); overflow: hidden; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; transition: box-shadow .3s ease, transform .3s ease; }
.tgc-place:hover { box-shadow: 0 18px 40px rgba(14, 22, 32, .1); transform: translateY(-3px); }
.tgc-place__img { position: relative; display: block; min-height: 250px; overflow: hidden; background: #e8e1d2; }
.tgc-place__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.tgc-place:hover .tgc-place__img img { transform: scale(1.05); }
.tgc-place__body { display: flex; flex-direction: column; padding: 26px 26px 24px; }
.tgc-place__meta { margin: 0 0 8px; font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #a8862e; }
.tgc-place__name { margin: 0 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 24px; font-weight: 400; color: #0e1620; }
.tgc-place__text { flex: 1; margin: 0 0 18px; font-size: 15px; line-height: 1.7; color: #5a5448; }

/* Reasons: editorial columns on navy */
.tgc-reasons { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, .12); }
.tgc-reason { padding: 32px 28px 4px; border-left: 1px solid rgba(255, 255, 255, .12); }
.tgc-reason:first-child { padding-left: 0; border-left: 0; }
.tgc-reason__icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 18px; border: 1px solid rgba(224, 196, 117, .45); border-radius: 50%; color: #e0c475; }
.tgc-reason__icon svg { width: 26px; height: 26px; }
.tgc-reason__title { margin: 0 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; line-height: 1.3; color: #fff; }
.tgc-reason__text { margin: 0; font-size: 15px; line-height: 1.75; color: rgba(255, 255, 255, .7); }
.tgc-reason__text a { color: #e0c475; }

/* Steps: numbered circles on a dotted line */
.tgc-steps { position: relative; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin: 0; padding: 0; }
.tgc-steps::before { content: ''; position: absolute; top: 29px; left: 12.5%; right: 12.5%; height: 1px; background: repeating-linear-gradient(90deg, #d4c291 0 6px, transparent 6px 12px); }
.tgc-step { position: relative; text-align: center; }
.tgc-step__no { position: relative; z-index: 1; display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 18px; border: 1px solid #c8a44a; border-radius: 50%; background: #fff; box-shadow: 0 0 0 10px #fff; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 20px; color: #a8862e; }
.tgc-band--cream .tgc-step__no { box-shadow: 0 0 0 10px #f8f5ee; }
.tgc-step__title { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 400; color: #0e1620; }
.tgc-step__text { max-width: 250px; margin: 0 auto; font-size: 15px; line-height: 1.65; color: #5a5448; }

/* Practical notes */
.tgc-prose { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1040px; margin: 0 auto; }
.tgc-prose__part { padding: 30px 32px; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; }
.tgc-band--white .tgc-prose__part { border-color: #efe8db; background: #f8f5ee; }
.tgc-prose__icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 14px; border: 1px solid rgba(200, 164, 74, .5); border-radius: 50%; background: #fff; color: #a8862e; }
.tgc-prose__icon .tgc-ico { width: 22px; height: 22px; }
.tgc-prose__part h3 { margin: 0 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; color: #0e1620; }
.tgc-prose__part p { margin: 0; font-size: 15.5px; line-height: 1.75; color: #5a5448; }

/* FAQ: heading held beside the questions */
.tgc-faq { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 64px; align-items: start; }
.tgc-faq__side { position: sticky; top: 150px; }
.tgc-faq__side .tgc-head { margin-bottom: 0; }
.tgc-faq__ask { display: flex; align-items: center; gap: 14px; margin-top: 24px; padding: 18px 20px; border-radius: 16px; background: #0e1620; color: #fff; transition: background .2s ease; }
.tgc-faq__ask:hover { background: #145670; color: #fff; }
.tgc-faq__ask > svg { flex: none; width: 30px; height: 30px; fill: #25d366; }
.tgc-faq__ask strong { display: block; margin-bottom: 2px; font-family: Georgia, 'Times New Roman', serif; font-size: 17px; font-weight: 400; }
.tgc-faq__ask span { font-size: 13.5px; line-height: 1.5; color: rgba(255, 255, 255, .72); }
.tgc-faq__list { border-top: 1px solid #e3dccd; }
.tgc-faq__item { border-bottom: 1px solid #e3dccd; }
.tgc-faq__q { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 0; cursor: pointer; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.4; color: #0e1620; transition: color .2s ease; }
.tgc-faq__q::-webkit-details-marker { display: none; }
.tgc-faq__q:hover { color: #1a6e8a; }
.tgc-faq__mark { position: relative; flex: none; width: 36px; height: 36px; border: 1px solid #d9cfb9; border-radius: 50%; color: #a8862e; transition: background .25s ease, border-color .25s ease, color .25s ease; }
.tgc-faq__mark::before, .tgc-faq__mark::after { content: ''; position: absolute; top: 50%; left: 50%; width: 13px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .25s ease; }
.tgc-faq__mark::after { transform: translate(-50%, -50%) rotate(90deg); }
.tgc-faq__item[open] .tgc-faq__mark { background: #0e1620; border-color: #0e1620; color: #fff; }
.tgc-faq__item[open] .tgc-faq__mark::after { transform: translate(-50%, -50%) rotate(0); }
.tgc-faq__a p { margin: 0 0 22px; padding-right: 60px; font-size: 16px; line-height: 1.75; color: #5a5448; }
.tgc-faq__a a { color: #1a6e8a; text-decoration: underline; text-underline-offset: 3px; }

/* Links onward */
.tgc-links { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin: 0; padding: 0; }
.tgc-links--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tgc-links--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tgc-links--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tgc-link { display: flex; flex-direction: column; height: 100%; padding: 22px 22px 20px; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; color: inherit; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.tgc-band--white .tgc-link { border-color: #efe8db; background: #f8f5ee; }
.tgc-link strong { margin-bottom: 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: #0e1620; }
.tgc-link > span:not(.tgc-link__arrow) { flex: 1; font-size: 14px; line-height: 1.6; color: #6b6558; }
.tgc-link__arrow { display: grid; place-items: center; width: 38px; height: 38px; margin-top: 16px; border: 1px solid #e3d8bf; border-radius: 50%; color: #a8862e; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.tgc-link:hover { border-color: #c8a44a; transform: translateY(-3px); box-shadow: 0 14px 30px rgba(14, 22, 32, .07); }
.tgc-link:hover .tgc-link__arrow { border-color: #0e1620; background: #0e1620; color: #fff; }

/* Closing call to action */
.tgc-band--cta { text-align: center; }
.tgc-band--cta .tgc-head { margin-bottom: 28px; }
.tgc-band--cta .tgc-head::before { content: ''; display: block; width: 10px; height: 10px; margin: 0 auto 18px; background: #c8a44a; transform: rotate(45deg); box-shadow: 0 0 0 5px rgba(200, 164, 74, .2); }
.tgc-cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
.tgc-btn { display: inline-flex; align-items: center; gap: 10px; padding: 16px 30px; border-radius: 999px; font-size: 15px; font-weight: 700; line-height: 1; transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.tgc-btn--wa { background: #25d366; color: #fff; box-shadow: 0 12px 26px rgba(37, 211, 102, .28); }
.tgc-btn--wa:hover { background: #1ebe5b; color: #fff; transform: translateY(-2px); }
.tgc-btn--wa > svg { width: 20px; height: 20px; fill: currentColor; }
.tgc-btn--line { border: 1.5px solid #0e1620; background: transparent; color: #0e1620; }
.tgc-btn--line:hover { background: #0e1620; color: #fff; transform: translateY(-2px); }
.tgc-micro { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 26px; margin: 22px 0 0; padding: 0; font-size: 14px; color: #6b6558; }
.tgc-micro li { display: inline-flex; align-items: center; gap: 7px; }
.tgc-micro .tgc-ico { color: #a8862e; }

/* Hero button, for pages whose hero points down to the tours */
.tgc-hero__act { margin: 30px 0 0; }
.tgc-btn--gold { background: #c8a44a; color: #0e1620; box-shadow: 0 12px 26px rgba(200, 164, 74, .25); }
.tgc-btn--gold:hover { background: #e0c475; color: #0e1620; transform: translateY(-2px); }

/* Tours kept as the pillar's carousel ("layout": "carousel"); its cards come from pillar.css */
.tgc-carousel { background: transparent; }
.tgc-carousel .tgt-car { margin-top: 0; }

/* Photo gallery (template-parts/carousel-photos.php) */
.tgc-gallery .tgt-car__slide img { border-radius: 16px; }

/* Reviews */
.tgc-reviews { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
.tgc-review { position: relative; display: flex; flex-direction: column; padding: 30px 28px 24px; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; }
.tgc-band--white .tgc-review { border-color: #efe8db; background: #f8f5ee; }
.tgc-review::before { content: '\201C'; position: absolute; top: 10px; right: 22px; font-family: Georgia, 'Times New Roman', serif; font-size: 72px; line-height: 1; color: rgba(200, 164, 74, .28); }
.tgc-review__stars { margin: 0 0 14px; font-size: 15px; letter-spacing: .12em; color: #c8a44a; }
.tgc-review__text { flex: 1; margin: 0 0 20px; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 17px; line-height: 1.6; color: #0e1620; }
.tgc-review__by { display: flex; align-items: center; gap: 12px; margin: 0; padding-top: 16px; border-top: 1px solid #ece5d6; font-size: 14px; }
.tgc-review__by > span:last-child { display: flex; flex-direction: column; }
.tgc-review__by strong { color: #0e1620; }
.tgc-review__by > span:last-child > span { font-size: 13px; color: #8a8375; }
.tgc-review__initial { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 50%; background: #0e1620; color: #e0c475; font-family: Georgia, 'Times New Roman', serif; font-size: 16px; }
.tgc-review__photo { flex: none; width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
/* Google reviews can run long; the full text is one click away on Google. */
.tgc-review__text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7; overflow: hidden; }
.tgc-reviews__source { margin: 26px 0 0; text-align: center; font-size: 14.5px; }
.tgc-reviews__source a { display: inline-flex; align-items: center; gap: 8px; color: #1a6e8a; font-weight: 700; }
.tgc-reviews__source a:hover { color: #145670; }

/* A region with no photograph is text only */
.tgc-place--text { grid-template-columns: 1fr; border-top: 3px solid #c8a44a; }

/* ---------------------------------------------------------------- Single-tour pages */

/* Hero: the price, and a second, quieter button */
.tgc-hero__price { margin: 22px 0 0; font-size: 15px; letter-spacing: .02em; color: rgba(255, 255, 255, .78); }
.tgc-hero__price strong { margin: 0 4px; font-family: Georgia, 'Times New Roman', serif; font-size: 30px; font-weight: 400; color: #fff; }
.tgc-hero__act { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.tgc-hero__price + .tgc-hero__act { margin-top: 18px; }
.tgc-btn--ghost { border: 1.5px solid rgba(255, 255, 255, .55); background: transparent; color: #fff; }
.tgc-btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .1); color: #fff; transform: translateY(-2px); }
.tgc-btn--ghost > svg { width: 18px; height: 18px; fill: currentColor; }

/* Answer with no facts panel: one centred column */
.tgc-answer--solo { grid-template-columns: minmax(0, 1fr); max-width: 820px; margin: 0 auto; }
.tgc-answer--solo .tgc-head { margin-bottom: 24px; }
.tgc-answer__text p { margin: 0 0 16px; font-size: 17px; line-height: 1.8; color: #3a3a3a; }
.tgc-answer__text p:first-child { font-size: 19px; line-height: 1.7; color: #0e1620; }
.tgc-answer__text p:last-child { margin-bottom: 0; }
.tgc-answer__text a { color: #1a6e8a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc-answer__text a:hover { color: #145670; }

/* Facts strip under the hero */
.tgc-band--facts { padding: 26px 0; border-bottom: 1px solid #ece6da; }
.tgc-strip { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 18px 24px; margin: 0; padding: 0; }
.tgc-strip__item { display: flex; align-items: center; gap: 12px; }
.tgc-strip__icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border: 1px solid rgba(200, 164, 74, .5); border-radius: 50%; background: #f8f5ee; color: #a8862e; }
.tgc-strip__icon .tgc-ico { width: 20px; height: 20px; }
.tgc-strip__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; overflow-wrap: break-word; }
.tgc-strip__text strong { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; font-weight: 400; color: #0e1620; }
.tgc-strip__text span { font-size: 12.5px; color: #8a8375; }
/* Labels wrap when a cell is narrow (five items on a tablet); kept on one line they spilled
   into the next cell and pushed the page sideways. */
.tgc-strip__text strong, .tgc-strip__text span { text-wrap: balance; }

/* Dishes: photograph cards, then short notes */
/* Flex rather than grid so a short last row sits centred (five dishes read as 3 + 2). */
.tgc-dishes { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; margin: 0; padding: 0; }
.tgc-dish { flex: 0 1 calc((100% - 48px) / 3); overflow: hidden; border: 1px solid #ece5d6; border-radius: 18px; background: #fff; transition: transform .3s ease, box-shadow .3s ease; }
.tgc-band--cream .tgc-dish { border-color: #ece5d6; }
.tgc-dish:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(14, 22, 32, .09); }
.tgc-dish__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #e8e1d2; }
.tgc-dish__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.tgc-dish:hover .tgc-dish__img img { transform: scale(1.045); }
.tgc-dish__body { padding: 20px 22px 22px; }
.tgc-dish__tag { margin: 0 0 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #a8862e; }
.tgc-dish__name { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; color: #0e1620; }
.tgc-dish__text { margin: 0; font-size: 15px; line-height: 1.65; color: #5a5448; }
.tgc-dishes__more { display: flex; align-items: center; gap: 14px; margin: 40px 0 18px; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #a8862e; }
.tgc-dishes__more::after { content: ''; flex: 1; height: 1px; background: #e6dcc6; }
.tgc-minis { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin: 0; padding: 0; }
.tgc-mini { padding: 20px 20px 18px; border: 1px solid #efe8db; border-radius: 16px; background: #f8f5ee; }
.tgc-band--cream .tgc-mini { border-color: #ece5d6; background: #fff; }
.tgc-mini .tgc-ico { width: 20px; height: 20px; margin-bottom: 10px; color: #a8862e; }
.tgc-mini__name { margin: 0 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 18px; font-weight: 400; color: #0e1620; }
.tgc-mini__text { margin: 0; font-size: 14px; line-height: 1.6; color: #6b6558; }

/* Route: numbered stops on a rail */
.tgc-route { position: relative; list-style: none; max-width: 1000px; margin: 0 auto; padding: 0; }
.tgc-route::before { content: ''; position: absolute; top: 28px; bottom: 28px; left: 27px; width: 1px; background: repeating-linear-gradient(180deg, #d4c291 0 6px, transparent 6px 12px); }
.tgc-stop { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr) 300px; gap: 28px; align-items: center; padding: 0 0 28px; }
.tgc-stop:last-child { padding-bottom: 0; }
.tgc-stop--text { grid-template-columns: 56px minmax(0, 1fr); }
.tgc-stop__no { position: relative; z-index: 1; display: grid; place-items: center; align-self: start; width: 56px; height: 56px; border: 1px solid #c8a44a; border-radius: 50%; background: #fff; box-shadow: 0 0 0 8px #fff; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 19px; color: #a8862e; }
.tgc-band--cream .tgc-stop__no { box-shadow: 0 0 0 8px #f8f5ee; }
.tgc-stop__body { padding: 6px 0; }
.tgc-stop__place { margin: 0 0 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #a8862e; }
.tgc-stop__title { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 23px; font-weight: 400; color: #0e1620; }
.tgc-stop__text { margin: 0; font-size: 15.5px; line-height: 1.7; color: #5a5448; }
.tgc-stop__img { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 16px; background: #e8e1d2; }
.tgc-stop__img img { width: 100%; height: 100%; object-fit: cover; }

/* Booking: a summary of what the price buys beside the form */
.tgc-booking { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 28px; align-items: start; max-width: 1080px; margin: 0 auto; }
.tgc-booking__summary { position: sticky; top: 90px; padding: 32px 30px 28px; border-radius: 20px; background: #0e1620; color: rgba(255, 255, 255, .86); }
.tgc-booking__price { margin: 0 0 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255, 255, 255, .12); font-size: 15px; color: rgba(255, 255, 255, .7); }
.tgc-booking__price strong { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: 44px; font-weight: 400; line-height: 1.1; color: #fff; }
.tgc-booking__list { list-style: none; margin: 0 0 24px; padding: 0; }
.tgc-booking__list li { display: flex; gap: 10px; padding: 7px 0; font-size: 15px; line-height: 1.5; }
.tgc-booking__list .tgc-ico { margin-top: 3px; color: #e0c475; }
.tgc-booking__wa { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 18px; border-radius: 999px; background: #25d366; color: #fff; font-size: 15px; font-weight: 700; transition: background .2s ease; }
.tgc-booking__wa:hover { background: #1ebe5b; color: #fff; }
.tgc-booking__wa > svg { width: 19px; height: 19px; fill: currentColor; }
.tgc-micro--left { justify-content: flex-start; flex-direction: column; gap: 8px; margin-top: 20px; color: rgba(255, 255, 255, .72); }
.tgc-micro--left .tgc-ico { color: #e0c475; }
.tgc-booking__form .tgt-form {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; max-width: none;
	padding: 32px 32px 26px; border: 1px solid #ece5d6; border-radius: 20px; background: #fff;
	box-shadow: 0 12px 32px rgba(14, 22, 32, .06);
}
.tgc-booking__form .tgt-form > * { grid-column: 1 / -1; }
.tgc-booking__form .tgt-form__row { grid-column: auto; margin-bottom: 16px; }
.tgc-booking__form .tgt-form__row--wide { grid-column: 1 / -1; }
.tgc-booking__form .tgt-form__row label { font-size: 13px; letter-spacing: .02em; color: #3a3a3a; }
.tgc-booking__form .tgt-form input, .tgc-booking__form .tgt-form select, .tgc-booking__form .tgt-form textarea { border-color: #e3dccd; border-radius: 12px; background: #fbfaf7; }
.tgc-booking__form .tgt-form__actions { margin: 6px 0 10px; }
.tgc-booking__form .tgt-form__send {
	width: 100%; min-width: 0; padding: 17px 24px; border: 0; border-radius: 999px; background: #c8a44a; color: #0e1620;
	font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 16px; font-weight: 700; letter-spacing: normal; text-transform: none;
	box-shadow: 0 12px 26px rgba(200, 164, 74, .25); cursor: pointer; transition: background .2s ease, transform .2s ease;
}
.tgc-booking__form .tgt-form__send:hover { background: #e0c475; transform: translateY(-2px); }
.tgc-booking__form .tgt-form__promise { font-size: 13px; color: #8a8375; }

/* The booking bar on phones and tablets */
.tgc-sticky { display: none; }

/* ---------------------------------------------------------------- Smaller screens */

@media (max-width: 1024px) {
	.tgc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
	.tgc-answer { grid-template-columns: 1fr; gap: 32px; }
	.tgc-places { grid-template-columns: 1fr; }
	.tgc-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-links--4, .tgc-links--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tgc-dish { flex-basis: calc((100% - 24px) / 2); }
	.tgc-stop { grid-template-columns: 56px minmax(0, 1fr) 220px; gap: 22px; }
	.tgc-booking { grid-template-columns: 1fr; }
	.tgc-booking__summary { position: static; }

	.tgc-sticky {
		position: fixed; right: 0; bottom: 0; left: 0; z-index: 60;
		display: flex; align-items: center; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		background: rgba(14, 22, 32, .96); box-shadow: 0 -8px 24px rgba(14, 22, 32, .18);
		transform: translateY(110%); transition: transform .3s ease;
	}
	.tgc-sticky.is-on { transform: translateY(0); }
	.tgc-sticky__price { flex: 1; margin: 0; font-size: 12.5px; line-height: 1.2; color: rgba(255, 255, 255, .7); }
	.tgc-sticky__price strong { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; color: #fff; }
	.tgc-sticky__cta { padding: 13px 22px; box-shadow: none; }
	.tgc-sticky__wa { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 50%; background: #25d366; color: #fff; }
	.tgc-sticky__wa > svg { width: 22px; height: 22px; fill: currentColor; }
	/* The bar carries its own WhatsApp button; the site's floating one would sit on top of it. */
	body:has(.tgc-sticky) { padding-bottom: 68px; }
	.tgc-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-reason, .tgc-reason:first-child { padding: 28px 24px 16px 0; border-left: 0; }
	.tgc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
	.tgc-steps::before { display: none; }
	.tgc-faq { grid-template-columns: 1fr; gap: 28px; }
	.tgc-faq__side { position: static; }
}

@media (max-width: 760px) {
	.tgc-band { padding: 48px 0; }
	.tgc-head { margin-bottom: 28px; }
	.tgc-hero { padding: 64px 20px 60px; }
	.tgc-hero__lead { font-size: 16.5px; }
	.tgc-filter__inner { min-height: 62px; }
	.tgc-filter__count { display: none; }
	.tgc-catalog__body { padding: 32px 0 48px; }
	.tgc-grid { grid-template-columns: 1fr; }
	.tgc-choose, .tgc-pricing, .tgc-prose { grid-template-columns: 1fr; }
	.tgc-choose__item, .tgc-pricing__col, .tgc-prose__part { padding: 24px 22px; }
	.tgc-place { grid-template-columns: 1fr; }
	.tgc-place__img { min-height: 200px; }
	.tgc-place__body { padding: 22px; }
	.tgc-reasons { grid-template-columns: 1fr; }
	.tgc-steps { grid-template-columns: 1fr; }
	.tgc-reviews { grid-template-columns: 1fr; }
	.tgc-links--3, .tgc-links--4, .tgc-links--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-dish { flex-basis: 100%; }
	.tgc-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 14px; }
	.tgc-strip__item { gap: 10px; }
	.tgc-strip__icon { width: 36px; height: 36px; }
	.tgc-strip__icon .tgc-ico { width: 17px; height: 17px; }
	.tgc-strip__text strong { font-size: 15.5px; }
	.tgc-strip__text span { font-size: 12px; }
	.tgc-stop, .tgc-stop--text { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; }
	.tgc-stop__no { width: 44px; height: 44px; font-size: 16px; }
	.tgc-route::before { left: 21px; }
	.tgc-stop__img { grid-column: 2; }
	.tgc-booking__form .tgt-form { grid-template-columns: 1fr; padding: 24px 20px 20px; }
	.tgc-booking__summary { padding: 26px 22px 22px; }
	.tgc-hero__price strong { font-size: 26px; }
	.tgc-faq__q { font-size: 17.5px; padding: 20px 0; }
	.tgc-faq__a p { padding-right: 0; }

	/* The table becomes one card per tour */
	.tgc-tablewrap { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
	.tgc-table thead { display: none; }
	.tgc-table, .tgc-table tbody, .tgc-table tr { display: block; width: 100%; }
	.tgc-table tr { margin-bottom: 14px; overflow: hidden; border: 1px solid #ebe4d6; border-radius: 16px; background: #fff; }
	.tgc-table tbody tr:hover { background: #fff; }
	.tgc-table tbody th { display: block; padding: 18px 20px; border-bottom: 1px solid #f0eadf; background: #f8f5ee; font-size: 18px; }
	.tgc-table tbody td { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 20px; text-align: right; }
	.tgc-table tbody tr > td:last-child { border-bottom: 0; }
	.tgc-table tbody tr:last-child > th { border-bottom: 1px solid #f0eadf; }
	.tgc-table tbody td::before { content: attr(data-label); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-align: left; color: #8a8375; }
}

@media (prefers-reduced-motion: reduce) {
	.tgc *, .tgc *::before, .tgc *::after { transition: none !important; }
}

/* ---------------------------------------------------------------- Ship finder hero
 * catalog-finder.php (shore excursions): the hero turns left-aligned over the photo, with a
 * rating badge and a wide white search bar (cruise line, ship, date in Tangier) the way the
 * cruise excursion sites guests know do it. The results open in a white card under the bar.
 */
.tgc-hero--finder { padding: 52px 24px 64px; text-align: left; background-position: center 58%; }
.tgc-hero--finder::before {
	background:
		linear-gradient(90deg, rgba(14, 22, 32, .92) 0%, rgba(14, 22, 32, .74) 46%, rgba(14, 22, 32, .38) 100%),
		linear-gradient(180deg, rgba(14, 22, 32, 0) 55%, rgba(14, 22, 32, .6) 100%);
}
.tgc-hero--finder .tgc-hero__inner { max-width: 1200px; }
.tgc-hero--finder .tgt-crumbs,
.tgc-hero--finder .tgt-crumbs ol { justify-content: flex-start; }
.tgc-hero--finder .tgc-kicker--light::after { display: none; }
.tgc-hero--finder .tgc-hero__title { max-width: 780px; font-size: clamp(36px, 2.4vw + 20px, 58px); }
.tgc-hero--finder .tgc-hero__lead { max-width: 620px; margin: 20px 0 0; }
.tgc-hero--finder .tgc-hero__trust { justify-content: flex-start; margin-top: 16px; }

.tgc-finder__rating {
	display: inline-flex; align-items: center; gap: 10px; margin: 26px 0 0; padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, .24); border-radius: 12px; background: rgba(14, 22, 32, .5);
	color: #fff; font-size: 14px; text-decoration: none; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	transition: border-color .2s ease;
}
.tgc-finder__rating:hover { border-color: #e0c475; color: #fff; text-decoration: none; }
.tgc-finder__rating strong { font-family: Georgia, 'Times New Roman', serif; font-size: 18px; font-weight: 400; }
.tgc-finder__stars { color: #e0c475; font-size: 15px; letter-spacing: 2px; }

.tgc-finder { margin: 18px 0 0; scroll-margin-top: 110px; }
.tgc-finder[hidden] { display: none; }
.tgc-finder__bar {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; padding: 8px;
	border-radius: 16px; background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
}
.tgc-finder__field { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-width: 0; padding: 8px 18px; }
.tgc-finder__field + .tgc-finder__field { border-left: 1px solid #ece5d6; }
.tgc-finder__label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #a8862e; }
.tgc-finder__field select,
.tgc-finder__field input {
	width: 100%; min-width: 0; margin: 0; padding: 3px 22px 3px 0; border: 0; border-radius: 0;
	background: transparent; font: inherit; font-size: 15.5px; color: #0e1620; text-overflow: ellipsis;
}
.tgc-finder__field select {
	-webkit-appearance: none; appearance: none; cursor: pointer;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8862e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center / 16px;
}
.tgc-finder__field select:disabled { color: #8a8375; cursor: not-allowed; opacity: .8; }
.tgc-finder__field select:focus-visible,
.tgc-finder__field input:focus-visible { outline: 2px solid #c8a44a; outline-offset: 4px; border-radius: 4px; }
.tgc-finder__go {
	display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 0 28px;
	border: 0; border-radius: 12px; background: linear-gradient(135deg, #e0c475 0%, #c8a44a 60%, #b8963b 100%);
	color: #0e1620; font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 15.5px; font-weight: 700;
	white-space: nowrap; cursor: pointer; transition: filter .2s ease;
}
.tgc-finder__go:hover { filter: brightness(1.06); }
.tgc-finder__go:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.tgc-finder__go--small { padding: 13px 24px; }

.tgc-finder__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 14px 0 0; font-size: 13.5px; color: rgba(255, 255, 255, .75); }
.tgc-finder__other-toggle {
	padding: 0; border: 0; background: none; color: #e0c475; font: inherit; font-weight: 700;
	text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.tgc-finder__other {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; max-width: 820px; margin-top: 12px; padding: 8px;
	border-radius: 16px; background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
}
.tgc-finder__other[hidden] { display: none; }

.tgc-finder__result {
	margin-top: 14px; padding: 22px 24px 24px; border-radius: 16px; background: #fff; color: #3a3a3a;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
}
.tgc-finder__result[hidden] { display: none; }
.tgc-finder__call { margin: 0; font-size: 15.5px; color: #0e1620; }
.tgc-finder__call strong { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 400; }
.tgc-finder__call span { color: #6b6558; }
.tgc-finder__plan { margin: 4px 0 16px; font-size: 14px; color: #6b6558; }
.tgc-finder__tours { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; margin: 0; padding: 0; }
.tgc-finder__tour { display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 10px; border: 1px solid #efe8db; border-radius: 12px; }
.tgc-finder__tour img,
.tgc-finder__noimg { flex: none; width: 64px; height: 64px; border-radius: 10px; object-fit: cover; background: #f3ece0; }
.tgc-finder__info { display: flex; flex: 1; flex-direction: column; gap: 1px; min-width: 0; }
.tgc-finder__info a { font-family: Georgia, 'Times New Roman', serif; font-size: 16.5px; color: #0e1620; text-decoration: none; }
.tgc-finder__info a:hover { color: #a8862e; }
.tgc-finder__info small { font-size: 12.5px; color: #8a8375; }
.tgc-finder__fit { font-size: 12.5px; font-style: normal; font-weight: 700; }
.tgc-finder__tour--fits .tgc-finder__fit { color: #1a6e8a; }
.tgc-finder__tour--tight .tgc-finder__fit { color: #a8862e; }
.tgc-finder__tour--ask .tgc-finder__fit { color: #6b6558; }
.tgc-finder__tour--no { opacity: .55; }
.tgc-finder__tour--no .tgc-finder__fit { color: #8a8375; }
.tgc-finder__req {
	flex: none; padding: 9px 16px; border: 1px solid #c8a44a; border-radius: 999px; background: #fff;
	color: #0e1620; font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 13.5px; font-weight: 700; cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.tgc-finder__req:hover { background: #0e1620; color: #fff; }

/* The guarantee strip under the finder hero: the facts strip on teal. */
.tgc-band--teal { background: #145670; }
.tgc-band--teal.tgc-band--facts { border-bottom: 0; }
.tgc-band--teal .tgc-strip__icon { border-color: rgba(224, 196, 117, .55); background: rgba(255, 255, 255, .06); color: #e0c475; }
.tgc-band--teal .tgc-strip__text strong { color: #fff; }
.tgc-band--teal .tgc-strip__text span { color: rgba(255, 255, 255, .74); }

/* Six reasons: three to a row, a hairline between rows. */
@media (min-width: 1025px) {
	.tgc-reasons--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tgc-reasons--6 .tgc-reason:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
	.tgc-reasons--6 .tgc-reason:nth-child(n + 4) { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 28px; }
}

/* Names in a row of chips (the cruise lines). Not .tgc-chips: the tour cards use that. */
.tgc-names { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 980px; margin: 0 auto; padding: 0; }
.tgc-names li {
	display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border: 1px solid #ece5d6;
	border-radius: 999px; background: #fff; font-size: 14.5px; color: #3a3a3a;
}
.tgc-band--white .tgc-names li { background: #f8f5ee; }
.tgc-names .tgc-ico { color: #a8862e; }
.tgc-names__note { max-width: 640px; margin: 22px auto 0; text-align: center; font-size: 15px; line-height: 1.65; color: #5a5448; }

@media (max-width: 1024px) {
	.tgc-finder__bar { grid-template-columns: 1fr 1fr; }
	.tgc-finder__field:nth-child(3) { border-left: 0; border-top: 1px solid #ece5d6; }
	.tgc-finder__go { grid-column: 2; margin: 6px 0 2px; padding: 14px 20px; }
}
@media (max-width: 760px) {
	.tgc-hero--finder { padding: 38px 18px 44px; }
	.tgc-finder__bar,
	.tgc-finder__other { grid-template-columns: 1fr; padding: 6px; }
	.tgc-finder__field + .tgc-finder__field,
	.tgc-finder__field:nth-child(3) { border-left: 0; border-top: 1px solid #ece5d6; }
	.tgc-finder__go { grid-column: auto; margin-top: 6px; padding: 15px 20px; }
	.tgc-finder__result { padding: 18px 16px; }
	.tgc-finder__tours { grid-template-columns: 1fr; }
	.tgc-finder__rating { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
	.tgc-finder__rating, .tgc-finder__go, .tgc-finder__req { transition: none; }
}

/* ---------------------------------------------------------------- Blue theme
 * "theme": "blue" in the page file (.tgc--blue, the shore excursions page): the brand blue
 * carries the page. Teal #1a6e8a for labels, accents, links and buttons; #145670 and
 * #0f4257 for the dark panels; #9fd4e6 for an accent on a dark ground; a pale blue for the
 * alternate bands. Gold stays on the small things only: icons, stars, the CTA diamond.
 */
.tgc--blue .tgc-kicker { color: #1a6e8a; }
.tgc--blue .tgc-title em { color: #1a6e8a; }
.tgc--blue .tgc-band--cream { background: #f0f6f9; }
.tgc--blue .tgc-band--cream .tgc-step__no { box-shadow: 0 0 0 10px #f0f6f9; }
.tgc--blue .tgc-band--cream .tgc-stop__no { box-shadow: 0 0 0 8px #f0f6f9; }

/* Hero */
.tgc--blue .tgc-hero { background-color: #0b3345; }
.tgc--blue .tgc-hero--finder::before {
	background:
		linear-gradient(90deg, rgba(8, 40, 56, .93) 0%, rgba(10, 52, 72, .76) 46%, rgba(12, 60, 82, .34) 100%),
		linear-gradient(180deg, rgba(8, 40, 56, 0) 55%, rgba(8, 40, 56, .62) 100%);
}
.tgc--blue .tgc-kicker--light { color: #9fd4e6; }
.tgc--blue .tgc-hero__title em { color: #9fd4e6; }
.tgc--blue .tgc-hero .tgt-crumbs a:hover { color: #9fd4e6; }
.tgc--blue .tgc-finder__rating { background: rgba(8, 40, 56, .55); }
.tgc--blue .tgc-finder__rating:hover { border-color: #9fd4e6; }
.tgc--blue .tgc-finder__label { color: #1a6e8a; }
.tgc--blue .tgc-finder__field + .tgc-finder__field { border-color: #dbe8ee; }
.tgc--blue .tgc-finder__field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6e8a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.tgc--blue .tgc-finder__field select:focus-visible,
.tgc--blue .tgc-finder__field input:focus-visible { outline-color: #1a6e8a; }
.tgc--blue .tgc-finder__go { background: linear-gradient(135deg, #2285a6 0%, #1a6e8a 55%, #145670 100%); color: #fff; box-shadow: 0 10px 24px rgba(20, 86, 112, .35); }
.tgc--blue .tgc-finder__other-toggle { color: #9fd4e6; }
.tgc--blue .tgc-finder__info a:hover { color: #1a6e8a; }
.tgc--blue .tgc-finder__req { border-color: #1a6e8a; color: #145670; }
.tgc--blue .tgc-finder__req:hover { background: #1a6e8a; color: #fff; }
.tgc--blue .tgc-finder__tour { border-color: #dbe8ee; }
.tgc--blue .tgc-finder__tour--tight .tgc-finder__fit { color: #b5651d; }

/* Filter row and cards */
.tgc--blue .tgc-pill { background: #e6f0f4; color: #173c4c; }
.tgc--blue .tgc-pill:hover { background: #d3e5ec; }
.tgc--blue .tgc-pill[aria-pressed="true"] { background: #1a6e8a; color: #fff; box-shadow: 0 6px 16px rgba(26, 110, 138, .28); }
.tgc--blue .tgc-badge--star { background: #145670; }
.tgc--blue .tgc-chip { border-color: #d3e5ec; background: #f3f8fa; color: #2c5566; }
.tgc--blue .tgc-chip--link { border-color: #a9cfdd; background: #fff; }
.tgc--blue .tgc-chip--link a { color: #1a6e8a; }
.tgc--blue .tgc-chip--link a:hover { background: #e6f0f4; }
.tgc--blue .tgc-catalog__body { background: #f0f6f9; }
.tgc--blue .tgc-card__wa { background: #145670; }
.tgc--blue .tgc-card__wa:hover { background: #1a6e8a; }
.tgc--blue .tgc-note a { color: #1a6e8a; }

/* Blocks */
.tgc--blue .tgc-choose__item:hover { border-color: rgba(26, 110, 138, .45); }
.tgc--blue .tgc-choose__no { color: #1a6e8a; }
.tgc--blue .tgc-choose__no::after { background: #a9cfdd; }
.tgc--blue .tgc-fact { border-color: #dde9ee; background: #f3f8fa; }
.tgc--blue .tgc-band--cream .tgc-fact { background: #fff; }
.tgc--blue .tgc-answer__text a { color: #1a6e8a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--blue .tgc-answer__text a:hover { color: #145670; }
.tgc--blue .tgc-tablewrap { border-color: #dbe8ee; }
.tgc--blue .tgc-table thead th { border-color: #dbe8ee; background: #eaf3f7; color: #1a6e8a; }
.tgc--blue .tgc-table thead th:nth-child(2) { color: #145670; }
.tgc--blue .tgc-table tbody tr:hover { background: #f5f9fb; }
.tgc--blue .tgc-band--navy { background: #0f4257; }
.tgc--blue .tgc-band--navy .tgc-kicker,
.tgc--blue .tgc-band--navy .tgc-title em { color: #9fd4e6; }
.tgc--blue .tgc-route::before { background: repeating-linear-gradient(180deg, #a9cfdd 0 6px, transparent 6px 12px); }
.tgc--blue .tgc-stop__no,
.tgc--blue .tgc-step__no { border-color: #1a6e8a; color: #1a6e8a; }
.tgc--blue .tgc-place--text { border-top-color: #1a6e8a; }
.tgc--blue .tgc-place__meta { color: #1a6e8a; }
.tgc--blue .tgc-pricing__col--included { border-top-color: #1a6e8a; }
.tgc--blue .tgc-pricing__col { border-color: #dde9ee; }
.tgc--blue .tgc-pricing__col--excluded { background: #f5f9fb; }
.tgc--blue .tgc-pricing__col--excluded li .tgc-ico { background: #e6eef2; color: #7d919a; }
.tgc--blue .tgc-review__initial { background: #145670; color: #fff; }
.tgc--blue .tgc-names li { border-color: #d3e5ec; background: #f3f8fa; color: #173c4c; }
.tgc--blue .tgc-band--cream .tgc-names li { background: #fff; }

/* Booking, FAQ, closing call */
.tgc--blue .tgc-booking__summary { background: #0f4257; }
.tgc--blue .tgc-booking__form .tgt-form input,
.tgc--blue .tgc-booking__form .tgt-form select,
.tgc--blue .tgc-booking__form .tgt-form textarea { border-color: #d6e4ea; background: #f7fafb; }
.tgc--blue .tgc-booking__form .tgt-form input:focus,
.tgc--blue .tgc-booking__form .tgt-form select:focus,
.tgc--blue .tgc-booking__form .tgt-form textarea:focus { border-color: #1a6e8a; background: #fff; }
.tgc--blue .tgc-booking__form .tgt-form__send { background: #1a6e8a; color: #fff; box-shadow: 0 12px 26px rgba(26, 110, 138, .28); }
.tgc--blue .tgc-booking__form .tgt-form__send:hover { background: #145670; }
.tgc--blue .tgc-faq__ask { background: #0f4257; }
.tgc--blue .tgc-faq__ask:hover { background: #145670; }
.tgc--blue .tgc-faq__mark { border-color: #bcd8e3; color: #1a6e8a; }
.tgc--blue .tgc-faq__item[open] .tgc-faq__mark { background: #1a6e8a; border-color: #1a6e8a; }
.tgc--blue .tgc-btn--line { border-color: #1a6e8a; color: #145670; }
.tgc--blue .tgc-btn--line:hover { background: #1a6e8a; color: #fff; }
@media (max-width: 760px) {
	.tgc--blue .tgc-table tr { border-color: #dbe8ee; }
	.tgc--blue .tgc-table tbody tr:hover { background: #fff; }
	.tgc--blue .tgc-table tbody th { border-color: #dbe8ee; background: #eaf3f7; }
	.tgc--blue .tgc-table tbody td::before { color: #1a6e8a; }
}

/* ---------------------------------------------------------------- Port Day (shore excursions)
 * A single shore excursion on the catalog template ("Port Day" design, 2026-09-25): a hero of
 * three photos beside the text with the ship finder under both, a floating booking bar, the
 * port-day timeline and photo story ("portday"), good-to-know tiles ("glance") and more
 * excursions ("others"). These pages are blue ("theme": "blue"), so the blocks are drawn in the
 * brand blue directly; gold stays on icons only.
 */

/* Hero: text left, three staggered photos right, the finder under both. */
.tgc-hero--mosaic { padding: 44px 24px 60px; background: linear-gradient(150deg, #0b3345 0%, #0f4257 58%, #145670 100%); }
.tgc--blue .tgc-hero--mosaic::before,
.tgc-hero--mosaic::before { background: radial-gradient(circle at 82% 18%, rgba(159, 212, 230, .16), rgba(159, 212, 230, 0) 55%); }
.tgc-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr); gap: 56px; align-items: center; }
.tgc-hero--mosaic .tgc-hero__title { font-size: clamp(34px, 2vw + 20px, 54px); }
.tgc-hero--mosaic .tgc-hero__lead { max-width: 560px; margin: 18px 0 0; font-size: 17px; }
.tgc-hero--mosaic .tgc-hero__price { margin: 20px 0 0; }
.tgc-hero--mosaic .tgc-hero__trust { margin-top: 14px; }
.tgc-hero--mosaic .tgc-finder__rating { margin-top: 22px; }
.tgc-hero--mosaic .tgc-finder { margin-top: 36px; }
.tgc-mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; padding-bottom: 36px; }
.tgc-mosaic__tile { margin: 0; overflow: hidden; aspect-ratio: 4 / 5; border-radius: 18px; background: #145670; box-shadow: 0 24px 50px rgba(0, 0, 0, .32); }
.tgc-mosaic__tile:nth-child(2) { margin-top: 48px; }
.tgc-mosaic__tile:nth-child(3) { margin-top: 20px; }
.tgc-mosaic__tile img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* The finder on one excursion's page: the answer first, the ones that fit after it. */
.tgc-finder--one .tgc-finder__tours:first-of-type { grid-template-columns: minmax(0, 640px); }
.tgc-finder__alt { margin: 18px 0 10px; font-size: 14px; font-weight: 700; color: #0e1620; }

/* The floating booking bar on a desktop ("everywhere"). */
@media (min-width: 1025px) {
	.tgc-sticky--all {
		position: fixed; left: 50%; bottom: 18px; z-index: 60; display: flex; align-items: center; gap: 18px;
		width: min(1000px, calc(100% - 48px)); padding: 10px 10px 10px 28px; border-radius: 999px;
		background: rgba(11, 51, 69, .96); box-shadow: 0 18px 44px rgba(11, 51, 69, .35);
		-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
		transform: translate(-50%, 160%); transition: transform .3s ease;
	}
	.tgc-sticky--all.is-on { transform: translate(-50%, 0); }
	.tgc-sticky--all .tgc-sticky__price { flex: none; margin: 0; font-size: 13px; color: rgba(255, 255, 255, .7); }
	.tgc-sticky--all .tgc-sticky__price strong { margin: 0 3px; font-family: Georgia, 'Times New Roman', serif; font-size: 24px; font-weight: 400; color: #fff; }
	.tgc-sticky--all .tgc-sticky__meta { flex: 1; min-width: 0; margin: 0; padding-left: 18px; border-left: 1px solid rgba(255, 255, 255, .18); font-size: 13.5px; color: rgba(255, 255, 255, .78); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.tgc-sticky--all .tgc-sticky__check { flex: none; font-size: 14px; font-weight: 700; color: #9fd4e6; text-decoration: underline; text-underline-offset: 3px; }
	.tgc-sticky--all .tgc-sticky__check:hover { color: #fff; }
	.tgc-sticky--all .tgc-sticky__cta { flex: none; padding: 14px 26px; box-shadow: none; }
	.tgc-sticky--all .tgc-sticky__wa { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 50%; background: #25d366; color: #fff; }
	.tgc-sticky--all .tgc-sticky__wa > svg { width: 22px; height: 22px; fill: currentColor; }
}
.tgc-sticky__meta, .tgc-sticky__check { display: none; }
@media (min-width: 1025px) {
	.tgc-sticky--all .tgc-sticky__meta, .tgc-sticky--all .tgc-sticky__check { display: block; }
}
.tgc--blue .tgc-sticky { background: rgba(11, 51, 69, .97); }
.tgc--blue .tgc-sticky__cta { background: #2285a6; color: #fff; }
.tgc--blue .tgc-sticky__cta:hover { background: #fff; color: #0b3345; }

/* The day at a glance: stops on a line, the hour before all-aboard shaded at the end. */
.tgc-ribbon { overflow-x: auto; margin: 0 0 8px; padding: 4px 2px 10px; scrollbar-width: thin; }
.tgc-ribbon__track { list-style: none; display: flex; min-width: 980px; margin: 0; padding: 0; }
.tgc-ribbon__stop, .tgc-ribbon__buffer { position: relative; flex: 1 1 0; min-width: 0; padding: 0 12px 0 0; }
.tgc-ribbon__stop::before, .tgc-ribbon__buffer::before { content: ''; position: absolute; top: 31px; left: 0; right: 0; height: 2px; background: #a9cfdd; }
.tgc-ribbon__stop::after {
	content: ''; position: absolute; top: 24px; left: 0; width: 16px; height: 16px; box-sizing: border-box;
	border: 3px solid #1a6e8a; border-radius: 50%; background: #fff;
}
.tgc-ribbon__stop time { display: block; font-size: 14px; font-weight: 700; letter-spacing: .02em; color: #1a6e8a; }
.tgc-ribbon__stop span { display: block; margin-top: 30px; font-family: Georgia, 'Times New Roman', serif; font-size: 15.5px; line-height: 1.3; color: #0e1620; }
.tgc-ribbon__buffer { flex: 1.5 1 0; }
.tgc-ribbon__buffer::before { top: 26px; height: 12px; border-radius: 6px; background: repeating-linear-gradient(135deg, #cfe4ec 0 6px, #e8f2f6 6px 12px); }
.tgc-ribbon__buffer span { display: block; margin-top: 50px; font-size: 13.5px; font-style: italic; color: #1a6e8a; }
.tgc-ribbon__end { flex: none; align-self: flex-start; margin-top: 18px; }
.tgc-ribbon__end strong { display: inline-block; padding: 7px 14px; border-radius: 999px; background: #0b3345; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; }
.tgc-portday__note { max-width: 760px; margin: 12px auto 0; text-align: center; font-size: 14px; line-height: 1.6; color: #4a5a62; }
.tgc-portday.is-shifted .tgc-portday__note { color: #145670; font-weight: 700; }
.tgc-portday.is-shifted time { color: #145670; }
.tgc-portday.is-short .tgc-portday__note { color: #b5651d; font-weight: 700; }

/* Stop by stop: photo cards either side of a rail, each half a card lower than the last. */
.tgc-story { position: relative; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 112px; margin: 52px 0 0; padding: 0; }
.tgc-story::before { content: ''; position: absolute; top: 12px; bottom: 12px; left: 50%; width: 2px; margin-left: -1px; background: #cfe4ec; }
.tgc-story__item {
	position: relative; align-self: start; margin: 0 0 28px; border: 1px solid #dde9ee; border-radius: 18px;
	background: #fff; box-shadow: 0 14px 34px rgba(11, 51, 69, .07);
}
.tgc-story__item:nth-child(odd) { grid-column: 1; }
.tgc-story__item:nth-child(even) { grid-column: 2; }
.tgc-story__time {
	position: absolute; top: 22px; z-index: 1; width: 66px; padding: 6px 0; border: 2px solid #1a6e8a; border-radius: 999px;
	background: #fff; text-align: center; font-size: 13.5px; font-weight: 700; color: #1a6e8a;
}
.tgc-story__item:nth-child(odd) .tgc-story__time { right: -90px; }
.tgc-story__item:nth-child(even) .tgc-story__time { left: -90px; }
.tgc-story__img { margin: 0; overflow: hidden; aspect-ratio: 3 / 2; border-radius: 17px 17px 0 0; background: #e6f0f4; }
.tgc-story__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tgc-story__item:hover .tgc-story__img img { transform: scale(1.04); }
.tgc-story__body { padding: 20px 26px 24px; }
.tgc-story__place { margin: 0 0 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #1a6e8a; }
.tgc-story__title { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; line-height: 1.3; color: #0e1620; }
.tgc-story__text { margin: 0; font-size: 15.5px; line-height: 1.7; color: #3a4a52; }

/* Good to know: one tile per answer, icon in gold on pale blue. */
.tgc-glance { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
.tgc-glance__item { display: flex; gap: 16px; padding: 22px 22px 20px; border: 1px solid #dde9ee; border-radius: 16px; background: #fff; }
.tgc-glance__icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 12px; background: #eaf3f7; color: #a8862e; }
.tgc-glance__icon .tgc-ico { width: 21px; height: 21px; }
.tgc-glance__label { margin: 2px 0 4px; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #1a6e8a; }
.tgc-glance__value { margin: 0 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 18.5px; line-height: 1.3; color: #0e1620; }
.tgc-glance__text { margin: 0; font-size: 14px; line-height: 1.6; color: #4a5a62; }
.tgc-glance__text a,
.tgc--blue .tgc-choose__then a,
.tgc--blue .tgc-table td a { color: #1a6e8a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc-glance__text a:hover,
.tgc--blue .tgc-choose__then a:hover,
.tgc--blue .tgc-table td a:hover { color: #0b3345; }

/* More excursions. */
.tgc-others { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; margin: 0; padding: 0; }
.tgc-other {
	display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid #dde9ee; border-radius: 18px;
	background: #fff; color: inherit; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease;
}
.tgc-other:hover { color: inherit; text-decoration: none; transform: translateY(-3px); box-shadow: 0 18px 40px rgba(11, 51, 69, .1); }
.tgc-other__img { display: block; overflow: hidden; aspect-ratio: 3 / 2; background: #e6f0f4; }
.tgc-other__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tgc-other:hover .tgc-other__img img { transform: scale(1.045); }
.tgc-other__body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 18px 20px 20px; }
.tgc-other__meta { font-size: 12.5px; font-weight: 700; letter-spacing: .03em; color: #1a6e8a; }
.tgc-other__title { font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; line-height: 1.3; color: #0e1620; }
.tgc-other__sum { flex: 1; font-size: 14.5px; line-height: 1.6; color: #4a5a62; }
.tgc-other__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 14px; font-weight: 700; color: #1a6e8a; }

@media (max-width: 1024px) {
	.tgc-hero__grid { grid-template-columns: 1fr; gap: 32px; }
	.tgc-mosaic { max-width: 620px; padding-bottom: 0; }
	.tgc-story { column-gap: 80px; }
	.tgc-story__item:nth-child(odd) .tgc-story__time { right: -74px; }
	.tgc-story__item:nth-child(even) .tgc-story__time { left: -74px; }
	.tgc-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.tgc-hero--mosaic { padding: 30px 18px 44px; }
	.tgc-mosaic { gap: 10px; }
	.tgc-mosaic__tile { border-radius: 12px; }
	.tgc-mosaic__tile:nth-child(2) { margin-top: 26px; }
	.tgc-mosaic__tile:nth-child(3) { margin-top: 12px; }
	.tgc-ribbon__track { min-width: 860px; }
	.tgc-story { grid-template-columns: minmax(0, 1fr); column-gap: 0; margin-top: 36px; padding-left: 34px; }
	.tgc-story::before { left: 11px; }
	.tgc-story__item, .tgc-story__item:nth-child(odd), .tgc-story__item:nth-child(even) { grid-column: 1; grid-row: auto !important; margin-bottom: 22px; }
	.tgc-story__item::before {
		content: ''; position: absolute; top: 24px; left: -29px; width: 14px; height: 14px; box-sizing: border-box;
		border: 3px solid #1a6e8a; border-radius: 50%; background: #fff;
	}
	.tgc-story__item:nth-child(odd) .tgc-story__time,
	.tgc-story__item:nth-child(even) .tgc-story__time { top: 12px; right: auto; left: 12px; box-shadow: 0 4px 12px rgba(11, 51, 69, .2); }
	.tgc-story__body { padding: 18px 20px 20px; }
	/* A stop with no photo: the time sits in the card, so the text starts below it. */
	.tgc-story__item--text .tgc-story__body { padding-top: 56px; }
	.tgc-story__title { font-size: 20px; }
	.tgc-glance { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.tgc-story__img img, .tgc-other, .tgc-other__img img, .tgc-sticky--all { transition: none; }
}

/* ---------------------------------------------------------------- Split and viewfinder heroes
 * "layout": "split" (cooking class): one photo beside the text on a light ground, with the
 * recipe-card facts ("meta") under the lead. "layout": "viewfinder" (photography): the
 * background photo framed by crop marks, like the view through a camera.
 */
.tgc-hero--split { padding: 40px 24px 60px; text-align: left; color: #2b1d14; background: #f8ecdb; }
.tgc-hero--split::before { display: none; }
.tgc-hero--split .tgc-hero__inner { max-width: 1200px; }
.tgc-hero--split .tgc-hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; }
.tgc-hero--split .tgt-crumbs { justify-content: flex-start; color: #9a7f68; }
.tgc-hero--split .tgt-crumbs ol { justify-content: flex-start; }
.tgc-hero--split .tgt-crumbs a { color: #7a5f4a; }
.tgc-hero--split .tgt-crumbs li + li::before { color: #c9ab8f; }
.tgc-hero--split .tgc-kicker--light { color: #b4532a; }
.tgc-hero--split .tgc-kicker--light::after { display: none; }
.tgc-hero--split .tgc-hero__title { font-size: clamp(34px, 2vw + 20px, 54px); color: #2b1d14; }
.tgc-hero--split .tgc-hero__title em { color: #b4532a; }
.tgc-hero--split .tgc-hero__lead { max-width: 560px; margin: 18px 0 0; font-size: 17px; color: #5a4636; }
.tgc-hero--split .tgc-hero__price { color: #5a4636; }
.tgc-hero--split .tgc-hero__price strong { color: #2b1d14; }
.tgc-hero--split .tgc-hero__act { justify-content: flex-start; margin-top: 24px; }
.tgc-hero--split .tgc-btn--ghost { border-color: #b4532a; color: #7a3218; }
.tgc-hero--split .tgc-btn--ghost:hover { background: #b4532a; color: #fff; }
.tgc-hero--split .tgc-hero__trust { justify-content: flex-start; margin-top: 18px; color: #6e5a4a; }
.tgc-hero--split .tgc-hero__trust .tgc-ico { color: #d08c2a; }
.tgc-hero--split .tgc-finder__rating { margin-top: 22px; border-color: #e6cdb2; background: #fffaf2; color: #2b1d14; -webkit-backdrop-filter: none; backdrop-filter: none; }
.tgc-hero--split .tgc-finder__rating:hover { border-color: #b4532a; color: #2b1d14; }
.tgc-hero__meta { display: flex; flex-wrap: wrap; max-width: 560px; margin: 24px 0 0; border: 1px dashed #d4ae8a; border-radius: 14px; background: #fffaf2; }
.tgc-hero__meta div { flex: 1 1 0; min-width: 120px; padding: 12px 18px; }
.tgc-hero__meta div + div { border-left: 1px dashed #d4ae8a; }
.tgc-hero__meta dt { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #b4532a; }
.tgc-hero__meta dd { margin: 4px 0 0; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.25; color: #2b1d14; }
.tgc-hero__photo { position: relative; order: -1; margin: 0 14px 14px 0; }
.tgc-hero__photo::before { content: ''; position: absolute; inset: 14px -14px -14px 14px; border: 2px solid #b4532a; border-radius: 22px; }
.tgc-hero__photo img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 5; max-height: 620px; object-fit: cover; border-radius: 22px; box-shadow: 0 24px 50px rgba(43, 29, 20, .22); }
.tgc-hero__photo figcaption { position: absolute; left: 18px; bottom: 18px; padding: 8px 14px; border-radius: 999px; background: rgba(255, 250, 242, .94); font-size: 13px; font-weight: 700; color: #7a3218; }

.tgc-hero--viewfinder { padding: 44px 24px 60px; background-position: center 55%; }
.tgc-hero--viewfinder::before { background: linear-gradient(180deg, rgba(8, 8, 9, .62) 0%, rgba(8, 8, 9, .38) 45%, rgba(8, 8, 9, .92) 100%); }
.tgc-hero--viewfinder .tgc-hero__inner { position: relative; padding: 44px 52px 48px; }
.tgc-hero--viewfinder .tgc-hero__inner::before {
	content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .75;
	background:
		linear-gradient(#ede6da, #ede6da) left top / 40px 2px no-repeat,
		linear-gradient(#ede6da, #ede6da) left top / 2px 40px no-repeat,
		linear-gradient(#ede6da, #ede6da) right top / 40px 2px no-repeat,
		linear-gradient(#ede6da, #ede6da) right top / 2px 40px no-repeat,
		linear-gradient(#ede6da, #ede6da) left bottom / 40px 2px no-repeat,
		linear-gradient(#ede6da, #ede6da) left bottom / 2px 40px no-repeat,
		linear-gradient(#ede6da, #ede6da) right bottom / 40px 2px no-repeat,
		linear-gradient(#ede6da, #ede6da) right bottom / 2px 40px no-repeat;
}
.tgc-hero--viewfinder .tgc-hero__inner::after {
	content: 'REC'; position: absolute; top: 18px; right: 24px; padding-left: 18px;
	font: 700 12px/1 'Trebuchet MS', 'Segoe UI', sans-serif; letter-spacing: .22em; color: #ede6da;
	background: radial-gradient(circle at 5px 50%, #e0482f 4.5px, rgba(224, 72, 47, 0) 5.5px);
}
.tgc-hero--viewfinder .tgc-hero__title { max-width: 820px; font-size: clamp(40px, 3vw + 22px, 72px); color: #f4efe6; }
.tgc-hero--viewfinder .tgc-hero__title em { color: #f07a5f; }
.tgc-hero--viewfinder .tgc-kicker--light { color: #f07a5f; }
.tgc-hero--viewfinder .tgc-hero__lead { color: rgba(237, 230, 218, .86); }
.tgc-hero--viewfinder .tgc-hero__price { color: rgba(237, 230, 218, .8); }

/* ---------------------------------------------------------------- New blocks
 * finder (the ship finder in a band), specs, filmstrip, list, stats. Drawn neutral here;
 * the page themes below colour them.
 */
.tgc-finderband { max-width: 1120px; margin: 0 auto; }
.tgc-finderband .tgc-finder { margin: 0; }
.tgc-finderband .tgc-finder__bar { border: 1px solid #e6dccb; box-shadow: 0 16px 40px rgba(20, 20, 20, .08); }
.tgc-finderband .tgc-finder__foot { color: #6b6558; }
.tgc-finderband .tgc-finder__result { border: 1px solid #e6dccb; box-shadow: 0 16px 40px rgba(20, 20, 20, .08); }
.tgc-finderband__points { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin: 24px 0 0; padding: 0; font-size: 14.5px; color: #5a4f44; }
.tgc-finderband__points li { display: inline-flex; align-items: center; gap: 8px; }

.tgc-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1060px; margin: 0 auto; }
.tgc-spec { position: relative; padding: 30px 32px 26px; border: 1px solid #e6e1d6; border-radius: 6px; background: #fff; }
.tgc-spec__kicker { margin: 0 0 8px; font-size: 11.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #a8862e; }
.tgc-spec__title { margin: 0 0 18px; font-family: Georgia, 'Times New Roman', serif; font-size: 30px; font-weight: 400; color: #0e1620; }
.tgc-spec__list { list-style: none; margin: 0; padding: 0; }
.tgc-spec__list li { display: flex; align-items: baseline; gap: 12px; padding: 11px 0; border-top: 1px solid #ece6da; font-size: 15px; line-height: 1.5; color: #3a3a3a; }
.tgc-spec__list li::before { content: ''; flex: none; width: 6px; height: 6px; margin-bottom: 2px; background: #a8862e; }

.tgc-film { overflow-x: auto; margin: 0 -24px; padding: 0 24px 14px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.tgc-film:focus-visible { outline: 2px solid #f07a5f; outline-offset: 2px; }
.tgc-film__strip { position: relative; list-style: none; display: flex; width: max-content; margin: 0; padding: 34px 12px; border-radius: 6px; background: #050506; }
.tgc-film__strip::before,
.tgc-film__strip::after {
	content: ''; position: absolute; left: 8px; right: 8px; height: 12px;
	background: repeating-linear-gradient(90deg, rgba(5, 5, 6, 0) 0 9px, #2c2e32 9px 23px);
	border-radius: 2px;
}
.tgc-film__strip::before { top: 11px; }
.tgc-film__strip::after { bottom: 11px; }
.tgc-film__frame { flex: none; width: 300px; margin: 0 6px; padding: 0 0 20px; scroll-snap-align: start; background: #121315; }
.tgc-film__img { margin: 0 0 14px; overflow: hidden; aspect-ratio: 4 / 5; background: #1c1e21; }
.tgc-film__img img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); transition: filter .4s ease, transform .6s ease; }
.tgc-film__frame:hover .tgc-film__img img { filter: saturate(1.05); transform: scale(1.03); }
.tgc-film__no, .tgc-film__time, .tgc-film__title, .tgc-film__text { padding: 0 18px; }
.tgc-film__no { margin: 0 0 4px; font-size: 11px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #f07a5f; }
.tgc-film__time { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8f897e; }
.tgc-film__title { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 400; line-height: 1.3; color: #f4efe6; }
.tgc-film__text { margin: 0; font-size: 14.5px; line-height: 1.65; color: #a9a296; }

.tgc-list { list-style: none; max-width: 880px; margin: 0 auto; padding: 0; }
.tgc-list li { display: flex; align-items: baseline; gap: 22px; padding: 18px 0; border-top: 1px solid #e6e1d6; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(19px, .8vw + 15px, 25px); line-height: 1.4; color: #0e1620; }
.tgc-list li:last-child { border-bottom: 1px solid #e6e1d6; }
.tgc-list__mark { flex: none; width: 22px; }
.tgc-list--cross .tgc-list__mark::before { content: '\00d7'; font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 28px; font-weight: 700; line-height: 1; color: #a8862e; }
.tgc-list--check .tgc-list__mark::before { content: '\2713'; font-size: 20px; font-weight: 700; color: #1a6e8a; }

.tgc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1100px; margin: 0 auto; border-top: 1px solid #e6e1d6; border-left: 1px solid #e6e1d6; }
.tgc-stat { padding: 28px 26px 26px; border-right: 1px solid #e6e1d6; border-bottom: 1px solid #e6e1d6; }
.tgc-stat dt { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(40px, 2.4vw + 22px, 64px); line-height: 1; color: #0e1620; }
.tgc-stat dd { margin: 12px 0 0; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #6b6558; }

/* ---------------------------------------------------------------- Terracotta theme
 * "theme": "terracotta" (the cooking class, 2026-09-25): a kitchen in the medina. Terracotta
 * #b4532a carries labels, accents, links and buttons; clay #7a3218 the dark panels; saffron
 * #d08c2a / #f3c98b the icons and small marks; olive #5e6b2e the diet tiles; paper #f8ecdb
 * and #fffcf7 the bands. Georgia and Trebuchet stay.
 */
.tgc--terracotta { color: #3d2c20; }
.tgc--terracotta .tgc-band--white { background: #fffcf7; }
.tgc--terracotta .tgc-band--cream { background: #f8ecdb; }
.tgc--terracotta .tgc-band--navy { background: #7a3218; }
.tgc--terracotta .tgc-band--navy .tgc-kicker,
.tgc--terracotta .tgc-band--navy .tgc-title em { color: #f3c98b; }
.tgc--terracotta .tgc-band--navy .tgc-reason__icon { border-color: rgba(243, 201, 139, .5); color: #f3c98b; }
.tgc--terracotta .tgc-band--teal { background: #9c4422; }
.tgc--terracotta .tgc-band--teal.tgc-band--facts { border-bottom: 0; }
.tgc--terracotta .tgc-band--teal .tgc-strip__icon { border-color: rgba(243, 201, 139, .6); background: rgba(255, 255, 255, .08); color: #f3c98b; }
.tgc--terracotta .tgc-band--teal .tgc-strip__text strong { color: #fff; }
.tgc--terracotta .tgc-band--teal .tgc-strip__text span { color: rgba(255, 255, 255, .78); }
.tgc--terracotta .tgc-kicker { color: #b4532a; }
.tgc--terracotta .tgc-title { color: #2b1d14; }
.tgc--terracotta .tgc-band--navy .tgc-title { color: #fff; }
.tgc--terracotta .tgc-title em { color: #b4532a; }
.tgc--terracotta .tgc-lead { color: #6e5a4a; }
.tgc--terracotta .tgc-answer__text p { color: #4a3a2e; }
.tgc--terracotta .tgc-answer__text p:first-child { color: #2b1d14; }
.tgc--terracotta .tgc-answer__text em { font-family: Georgia, 'Times New Roman', serif; font-size: 1.12em; color: #7a3218; }
.tgc--terracotta .tgc-answer__text a { color: #b4532a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--terracotta .tgc-fact { border-color: #efdcc4; background: #fff7ec; }
.tgc--terracotta .tgc-band--cream .tgc-fact { background: #fffcf7; }
.tgc--terracotta .tgc-fact__icon { border-color: rgba(180, 83, 42, .4); color: #b4532a; }
.tgc--terracotta .tgc-textlink,
.tgc--terracotta .tgc-note a { color: #b4532a; }
.tgc--terracotta .tgc-route::before { background: repeating-linear-gradient(180deg, #e3b98f 0 6px, rgba(227, 185, 143, 0) 6px 12px); }
.tgc--terracotta .tgc-stop__no { border-color: #b4532a; color: #b4532a; background: #fffcf7; box-shadow: 0 0 0 8px #fffcf7; }
.tgc--terracotta .tgc-band--cream .tgc-stop__no { background: #fff7ec; box-shadow: 0 0 0 8px #f8ecdb; }
.tgc--terracotta .tgc-stop__place { color: #b4532a; }
.tgc--terracotta .tgc-stop__title { color: #2b1d14; }
.tgc--terracotta .tgc-dish { border-color: #ead8c2; background: #fffaf2; }
.tgc--terracotta .tgc-dish__tag { text-transform: none; letter-spacing: 0; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 15.5px; font-weight: 400; color: #b4532a; }
.tgc--terracotta .tgc-dish__name, .tgc--terracotta .tgc-mini__name { color: #2b1d14; }
.tgc--terracotta .tgc-mini { border: 1px dashed #d4ae8a; background: #fffaf2; }
.tgc--terracotta .tgc-mini .tgc-ico { color: #d08c2a; }
.tgc--terracotta .tgc-dishes__more { color: #b4532a; }
.tgc--terracotta .tgc-glance__item { border-color: #ead8c2; background: #fffaf2; }
.tgc--terracotta .tgc-glance__icon { background: #eef0df; color: #5e6b2e; }
.tgc--terracotta .tgc-glance__label { color: #5e6b2e; }
.tgc--terracotta .tgc-glance__value { color: #2b1d14; }
.tgc--terracotta .tgc-glance__text { color: #6e5a4a; }
.tgc--terracotta .tgc-glance__text a { color: #b4532a; }
.tgc--terracotta .tgc-pricing__col { border-color: #ead8c2; }
.tgc--terracotta .tgc-pricing__col--included { border-top-color: #b4532a; }
.tgc--terracotta .tgc-pricing__col--included li .tgc-ico { background: #f6e3cc; color: #b4532a; }
.tgc--terracotta .tgc-pricing__col--excluded { background: #fbf3e8; }
.tgc--terracotta .tgc-tablewrap { border-color: #ead8c2; }
.tgc--terracotta .tgc-table thead th { border-color: #ead8c2; background: #f6e7d4; color: #7a3218; }
.tgc--terracotta .tgc-table tbody tr:hover { background: #fdf6ec; }
.tgc--terracotta .tgc-table td a { color: #b4532a; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--terracotta .tgc-tag--yes { background: #eef0df; color: #5e6b2e; }
.tgc--terracotta .tgc-review { border-color: #ead8c2; background: #fffaf2; }
.tgc--terracotta .tgc-review::before { color: rgba(180, 83, 42, .25); }
.tgc--terracotta .tgc-review__initial { background: #7a3218; color: #f3c98b; }
.tgc--terracotta .tgc-reviews__source a { color: #b4532a; }
.tgc--terracotta .tgc-faq__q:hover { color: #b4532a; }
.tgc--terracotta .tgc-faq__mark { border-color: #e3c9ad; color: #b4532a; }
.tgc--terracotta .tgc-faq__item[open] .tgc-faq__mark { background: #b4532a; border-color: #b4532a; color: #fff; }
.tgc--terracotta .tgc-faq__ask { background: #7a3218; }
.tgc--terracotta .tgc-faq__ask:hover { background: #9c4422; }
.tgc--terracotta .tgc-booking__summary { background: #7a3218; }
.tgc--terracotta .tgc-booking__list .tgc-ico,
.tgc--terracotta .tgc-micro--left .tgc-ico { color: #f3c98b; }
.tgc--terracotta .tgc-booking__form .tgt-form input,
.tgc--terracotta .tgc-booking__form .tgt-form select,
.tgc--terracotta .tgc-booking__form .tgt-form textarea { border-color: #ead8c2; background: #fffaf5; }
.tgc--terracotta .tgc-booking__form .tgt-form input:focus,
.tgc--terracotta .tgc-booking__form .tgt-form select:focus,
.tgc--terracotta .tgc-booking__form .tgt-form textarea:focus { border-color: #b4532a; outline-color: rgba(180, 83, 42, .25); background: #fff; }
.tgc--terracotta .tgc-booking__form .tgt-form__send { background: #b4532a; color: #fff; box-shadow: 0 12px 26px rgba(180, 83, 42, .28); }
.tgc--terracotta .tgc-booking__form .tgt-form__send:hover { background: #7a3218; }
.tgc--terracotta .tgc-other { border-color: #ead8c2; background: #fffaf2; }
.tgc--terracotta .tgc-other__meta, .tgc--terracotta .tgc-other__link { color: #b4532a; }
.tgc--terracotta .tgc-btn--gold { background: #b4532a; color: #fff; box-shadow: 0 12px 26px rgba(180, 83, 42, .28); }
.tgc--terracotta .tgc-btn--gold:hover { background: #7a3218; color: #fff; }
.tgc--terracotta .tgc-btn--line { border-color: #b4532a; color: #7a3218; }
.tgc--terracotta .tgc-btn--line:hover { background: #b4532a; color: #fff; }
.tgc--terracotta .tgc-micro .tgc-ico { color: #b4532a; }
.tgc--terracotta .tgt-car__dots button { background: rgba(180, 83, 42, .28); }
.tgc--terracotta .tgt-car__dots button[aria-current="true"] { background: #b4532a; }
.tgc--terracotta .tgt-car__arrow:hover { color: #b4532a; }
.tgc--terracotta .tgc-finderband .tgc-finder__bar,
.tgc--terracotta .tgc-finderband .tgc-finder__result { border-color: #ead8c2; box-shadow: 0 16px 40px rgba(122, 50, 24, .1); }
.tgc--terracotta .tgc-finderband .tgc-finder__foot { color: #6e5a4a; }
.tgc--terracotta .tgc-finder__label { color: #b4532a; }
.tgc--terracotta .tgc-finder__field + .tgc-finder__field { border-color: #f0e2d0; }
.tgc--terracotta .tgc-finder__field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b4532a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.tgc--terracotta .tgc-finder__go { background: linear-gradient(135deg, #c8623a 0%, #b4532a 55%, #9c4422 100%); color: #fff; }
.tgc--terracotta .tgc-finder__other-toggle { color: #b4532a; }
.tgc--terracotta .tgc-finder__req { border-color: #b4532a; color: #7a3218; }
.tgc--terracotta .tgc-finder__req:hover { background: #b4532a; color: #fff; }
.tgc--terracotta .tgc-finder__tour--fits .tgc-finder__fit { color: #5e6b2e; }
.tgc--terracotta .tgc-finderband__points { color: #5a4636; }
.tgc--terracotta .tgc-finderband__points .tgc-ico { color: #b4532a; }
.tgc--terracotta .tgc-sticky { background: rgba(122, 50, 24, .97); }
.tgc--terracotta .tgc-sticky__cta { background: #f3c98b; color: #2b1d14; }
.tgc--terracotta .tgc-sticky__cta:hover { background: #fff; color: #7a3218; }
.tgc--terracotta .tgc-sticky--all .tgc-sticky__check { color: #f3c98b; }

/* ---------------------------------------------------------------- Darkroom theme
 * "theme": "darkroom" (the photography excursion, 2026-09-25): the whole page is a darkroom.
 * Near-black #0f1012 and #16181b bands, graphite #1a1c1f cards, bone #ede6da / #f4efe6 type,
 * and a safelight red (#e0482f, #f07a5f on dark) for labels, accents and buttons.
 */
.tgc--darkroom { background: #0f1012; color: #d8d1c5; }
.tgc--darkroom .tgc-band--white { background: #0f1012; }
.tgc--darkroom .tgc-band--cream { background: #16181b; }
.tgc--darkroom .tgc-band--navy { background: #0a0b0c; }
.tgc--darkroom .tgc-band--teal { background: #16181b; border-top: 1px solid #24262a; }
.tgc--darkroom .tgc-band--teal.tgc-band--facts { border-bottom: 1px solid #24262a; }
.tgc--darkroom .tgc-strip__icon,
.tgc--darkroom .tgc-band--teal .tgc-strip__icon { border-color: rgba(240, 122, 95, .55); background: rgba(255, 255, 255, .03); color: #f07a5f; }
.tgc--darkroom .tgc-strip__text strong { color: #f4efe6; }
.tgc--darkroom .tgc-strip__text span { color: #a9a296; }
.tgc--darkroom .tgc-kicker { color: #f07a5f; }
.tgc--darkroom .tgc-title { color: #f4efe6; }
.tgc--darkroom .tgc-title em { color: #f07a5f; }
.tgc--darkroom .tgc-lead { color: #a9a296; }
.tgc--darkroom .tgc-answer__text p { color: #c9c2b6; }
.tgc--darkroom .tgc-answer__text p:first-child { color: #f4efe6; }
.tgc--darkroom .tgc-answer__text a,
.tgc--darkroom .tgc-note a,
.tgc--darkroom .tgc-textlink { color: #f07a5f; }
.tgc--darkroom .tgc-note { color: #a9a296; }
.tgc--darkroom .tgc-reason { border-color: #24262a; }
.tgc--darkroom .tgc-reason__icon { border-color: rgba(240, 122, 95, .45); color: #f07a5f; }
.tgc--darkroom .tgc-reason__title { color: #f4efe6; }
.tgc--darkroom .tgc-reason__text { color: #a9a296; }
.tgc--darkroom .tgc-reasons--3 .tgc-reason__icon { display: none; }
.tgc--darkroom .tgc-reasons--3 { counter-reset: role; }
.tgc--darkroom .tgc-reasons--3 .tgc-reason { counter-increment: role; }
.tgc--darkroom .tgc-reasons--3 .tgc-reason::before {
	content: counter(role, decimal-leading-zero); display: block; margin-bottom: 14px;
	font-family: Georgia, 'Times New Roman', serif; font-size: 64px; line-height: 1; color: #e0482f;
}
.tgc--darkroom .tgc-glance__item { border-color: #2a2d31; background: #1a1c1f; }
.tgc--darkroom .tgc-glance__icon { background: #242629; color: #f07a5f; }
.tgc--darkroom .tgc-glance__label { color: #f07a5f; }
.tgc--darkroom .tgc-glance__value { color: #f4efe6; }
.tgc--darkroom .tgc-glance__text { color: #a9a296; }
.tgc--darkroom .tgc-spec { border-color: #2a2d31; background: #16181b; }
.tgc--darkroom .tgc-band--cream .tgc-spec { background: #1a1c1f; }
.tgc--darkroom .tgc-spec__kicker { color: #f07a5f; }
.tgc--darkroom .tgc-spec__title { color: #f4efe6; }
.tgc--darkroom .tgc-spec__list li { border-color: #2a2d31; color: #c9c2b6; }
.tgc--darkroom .tgc-spec__list li::before { background: #e0482f; }
.tgc--darkroom .tgc-list li { border-color: #2a2d31; color: #f4efe6; }
.tgc--darkroom .tgc-list--cross .tgc-list__mark::before { color: #e0482f; }
.tgc--darkroom .tgc-stats,
.tgc--darkroom .tgc-stat { border-color: #2a2d31; }
.tgc--darkroom .tgc-stat dt { color: #f4efe6; }
.tgc--darkroom .tgc-stat dd { color: #f07a5f; }
.tgc--darkroom .tgc-tablewrap { border-color: #2a2d31; background: #16181b; box-shadow: none; }
.tgc--darkroom .tgc-table thead th { border-color: #2a2d31; background: #1c1e21; color: #f07a5f; }
.tgc--darkroom .tgc-table tbody th { color: #f4efe6; }
.tgc--darkroom .tgc-table tbody th, .tgc--darkroom .tgc-table tbody td { border-color: #24262a; color: #c9c2b6; }
.tgc--darkroom .tgc-table tbody tr:hover { background: #1a1c1f; }
.tgc--darkroom .tgc-table td a { color: #f07a5f; }
.tgc--darkroom .tgc-tag--yes { background: rgba(240, 122, 95, .14); color: #f07a5f; }
.tgc--darkroom .tgc-review { border-color: #2a2d31; background: #1a1c1f; }
.tgc--darkroom .tgc-review::before { color: rgba(240, 122, 95, .3); }
.tgc--darkroom .tgc-review__text { color: #e6dfd3; }
.tgc--darkroom .tgc-review__by { border-color: #2a2d31; }
.tgc--darkroom .tgc-review__by strong { color: #f4efe6; }
.tgc--darkroom .tgc-review__by span span { color: #8f897e; }
.tgc--darkroom .tgc-review__initial { background: #e0482f; color: #fff; }
.tgc--darkroom .tgc-reviews__source a { color: #f07a5f; }
.tgc--darkroom .tgc-faq__item { border-color: #2a2d31; }
.tgc--darkroom .tgc-faq__list { border-color: #2a2d31; }
.tgc--darkroom .tgc-faq__q { color: #f4efe6; }
.tgc--darkroom .tgc-faq__q:hover { color: #f07a5f; }
.tgc--darkroom .tgc-faq__a p { color: #b9b2a6; }
.tgc--darkroom .tgc-faq__mark { border-color: #3a3d42; color: #f07a5f; }
.tgc--darkroom .tgc-faq__item[open] .tgc-faq__mark { background: #e0482f; border-color: #e0482f; color: #fff; }
.tgc--darkroom .tgc-faq__ask { background: #1f2124; }
.tgc--darkroom .tgc-faq__ask:hover { background: #2a2d31; }
.tgc--darkroom .tgc-booking__summary { border: 1px solid #2a2d31; background: #1a1c1f; }
.tgc--darkroom .tgc-booking__price { border-color: #2a2d31; }
.tgc--darkroom .tgc-booking__list .tgc-ico,
.tgc--darkroom .tgc-micro--left .tgc-ico { color: #f07a5f; }
.tgc--darkroom .tgc-booking__form .tgt-form { border-color: #2a2d31; background: #16181b; box-shadow: none; }
.tgc--darkroom .tgc-booking__form .tgt-form__row label { color: #d8d1c5; }
.tgc--darkroom .tgc-booking__form .tgt-form input,
.tgc--darkroom .tgc-booking__form .tgt-form select,
.tgc--darkroom .tgc-booking__form .tgt-form textarea { border-color: #33363b; background: #0f1012; color: #ede6da; color-scheme: dark; }
.tgc--darkroom .tgc-booking__form .tgt-form input::placeholder,
.tgc--darkroom .tgc-booking__form .tgt-form textarea::placeholder { color: #6f6a62; }
.tgc--darkroom .tgc-booking__form .tgt-form input:focus,
.tgc--darkroom .tgc-booking__form .tgt-form select:focus,
.tgc--darkroom .tgc-booking__form .tgt-form textarea:focus { border-color: #f07a5f; outline-color: rgba(240, 122, 95, .3); background: #121315; }
.tgc--darkroom .tgc-booking__form .tgt-form__send { background: #e0482f; color: #fff; box-shadow: 0 12px 26px rgba(224, 72, 47, .25); }
.tgc--darkroom .tgc-booking__form .tgt-form__send:hover { background: #f07a5f; }
.tgc--darkroom .tgc-booking__form .tgt-form__promise { color: #8f897e; }
.tgc--darkroom .tgc-other { border-color: #2a2d31; background: #1a1c1f; }
.tgc--darkroom .tgc-other__title { color: #f4efe6; }
.tgc--darkroom .tgc-other__sum { color: #a9a296; }
.tgc--darkroom .tgc-other__meta, .tgc--darkroom .tgc-other__link { color: #f07a5f; }
.tgc--darkroom .tgc-micro { color: #a9a296; }
.tgc--darkroom .tgc-micro .tgc-ico { color: #f07a5f; }
.tgc--darkroom .tgc-btn--gold { background: #e0482f; color: #fff; box-shadow: none; }
.tgc--darkroom .tgc-btn--gold:hover { background: #f07a5f; color: #fff; }
.tgc--darkroom .tgc-btn--line { border-color: #ede6da; color: #ede6da; }
.tgc--darkroom .tgc-btn--line:hover { background: #ede6da; color: #0f1012; }
.tgc--darkroom .tgc-hero { background-color: #0a0b0c; }
.tgc--darkroom .tgc-finder__label { color: #c23b25; }
.tgc--darkroom .tgc-finder__field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c23b25' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.tgc--darkroom .tgc-finder__go { background: #e0482f; color: #fff; }
.tgc--darkroom .tgc-finder__go:hover { filter: none; background: #f07a5f; }
.tgc--darkroom .tgc-finder__other-toggle { color: #f07a5f; }
.tgc--darkroom .tgc-finder__req { border-color: #e0482f; color: #0f1012; }
.tgc--darkroom .tgc-finder__req:hover { background: #e0482f; color: #fff; }
.tgc--darkroom .tgc-finder__tour--fits .tgc-finder__fit { color: #1a6e8a; }
.tgc--darkroom .tgc-finder__rating:hover { border-color: #f07a5f; }
.tgc--darkroom .tgc-sticky { background: rgba(10, 11, 12, .96); }
.tgc--darkroom .tgc-sticky--all { border: 1px solid #2a2d31; }
.tgc--darkroom .tgc-sticky__cta { background: #e0482f; color: #fff; }
.tgc--darkroom .tgc-sticky__cta:hover { background: #f07a5f; color: #fff; }
.tgc--darkroom .tgc-sticky--all .tgc-sticky__check { color: #f07a5f; }

@media (max-width: 1024px) {
	.tgc-hero--split .tgc-hero__grid { grid-template-columns: 1fr; gap: 36px; }
	.tgc-hero__photo { max-width: 620px; }
	.tgc-hero__photo img { aspect-ratio: 4 / 3; }
	.tgc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-hero--viewfinder .tgc-hero__inner { padding: 36px 32px 40px; }
}
@media (max-width: 760px) {
	.tgc-hero--split { padding: 26px 18px 44px; }
	.tgc-hero__photo { margin: 0 10px 10px 0; }
	.tgc-hero__photo::before { inset: 10px -10px -10px 10px; border-radius: 16px; }
	.tgc-hero__photo img { border-radius: 16px; }
	.tgc-hero__meta div { flex-basis: 50%; }
	.tgc-hero__meta div:nth-child(3) { border-left: 0; border-top: 1px dashed #d4ae8a; }
	.tgc-specs { grid-template-columns: minmax(0, 1fr); }
	.tgc-spec { padding: 24px 22px 20px; }
	.tgc-film { margin: 0 -18px; padding: 0 18px 12px; }
	.tgc-film__frame { width: 250px; }
	.tgc-list li { gap: 16px; }
	.tgc-stat { padding: 22px 18px; }
	.tgc-hero--viewfinder { padding: 30px 14px 44px; }
	.tgc-hero--viewfinder .tgc-hero__inner { padding: 30px 18px 32px; }
	.tgc-hero--viewfinder .tgc-hero__inner::after { top: 12px; right: 14px; }
	.tgc--darkroom .tgc-reasons--3 .tgc-reason::before { font-size: 48px; }
}
@media (prefers-reduced-motion: reduce) {
	.tgc-film__img img { transition: none; }
}
@media (min-width: 1025px) {
	.tgc-reasons--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Wide screens: the whole strip fits, so no frame hides off to the side. */
@media (min-width: 1180px) {
	.tgc-film { overflow: visible; margin: 0; padding: 0; }
	.tgc-film__strip { width: 100%; }
	.tgc-film__frame { flex: 1 1 0; width: auto; min-width: 0; }
}
.tgc-stat dt { white-space: nowrap; }
@media (max-width: 760px) {
	/* The table turns into one card per row on a phone: dark cards on the darkroom page. */
	.tgc--darkroom .tgc-table tr { border-color: #2a2d31; background: #1a1c1f; }
	.tgc--darkroom .tgc-table tbody tr:hover { background: #1a1c1f; }
	.tgc--darkroom .tgc-table tbody th { border-color: #2a2d31; background: #22252a; color: #f4efe6; }
	.tgc--darkroom .tgc-table tbody td::before { color: #f07a5f; }
	.tgc--terracotta .tgc-table tr { border-color: #ead8c2; }
	.tgc--terracotta .tgc-table tbody tr:hover { background: #fff; }
	.tgc--terracotta .tgc-table tbody th { border-color: #ead8c2; background: #f6e7d4; color: #2b1d14; }
	.tgc--terracotta .tgc-table tbody td::before { color: #b4532a; }
	.tgc-stat dt { font-size: 36px; }
}
/* Photo credits for openly licensed images ("credits" in the content file). */
.tgc-credits { margin: 0; padding: 18px 0 22px; border-top: 1px solid #ece6da; background: #fff; font-size: 12.5px; line-height: 1.6; color: #8a8375; }
.tgc-credits .tgc-wrap { display: block; }
.tgc-credits a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.tgc--blue .tgc-credits { border-color: #dde9ee; color: #6f8791; }
/* The card's "View details" button (card_cta: details): the WhatsApp button's shape, no icon. */
.tgc-card__details { gap: 6px; }

/* ---------------------------------------------------------------- Road Trip (multi-day tours)
 * "theme": "roadtrip" with the hero "layout": "roadtrip": night indigo #141b2f / #202b4d /
 * #2b3a66 and desert sand #f5ede0 / #fffdf9, amber for the accents on light grounds (text
 * #945614, fills #b8701f, buttons #a8621a / #7f4912) and dune #e8bd78 on dark ones. The hero
 * sets one photo beside the text and draws the route under both ("route"); "days" is the
 * day-by-day journal and "sleep" the nights and the hotel levels (catalog-block.php).
 */
.tgc--roadtrip { color: #2a2a33; }
.tgc--roadtrip .tgc-band--white { background: #fffdf9; }
.tgc--roadtrip .tgc-band--cream { background: #f5ede0; }
.tgc--roadtrip .tgc-band--navy { background: #202b4d; }
.tgc--roadtrip .tgc-band--navy .tgc-kicker,
.tgc--roadtrip .tgc-band--navy .tgc-title em { color: #e8bd78; }
.tgc--roadtrip .tgc-band--navy .tgc-reason__icon { border-color: rgba(232, 189, 120, .5); color: #e8bd78; }
.tgc--roadtrip .tgc-band--teal { background: #26335c; }
.tgc--roadtrip .tgc-band--teal .tgc-strip__icon { border-color: rgba(232, 189, 120, .55); background: rgba(255, 255, 255, .06); color: #e8bd78; }
.tgc--roadtrip .tgc-band--teal .tgc-strip__text strong { color: #fff; }
.tgc--roadtrip .tgc-band--teal .tgc-strip__text span { color: rgba(255, 255, 255, .76); }
.tgc--roadtrip .tgc-kicker { color: #945614; }
.tgc--roadtrip .tgc-title { color: #1b2033; }
.tgc--roadtrip .tgc-band--navy .tgc-title { color: #fff; }
.tgc--roadtrip .tgc-title em { color: #945614; }
.tgc--roadtrip .tgc-lead { color: #5d5648; }
.tgc--roadtrip .tgc-answer__text p { color: #4b4a52; }
.tgc--roadtrip .tgc-answer__text p:first-child { color: #1b2033; }
.tgc--roadtrip .tgc-answer__text a,
.tgc--roadtrip .tgc-glance__text a,
.tgc--roadtrip .tgc-table td a,
.tgc--roadtrip .tgc-faq__a a,
.tgc--roadtrip .tgc-day__text a,
.tgc--roadtrip .tgc-note a { color: #945614; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--roadtrip .tgc-answer__text a:hover,
.tgc--roadtrip .tgc-glance__text a:hover,
.tgc--roadtrip .tgc-table td a:hover,
.tgc--roadtrip .tgc-faq__a a:hover,
.tgc--roadtrip .tgc-day__text a:hover,
.tgc--roadtrip .tgc-note a:hover { color: #202b4d; }
.tgc--roadtrip .tgc-fact { border-color: #eadfcb; background: #fbf6ed; }
.tgc--roadtrip .tgc-band--cream .tgc-fact { background: #fffdf9; }
.tgc--roadtrip .tgc-fact__icon { border-color: rgba(184, 112, 31, .4); color: #b8701f; }
.tgc--roadtrip .tgc-glance__item { border-color: #eadfcb; background: #fffdf9; }
.tgc--roadtrip .tgc-band--white .tgc-glance__item { background: #fbf6ed; }
.tgc--roadtrip .tgc-glance__icon { background: #f3e6cf; color: #945614; }
.tgc--roadtrip .tgc-glance__label { color: #945614; }
.tgc--roadtrip .tgc-glance__value { color: #1b2033; }
.tgc--roadtrip .tgc-glance__text { color: #5d5648; }
.tgc--roadtrip .tgc-pricing__col { border-color: #eadfcb; }
.tgc--roadtrip .tgc-pricing__col--included { border-top-color: #b8701f; }
.tgc--roadtrip .tgc-pricing__col--included li .tgc-ico { background: #f5e6cc; color: #945614; }
.tgc--roadtrip .tgc-pricing__col--excluded { background: #faf4ea; }
.tgc--roadtrip .tgc-banner { background: #202b4d; }
.tgc--roadtrip .tgc-banner__icon { color: #e8bd78; }
.tgc--roadtrip .tgc-tablewrap { border-color: #eadfcb; }
.tgc--roadtrip .tgc-table thead th { border-color: #eadfcb; background: #f3e9d8; color: #7a4611; }
.tgc--roadtrip .tgc-table tbody tr:hover { background: #fcf7ef; }
.tgc--roadtrip .tgc-tag--yes { background: #f1e7d3; color: #7a4611; }
.tgc--roadtrip .tgc-faq__q:hover { color: #945614; }
.tgc--roadtrip .tgc-faq__mark { border-color: #e3cfae; color: #945614; }
.tgc--roadtrip .tgc-faq__item[open] .tgc-faq__mark { background: #a8621a; border-color: #a8621a; color: #fff; }
.tgc--roadtrip .tgc-faq__ask { background: #202b4d; }
.tgc--roadtrip .tgc-faq__ask:hover { background: #2b3a66; }
.tgc--roadtrip .tgc-booking__summary { background: #202b4d; }
.tgc--roadtrip .tgc-booking__price strong { font-size: 36px; }
.tgc--roadtrip .tgc-booking__list .tgc-ico,
.tgc--roadtrip .tgc-micro--left .tgc-ico { color: #e8bd78; }
.tgc--roadtrip .tgc-booking__form .tgt-form input,
.tgc--roadtrip .tgc-booking__form .tgt-form select,
.tgc--roadtrip .tgc-booking__form .tgt-form textarea { border-color: #eadfcb; background: #fffcf7; }
.tgc--roadtrip .tgc-booking__form .tgt-form input:focus,
.tgc--roadtrip .tgc-booking__form .tgt-form select:focus,
.tgc--roadtrip .tgc-booking__form .tgt-form textarea:focus { border-color: #a8621a; outline-color: rgba(168, 98, 26, .25); background: #fff; }
.tgc--roadtrip .tgc-booking__form .tgt-form__send { background: #a8621a; color: #fff; box-shadow: 0 12px 26px rgba(168, 98, 26, .28); }
.tgc--roadtrip .tgc-booking__form .tgt-form__send:hover { background: #7f4912; }
.tgc--roadtrip .tgc-other { border-color: #eadfcb; background: #fffdf9; }
.tgc--roadtrip .tgc-other__meta,
.tgc--roadtrip .tgc-other__link { color: #945614; }
.tgc--roadtrip .tgc-btn--gold { background: #a8621a; color: #fff; box-shadow: 0 12px 26px rgba(168, 98, 26, .28); }
.tgc--roadtrip .tgc-btn--gold:hover { background: #7f4912; color: #fff; }
.tgc--roadtrip .tgc-btn--line { border-color: #a8621a; color: #7f4912; }
.tgc--roadtrip .tgc-btn--line:hover { background: #a8621a; color: #fff; }
.tgc--roadtrip .tgc-micro .tgc-ico { color: #b8701f; }
.tgc--roadtrip .tgc-sticky { background: rgba(20, 27, 47, .97); }
.tgc--roadtrip .tgc-sticky__cta { background: #e8bd78; color: #141b2f; }
.tgc--roadtrip .tgc-sticky__cta:hover { background: #fff; color: #141b2f; }
.tgc--roadtrip .tgc-credits { border-color: #eadfcb; background: #fffdf9; color: #857c6c; }

/* The hero: text beside one photo on a night ground, the route line under both. */
.tgc-hero--roadtrip {
	padding: 32px 24px 40px; text-align: left;
	background: radial-gradient(120% 90% at 88% 0%, rgba(232, 189, 120, .17) 0%, rgba(232, 189, 120, 0) 55%), linear-gradient(180deg, #141b2f 0%, #1a2340 60%, #202b4d 100%);
}
.tgc-hero--roadtrip::before { display: none; }
.tgc-hero--roadtrip .tgc-hero__inner { max-width: 1200px; }
.tgc-hero--roadtrip .tgc-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; }
.tgc-hero--roadtrip .tgt-crumbs,
.tgc-hero--roadtrip .tgt-crumbs ol { justify-content: flex-start; }
.tgc-hero--roadtrip .tgt-crumbs a:hover { color: #e8bd78; }
.tgc-hero--roadtrip .tgc-kicker--light { color: #e8bd78; }
.tgc-hero--roadtrip .tgc-kicker--light::after { display: none; }
.tgc-hero--roadtrip .tgc-hero__title { font-size: clamp(34px, 1.8vw + 20px, 50px); }
.tgc-hero--roadtrip .tgc-hero__title em { color: #e8bd78; }
.tgc-hero--roadtrip .tgc-hero__lead { max-width: 580px; margin: 18px 0 0; font-size: 17px; color: rgba(255, 255, 255, .82); }
.tgc-hero--roadtrip .tgc-hero__meta { border-color: rgba(232, 189, 120, .4); background: rgba(255, 255, 255, .04); }
.tgc-hero--roadtrip .tgc-hero__meta div + div { border-left-color: rgba(232, 189, 120, .3); }
.tgc-hero--roadtrip .tgc-hero__meta dt { color: #e8bd78; }
.tgc-hero--roadtrip .tgc-hero__meta dd { color: #fff; }
.tgc-hero--roadtrip .tgc-hero__price { margin: 22px 0 0; color: rgba(255, 255, 255, .76); }
.tgc-hero--roadtrip .tgc-hero__price strong { margin: 0 6px 0 0; font-size: 26px; }
.tgc-hero--roadtrip .tgc-hero__act { justify-content: flex-start; margin-top: 20px; }
.tgc-hero--roadtrip .tgc-btn--gold { background: #e8bd78; color: #141b2f; box-shadow: 0 12px 26px rgba(232, 189, 120, .22); }
.tgc-hero--roadtrip .tgc-btn--gold:hover { background: #fff; color: #141b2f; }
.tgc-hero--roadtrip .tgc-hero__trust { justify-content: flex-start; margin-top: 18px; color: rgba(255, 255, 255, .72); }
.tgc-hero--roadtrip .tgc-hero__trust .tgc-ico { color: #e8bd78; }
.tgc-hero--roadtrip .tgc-finder__rating { margin-top: 18px; }
.tgc-hero--roadtrip .tgc-finder__rating:hover { border-color: #e8bd78; }
.tgc-hero--roadtrip .tgc-hero__photo { order: 0; margin: 14px 14px 0 0; }
.tgc-hero--roadtrip .tgc-hero__photo::before { inset: -14px -14px 14px 14px; border-color: rgba(232, 189, 120, .55); }
.tgc-hero--roadtrip .tgc-hero__photo img { max-height: 560px; box-shadow: 0 26px 56px rgba(0, 0, 0, .35); }

.tgc-routeline {
	list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
	margin: 32px 0 0; padding: 22px 0 0; border-top: 1px solid rgba(232, 189, 120, .2);
}
.tgc-routeline__stop { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 6px; text-align: center; }
.tgc-routeline__stop::before { content: ''; position: absolute; top: 7px; left: 0; right: 0; border-top: 2px dashed rgba(232, 189, 120, .45); }
.tgc-routeline__stop:first-child::before { left: 50%; }
.tgc-routeline__stop:last-child::before { right: 50%; }
.tgc-routeline__stop:only-child::before { display: none; }
.tgc-routeline__dot { position: relative; z-index: 1; width: 16px; height: 16px; border: 2px solid #e8bd78; border-radius: 50%; background: #1a2340; }
.tgc-routeline__stop:first-child .tgc-routeline__dot,
.tgc-routeline__stop:last-child .tgc-routeline__dot { background: #e8bd78; }
.tgc-routeline__place { margin-top: 12px; font-family: Georgia, 'Times New Roman', serif; font-size: 17px; line-height: 1.25; color: #fff; overflow-wrap: anywhere; }
.tgc-routeline__nights { margin-top: 5px; font-size: 11px; font-weight: 700; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; color: #e8bd78; }

/* The journal: the day number on a dashed line, the day, one photo. */
.tgc-days { list-style: none; max-width: 1080px; margin: 0 auto; padding: 0; }
.tgc-day { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr) minmax(0, .92fr); gap: 0 36px; align-items: start; padding: 0 0 52px; }
.tgc-day:last-child { padding-bottom: 0; }
.tgc-day::before { content: ''; position: absolute; top: 88px; bottom: 10px; left: 37px; border-left: 2px dashed #dfcaa3; }
.tgc-day:last-child::before { display: none; }
.tgc-day--text { grid-template-columns: 76px minmax(0, 1fr); }
.tgc-day--text .tgc-day__body { max-width: 720px; }
.tgc-day__no {
	display: flex; flex-direction: column; align-items: center; justify-content: center; width: 76px; height: 76px; margin: 0;
	border-radius: 50%; background: #202b4d; box-shadow: 0 0 0 6px #fffdf9; font-family: Georgia, 'Times New Roman', serif; font-size: 28px; line-height: 1; color: #fff;
}
.tgc-band--cream .tgc-day__no { box-shadow: 0 0 0 6px #f5ede0; }
.tgc-day__no span { margin-bottom: 3px; font-family: 'Trebuchet MS', 'Segoe UI', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #e8bd78; }
.tgc-day__leg { margin: 4px 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #945614; }
.tgc-day__title { margin: 0 0 14px; font-family: Georgia, 'Times New Roman', serif; font-size: 26px; font-weight: 400; line-height: 1.2; color: #1b2033; text-wrap: balance; }
.tgc-day__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; }
.tgc-day__chips li { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border: 1px solid #eadfcb; border-radius: 999px; background: #fbf6ed; font-size: 13px; line-height: 1.3; color: #3b3a44; }
.tgc-band--cream .tgc-day__chips li { background: #fffdf9; }
.tgc-day__chips .tgc-ico { color: #b8701f; }
.tgc-day__text { margin: 0; font-size: 16px; line-height: 1.75; color: #4b4a52; }
.tgc-day__see { margin: 14px 0 0; font-size: 14px; line-height: 1.6; color: #5d5648; }
.tgc-day__see span { margin-right: 4px; font-weight: 700; color: #945614; }
.tgc-day__photo { margin: 0; }
.tgc-day__photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; box-shadow: 0 18px 40px rgba(27, 32, 51, .14); }

/* Where you sleep, then the three hotel levels. */
.tgc-stays { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; margin: 0; padding: 0; }
.tgc-stay { padding: 22px 22px 20px; border: 1px solid #eadfcb; border-radius: 16px; background: #fffdf9; }
.tgc-band--white .tgc-stay { background: #fbf6ed; }
.tgc-stay__nights { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #945614; }
.tgc-stay__nights strong { display: block; margin-bottom: 4px; font-family: Georgia, 'Times New Roman', serif; font-size: 40px; font-weight: 400; line-height: 1; letter-spacing: 0; color: #202b4d; }
.tgc-stay__place { margin: 12px 0 4px; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.3; color: #1b2033; }
.tgc-stay__text { margin: 0; font-size: 14px; line-height: 1.55; color: #5d5648; }
.tgc-tiers__title { margin: 44px 0 16px; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; text-align: center; color: #1b2033; }
.tgc-tiers { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
.tgc-tier { padding: 24px 24px 22px; border-radius: 16px; background: #202b4d; }
.tgc-tier:nth-child(2) { background: #2b3a66; }
.tgc-tier:nth-child(3) { background: #141b2f; }
.tgc-tier__name { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 21px; color: #e8bd78; }
.tgc-tier__text { margin: 0; font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .82); }

@media (max-width: 1024px) {
	.tgc-hero--roadtrip .tgc-hero__grid { grid-template-columns: 1fr; gap: 36px; }
	.tgc-hero--roadtrip .tgc-hero__photo img { aspect-ratio: 16 / 10; max-height: 380px; }
	.tgc-day { grid-template-columns: 76px minmax(0, 1fr); }
	.tgc-day__photo { grid-column: 2; max-width: 640px; margin-top: 20px; }
	.tgc-tiers { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	.tgc-routeline { grid-auto-flow: row; grid-auto-columns: auto; margin-top: 32px; padding-top: 18px; }
	.tgc-routeline__stop { flex-direction: row; align-items: center; gap: 12px; padding: 7px 0; text-align: left; }
	.tgc-routeline__stop::before { top: 0; bottom: 0; left: 7px; right: auto; border-top: 0; border-left: 2px dashed rgba(232, 189, 120, .45); }
	.tgc-routeline__stop:first-child::before { top: 50%; left: 7px; }
	.tgc-routeline__stop:last-child::before { bottom: 50%; right: auto; }
	.tgc-routeline__dot { flex: none; }
	.tgc-routeline__place { margin-top: 0; }
	.tgc-routeline__nights { margin: 0 0 0 auto; padding-left: 12px; text-align: right; }
}
@media (max-width: 760px) {
	.tgc-hero--roadtrip { padding: 28px 18px 34px; }
	.tgc-hero--roadtrip .tgc-hero__meta div { min-width: 0; padding: 10px 14px; }
	.tgc-hero--roadtrip .tgc-hero__photo { margin: 10px 10px 0 0; }
	.tgc-hero--roadtrip .tgc-hero__photo::before { inset: -10px -10px 10px 10px; }
	.tgc-day { grid-template-columns: 52px minmax(0, 1fr); gap: 0 16px; padding-bottom: 38px; }
	.tgc-day--text { grid-template-columns: 52px minmax(0, 1fr); }
	.tgc-day::before { top: 62px; left: 25px; }
	.tgc-day__no { width: 52px; height: 52px; font-size: 20px; box-shadow: 0 0 0 5px #fffdf9; }
	.tgc-band--cream .tgc-day__no { box-shadow: 0 0 0 5px #f5ede0; }
	.tgc-day__no span { font-size: 8px; letter-spacing: .14em; }
	.tgc-day__title { font-size: 22px; }
	.tgc-day__text { font-size: 15.5px; }
	.tgc-day__photo { margin-top: 16px; }
	.tgc-stays { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.tgc-stay { padding: 18px 16px 16px; }
	.tgc-stay__nights strong { font-size: 34px; }
}

/* ---------------------------------------------------------------- Zellige (things to do in Tangier)
 * "theme": "zellige": deep emerald #0a4b3d / #073a30, emerald #0d6b56 for text and buttons on
 * light grounds, mint #e4f1ea and paper #fbfaf5 bands, saffron #e2a52b for accents on dark and
 * for fills. Dark bands carry a faint eight-point-star lattice, like a zellige floor.
 */
.tgc--zellige { color: #1d2a26; }
.tgc--zellige .tgc-band--white { background: #fbfaf5; }
.tgc--zellige .tgc-band--cream { background: #e9f3ed; }
.tgc--zellige .tgc-band--navy,
.tgc--zellige .tgc-band--teal,
.tgc-hero--bento {
	background-color: #0a4b3d;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88'%3E%3Cg fill='none' stroke='%23e2a52b' stroke-opacity='.13' stroke-width='1.2'%3E%3Crect x='22' y='22' width='44' height='44'/%3E%3Crect x='22' y='22' width='44' height='44' transform='rotate(45 44 44)'/%3E%3Ccircle cx='44' cy='44' r='9'/%3E%3Cpath d='M0 0l22 22M88 0L66 22M0 88l22-22M88 88L66 66'/%3E%3C/g%3E%3C/svg%3E");
}
.tgc--zellige .tgc-band--teal { background-color: #0d5a49; }
.tgc--zellige .tgc-band--teal .tgc-strip__icon { border-color: rgba(226, 165, 43, .6); background: rgba(255, 255, 255, .06); color: #e2a52b; }
.tgc--zellige .tgc-band--teal .tgc-strip__text strong { color: #fff; }
.tgc--zellige .tgc-band--teal .tgc-strip__text span { color: rgba(255, 255, 255, .76); }
.tgc--zellige .tgc-band--navy .tgc-kicker,
.tgc--zellige .tgc-band--navy .tgc-title em { color: #e2a52b; }
.tgc--zellige .tgc-band--navy .tgc-reason__icon { border-color: rgba(226, 165, 43, .5); color: #e2a52b; }
.tgc--zellige .tgc-kicker { color: #0d6b56; }
.tgc--zellige .tgc-title { color: #13241f; }
.tgc--zellige .tgc-band--navy .tgc-title { color: #fff; }
.tgc--zellige .tgc-title em { color: #0d6b56; }
.tgc--zellige .tgc-lead { color: #52615b; }
.tgc--zellige .tgc-band--navy .tgc-lead { color: rgba(255, 255, 255, .8); }
.tgc--zellige .tgc-answer__text p { color: #3f4d48; }
.tgc--zellige .tgc-answer__text p:first-child { color: #13241f; }
.tgc--zellige .tgc-answer__text a,
.tgc--zellige .tgc-glance__text a,
.tgc--zellige .tgc-faq__a a,
.tgc--zellige .tgc-note a,
.tgc--zellige .tgc-act__text a { color: #0d6b56; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--zellige .tgc-fact { border-color: #d6e7de; background: #f1f7f3; }
.tgc--zellige .tgc-band--cream .tgc-fact { background: #fbfaf5; }
.tgc--zellige .tgc-fact__icon { border-color: rgba(13, 107, 86, .35); color: #0d6b56; }
.tgc--zellige .tgc-glance__item { border-color: #d6e7de; background: #fbfaf5; }
.tgc--zellige .tgc-glance__icon { background: #dcefe5; color: #0d6b56; }
.tgc--zellige .tgc-glance__label { color: #0d6b56; }
.tgc--zellige .tgc-glance__value { color: #13241f; }
.tgc--zellige .tgc-glance__text { color: #52615b; }
.tgc--zellige .tgc-place { border-color: #d6e7de; background: #fff; }
.tgc--zellige .tgc-place__meta { color: #0d6b56; }
.tgc--zellige .tgc-faq__q:hover { color: #0d6b56; }
.tgc--zellige .tgc-faq__mark { border-color: #bcd9cb; color: #0d6b56; }
.tgc--zellige .tgc-faq__item[open] .tgc-faq__mark { background: #0d6b56; border-color: #0d6b56; color: #fff; }
.tgc--zellige .tgc-faq__ask { background: #0a4b3d; }
.tgc--zellige .tgc-faq__ask:hover { background: #0d6b56; }
.tgc--zellige .tgc-booking__summary { background: #0a4b3d; }
.tgc--zellige .tgc-booking__list .tgc-ico,
.tgc--zellige .tgc-micro--left .tgc-ico { color: #e2a52b; }
.tgc--zellige .tgc-booking__form .tgt-form input,
.tgc--zellige .tgc-booking__form .tgt-form select,
.tgc--zellige .tgc-booking__form .tgt-form textarea { border-color: #d6e7de; background: #fbfdfb; }
.tgc--zellige .tgc-booking__form .tgt-form input:focus,
.tgc--zellige .tgc-booking__form .tgt-form select:focus,
.tgc--zellige .tgc-booking__form .tgt-form textarea:focus { border-color: #0d6b56; outline-color: rgba(13, 107, 86, .25); background: #fff; }
.tgc--zellige .tgc-booking__form .tgt-form__send { background: #0d6b56; color: #fff; box-shadow: 0 12px 26px rgba(13, 107, 86, .25); }
.tgc--zellige .tgc-booking__form .tgt-form__send:hover { background: #0a4b3d; }
.tgc--zellige .tgc-btn--gold { background: #e2a52b; color: #13241f; }
.tgc--zellige .tgc-btn--gold:hover { background: #f0bd52; color: #13241f; }
.tgc--zellige .tgc-btn--line { border-color: #0d6b56; color: #0a4b3d; }
.tgc--zellige .tgc-btn--line:hover { background: #0d6b56; color: #fff; }
.tgc--zellige .tgc-pill { background: #dcefe5; color: #0a4b3d; }
.tgc--zellige .tgc-pill:hover { background: #cbe6d8; }
.tgc--zellige .tgc-pill[aria-pressed="true"] { background: #0d6b56; color: #fff; box-shadow: 0 6px 16px rgba(13, 107, 86, .28); }
.tgc--zellige .tgc-credits { border-color: #d6e7de; background: #fbfaf5; color: #6b7a74; }

/* The bento hero: the title on the left, four labelled photos on the right. */
.tgc-hero--bento { padding: 36px 24px 56px; text-align: left; background-size: 88px 88px; background-position: 0 0; }
.tgc-hero--bento::before { display: none; }
.tgc-hero--bento .tgc-hero__inner { max-width: 1200px; }
.tgc-hero--bento .tgc-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; }
.tgc-hero--bento .tgt-crumbs,
.tgc-hero--bento .tgt-crumbs ol { justify-content: flex-start; }
.tgc-hero--bento .tgt-crumbs a:hover { color: #e2a52b; }
.tgc-hero--bento .tgc-kicker--light { color: #e2a52b; }
.tgc-hero--bento .tgc-kicker--light::after { display: none; }
.tgc-hero--bento .tgc-hero__title { font-size: clamp(38px, 2.6vw + 20px, 64px); }
.tgc-hero--bento .tgc-hero__title em { color: #e2a52b; }
.tgc-hero--bento .tgc-hero__lead { max-width: 560px; margin: 20px 0 0; font-size: 17.5px; }
.tgc-hero--bento .tgc-hero__act { justify-content: flex-start; margin-top: 24px; }
.tgc-hero--bento .tgc-hero__trust { justify-content: flex-start; margin-top: 18px; }
.tgc-hero--bento .tgc-hero__trust .tgc-ico { color: #e2a52b; }
.tgc-hero--bento .tgc-finder__rating { margin-top: 20px; }
.tgc-hero__moods { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 24px 0 0; }
.tgc-hero__moods span { margin-right: 4px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.tgc-hero__moods a { padding: 8px 15px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; font-size: 14px; font-weight: 700; color: #fff; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.tgc-hero__moods a:hover { border-color: #e2a52b; background: #e2a52b; color: #13241f; text-decoration: none; }
.tgc-bento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tgc-bento__tile { position: relative; margin: 0; overflow: hidden; border-radius: 20px; box-shadow: 0 20px 44px rgba(0, 0, 0, .28); }
.tgc-bento__tile:nth-child(even) { transform: translateY(28px); }
.tgc-bento__tile img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .6s ease; }
.tgc-bento__tile:hover img { transform: scale(1.04); }
.tgc-bento__tile figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(251, 250, 245, .94); font-size: 13px; font-weight: 700; color: #0a4b3d; }

/* The explorer: kind filters over photo cards, each with "Add to my day". */
.tgc-explore__bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 28px; }
.tgc-explore__bar .tgc-pill span { margin-left: 4px; font-size: 12px; opacity: .7; }
.tgc-acts { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; }
.tgc-act { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #d6e7de; border-radius: 18px; background: #fff; scroll-margin-top: 110px; transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease; }
.tgc-act:hover { box-shadow: 0 18px 40px rgba(10, 75, 61, .12); transform: translateY(-3px); }
.tgc-act.is-out { display: none; }
.tgc-act.is-picked { border-color: #0d6b56; box-shadow: 0 0 0 2px #0d6b56; }
.tgc-act.is-flash { animation: tgc-flash 1.6s ease; }
@keyframes tgc-flash { 0%, 60% { box-shadow: 0 0 0 4px #e2a52b; } 100% { box-shadow: none; } }
.tgc-act__img { position: relative; margin: 0; overflow: hidden; background: #dcefe5; }
.tgc-act__img img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .6s ease; }
.tgc-act:hover .tgc-act__img img { transform: scale(1.04); }
.tgc-act__tag { position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; background: rgba(251, 250, 245, .95); font-size: 12px; font-weight: 700; color: #0a4b3d; }
.tgc-act__price { position: absolute; right: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; background: #0a4b3d; font-size: 12.5px; font-weight: 700; color: #fff; }
.tgc-act__body { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 20px; }
.tgc-act__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 8px; font-size: 13px; color: #52615b; }
.tgc-act__meta span { display: inline-flex; align-items: center; gap: 6px; }
.tgc-act__meta .tgc-ico { width: 15px; height: 15px; color: #0d6b56; }
.tgc-act__title { margin: 0 0 8px; font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; line-height: 1.25; color: #13241f; }
.tgc-act__text { flex: 1; margin: 0; font-size: 15px; line-height: 1.65; color: #45534e; }
.tgc-act__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.tgc-act__link { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: #0d6b56; }
.tgc-act__link:hover { color: #0a4b3d; }
.tgc-act__add { flex: none; padding: 9px 14px; border: 1.5px solid #0d6b56; border-radius: 999px; background: #fff; font: inherit; font-size: 13.5px; font-weight: 700; color: #0a4b3d; cursor: pointer; transition: background .2s ease, color .2s ease; }
.tgc-act__add:hover { background: #e9f3ed; }
.tgc-act__add[aria-pressed="true"] { background: #0d6b56; color: #fff; }
.tgc-act__add .tgc-act__on,
.tgc-act__add[aria-pressed="true"] .tgc-act__off { display: none; }
.tgc-act__add[aria-pressed="true"] .tgc-act__on { display: inline; }
.tgc-act__add[aria-pressed="true"] .tgc-act__on::before { content: '\2713\00a0'; }

/* The day tray, fixed at the bottom of the screen once something is picked. */
.tgc-tray { position: fixed; left: 50%; bottom: 18px; z-index: 80; display: flex; flex-direction: column; align-items: center; width: min(420px, calc(100% - 32px)); transform: translateX(-50%); }
.tgc-tray[hidden] { display: none; }
.tgc-tray__toggle { display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border: 0; border-radius: 999px; background: #0a4b3d; font: inherit; font-size: 15px; font-weight: 700; color: #fff; box-shadow: 0 14px 34px rgba(7, 58, 48, .4); cursor: pointer; }
.tgc-tray__toggle b { display: grid; place-items: center; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 999px; background: #e2a52b; font-size: 13.5px; color: #13241f; }
.tgc-tray__panel { order: -1; width: 100%; max-height: min(70vh, 560px); margin-bottom: 12px; padding: 20px 20px 16px; overflow-y: auto; border: 1px solid #d6e7de; border-radius: 18px; background: #fff; box-shadow: 0 24px 60px rgba(7, 58, 48, .28); }
.tgc-tray__title { margin: 0 0 12px; font-family: Georgia, 'Times New Roman', serif; font-size: 21px; color: #13241f; }
.tgc-tray__slots { list-style: none; margin: 0; padding: 0; }
.tgc-tray__slots > li { padding: 10px 0; border-top: 1px dashed #d6e7de; }
.tgc-tray__slot { display: block; margin-bottom: 4px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #0d6b56; }
.tgc-tray__slots ul { list-style: none; margin: 0; padding: 0; }
.tgc-tray__slots ul li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 3px 0; font-size: 15px; color: #1d2a26; }
.tgc-tray__x { flex: none; width: 28px; height: 28px; border: 0; border-radius: 50%; background: #eef5f1; font-size: 18px; line-height: 1; color: #52615b; cursor: pointer; }
.tgc-tray__x:hover { background: #dcefe5; color: #0a4b3d; }
.tgc-tray__total { margin: 10px 0 14px; padding-top: 10px; border-top: 1px solid #d6e7de; font-size: 14px; color: #52615b; }
.tgc-tray__act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.tgc-tray__act .tgc-btn { padding: 12px 18px; font-size: 14px; }
.tgc-tray__clear { margin-left: auto; padding: 6px 4px; border: 0; background: none; font: inherit; font-size: 13.5px; color: #52615b; text-decoration: underline; cursor: pointer; }

/* The map: a schematic of the coast, numbered pins, the legend beside it. */
.tgc-map { display: grid; gap: 28px; }
.tgc-map__fig { width: 100%; max-width: 940px; margin: 0 auto; }
.tgc-map__svg { display: block; width: 100%; height: auto; border: 1px solid #d6e7de; border-radius: 20px; }
.tgc-map__sea { fill: #d4eaec; }
.tgc-map__land { fill: #f3ecd9; stroke: #c9b98f; stroke-width: 2; }
.tgc-map__road { fill: none; stroke: #b28a3c; stroke-width: 3; stroke-dasharray: 2 9; stroke-linecap: round; }
.tgc-map__label { font: italic 17px Georgia, 'Times New Roman', serif; fill: #6b7a74; }
.tgc-map__label--sea { font-size: 22px; fill: #4f8791; letter-spacing: .06em; }
.tgc-map__pin { cursor: default; }
.tgc-map__pin circle { fill: #0d6b56; stroke: #fff; stroke-width: 3; transition: fill .2s ease, r .2s ease; }
.tgc-map__pin text { font: 700 15px 'Trebuchet MS', 'Segoe UI', sans-serif; fill: #fff; text-anchor: middle; }
.tgc-map__pin.is-on circle { fill: #e2a52b; r: 21; }
.tgc-map__pin.is-on text { fill: #13241f; }
.tgc-map__fig figcaption { margin-top: 10px; font-size: 13px; color: #6b7a74; }
.tgc-map__legend { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; }
.tgc-map__legend li { display: flex; gap: 12px; padding: 14px; border: 1px solid #d6e7de; border-radius: 14px; background: #fff; transition: background .2s ease, border-color .2s ease; }
.tgc-map__legend li.is-on { border-color: #0d6b56; background: #e9f3ed; }
.tgc-map__no { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: #0d6b56; font-size: 14px; font-weight: 700; color: #fff; }
.tgc-map__legend li.is-on .tgc-map__no { background: #e2a52b; color: #13241f; }
.tgc-map__name { margin: 3px 0 2px; font-family: Georgia, 'Times New Roman', serif; font-size: 18px; color: #13241f; }
.tgc-map__far { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: 13px; font-weight: 700; color: #0d6b56; }
.tgc-map__text { margin: 0; font-size: 14px; line-height: 1.55; color: #52615b; }
.tgc-map__see { display: inline-block; margin-top: 4px; font-size: 13.5px; font-weight: 700; color: #0d6b56; text-decoration: underline; text-underline-offset: 3px; }

/* Sample days in tabs. */
.tgc-tabs__list { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.tgc-tabs:not(.tgc-tabs--js) .tgc-tabs__list { display: none; }
.tgc-tabs:not(.tgc-tabs--js) .tgc-tabs__panel + .tgc-tabs__panel { margin-top: 48px; }
.tgc-tabs__tab { padding: 11px 20px; border: 1.5px solid #bcd9cb; border-radius: 999px; background: #fff; font: inherit; font-size: 15px; font-weight: 700; color: #0a4b3d; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.tgc-tabs__tab:hover { border-color: #0d6b56; }
.tgc-tabs__tab[aria-selected="true"] { border-color: #0d6b56; background: #0d6b56; color: #fff; }
.tgc-tabs__head { max-width: 720px; margin: 0 auto 26px; text-align: center; }
.tgc-tabs__title { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: 26px; font-weight: 400; color: #13241f; }
.tgc-tabs__lead { margin: 8px 0 0; font-size: 16px; line-height: 1.6; color: #52615b; }
.tgc-plan { list-style: none; position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 18px; margin: 0; padding: 0; }
.tgc-plan::before { content: ''; position: absolute; top: 9px; left: 8px; right: 8px; border-top: 2px dashed #9cc7b4; }
.tgc-plan__step { position: relative; padding: 30px 18px 18px; border-radius: 16px; background: #fff; box-shadow: 0 10px 26px rgba(10, 75, 61, .07); }
.tgc-plan__step::before { content: ''; position: absolute; top: 1px; left: 18px; width: 16px; height: 16px; border: 3px solid #e9f3ed; border-radius: 50%; background: #0d6b56; }
.tgc-plan__time { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #0d6b56; }
.tgc-plan__title { margin: 0 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 18.5px; font-weight: 400; line-height: 1.3; color: #13241f; }
.tgc-plan__text { margin: 0; font-size: 14.5px; line-height: 1.6; color: #52615b; }
.tgc-plan__link { display: inline-block; margin-top: 8px; font-size: 13.5px; font-weight: 700; color: #0d6b56; text-decoration: underline; text-underline-offset: 3px; }

/* The seasons, each with its temperature range drawn on a bar. */
.tgc-seasons { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; }
.tgc-season { padding: 24px 22px 22px; border: 1px solid #d6e7de; border-top: 4px solid #0d6b56; border-radius: 16px; background: #fff; }
.tgc-season--spring { border-top-color: #6a9e3f; }
.tgc-season--summer { border-top-color: #e2a52b; }
.tgc-season--autumn { border-top-color: #c46a2d; }
.tgc-season--winter { border-top-color: #4f7fa6; }
.tgc-season__months { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #52615b; }
.tgc-season__name { margin: 4px 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 24px; font-weight: 400; color: #13241f; }
.tgc-season__temp { margin: 0; font-size: 13.5px; color: #52615b; }
.tgc-season__temp strong { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: 26px; font-weight: 400; color: #13241f; }
.tgc-season__bar { position: relative; display: block; height: 8px; margin: 12px 0 14px; border-radius: 999px; background: #e7eeea; }
.tgc-season__bar span { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: linear-gradient(90deg, #4f7fa6, #e2a52b); }
.tgc-season--summer .tgc-season__bar span { background: linear-gradient(90deg, #e2a52b, #c8502d); }
.tgc-season__text { margin: 0; font-size: 14.5px; line-height: 1.6; color: #45534e; }
.tgc-season__best { margin: 12px 0 0; padding-top: 12px; border-top: 1px dashed #d6e7de; font-size: 14px; line-height: 1.5; color: #1d2a26; }
.tgc-season__best span { display: block; margin-bottom: 2px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #0d6b56; }

/* The timeline, over a faded photo on a dark band. */
.tgc-band--timeline { position: relative; isolation: isolate; overflow: hidden; }
.tgc-bandimg { position: absolute; inset: 0; z-index: -1; }
.tgc-bandimg img { width: 100%; height: 100%; object-fit: cover; opacity: .2; }
.tgc-timeline { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 28px; margin: 0; padding: 0; }
.tgc-timeline__item { position: relative; padding-top: 22px; border-top: 1px solid rgba(226, 165, 43, .45); }
.tgc-timeline__item::before { content: ''; position: absolute; top: -6px; left: 0; width: 11px; height: 11px; border-radius: 50%; background: #e2a52b; }
.tgc-timeline__year { margin: 0 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 34px; line-height: 1; color: #e2a52b; }
.tgc-timeline__title { margin: 0 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; line-height: 1.3; color: #fff; }
.tgc-timeline__text { margin: 0; font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .78); }
.tgc-band--timeline .tgc-note { color: rgba(255, 255, 255, .7); }
.tgc-band--timeline .tgc-note a { color: #e2a52b; }

@media (max-width: 1024px) {
	.tgc-hero--bento .tgc-hero__grid { grid-template-columns: 1fr; gap: 36px; }
	.tgc-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
	.tgc-bento__tile:nth-child(even) { transform: none; }
	.tgc-acts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-map__legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-plan { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-plan::before { display: none; }
	.tgc-seasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.tgc-hero--bento { padding: 26px 18px 40px; }
	.tgc-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-bento__tile figcaption { left: 8px; bottom: 8px; padding: 4px 9px; font-size: 11.5px; }
	.tgc-explore__bar { flex-wrap: nowrap; justify-content: flex-start; margin: 0 -18px 22px; padding: 0 18px 4px; overflow-x: auto; scrollbar-width: none; }
	.tgc-explore__bar .tgc-pill { flex: none; }
	.tgc-acts { grid-template-columns: 1fr; }
	.tgc-map__legend { grid-template-columns: 1fr; }
	.tgc-map__legend li { padding: 12px; }
	.tgc-tabs__list { flex-wrap: nowrap; justify-content: flex-start; margin: 0 -18px 22px; padding: 0 18px 4px; overflow-x: auto; scrollbar-width: none; }
	.tgc-tabs__tab { flex: none; }
	.tgc-plan { grid-template-columns: 1fr; }
	.tgc-seasons { grid-template-columns: 1fr; }
	.tgc-timeline { grid-template-columns: 1fr; gap: 28px; }
	.tgc-tray { bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.tgc-act, .tgc-act__img img, .tgc-bento__tile img { transition: none; }
	.tgc-act.is-flash { animation: none; }
}

/* ---------------------------------------------------------------- Souk (the shopping tour)
 * "theme": "souk": aubergine #3a1832 / #26101f, saffron #e9a321, turquoise #127a74 for links
 * and buttons on light grounds, paprika #b8431f for small accents, paper #f7efe2 and kraft
 * #efe2cc bands. Photos sit in horseshoe arches, advice on price tags, the list on a receipt.
 */
.tgc--souk { color: #2b1a24; }
.tgc--souk .tgc-band--white { background: #fffaf2; }
.tgc--souk .tgc-band--cream { background: #f4e9d6; }
.tgc--souk .tgc-band--navy,
.tgc--souk .tgc-band--teal,
.tgc-hero--arcade {
	background-color: #3a1832;
	background-image: radial-gradient(circle at 12% 0%, rgba(233, 163, 33, .2), rgba(233, 163, 33, 0) 45%), radial-gradient(circle at 92% 100%, rgba(18, 122, 116, .28), rgba(18, 122, 116, 0) 50%);
}
.tgc--souk .tgc-band--teal .tgc-strip__icon { border-color: rgba(233, 163, 33, .6); background: rgba(255, 255, 255, .06); color: #e9a321; }
.tgc--souk .tgc-band--teal .tgc-strip__text strong { color: #fff; }
.tgc--souk .tgc-band--teal .tgc-strip__text span { color: rgba(255, 255, 255, .76); }
.tgc--souk .tgc-band--navy .tgc-kicker,
.tgc--souk .tgc-band--navy .tgc-title em { color: #e9a321; }
.tgc--souk .tgc-band--navy .tgc-reason__icon { border-color: rgba(233, 163, 33, .5); color: #e9a321; }
.tgc--souk .tgc-band--navy .tgc-lead { color: rgba(255, 255, 255, .8); }
.tgc--souk .tgc-kicker { color: #b8431f; }
.tgc--souk .tgc-title { color: #26101f; }
.tgc--souk .tgc-band--navy .tgc-title { color: #fff; }
.tgc--souk .tgc-title em { color: #127a74; }
.tgc--souk .tgc-lead { color: #5e4a52; }
.tgc--souk .tgc-answer__text p { color: #4a3840; }
.tgc--souk .tgc-answer__text p:first-child { color: #26101f; }
.tgc--souk .tgc-answer__text a,
.tgc--souk .tgc-glance__text a,
.tgc--souk .tgc-faq__a a,
.tgc--souk .tgc-note a { color: #127a74; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--souk .tgc-fact { border-color: #ead9bf; background: #fbf4e8; }
.tgc--souk .tgc-band--cream .tgc-fact { background: #fffaf2; }
.tgc--souk .tgc-fact__icon { border-color: rgba(184, 67, 31, .35); color: #b8431f; }
.tgc--souk .tgc-glance__item { border-color: #ead9bf; background: #fffaf2; }
.tgc--souk .tgc-band--white .tgc-glance__item { background: #fbf4e8; }
.tgc--souk .tgc-glance__icon { background: #f6dfc9; color: #b8431f; }
.tgc--souk .tgc-glance__label { color: #b8431f; }
.tgc--souk .tgc-glance__value { color: #26101f; }
.tgc--souk .tgc-glance__text { color: #5e4a52; }
.tgc--souk .tgc-pricing__col { border-color: #ead9bf; }
.tgc--souk .tgc-pricing__col--included { border-top-color: #127a74; }
.tgc--souk .tgc-pricing__col--included li .tgc-ico { background: #d9eeec; color: #127a74; }
.tgc--souk .tgc-pricing__col--excluded { background: #fbf4e8; }
.tgc--souk .tgc-banner { background: #3a1832; }
.tgc--souk .tgc-banner__icon { color: #e9a321; }
.tgc--souk .tgc-review { border-color: #ead9bf; background: #fffaf2; }
.tgc--souk .tgc-review__initial { background: #3a1832; color: #e9a321; }
.tgc--souk .tgc-reviews__source a { color: #127a74; }
.tgc--souk .tgc-faq__q:hover { color: #127a74; }
.tgc--souk .tgc-faq__mark { border-color: #e2c9a8; color: #b8431f; }
.tgc--souk .tgc-faq__item[open] .tgc-faq__mark { background: #b8431f; border-color: #b8431f; color: #fff; }
.tgc--souk .tgc-faq__ask { background: #3a1832; }
.tgc--souk .tgc-faq__ask:hover { background: #26101f; }
.tgc--souk .tgc-booking__summary { background: #3a1832; }
.tgc--souk .tgc-booking__list .tgc-ico,
.tgc--souk .tgc-micro--left .tgc-ico { color: #e9a321; }
.tgc--souk .tgc-booking__form .tgt-form input,
.tgc--souk .tgc-booking__form .tgt-form select,
.tgc--souk .tgc-booking__form .tgt-form textarea { border-color: #ead9bf; background: #fffcf7; }
.tgc--souk .tgc-booking__form .tgt-form input:focus,
.tgc--souk .tgc-booking__form .tgt-form select:focus,
.tgc--souk .tgc-booking__form .tgt-form textarea:focus { border-color: #127a74; outline-color: rgba(18, 122, 116, .25); background: #fff; }
.tgc--souk .tgc-booking__form .tgt-form__send { background: #127a74; color: #fff; box-shadow: 0 12px 26px rgba(18, 122, 116, .25); }
.tgc--souk .tgc-booking__form .tgt-form__send:hover { background: #0d5e59; }
.tgc--souk .tgc-other { border-color: #ead9bf; background: #fffaf2; }
.tgc--souk .tgc-other__meta,
.tgc--souk .tgc-other__link { color: #127a74; }
.tgc--souk .tgc-btn--gold { background: #e9a321; color: #26101f; }
.tgc--souk .tgc-btn--gold:hover { background: #f5bb4a; color: #26101f; }
.tgc--souk .tgc-btn--line { border-color: #127a74; color: #0d5e59; }
.tgc--souk .tgc-btn--line:hover { background: #127a74; color: #fff; }
.tgc--souk .tgc-micro .tgc-ico { color: #127a74; }
.tgc--souk .tgc-sticky { background: rgba(38, 16, 31, .97); }
.tgc--souk .tgc-sticky__cta { background: #e9a321; color: #26101f; }
.tgc--souk .tgc-sticky__cta:hover { background: #fff; color: #26101f; }
.tgc--souk .tgc-credits { border-color: #ead9bf; background: #fffaf2; color: #7a6670; }

/* The arcade hero: the text centred, then a street of arched shop doorways. */
.tgc-hero--arcade { padding: 34px 24px 0; overflow: hidden; }
.tgc-hero--arcade::before { display: none; }
.tgc-hero--arcade .tgc-hero__inner { max-width: 1200px; }
.tgc-hero--arcade .tgt-crumbs a:hover { color: #e9a321; }
.tgc-hero--arcade .tgc-kicker--light { color: #e9a321; }
.tgc-hero--arcade .tgc-hero__title { max-width: 900px; margin-inline: auto; font-size: clamp(38px, 2.8vw + 20px, 66px); }
.tgc-hero--arcade .tgc-hero__title em { color: #e9a321; }
.tgc-hero--arcade .tgc-hero__lead { max-width: 700px; }
.tgc-hero--arcade .tgc-hero__trust .tgc-ico { color: #e9a321; }
.tgc-hero--arcade .tgc-finder__rating { margin: 20px auto 0; }
.tgc-arcade { list-style: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; align-items: end; margin: 40px 0 0; padding: 0; }
.tgc-arcade__door a { display: flex; flex-direction: column; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.tgc-arcade__arch { position: relative; display: block; width: 100%; overflow: hidden; border: 3px solid #e9a321; border-bottom: 0; border-radius: 999px 999px 0 0 / 46% 46% 0 0; background: #26101f; }
.tgc-arcade__door:nth-child(odd) .tgc-arcade__arch { margin-bottom: 26px; }
.tgc-arcade__arch img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .6s ease; }
.tgc-arcade__door a:hover img { transform: scale(1.05); }
.tgc-arcade__label { order: -1; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .1); font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.tgc-arcade__door a:hover .tgc-arcade__label { background: #e9a321; color: #26101f; }

/* The shops, one per row, the photo in an arch and the lesson on paper. */
.tgc-stalls { list-style: none; display: grid; gap: 56px; max-width: 1080px; margin: 0 auto; padding: 0; counter-reset: stall; }
.tgc-stall { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px; align-items: center; scroll-margin-top: 110px; }
.tgc-stall:nth-child(even) { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.tgc-stall:nth-child(even) .tgc-stall__door { order: 2; }
.tgc-stall__door { position: relative; isolation: isolate; margin: 0; }
.tgc-stall__door img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 999px 999px 18px 18px / 40% 40% 18px 18px; box-shadow: 0 22px 46px rgba(38, 16, 31, .2); }
.tgc-stall__door::after { content: ''; position: absolute; inset: -10px -10px 10px 10px; z-index: -1; border: 2px solid #e9a321; border-radius: 999px 999px 22px 22px / 40% 40% 22px 22px; }
.tgc-stall:nth-child(even) .tgc-stall__door::after { inset: -10px 10px 10px -10px; }
.tgc-stall__no { position: absolute; left: 50%; bottom: -22px; display: grid; place-items: center; width: 52px; height: 52px; border: 4px solid #fffaf2; border-radius: 50%; background: #b8431f; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; color: #fff; transform: translateX(-50%); }
.tgc-band--cream .tgc-stall__no { border-color: #f4e9d6; }
.tgc-stall__kicker { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #b8431f; }
.tgc-stall__title { margin: 0 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 30px; font-weight: 400; line-height: 1.2; color: #26101f; }
.tgc-stall__text { margin: 0 0 16px; font-size: 16px; line-height: 1.7; color: #4a3840; }
.tgc-stall__lesson { margin: 0 0 16px; padding: 16px 18px; border-left: 4px solid #e9a321; border-radius: 0 14px 14px 0; background: #fbf1df; }
.tgc-band--cream .tgc-stall__lesson { background: #fffaf2; }
.tgc-stall__lesson p { margin: 0; font-size: 15px; line-height: 1.65; color: #3d2a33; }
.tgc-stall__label { display: flex; align-items: center; gap: 7px; margin: 0 0 6px !important; font-size: 12px !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #9a5a12 !important; }
.tgc-stall__label .tgc-ico { color: #b8431f; }
.tgc-stall__label--look { color: #127a74 !important; }
.tgc-stall__label--look .tgc-ico { color: #127a74; }
.tgc-stall__look { margin: 0 0 16px; padding: 0 0 0 20px; font-size: 15px; line-height: 1.65; color: #4a3840; }
.tgc-stall__buy { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.tgc-stall__buy li { padding: 6px 12px; border: 1px dashed #c9a36b; border-radius: 999px; font-size: 13.5px; color: #3d2a33; }

/* The shopping list and its receipt. */
.tgc-shoplist { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.tgc-shoplist__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tgc-shoplist__group { margin: 0; padding: 18px 18px 14px; border: 1px solid #ead9bf; border-radius: 16px; background: #fffaf2; }
.tgc-shoplist__group legend { padding: 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 18px; color: #26101f; }
.tgc-shoplist__group ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.tgc-shoplist__group input { position: absolute; opacity: 0; pointer-events: none; }
.tgc-shoplist__group label { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1.5px solid #e2c9a8; border-radius: 999px; background: #fff; font-size: 14px; color: #3d2a33; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.tgc-shoplist__group label::before { content: '+'; font-weight: 700; color: #b8431f; }
.tgc-shoplist__group input:checked + label { border-color: #127a74; background: #127a74; color: #fff; }
.tgc-shoplist__group input:checked + label::before { content: '\2713'; color: #fff; }
.tgc-shoplist__group input:focus-visible + label { outline: 3px solid rgba(18, 122, 116, .35); outline-offset: 2px; }
.tgc-receipt { position: sticky; top: 110px; padding: 26px 24px 30px; background: #fff; box-shadow: 0 20px 44px rgba(38, 16, 31, .14); font-size: 15px; color: #2b1a24;
	-webkit-mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 24px 12px repeat-x;
	mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / 24px 12px repeat-x; }
.tgc-receipt__head { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; text-align: center; color: #26101f; }
.tgc-receipt__sub { margin: 2px 0 14px; padding-bottom: 14px; border-bottom: 2px dashed #e2c9a8; font-size: 12px; letter-spacing: .16em; text-align: center; text-transform: uppercase; color: #7a6670; }
.tgc-receipt__list { list-style: none; margin: 0; padding: 0; }
.tgc-receipt__list li { padding: 8px 0; border-bottom: 1px dashed #efe2cc; }
.tgc-receipt__group { display: block; margin-bottom: 2px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #b8431f; }
.tgc-receipt__item { display: block; padding-left: 12px; line-height: 1.6; }
.tgc-receipt__empty { margin: 8px 0; font-style: italic; color: #7a6670; }
.tgc-receipt__total { display: flex; justify-content: space-between; margin: 12px 0 16px; padding-top: 12px; border-top: 2px dashed #e2c9a8; font-weight: 700; }
.tgc-receipt__act { display: grid; gap: 10px; margin: 0; }
.tgc-receipt__act[hidden] { display: none; }
.tgc-receipt__act .tgc-btn { justify-content: center; padding: 13px 18px; font-size: 14.5px; }
.tgc-receipt__foot { margin: 14px 0 0; font-size: 13px; line-height: 1.5; text-align: center; color: #7a6670; }

/* Souk know-how, on price tags. */
.tgc-pricetags { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 22px; margin: 0; padding: 0; }
.tgc-pricetag { position: relative; padding: 26px 24px 24px 50px; border-radius: 10px 18px 18px 10px; background: #fffaf2; box-shadow: 0 12px 28px rgba(38, 16, 31, .09);
	clip-path: polygon(26px 0, 100% 0, 100% 100%, 26px 100%, 0 50%); transform: rotate(-1deg); }
.tgc-pricetag:nth-child(even) { transform: rotate(1deg); }
.tgc-pricetag::before { content: ''; position: absolute; left: 16px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border: 2px solid #c9a36b; border-radius: 50%; background: #f4e9d6; }
.tgc-band--white .tgc-pricetag { background: #fbf1df; }
.tgc-pricetag__title { margin: 0 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: #26101f; }
.tgc-pricetag__text { margin: 0; font-size: 14.5px; line-height: 1.6; color: #4a3840; }

@media (max-width: 1024px) {
	.tgc-arcade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; }
	.tgc-arcade__door:nth-child(odd) .tgc-arcade__arch { margin-bottom: 0; }
	.tgc-shoplist { grid-template-columns: 1fr; }
	.tgc-receipt { position: static; }
	.tgc-pricetags { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.tgc-hero--arcade { padding: 26px 18px 0; }
	.tgc-arcade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 28px; }
	.tgc-arcade__label { padding: 4px 8px; font-size: 11.5px; }
	.tgc-stall, .tgc-stall:nth-child(even) { grid-template-columns: 1fr; gap: 34px; }
	.tgc-stall:nth-child(even) .tgc-stall__door { order: 0; }
	.tgc-stall__door { max-width: 320px; margin: 0 auto; }
	.tgc-stall__title { font-size: 25px; }
	.tgc-shoplist__groups { grid-template-columns: 1fr; }
	.tgc-pricetags { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.tgc-arcade__arch img { transition: none; }
}

/* ---------------------------------------------------------------- Day trip from Spain
 * The "fromspain" planner of the private tours page: city tabs, then the road, the ferry and
 * the tours that fit. House colours (navy, gold, teal), since that page has no theme.
 */
.tgc-spain { max-width: 1080px; margin: 0 auto; }
.tgc-spain__ask { margin: 0 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-align: center; text-transform: uppercase; color: #a8862e; }
.tgc-spain__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 26px; }
.tgc-spain:not(.tgc-tabs--js) .tgc-spain__list,
.tgc-spain:not(.tgc-tabs--js) .tgc-spain__ask { display: none; }
.tgc-spain:not(.tgc-tabs--js) .tgc-spain__panel + .tgc-spain__panel { margin-top: 24px; }
.tgc-spain__tab { padding: 11px 20px; border: 1.5px solid #e2d3ab; border-radius: 999px; background: #fff; font: inherit; font-size: 15px; font-weight: 700; color: #0e1620; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.tgc-spain__tab:hover { border-color: #c8a44a; }
.tgc-spain__tab[aria-selected="true"] { border-color: #0e1620; background: #0e1620; color: #fff; }
.tgc-spain__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); overflow: hidden; border: 1px solid #ece5d6; border-radius: 22px; background: #fff; box-shadow: 0 18px 44px rgba(14, 22, 32, .07); }
.tgc-spain__panel[hidden] { display: none; }
.tgc-spain__route { padding: 30px 32px; background: linear-gradient(160deg, #0e1620 0%, #172536 100%); color: #fff; }
.tgc-spain__city { margin: 0 0 20px; font-family: Georgia, 'Times New Roman', serif; font-size: 28px; font-weight: 400; color: #fff; }
.tgc-spain__city span { font-style: italic; color: #e0c475; }
.tgc-spain__legs { list-style: none; position: relative; margin: 0; padding: 0; }
.tgc-spain__legs::before { content: ''; position: absolute; top: 18px; bottom: 18px; left: 17px; border-left: 2px dashed rgba(224, 196, 117, .45); }
.tgc-spain__legs li { position: relative; display: grid; grid-template-columns: 36px 1fr; column-gap: 14px; align-items: center; padding: 8px 0; }
.tgc-spain__legs .tgc-ico { grid-row: span 2; width: 36px; height: 36px; padding: 8px; border: 1px solid rgba(224, 196, 117, .55); border-radius: 50%; background: #0e1620; color: #e0c475; }
.tgc-spain__legs span { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.tgc-spain__legs strong { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: #fff; }
.tgc-spain__tip { margin: 20px 0 0; padding: 14px 16px; border-radius: 12px; background: rgba(255, 255, 255, .07); font-size: 14.5px; line-height: 1.6; color: rgba(255, 255, 255, .86); }
.tgc-spain__tip a { color: #e0c475; text-decoration: underline; text-underline-offset: 3px; }
.tgc-spain__fit { padding: 30px 32px; }
.tgc-spain__fitlabel { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #a8862e; }
.tgc-spain__fit ul { list-style: none; display: grid; gap: 12px; margin: 0; padding: 0; }
.tgc-spain__tour { display: flex; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; border: 1px solid #ece5d6; border-radius: 14px; color: #0e1620; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.tgc-spain__tour:hover { border-color: #c8a44a; box-shadow: 0 10px 24px rgba(14, 22, 32, .08); transform: translateY(-2px); color: #0e1620; text-decoration: none; }
.tgc-spain__tour img { flex: none; width: 64px; height: 64px; object-fit: cover; border-radius: 10px; }
.tgc-spain__tour span { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.tgc-spain__tour strong { font-family: Georgia, 'Times New Roman', serif; font-size: 17.5px; font-weight: 400; }
.tgc-spain__tour small { margin-top: 3px; font-size: 13px; color: #6b6558; }
.tgc-spain__tour .tgc-ico { flex: none; color: #a8862e; }
@media (max-width: 760px) {
	.tgc-spain__list { flex-wrap: nowrap; justify-content: flex-start; margin: 0 -18px 20px; padding: 0 18px 4px; overflow-x: auto; scrollbar-width: none; }
	.tgc-spain__tab { flex: none; }
	.tgc-spain__panel { grid-template-columns: 1fr; }
	.tgc-spain__route, .tgc-spain__fit { padding: 24px 20px; }
	.tgc-spain__city { font-size: 24px; }
}

/* ---------------------------------------------------------------- a crossing (answer block, "crossing")
 * Drawn still here; catalog-motion.css sails the ferry. The ferry rests at the far end. */
/* The crossing from Spain: a ferry sails the Strait from Tarifa to Tangier. */
.tgc-m-cross { display: flex; align-items: center; gap: 14px; margin: 4px 0 22px; color: #0e1620; font-family: Georgia, 'Times New Roman', serif; font-size: 15px; }
.tgc-m-cross__end { display: flex; flex: none; align-items: center; gap: 8px; }
.tgc-m-cross__end i { width: 11px; height: 11px; border: 2px solid #c8a44a; border-radius: 50%; background: #fff; }
.tgc-m-cross__end:last-child i { background: #c8a44a; box-shadow: 0 0 0 4px rgba(200, 164, 74, .2); }
.tgc-m-cross__sea { position: relative; flex: 1; height: 34px; }
.tgc-m-cross__sea svg { position: absolute; right: 0; bottom: 4px; left: 0; width: 100%; height: 10px; overflow: visible; }
.tgc-m-cross__sea path { fill: none; stroke: #1a6e8a; stroke-width: 1.4; opacity: .5; vector-effect: non-scaling-stroke; }
.tgc-m-cross__ferry { position: absolute; bottom: 9px; left: 100%; width: 40px; transform: translateX(-50%); }
.tgc-m-cross__ferry svg { position: static; display: block; width: 40px; height: 20px; }
.tgc-m-cross__time { position: absolute; top: -8px; left: 50%; color: #1a6e8a; font-family: 'Trebuchet MS', Tahoma, sans-serif; font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transform: translateX(-50%); white-space: nowrap; }
@media (max-width: 760px) { .tgc-m-cross { gap: 10px; font-size: 14px; } }
