/* The Travel Saints: brand blocks and sections.
   Colours and fonts come from the theme (theme.json); fallbacks keep blocks on-brand under any theme. */

:root {
	--tts-olive: var(--wp--preset--color--olive, #2E3326);
	--tts-bone: var(--wp--preset--color--bone, #F3ECDF);
	--tts-dune: var(--wp--preset--color--dune, #E8DCC8);
	--tts-terra: var(--wp--preset--color--terracotta, #A4502F);
	--tts-sage: var(--wp--preset--color--sage, #6E7A4F);
	--tts-head: var(--wp--preset--font-family--syne, "Syne", system-ui, sans-serif);
	--tts-body: var(--wp--preset--font-family--dm-sans, "DM Sans", system-ui, sans-serif);
	--tts-line: rgba(46, 51, 38, .16);
	--tts-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Shared ---------- */
.is-style-tts-label, .tts-jsec__label, .tts-era__label, .tts-jhero__label, .tts-story__cat, .tts-contact__label, .tts-road__when {
	font-family: var(--tts-head);
	font-weight: 600;
	font-size: .74rem;
	letter-spacing: .42em;
	text-transform: uppercase;
	color: var(--tts-terra);
	margin: 0 0 1rem;
}
.is-dark .is-style-tts-label, .has-olive-background-color .is-style-tts-label { color: var(--tts-dune); }
.tts-lower, .tts-hero__title, .tts-closing__title, .tts-jsec__title, .tts-era__headline, .tts-jhero__title { text-transform: lowercase; }
.tts-lead { font-size: 1.2rem; line-height: 1.6; max-width: 46rem; }
.tts-coda { font-style: italic; margin-top: 2.5rem; opacity: .85; }
.tts-note { font-size: .92rem; opacity: .8; }
.tts-empty { font-style: italic; opacity: .75; }
.tts-band__head { margin-bottom: clamp(1.5rem, 3vw, 2.75rem); }
.tts-band__head > :last-child { margin-bottom: 0; }

.tts-ph {
	display: flex; align-items: flex-end; width: 100%; height: 100%; min-height: 160px;
	background: linear-gradient(160deg, var(--tts-sage), var(--tts-olive));
	color: var(--tts-dune); font: 600 .7rem/1.4 var(--tts-head); letter-spacing: .3em; text-transform: uppercase; padding: 1rem;
}

.tts-tag {
	display: inline-block; font: 600 .66rem/1 var(--tts-head); letter-spacing: .28em; text-transform: uppercase;
	padding: .5em .8em; background: var(--tts-terra); color: var(--tts-bone); border-radius: 2px;
}
.tts-tag.is-quiet { background: transparent; color: inherit; box-shadow: inset 0 0 0 1px currentColor; opacity: .85; }

.tts-link { font-family: var(--tts-head); font-weight: 600; color: var(--tts-terra); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.tts-link::after { content: " →"; }
.tts-link:hover { color: var(--tts-olive); }

.tts-btn.is-outline { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; }

/* ---------- Hero (cover) ---------- */
.tts-hero .wp-block-cover__inner-container { width: 100%; }
.tts-hero__copy { max-width: 46rem; }
.tts-hero__title { font-size: clamp(2.8rem, 7vw, 5.6rem); line-height: .98; margin: 0 0 1.25rem; }
.tts-hero__plain { font-size: .95rem; max-width: 38rem; margin-top: 1.75rem; }
.tts-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(46,51,38,.15) 0%, rgba(46,51,38,.55) 55%, rgba(46,51,38,.9) 100%) !important; opacity: 1 !important; }

/* ---------- Points grid ---------- */
.tts-points { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3.5rem); }
.tts-points.tts-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tts-points.tts-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tts-points > .wp-block-group { margin: 0 !important; }
.tts-point { border-top: 1px solid var(--tts-line); padding-top: 1.25rem; }
.tts-points.is-dark .tts-point { border-color: rgba(243, 236, 223, .22); }
.tts-point h3 { margin: 0 0 .5rem; font-size: 1.15rem; }
.tts-point p { margin: 0; opacity: .88; }

/* ---------- Splits, panels, ways ---------- */
.tts-split { gap: clamp(2rem, 5vw, 5rem) !important; }
.tts-split__img img, .tts-ways img, .tts-wellness img, .tts-gallery img, .tts-pilgrimages img { width: 100%; border-radius: 2px; }
.tts-panel { border-radius: 4px; }
.tts-ways { gap: clamp(1.5rem, 3vw, 2.5rem) !important; }
.tts-ways .wp-block-column { display: flex; flex-direction: column; }
.tts-ways .wp-block-column > .wp-block-image { margin-bottom: 1.25rem; }
.tts-ways .wp-block-buttons { margin-top: auto; }
.tts-wellness { gap: clamp(1.5rem, 4vw, 3rem) !important; }
.tts-pilgrimages .tts-logo { margin-bottom: 1.5rem; }
.tts-duo { gap: clamp(2rem, 4vw, 4rem) !important; }
.tts-advisor-band { border-top: 1px solid var(--tts-line); border-bottom: 1px solid var(--tts-line); padding: 2rem 0; gap: 1.5rem; }
.tts-advisor-band h3 { margin: 0 0 .25rem; }
.tts-advisor-band p { margin: 0; }

/* Lists */
.tts-list { padding-left: 1.1rem; }
.tts-list li { margin-bottom: .7rem; }
.tts-list li::marker { color: var(--tts-terra); }
.tts-ticks, .tts-plain, .tts-hl { list-style: none; padding: 0; margin: 0 0 1rem; }
.tts-ticks li { position: relative; padding-left: 1.75rem; margin-bottom: .7rem; }
.tts-ticks li::before { content: ""; position: absolute; left: 0; top: .45em; width: .8rem; height: .45rem; border-left: 2px solid var(--tts-terra); border-bottom: 2px solid var(--tts-terra); transform: rotate(-45deg); }
.tts-plain li { padding: .85rem 0; border-bottom: 1px solid var(--tts-line); }
.tts-plain li:first-child { padding-top: 0; }
.tts-steps { counter-reset: s; list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1.5rem 2rem; }
.tts-steps li { counter-increment: s; border-top: 1px solid var(--tts-line); padding-top: 1rem; }
.tts-steps li::before { content: counter(s, decimal-leading-zero); display: block; font: 700 1.6rem/1 var(--tts-head); color: var(--tts-terra); margin-bottom: .6rem; }
.tts-steps strong { display: block; font-family: var(--tts-head); margin-bottom: .25rem; }

/* Quote */
.tts-quote { font: 600 clamp(1.5rem, 3.2vw, 2.4rem)/1.25 var(--tts-head); max-width: 52rem; margin: 0 0 1.5rem; }
.tts-quote::before { content: "“"; color: var(--tts-terra); }
.tts-quote::after { content: "”"; color: var(--tts-terra); }
.tts-quote__by { font-size: .95rem; }

/* FAQ */
.tts-faq { max-width: 52rem; }
.tts-faq .wp-block-details { border-top: 1px solid var(--tts-line); padding: 1.15rem 0; margin: 0; }
.tts-faq .wp-block-details:last-child { border-bottom: 1px solid var(--tts-line); }
.tts-faq summary { font-family: var(--tts-head); font-weight: 600; font-size: 1.08rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.tts-faq summary::-webkit-details-marker { display: none; }
.tts-faq summary::after, .tts-day summary::after { content: "+"; color: var(--tts-terra); font-size: 1.4rem; line-height: 1; transition: transform .25s var(--tts-ease); }
.tts-faq details[open] summary::after, .tts-day[open] summary::after { transform: rotate(45deg); }
.tts-faq details p { margin: .75rem 0 0; }

/* Closing */
.tts-closing { text-align: center; }
.tts-closing .tts-logo { display: flex; justify-content: center; margin-bottom: 1.5rem; }
.tts-closing__title { font-size: clamp(2.2rem, 5vw, 3.8rem); margin-left: auto; margin-right: auto; }
.tts-closing .tts-lead { margin-left: auto; margin-right: auto; }
.tts-closing .tts-reach { justify-content: center; }

/* ---------- Journey cards ---------- */
.tts-cards { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.tts-cards.tts-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tts-cards.tts-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tts-cards.tts-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tts-card { background: var(--tts-bone); border-radius: 3px; overflow: hidden; box-shadow: 0 1px 0 var(--tts-line); transition: transform .35s var(--tts-ease), box-shadow .35s var(--tts-ease); }
.tts-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -22px rgba(46, 51, 38, .45); }
.tts-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.tts-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tts-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--tts-ease); }
.tts-card:hover .tts-card__media img { transform: scale(1.04); }
.tts-card__tags { display: flex; flex-wrap: wrap; gap: .4rem; padding: 1.1rem 1.25rem 0; }
.tts-card__title { font: 700 1.35rem/1.2 var(--tts-head); margin: .8rem 1.25rem .4rem; }
.tts-card__sub { padding: 0 1.25rem; font-size: .95rem; opacity: .85; }
.tts-card__foot { margin-top: auto; display: flex; justify-content: space-between; gap: 1rem; padding: 1.25rem; font-size: .9rem; border-top: 1px solid var(--tts-line); margin-top: 1.25rem; }
.tts-card__more { font-family: var(--tts-head); font-weight: 600; color: var(--tts-terra); }
.tts-card__more::after { content: " →"; }
.tts-card__link:focus-visible { outline: 3px solid var(--tts-terra); outline-offset: 3px; }

/* ---------- Era timeline ---------- */
.tts-road { overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 1rem; margin: 0 calc(-1 * var(--wp--preset--spacing--40, 1.5rem)); padding-left: var(--wp--preset--spacing--40, 1.5rem); }
.tts-road:focus-visible { outline: 3px solid var(--tts-terra); outline-offset: 2px; }
.tts-road__list { display: grid; grid-auto-flow: column; grid-auto-columns: 220px; gap: 1.25rem; list-style: none; margin: 0; padding: 0 1.5rem 0 0; position: relative; }
.tts-road__list::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; border-top: 1px dashed currentColor; opacity: .35; }
.tts-road__stop { scroll-snap-align: start; position: relative; }
.tts-road__stop a { display: flex; flex-direction: column; gap: .45rem; color: inherit; text-decoration: none; }
.tts-road__dot { width: 15px; height: 15px; border-radius: 50%; border: 2px solid var(--tts-terra); background: var(--tts-bone); position: relative; z-index: 1; margin-bottom: .75rem; }
.tts-road__stop.is-set .tts-road__dot { background: var(--tts-terra); }
.tts-road__img { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 2px; }
.tts-road__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tts-ease); }
.tts-road__stop a:hover img { transform: scale(1.05); }
.tts-road__when { margin: .5rem 0 0; letter-spacing: .2em; font-size: .66rem; }
.tts-road__name { font: 700 1.25rem/1.15 var(--tts-head); }
.tts-road__line { font-size: .9rem; opacity: .85; min-height: 3.6em; }
.tts-road .tts-tag { align-self: flex-start; }
.tts-road__legend { display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; font-size: .85rem; opacity: .85; margin: 1rem 0 1.5rem; }
.tts-road__legend i { display: inline-block; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--tts-terra); margin-right: .5rem; vertical-align: -1px; }
.tts-road__legend i.is-full { background: var(--tts-terra); }
.is-dark .tts-road__dot { background: var(--tts-olive); }

/* ---------- Era list ---------- */
.tts-eras { display: grid; gap: clamp(3rem, 6vw, 5rem); }
.tts-era { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; scroll-margin-top: 100px; }
.tts-era.is-flipped .tts-era__media { order: 2; }
.tts-era__media { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 2px; }
.tts-era__media img { width: 100%; height: 100%; object-fit: cover; }
.tts-era__headline { font: 700 clamp(1.7rem, 3.5vw, 2.5rem)/1.1 var(--tts-head); margin: 0 0 .5rem; }
.tts-era__place { font-style: italic; margin: 0 0 1rem; opacity: .85; }

/* ---------- Saints ---------- */
.tts-saints { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.tts-saint { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; scroll-margin-top: 100px; }
.tts-saint__photo { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 2px; }
.tts-saint__photo img { width: 100%; height: 100%; object-fit: cover; }
.tts-saint__name { font: 700 1.6rem/1.15 var(--tts-head); margin: 0 0 .35rem; }
.tts-saint__role { font: 600 .74rem/1.5 var(--tts-head); letter-spacing: .24em; text-transform: uppercase; color: var(--tts-terra); margin: 0 0 1.25rem; }
.tts-saint__bio p { margin: 0 0 1rem; }
.tts-saint__quote { margin: 1.25rem 0; padding: 0 0 0 1.25rem; border-left: 2px solid var(--tts-terra); font: 600 1.1rem/1.45 var(--tts-head); }
.tts-saint__quote p { margin: 0; }
.tts-saint__li { display: inline-flex; align-items: center; gap: .5rem; font-weight: 500; color: inherit; }
.tts-saints.is-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 2rem; }
.tts-saints.is-grid .tts-saint { grid-template-columns: 1fr; gap: 1rem; }
.tts-saints.is-grid .tts-saint__quote { font-size: 1rem; }

/* ---------- Journal ---------- */
.tts-journal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.25rem); }
.tts-story a { display: flex; flex-direction: column; gap: .9rem; color: inherit; text-decoration: none; }
.tts-story__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 2px; }
.tts-story__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--tts-ease); }
.tts-story a:hover img { transform: scale(1.04); }
.tts-story__body { display: flex; flex-direction: column; gap: .4rem; }
.tts-story__cat { margin: 0; letter-spacing: .28em; font-size: .66rem; }
.tts-story__title { font: 700 1.25rem/1.25 var(--tts-head); text-transform: lowercase; }
.tts-story a:hover .tts-story__title { color: var(--tts-terra); }
.tts-story__excerpt { font-size: .95rem; opacity: .85; }
.tts-journal.is-list { grid-template-columns: 1fr; gap: 1.25rem; }
.tts-journal.is-list a { flex-direction: row; align-items: center; gap: 1.25rem; }
.tts-journal.is-list .tts-story__media { flex: 0 0 96px; aspect-ratio: 1; }
.tts-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 2.5rem; }
.tts-filter a { padding: .55rem 1rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--tts-line); color: inherit; text-decoration: none; font-size: .9rem; }
.tts-filter a:hover { box-shadow: inset 0 0 0 1px var(--tts-terra); }
.tts-filter a[aria-current] { background: var(--tts-olive); color: var(--tts-bone); box-shadow: none; }

/* ---------- Journey and era pages ---------- */
.tts-jhero { position: relative; min-height: min(82vh, 760px); display: flex; align-items: flex-end; color: var(--tts-bone); background: var(--tts-olive); overflow: hidden; }
.tts-jhero__media { position: absolute; inset: 0; }
.tts-jhero__media img, .tts-jhero__media .tts-ph { width: 100%; height: 100%; object-fit: cover; }
.tts-jhero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(46,51,38,.1) 20%, rgba(46,51,38,.92) 100%); }
.tts-jhero__copy { position: relative; z-index: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--wp--preset--spacing--40, 1.5rem) clamp(2.5rem, 6vw, 4.5rem); }
.tts-jhero__label { color: var(--tts-dune); }
.tts-jhero__title { font: 700 clamp(2.6rem, 6.5vw, 5rem)/1 var(--tts-head); margin: 0 0 1rem; max-width: 18ch; color: var(--tts-bone); }
.tts-jhero__sub { font-size: 1.15rem; max-width: 42rem; margin: 0 0 1.75rem; color: var(--tts-dune); }
.tts-jbody { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.tts-jsec__title { font: 700 clamp(1.7rem, 3.5vw, 2.4rem)/1.1 var(--tts-head); margin: 0 0 1.5rem; }
.tts-facts dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--tts-line); }
.tts-facts dl > div { padding: 1.1rem 1.25rem 1.1rem 0; border-bottom: 1px solid var(--tts-line); }
.tts-facts dt { font: 600 .7rem/1.4 var(--tts-head); letter-spacing: .24em; text-transform: uppercase; color: var(--tts-terra); margin-bottom: .35rem; }
.tts-facts dd { margin: 0; }
.tts-hl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2.5rem; counter-reset: h; }
.tts-hl li { counter-increment: h; padding: 1.1rem 0 0 3rem; border-top: 1px solid var(--tts-line); position: relative; }
.tts-hl li::before { content: counter(h, decimal-leading-zero); position: absolute; left: 0; top: 1.05rem; font: 700 1.1rem/1 var(--tts-head); color: var(--tts-terra); }
.tts-days { border-top: 1px solid var(--tts-line); }
.tts-day { border-bottom: 1px solid var(--tts-line); padding: 1rem 0; }
.tts-day summary { display: flex; gap: 1.25rem; align-items: baseline; cursor: pointer; list-style: none; }
.tts-day summary::-webkit-details-marker { display: none; }
.tts-day summary::after { margin-left: auto; }
.tts-day__n { font: 600 .72rem/1 var(--tts-head); letter-spacing: .24em; text-transform: uppercase; color: var(--tts-terra); min-width: 4.5rem; }
.tts-day__place { font: 700 1.15rem/1.2 var(--tts-head); }
.tts-day p { margin: .75rem 0 0 5.75rem; max-width: 44rem; }
.tts-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4rem); }
.tts-left { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.tts-left > div { border-top: 2px solid var(--tts-terra); padding-top: 1rem; }
.tts-left h3 { font: 700 1.1rem/1.2 var(--tts-head); margin: 0 0 .5rem; }
.tts-left p { margin: 0; font-size: .95rem; }
.tts-invite { background: var(--tts-olive); color: var(--tts-bone); padding: clamp(1.75rem, 4vw, 3rem); border-radius: 3px; }
.tts-invite .tts-jsec__label { color: var(--tts-dune); }
.tts-invite__text { font: 600 clamp(1.3rem, 2.6vw, 1.8rem)/1.35 var(--tts-head); margin: 0 0 1rem; }
.tts-jclosing { font: 700 clamp(1.8rem, 4vw, 2.8rem)/1.1 var(--tts-head); text-transform: lowercase; text-align: center; margin: 1rem 0 0; }

/* ---------- Enquiry form ---------- */
.tts-form { scroll-margin-top: 100px; }
.tts-form__heading { font: 700 clamp(1.7rem, 3.5vw, 2.4rem)/1.1 var(--tts-head); text-transform: lowercase; }
.tts-fieldset { border: 0; padding: 0; margin: 0 0 2rem; }
.tts-fieldset legend { font: 600 .74rem/1 var(--tts-head); letter-spacing: .42em; text-transform: uppercase; color: var(--tts-terra); margin-bottom: 1.25rem; padding: 0; }
.tts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; }
.tts-field { margin: 0 0 1.25rem; }
.tts-field label, .tts-field__label { display: block; font-weight: 500; margin-bottom: .45rem; }
.tts-field input, .tts-field select, .tts-field textarea {
	width: 100%; font: inherit; color: var(--tts-olive); background: #fff; border: 1px solid rgba(46,51,38,.35); border-radius: 3px; padding: .8rem .9rem; min-height: 48px; box-sizing: border-box;
}
.tts-field textarea { min-height: 130px; resize: vertical; }
.tts-field input:focus, .tts-field select:focus, .tts-field textarea:focus { outline: 3px solid var(--tts-terra); outline-offset: 1px; border-color: var(--tts-terra); }
.tts-req { color: var(--tts-terra); }
.tts-opt { font-weight: 400; font-size: .85em; opacity: .7; }
.tts-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.tts-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .95rem; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px rgba(46,51,38,.3); cursor: pointer; font-size: .92rem; min-height: 44px; box-sizing: border-box; }
.tts-chip:has(input:checked) { background: var(--tts-olive); color: var(--tts-bone); box-shadow: none; }
.tts-chip input { accent-color: var(--tts-terra); width: 1rem; height: 1rem; }
.tts-chip:focus-within { outline: 3px solid var(--tts-terra); outline-offset: 2px; }
.tts-consent { margin: 1rem 0 1.5rem; display: grid; gap: .75rem; }
.tts-check { display: flex; gap: .65rem; align-items: flex-start; font-size: .95rem; }
.tts-check input { accent-color: var(--tts-terra); width: 1.15rem; height: 1.15rem; margin-top: .2rem; flex: 0 0 auto; }
.tts-form__promise { font-size: .88rem; opacity: .8; }
.tts-form__journey { padding: .9rem 1rem; background: rgba(255,255,255,.55); border-left: 3px solid var(--tts-terra); }
.tts-form__done, .tts-form__error { padding: 1.5rem; border-radius: 3px; margin-bottom: 2rem; }
.tts-form__done { background: var(--tts-olive); color: var(--tts-bone); }
.tts-form__done-title { font: 700 1.5rem/1.2 var(--tts-head); margin: 0 0 .5rem; }
.tts-form__error { background: #fff; border-left: 4px solid var(--tts-terra); }
.tts-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Contact, reach, logo ---------- */
.tts-contact__row { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--tts-line); margin: 0; }
.tts-contact__label { margin: 0; padding-top: .2rem; letter-spacing: .28em; font-size: .66rem; }
.tts-contact a { color: inherit; }
.tts-contact--footer .tts-contact__row { grid-template-columns: 1fr; gap: .2rem; padding: .5rem 0; border: 0; }
.tts-contact--footer .tts-contact__label { color: var(--tts-dune); opacity: .8; }
.tts-contact__social { margin-top: 1rem; }
.tts-contact__legal { font-size: .85rem; opacity: .75; margin: 0; }
.tts-reach { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1.5rem; }
.tts-reach__lines { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: .75rem 0 0; font-size: .95rem; opacity: .9; }
.tts-closing .tts-reach__lines { justify-content: center; }
.tts-reach__lines a { color: inherit; }
.tts-logo img { display: block; max-width: 100%; }
.tts-logo a { display: inline-block; }

/* ---------- Misc ---------- */
.tts-credits { columns: 2 280px; padding-left: 1.1rem; font-size: .92rem; }
.tts-credits li { margin-bottom: .5rem; break-inside: avoid; }
.tts-newsletter { padding: 1.5rem 0; }
.tts-newsletter__title { font: 700 1.2rem/1.2 var(--tts-head); margin: 0 0 .35rem; }

.tts-wa {
	position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 50; display: inline-flex; align-items: center; gap: .5rem;
	background: var(--tts-olive); color: var(--tts-bone); padding: .8rem 1.1rem; border-radius: 999px; text-decoration: none;
	font: 600 .85rem/1 var(--tts-head); letter-spacing: .06em; box-shadow: 0 10px 30px -10px rgba(0,0,0,.45); min-height: 44px; box-sizing: border-box;
}
.tts-wa:hover { background: var(--tts-terra); color: var(--tts-bone); }
.tts-wa:focus-visible { outline: 3px solid var(--tts-terra); outline-offset: 3px; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
	.tts-points.tts-cols-3, .tts-cards.tts-cols-3, .tts-cards.tts-cols-4, .tts-journal:not(.is-list) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tts-left { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
	.tts-points.tts-cols-2, .tts-points.tts-cols-3, .tts-cards.tts-cols-2, .tts-cards.tts-cols-3, .tts-cards.tts-cols-4, .tts-journal:not(.is-list),
	.tts-era, .tts-saint, .tts-hl, .tts-two, .tts-grid, .tts-left { grid-template-columns: 1fr; }
	.tts-era.is-flipped .tts-era__media { order: 0; }
	.tts-saint__photo { max-width: 320px; }
	.tts-road__list { grid-auto-columns: 170px; }
	.tts-day p { margin-left: 0; }
	.tts-contact__row { grid-template-columns: 1fr; gap: .25rem; }
	.tts-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.tts-wa { padding: .85rem; }
}
@media (prefers-reduced-motion: reduce) {
	.tts-card, .tts-card img, .tts-road__img img, .tts-story__media img { transition: none !important; transform: none !important; }
}

/* Tick boxes sit on the same line as their labels (they must not inherit text-field sizing). */
.tts-field .tts-chip input, .tts-consent .tts-check input {
	width: 1.05rem; height: 1.05rem; min-height: 0; padding: 0; margin: 0; flex: 0 0 auto; border: 0; box-shadow: none;
}
.tts-chip { line-height: 1.2; }
.tts-check input { margin-top: .2rem; }
.tts-chip input { align-self: center; transform: translateY(1px); }
.tts-consent .tts-check { display: block; text-align: center; }
.tts-consent .tts-check input { display: inline-block; vertical-align: -3px; margin: 0 .55rem 0 0; }
