/*
 * "theme": "keswa" (the Jewish heritage page, 2026-09-26). Loaded only on its page (inc/catalog.php).
 *
 * After the keswa kbira, the velvet and gold-thread wedding dress of Tetouan's Jewish brides:
 * velvet #1f1733 / #2e2248, gold thread #d4ab55 on dark grounds, gold dark #86651f for kickers on
 * light grounds, violet #4b2f73 for title accents, ivory #fbf8f1 and parchment #f3ecdd bands,
 * ink #221c26, soft ink #5b5261, muted #857b88, rule #e6dccb, pomegranate #9e2f3c in small doses.
 * Own pieces: the "keswa" hero (photo under a gold arch, the route under both) and the
 * "itineraries" block; assets/js/catalog-keswa.js picks a trip in the form.
 */

.tgc--keswa { color: #221c26; }
.tgc--keswa .tgc-band--white { background: #fbf8f1; }
.tgc--keswa .tgc-band--cream { background: #f3ecdd; }
.tgc--keswa .tgc-band--navy {
	background-color: #1f1733;
	background-image: radial-gradient(ellipse at 10% 0%, rgba(212, 171, 85, .14), rgba(212, 171, 85, 0) 55%), radial-gradient(ellipse at 95% 100%, rgba(158, 47, 60, .22), rgba(158, 47, 60, 0) 55%);
}
.tgc--keswa .tgc-kicker { color: #86651f; }
.tgc--keswa .tgc-title { color: #221c26; }
.tgc--keswa .tgc-title em { color: #4b2f73; }
.tgc--keswa .tgc-lead { color: #5b5261; }
.tgc--keswa .tgc-band--navy .tgc-kicker,
.tgc--keswa .tgc-band--navy .tgc-title em { color: #d4ab55; }
.tgc--keswa .tgc-band--navy .tgc-title { color: #fbf8f1; }
.tgc--keswa .tgc-band--navy .tgc-lead { color: rgba(251, 248, 241, .74); }
.tgc--keswa .tgc-lead a,
.tgc--keswa .tgc-answer__text a,
.tgc--keswa .tgc-faq__a a,
.tgc--keswa .tgc-glance__text a,
.tgc--keswa .tgc-note a { color: #4b2f73; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgc--keswa .tgc-textlink { color: #4b2f73; }
.tgc--keswa .tgc-btn--gold { background: #d4ab55; color: #1f1733; box-shadow: 0 12px 26px rgba(212, 171, 85, .25); }
.tgc--keswa .tgc-btn--gold:hover { background: #e6c67e; color: #1f1733; }
.tgc--keswa .tgc-btn--line { border-color: #2e2248; color: #2e2248; }
.tgc--keswa .tgc-btn--line:hover { background: #2e2248; color: #fbf8f1; }
.tgc--keswa .tgc-micro .tgc-ico { color: #86651f; }
.tgc--keswa .tgc-band--cta .tgc-head::before { background: #4b2f73; box-shadow: 0 0 0 5px rgba(75, 47, 115, .15); }
/* A gold-thread braid under the section headings, like the trim of the keswa. */
.tgc--keswa .tgc-head--mid .tgc-title::after {
	content: ''; display: block; width: 120px; height: 6px; margin: 16px auto 0;
	background: repeating-linear-gradient(135deg, #c79d45 0 2px, transparent 2px 5px); opacity: .8;
}
.tgc--keswa .tgc-band--navy .tgc-head--mid .tgc-title::after { background: repeating-linear-gradient(135deg, #d4ab55 0 2px, transparent 2px 5px); }

/* ---------------------------------------------------------------- The keswa hero */

.tgc-hero--keswa {
	padding: 40px 24px 56px; text-align: left; color: #fbf8f1; overflow: hidden;
	background-color: #1f1733;
	background-image:
		radial-gradient(ellipse at 18% 0%, rgba(212, 171, 85, .18), rgba(212, 171, 85, 0) 50%),
		radial-gradient(ellipse at 100% 100%, rgba(158, 47, 60, .3), rgba(158, 47, 60, 0) 55%),
		repeating-linear-gradient(115deg, rgba(255, 255, 255, .018) 0 2px, transparent 2px 9px);
}
.tgc-hero--keswa::before { display: none; }
/* The braid along the foot of the hero. */
.tgc-hero--keswa::after {
	content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 10px;
	background:
		repeating-linear-gradient(45deg, #d4ab55 0 3px, transparent 3px 8px),
		repeating-linear-gradient(-45deg, #b8903f 0 3px, transparent 3px 8px);
	opacity: .75;
}
.tgc-hero--keswa .tgc-hero__inner { max-width: 1200px; }
.tgc-hero--keswa .tgc-hero__grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 64px; }
.tgc-hero--keswa .tgt-crumbs { justify-content: flex-start; color: rgba(251, 248, 241, .55); }
.tgc-hero--keswa .tgt-crumbs ol { justify-content: flex-start; }
.tgc-hero--keswa .tgt-crumbs a { color: rgba(251, 248, 241, .72); }
.tgc-hero--keswa .tgt-crumbs a:hover { color: #d4ab55; }
.tgc-hero--keswa .tgc-kicker--light { color: #d4ab55; }
.tgc-hero--keswa .tgc-kicker--light::after { display: none; }
.tgc-hero--keswa .tgc-hero__title { font-size: clamp(38px, 2.6vw + 20px, 64px); color: #fbf8f1; }
.tgc-hero--keswa .tgc-hero__title em { color: #d4ab55; }
.tgc-hero--keswa .tgc-hero__lead { max-width: 580px; margin: 20px 0 0; font-size: 17.5px; color: rgba(251, 248, 241, .82); }
.tgc-hero--keswa .tgc-hero__price { margin-top: 20px; color: rgba(251, 248, 241, .78); }
.tgc-hero--keswa .tgc-hero__price strong { font-size: 22px; color: #d4ab55; }
.tgc-hero--keswa .tgc-hero__act { justify-content: flex-start; margin-top: 22px; }
.tgc-hero--keswa .tgc-hero__trust { justify-content: flex-start; margin-top: 20px; color: rgba(251, 248, 241, .74); }
.tgc-hero--keswa .tgc-hero__trust .tgc-ico { color: #d4ab55; }
.tgc-hero--keswa .tgc-finder__rating { margin-top: 22px; border-color: rgba(212, 171, 85, .4); background: rgba(31, 23, 51, .5); }
/* The photo under a horseshoe arch, a gold frame a little outside it. */
.tgc-hero--keswa .tgc-hero__photo { order: 0; margin: 16px 16px 0 0; }
.tgc-hero--keswa .tgc-hero__photo::before { inset: -16px -16px 16px 16px; border: 2px solid rgba(212, 171, 85, .7); border-radius: 999px 999px 18px 18px / 46% 46% 18px 18px; }
.tgc-hero--keswa .tgc-hero__photo img { max-height: 600px; border-radius: 999px 999px 18px 18px / 46% 46% 18px 18px; box-shadow: 0 30px 60px rgba(0, 0, 0, .4); }
.tgc-hero--keswa .tgc-hero__photo figcaption { background: rgba(251, 248, 241, .94); color: #4b2f73; }
/* The route from Sefarad, under both columns. */
.tgc-hero--keswa .tgc-routeline { margin-top: 44px; }
.tgc-hero--keswa .tgc-routeline__stop::before { border-top-color: rgba(212, 171, 85, .5); }
.tgc-hero--keswa .tgc-routeline__dot { border-color: #d4ab55; background: #1f1733; }
.tgc-hero--keswa .tgc-routeline__stop:first-child .tgc-routeline__dot { background: #9e2f3c; border-color: #e6c67e; }
.tgc-hero--keswa .tgc-routeline__place { color: #fbf8f1; }
.tgc-hero--keswa .tgc-routeline__nights { color: #d4ab55; }

/* ---------------------------------------------------------------- Facts, answer */

.tgc--keswa .tgc-band--facts { border-bottom-color: #e6dccb; }
.tgc--keswa .tgc-strip__icon { border-color: rgba(134, 101, 31, .45); background: #f3ecdd; color: #4b2f73; }
.tgc--keswa .tgc-strip__text strong { color: #221c26; }
.tgc--keswa .tgc-strip__text span { color: #857b88; }
.tgc--keswa .tgc-answer__text p { color: #3d3441; }
.tgc--keswa .tgc-answer__text p:first-child { color: #221c26; }

/* ---------------------------------------------------------------- Itineraries */

.tgc-trips { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
.tgc-trip { display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e6dccb; border-radius: 18px; background: #fff; transition: transform .3s ease, box-shadow .3s ease; }
.tgc-trip:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(31, 23, 51, .1); }
.tgc-trip:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.tgc-trip__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #e9dfcc; }
.tgc-trip:first-child .tgc-trip__img { aspect-ratio: auto; min-height: 320px; }
.tgc-trip__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.tgc-trip:hover .tgc-trip__img img { transform: scale(1.045); }
.tgc-trip__body { display: flex; flex-direction: column; flex: 1; padding: 24px 26px 24px; }
.tgc-trip__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; }
.tgc-trip__meta span { padding: 5px 11px; border-radius: 999px; background: #f3ecdd; font-size: 12.5px; font-weight: 700; color: #5b5261; }
.tgc-trip__meta .tgc-trip__no { padding: 5px 9px; background: #2e2248; color: #d4ab55; letter-spacing: .06em; }
.tgc-trip__name { margin: 0 0 12px; font-family: Georgia, 'Times New Roman', serif; font-size: 24px; font-weight: 400; line-height: 1.25; color: #221c26; }
.tgc-trip__route { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 0 0 14px; padding: 0; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #86651f; }
.tgc-trip__route li { display: inline-flex; align-items: center; }
.tgc-trip__route li + li::before { content: ''; width: 22px; height: 0; margin: 0 8px; border-top: 2px dotted #c9a95c; }
.tgc-trip__text { margin: 0 0 14px; font-size: 15.5px; line-height: 1.7; color: #5b5261; }
.tgc-trip__see { list-style: none; display: grid; gap: 6px; margin: 0 0 20px; padding: 0; }
.tgc-trip__see li { display: flex; align-items: flex-start; gap: 8px; font-size: 14.5px; line-height: 1.5; color: #3d3441; }
.tgc-trip__see .tgc-ico { margin-top: 3px; color: #86651f; }
.tgc-trip__acts { display: flex; flex-wrap: wrap; gap: 10px; margin: auto 0 0; }
.tgc-trip__plan { display: inline-flex; align-items: center; padding: 12px 20px; border-radius: 999px; background: #2e2248; color: #fbf8f1; font-size: 14.5px; font-weight: 700; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.tgc-trip__plan:hover { background: #4b2f73; color: #fbf8f1; transform: translateY(-2px); }
.tgc-trip__wa { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border: 1.5px solid #25d366; border-radius: 999px; color: #128c4a; font-size: 14.5px; font-weight: 700; text-decoration: none; transition: background .2s ease, color .2s ease; }
.tgc-trip__wa > svg { width: 18px; height: 18px; fill: currentColor; }
.tgc-trip__wa:hover { background: #25d366; color: #fff; }
.tgc--keswa .tgc-band--itineraries .tgc-note { max-width: 860px; margin: 24px auto 0; padding: 16px 20px; border-radius: 14px; background: #f3ecdd; font-size: 14.5px; line-height: 1.6; color: #5b5261; text-align: center; }

/* ---------------------------------------------------------------- The map, beside its legend */

.tgc--keswa .tgc-map { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); align-items: start; gap: 28px; }
/* The map stays in view while the legend beside it scrolls past. */
.tgc--keswa .tgc-map__fig { position: sticky; top: 96px; max-width: none; }
.tgc--keswa .tgc-map__svg { border-color: #e6dccb; border-radius: 18px; }
.tgc--keswa .tgc-map__sea { fill: #e3e9ec; }
.tgc--keswa .tgc-map__land { fill: #f6efe0; stroke: #c9b387; }
.tgc--keswa .tgc-map__road { stroke: #9e2f3c; stroke-width: 3.5; stroke-dasharray: 1 10; }
.tgc--keswa .tgc-map__label { font-size: 22px; fill: #7a6f7c; }
.tgc--keswa .tgc-map__label--sea { font-size: 24px; fill: #6d8a96; }
.tgc--keswa .tgc-map__pin circle { fill: #2e2248; stroke: #fbf8f1; r: 24; }
.tgc--keswa .tgc-map__pin text { font-size: 20px; fill: #d4ab55; transform: translateY(1px); }
.tgc--keswa .tgc-map__pin.is-on circle { fill: #d4ab55; r: 28; }
.tgc--keswa .tgc-map__pin.is-on text { fill: #1f1733; }
.tgc--keswa .tgc-map__fig figcaption { color: #857b88; }
.tgc--keswa .tgc-map__legend { grid-template-columns: 1fr; gap: 8px; }
.tgc--keswa .tgc-map__legend li { padding: 11px 14px; border-color: #e6dccb; background: #fff; }
.tgc--keswa .tgc-map__legend li.is-on { border-color: #86651f; background: #f3ecdd; }
.tgc--keswa .tgc-map__no { width: 28px; height: 28px; background: #2e2248; color: #d4ab55; }
.tgc--keswa .tgc-map__legend li.is-on .tgc-map__no { background: #d4ab55; color: #1f1733; }
.tgc--keswa .tgc-map__name { margin-top: 1px; font-size: 17px; color: #221c26; }
.tgc--keswa .tgc-map__far { color: #86651f; }
.tgc--keswa .tgc-map__text { font-size: 13.5px; color: #5b5261; }

/* ---------------------------------------------------------------- Timeline on velvet */

.tgc--keswa .tgc-band--timeline .tgc-bandimg img { opacity: .12; filter: grayscale(1); }
.tgc--keswa .tgc-timeline__item { border-top-color: rgba(212, 171, 85, .45); }
.tgc--keswa .tgc-timeline__item::before { background: #d4ab55; }
.tgc--keswa .tgc-timeline__year { font-size: 30px; color: #d4ab55; }
.tgc--keswa .tgc-timeline__title { color: #fbf8f1; }
.tgc--keswa .tgc-timeline__text { color: rgba(251, 248, 241, .76); }

/* ---------------------------------------------------------------- Places, reasons, good to know */

.tgc--keswa .tgc-place { border-color: #e6dccb; background: #fff; }
.tgc--keswa .tgc-band--cream .tgc-place { background: #fbf8f1; }
.tgc--keswa .tgc-place__img { background: #e9dfcc; }
.tgc--keswa .tgc-place__meta { color: #86651f; }
.tgc--keswa .tgc-place__name { color: #221c26; }
.tgc--keswa .tgc-place__text { color: #5b5261; }
.tgc--keswa .tgc-band--navy .tgc-reasons { border-top-color: rgba(212, 171, 85, .22); }
.tgc--keswa .tgc-band--navy .tgc-reason { border-left-color: rgba(212, 171, 85, .16); }
.tgc--keswa .tgc-band--navy .tgc-reason__icon { border-color: rgba(212, 171, 85, .5); color: #d4ab55; }
.tgc--keswa .tgc-band--navy .tgc-reason__text { color: rgba(251, 248, 241, .74); }
.tgc--keswa .tgc-glance__item { border-color: #e6dccb; background: #fff; }
.tgc--keswa .tgc-band--white .tgc-glance__item { background: #f3ecdd; border-color: #e9dfcc; }
.tgc--keswa .tgc-glance__icon { background: #efe6f4; color: #4b2f73; }
.tgc--keswa .tgc-glance__label { color: #86651f; }
.tgc--keswa .tgc-glance__value { color: #221c26; }
.tgc--keswa .tgc-glance__text { color: #5b5261; }

/* ---------------------------------------------------------------- Reviews, form, FAQ, credits, phone bar */

.tgc--keswa .tgc-review { border-color: #e6dccb; background: #fff; }
.tgc--keswa .tgc-band--white .tgc-review { background: #f3ecdd; }
.tgc--keswa .tgc-review::before { color: rgba(75, 47, 115, .2); }
.tgc--keswa .tgc-review__text { color: #221c26; }
.tgc--keswa .tgc-review__by { border-color: #e6dccb; }
.tgc--keswa .tgc-review__initial { background: #2e2248; color: #d4ab55; }
.tgc--keswa .tgc-reviews__source a { color: #4b2f73; }
.tgc--keswa .tgc-booking__summary { background: #1f1733; background-image: radial-gradient(ellipse at 100% 0%, rgba(212, 171, 85, .16), rgba(212, 171, 85, 0) 55%); }
.tgc--keswa .tgc-booking__price strong { font-size: 38px; color: #d4ab55; }
.tgc--keswa .tgc-booking__list .tgc-ico,
.tgc--keswa .tgc-micro--left .tgc-ico { color: #d4ab55; }
.tgc--keswa .tgc-booking__form .tgt-form { border-color: #e6dccb; }
.tgc--keswa .tgc-booking__form .tgt-form input,
.tgc--keswa .tgc-booking__form .tgt-form select,
.tgc--keswa .tgc-booking__form .tgt-form textarea { border-color: #e6dccb; background: #fdfbf6; }
.tgc--keswa .tgc-booking__form .tgt-form input:focus,
.tgc--keswa .tgc-booking__form .tgt-form select:focus,
.tgc--keswa .tgc-booking__form .tgt-form textarea:focus { border-color: #4b2f73; outline-color: rgba(75, 47, 115, .2); background: #fff; }
.tgc--keswa .tgc-booking__form select.is-picked { animation: tgc-picked 1.2s ease; }
@keyframes tgc-picked { from { background: #f5e4b8; } to { background: #fdfbf6; } }
.tgc--keswa .tgc-booking__form .tgt-form__send { background: #2e2248; color: #fbf8f1; box-shadow: 0 12px 26px rgba(31, 23, 51, .22); }
.tgc--keswa .tgc-booking__form .tgt-form__send:hover { background: #4b2f73; }
.tgc--keswa .tgc-faq__list, .tgc--keswa .tgc-faq__item { border-color: #e6dccb; }
.tgc--keswa .tgc-faq__q { color: #221c26; }
.tgc--keswa .tgc-faq__q:hover { color: #4b2f73; }
.tgc--keswa .tgc-faq__mark { border-color: #dccfb8; color: #86651f; }
.tgc--keswa .tgc-faq__item[open] .tgc-faq__mark { background: #2e2248; border-color: #2e2248; color: #d4ab55; }
.tgc--keswa .tgc-faq__a p { color: #5b5261; }
.tgc--keswa .tgc-faq__ask { background: #1f1733; }
.tgc--keswa .tgc-faq__ask:hover { background: #2e2248; }
.tgc--keswa .tgc-credits { border-color: #e6dccb; background: #fbf8f1; color: #857b88; }
.tgc--keswa .tgc-credits a { color: #5b5261; }
.tgc--keswa .tgc-sticky { background: rgba(31, 23, 51, .97); }
.tgc--keswa .tgc-sticky__price strong { color: #d4ab55; }
.tgc--keswa .tgc-sticky__cta { background: #d4ab55; color: #1f1733; }

/* ---------------------------------------------------------------- Smaller screens */

@media (max-width: 1024px) {
	.tgc-hero--keswa .tgc-hero__grid { grid-template-columns: 1fr; gap: 40px; }
	.tgc-hero--keswa .tgc-hero__photo { max-width: 520px; }
	.tgc-hero--keswa .tgc-hero__photo img { aspect-ratio: 4 / 5; max-height: 520px; }
	.tgc--keswa .tgc-map { grid-template-columns: 1fr; }
	.tgc--keswa .tgc-map__fig { position: static; }
	.tgc--keswa .tgc-map__legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tgc-trip:first-child { grid-template-columns: 1fr; }
	.tgc-trip:first-child .tgc-trip__img { aspect-ratio: 16 / 9; min-height: 0; }
}

@media (max-width: 760px) {
	.tgc-hero--keswa { padding: 28px 20px 48px; }
	.tgc-hero--keswa .tgc-hero__photo { margin: 12px 12px 0 0; }
	.tgc-hero--keswa .tgc-hero__photo::before { inset: -12px -12px 12px 12px; }
	.tgc-hero--keswa .tgc-hero__act .tgc-btn { flex: 1 1 100%; justify-content: center; }
	.tgc-trips { grid-template-columns: 1fr; }
	.tgc-trip__body { padding: 20px 18px; }
	.tgc-trip__name { font-size: 21px; }
	.tgc--keswa .tgc-map__legend { grid-template-columns: 1fr; }
	.tgc--keswa .tgc-map__label { font-size: 26px; }
	.tgc--keswa .tgc-map__label--sea { font-size: 26px; }
	.tgc--keswa .tgc-map__pin circle { r: 28; }
	.tgc--keswa .tgc-map__pin text { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.tgc-trip, .tgc-trip__img img, .tgc-trip__plan { transition: none; }
	.tgc--keswa .tgc-booking__form select.is-picked { animation: none; }
}
