/* Services CPT layouts: .tlt-sl--sub (service page) and .tlt-sl--sector (sector page). Loaded only on posts that use one. */
.tlt-sl { --sl-ink: var(--tlt-title); --sl-lime: var(--tlt-theme); --sl-smoke: var(--tlt-smoke); --sl-line: var(--tlt-border); background: #fff; color: var(--sl-ink); }
.tlt-sl p { margin: 0; }
.tlt-sl ul, .tlt-sl ol { margin: 0; padding: 0; }
.tlt-sl a:focus-visible { outline: 3px solid var(--sl-ink); outline-offset: 3px; }
.tlt-sl__in { max-width: var(--tlt-container); margin-inline: auto; padding-inline: max(16px, var(--tlt-gutter)); }
.tlt-sl__s { padding-block: clamp(48px, 6vw, 96px); }
.tlt-sl__s--flush { padding-top: 0; }
.tlt-sl__s--line { border-top: 1px solid var(--sl-line); }
.tlt-sl__band { background: var(--sl-smoke); }

.tlt-sl__h1, .tlt-sl__h2, .tlt-sl__h3 { font-family: var(--tlt-font-title); color: inherit; margin: 0; text-wrap: balance; overflow-wrap: break-word; letter-spacing: -.02em; }
.tlt-sl__h1 { font-size: clamp(32px, 5vw, 68px); font-weight: 600; line-height: 1.08; margin-top: 12px; }
.tlt-sl__h1--sector { max-width: 20ch; margin-top: 0; }
.tlt-sl__h2 { font-size: clamp(24px, 2.8vw, 38px); font-weight: 600; line-height: 1.18; margin-top: 64px; }
.tlt-sl__h2--top { margin-top: 0; }
.tlt-sl__h3 { font-size: clamp(18px, 1.6vw, 22px); font-weight: 600; line-height: 1.3; }
.tlt-sl__h3--row { font-size: clamp(22px, 2.4vw, 34px); line-height: 1.18; }
.tlt-sl__small-h { margin: 0 0 20px; font-family: var(--tlt-font-title); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.tlt-sl__lead { margin-top: 20px !important; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; max-width: 62ch; }
.tlt-sl__txt p, .tlt-sl__p { font-size: 17px; line-height: 1.7; max-width: 68ch; }
.tlt-sl__txt p + p { margin-top: 14px; }
.tlt-sl__p { margin-top: 10px !important; }
.tlt-sl__say { margin-top: 40px; padding-left: 24px; border-left: 4px solid var(--sl-lime); max-width: 46ch; }
.tlt-sl__say p { font-family: var(--tlt-font-title); font-size: clamp(19px, 1.8vw, 24px); font-weight: 500; line-height: 1.45; }
.tlt-sl__say:empty { display: none; }

.tlt-sl__back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-family: var(--tlt-font-title); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sl-ink); text-decoration: none; }
.tlt-sl__back:hover, .tlt-sl__back:focus-visible { text-decoration: underline; }
.tlt-sl .tlt-icon { flex: none; }

/* Service page hero + summary box */
.tlt-sl__hero { display: grid; gap: 32px; }
@media (min-width: 900px) { .tlt-sl__hero { grid-template-columns: minmax(0, 1fr) 380px; gap: 64px; align-items: start; } .tlt-sl__box { margin-top: 56px; } }
.tlt-sl__box { display: grid; gap: 18px; align-content: start; padding: 28px; background: var(--sl-lime); }
.tlt-sl__box-k { font-family: var(--tlt-font-title); font-size: 18px; font-weight: 600; line-height: 1.35; }
.tlt-sl__dots { display: grid; gap: 8px; list-style: none; font-size: 15px; line-height: 1.5; }
.tlt-sl__dots li { position: relative; padding-left: 22px; }
.tlt-sl__dots li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px; height: 10px; border-radius: 50%; background: var(--sl-ink); }
.tlt-sl__col { max-width: 820px; }

.tlt-sl__stack { display: grid; gap: 32px; margin-top: 28px; }
.tlt-sl__gain { margin-top: 10px !important; padding: 10px 14px; background: var(--sl-lime); font-size: 15px; line-height: 1.6; max-width: 68ch; }

.tlt-sl__quote { display: grid; gap: 14px; max-width: 62ch; margin: 48px 0 0; }
.tlt-sl__quote blockquote { margin: 0; padding: 0; border: 0; }
.tlt-sl__quote blockquote p { font-family: var(--tlt-font-title); font-size: clamp(19px, 1.9vw, 26px); font-weight: 500; line-height: 1.45; }
.tlt-sl__quote figcaption { font-size: 15px; }
.tlt-sl__quote figcaption b { display: block; }

.tlt-sl__steps { display: grid; gap: 20px; margin-top: 28px !important; list-style: none; counter-reset: sl-step; }
@media (min-width: 900px) { .tlt-sl__steps { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 28px; } }
.tlt-sl__steps li { counter-increment: sl-step; padding-top: 16px; border-top: 2px solid var(--sl-ink); }
.tlt-sl__steps li::before { content: counter(sl-step, decimal-leading-zero); display: block; margin-bottom: 10px; font-family: var(--tlt-font-title); font-size: 14px; font-weight: 600; }
.tlt-sl__steps p { margin-top: 8px !important; font-size: 15px; line-height: 1.65; }

.tlt-sl__book { display: grid; gap: 28px; padding: clamp(24px, 4vw, 48px); background: var(--sl-lime); }
@media (min-width: 900px) { .tlt-sl__book { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); align-items: center; gap: 56px; } }
.tlt-sl__book-btn { margin-top: 24px !important; }
.tlt-sl__facts { display: grid; margin: 0; padding: 8px 24px; background: #fff; }
.tlt-sl__facts div { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--sl-line); font-size: 15px; }
.tlt-sl__facts div:last-child { border-bottom: 0; }
.tlt-sl__facts dd { margin: 0; font-weight: 600; text-align: right; }
.tlt-sl__facts a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sl-ink); }

.tlt-sl__qa { display: grid; gap: 28px; margin-top: 32px; }

.tlt-sl__cards { display: grid; gap: 16px; margin-top: 32px !important; list-style: none; }
@media (min-width: 768px) { .tlt-sl__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .tlt-sl__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tlt-sl__cards a { display: grid; gap: 12px; align-content: start; height: 100%; padding: 24px; border: 1px solid var(--sl-line); color: var(--sl-ink); text-decoration: none; }
.tlt-sl__cards a:hover, .tlt-sl__cards a:focus-visible { border-color: var(--sl-ink); }
.tlt-sl__cards p { font-size: 15px; line-height: 1.6; }
.tlt-sl__go { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; }

.tlt-sl__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px !important; list-style: none; }
.tlt-sl__chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--sl-ink); color: var(--sl-ink); font-size: 15px; text-decoration: none; }
a.tlt-sl__chip:hover, a.tlt-sl__chip:focus-visible { background: var(--sl-lime); }
.tlt-sl__chip--text { border-color: transparent; background: var(--sl-smoke); }

/* Sector page */
.tlt-sl__crumbs { margin-bottom: 12px; font-size: 14px; }
.tlt-sl__crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sl-ink); }
.tlt-sl__lead-in { margin-bottom: 8px !important; font-family: var(--tlt-font-title); font-size: clamp(18px, 2vw, 26px); }
.tlt-sl__intro { display: grid; gap: 32px; margin-top: 32px; }
@media (min-width: 900px) { .tlt-sl__intro { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: start; } .tlt-sl__intro--solo { grid-template-columns: minmax(0, 1fr); } }
.tlt-sl__pill { display: inline-block; margin-top: 16px !important; padding: 8px 14px; background: var(--sl-smoke); font-size: 14px; font-weight: 500; }
.tlt-sl__hero-btn { margin-top: 28px !important; }
.tlt-sl__collage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.tlt-sl__collage a { display: block; }
.tlt-sl__collage a:nth-child(2) { margin-top: 40px; }
.tlt-sl__collage a:nth-child(3) { margin-top: 16px; }
.tlt-sl__shot { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: top; border: 1px solid var(--sl-line); background: var(--sl-smoke); }
.tlt-sl__collage .tlt-sl__shot { aspect-ratio: 3 / 4; }

.tlt-sl__split { display: grid; gap: 32px; }
@media (min-width: 900px) { .tlt-sl__split { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; } }
.tlt-sl__trust { display: grid; gap: 16px; list-style: none; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); align-content: start; }
.tlt-sl__trust li { padding-top: 14px; border-top: 2px solid var(--sl-ink); font-size: 15px; }
.tlt-sl__trust b { display: block; font-family: var(--tlt-font-title); font-size: clamp(32px, 4vw, 52px); font-weight: 600; line-height: 1; }

.tlt-sl__grid { display: grid; gap: 28px; margin-top: 32px !important; list-style: none; }
@media (min-width: 768px) { .tlt-sl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 56px; } }
.tlt-sl__grid li { padding-top: 18px; border-top: 2px solid var(--sl-ink); }
.tlt-sl__grid p { margin-top: 10px !important; font-size: 16px; line-height: 1.7; }

.tlt-sl__tag { margin-top: 12px !important; font-family: var(--tlt-font-title); font-size: clamp(17px, 1.6vw, 21px); font-weight: 500; line-height: 1.45; }
.tlt-sl__rows { display: grid; margin-top: 40px; }
.tlt-sl__row { display: grid; gap: 12px; padding-block: 32px; border-top: 1px solid var(--sl-line); }
@media (min-width: 900px) { .tlt-sl__row { grid-template-columns: 260px minmax(0, 1fr); gap: 72px; } }
.tlt-sl__rail { align-self: start; padding-top: 12px; border-top: 3px solid var(--sl-lime); font-size: 14px; font-weight: 600; line-height: 1.5; }
.tlt-sl__rail:empty { display: none; }
.tlt-sl__after { display: grid; gap: 32px; margin-top: 48px; }
@media (min-width: 900px) { .tlt-sl__after { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; } }
.tlt-sl__after .tlt-sl__say, .tlt-sl__after .tlt-sl__quote { margin-top: 0; }
.tlt-sl__cta { display: grid; gap: 20px; margin-top: 48px; padding: clamp(24px, 4vw, 44px); background: var(--sl-lime); }
@media (min-width: 900px) { .tlt-sl__cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 40px; margin-left: 332px; } }

.tlt-sl__price { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 40px !important; padding: 20px 24px; border: 2px solid var(--sl-ink); background: #fff; font-size: 16px; }
.tlt-sl__price b { font-family: var(--tlt-font-title); font-size: clamp(24px, 2.6vw, 34px); line-height: 1.1; }
.tlt-sl__price a, .tlt-sl__more { display: inline-flex; align-items: center; min-height: 44px; color: var(--sl-ink); font-weight: 600; }

.tlt-sl__cases { display: grid; gap: 32px; margin-top: 32px !important; list-style: none; }
@media (min-width: 768px) { .tlt-sl__cases { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tlt-sl__cases a { display: grid; gap: 14px; color: var(--sl-ink); text-decoration: none; }
.tlt-sl__cases a:hover h3, .tlt-sl__cases a:focus-visible h3 { text-decoration: underline; }
.tlt-sl__more { margin-top: 16px; }

/* Sector group archive (services-cat term) */
.tlt-sl--group .tlt-sl__h1 .tlt-sl__lead-in { display: block; margin-bottom: 8px; font-size: clamp(18px, 2vw, 26px); font-weight: 400; line-height: 1.3; letter-spacing: 0; }
.tlt-sl__row--solo { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .tlt-sl__row--solo > div { padding-left: 332px; } }
.tlt-sl__sub-h { margin-top: 56px; }
.tlt-sl__cards--services { margin-top: 20px !important; }
.tlt-sl__kicker { font-size: 13px; }
.tlt-sl__card-title { font-family: var(--tlt-font-title); font-size: clamp(18px, 1.6vw, 21px); font-weight: 600; line-height: 1.3; }
.tlt-sl__cards a:hover .tlt-sl__card-title, .tlt-sl__cards a:focus-visible .tlt-sl__card-title { text-decoration: underline; }
.tlt-sl__book--group { margin-top: 48px; }
.tlt-sl__facts--stack div { flex-direction: column; align-items: flex-start; gap: 4px; }
.tlt-sl__facts--stack dd { text-align: left; }

/* Tools hub (template-tools-hub.php): sentence hero, logos, sector rows, folded catalogue */
.tlt-hub__h1 .tlt-hub__lead-in { display: block; margin-bottom: 8px; font-size: clamp(18px, 2vw, 26px); font-weight: 400; line-height: 1.3; letter-spacing: 0; }
.tlt-hub__kicker { margin: 0 0 16px; font-family: var(--tlt-font-body); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.tlt-hub__count { display: block; margin-top: 2px; font-weight: 400; }
.tlt-hub__stmt { display: grid; gap: 16px; }
.tlt-hub__stmt .tlt-sl__chips { margin-bottom: 0 !important; }
.tlt-hub__stmt .tlt-more { margin: 0; }
.tlt-hub__all summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; cursor: pointer; list-style: none; }
.tlt-hub__all summary::-webkit-details-marker { display: none; }
.tlt-hub__all summary::after { content: "+"; font-family: var(--tlt-font-title); font-size: 32px; line-height: 1; }
.tlt-hub__all[open] summary::after { content: "–"; }
.tlt-hub__all summary:focus-visible { outline: 3px solid var(--sl-ink); outline-offset: 4px; }
.tlt-hub__all .tlt-sl__h2 { margin: 0; }
.tlt-hub__catalogue { margin-top: 32px; }

/* Tool page (single-irankis.php): product first */
.tlt-tl__hero { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .tlt-tl__hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 64px; } .tlt-tl__hero--solo { grid-template-columns: minmax(0, 1fr); } }
.tlt-tl__hero--solo .tlt-tl__intro { max-width: 860px; }
.tlt-tl__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 28px !important; }
.tlt-tl__ghost { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border: 1.5px solid var(--sl-ink); color: var(--sl-ink); font-weight: 600; text-decoration: none; }
.tlt-tl__ghost:hover, .tlt-tl__ghost:focus-visible { background: var(--sl-lime); }
.tlt-tl__shot { margin: 0; padding: clamp(12px, 2vw, 24px); background: var(--sl-smoke); }
.tlt-tl__shot-img { display: block; width: 100%; height: auto; border: 1px solid var(--sl-line); background: #fff; }
.tlt-tl__shot figcaption { margin-top: 10px; font-size: 13px; }
.tlt-sl__split > .tlt-sl__h2 { margin-top: 0; }
.tlt-tl__stack { margin-top: 0; }
.tlt-tl__fit { margin-top: 0 !important; }
.tlt-tl__book { align-items: start; }
.tlt-tl__form { margin-top: 24px; }
.tlt-tl__hero .tlt-sl__h1 { font-size: clamp(30px, 3.6vw, 54px); overflow-wrap: normal; hyphens: manual; }
.tlt-tl__book .tobalt-cf__counter { color: var(--sl-ink); }
@media (min-width: 900px) { .tlt-tl__book--solo { grid-template-columns: minmax(0, 1fr); max-width: 760px; } }
