/* Blog — Revista de Pamplona: a distinct editorial cover, not a generic archive. */
.tsf-blog-header { background: #f7f1e7; color: var(--ink); left: auto; padding: 0 5.6vw; position: relative; }
.tsf-blog-header::before { display: none; }
.tsf-blog-header .tsf-topbar { border-bottom-color: rgba(18,18,18,.16); color: #6d6861; }
.tsf-blog-header .tsf-nav { background: none; border: 0; box-shadow: none; color: var(--ink); text-shadow: none; }
.tsf-blog-header .tsf-nav a:hover, .tsf-blog-header .tsf-nav a[aria-current="page"] { color: var(--red); }
.tsf-blog-header .tsf-nav .tsf-nav-cta { background: var(--red); border-color: var(--red); color: #fff; }
.tsf-blog-header .tsf-nav .tsf-nav-cta:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.tsf-blog { background: #f7f1e7; color: var(--ink); overflow: hidden; }
.tsf-blog-masthead__grid::before, .tsf-blog-masthead__grid::after, .tsf-blog-intro__grid::before, .tsf-blog-intro__grid::after, .tsf-blog-territory__grid::before, .tsf-blog-territory__grid::after, .tsf-blog-cta__grid::before, .tsf-blog-cta__grid::after { display: none; }
.tsf-blog-masthead { background: #f7f1e7; padding: clamp(48px, 6vw, 92px) 0 clamp(74px, 9vw, 138px); }
.tsf-blog-masthead__grid { align-items: center; display: grid; gap: clamp(42px, 7vw, 130px); grid-template-columns: minmax(0, .96fr) minmax(440px, 1.04fr); }
.tsf-blog-edition, .tsf-blog-meta, .tsf-blog-feature__number, .tsf-blog-categories a, .tsf-blog-masthead__rule { font-family: var(--font-ui); font-size: .65rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.tsf-blog-edition { align-items: center; color: var(--red); display: flex; gap: 9px; margin: 0 0 33px; }
.tsf-blog-edition::before { background: var(--red); content: ''; display: inline-block; height: 8px; width: 8px; }
.tsf-blog-edition span { color: #a59d92; }
.tsf-blog-masthead h1, .tsf-blog-intro h2, .tsf-blog-feature h2, .tsf-blog-card h2, .tsf-blog-territory h2, .tsf-blog-cta h2 { font-family: var(--font-display, "Cormorant Garamond", Georgia, serif); font-weight: 400; }
.tsf-blog-masthead h1 { font-size: clamp(4.3rem, 7.1vw, 8.1rem); letter-spacing: -.085em; line-height: .76; margin: 0; max-width: 700px; }
.tsf-blog-masthead h1 em { color: var(--red); display: block; }
.tsf-blog-masthead__copy > p:not(.tsf-blog-edition) { color: #58534d; font-size: 1.06rem; line-height: 1.75; margin: 36px 0 38px; max-width: 430px; }
.tsf-blog-masthead__rule { border-top: 1px solid rgba(18,18,18,.25); display: flex; justify-content: space-between; max-width: 520px; padding-top: 14px; }
.tsf-blog-masthead__rule span:first-child { color: var(--red); }
.tsf-blog-masthead__rule span:last-child { color: #777066; font-size: .56rem; letter-spacing: .12em; }
.tsf-blog-masthead__art { min-height: 615px; position: relative; }
.tsf-blog-masthead__art > img { display: block; height: min(45vw, 650px); object-fit: cover; width: calc(100% - 80px); }
.tsf-blog-masthead__art::before { border: 1px solid rgba(198,25,46,.45); content: ''; height: calc(100% - 45px); position: absolute; right: 0; top: 45px; width: calc(100% - 120px); z-index: 0; }
.tsf-blog-masthead__art figure { background: #253a35; bottom: -20px; box-shadow: 0 24px 48px rgba(18,18,18,.16); color: #fff; margin: 0; padding: 11px 11px 17px; position: absolute; right: 0; width: min(42%, 270px); z-index: 1; }
.tsf-blog-masthead__art figure img { display: block; height: 215px; object-fit: cover; width: 100%; }
.tsf-blog-masthead__art figcaption { font-size: .55rem; font-weight: 700; letter-spacing: .12em; padding: 13px 4px 0; text-transform: uppercase; }
.tsf-blog-intro { border-top: 1px solid rgba(18,18,18,.14); padding: 31px 0 0; }
.tsf-blog-intro__grid { align-items: baseline; display: grid; gap: 24px 50px; grid-template-columns: .42fr 1.25fr .55fr; }
.tsf-blog-intro .tsf-label { color: var(--red); margin: 0; }
.tsf-blog-intro h2 { font-size: clamp(2.6rem, 4.1vw, 5rem); letter-spacing: -.075em; line-height: .88; margin: 0; }
.tsf-blog-intro h2 em { color: var(--red); }
.tsf-blog-intro__grid > p:last-child { color: #625d56; font-size: .95rem; line-height: 1.72; margin: 0; }
.tsf-blog-categories { border-bottom: 1px solid rgba(18,18,18,.15); display: flex; gap: clamp(22px, 3.4vw, 55px); margin-top: clamp(42px, 6vw, 82px); overflow-x: auto; padding-bottom: 17px !important; padding-top: 17px !important; scrollbar-width: none; }
.tsf-blog-categories::-webkit-scrollbar { display: none; }
.tsf-blog-categories a { color: #777168; flex: 0 0 auto; font-size: clamp(1rem, 1.12vw, 1.12rem); letter-spacing: .09em; padding: 0 0 12px; position: relative; }
.tsf-blog-categories a span { color: #8f877d; font-size: .9rem; margin-right: 10px; }
.tsf-blog-categories a::after { background: var(--red); bottom: 0; content: ''; height: 2px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .26s ease; width: 100%; }
.tsf-blog-categories a:hover, .tsf-blog-categories a.is-current { color: var(--ink); text-decoration: none; }
.tsf-blog-categories a:hover::after, .tsf-blog-categories a.is-current::after { transform: scaleX(1); }
.tsf-blog-categories a:focus { outline: none; }
.tsf-blog-categories a:focus:not(:focus-visible) { box-shadow: none; }
.tsf-blog-categories a:focus-visible { outline: 2px solid var(--red); outline-offset: 5px; }
.tsf-blog-listing { padding: clamp(62px, 8vw, 116px) 0 clamp(90px, 12vw, 170px); }
.tsf-blog-feature { border-bottom: 1px solid rgba(18,18,18,.18); border-top: 3px solid var(--red); display: grid; grid-template-columns: 75px minmax(0, 1.07fr) minmax(330px, .93fr); padding: 20px 0 46px; position: relative; }
.tsf-blog-feature__number { color: #777066; writing-mode: vertical-rl; }
.tsf-blog-feature__number span { color: var(--red); margin-top: 13px; }
.tsf-blog-feature__image { display: block; min-height: 520px; overflow: hidden; }
.tsf-blog-feature__image img, .tsf-blog-card__image img { display: block; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.65,.25,1); width: 100%; }
.tsf-blog-feature:hover img, .tsf-blog-card:hover img { transform: scale(1.045); }
.tsf-blog-feature__copy { align-self: end; background: #e7d4cb; margin: 61px 0 0 -58px; padding: clamp(35px, 4vw, 64px); position: relative; z-index: 1; }
.tsf-blog-meta { color: var(--red); margin: 0 0 23px; }
.tsf-blog-meta span { color: #92766f; margin: 0 5px; }
.tsf-blog-feature h2 { font-size: clamp(3rem, 4.6vw, 5.4rem); letter-spacing: -.08em; line-height: .82; margin: 0 0 27px; }
.tsf-blog-feature h2 a, .tsf-blog-card h2 a { color: inherit; }
.tsf-blog-feature h2 a:hover, .tsf-blog-card h2 a:hover { color: var(--red); text-decoration: none; }
.tsf-blog-feature__copy > p:not(.tsf-blog-meta), .tsf-blog-card__copy > p:not(.tsf-blog-meta) { color: #5e5851; font-size: .98rem; line-height: 1.75; margin: 0 0 28px; }
.tsf-blog-grid { display: grid; gap: 30px; grid-template-columns: 1.17fr .83fr; margin: clamp(52px, 7vw, 98px) 75px 0; }
.tsf-blog-card { border-top: 3px solid var(--red); display: grid; grid-template-columns: 1fr; }
.tsf-blog-card:nth-child(2) { margin-top: clamp(70px, 10vw, 155px); }
.tsf-blog-card__image { aspect-ratio: 16 / 10; display: block; overflow: hidden; }
.tsf-blog-card__copy { background: #fcfaf5; padding: 27px 28px 33px; }
.tsf-blog-card h2 { font-size: clamp(2.3rem, 3.2vw, 3.55rem); letter-spacing: -.07em; line-height: .86; margin: 0 0 21px; }
.tsf-blog-card:nth-child(2) h2 { font-size: clamp(2rem, 2.55vw, 2.85rem); }
.tsf-blog-listing .navigation.pagination, .tsf-blog-listing .nav-links { display: flex; gap: 12px; justify-content: center; }
.tsf-blog-listing .navigation.pagination { margin: 58px 0 0; }
.tsf-blog-listing .page-numbers { align-items: center; border: 1px solid rgba(18,18,18,.25); color: var(--ink); display: inline-flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: .07em; min-height: 48px; padding: 12px 18px; text-transform: uppercase; }
.tsf-blog-listing .page-numbers.current, .tsf-blog-listing .page-numbers:hover { background: var(--red); border-color: var(--red); color: #fff; text-decoration: none; }
.tsf-blog-territory { background: #263b35; color: #fff; overflow: hidden; padding: clamp(82px, 10vw, 150px) 0; position: relative; }
.tsf-blog-territory::after { background: linear-gradient(90deg, rgba(38,59,53,.94) 0%, rgba(38,59,53,.33) 60%), url('../images/mapa-territorio.png') right center / 52% auto no-repeat; content: ''; inset: 0; position: absolute; }
.tsf-blog-territory__grid { display: grid; gap: 45px; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .55fr); position: relative; z-index: 1; }
.tsf-blog-territory .tsf-label { color: #f1b9ad; }
.tsf-blog-territory h2, .tsf-blog-cta h2 { font-size: clamp(3.2rem, 5.4vw, 6.2rem); letter-spacing: -.08em; line-height: .82; margin: 0; }
.tsf-blog-territory h2 em { color: #f1b9ad; }
.tsf-blog-territory__grid > p, .tsf-blog-cta__grid p { align-self: end; color: rgba(255,255,255,.83); font-size: 1rem; line-height: 1.75; margin: 0; max-width: 420px; }
.tsf-blog-cta { background: #e7d4cb; border-bottom: 3px solid var(--red); padding: clamp(82px, 10vw, 138px) 0; }
.tsf-blog-cta__grid { display: grid; gap: 44px; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .55fr); }
.tsf-blog-cta h2 em { color: var(--red); }
.tsf-blog-cta__grid > div { align-self: end; }
.tsf-blog-cta__grid p { color: #5e5851; }
.tsf-blog-cta .tsf-button { margin-top: 30px; }
.tsf-blog-cta .tsf-button:hover { background: var(--red); border-color: var(--red); color: #fff; }
@media (max-width: 900px) { .tsf-blog-masthead__grid { grid-template-columns: 1fr; } .tsf-blog-masthead__art { margin-left: 9vw; } .tsf-blog-intro__grid { grid-template-columns: .5fr 1.2fr; } .tsf-blog-intro__grid > p:last-child { grid-column: 2; } .tsf-blog-feature { grid-template-columns: 42px minmax(0, 1.07fr) minmax(270px, .93fr); } .tsf-blog-grid { margin-left: 42px; margin-right: 42px; } }
@media (max-width: 767px) { .tsf-blog-header { padding: 0 26px; } .tsf-blog-header .tsf-menu-button span { background: var(--ink); } .tsf-blog-header .tsf-nav { background: var(--ink); border: 0; color: #fff; } .tsf-blog-header .tsf-nav .tsf-nav-cta { border-color: var(--red); } .tsf-blog-masthead { padding: 44px 0 78px; } .tsf-blog-masthead__grid { gap: 48px; } .tsf-blog-masthead h1 { font-size: clamp(4rem, 18vw, 5.8rem); } .tsf-blog-masthead__art { margin-left: 0; min-height: 380px; } .tsf-blog-masthead__art > img { height: 370px; width: calc(100% - 31px); } .tsf-blog-masthead__art::before { height: calc(100% - 23px); top: 23px; width: calc(100% - 55px); } .tsf-blog-masthead__art figure { bottom: 0; width: 40%; } .tsf-blog-masthead__art figure img { height: 130px; } .tsf-blog-intro { padding-top: 28px; } .tsf-blog-intro__grid { grid-template-columns: 1fr; } .tsf-blog-intro__grid > p:last-child { grid-column: auto; } .tsf-blog-intro h2 { font-size: clamp(3rem, 14vw, 4.6rem); } .tsf-blog-categories { margin-top: 42px; } .tsf-blog-feature { display: block; padding-top: 0; } .tsf-blog-feature__number { display: flex; gap: 12px; padding: 14px 0; writing-mode: horizontal-tb; } .tsf-blog-feature__number span { margin: 0; } .tsf-blog-feature__image { min-height: 0; aspect-ratio: 4 / 5; } .tsf-blog-feature__copy { margin: -36px 18px 0; padding: 32px 25px 37px; } .tsf-blog-feature h2 { font-size: clamp(2.8rem, 13vw, 4rem); } .tsf-blog-grid { gap: 28px; grid-template-columns: 1fr; margin: 50px 0 0; } .tsf-blog-card:nth-child(2) { margin-top: 0; } .tsf-blog-card h2, .tsf-blog-card:nth-child(2) h2 { font-size: 2.65rem; } .tsf-blog-listing .navigation.pagination { margin-left: 0; margin-right: 0; } .tsf-blog-territory::after { background: linear-gradient(90deg, rgba(38,59,53,.94), rgba(38,59,53,.72)), url('../images/mapa-territorio.png') center / cover; } .tsf-blog-territory__grid, .tsf-blog-cta__grid { grid-template-columns: 1fr; } .tsf-blog-territory h2, .tsf-blog-cta h2 { font-size: clamp(3rem, 14vw, 4.7rem); } }
@media (prefers-reduced-motion: reduce) { .tsf-blog-feature img, .tsf-blog-card img, .tsf-blog-categories a::after { transition: none; } }

/* Final editorial simplification: a magazine cover, one featured story and a calm reading flow. */
.tsf-blog-cover { background: linear-gradient(90deg, rgba(12,18,15,.9), rgba(12,18,15,.58) 53%, rgba(91,15,26,.27)), url('../images/san-fermin-panuelos-rojos-pamplona.jpg') center / cover; border-top: 4px solid var(--red); color: #fffaf4; min-height: clamp(350px, 34vw, 470px); position: relative; }
.tsf-blog-cover::after { border-bottom: 1px solid rgba(255,250,244,.42); content: ''; inset: 28px 5.6vw; pointer-events: none; position: absolute; }
.tsf-blog-cover__inner { display: flex; flex-direction: column; justify-content: end; min-height: inherit; padding-bottom: clamp(42px, 4vw, 64px); padding-top: 108px; position: relative; z-index: 1; }
.tsf-blog-cover .tsf-blog-edition { color: #ffd6dc; font-size: clamp(.8rem, .95vw, .9rem); letter-spacing: .12em; margin-bottom: 20px; }.tsf-blog-cover .tsf-blog-edition::before { background: var(--red); }.tsf-blog-cover .tsf-blog-edition span { color: rgba(255,250,244,.7); }
.tsf-blog-cover h1 { font-family: var(--font-display, Georgia, serif); font-size: clamp(4rem, 7.3vw, 8.3rem); font-weight: 400; letter-spacing: -.085em; line-height: .76; margin: 0; max-width: 9.7ch; }
.tsf-blog-cover h1 em { color: var(--red); display: block; font-style: italic; }
.tsf-blog-cover__inner > p:last-child { font-size: clamp(15px, 1.25vw, 18px); line-height: 1.65; margin: 27px 0 0; max-width: 510px; }
.tsf-blog .tsf-blog-categories { margin-top: 0; padding-bottom: 19px !important; padding-top: 19px !important; }
.tsf-blog-listing { padding: clamp(42px, 4.8vw, 68px) 0 clamp(72px, 9vw, 118px); }
.tsf-blog-listing__heading { align-items: end; border-bottom: 1px solid rgba(18,18,18,.18); display: flex; gap: 28px; justify-content: space-between; margin-bottom: clamp(38px, 5vw, 68px); padding-bottom: 22px; }
.tsf-blog-listing__heading .tsf-label { color: var(--red); margin: 0; }.tsf-blog-listing__heading h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(2.6rem, 4.5vw, 5.2rem); font-weight: 400; letter-spacing: -.075em; line-height: .85; margin: 0; max-width: 11ch; }.tsf-blog-listing__heading h2 em { color: var(--red); font-style: italic; }
.tsf-blog-feature { border-top-width: 2px; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); padding: 0 0 52px; }
.tsf-blog-feature__image { min-height: 480px; }.tsf-blog-feature__number { display: none; }.tsf-blog-feature__copy { align-self: center; background: #e7d4cb; margin: 0 0 0 -52px; padding: clamp(35px, 4vw, 62px); }.tsf-blog-feature h2 { font-size: clamp(3.2rem, 4.75vw, 5.45rem); }
.tsf-blog-grid { gap: clamp(27px, 4vw, 52px); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: clamp(50px, 7vw, 88px) 0 0; }.tsf-blog-card:nth-child(2) { margin-top: 0; }.tsf-blog-card__copy { padding: 27px 29px 34px; }.tsf-blog-card h2, .tsf-blog-card:nth-child(2) h2 { font-size: clamp(2.1rem, 3.1vw, 3.25rem); }
.tsf-blog-listing .navigation.pagination { margin: 52px 0 0; }
.tsf-blog-territory { display: none; }
.tsf-blog-cta--compact { border-bottom: 0; border-top: 3px solid var(--red); padding: clamp(52px, 6vw, 76px) 0; }.tsf-blog-cta--compact h2 { font-size: clamp(2.8rem, 4.7vw, 5rem); }.tsf-blog-cta--compact .tsf-button { margin-top: 22px; }

.tsf-article-header { background-color: #1d332d; background-position: center; background-size: cover; min-height: clamp(455px, 47vw, 650px); padding: clamp(180px, 18vw, 266px) 0 clamp(58px, 7vw, 105px); }
.tsf-article-header h1 { max-width: 1030px; }.tsf-article-header__meta { color: rgba(255,250,244,.86); font-family: var(--font-ui); font-size: clamp(.78rem, .9vw, .88rem); font-weight: 700; letter-spacing: .1em; line-height: 1.35; margin: 29px 0 0; text-transform: uppercase; }.tsf-article-header__meta span { color: #f1b9ad; margin: 0 10px; }
.tsf-article-hero { display: none; }.tsf-article-layout { background: #f7f1e7; grid-template-columns: minmax(170px, .36fr) minmax(0, 1.1fr); justify-content: center; padding-bottom: clamp(72px, 9vw, 125px); padding-top: clamp(68px, 8vw, 112px); }.tsf-article-aside { display: grid; gap: 5px; }.tsf-article-aside::after { display: none; }.tsf-article-body { max-width: 790px; }.tsf-article-body > p:first-child { font-size: clamp(1.8rem, 2.55vw, 2.45rem); }.tsf-article-body img { height: auto; margin: 36px 0; max-width: 100%; }
.tsf-article-related { background: #fffaf4; border-top: 1px solid rgba(18,18,18,.15); padding: clamp(66px, 8vw, 118px) 0; }.tsf-article-related header { align-items: end; display: flex; gap: 35px; justify-content: space-between; margin-bottom: 45px; }.tsf-article-related .tsf-label { color: var(--red); margin: 0; }.tsf-article-related h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(2.7rem, 4.6vw, 5.1rem); font-weight: 400; letter-spacing: -.075em; line-height: .85; margin: 0; max-width: 10ch; }.tsf-article-related h2 em { color: var(--red); font-style: italic; }.tsf-article-related__grid { display: grid; gap: 28px; grid-template-columns: repeat(3, minmax(0, 1fr)); }.tsf-article-related__image { aspect-ratio: 1.38; display: block; overflow: hidden; }.tsf-article-related__image img { display: block; height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }.tsf-article-related article:hover img { transform: scale(1.04); }.tsf-article-related article > p { color: var(--red); font-family: var(--font-ui); font-size: clamp(.74rem, .78vw, .8rem); font-weight: 700; letter-spacing: .1em; margin: 19px 0 13px; text-transform: uppercase; }.tsf-article-related article > p span { color: #8c8379; margin: 0 5px; }.tsf-article-related h3 { font-family: var(--font-display, Georgia, serif); font-size: clamp(1.8rem, 2.55vw, 2.8rem); font-weight: 400; letter-spacing: -.06em; line-height: .9; margin: 0 0 21px; }.tsf-article-related h3 a { color: var(--ink); }.tsf-article-related h3 a:hover { color: var(--red); text-decoration: none; }
.tsf-article-cta--compact { background: #e7d4cb; border-bottom: 0; border-top-width: 3px; padding: clamp(56px, 7vw, 84px) 0; }.tsf-article-cta--compact > div { align-items: end; grid-template-columns: minmax(0, 1.1fr) minmax(250px, .55fr); }.tsf-article-cta--compact h2 { font-size: clamp(2.8rem, 4.6vw, 5.1rem); }.tsf-article-cta--compact .tsf-button { grid-column: 2; }

/* Editorial post titles never receive the browser's boxed click focus. */
.tsf-blog-feature h2 a:focus,
.tsf-blog-card h2 a:focus,
.tsf-article-related h3 a:focus { outline: 0; }
.tsf-blog-feature h2 a:focus-visible,
.tsf-blog-card h2 a:focus-visible,
.tsf-article-related h3 a:focus-visible { box-shadow: inset 0 -2px 0 var(--red); text-decoration: none; }
@media (max-width: 767px) { .tsf-blog-cover { min-height: 430px; }.tsf-blog-cover::after { inset: 16px 26px; }.tsf-blog-cover__inner { padding-bottom: 42px; padding-top: 112px; }.tsf-blog-cover h1 { font-size: clamp(3.7rem, 17vw, 5.2rem); }.tsf-blog-listing__heading { align-items: start; flex-direction: column; gap: 17px; }.tsf-blog-feature { display: block; }.tsf-blog-feature__image { min-height: 0; aspect-ratio: 4 / 5; }.tsf-blog-feature__copy { margin: -34px 18px 0; }.tsf-blog-grid { grid-template-columns: 1fr; }.tsf-article-header { min-height: 470px; padding: 176px 0 54px; }.tsf-article-header h1 { font-size: clamp(3.1rem, 14vw, 4.7rem); }.tsf-article-layout { padding: 58px 26px 70px; }.tsf-article-related header { align-items: start; flex-direction: column; gap: 16px; margin-bottom: 34px; }.tsf-article-related__grid { grid-template-columns: 1fr; }.tsf-article-related article { border-bottom: 1px solid rgba(18,18,18,.14); padding-bottom: 30px; }.tsf-article-related article:last-child { border-bottom: 0; padding-bottom: 0; }.tsf-article-cta--compact > div { display: block; }.tsf-article-cta--compact .tsf-button { margin-top: 25px; } }

/* Single article: a calm editorial reading room with a useful right rail. */
.tsf-article-header { background-position: center; min-height: clamp(510px, 55vw, 720px); padding: clamp(245px, 22vw, 340px) 0 clamp(58px, 7vw, 104px); position: relative; }
.tsf-article-header::before { background: linear-gradient(90deg, rgba(11,16,14,.88) 0%, rgba(15,22,19,.62) 48%, rgba(97,14,27,.24) 100%); content: ''; inset: 0; position: absolute; }
.tsf-article-header .container-fluid { position: relative; }
.tsf-article-header h1 { max-width: 990px; }
.tsf-article-lede { color: rgba(255,250,244,.9); font-size: clamp(1.04rem, 1.4vw, 1.24rem); max-width: 660px; }
.tsf-article-layout { align-items: start; background: #fbf8f2; column-gap: clamp(48px, 8vw, 145px); grid-template-columns: minmax(0, 760px) minmax(248px, 310px); justify-content: center; margin: 0 auto; max-width: 1320px; padding: clamp(72px, 9vw, 132px) max(5vw, 34px); }
.tsf-article-body { max-width: 760px; width: 100%; }
.tsf-article-body__intro { align-items: center; border-bottom: 1px solid rgba(31,29,26,.18); color: #746c63; display: flex; font-family: var(--font-ui); font-size: .64rem; font-weight: 700; justify-content: space-between; letter-spacing: .12em; margin: 0 0 36px; padding-bottom: 15px; text-transform: uppercase; }
.tsf-article-body > p { color: #38342f; font-size: 1.08rem; line-height: 1.9; }
.tsf-article-body > p:first-of-type { color: #25211d; font-size: clamp(1.65rem, 2.35vw, 2.15rem); line-height: 1.18; margin-bottom: 43px; }
.tsf-article-body h2 { border-top: 1px solid rgba(31,29,26,.15); font-size: clamp(2.3rem, 3.8vw, 3.7rem); margin: 66px 0 23px; padding-top: 24px; }
.tsf-article-body h3 { color: var(--red); font-family: var(--font-display); font-size: clamp(1.65rem, 2.4vw, 2.15rem); font-weight: 500; letter-spacing: -.035em; line-height: 1; margin: 39px 0 14px; }
.tsf-article-body a { color: #8b1427; text-decoration-color: rgba(139,20,39,.4); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tsf-article-body a:hover { color: #5f0d1b; text-decoration-color: currentColor; }
.tsf-article-aside { background: #f1e8dc; border: 0; color: var(--ink); padding: 28px 27px 29px; position: sticky; top: 26px; }
.tsf-article-aside::after { display: none; }
.tsf-article-aside__eyebrow, .tsf-article-aside__label { color: var(--red); font-family: var(--font-ui); font-size: .65rem; font-weight: 700; letter-spacing: .14em; margin: 0; text-transform: uppercase; }
.tsf-article-toc { margin: 18px 0 0; }
.tsf-article-toc ol { counter-reset: guide; list-style: none; margin: 0; padding: 0; }
.tsf-article-toc li { border-top: 1px solid rgba(31,29,26,.16); counter-increment: guide; padding: 11px 0; }
.tsf-article-toc li:last-child { border-bottom: 1px solid rgba(31,29,26,.16); }
.tsf-article-toc li::before { color: var(--red); content: '0' counter(guide); display: block; font-family: var(--font-ui); font-size: 1.05rem; font-weight: 700; letter-spacing: .06em; line-height: 1.2; margin-bottom: 7px; }
.tsf-article-toc a { color: #2c2824; font-family: var(--font-display); font-size: 1.14rem; font-weight: 500; letter-spacing: -.02em; line-height: 1.05; text-decoration: none; }
.tsf-article-toc a:hover { color: var(--red); }
.tsf-article-aside__rule { border-top: 2px solid var(--red); margin: 28px 0 16px; }
.tsf-article-aside__category { color: #292522; display: block; font-family: var(--font-display); font-size: 1.55rem; line-height: .95; margin: 8px 0 22px; text-decoration: none; }
.tsf-article-aside__category:hover { color: var(--red); }
.tsf-article-aside__note { color: #675f56; font-size: .86rem; line-height: 1.6; margin: 0 0 19px; }
.tsf-article-aside__back { color: var(--red); font-family: var(--font-ui); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.tsf-article-aside__back span { margin-left: 5px; }
@media (max-width: 767px) { .tsf-article-header { min-height: 500px; padding: 198px 0 56px; }.tsf-article-header::before { background: linear-gradient(0deg, rgba(11,16,14,.9), rgba(11,16,14,.3)); }.tsf-article-layout { display: flex; flex-direction: column; gap: 43px; padding: 58px 26px 72px; }.tsf-article-body { order: 1; }.tsf-article-aside { order: 2; position: static; width: 100%; }.tsf-article-body__intro { font-size: .56rem; }.tsf-article-body > p { font-size: 1rem; }.tsf-article-body h2 { margin-top: 52px; }.tsf-article-toc a { font-size: 1.1rem; } }

/* Single, left-aligned editorial rhythm inside the article hero. */
.tsf-article-header { padding-bottom: clamp(76px, 8vw, 122px); }
.tsf-article-header .tsf-article-kicker { margin: 0 0 21px; }
.tsf-article-header h1 { margin: 0; max-width: min(960px, 72vw); }
.tsf-article-header .tsf-article-lede { margin: 25px 0 0 !important; max-width: 650px; }
.tsf-article-header .tsf-article-header__meta { margin: 23px 0 0; }
/* Slightly quieter article title: the image remains the setting, not a competing cover. */
.tsf-article-header h1 { font-size: clamp(3.4rem, 5.9vw, 6.35rem); }
@media (max-width: 767px) { .tsf-article-header { padding-bottom: 58px; }.tsf-article-header h1 { font-size: clamp(2.95rem, 13vw, 4.35rem); max-width: none; }.tsf-article-header .tsf-article-lede { margin-top: 19px !important; }.tsf-article-header .tsf-article-header__meta { margin-top: 20px; } }

/* Give the long-form copy the scale of an editorial reading column. */
.tsf-article-body > p { font-size: clamp(1.13rem, 1.32vw, 1.28rem); line-height: 1.82; }
.tsf-article-body > p:first-of-type { font-size: clamp(1.78rem, 2.55vw, 2.3rem); line-height: 1.16; }
.tsf-article-body li { font-size: clamp(1.1rem, 1.28vw, 1.23rem); line-height: 1.76; }
@media (max-width: 767px) { .tsf-article-body > p { font-size: 1.08rem; line-height: 1.78; }.tsf-article-body > p:first-of-type { font-size: 1.66rem; }.tsf-article-body li { font-size: 1.06rem; } }

/* Article FAQs leave the reading column and use the same interactive chapter as the home page. */
.tsf-article-faq { margin: 0; }
.tsf-article-faq__grid { display: grid; gap: clamp(45px, 8vw, 142px); grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); }
.tsf-article-faq .tsf-faq-intro { grid-column: 1; grid-row: 1; padding: 0; }
.tsf-article-faq .tsf-faq-intro h2 { font-size: clamp(2.95rem, 4.6vw, 4.55rem); letter-spacing: -.065em; line-height: .88; margin-top: 16px; }
.tsf-article-faq .tsf-faq-intro > p:last-child { max-width: 310px; }
.tsf-article-faq .tsf-faq-list { align-self: center; grid-column: 2; grid-row: 1; }
@media (max-width: 767px) { .tsf-article-faq__grid { display: block; }.tsf-article-faq .tsf-faq-intro { margin-bottom: 38px; }.tsf-article-faq .tsf-faq-intro h2 { font-size: clamp(2.7rem, 12vw, 3.5rem); } }

/* A shorter article masthead keeps the story visible above the fold. */
.tsf-article-header { min-height: 0; padding: clamp(190px, 15vw, 230px) 0 clamp(54px, 4vw, 68px); }
@media (max-width: 767px) { .tsf-article-header { min-height: 0; padding: 165px 0 54px; } }

/* Larger, proportionate typography across the article reading experience (never the hero). */
.tsf-article-body > p { font-size: clamp(1.22rem, 1.48vw, 1.38rem); line-height: 1.8; }
.tsf-article-body > p:first-of-type { font-size: clamp(1.92rem, 2.7vw, 2.5rem); }
.tsf-article-body h2 { font-size: clamp(2.55rem, 4.15vw, 4rem); }
.tsf-article-body h3 { font-size: clamp(1.82rem, 2.6vw, 2.35rem); }
.tsf-article-body li { font-size: clamp(1.18rem, 1.4vw, 1.32rem); }
.tsf-article-body__intro { font-size: .7rem; }
.tsf-article-aside__eyebrow, .tsf-article-aside__label { font-size: .7rem; }
.tsf-article-toc a { font-size: 1.27rem; }
.tsf-article-aside__category { font-size: 1.72rem; }
.tsf-article-aside__note { font-size: .94rem; }
.tsf-article-aside__back { font-size: .7rem; }
.tsf-article-faq .tsf-faq-intro > p:last-child { font-size: 1rem; }
.tsf-article-faq .tsf-faq-item summary strong { font-size: 1.27rem; }
.tsf-article-faq .tsf-faq-answer > p { font-size: 1rem; }
@media (max-width: 767px) { .tsf-article-body > p { font-size: 1.16rem; line-height: 1.76; }.tsf-article-body > p:first-of-type { font-size: 1.78rem; }.tsf-article-body h2 { font-size: clamp(2.35rem, 10vw, 3.2rem); }.tsf-article-body h3 { font-size: 1.72rem; }.tsf-article-body li { font-size: 1.13rem; }.tsf-article-toc a { font-size: 1.19rem; }.tsf-article-faq .tsf-faq-item summary strong { font-size: 1.1rem; }.tsf-article-faq .tsf-faq-answer > p { font-size: .96rem; } }

/* The site base scale is deliberately small; article reading uses explicit editorial sizes. */
.tsf-article-body > p { font-size: clamp(19px, 1.42vw, 22px); }
.tsf-article-body > p:first-of-type { font-size: clamp(30px, 2.2vw, 36px); }
.tsf-article-body h2 { font-size: clamp(43px, 3.55vw, 58px); }
.tsf-article-body h3 { font-size: clamp(29px, 2.25vw, 36px); }
.tsf-article-body li { font-size: clamp(18px, 1.3vw, 20px); }
.tsf-article-body__intro { font-size: 11px; }
.tsf-article-aside__eyebrow, .tsf-article-aside__label { font-size: 11px; }
.tsf-article-toc a { font-size: 18px; }
.tsf-article-aside__category { font-size: 25px; }
.tsf-article-aside__note { font-size: 15px; }
.tsf-article-aside__back { font-size: 11px; }
.tsf-article-faq .tsf-faq-intro > p:last-child { font-size: 16px; }
.tsf-article-faq .tsf-faq-item summary strong { font-size: 19px; }
.tsf-article-faq .tsf-faq-answer > p { font-size: 16px; }
@media (max-width: 767px) { .tsf-article-body > p { font-size: 18px; }.tsf-article-body > p:first-of-type { font-size: 28px; }.tsf-article-body h2 { font-size: clamp(36px, 10vw, 44px); }.tsf-article-body h3 { font-size: 28px; }.tsf-article-body li { font-size: 17px; }.tsf-article-toc a { font-size: 17px; }.tsf-article-faq .tsf-faq-item summary strong { font-size: 17px; }.tsf-article-faq .tsf-faq-answer > p { font-size: 15px; } }

/* Final reading scale: generous, but quieter than the previous pass. */
.tsf-article-body > p { font-size: clamp(18px, 1.26vw, 20px); }
.tsf-article-body > p:first-of-type { font-size: clamp(28px, 2vw, 33px); }
.tsf-article-body h2 { font-size: clamp(40px, 3.15vw, 52px); }
.tsf-article-body h3 { font-size: clamp(27px, 2vw, 33px); }
.tsf-article-body li { font-size: clamp(17px, 1.18vw, 19px); }
.tsf-article-toc a { font-size: 17px; }
.tsf-article-aside__category { font-size: 23px; }
.tsf-article-aside__note { font-size: 14px; }
.tsf-article-faq .tsf-faq-intro > p:last-child { font-size: 15px; }
.tsf-article-faq .tsf-faq-item summary strong { font-size: 18px; }
.tsf-article-faq .tsf-faq-answer > p { font-size: 15px; }
@media (max-width: 767px) { .tsf-article-body > p { font-size: 17px; }.tsf-article-body > p:first-of-type { font-size: 27px; }.tsf-article-body h2 { font-size: clamp(34px, 9vw, 41px); }.tsf-article-body h3 { font-size: 26px; }.tsf-article-body li { font-size: 16px; }.tsf-article-toc a { font-size: 16px; }.tsf-article-faq .tsf-faq-item summary strong { font-size: 16px; } }

/* Article FAQ chapters end with their content, not a decorative empty tail. */
.tsf-article-faq { padding: clamp(76px, 6vw, 90px) 0 clamp(80px, 6vw, 92px); }
.tsf-article-faq__grid { align-items: start; column-gap: clamp(45px, 8vw, 142px); grid-template-rows: auto; row-gap: 0; }
@media (max-width: 767px) { .tsf-article-faq { padding-bottom: 66px; padding-top: 64px; } }

/* Related stories: one clear, left-aligned editorial heading. */
.tsf-article-related header { display: block; }
.tsf-article-related h2 { margin-top: 15px; max-width: none; text-align: left; white-space: nowrap; }
@media (max-width: 767px) { .tsf-article-related h2 { white-space: normal; } }

/* Service links at the end of relevant editorial guides. */
.tsf-article-cta--service > div { align-items: end; grid-template-columns: minmax(0, 1.1fr) minmax(250px, .55fr); }
.tsf-article-cta--service .tsf-label { color: var(--red); font-family: var(--font-ui); font-size: .74rem; font-weight: 700; letter-spacing: .12em; margin: 0 0 14px; text-transform: uppercase; }
.tsf-article-cta--service .tsf-article-service-links { display: flex; flex-wrap: wrap; gap: 10px; grid-column: 2; grid-row: 2; }
.tsf-article-cta--service .tsf-button { margin: 0; }
@media (max-width: 767px) { .tsf-article-cta--service > div { display: block; }.tsf-article-cta--service > div > p { margin: 24px 0; }.tsf-article-cta--service .tsf-article-service-links { display: flex; }.tsf-article-cta--service .tsf-button { margin: 0; } }

/* Match the Blog archive heading to the related-stories treatment. */
.tsf-blog-listing__heading { align-items: initial; display: block; }
.tsf-blog-listing__heading h2 { margin-top: 15px; max-width: none; text-align: left; white-space: nowrap; }
@media (max-width: 767px) { .tsf-blog-listing__heading h2 { white-space: normal; } }

/* Crónica editorial: reusable visual rhythm for every Blog article. */
.tsf-article-inline-image { border-top: 2px solid var(--red); margin: clamp(46px, 6vw, 76px) 0 clamp(52px, 7vw, 88px); padding-top: 12px; }
.tsf-article-inline-image__media { background: #e7d4cb; overflow: hidden; }
.tsf-article-inline-image img { display: block; height: clamp(255px, 38vw, 460px); margin: 0; object-fit: cover; width: 100%; }
.tsf-article-inline-image figcaption { align-items: baseline; color: #756b61; display: flex; font-size: 14px; gap: 13px; line-height: 1.45; margin: 12px 0 0; }
.tsf-article-inline-image figcaption span { color: var(--red); font-family: var(--font-ui); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.tsf-article-body h2 { border-top-color: rgba(31,29,26,.2); margin-top: clamp(72px, 8vw, 112px); padding-top: 49px; position: relative; }
.tsf-article-body h2::after { background: var(--red); content: ''; height: 2px; left: 0; position: absolute; top: -1px; width: 58px; }
.tsf-article-body h2::before { color: var(--red); content: attr(data-chapter); display: block; font-family: var(--font-ui); font-size: 12px; font-weight: 700; letter-spacing: .11em; line-height: 1; margin-bottom: 10px; }
.tsf-article-body h2:not([data-chapter])::before { content: 'Contexto'; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.tsf-article-body a:not(.tsf-text-link) { background-image: linear-gradient(var(--red), var(--red)); background-position: 0 calc(100% - 1px); background-repeat: no-repeat; background-size: 100% 1px; color: #9c1026; text-decoration: none; transition: background-size .24s ease, color .24s ease; }
.tsf-article-body a:not(.tsf-text-link):hover { background-size: 100% 2px; color: #650a19; }
.tsf-article-body blockquote, .tsf-article-context { background: #f1e8dc; border-left: 4px solid var(--red); color: #29231e; margin: clamp(45px, 6vw, 76px) 0; padding: clamp(25px, 3.2vw, 42px); }
.tsf-article-body blockquote p, .tsf-article-context p { font-family: var(--font-display); font-size: clamp(28px, 2.5vw, 39px); letter-spacing: -.035em; line-height: 1.02; margin: 0; }
.tsf-article-context > :first-child { color: var(--red); font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: .14em; margin: 0 0 13px; text-transform: uppercase; }
.tsf-article-context > :first-child + p { font-family: var(--font-display); }
/* Context notes stay secondary, but should be comfortable to read at a glance. */
.tsf-article-note { font-size: clamp(1.12rem, 1.32vw, 1.24rem); line-height: 1.72; }
@media (max-width: 767px) {
  .tsf-article-inline-image { margin: 42px 0 54px; }
  .tsf-article-inline-image img { height: 250px; }
  .tsf-article-inline-image figcaption { display: block; font-size: 13px; }
  .tsf-article-inline-image figcaption span { display: block; margin-bottom: 5px; }
  .tsf-article-body h2 { margin-top: 66px; padding-top: 43px; }
  .tsf-article-body h2::before { font-size: 12px; }
  .tsf-article-body blockquote, .tsf-article-context { margin: 42px 0; padding: 25px 22px; }
}

/* Blog cards: readable editorial scale for metadata, copy and calls to action. */
.tsf-blog .tsf-blog-meta { font-size: 13px; letter-spacing: .11em; margin-bottom: 25px; }
.tsf-blog .tsf-blog-feature h2 { font-size: clamp(3.55rem, 5.15vw, 5.9rem); margin-bottom: 29px; }
.tsf-blog .tsf-blog-card h2, .tsf-blog .tsf-blog-card:nth-child(2) h2 { font-size: clamp(2.55rem, 3.7vw, 3.9rem); line-height: .88; margin-bottom: 23px; }
.tsf-blog .tsf-blog-feature__copy > p:not(.tsf-blog-meta), .tsf-blog .tsf-blog-card__copy > p:not(.tsf-blog-meta) { font-size: clamp(1.02rem, 1.12vw, 1.18rem); line-height: 1.72; margin-bottom: 30px; }
.tsf-blog .tsf-text-link { font-size: 12px; letter-spacing: .11em; padding-bottom: 9px; }
.tsf-blog .tsf-text-link span { font-size: 19px; margin-left: 16px; }
@media (max-width: 767px) {
  .tsf-blog .tsf-blog-meta { font-size: 12px; }
  .tsf-blog .tsf-blog-card h2, .tsf-blog .tsf-blog-card:nth-child(2) h2 { font-size: clamp(2.6rem, 11vw, 3.35rem); }
  .tsf-blog .tsf-blog-feature h2 { font-size: clamp(3rem, 13vw, 4rem); }
  .tsf-blog .tsf-blog-feature__copy > p:not(.tsf-blog-meta), .tsf-blog .tsf-blog-card__copy > p:not(.tsf-blog-meta) { font-size: 1.05rem; }
}

/* Blog FAQ: the same interactive editorial pattern used in the home and articles. */
.tsf-blog-faq { margin: 0; padding: clamp(78px, 7vw, 105px) 0 clamp(82px, 7vw, 108px); }
.tsf-blog-faq__grid { align-items: start; display: grid; column-gap: clamp(45px, 8vw, 142px); grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); }
.tsf-blog-faq .tsf-faq-intro { grid-column: 1; grid-row: 1; padding: 0; }
.tsf-blog-faq .tsf-faq-intro h2 { font-size: clamp(3rem, 4.65vw, 4.65rem); letter-spacing: -.065em; line-height: .88; margin-top: 16px; }
.tsf-blog-faq .tsf-faq-intro > p:last-child { font-size: 16px; max-width: 330px; }
.tsf-blog-faq .tsf-faq-list { align-self: center; grid-column: 2; grid-row: 1; }
.tsf-blog-faq .tsf-faq-item summary strong { font-size: 19px; }
.tsf-blog-faq .tsf-faq-answer > p { font-size: 16px; }
@media (max-width: 767px) {
  .tsf-blog-faq { padding: 64px 0 68px; }
  .tsf-blog-faq__grid { display: block; }
  .tsf-blog-faq .tsf-faq-intro { margin-bottom: 38px; }
  .tsf-blog-faq .tsf-faq-intro h2 { font-size: clamp(2.7rem, 12vw, 3.5rem); }
  .tsf-blog-faq .tsf-faq-item summary strong { font-size: 16px; }
  .tsf-blog-faq .tsf-faq-answer > p { font-size: 15px; }
}

/* Keep the article reading room connected to its hero, without a dead gap. */
.tsf-article-layout { padding-top: clamp(46px, 4.5vw, 72px); }
@media (max-width: 767px) { .tsf-article-layout { padding-top: 44px; } }

/* A clear full-width chapter break between related reading and the group experiences. */
.single-post .tsf-other-projects { border-top: 4px solid var(--red); }
