/* Final typography system: editorial titles, subtitles and functional UI. */
:root {
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-subtitle: "Playfair Display", Georgia, serif;
  --font-ui: "Inter", "Helvetica Neue", Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display) !important;
}

.tsf-lede,
.tsf-guide-hero__lead,
.tsf-experience-hero__lede,
.tsf-article-lede,
.tsf-vertical-page__lead,
.tsf-dates-hero__answer,
.tsf-intro-detail {
  font-family: var(--font-subtitle) !important;
}

button,
input,
select,
textarea,
.tsf-button,
.tsf-nav-cta,
.tsf-text-link,
.tsf-form-submit,
[role="button"] {
  font-family: var(--font-ui) !important;
}

/* Shared editorial gutter: keeps every content block on the same visual axis. */
:root {
  --tsf-content-gutter: clamp(32px, 5.6vw, 108px);
}

.container-fluid.m-5-hor {
  margin-left: 0;
  margin-right: 0;
  padding-left: var(--tsf-content-gutter) !important;
  padding-right: var(--tsf-content-gutter) !important;
  width: 100%;
}

@media (max-width: 991px) {
  :root {
    --tsf-content-gutter: clamp(28px, 5vw, 54px);
  }
}

@media (max-width: 767px) {
  :root {
    --tsf-content-gutter: 26px;
  }
}

/* About: each stroke joins one chapter to the next. The longer vertical
   gesture keeps it legible instead of reading as an isolated ornament. */
.tsf-about-aman__arrow {
  height: clamp(158px, 14vw, 235px);
  width: clamp(102px, 9vw, 152px);
  stroke-width: 2.35;
}
.tsf-about-aman__arrow path:first-child {
  animation: none;
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
}
.tsf-about-aman__arrow path:nth-child(2) {
  opacity: 0;
  transition: opacity .22s ease;
}
.tsf-about-aman__arrow--opening,
.tsf-about-aman__arrow--mosaic,
.tsf-about-aman__arrow--monica,
.tsf-about-aman__arrow--chapter,
.tsf-about-aman__arrow--future { bottom: -22px; left: 50%; right: auto; transform: translateX(-50%); }
@media (max-width: 760px) {
  .tsf-about-aman__arrow { height: 112px; width: 74px; }
  .tsf-about-aman__arrow--opening,
  .tsf-about-aman__arrow--mosaic,
  .tsf-about-aman__arrow--monica,
  .tsf-about-aman__arrow--chapter,
  .tsf-about-aman__arrow--future { bottom: -13px; left: 50%; }
}

/* A quiet closing row for the other projects: only the brands remain. */
.tsf-other-projects { padding: 74px 0 78px; }
.tsf-other-projects-heading { display: block; margin: 0 auto 36px; max-width: none; text-align: center; }
.tsf-other-projects-heading h2 { font-size: clamp(34px, 3.55vw, 52px); margin: 0; white-space: nowrap; }
.tsf-other-projects-logos { align-items: center; border-top: 1px solid rgba(18, 18, 18, .2); display: grid; gap: clamp(35px, 7vw, 118px); grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 46px clamp(12px, 4vw, 68px) 2px; }
.tsf-other-projects-logos a { align-items: center; display: flex; justify-content: center; min-height: 150px; opacity: .92; transition: opacity .3s ease, transform .45s cubic-bezier(.22, .65, .2, 1); }
.tsf-other-projects-logos a:hover, .tsf-other-projects-logos a:focus-visible { opacity: 1; outline: 0; transform: translateY(-5px); }
.tsf-other-projects-logos img { display: block; height: auto; max-height: 126px; max-width: min(100%, 260px); object-fit: contain; width: auto; }
.tsf-other-projects-logos a:last-child img { max-height: 132px; }
@media (max-width: 767px) { .tsf-other-projects { padding: 57px 0 61px; } .tsf-other-projects-heading { margin-bottom: 32px; } .tsf-other-projects-heading h2 { font-size: clamp(35px, 10vw, 48px); white-space: normal; } .tsf-other-projects-logos { gap: 28px; grid-template-columns: 1fr; padding: 31px 12px 0; } .tsf-other-projects-logos a { min-height: 95px; } .tsf-other-projects-logos img { max-height: 98px; max-width: 210px; } }

/* Keep the group chapter light, with the editorial grid still visible. */
.tsf-other-projects { background: linear-gradient(90deg, rgba(198, 25, 46, .075) 1px, transparent 1px) 0 0 / 104px 100%, #fff; }
.tsf-other-projects-logos img { max-height: 126px; max-width: min(100%, 240px); }
.tsf-other-projects-logos a:last-child img { height: auto; max-height: 160px; max-width: 100%; width: 218px; }
@media (max-width: 767px) { .tsf-other-projects-logos img { max-height: 118px; max-width: 235px; } .tsf-other-projects-logos a:last-child img { max-height: 126px; width: 178px; } }

/* Mobile turns the partner brands into a quiet, touch-first carousel. */
.tsf-other-projects-dots { display: none; }
@media (max-width: 767px) {
  .tsf-other-projects-carousel { margin: 0 -12px; }
  .tsf-other-projects-logos {
    display: flex;
    gap: 0;
    grid-template-columns: none;
    margin: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: 31px 0 0;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .tsf-other-projects-logos::-webkit-scrollbar { display: none; }
  .tsf-other-projects-logos a {
    flex: 0 0 100%;
    min-height: 150px;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .tsf-other-projects-logos img { max-height: 128px; max-width: min(78vw, 270px); }
  .tsf-other-projects-logos a:last-child img { max-height: 138px; width: 195px; }
  .tsf-other-projects-dots {
    align-items: center;
    display: flex;
    gap: 9px;
    justify-content: center;
    margin-top: 18px;
  }
  .tsf-other-projects-dots button {
    align-items: center;
    background: transparent;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    height: 28px;
    justify-content: center;
    padding: 0;
    width: 28px;
  }
  .tsf-other-projects-dots button span {
    background: rgba(18, 18, 18, .3);
    border-radius: 50%;
    display: block;
    height: 6px;
    transition: background .25s ease, transform .25s ease;
    width: 6px;
  }
  .tsf-other-projects-dots button[aria-current="true"] span { background: var(--red); transform: scale(1.25); }
  .tsf-other-projects-dots button:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
}
@media (prefers-reduced-motion: reduce) { .tsf-other-projects-logos { scroll-behavior: auto; } }

/* A bolder, poster-like rhythm for the editorial territory ribbon. */
.tsf-marquee-territory {
  background: #f3e7d9;
  border-bottom: 3px solid var(--red);
  border-top: 3px solid var(--red);
  color: var(--ink);
  padding: 19px 0 17px;
}
.tsf-marquee-territory .tsf-marquee-track {
  animation-duration: 13s;
  font-family: var(--font-ui, sans-serif);
  font-size: clamp(20px, 1.65vw, 30px);
  font-weight: 700;
  letter-spacing: .035em;
  line-height: .9;
}
.tsf-marquee-territory span {
  text-transform: uppercase;
}
.tsf-marquee-territory span:nth-of-type(3n + 2) {
  color: var(--red);
  font-family: var(--font-display, Georgia, serif);
  font-size: 1.18em;
  font-style: italic;
  font-weight: 600;
  letter-spacing: -.025em;
}
.tsf-marquee-territory i {
  height: 7px;
  margin: 0 clamp(22px, 2.3vw, 42px);
  width: 7px;
}
@media (max-width: 767px) {
  .tsf-marquee-territory { padding: 16px 0 14px; }
  .tsf-marquee-territory .tsf-marquee-track { animation-duration: 11s; font-size: 18px; }
  .tsf-marquee-territory i { height: 6px; margin: 0 23px; width: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsf-marquee-territory .tsf-marquee-track { animation: none; }
}

/* Demonstration testimonials: replace with approved real reviews before launch. */
.tsf-testimonials { background: #e7d8c5; border-bottom: 1px solid rgba(18, 18, 18, .14); border-top: 4px solid var(--red); color: var(--ink); padding: clamp(72px, 9vw, 126px) 0; }
.tsf-testimonials-heading { align-items: center; display: flex; flex-direction: column; gap: 20px; margin: 0 auto; max-width: 900px; text-align: center; }
.tsf-testimonials-heading h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(43px, 5vw, 74px); font-weight: 500; letter-spacing: -.065em; line-height: .96; margin: 15px 0 0; }
.tsf-testimonials-heading h2 em { color: var(--red); }
.tsf-testimonials-heading .tsf-label { justify-content: center; }
.tsf-testimonials-heading > p { font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.68; margin: 0; max-width: 520px; }
.tsf-testimonials-demo { background: rgba(255, 250, 242, .65); border-left: 3px solid var(--red); color: #695e55; font-family: var(--font-ui, sans-serif); font-size: 10px; letter-spacing: .03em; line-height: 1.5; margin: 40px 0 28px; padding: 10px 13px; }
.tsf-testimonials-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tsf-testimonial-card { background: #fcfaf5; border-top: 4px solid var(--red); display: flex; flex-direction: column; min-height: 290px; overflow: hidden; padding: 25px 27px 24px; position: relative; transition: box-shadow .45s cubic-bezier(.22, .61, .2, 1), transform .45s cubic-bezier(.22, .61, .2, 1); }
.tsf-testimonial-card::after { background: var(--red); bottom: 0; content: ''; height: 2px; left: 0; transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.22, .61, .2, 1); width: 100%; }
.tsf-testimonial-card:hover { box-shadow: 12px 14px 0 rgba(126, 19, 34, .14); transform: translateY(-5px); }
.tsf-testimonial-card:hover::after { transform: scaleX(1); }
.tsf-testimonial-index { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .14em; }
.tsf-testimonial-card blockquote { font-family: var(--font-display, Georgia, serif); font-size: clamp(25px, 2.15vw, 33px); font-weight: 500; letter-spacing: -.045em; line-height: 1.03; margin: 32px 0 28px; }
.tsf-testimonial-card footer { border-top: 1px solid rgba(18, 18, 18, .18); margin-top: auto; padding-top: 15px; }
.tsf-testimonial-card footer strong, .tsf-testimonial-card footer span { display: block; }
.tsf-testimonial-card footer strong { font-family: var(--font-ui, sans-serif); font-size: 12px; font-weight: 700; }
.tsf-testimonial-card footer span { color: #6b625b; font-family: var(--font-ui, sans-serif); font-size: 10px; letter-spacing: .04em; margin-top: 5px; }
@media (max-width: 860px) { .tsf-testimonials-grid { grid-template-columns: 1fr; } .tsf-testimonial-card { min-height: 0; } }
@media (prefers-reduced-motion: reduce) { .tsf-testimonial-card, .tsf-testimonial-card::after { transition: none; } .tsf-testimonial-card:hover { transform: none; } }
/* Personalised consultation builder: editorial in tone, deliberate in function. */
.tsf-experience { background: #f7f1e7; color: var(--ink); }
.tsf-experience-hero { background: #151515; color: #fff; overflow: hidden; padding: clamp(125px, 17vw, 215px) 0 72px; position: relative; }
.tsf-experience-hero::after { background: var(--red); content: ''; height: 46%; opacity: .92; position: absolute; right: -8vw; top: 0; transform: skewX(-19deg); width: 26vw; }
.tsf-experience-hero > div { position: relative; z-index: 1; }
.tsf-experience-hero .tsf-label { color: rgba(255,255,255,.62); }
.tsf-experience-hero__layout { align-items: end; display: grid; gap: 50px; grid-template-columns: minmax(0, 1fr) minmax(255px, .42fr); }
.tsf-experience h1, .tsf-experience h2 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.055em; line-height: .91; }
.tsf-experience h1 { font-size: clamp(66px, 9.4vw, 142px); margin: 0; }
.tsf-experience h1 em, .tsf-experience h2 em { color: var(--red); font-style: italic; }
.tsf-experience-hero p:not(.tsf-label) { font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.7; margin: 28px 0 0; max-width: 440px; }
.tsf-experience-steps { border-top: 1px solid rgba(255,255,255,.35); list-style: none; margin: 0; padding: 18px 0 0; }
.tsf-experience-steps li { border-bottom: 1px solid rgba(255,255,255,.22); font-family: var(--font-ui, sans-serif); font-size: 12px; font-weight: 600; letter-spacing: .05em; padding: 12px 0; text-transform: uppercase; }
.tsf-experience-steps span { color: var(--red); display: inline-block; margin-right: 16px; }
.tsf-experience-builder { padding: clamp(70px, 10vw, 142px) 0; }
.tsf-experience-builder__heading { border-bottom: 1px solid rgba(18,18,18,.22); display: grid; gap: 24px; grid-template-columns: .6fr 1.1fr .62fr; margin-bottom: 62px; padding-bottom: 44px; }
.tsf-experience-builder__heading h2 { font-size: clamp(42px, 5vw, 76px); margin: 0; }
.tsf-experience-builder__heading > p:last-child { font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.7; margin: 0; }
.tsf-experience-form__layout { align-items: start; display: grid; gap: clamp(50px, 8vw, 130px); grid-template-columns: minmax(0, 1fr) minmax(265px, .42fr); }
.tsf-experience-section { border: 0; border-top: 2px solid var(--red); margin: 0; padding: 29px 0 52px; }
.tsf-experience-section + .tsf-experience-section { border-top-color: rgba(18,18,18,.22); }
.tsf-experience-section legend { font-family: var(--font-display, Georgia, serif); font-size: clamp(29px, 3.1vw, 44px); letter-spacing: -.035em; line-height: 1; padding: 0; }
.tsf-experience-section legend span { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; margin-right: 14px; vertical-align: middle; }
.tsf-experience-section__intro { font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.65; margin: 18px 0 31px; max-width: 570px; }
.tsf-experience-fields { display: grid; gap: 27px 22px; }
.tsf-experience-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-field--full { grid-column: 1 / -1; }
.tsf-field label, .tsf-choice-group legend { display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .09em; margin-bottom: 9px; text-transform: uppercase; }
.tsf-field input, .tsf-field select, .tsf-field textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(18,18,18,.45); border-radius: 0; color: var(--ink); font-family: var(--font-ui, sans-serif); font-size: 15px; outline-offset: 5px; padding: 11px 0; width: 100%; }
.tsf-field textarea { line-height: 1.55; min-height: 118px; resize: vertical; }
.tsf-field input:focus, .tsf-field select:focus, .tsf-field textarea:focus { border-bottom: 2px solid var(--red); outline: 2px solid transparent; }
.tsf-field [aria-invalid="true"] { border-bottom-color: #8e1727; }
.tsf-field-error { color: #8e1727; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.4; margin: 7px 0 0; min-height: 0; }
.tsf-optional { color: #6b645d; font-size: 9px; font-weight: 500; letter-spacing: .04em; }
.tsf-choice-group { border: 0; margin: 34px 0 0; padding: 0; }
.tsf-choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
.tsf-choice-row input, .tsf-interest-grid input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.tsf-choice-row label { border: 1px solid rgba(18,18,18,.35); cursor: pointer; font-family: var(--font-ui, sans-serif); font-size: 12px; padding: 11px 13px; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.tsf-choice-row input:checked + label { background: var(--ink); border-color: var(--ink); color: #fff; }
.tsf-choice-row input:focus-visible + label, .tsf-interest-grid input:focus-visible + label { outline: 3px solid var(--red); outline-offset: 3px; }
.tsf-interest-grid { display: grid; gap: 13px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-interest-card { background: #fcfaf5; border: 1px solid rgba(18,18,18,.2); cursor: pointer; display: grid; min-height: 178px; padding: 21px; position: relative; transition: background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease; }
.tsf-interest-card:hover { border-color: var(--red); transform: translateY(-3px); }
.tsf-interest-card span { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 9px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.tsf-interest-card strong { align-self: center; font-family: var(--font-display, Georgia, serif); font-size: clamp(25px, 2.4vw, 34px); font-weight: 500; letter-spacing: -.045em; line-height: .93; max-width: 260px; }
.tsf-interest-card small { font-family: var(--font-ui, sans-serif); font-size: 11px; line-height: 1.45; max-width: 260px; }
.tsf-interest-grid input:checked + .tsf-interest-card { background: var(--red); border-color: var(--red); color: #fff; }
.tsf-interest-grid input:checked + .tsf-interest-card span { color: #fff; }
.tsf-interests-error { margin: 0 0 14px; }
.tsf-privacy-field { align-items: flex-start; border-top: 1px solid rgba(18,18,18,.2); display: grid; gap: 10px; grid-template-columns: 18px 1fr; margin-top: 32px; padding-top: 22px; }
.tsf-privacy-field input { accent-color: var(--red); height: 16px; margin: 1px 0 0; width: 16px; }
.tsf-privacy-field label { cursor: pointer; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.55; }
.tsf-privacy-field .tsf-field-error { grid-column: 2; }
.tsf-experience-legal { color: #5d574f; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.55; margin: 19px 0 24px; }
.tsf-experience-submit { background: var(--red); border: 1px solid var(--red); color: #fff; cursor: pointer; font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; letter-spacing: .09em; padding: 17px 21px; text-transform: uppercase; transition: background .2s ease, border-color .2s ease; }
.tsf-experience-submit:hover, .tsf-experience-submit:focus-visible { background: var(--ink); border-color: var(--ink); }
.tsf-experience-submit span { font-size: 18px; margin-left: 16px; }
.tsf-experience-summary { background: #e6ddd1; border-top: 4px solid var(--red); padding: 31px 27px 28px; position: sticky; top: 25px; }
.tsf-experience-summary h2 { font-size: clamp(36px, 3.5vw, 50px); margin: 18px 0 39px; }
.tsf-experience-summary dl { margin: 0; }
.tsf-experience-summary dl div { border-top: 1px solid rgba(18,18,18,.21); padding: 15px 0; }
.tsf-experience-summary dt { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 9px; font-weight: 700; letter-spacing: .11em; margin-bottom: 7px; text-transform: uppercase; }
.tsf-experience-summary dd { font-family: var(--font-display, Georgia, serif); font-size: 19px; letter-spacing: -.02em; line-height: 1.15; margin: 0; }
.tsf-experience-summary > p:last-child { font-family: var(--font-ui, sans-serif); font-size: 11px; line-height: 1.55; margin: 24px 0 0; }
.tsf-form-notice { border-left: 4px solid var(--red); font-family: var(--font-ui, sans-serif); line-height: 1.55; margin: -29px 0 40px; outline: 0; padding: 15px 18px; }
.tsf-form-notice--success { background: #e2ecdf; border-left-color: #315c36; }
.tsf-form-notice--error { background: #f4e2e3; }
@media (max-width: 860px) { .tsf-experience-hero__layout, .tsf-experience-builder__heading, .tsf-experience-form__layout { grid-template-columns: 1fr; } .tsf-experience-hero__layout { gap: 43px; } .tsf-experience-steps { max-width: 440px; } .tsf-experience-builder__heading { margin-bottom: 46px; } .tsf-experience-summary { position: static; } }
@media (max-width: 580px) { .tsf-experience-hero { padding-bottom: 53px; padding-top: 132px; } .tsf-experience-hero::after { height: 23%; width: 38vw; } .tsf-experience-builder { padding-bottom: 80px; padding-top: 70px; } .tsf-experience-fields--two, .tsf-interest-grid { grid-template-columns: 1fr; } .tsf-interest-card { min-height: 150px; } .tsf-interest-card strong { font-size: 29px; } .tsf-choice-row { display: grid; grid-template-columns: 1fr; } .tsf-choice-row label { text-align: center; } }
@media (prefers-reduced-motion: reduce) { .tsf-interest-card, .tsf-choice-row label, .tsf-experience-submit { transition: none; } .tsf-interest-card:hover { transform: none; } }

/* Immersive editorial direction for the experience landing. */
.tsf-experience { background: #f4eee5; }.tsf-experience-hero { background:#171717; min-height:790px; padding:0; }.tsf-experience-hero::after { background:var(--red); height:100%; opacity:.88; right:auto; transform:none; width:7px; }.tsf-experience-hero>.container-fluid,.tsf-experience-hero__layout { min-height:790px; }.tsf-experience-hero__layout { align-items:stretch; gap:0; grid-template-columns:minmax(360px,.91fr) minmax(420px,1.09fr); }.tsf-experience-hero__copy { align-self:center; padding:82px clamp(32px,6.7vw,118px) 76px 0; position:relative; z-index:1; }.tsf-experience-hero .tsf-label { color:rgba(255,255,255,.54); margin-bottom:62px; }.tsf-experience-hero__index { align-items:center; color:rgba(255,255,255,.7); display:flex; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; gap:13px; letter-spacing:.1em; margin:0 0 23px; text-transform:uppercase; }.tsf-experience-hero__index span { align-items:center; border:1px solid var(--red); border-radius:50%; color:#fff; display:inline-flex; height:31px; justify-content:center; width:31px; }.tsf-experience h1 { font-size:clamp(68px,7.3vw,120px); letter-spacing:-.066em; line-height:.81; max-width:660px; }.tsf-experience h1 em { color:#fff; position:relative; }.tsf-experience h1 em::after { background:var(--red); bottom:-.07em; content:''; height:.1em; left:.05em; position:absolute; right:-.03em; z-index:-1; }.tsf-experience-hero__lede { color:rgba(255,255,255,.8); font-size:16px!important; margin-top:34px!important; max-width:405px; }.tsf-experience-hero__cta { border-bottom:1px solid rgba(255,255,255,.6); color:#fff; display:inline-block; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.12em; margin-top:43px; padding-bottom:12px; text-transform:uppercase; }.tsf-experience-hero__cta span { color:var(--red); font-size:20px; margin-left:21px; vertical-align:-2px; }.tsf-experience-hero__visual { margin:0; min-height:790px; overflow:hidden; position:relative; }.tsf-experience-hero__visual::after { background:linear-gradient(90deg,rgba(0,0,0,.42),transparent 47%,rgba(0,0,0,.18)); content:''; inset:0; position:absolute; }.tsf-experience-hero__visual img { filter:saturate(.76); height:100%; object-fit:cover; position:absolute; transition:transform 1.6s cubic-bezier(.22,.61,.2,1); width:100%; }.tsf-experience-hero__visual:hover img { transform:scale(1.035); }.tsf-experience-hero__visual figcaption { bottom:39px; color:#fff; left:45px; position:absolute; z-index:1; }.tsf-experience-hero__visual figcaption span { display:block; font-family:var(--font-ui,sans-serif); font-size:9px; font-weight:700; letter-spacing:.13em; margin-bottom:8px; text-transform:uppercase; }.tsf-experience-hero__visual figcaption strong { font-family:var(--font-display,Georgia,serif); font-size:clamp(23px,2.4vw,38px); font-weight:500; letter-spacing:-.04em; line-height:.96; max-width:280px; }.tsf-experience-hero__concierge { background:#f7f1e7; bottom:0; color:var(--ink); padding:25px 28px 24px; position:absolute; right:0; width:min(390px,68%); z-index:2; }.tsf-experience-hero__concierge p { font-family:var(--font-display,Georgia,serif); font-size:20px!important; letter-spacing:-.03em; line-height:1.04; margin:0!important; max-width:240px; }.tsf-experience-hero__concierge p span { color:var(--red); display:block; font-family:var(--font-ui,sans-serif); font-size:9px; font-weight:700; letter-spacing:.11em; margin-bottom:9px; text-transform:uppercase; }.tsf-experience-hero__concierge ol { border-top:1px solid rgba(18,18,18,.22); list-style:none; margin:20px 0 0; padding:10px 0 0; }.tsf-experience-hero__concierge li { border-bottom:1px solid rgba(18,18,18,.14); font-family:var(--font-ui,sans-serif); font-size:10px; padding:8px 0; }.tsf-experience-hero__concierge b { color:var(--red); margin-right:9px; }
.tsf-experience-builder { padding-top:clamp(90px,12vw,165px); }.tsf-experience-builder__heading { grid-template-columns:.3fr 1.25fr .6fr; margin-bottom:82px; padding-bottom:58px; }.tsf-experience-builder__heading h2 { font-size:clamp(48px,5.7vw,89px); line-height:.86; }.tsf-experience-form__layout { grid-template-columns:minmax(0,1fr) minmax(270px,.36fr); }.tsf-experience-section { padding-bottom:70px; padding-top:34px; }.tsf-experience-section legend { font-size:clamp(33px,3.4vw,49px); }.tsf-interest-grid { gap:0; grid-template-columns:repeat(3,minmax(0,1fr)); }.tsf-interest-card { border-color:rgba(18,18,18,.18); border-right:0; min-height:246px; padding:25px; }.tsf-interest-grid label:nth-of-type(3n) { border-right:1px solid rgba(18,18,18,.18); }.tsf-interest-card:nth-of-type(n+4) { border-top:0; }.tsf-interest-card strong { font-size:clamp(26px,2.15vw,38px); }.tsf-interest-card:hover { background:#ede1d2; transform:none; }.tsf-experience-summary { box-shadow:16px 16px 0 rgba(198,25,46,.11); padding:37px 31px; }.tsf-experience-summary::before { color:rgba(18,18,18,.12); content:'TSF'; font-family:var(--font-display,Georgia,serif); font-size:74px; letter-spacing:-.1em; line-height:.7; position:absolute; right:23px; top:22px; }.tsf-experience-summary>* { position:relative; }.tsf-experience-summary h2 { font-size:clamp(39px,3.8vw,58px); }
@media (max-width:960px) { .tsf-experience-hero,.tsf-experience-hero>.container-fluid,.tsf-experience-hero__layout { min-height:auto; }.tsf-experience-hero__layout { grid-template-columns:1fr; }.tsf-experience-hero__copy { min-height:650px; padding-left:0; }.tsf-experience-hero__visual { min-height:600px; }.tsf-experience-builder__heading { grid-template-columns:.3fr 1fr; }.tsf-experience-builder__heading>p:last-child { grid-column:2; }.tsf-interest-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.tsf-interest-grid label:nth-of-type(3n) { border-right:0; }.tsf-interest-grid label:nth-of-type(2n) { border-right:1px solid rgba(18,18,18,.18); }.tsf-interest-card:nth-of-type(n+4) { border-top:1px solid rgba(18,18,18,.18); }.tsf-interest-card:nth-of-type(n+3) { border-top:0; } }
@media (max-width:580px) { .tsf-experience-hero__copy { min-height:610px; padding-bottom:58px; padding-top:72px; }.tsf-experience-hero .tsf-label { margin-bottom:45px; }.tsf-experience h1 { font-size:clamp(63px,18vw,84px); }.tsf-experience-hero__visual { min-height:535px; }.tsf-experience-hero__visual figcaption { bottom:25px; left:26px; }.tsf-experience-hero__concierge { padding:20px; width:82%; }.tsf-experience-hero__concierge ol { display:none; }.tsf-experience-builder__heading { display:block; }.tsf-experience-builder__heading .tsf-label { margin-bottom:25px; }.tsf-experience-builder__heading>p:last-child { margin-top:24px; }.tsf-interest-grid { grid-template-columns:1fr; }.tsf-interest-grid label { border-right:1px solid rgba(18,18,18,.18)!important; }.tsf-interest-card { min-height:180px; } }

/* Testimonial rail: six design-stage reviews, ready to be replaced by approved reviews. */
.tsf-testimonials-tools { align-items: center; display: flex; gap: 25px; justify-content: space-between; margin: 40px 0 28px; }
.tsf-testimonials-tools .tsf-testimonials-demo { flex: 1 1 auto; margin: 0; }
.tsf-testimonials-rail { align-items: center; display: grid; gap: 12px; grid-template-columns: 32px minmax(0, 1fr) 32px; }
.tsf-testimonials-arrow { align-items: center; align-self: center; background: transparent; border: 0; color: var(--ink); cursor: pointer; display: inline-flex; font-family: var(--font-display, Georgia, serif); font-size: 37px; height: 52px; justify-content: center; line-height: 1; padding: 0; transition: color .25s ease, transform .25s ease; width: 32px; }
.tsf-testimonials-arrow:hover, .tsf-testimonials-arrow:focus-visible { color: var(--red); outline: 0; transform: translateX(-3px); }
.tsf-testimonials-arrow--next:hover, .tsf-testimonials-arrow--next:focus-visible { transform: translateX(3px); }
.tsf-testimonials-grid { display: flex; gap: 18px; grid-template-columns: none; overflow-x: auto; overscroll-behavior-x: contain; padding: 0 0 8px; scrollbar-width: none; scroll-behavior: smooth; scroll-snap-type: x mandatory; }
.tsf-testimonials-grid::-webkit-scrollbar { display: none; }
.tsf-testimonial-card { flex: 0 0 calc((100% - 36px) / 3); min-width: 0; scroll-snap-align: start; }
.tsf-testimonial-stars { color: var(--red); display: block; font-family: Georgia, serif; font-size: 17px; letter-spacing: 2px; line-height: 1; margin: 18px 0 -12px; }
.tsf-review-form { border-top: 1px solid rgba(18, 18, 18, .22); margin-top: 46px; padding-top: 17px; }
.tsf-review-form summary { align-items: center; cursor: pointer; display: flex; font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; justify-content: space-between; letter-spacing: .1em; list-style: none; max-width: 430px; padding-bottom: 2px; text-transform: uppercase; }
.tsf-review-form summary::-webkit-details-marker { display: none; }
.tsf-review-form summary span { color: var(--red); font-size: 20px; transition: transform .3s ease; }
.tsf-review-form[open] summary span { transform: rotate(90deg); }
.tsf-review-form form { display: grid; gap: 23px; max-width: 760px; padding-top: 25px; }
.tsf-review-form__notice { border-left: 3px solid var(--red); color: #695e55; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.55; margin: 0; padding-left: 13px; }
.tsf-review-form__fields { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-review-form label, .tsf-review-rating legend { color: #403a35; display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.tsf-review-form input, .tsf-review-form textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(18, 18, 18, .35); border-radius: 0; color: var(--ink); font-family: var(--font-ui, sans-serif); font-size: 14px; letter-spacing: 0; margin-top: 9px; outline-offset: 4px; padding: 10px 0; text-transform: none; width: 100%; }
.tsf-review-form textarea { line-height: 1.55; resize: vertical; }
.tsf-review-form input:focus, .tsf-review-form textarea:focus { border-bottom-color: var(--red); outline: 2px solid transparent; }
.tsf-review-rating { border: 0; margin: 0; padding: 0; }
.tsf-review-rating > div { direction: rtl; display: inline-flex; margin-top: 10px; }
.tsf-review-rating input { height: 1px; margin: 0; opacity: 0; position: absolute; width: 1px; }
.tsf-review-rating label { color: #b7aca0; cursor: pointer; font-family: Georgia, serif; font-size: 29px; letter-spacing: 1px; line-height: 1; padding: 0 2px; transition: color .2s ease; }
.tsf-review-rating label:hover, .tsf-review-rating label:hover ~ label, .tsf-review-rating input:checked + label, .tsf-review-rating input:checked + label ~ label { color: var(--red); }
.tsf-review-rating input:focus-visible + label { outline: 2px solid var(--red); outline-offset: 3px; }
.tsf-review-form__action { align-items: center; display: flex; flex-wrap: wrap; gap: 16px; }
.tsf-review-form__action button { background: var(--red); border: 1px solid var(--red); color: #fff; cursor: pointer; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; padding: 14px 16px; text-transform: uppercase; transition: background .25s ease, border-color .25s ease; }
.tsf-review-form__action button:hover, .tsf-review-form__action button:focus-visible { background: var(--ink); border-color: var(--ink); outline: 0; }
.tsf-review-form__action button span { font-size: 18px; margin-left: 15px; vertical-align: -2px; }
.tsf-review-form__action p { color: #695e55; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.45; margin: 0; max-width: 440px; }
@media (max-width: 860px) { .tsf-testimonials-tools { align-items: flex-start; flex-direction: column; } .tsf-testimonial-card { flex-basis: calc((100% - 18px) / 2); } }
@media (max-width: 580px) { .tsf-testimonials { padding-bottom: 70px; padding-top: 70px; } .tsf-testimonials-tools { gap: 16px; } .tsf-testimonials-rail { gap: 5px; grid-template-columns: 25px minmax(0, 1fr) 25px; } .tsf-testimonials-arrow { font-size: 30px; width: 25px; } .tsf-testimonial-card { flex-basis: 100%; } .tsf-testimonial-card blockquote { font-size: 28px; } .tsf-review-form__fields { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .tsf-testimonials-grid { scroll-behavior: auto; } .tsf-testimonials-controls button, .tsf-review-form summary span, .tsf-review-rating label { transition: none; } }

/* On phones, the testimonial card uses the full width and its pagination is explicit. */
.tsf-testimonials-controls { display: none; }
@media (max-width: 580px) {
  .tsf-testimonials-rail { display: block; }
  .tsf-testimonials-arrow { display: none; }
  .tsf-testimonials-grid { padding-bottom: 0; }
  .tsf-testimonial-card { flex-basis: 100%; }
  .tsf-testimonials-controls { align-items: center; display: flex; gap: 8px; justify-content: center; margin-top: 18px; }
  .tsf-testimonials-controls button { background: rgba(22,21,20,.22); border: 0; border-radius: 999px; cursor: pointer; height: 8px; padding: 0; transition: background-color .2s ease, width .2s ease; width: 8px; }
  .tsf-testimonials-controls button[aria-current="true"] { background: var(--red); width: 24px; }
  .tsf-testimonials-controls button:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
}
@media (prefers-reduced-motion: reduce) { .tsf-testimonials-controls button { transition: none; } }

/* Alternative testimonial composition for Mónica's review: text-led carousel beside San Fermín imagery. */
.tsf-testimonials-showcase { background: #f4eee5; color: var(--ink); }
.tsf-testimonials-showcase__content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(38%, 48%); min-height: 510px; }
.tsf-testimonials-showcase__copy { align-self: center; padding: clamp(42px, 4.5vw, 68px) clamp(28px, 7vw, 124px); }
.tsf-testimonials-showcase .tsf-label { color: var(--red); }
.tsf-testimonials-showcase h2 { font-family: var(--font-ui, sans-serif); font-size: clamp(16px, 1.45vw, 22px); font-weight: 700; letter-spacing: .12em; line-height: 1.2; margin: 0 0 12px; text-transform: uppercase; }
.tsf-testimonials-showcase h2 em { color: var(--red); }
.tsf-testimonials-showcase__notice { border-left: 2px solid var(--red); color: #655b53; font-family: var(--font-ui, sans-serif); font-size: 10px; line-height: 1.5; margin: 0 0 18px; max-width: 520px; padding-left: 11px; }
.tsf-testimonials-showcase__viewport { display: flex; gap: 18px; overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.tsf-testimonials-showcase__viewport::-webkit-scrollbar { display: none; }
.tsf-testimonials-showcase__card { background: #fffaf4; border-top: 4px solid var(--red); box-shadow: 12px 14px 0 rgba(126, 19, 34, .09); display: flex; flex: 0 0 100%; flex-direction: column; justify-content: space-between; min-height: 300px; padding: 27px 29px 30px; scroll-snap-align: start; }
.tsf-testimonials-showcase__card header { align-items: center; display: grid; gap: 13px; grid-template-columns: 48px minmax(0, 1fr) auto; }
.tsf-testimonials-showcase__avatar { align-items: center; background: var(--red) center / 31px 31px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='15.5' r='8.2' fill='none' stroke='%23fff' stroke-width='3.2'/%3E%3Cpath d='M9.5 40c1.6-9 7.4-14.2 14.5-14.2S36.9 31 38.5 40' fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='3.2'/%3E%3C/svg%3E"); border-radius: 50%; color: transparent; display: inline-flex; font-family: var(--font-ui, sans-serif); font-size: 0; height: 48px; justify-content: center; letter-spacing: 0; width: 48px; }
.tsf-testimonials-showcase__card header strong, .tsf-testimonials-showcase__card header span { display: block; }
.tsf-testimonials-showcase__card header strong { font-family: var(--font-display, Georgia, serif); font-size: 24px; font-weight: 500; letter-spacing: -.035em; line-height: 1; }
.tsf-testimonials-showcase__card header div span { color: #6b625b; font-family: var(--font-ui, sans-serif); font-size: 10px; letter-spacing: .04em; margin-top: 6px; }
.tsf-testimonials-showcase__stars { color: var(--red); font-family: Georgia, serif; font-size: 13px; letter-spacing: 1px; white-space: nowrap; }
.tsf-testimonials-showcase__card blockquote { font-family: var(--font-display, Georgia, serif); font-size: clamp(27px, 2vw, 33px); font-weight: 500; letter-spacing: -.045em; line-height: 1.04; margin: 35px 0 0; }
.tsf-testimonials-showcase__controls { display: flex; gap: 12px; margin-top: 16px; }
.tsf-testimonials-showcase__controls button { align-items: center; background: transparent; border: 1px solid rgba(18,18,18,.35); border-radius: 50%; color: var(--ink); cursor: pointer; display: inline-flex; font-family: var(--font-display, Georgia, serif); font-size: 24px; height: 42px; justify-content: center; line-height: 1; transition: background .25s ease, border-color .25s ease, color .25s ease; width: 42px; }
.tsf-testimonials-showcase__controls button:hover, .tsf-testimonials-showcase__controls button:focus-visible { background: var(--red); border-color: var(--red); color: #fff; outline: 0; }
.tsf-testimonials-showcase__photo { background: linear-gradient(180deg, rgba(16,10,8,.08), rgba(16,10,8,.45)), url("../images/velas-pobre-de-mi-san-fermin-pamplona.jpg") center / cover; min-height: 430px; position: relative; }
.tsf-testimonials-showcase__photo::after { border: 1px solid rgba(255,255,255,.55); content: ""; inset: 24px; pointer-events: none; position: absolute; }
@media (max-width: 860px) { .tsf-testimonials-showcase__content { grid-template-columns: 1fr; } .tsf-testimonials-showcase__copy { padding-bottom: 65px; } .tsf-testimonials-showcase__photo { min-height: min(580px, 85vw); } }
@media (max-width: 580px) { .tsf-testimonials-showcase__copy { padding: 48px 25px; } .tsf-testimonials-showcase h2 { font-size: 15px; } .tsf-testimonials-showcase__card { min-height: 310px; padding: 24px 22px; } .tsf-testimonials-showcase__card header { grid-template-columns: 44px minmax(0, 1fr); } .tsf-testimonials-showcase__stars { grid-column: 2; margin-top: -8px; } .tsf-testimonials-showcase__card blockquote { font-size: 29px; margin-top: 35px; } .tsf-testimonials-showcase__photo::after { inset: 16px; } }
@media (prefers-reduced-motion: reduce) { .tsf-testimonials-showcase__viewport { scroll-behavior: auto; } .tsf-testimonials-showcase__controls button { transition: none; } }

/* Contact landing: editorial introduction and the established consultation form. */
.tsf-contact-page { background: #f4eee5; color: var(--ink); }
.tsf-contact-page__hero { background: #171717; color: #fff; overflow: hidden; }
.tsf-contact-page__hero-grid { align-items: stretch; display: grid; grid-template-columns: minmax(0, .93fr) minmax(420px, 1.07fr); min-height: 650px; }
.tsf-contact-page__hero-grid > div { align-self: center; padding: 130px clamp(30px, 6vw, 110px) 90px 0; }
.tsf-contact-page__hero .tsf-label { color: rgba(255,255,255,.66); }
.tsf-contact-page__eyebrow { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; margin: 32px 0 17px; text-transform: uppercase; }
.tsf-contact-page__hero h1, .tsf-contact-page__conversation h2 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.065em; line-height: .85; }
.tsf-contact-page__hero h1 { font-size: clamp(57px, 6.7vw, 104px); margin: 0; max-width: 9ch; }
.tsf-contact-page__hero h1 em { color: #fff; font-style: italic; }
.tsf-contact-page__hero h1 em::after { background: var(--red); content: ""; display: block; height: .09em; margin: .06em 0 0 .04em; width: 54%; }
.tsf-contact-page__hero p:last-child { color: rgba(255,255,255,.8); font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.68; margin: 35px 0 0; max-width: 440px; }
.tsf-contact-page__hero figure { margin: 0; min-height: 650px; overflow: hidden; position: relative; }
.tsf-contact-page__hero figure::after { background: linear-gradient(90deg, rgba(0,0,0,.45), transparent 55%); content: ""; inset: 0; position: absolute; }
.tsf-contact-page__hero img { display: block; height: 100%; object-fit: cover; position: absolute; width: 100%; }
.tsf-contact-page__conversation { padding: clamp(78px, 11vw, 156px) 0; }
.tsf-contact-page__conversation-grid { align-items: start; display: grid; gap: clamp(50px, 9vw, 150px); grid-template-columns: minmax(245px, .72fr) minmax(0, 1.08fr); }
.tsf-contact-page__copy { padding-top: 20px; }
.tsf-contact-page__copy .tsf-label, .tsf-contact-page__form .tsf-label { color: var(--red); }
.tsf-contact-page__copy h2, .tsf-contact-page__form h2 { font-size: clamp(44px, 4.4vw, 67px); margin: 21px 0 28px; }
.tsf-contact-page__copy h2 em, .tsf-contact-page__form h2 em { color: var(--red); }
.tsf-contact-page__copy > p:not(.tsf-label):not(.tsf-contact-page__note) { color: #5d554e; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.72; margin: 0 0 18px; max-width: 410px; }
.tsf-contact-page__note { border-left: 3px solid var(--red); color: #4b433d; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.55; margin: 34px 0 0; max-width: 390px; padding-left: 14px; }
.tsf-contact-page__form { background: #fffaf4; box-shadow: 16px 17px 0 rgba(126,19,34,.1); padding: clamp(29px, 4vw, 52px); }
.tsf-contact-page__form-head { border-bottom: 1px solid rgba(18,18,18,.23); margin-bottom: 29px; padding-bottom: 26px; }
.tsf-contact-page__form h2 { font-size: clamp(39px, 3.5vw, 55px); margin-bottom: 0; max-width: 12ch; }
.tsf-contact-page__fields { display: grid; gap: 23px 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-contact-page__fields > div { min-width: 0; }
.tsf-contact-page__fields label { display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .08em; margin-bottom: 8px; text-transform: uppercase; }
.tsf-contact-page__fields input, .tsf-contact-page__fields select, .tsf-contact-page__fields textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(18,18,18,.3); border-radius: 0; color: var(--ink); font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.4; outline: 0; padding: 9px 0 10px; transition: background .25s ease, border-color .25s ease; width: 100%; }
.tsf-contact-page__fields select { min-height: 40px; }.tsf-contact-page__fields textarea { min-height: 118px; resize: vertical; }
.tsf-contact-page__fields input:focus, .tsf-contact-page__fields select:focus, .tsf-contact-page__fields textarea:focus { background: rgba(198,25,46,.035); border-bottom-color: var(--red); }
.tsf-contact-page__full { grid-column: 1 / -1; }
.tsf-contact-page__privacy { align-items: flex-start; border-top: 1px solid rgba(18,18,18,.16); cursor: pointer; display: flex; gap: 10px; margin-top: 29px; padding-top: 21px; }
.tsf-contact-page__privacy input { accent-color: var(--red); flex: 0 0 auto; height: 16px; margin: 1px 0 0; width: 16px; }.tsf-contact-page__privacy span { font-family: var(--font-ui, sans-serif); font-size: 11px; line-height: 1.55; }.tsf-contact-page__privacy b { color: var(--red); }
.tsf-contact-page__form button { background: var(--red); border: 1px solid var(--red); color: #fff; cursor: pointer; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .11em; margin-top: 27px; padding: 16px 18px; text-transform: uppercase; transition: background .25s ease, border-color .25s ease; }
.tsf-contact-page__form button:hover, .tsf-contact-page__form button:focus-visible { background: var(--ink); border-color: var(--ink); outline: 0; }.tsf-contact-page__form button span { font-size: 18px; margin-left: 15px; vertical-align: -2px; }
@media (max-width: 900px) { .tsf-contact-page__hero-grid, .tsf-contact-page__conversation-grid { grid-template-columns: 1fr; } .tsf-contact-page__hero-grid > div { min-height: 570px; padding-left: 0; } .tsf-contact-page__hero figure { min-height: min(610px, 89vw); } .tsf-contact-page__hero figure::after { background: linear-gradient(0deg, rgba(0,0,0,.38), transparent 55%); } .tsf-contact-page__copy { padding-top: 0; } }
@media (max-width: 580px) { .tsf-contact-page__hero-grid > div { min-height: 555px; padding-bottom: 62px; padding-top: 126px; } .tsf-contact-page__hero h1 { font-size: 57px; } .tsf-contact-page__hero p:last-child { font-size: 14px; } .tsf-contact-page__conversation { padding: 75px 0; } .tsf-contact-page__conversation-grid { gap: 48px; } .tsf-contact-page__copy h2 { font-size: 48px; } .tsf-contact-page__form { padding: 29px 22px; } .tsf-contact-page__fields { grid-template-columns: 1fr; } .tsf-contact-page__full { grid-column: auto; } }

/* Six experience entries: white editorial type on a quiet contrast panel. */
.tsf-interest-copy strong { background: rgba(13, 12, 11, .72); box-decoration-break: clone; color: #fff; display: inline; padding: 6px 10px 7px; text-shadow: 0 1px 5px rgba(0,0,0,.52); }
.tsf-interest-copy strong em { color: #fff; font-style: italic; }
.tsf-interest-card:hover .tsf-interest-copy strong, .tsf-interest-card:focus-visible .tsf-interest-copy strong, .tsf-interest-card.is-active .tsf-interest-copy strong { background: rgba(13, 12, 11, .8); }
@media (max-width: 767px) {
  .tsf-interest-selector { padding-bottom: 52px; padding-top: 66px; }
  .tsf-interest-heading { margin-bottom: 28px; }
  .tsf-interest-heading > p { display: none; }
  .tsf-interest-grid { gap: 4px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tsf-interest-card { height: clamp(120px, 33vw, 156px); min-height: 0; }
  .tsf-interest-copy { padding: 12px; }
  .tsf-interest-copy > span:first-child { font-size: 8px; margin-bottom: 10px; }
  .tsf-interest-copy strong { font-size: clamp(17px, 5.6vw, 23px); letter-spacing: -.045em; line-height: .96; padding: 4px 7px 5px; }
  .tsf-interest-copy small { display: none; }
  .tsf-interest-copy b { display: none; }
  .tsf-interest-card:hover, .tsf-interest-card.is-active { box-shadow: none; transform: none; }
}

/* Hero sound trial: automatic after the visitor's first natural interaction, with a quiet opt-out. */
.tsf-hero-sound-toggle { align-items: center; background: rgba(18,18,18,.32); border: 1px solid rgba(255,255,255,.55); bottom: 73px; color: #fff; cursor: pointer; display: inline-flex; font-family: var(--font-ui, sans-serif); font-size: 9px; font-weight: 700; gap: 7px; letter-spacing: .1em; padding: 8px 10px; position: absolute; right: 5.6vw; text-transform: uppercase; transition: background .25s ease, border-color .25s ease; z-index: 4; }
.tsf-hero-sound-toggle > span:first-child { color: #fff; font-family: Georgia, serif; font-size: 16px; line-height: .7; }
.tsf-hero-sound-toggle:hover, .tsf-hero-sound-toggle:focus-visible, .tsf-hero-sound-toggle.is-active { background: var(--red); border-color: var(--red); outline: 0; }
@media (max-width: 767px) { .tsf-hero-sound-toggle { bottom: 18px; right: 28px; } }
@media (prefers-reduced-motion: reduce) { .tsf-hero-sound-toggle { display: none; } }

/* Home cover: keep the four San Fermin scenes moving laterally, not vertically. */
.tsf-hero .tsf-slide { transform: translateX(100%); transition: transform 1.25s cubic-bezier(.77, 0, .18, 1); }
.tsf-hero .tsf-slide.is-active { transform: translateX(0); }
.tsf-hero .tsf-slide.is-leaving { transform: translateX(-100%); }
.tsf-hero .tsf-slide.is-entering-from-left { transform: translateX(-100%); }
.tsf-hero .tsf-slide.is-leaving-to-right { transform: translateX(100%); }
.tsf-hero .tsf-slider-control { align-items: center; background: transparent; border: 0; color: #fff; display: inline-flex; height: auto; justify-content: center; padding: 8px; text-shadow: 0 2px 10px rgba(0,0,0,.42); transition: color .25s ease, transform .25s ease; width: auto; }
.tsf-hero .tsf-slider-control:hover { background: transparent; color: #fff; transform: translateY(-50%) scale(1.1); }
.tsf-hero .tsf-slider-control:focus-visible { background: transparent; color: #fff; outline: 2px solid #fff; outline-offset: 4px; }
.tsf-hero .tsf-hero-meta .tsf-scroll { align-items: center; display: flex; gap: 10px; }
.tsf-hero .tsf-hero-meta .tsf-scroll i { transform: rotate(-90deg); }
@media (prefers-reduced-motion: reduce) { .tsf-hero .tsf-slide { transition: none; } }

/* Accommodation is an informative enquiry landing, never an inventory catalogue. */
.tsf-accommodation { background: #f7f1e7; color: var(--ink); overflow: hidden; }
.tsf-accommodation-hero { background: #243b35; color: #fff; padding: clamp(118px, 12vw, 180px) 0 clamp(74px, 8vw, 122px); position: relative; }
.tsf-accommodation-hero::after { background: var(--red); content: ''; height: 4px; left: 0; position: absolute; top: 0; width: min(68vw, 1080px); }
.tsf-accommodation-hero__grid { align-items: center; display: grid; gap: clamp(45px, 8vw, 140px); grid-template-columns: minmax(0, .95fr) minmax(300px, .85fr); }
.tsf-accommodation-hero__copy { max-width: 650px; }
.tsf-accommodation-hero .tsf-label { color: #f1b9ad; }
.tsf-accommodation h1, .tsf-accommodation h2, .tsf-accommodation h3 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.065em; }
.tsf-accommodation h1 { font-size: clamp(3.75rem, 6.5vw, 7.5rem); line-height: .83; margin: 23px 0 29px; }
.tsf-accommodation h1 em, .tsf-accommodation h2 em { color: #f1b9ad; }
.tsf-accommodation-hero__copy > p:not(.tsf-label) { color: rgba(255,255,255,.82); font-family: var(--font-ui, sans-serif); font-size: 17px; line-height: 1.68; margin: 0; max-width: 500px; }
.tsf-accommodation-hero__cta { margin-top: 36px; }
.tsf-accommodation-hero__visual { margin: 0; min-height: 470px; overflow: hidden; position: relative; }
.tsf-accommodation-hero__visual::after { background: linear-gradient(0deg, rgba(12,24,20,.8), transparent 55%); content: ''; inset: 0; position: absolute; }
.tsf-accommodation-hero__visual img { display: block; height: 100%; object-fit: cover; position: absolute; transition: transform 1.1s cubic-bezier(.22,.61,.2,1); width: 100%; }
.tsf-accommodation-hero__visual:hover img { transform: scale(1.035); }
.tsf-accommodation-hero__visual figcaption { bottom: 24px; color: #fff; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; left: 25px; letter-spacing: .12em; position: absolute; text-transform: uppercase; z-index: 1; }
.tsf-accommodation-intro { padding: clamp(76px, 10vw, 136px) 0; }
.tsf-accommodation-intro__heading { align-items: end; border-bottom: 1px solid rgba(18,18,18,.2); display: grid; gap: 34px; grid-template-columns: .55fr 1.1fr .72fr; padding-bottom: 47px; }
.tsf-accommodation-intro__heading h2 { font-size: clamp(3rem, 5.1vw, 5.8rem); line-height: .84; margin: 0; }
.tsf-accommodation-intro__heading > p:last-child { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.72; margin: 0; }
.tsf-accommodation-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
.tsf-accommodation-steps article { border-bottom: 1px solid rgba(18,18,18,.2); border-right: 1px solid rgba(18,18,18,.2); min-height: 275px; padding: 31px clamp(22px, 3vw, 48px) 35px; }
.tsf-accommodation-steps article:last-child { border-right: 0; }
.tsf-accommodation-steps span { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.tsf-accommodation-steps h3 { font-size: clamp(2rem, 2.9vw, 3rem); line-height: .9; margin: 55px 0 17px; }
.tsf-accommodation-steps p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.65; margin: 0; max-width: 300px; }
.tsf-accommodation-note { background: #e7d8c5; border-bottom: 4px solid var(--red); border-top: 1px solid rgba(18,18,18,.16); padding: clamp(65px, 8vw, 112px) 0; }
.tsf-accommodation-note__grid { display: grid; gap: 38px; grid-template-columns: .55fr 1.3fr; }
.tsf-accommodation-note h2 { font-size: clamp(3rem, 5.1vw, 5.8rem); line-height: .84; margin: 0 0 28px; }
.tsf-accommodation-note h2 em { color: var(--red); }
.tsf-accommodation-note p:not(.tsf-label) { color: #5b544d; font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.72; margin: 0; max-width: 585px; }
.tsf-accommodation-note .tsf-text-link { display: inline-block; margin-top: 29px; }
@media (max-width: 860px) { .tsf-accommodation-hero__grid, .tsf-accommodation-intro__heading, .tsf-accommodation-note__grid { grid-template-columns: 1fr; } .tsf-accommodation-hero__visual { min-height: 360px; } .tsf-accommodation-intro__heading { gap: 20px; } .tsf-accommodation-steps { margin-top: 28px; } }
@media (max-width: 680px) { .tsf-accommodation-hero { padding-top: 137px; } .tsf-accommodation-hero__visual { min-height: 330px; } .tsf-accommodation-steps { grid-template-columns: 1fr; } .tsf-accommodation-steps article, .tsf-accommodation-steps article:last-child { border-right: 0; min-height: 0; padding: 27px 0; } .tsf-accommodation-steps h3 { margin-top: 31px; } .tsf-accommodation-note { padding-bottom: 75px; padding-top: 70px; } }
@media (prefers-reduced-motion: reduce) { .tsf-accommodation-hero__visual img { transition: none; } .tsf-accommodation-hero__visual:hover img { transform: none; } }

/* Guia San Fermin: an evergreen editorial hub, not a booking catalogue. */
.tsf-guide { background: #f7f1e7; color: var(--ink); overflow: hidden; }
.tsf-guide h1, .tsf-guide h2, .tsf-guide h3 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.065em; }
.tsf-guide h1 { font-size: clamp(4rem, 7.8vw, 8.8rem); line-height: .8; margin: 22px 0 28px; }
.tsf-guide h2 { font-size: clamp(3rem, 5.2vw, 6rem); line-height: .84; margin: 0; }
.tsf-guide h2 em { color: var(--red); }
.tsf-guide-hero { background: #243b35; color: #fff; padding: clamp(122px, 13vw, 190px) 0 clamp(76px, 9vw, 126px); position: relative; }
.tsf-guide-hero::before { background: var(--red); content: ''; height: 4px; left: 0; position: absolute; top: 0; width: min(65vw, 980px); }
.tsf-guide-hero__grid { align-items: center; display: grid; gap: clamp(44px, 8vw, 135px); grid-template-columns: minmax(0, .92fr) minmax(320px, .88fr); }
.tsf-guide-hero .tsf-label { color: #f1b9ad; }
.tsf-guide-hero__copy { max-width: 650px; }
.tsf-guide-hero__lead { color: rgba(255,255,255,.82); font-family: var(--font-ui, sans-serif); font-size: 17px; line-height: 1.72; margin: 0; max-width: 540px; }
.tsf-guide-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 28px; margin-top: 37px; }
.tsf-guide-hero .tsf-text-link { color: #fff; }
.tsf-guide-hero__visual { margin: 0; min-height: 455px; overflow: hidden; position: relative; }
.tsf-guide-hero__visual::after { background: linear-gradient(0deg, rgba(12,24,20,.8), transparent 58%); content: ''; inset: 0; position: absolute; }
.tsf-guide-hero__visual img, .tsf-guide-editorial__visual img { display: block; height: 100%; object-fit: cover; transition: transform 1.15s cubic-bezier(.22,.61,.2,1); width: 100%; }
.tsf-guide-hero__visual:hover img, .tsf-guide-editorial__visual:hover img { transform: scale(1.035); }
.tsf-guide-hero__visual figcaption { bottom: 23px; color: #fff; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; left: 25px; letter-spacing: .12em; position: absolute; text-transform: uppercase; z-index: 1; }
.tsf-guide-intro { padding: clamp(78px, 10vw, 140px) 0 0; }
.tsf-guide-intro__heading { align-items: end; border-bottom: 1px solid rgba(18,18,18,.2); display: grid; gap: 34px; grid-template-columns: .48fr 1.12fr .72fr; padding-bottom: 47px; }
.tsf-guide-intro__heading > p:last-child, .tsf-guide-editorial__copy p, .tsf-guide-consult p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.72; margin: 0; }
.tsf-guide-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tsf-guide-topics article { border-bottom: 1px solid rgba(18,18,18,.2); border-right: 1px solid rgba(18,18,18,.2); min-height: 295px; padding: 31px clamp(22px, 3vw, 48px) 37px; }
.tsf-guide-topics article:last-child { border-right: 0; }
.tsf-guide-topics span { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.tsf-guide-topics h3 { font-size: clamp(2rem, 2.9vw, 3rem); line-height: .9; margin: 54px 0 17px; }
.tsf-guide-topics p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.65; margin: 0; max-width: 315px; }
.tsf-guide-editorial { background: #fffaf4; padding: clamp(74px, 10vw, 135px) 0; }
.tsf-guide-editorial__grid { align-items: center; display: grid; gap: clamp(48px, 9vw, 155px); grid-template-columns: minmax(270px, .82fr) minmax(0, .88fr); }
.tsf-guide-editorial__visual { height: min(600px, 47vw); margin: 0; overflow: hidden; }
.tsf-guide-editorial__copy { max-width: 570px; }
.tsf-guide-editorial__copy h2 { margin: 22px 0 27px; }
.tsf-guide-editorial__copy p + p { margin-top: 18px; }
.tsf-guide-consult { background: #c91931; color: #fff; padding: clamp(66px, 8vw, 111px) 0; }
.tsf-guide-consult .tsf-label { color: #f6d5ca; }
.tsf-guide-consult__grid { display: grid; gap: 38px; grid-template-columns: .46fr 1.24fr; }
.tsf-guide-consult h2 { color: #fff; max-width: 760px; }
.tsf-guide-consult h2 em { color: #f9dfd8; }
.tsf-guide-consult p { color: rgba(255,255,255,.82); margin-top: 27px; max-width: 550px; }
.tsf-guide-consult__button { background: #fff; border-color: #fff; color: var(--ink); margin-top: 34px; }
.tsf-guide-consult__button:hover, .tsf-guide-consult__button:focus-visible { background: #243b35; border-color: #243b35; color: #fff; }
.tsf-guide-faq { background: #ede0d0; border-bottom: 4px solid var(--red); padding: clamp(75px, 10vw, 138px) 0; }
.tsf-guide-faq__grid { display: grid; gap: clamp(42px, 8vw, 130px); grid-template-columns: minmax(250px, .65fr) minmax(0, 1.15fr); }
.tsf-guide-faq h2 { margin-top: 22px; }
.tsf-guide-faq details { border-top: 1px solid rgba(18,18,18,.25); }
.tsf-guide-faq details:last-child { border-bottom: 1px solid rgba(18,18,18,.25); }
.tsf-guide-faq summary { align-items: center; cursor: pointer; display: flex; font-family: var(--font-ui, sans-serif); font-size: clamp(18px, 1.55vw, 23px); font-weight: 600; justify-content: space-between; line-height: 1.28; list-style: none; padding: 24px 0; }
.tsf-guide-faq summary::-webkit-details-marker { display: none; }
.tsf-guide-faq summary span { border: 1px solid rgba(18,18,18,.42); border-radius: 50%; color: var(--red); flex: 0 0 31px; font-family: var(--font-ui, sans-serif); font-size: 22px; font-weight: 400; height: 31px; line-height: 27px; margin-left: 26px; text-align: center; transition: background .25s ease, color .25s ease, transform .25s ease; }
.tsf-guide-faq details[open] summary span { background: var(--red); border-color: var(--red); color: #fff; transform: rotate(45deg); }
.tsf-guide-faq details p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.7; margin: -2px 58px 24px 0; max-width: 690px; }
@media (max-width: 860px) { .tsf-guide-hero__grid, .tsf-guide-intro__heading, .tsf-guide-editorial__grid, .tsf-guide-consult__grid, .tsf-guide-faq__grid { grid-template-columns: 1fr; } .tsf-guide-intro__heading { gap: 20px; } .tsf-guide-editorial__visual { height: min(570px, 104vw); } }
@media (max-width: 680px) { .tsf-guide-hero { padding-top: 137px; } .tsf-guide-hero__visual { min-height: 342px; } .tsf-guide-topics { grid-template-columns: 1fr; } .tsf-guide-topics article, .tsf-guide-topics article:last-child { border-right: 0; min-height: 0; padding: 27px 0; } .tsf-guide-topics h3 { margin-top: 31px; } .tsf-guide-editorial { padding-bottom: 75px; padding-top: 75px; } .tsf-guide-editorial__visual { height: 112vw; } .tsf-guide-faq summary { font-size: 18px; padding: 22px 0; } .tsf-guide-faq details p { margin-right: 0; } }
@media (prefers-reduced-motion: reduce) { .tsf-guide-hero__visual img, .tsf-guide-editorial__visual img { transition: none; } .tsf-guide-hero__visual:hover img, .tsf-guide-editorial__visual:hover img { transform: none; } }

/* Core balcony services use one calm, consultation-first visual system. */
.tsf-service { background: #f7f1e7; color: var(--ink); overflow: hidden; }
.tsf-service h1, .tsf-service h2 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.065em; }
.tsf-service-hero { background: #243b35; color: #fff; padding: clamp(123px, 13vw, 182px) 0 clamp(73px, 8vw, 118px); position: relative; }
.tsf-service-hero::before { background: var(--red); content: ''; height: 4px; left: 0; position: absolute; top: 0; width: min(68vw, 1050px); }
.tsf-service-hero__grid { align-items: start; display: grid; gap: clamp(42px, 7vw, 112px); grid-template-columns: minmax(0, .94fr) minmax(330px, .82fr); }
.tsf-service-hero .tsf-label { color: #f1b9ad; }
.tsf-service h1 { font-size: clamp(3.8rem, 6.3vw, 7.3rem); line-height: .82; margin: 23px 0 27px; max-width: 760px; }
.tsf-service-hero__lead { color: rgba(255,255,255,.82); font-family: var(--font-ui, sans-serif); font-size: 17px; line-height: 1.7; margin: 0; max-width: 570px; }
.tsf-service-hero__image { height: clamp(280px, 28vw, 440px); margin: 36px 0 0; max-width: 670px; overflow: hidden; }
.tsf-service-hero__image img { display: block; height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(.22,.61,.2,1); width: 100%; }
.tsf-service-hero__image:hover img { transform: scale(1.035); }
.tsf-service-form-wrap { background: #fffaf4; color: var(--ink); padding: clamp(28px, 3.2vw, 48px); }
.tsf-service-form-wrap .tsf-label { color: var(--red); }
.tsf-service-form-wrap h2 { font-size: clamp(2.35rem, 3.2vw, 3.65rem); line-height: .86; margin: 20px 0 17px; }
.tsf-service-form-wrap > p:not(.tsf-label) { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.6; margin: 0 0 28px; }
.tsf-service-form__grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-service-form .tsf-field--full { grid-column: 1 / -1; }
.tsf-service-form .tsf-field label { display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .09em; line-height: 1.35; margin-bottom: 8px; text-transform: uppercase; }
.tsf-service-form input, .tsf-service-form select, .tsf-service-form textarea { background: #f7f1e7; border: 0; border-bottom: 1px solid rgba(18,18,18,.32); border-radius: 0; box-sizing: border-box; color: var(--ink); font-family: var(--font-ui, sans-serif); font-size: 14px; min-height: 44px; padding: 10px 0; width: 100%; }
.tsf-service-form textarea { border: 1px solid rgba(18,18,18,.18); min-height: 86px; padding: 11px; resize: vertical; }
.tsf-service-form input:focus, .tsf-service-form select:focus, .tsf-service-form textarea:focus { border-color: var(--red); outline: 2px solid rgba(201,25,49,.18); outline-offset: 2px; }
.tsf-service-form .tsf-privacy-field { margin-top: 22px; }
.tsf-service-form__legal { color: #716a62; font-family: var(--font-ui, sans-serif); font-size: 11px; line-height: 1.55; margin: 14px 0 20px; }
.tsf-service-context { background: #e9ddcf; border-bottom: 1px solid rgba(18,18,18,.16); border-top: 1px solid rgba(18,18,18,.16); padding: clamp(68px, 8vw, 112px) 0; }
.tsf-service-context__grid { display: grid; gap: 38px; grid-template-columns: .45fr 1.18fr; }
.tsf-service-context h2 { font-size: clamp(3rem, 5.15vw, 5.9rem); line-height: .84; margin: 0 0 28px; max-width: 850px; }
.tsf-service-context h2 em, .tsf-service-faq h2 em { color: var(--red); }
.tsf-service-context p:not(.tsf-label) { color: #5d574f; font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.72; margin: 0; max-width: 700px; }
.tsf-service-faq { background: #fffaf4; border-bottom: 4px solid var(--red); padding: clamp(74px, 9vw, 132px) 0; }
.tsf-service-faq__grid { display: grid; gap: clamp(44px, 8vw, 132px); grid-template-columns: minmax(250px, .65fr) minmax(0, 1.15fr); }
.tsf-service-faq h2 { font-size: clamp(3rem, 5.1vw, 5.8rem); line-height: .84; margin: 22px 0 0; }
.tsf-service-faq details { border-top: 1px solid rgba(18,18,18,.22); }
.tsf-service-faq details:last-child { border-bottom: 1px solid rgba(18,18,18,.22); }
.tsf-service-faq summary { align-items: center; cursor: pointer; display: flex; font-family: var(--font-ui, sans-serif); font-size: clamp(17px, 1.5vw, 22px); font-weight: 600; justify-content: space-between; line-height: 1.28; list-style: none; padding: 23px 0; }
.tsf-service-faq summary::-webkit-details-marker { display: none; }
.tsf-service-faq summary span { border: 1px solid rgba(18,18,18,.42); border-radius: 50%; color: var(--red); flex: 0 0 30px; font-family: var(--font-ui, sans-serif); font-size: 21px; font-weight: 400; height: 30px; line-height: 26px; margin-left: 24px; text-align: center; transition: background .25s ease, color .25s ease, transform .25s ease; }
.tsf-service-faq details[open] summary span { background: var(--red); border-color: var(--red); color: #fff; transform: rotate(45deg); }
.tsf-service-faq details p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.7; margin: -2px 58px 23px 0; max-width: 700px; }
@media (max-width: 860px) { .tsf-service-hero__grid, .tsf-service-context__grid, .tsf-service-faq__grid { grid-template-columns: 1fr; } .tsf-service-hero__image { max-width: none; } }
@media (max-width: 680px) { .tsf-service-hero { padding-top: 138px; } .tsf-service-form__grid { grid-template-columns: 1fr; } .tsf-service-form .tsf-field--full { grid-column: auto; } .tsf-service-context { padding-bottom: 73px; padding-top: 72px; } .tsf-service-faq details p { margin-right: 0; } }
@media (prefers-reduced-motion: reduce) { .tsf-service-hero__image img { transition: none; } .tsf-service-hero__image:hover img { transform: none; } }

/* Editorial image archive. Credits are intentionally visible and editable. */
.tsf-gallery { background: #fbf8f2; color: var(--ink); }
.tsf-gallery h1, .tsf-gallery h2, .tsf-gallery h3 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.055em; }
.tsf-gallery-hero { background: linear-gradient(90deg, rgba(18, 47, 40, .94) 0%, rgba(25, 58, 49, .82) 50%, rgba(19, 45, 39, .94) 100%), url('../images/san-fermin-panuelos-rojos-pamplona.jpg') center 42% / cover; border-top: 4px solid var(--red); color: #fff; overflow: hidden; padding: clamp(150px, 15vw, 214px) 0 clamp(82px, 9vw, 124px); position: relative; }
.tsf-gallery-hero::before { background: radial-gradient(circle at 72% 44%, rgba(206, 24, 48, .28), transparent 28%); content: ''; inset: 0; pointer-events: none; position: absolute; }
.tsf-gallery-hero::after { background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent); content: ''; height: 1px; left: 5%; position: absolute; right: 5%; top: 104px; }
.tsf-gallery-hero__inner { position: relative; z-index: 1; }
.tsf-gallery-hero__content { max-width: 760px; }
.tsf-gallery-hero .tsf-label { color: #f2b5aa; }
.tsf-gallery-hero h1 { font-size: clamp(3.75rem, 6.6vw, 7.8rem); line-height: .8; margin: 20px 0 0; text-shadow: 0 4px 26px rgba(0,0,0,.28); }
.tsf-gallery-hero h1 em, .tsf-gallery-toolbar h2 em, .tsf-gallery-credit h2 em { color: #ee3f52; }
.tsf-gallery-hero__content > p:not(.tsf-label) { color: rgba(255,255,255,.9); font-family: var(--font-ui, sans-serif); font-size: clamp(1rem, 1.3vw, 1.15rem); line-height: 1.68; margin: 29px 0 0; max-width: 520px; text-shadow: 0 2px 12px rgba(0,0,0,.35); }
.tsf-gallery-grid-section { background: #fff; padding: clamp(70px, 8vw, 118px) 0; }
.tsf-gallery-toolbar { align-items: end; border-bottom: 1px solid rgba(18,18,18,.22); display: grid; gap: 36px; grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr); margin-bottom: 38px; padding-bottom: 30px; }
.tsf-gallery-toolbar h2 { font-size: clamp(2.8rem, 4.7vw, 5.4rem); line-height: .84; margin: 19px 0 0; }
.tsf-gallery-filters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.tsf-gallery-filters button { background: transparent; border: 1px solid rgba(18,18,18,.25); border-radius: 0; color: #35312c; cursor: pointer; font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; letter-spacing: .08em; padding: 12px 15px; text-transform: uppercase; transition: background .25s ease, border-color .25s ease, color .25s ease; }
.tsf-gallery-filters button:hover, .tsf-gallery-filters button:focus-visible, .tsf-gallery-filters button.is-active { background: var(--red); border-color: var(--red); color: #fff; outline: none; }
.tsf-gallery-grid { columns: 3 310px; column-gap: 18px; }
.tsf-gallery-item { break-inside: avoid; margin: 0 0 18px; overflow: hidden; }
.tsf-gallery-item[hidden] { display: none; }
.tsf-gallery-item button { background: #1f1d1b; border: 0; cursor: zoom-in; display: block; overflow: hidden; padding: 0; position: relative; text-align: left; width: 100%; }
.tsf-gallery-item img { display: block; height: auto; min-height: 205px; object-fit: cover; transform: scale(1.001); transition: transform .75s cubic-bezier(.22,.61,.2,1); width: 100%; }
.tsf-gallery-item__veil { background: linear-gradient(180deg, transparent 33%, rgba(16,15,13,.82)); inset: 0; opacity: .86; position: absolute; transition: opacity .35s ease; }
.tsf-gallery-item__meta { bottom: 0; color: #fff; display: flex; flex-direction: column; gap: 5px; left: 0; padding: 23px; position: absolute; right: 0; }
.tsf-gallery-item__meta small { color: #f1b4aa; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.tsf-gallery-item__meta strong { font-family: var(--font-display, Georgia, serif); font-size: clamp(1.75rem, 2.3vw, 2.45rem); font-weight: 500; letter-spacing: -.04em; line-height: .88; }
.tsf-gallery-item__meta > span { font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; margin-top: 8px; opacity: 0; text-transform: uppercase; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease; }
.tsf-gallery-item__meta b { color: #f2b5aa; font-size: 16px; margin-left: 6px; }
.tsf-gallery-item button:hover img, .tsf-gallery-item button:focus-visible img { transform: scale(1.055); }
.tsf-gallery-item button:hover .tsf-gallery-item__veil, .tsf-gallery-item button:focus-visible .tsf-gallery-item__veil { opacity: 1; }
.tsf-gallery-item button:hover .tsf-gallery-item__meta > span, .tsf-gallery-item button:focus-visible .tsf-gallery-item__meta > span { opacity: 1; transform: none; }
.tsf-gallery-item button:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.tsf-gallery-credit { background: #eadfce; border-bottom: 4px solid var(--red); border-top: 1px solid rgba(18,18,18,.15); padding: clamp(76px, 9vw, 130px) 0; }
.tsf-gallery-credit__inner { align-items: center; display: flex; flex-direction: column; gap: clamp(38px, 5vw, 64px); text-align: center; }
.tsf-gallery-credit__intro { max-width: 710px; }
.tsf-gallery-credit .tsf-label { justify-content: center; }
.tsf-gallery-credit h2 { font-size: clamp(3.2rem, 5vw, 5.9rem); line-height: .82; margin: 22px 0 0; }
.tsf-gallery-credit__panel { background: #fffaf4; border-left: 0; border-top: 4px solid var(--red); max-width: 760px; min-height: 0; padding: clamp(28px, 4vw, 52px); transition: transform .35s ease; width: 100%; }
.tsf-gallery-credit__panel:hover { transform: translateY(-4px); }
.tsf-gallery-credit__eyebrow { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; margin: 0 0 18px; text-transform: uppercase; }
.tsf-gallery-credit h3 { font-size: clamp(2rem, 3vw, 3.25rem); line-height: .9; margin: 0 0 18px; }
.tsf-gallery-credit__panel > p:not(.tsf-gallery-credit__eyebrow) { color: #615a51; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.7; margin: 0; }
.tsf-gallery-credit dl, .tsf-gallery-dialog dl { border-top: 1px solid rgba(18,18,18,.17); display: grid; gap: 18px; grid-template-columns: 1fr 1fr; margin: 29px 0 0; padding-top: 18px; }
.tsf-gallery-credit__panel > p, .tsf-gallery-credit__panel dl { text-align: center; }
.tsf-gallery-credit dt, .tsf-gallery-dialog dt { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.tsf-gallery-credit dd, .tsf-gallery-dialog dd { color: #4d4943; font-family: var(--font-ui, sans-serif); font-size: 13px; line-height: 1.45; margin: 6px 0 0; }
.tsf-gallery-dialog { background: #fffaf4; border: 0; box-shadow: 0 24px 80px rgba(0,0,0,.38); max-height: min(760px, 88vh); max-width: min(1100px, 92vw); padding: 0; width: 100%; }
.tsf-gallery-dialog::backdrop { background: rgba(18,20,18,.78); backdrop-filter: blur(5px); }
.tsf-gallery-dialog__close { background: var(--red); border: 0; color: #fff; cursor: pointer; font-size: 32px; height: 48px; line-height: 1; position: absolute; right: 0; top: 0; width: 48px; z-index: 2; }
.tsf-gallery-dialog__image { background: #222; min-height: 320px; }
.tsf-gallery-dialog__image img { display: block; height: min(54vh, 500px); object-fit: contain; width: 100%; }
.tsf-gallery-dialog__copy { padding: 30px clamp(28px, 4vw, 56px) 38px; }
.tsf-gallery-dialog__copy h2 { font-size: clamp(2.5rem, 4.4vw, 4.9rem); line-height: .82; margin: 18px 0 13px; }
.tsf-gallery-dialog__copy > p:not(.tsf-label):not(.tsf-gallery-dialog__note) { color: #645d54; font-family: var(--font-ui, sans-serif); margin: 0; }
.tsf-gallery-dialog__note { color: #766f65; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.55; margin: 22px 0 0; }
@media (max-width: 860px) { .tsf-gallery-toolbar { grid-template-columns: 1fr; } .tsf-gallery-filters { justify-content: flex-start; } .tsf-gallery-hero::after { top: 92px; } }
@media (max-width: 600px) { .tsf-gallery-hero { background-position: 58% center; padding-top: 130px; } .tsf-gallery-hero h1 { font-size: clamp(3.4rem, 14vw, 5.2rem); } .tsf-gallery-hero__content > p:not(.tsf-label) { font-size: .98rem; margin-top: 24px; max-width: 33ch; } .tsf-gallery-toolbar { gap: 26px; } .tsf-gallery-filters { flex-wrap: nowrap; margin: 0 -18px; overflow-x: auto; padding: 2px 18px; } .tsf-gallery-filters button { flex: 0 0 auto; } .tsf-gallery-grid { columns: 1; } .tsf-gallery-item img { min-height: 255px; } .tsf-gallery-item__meta > span { opacity: 1; transform: none; } .tsf-gallery-credit dl, .tsf-gallery-dialog dl { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .tsf-gallery-item img, .tsf-gallery-item__veil, .tsf-gallery-item__meta > span, .tsf-gallery-credit__panel { transition: none; } .tsf-gallery-item button:hover img, .tsf-gallery-item button:focus-visible img { transform: none; } }

/* A compact editorial route to the visual archive from the home page. */
.tsf-gallery-promo { background: #f2e7d8; border-bottom: 1px solid rgba(27, 25, 22, .12); border-top: 1px solid rgba(27, 25, 22, .12); padding: clamp(46px, 6vw, 86px) 0; }
.tsf-gallery-promo__card { background: #fffaf4; border-top: 4px solid var(--red); color: var(--ink); display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .84fr); min-height: 292px; overflow: hidden; text-decoration: none; transition: box-shadow .45s cubic-bezier(.22,.61,.2,1), transform .45s cubic-bezier(.22,.61,.2,1); }
.tsf-gallery-promo__card:hover, .tsf-gallery-promo__card:focus-visible { box-shadow: 0 20px 46px rgba(50, 32, 20, .17); color: var(--ink); outline: 0; transform: translateY(-4px); }
.tsf-gallery-promo__card:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.tsf-gallery-promo__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 4.6vw, 68px); }
.tsf-gallery-promo .tsf-label { color: var(--red); margin: 0 0 18px; }
.tsf-gallery-promo h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(3rem, 4.8vw, 5.6rem); font-weight: 500; letter-spacing: -.055em; line-height: .82; margin: 0; max-width: 540px; }
.tsf-gallery-promo h2 em { color: var(--red); font-style: italic; }
.tsf-gallery-promo__copy > p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.7; margin: 24px 0 25px; max-width: 530px; }
.tsf-gallery-promo__link { border-bottom: 1px solid rgba(27, 25, 22, .6); color: #1b1916; font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; letter-spacing: .1em; padding: 0 0 11px; text-transform: uppercase; transition: border-color .3s ease, color .3s ease; }
.tsf-gallery-promo__link b { color: var(--red); font-size: 18px; margin-left: 19px; transition: margin-left .3s ease; }
.tsf-gallery-promo__card:hover .tsf-gallery-promo__link, .tsf-gallery-promo__card:focus-visible .tsf-gallery-promo__link { border-color: var(--red); color: var(--red); }
.tsf-gallery-promo__card:hover .tsf-gallery-promo__link b, .tsf-gallery-promo__card:focus-visible .tsf-gallery-promo__link b { margin-left: 28px; }
.tsf-gallery-promo__image { margin: 0; min-height: 292px; overflow: hidden; position: relative; }
.tsf-gallery-promo__image::after { background: linear-gradient(90deg, rgba(25, 21, 17, .24), transparent 45%); content: ''; inset: 0; pointer-events: none; position: absolute; }
.tsf-gallery-promo__image img { display: block; height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(.22,.61,.2,1); width: 100%; }
.tsf-gallery-promo__card:hover .tsf-gallery-promo__image img, .tsf-gallery-promo__card:focus-visible .tsf-gallery-promo__image img { transform: scale(1.055); }
.tsf-gallery-promo__image figcaption { bottom: 22px; color: #fff; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; left: 24px; letter-spacing: .12em; position: absolute; text-transform: uppercase; z-index: 1; }
@media (max-width: 760px) { .tsf-gallery-promo__card { grid-template-columns: 1fr; } .tsf-gallery-promo__copy { padding: 38px 28px 34px; } .tsf-gallery-promo h2 { font-size: clamp(3.25rem, 14vw, 4.5rem); } .tsf-gallery-promo__image { min-height: 244px; } }
@media (prefers-reduced-motion: reduce) { .tsf-gallery-promo__card, .tsf-gallery-promo__image img, .tsf-gallery-promo__link, .tsf-gallery-promo__link b { transition: none; } .tsf-gallery-promo__card:hover, .tsf-gallery-promo__card:focus-visible { transform: none; } .tsf-gallery-promo__card:hover .tsf-gallery-promo__image img, .tsf-gallery-promo__card:focus-visible .tsf-gallery-promo__image img { transform: none; } }

/* Preserve the red editorial emphasis over photographs with a restrained contrast halo. */
.tsf-interest-copy strong em { color: #e1263d; text-shadow: 0 2px 9px rgba(9, 7, 6, .88), 0 1px 1px rgba(255, 242, 235, .18); }
.tsf-interest-copy strong { text-shadow: 0 2px 9px rgba(9, 7, 6, .72); }
.tsf-interest-copy small { text-shadow: 0 1px 6px rgba(9, 7, 6, .76); }

/* On small screens the calendar becomes a calm, touch-first editorial list. */
.tsf-calendar-guidance { border-left: 3px solid var(--red); color: #625b54; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.55; margin: -42px 0 42px auto; max-width: 430px; padding-left: 15px; }
.tsf-calendar-guidance strong { color: var(--ink); font-weight: 700; }
@media (max-width: 767px) {
  .tsf-calendar-lab { padding-bottom: 68px; }
  .tsf-calendar-lab-heading { align-items: flex-start; display: block; margin-bottom: 22px; }
  .tsf-calendar-lab-heading h2 { font-size: clamp(42px, 12vw, 58px); letter-spacing: -.06em; }
  .tsf-calendar-lab-heading > p { margin-top: 19px; max-width: 320px; }
  .tsf-calendar-guidance { margin: 0 0 31px; max-width: none; }
  .tsf-calendar-concept { border: 0; margin: 0; padding: 0; }
  .tsf-calendar-showcase { background: transparent; display: grid; gap: 12px; height: auto; overflow: visible; }
  .tsf-calendar-scene,
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene,
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene:not(.is-selected) { box-sizing: border-box; display: flex; flex: none; min-height: 116px; opacity: 1; padding: 20px 21px; pointer-events: auto; transform: none; width: 100%; }
  .tsf-calendar-scene { cursor: pointer; transition: min-height .55s cubic-bezier(.22,.62,.25,1), filter .35s ease; }
  .tsf-calendar-scene::before { background: linear-gradient(90deg, rgba(0,0,0,.76), rgba(0,0,0,.14)); }
  .tsf-calendar-scene .tsf-date { margin-bottom: 7px; }
  .tsf-calendar-scene strong { font-family: var(--font-display, Georgia, serif); font-size: 28px; font-weight: 500; letter-spacing: -.04em; line-height: .92; text-transform: none; }
  .tsf-calendar-scene .tsf-scene-detail { display: none; }
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene.is-before,
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene.is-after { transform: none; }
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene.is-selected,
  .tsf-calendar-showcase.is-open .tsf-calendar-scene.is-selected { flex: none; min-height: 410px; padding: 24px 22px 215px; }
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene.is-selected::before,
  .tsf-calendar-showcase.is-open .tsf-calendar-scene.is-selected::before { background: linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.15)); inset: 0; width: auto; }
  .tsf-calendar-showcase.is-focused .tsf-calendar-scene.is-selected .tsf-scene-panel,
  .tsf-calendar-showcase.is-open .tsf-calendar-scene.is-selected .tsf-scene-panel,
  .tsf-calendar-showcase.is-open.is-panel-ready .tsf-calendar-scene.is-selected .tsf-scene-panel { bottom: 0; box-sizing: border-box; display: flex; left: 0; max-width: none; opacity: 1; padding: 22px 23px 20px 27px; right: 0; top: auto; transform: none; visibility: visible; width: 100%; }
  .tsf-scene-panel i { font-size: 9px; margin-bottom: 9px; }
  .tsf-scene-panel b { font-family: var(--font-ui, sans-serif); font-size: 13px; font-weight: 600; letter-spacing: 0; line-height: 1.38; }
  .tsf-scene-panel em { font-size: 11px; line-height: 1.45; margin-top: 11px; }
  .tsf-scene-panel-cta { font-size: 10px; margin-top: 13px; }
}

/* Pañuelo abstracto: a quiet, non-photographic ceremonial motif for the home. */
.tsf-countdown,
.tsf-contact,
.tsf-territory {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}
.tsf-countdown::after,
.tsf-contact::after {
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 430'%3E%3Cpath d='M62 85c116-71 305-53 416 46 60 54 52 139-18 187-77 52-162 62-246 88-75 23-137 53-190-4-42-45-6-112 58-158 78-56 99-105-20-159Z' fill='%23c6192e'/%3E%3Cpath d='M118 114c111-34 224-5 296 63' fill='none' stroke='%23fff' stroke-opacity='.68' stroke-width='8' stroke-linecap='round'/%3E%3C/svg%3E");
  content: "";
  opacity: .065;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tsf-countdown::after {
  height: 360px;
  right: -108px;
  top: -176px;
  transform: rotate(15deg);
  width: 490px;
}
.tsf-contact::after {
  bottom: -220px;
  height: 590px;
  left: -185px;
  transform: rotate(-23deg);
  width: 710px;
}
/* The territorial marquee meets the next chapter directly, without an interstitial band. */
.tsf-marquee-territory + .tsf-proof { padding-top: clamp(54px, 4vw, 72px); }
/* Keep the lower rule of the two-path chapter as fine as its upper rule. */
.tsf-worlds + .tsf-calendar-lab { border-top-width: 0; }
.tsf-territory::before {
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 430'%3E%3Cpath d='M62 85c116-71 305-53 416 46 60 54 52 139-18 187-77 52-162 62-246 88-75 23-137 53-190-4-42-45-6-112 58-158 78-56 99-105-20-159Z' fill='%23c6192e'/%3E%3C/svg%3E");
  content: "";
  height: 420px;
  opacity: .035;
  pointer-events: none;
  position: absolute;
  right: -180px;
  top: -135px;
  transform: rotate(15deg);
  width: 560px;
  z-index: 0;
}
/* A recognisable San Fermín neckerchief: folded triangle, knot and two loose ends. */
.tsf-countdown::after,
.tsf-contact::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 620'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23c6192e'/%3E%3Cpath d='M144 127c133 22 299 22 432 0' fill='none' stroke='%23fff' stroke-opacity='.54' stroke-width='11' stroke-linecap='round'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23c6192e'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23c6192e'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6-105-35-141-88Z' fill='%23c6192e'/%3E%3C/svg%3E");
  opacity: .095;
}
.tsf-territory::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 620'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23c6192e'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23c6192e'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23c6192e'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6-105-35-141-88Z' fill='%23c6192e'/%3E%3C/svg%3E");
  opacity: .06;
}
/* Contact form: a quiet, scattered textile of complete neckerchiefs. */
.tsf-contact::before {
  background: no-repeat center / cover url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 920'%3E%3Cdefs%3E%3Cg id='s'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23b52a39'/%3E%3Cpath d='M144 127c133 22 299 22 432 0' fill='none' stroke='%23f5efe7' stroke-width='12' stroke-linecap='round'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23b52a39'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23b52a39'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6-105-35-141-88Z' fill='%23b52a39'/%3E%3C/g%3E%3C/defs%3E%3Cuse href='%23s' transform='translate(18 8) scale(.31) rotate(-18 360 310)'/%3E%3Cuse href='%23s' transform='translate(520 -18) scale(.19) rotate(12 360 310)'/%3E%3Cuse href='%23s' transform='translate(1080 4) scale(.29) rotate(23 360 310)'/%3E%3Cuse href='%23s' transform='translate(196 390) scale(.23) rotate(27 360 310)'/%3E%3Cuse href='%23s' transform='translate(690 405) scale(.34) rotate(-11 360 310)'/%3E%3Cuse href='%23s' transform='translate(1250 424) scale(.21) rotate(-26 360 310)'/%3E%3C/svg%3E");
  content: "";
  inset: 0;
  opacity: .07;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tsf-contact::after { display: none; }
.tsf-countdown-shell,
.tsf-contact-layout,
.tsf-territory .container-fluid { position: relative; z-index: 1; }

/* The scarf print belongs on the cream form card as well as its surrounding chapter.
   It is intentionally a little more legible than the chapter watermark, while the
   actual controls remain above it and fully clear. */
.tsf-contact::before { opacity: .12; }
.tsf-contact-form,
.tsf-contact-page__form {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}
.tsf-contact-form::before,
.tsf-contact-page__form::before {
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1060 660'%3E%3Cg fill='%23bd2638'%3E%3Cpath d='M70 73h284L212 283Z'/%3E%3Cpath d='M162 264c12-15 30-23 50-23s38 8 50 23c-4 29-22 49-50 49s-46-20-50-49Z'/%3E%3Cpath d='M186 294c-31 23-56 56-64 105 35-6 63-27 88-65Z'/%3E%3Cpath d='M238 294c31 23 56 56 64 105-35-6-63-27-88-65Z'/%3E%3Cpath d='M676 43h285L818 253Z'/%3E%3Cpath d='M768 234c12-15 30-23 50-23s38 8 50 23c-4 29-22 49-50 49s-46-20-50-49Z'/%3E%3Cpath d='M792 264c-31 23-56 56-64 105 35-6 63-27 88-65Z'/%3E%3Cpath d='M844 264c31 23 56 56 64 105-35-6-63-27-88-65Z'/%3E%3Cpath d='M400 387h284L542 597Z'/%3E%3Cpath d='M492 578c12-15 30-23 50-23s38 8 50 23c-4 29-22 49-50 49s-46-20-50-49Z'/%3E%3Cpath d='M516 608c-31 23-56 56-64 105 35-6 63-27 88-65Z'/%3E%3Cpath d='M568 608c31 23 56 56 64 105-35-6-63-27-88-65Z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23fffaf4' stroke-linecap='round' stroke-width='7'%3E%3Cpath d='M96 89c70 15 163 15 232 0'/%3E%3Cpath d='M702 59c70 15 163 15 232 0'/%3E%3Cpath d='M426 403c70 15 163 15 232 0'/%3E%3C/g%3E%3C/svg%3E");
  content: "";
  inset: -8%;
  opacity: .15;
  pointer-events: none;
  position: absolute;
  transform: rotate(-7deg) scale(1.08);
  z-index: 0;
}
.tsf-contact-form > *,
.tsf-contact-page__form > * { position: relative; z-index: 1; }
@media (max-width: 767px) {
  .tsf-contact-form::before,
  .tsf-contact-page__form::before { inset: -22% -35%; opacity: .13; transform: rotate(-7deg) scale(1.28); }
}
.tsf-calendar-lab .tsf-label,
.tsf-faq .tsf-label,
.tsf-guide .tsf-label {
  align-items: center;
  display: inline-flex;
  gap: 9px;
}
.tsf-calendar-lab .tsf-label::before,
.tsf-faq .tsf-label::before,
.tsf-guide .tsf-label::before {
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 32'%3E%3Cpath d='M4 7c11-7 26-5 37 3 6 5 5 12-2 16-8 5-16 6-23 8-6 1-12 4-15-1-3-4 1-8 7-11 7-4 8-9-4-16Z' fill='%23c6192e'/%3E%3C/svg%3E");
  content: "";
  flex: 0 0 25px;
  height: 18px;
  width: 25px;
}
@media (max-width: 767px) {
  .tsf-countdown::after { height: 255px; right: -98px; top: -120px; width: 350px; }
  .tsf-contact::after { bottom: -158px; height: 410px; left: -145px; width: 500px; }
  .tsf-contact::before { background-size: auto 118%; background-position: center; }
  .tsf-territory::before { height: 300px; right: -135px; top: -100px; width: 400px; }
  .tsf-marquee-territory + .tsf-proof { padding-top: 46px; }
}
/* Editorial route shells keep approved URLs available while their full pages are authored. */
.tsf-vertical-page { background: var(--cream, #f5efe7); color: #161514; min-height: 68vh; }
.tsf-vertical-page__hero { padding: clamp(11rem, 17vw, 16rem) 0 clamp(4rem, 7vw, 7rem); }
.tsf-vertical-page__hero .tsf-label { color: var(--red, #cf1830); margin-bottom: 1.2rem; }
.tsf-vertical-page__hero h1 { font-family: var(--font-serif); font-size: clamp(3rem, 6vw, 6.6rem); line-height: .94; max-width: 13ch; }
.tsf-vertical-page__hero h1 em { color: var(--red, #cf1830); font-weight: inherit; }
.tsf-vertical-page__lead { font-family: var(--font-ui); font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.65; margin: 2rem 0; max-width: 58ch; }
.tsf-vertical-page__children { border-top: 1px solid rgba(20, 20, 20, .18); padding: 0 0 clamp(4rem, 7vw, 7rem); }
.tsf-vertical-page__children > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.tsf-vertical-page__children a { align-items: center; border-bottom: 1px solid rgba(20, 20, 20, .18); color: inherit; display: flex; font-family: var(--font-ui); font-weight: 700; gap: 1rem; justify-content: space-between; letter-spacing: .05em; padding: 1.25rem 0; text-transform: uppercase; }
.tsf-vertical-page__children a:hover, .tsf-vertical-page__children a:focus-visible { color: var(--red, #cf1830); }
@media (max-width: 767px) { .tsf-vertical-page__hero { padding-top: 9rem; } }
/* Territorial consultation landings: a shared first-phase structure for Tu Recorrido. */
.tsf-territory-landing--pamplona .tsf-balcony-hero { --tsf-landing-hero-image: url('../images/pamplona-despues-san-fermin-ruta-cultural.jpg'); }
.tsf-territory-landing--navarra .tsf-balcony-hero { --tsf-landing-hero-image: url('../images/hero-navarra.png'); }
.tsf-territory-landing--euskadi .tsf-balcony-hero, .tsf-territory-landing--iparralde .tsf-balcony-hero, .tsf-territory-landing--conexion .tsf-balcony-hero { background: #20352f; }
.tsf-territory-landing--euskadi .tsf-balcony-hero::before, .tsf-territory-landing--iparralde .tsf-balcony-hero::before, .tsf-territory-landing--conexion .tsf-balcony-hero::before { background: linear-gradient(130deg, rgba(198,25,46,.18), transparent 45%), linear-gradient(40deg, rgba(255,255,255,.05), transparent 42%); }
.tsf-territory-landing__detail-copy { border-top: 1px solid rgba(18,18,18,.18); margin-top: 42px; }
.tsf-territory-landing__detail-copy section { border-bottom: 1px solid rgba(18,18,18,.18); padding: 28px 0 25px; }
.tsf-territory-landing__detail-copy h3 { font-family: var(--font-display, Georgia, serif); font-size: clamp(27px, 2.4vw, 38px); font-weight: 500; letter-spacing: -.045em; line-height: .95; margin: 0 0 14px; }
.tsf-territory-landing__detail-copy p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.72; margin: 0; }
.tsf-territory-landing__continuity { background: #e7d8c5; border-top: 1px solid rgba(18,18,18,.16); padding: clamp(70px, 9vw, 120px) 0; }
.tsf-territory-landing__continuity h2 { font-size: clamp(42px, 5vw, 72px); line-height: .88; margin: 18px 0 42px; max-width: 10ch; }
.tsf-territory-landing__continuity h2 em { color: var(--red, #c6192e); }
.tsf-territory-landing__continuity > div > div { border-top: 1px solid rgba(18,18,18,.22); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-territory-landing__continuity a { align-items: center; border-bottom: 1px solid rgba(18,18,18,.22); color: inherit; display: flex; font-family: var(--font-ui, sans-serif); font-size: 12px; font-weight: 700; justify-content: space-between; letter-spacing: .04em; padding: 24px 0; }
.tsf-territory-landing__continuity a:nth-child(odd) { border-right: 1px solid rgba(18,18,18,.22); padding-right: 28px; }
.tsf-territory-landing__continuity a:nth-child(even) { padding-left: 28px; }
.tsf-territory-landing__continuity b { color: var(--red, #c6192e); font-size: 22px; font-weight: 400; }
.tsf-territory-landing__faq { border-top: 4px solid var(--red, #c6192e); }
.tsf-pamplona-guide { background: #fffaf4; border-top: 1px solid rgba(18,18,18,.16); padding: clamp(78px, 9vw, 132px) 0; }
.tsf-pamplona-guide header { align-items: end; border-bottom: 1px solid rgba(18,18,18,.2); display: grid; gap: 28px; grid-template-columns: minmax(220px, .68fr) minmax(0, 1.1fr) minmax(220px, .6fr); padding-bottom: 44px; }
.tsf-pamplona-guide h2 { font-size: clamp(43px, 5vw, 73px); line-height: .86; margin: 0; max-width: 10ch; }
.tsf-pamplona-guide h2 em { color: var(--red, #c6192e); }
.tsf-pamplona-guide header > p:last-child, .tsf-pamplona-guide aside p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.7; margin: 0; }
.tsf-pamplona-guide__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tsf-pamplona-guide article { border-bottom: 1px solid rgba(18,18,18,.2); border-right: 1px solid rgba(18,18,18,.2); min-height: 310px; padding: 31px clamp(20px, 2.8vw, 43px) 35px; }
.tsf-pamplona-guide article:last-child { border-right: 0; }
.tsf-pamplona-guide article > span { color: var(--red, #c6192e); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .11em; }
.tsf-pamplona-guide h3 { font-family: var(--font-display, Georgia, serif); font-size: clamp(27px, 2.45vw, 37px); font-weight: 500; letter-spacing: -.045em; line-height: .91; margin: 45px 0 16px; }
.tsf-pamplona-guide article p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 13px; line-height: 1.65; margin: 0; }
.tsf-pamplona-guide aside { align-items: center; background: #e7d8c5; display: grid; gap: 30px; grid-template-columns: minmax(0, 1fr) auto; margin-top: 52px; padding: 26px 30px; }
.tsf-pamplona-guide aside p { max-width: 700px; }
.tsf-pamplona-guide aside a { border-bottom: 1px solid currentColor; color: var(--ink, #121212); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; padding-bottom: 8px; text-transform: uppercase; }
.tsf-pamplona-guide aside a span { color: var(--red, #c6192e); font-size: 18px; margin-left: 14px; }
@media (max-width: 900px) { .tsf-pamplona-guide header { grid-template-columns: 1fr; } .tsf-pamplona-guide__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tsf-pamplona-guide article:nth-child(2) { border-right: 0; } .tsf-pamplona-guide article:nth-child(3) { border-right: 1px solid rgba(18,18,18,.2); } }
@media (max-width: 620px) { .tsf-pamplona-guide__grid { grid-template-columns: 1fr; } .tsf-pamplona-guide article, .tsf-pamplona-guide article:nth-child(3) { border-right: 0; min-height: 0; padding-left: 0; padding-right: 0; } .tsf-pamplona-guide h3 { margin-top: 31px; } .tsf-pamplona-guide aside { align-items: start; grid-template-columns: 1fr; padding: 24px; } }
@media (max-width: 680px) { .tsf-territory-landing__continuity > div > div { grid-template-columns: 1fr; } .tsf-territory-landing__continuity a:nth-child(odd), .tsf-territory-landing__continuity a:nth-child(even) { border-right: 0; padding-left: 0; padding-right: 0; } }
/* Hub editorial: Más allá de Pamplona. */
.tsf-route-hub { background: #f5efe7; color: var(--ink, #121212); }
.tsf-route-hub h1, .tsf-route-hub h2, .tsf-route-hub h3 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.06em; }
.tsf-route-hub h1 em, .tsf-route-hub h2 em { color: var(--red, #c6192e); }
.tsf-route-hub__hero { background: #1c2c28; color: #fff; overflow: hidden; padding-top: clamp(116px, 12vw, 180px); }
.tsf-route-hub__hero-grid { align-items: stretch; display: grid; grid-template-areas: 'copy visual'; grid-template-columns: minmax(0, .94fr) minmax(340px, .94fr); }
.tsf-route-hub__hero-copy { align-self: center; grid-area: copy; padding: clamp(52px, 7vw, 100px) clamp(42px, 7vw, 112px) clamp(60px, 8vw, 118px) 0; }
.tsf-route-hub__hero .tsf-label { color: #ecc4b9; margin-bottom: 29px; }
.tsf-route-hub__hero h1 { font-size: clamp(4.5rem, 8vw, 8.9rem); line-height: .79; margin: 0; max-width: 7ch; }
.tsf-route-hub__hero-copy > p:last-of-type { color: rgba(255,255,255,.78); font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.72; margin: 36px 0 0; max-width: 455px; }
.tsf-route-hub__hero-link, .tsf-route-hub__text-link { border-bottom: 1px solid currentColor; color: inherit; display: inline-block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .11em; margin-top: 38px; padding-bottom: 10px; text-transform: uppercase; }
.tsf-route-hub__hero-link span { color: var(--red, #c6192e); font-size: 17px; margin-left: 19px; }
.tsf-route-hub__hero-visual { grid-area: visual; margin: 0; min-height: clamp(500px, 52vw, 720px); overflow: hidden; position: relative; }
.tsf-route-hub__hero-visual::after { background: linear-gradient(90deg, rgba(11,25,21,.38), transparent 50%); content: ''; inset: 0; position: absolute; }
.tsf-route-hub__hero-visual img { display: block; height: 100%; object-fit: cover; object-position: 30% center; position: absolute; width: 100%; }
.tsf-route-hub__hero-visual figcaption { bottom: 28px; color: #fff; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; left: 30px; letter-spacing: .11em; position: absolute; text-transform: uppercase; z-index: 1; }
.tsf-route-hub__opening { padding: clamp(78px, 10vw, 144px) 0; }
.tsf-route-hub__opening-grid { align-items: start; display: grid; gap: 34px; grid-template-columns: .5fr 1fr .9fr; }
.tsf-route-hub__opening h2, .tsf-route-hub__section-head h2, .tsf-route-hub__pamplona h2, .tsf-route-hub__rhythm h2 { font-size: clamp(3.25rem, 5.2vw, 5.8rem); line-height: .84; margin: 0; }
.tsf-route-hub__opening-grid > div p, .tsf-route-hub__pamplona p:not(.tsf-label), .tsf-route-hub__rhythm p:not(.tsf-label) { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.75; margin: 0 0 17px; }
.tsf-route-hub__territories { background: #fffaf4; border-top: 1px solid rgba(18,18,18,.18); padding: clamp(76px, 9vw, 126px) 0; }
.tsf-route-hub__section-head { align-items: end; border-bottom: 1px solid rgba(18,18,18,.2); display: flex; gap: 35px; justify-content: space-between; padding-bottom: 47px; }
.tsf-route-hub__section-head h2 { max-width: 10ch; }
.tsf-route-hub__territory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tsf-route-hub__territory { border-bottom: 1px solid rgba(18,18,18,.2); border-right: 1px solid rgba(18,18,18,.2); display: flex; flex-direction: column; min-height: 365px; padding: 30px clamp(20px, 2.8vw, 45px) 34px; }
.tsf-route-hub__territory:last-child { border-right: 0; }
.tsf-route-hub__territory > span { color: var(--red, #c6192e); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.tsf-route-hub__territory h3 { font-size: clamp(2.1rem, 2.7vw, 3.1rem); line-height: .86; margin: auto 0 19px; }
.tsf-route-hub__territory p { color: #625c54; font-family: var(--font-ui, sans-serif); font-size: 13px; line-height: 1.62; margin: 0; max-width: 260px; }
.tsf-route-hub__territory a { align-items: center; border-top: 1px solid rgba(18,18,18,.18); color: inherit; display: flex; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; justify-content: space-between; letter-spacing: .075em; margin-top: 27px; padding-top: 14px; text-transform: uppercase; }
.tsf-route-hub__territory a span { color: var(--red, #c6192e); font-size: 18px; }
.tsf-route-hub__territory a:hover, .tsf-route-hub__territory a:focus-visible, .tsf-route-hub__text-link:hover, .tsf-route-hub__text-link:focus-visible { color: var(--red, #c6192e); outline: 0; }
.tsf-route-hub__pamplona { background: #e7d8c5; padding: clamp(78px, 10vw, 140px) 0; }
.tsf-route-hub__pamplona-grid { align-items: center; display: grid; gap: clamp(48px, 9vw, 160px); grid-template-columns: minmax(290px, .87fr) minmax(0, .83fr); }
.tsf-route-hub__pamplona figure { height: min(570px, 45vw); margin: 0; overflow: hidden; }
.tsf-route-hub__pamplona img { display: block; height: 100%; object-fit: cover; width: 100%; }
.tsf-route-hub__pamplona > div { max-width: 505px; }
.tsf-route-hub__pamplona h2 { margin: 18px 0 31px; }
.tsf-route-hub__text-link { color: var(--ink, #121212); margin-top: 22px; }
.tsf-route-hub__text-link span { color: var(--red, #c6192e); font-size: 18px; margin-left: 17px; }
.tsf-route-hub__rhythm { background: #1c2c28; color: #fff; padding: clamp(75px, 10vw, 138px) 0; }
.tsf-route-hub__rhythm-grid { display: grid; gap: clamp(50px, 9vw, 160px); grid-template-columns: minmax(0, 1fr) minmax(310px, .76fr); }
.tsf-route-hub__rhythm .tsf-label { color: #ecc4b9; }
.tsf-route-hub__rhythm h2 { margin-top: 23px; max-width: 9ch; }
.tsf-route-hub__rhythm p:not(.tsf-label) { color: rgba(255,255,255,.75); }
.tsf-route-hub__rhythm .tsf-button { margin-top: 23px; }
@media (max-width: 900px) { .tsf-route-hub__hero-grid, .tsf-route-hub__opening-grid, .tsf-route-hub__pamplona-grid, .tsf-route-hub__rhythm-grid { grid-template-columns: 1fr; } .tsf-route-hub__hero-grid { grid-template-areas: 'copy' 'visual'; } .tsf-route-hub__hero-copy { padding-right: 0; } .tsf-route-hub__opening-grid { gap: 22px; } .tsf-route-hub__territory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tsf-route-hub__territory:nth-child(2) { border-right: 0; } .tsf-route-hub__territory:nth-child(3) { border-right: 1px solid rgba(18,18,18,.2); } .tsf-route-hub__pamplona figure { height: min(600px, 100vw); } }
@media (max-width: 620px) { .tsf-route-hub__hero { padding-top: 92px; } .tsf-route-hub__hero-copy { padding-bottom: 54px; padding-top: 66px; } .tsf-route-hub__hero h1 { font-size: clamp(4.1rem, 17vw, 5.6rem); } .tsf-route-hub__hero-visual { min-height: 390px; } .tsf-route-hub__section-head { align-items: start; flex-direction: column; gap: 22px; padding-bottom: 34px; } .tsf-route-hub__territory-grid { grid-template-columns: 1fr; } .tsf-route-hub__territory, .tsf-route-hub__territory:nth-child(3) { border-right: 0; min-height: 280px; padding-left: 0; padding-right: 0; } .tsf-route-hub__territory h3 { margin-top: 44px; } .tsf-route-hub__opening h2, .tsf-route-hub__section-head h2, .tsf-route-hub__pamplona h2, .tsf-route-hub__rhythm h2 { font-size: clamp(3rem, 13vw, 4.2rem); } }
/* A restrained editorial pause linking the reservation choices to the countdown. */
.tsf-editorial-ribbon {
    align-items: center;
    background: #fffaf4;
    display: flex;
    justify-content: center;
    min-height: clamp(46px, 4vw, 56px);
    overflow: hidden;
    padding: 10px clamp(20px, 4vw, 72px);
    position: relative;
}

.tsf-editorial-ribbon::before {
    background: var(--red, #cf1830);
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.tsf-editorial-ribbon p {
    background: #fffaf4;
    color: #3e3530;
    font-family: var(--font-ui, sans-serif);
    font-size: clamp(0.76rem, 0.95vw, 0.9rem);
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1.4;
    margin: 0;
    padding: 0 26px;
    position: relative;
    text-align: center;
    text-transform: uppercase;
    z-index: 1;
}

.tsf-editorial-ribbon p span {
    color: var(--red, #cf1830);
    padding: 0 0.5em;
}

@media (max-width: 767px) {
    .tsf-editorial-ribbon {
        min-height: 52px;
        padding: 9px 20px;
    }

    .tsf-editorial-ribbon p {
        font-size: 0.68rem;
        letter-spacing: 0.12em;
        max-width: 34ch;
        padding: 0 14px;
    }
}

/* The balcony enquiry remains anchored while the editorial column advances. */
.tsf-balcony-consultation__grid { grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr); }
.tsf-balcony-form-stage { align-self: start; top: clamp(18px, 5vw, 82px); }
.tsf-balcony-scroll-ready [data-balcony-scroll-copy] > * { opacity: 0; transform: translateX(-30px); transition: opacity .72s cubic-bezier(.22,.61,.2,1) var(--balcony-reveal-delay, 0ms), transform .72s cubic-bezier(.22,.61,.2,1) var(--balcony-reveal-delay, 0ms); }
.tsf-balcony-scroll-ready [data-balcony-scroll-copy] > *.is-visible { opacity: 1; transform: translateX(0); }

/* Keep the legacy testimonial comparison compact: the reviews remain the focus. */
.tsf-testimonials { padding: clamp(52px, 6vw, 82px) 0; }
.tsf-testimonials-heading { gap: 12px; }
.tsf-testimonials-heading h2 { font-size: clamp(40px, 4.15vw, 61px); line-height: .91; margin: 0; }
.tsf-testimonials-heading > p { font-size: 14px; line-height: 1.55; }
.tsf-testimonials-tools { margin: 22px 0 18px; }
.tsf-testimonials-demo { padding: 8px 11px; }
.tsf-testimonial-card { min-height: 244px; padding: 19px 22px 20px; }
.tsf-testimonial-stars { font-size: 15px; margin: 12px 0 -6px; }
.tsf-testimonial-card blockquote { font-size: clamp(22px, 1.75vw, 29px); line-height: 1.01; margin: 21px 0 19px; }
.tsf-testimonial-card footer { padding-top: 11px; }
@media (max-width: 580px) { .tsf-testimonials { padding-bottom: 56px; padding-top: 56px; } .tsf-testimonial-card { min-height: 0; } .tsf-testimonial-card blockquote { font-size: 26px; } }

/* Balcony inclusions: an independent rounded card framed by complete red neckerchiefs. */
.tsf-balcony-form-stage { background: transparent; border-radius: 0; box-shadow: none; padding: 0; }
.tsf-balcony-form { border-radius: 0; box-shadow: 14px 15px 0 rgba(126,19,34,.18); }
.tsf-balcony-inclusion { background: #fffaf4; border-radius: 19px; margin-top: 36px; overflow: visible; padding: clamp(31px, 3.3vw, 46px); }
.tsf-balcony-inclusion::before, .tsf-balcony-inclusion::after { background: repeat-x center / 37px 31px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 40'%3E%3Cg transform='translate(4 1) scale(.052)'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23c6192e'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23c6192e'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23c6192e'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6 105-35-141-88Z' fill='%23c6192e'/%3E%3C/g%3E%3C/svg%3E"); height: 24px; left: 23px; opacity: 1; right: 23px; }
.tsf-balcony-inclusion::before { top: -17px; }.tsf-balcony-inclusion::after { bottom: -17px; transform: rotate(180deg); }
.tsf-balcony-inclusion__frame::before, .tsf-balcony-inclusion__frame::after { background: repeat-y center / 31px 37px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 40'%3E%3Cg transform='translate(4 1) scale(.052)'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23c6192e'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23c6192e'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23c6192e'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6 105-35-141-88Z' fill='%23c6192e'/%3E%3C/g%3E%3C/svg%3E"); content: ''; bottom: 22px; opacity: 1; position: absolute; top: 22px; width: 24px; }
.tsf-balcony-inclusion__frame::before { left: -17px; }.tsf-balcony-inclusion__frame::after { right: -17px; }
.tsf-balcony-inclusion__corner { background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 105'%3E%3Cpath d='M14 14h92L60 69Z' fill='%23c6192e'/%3E%3Cpath d='M48 65c4-5 8-7 12-7s8 2 12 7c-2 8-6 13-12 13s-10-5-12-13Z' fill='%23c6192e'/%3E%3Cpath d='M54 76c-12 8-21 18-25 29 13-2 23-9 31-21Z' fill='%23c6192e'/%3E%3Cpath d='M66 76c12 8 21 18 25 29-13-2-23-9-31-21Z' fill='%23c6192e'/%3E%3C/svg%3E"); height: 36px; position: absolute; width: 40px; z-index: 1; }
.tsf-balcony-inclusion__corner--tl { left: -18px; top: -20px; transform: rotate(-45deg); }.tsf-balcony-inclusion__corner--tr { right: -18px; top: -20px; transform: rotate(45deg); }.tsf-balcony-inclusion__corner--br { bottom: -20px; right: -18px; transform: rotate(135deg); }.tsf-balcony-inclusion__corner--bl { bottom: -20px; left: -18px; transform: rotate(-135deg); }
.tsf-balcony-inclusion__frame > h2, .tsf-balcony-inclusion__frame > p { position: relative; z-index: 1; }
@media (max-width: 680px) { .tsf-balcony-inclusion { margin: 32px 10px 0; padding: 31px 27px; } .tsf-balcony-inclusion::before, .tsf-balcony-inclusion::after { left: 18px; right: 18px; } }

/* A recognisable, complete San Fermín neckerchief for every FAQ heading. */
.tsf-faq .tsf-label,
.tsf-guide-faq .tsf-label,
.tsf-service-faq .tsf-label { align-items: center; display: inline-flex; gap: 10px; }
.tsf-faq .tsf-label::before,
.tsf-guide-faq .tsf-label::before,
.tsf-service-faq .tsf-label::before {
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 70'%3E%3Cpath d='M10 8h76L48 46Z' fill='%23c6192e'/%3E%3Cpath d='M18 13c19 5 41 5 60 0' fill='none' stroke='%23f8f2e8' stroke-linecap='round' stroke-width='3.5'/%3E%3Cpath d='M39 43c3-4 6-6 9-6s6 2 9 6c-1 6-4 10-9 10s-8-4-9-10Z' fill='%23c6192e' stroke='%23a81027' stroke-width='1.3'/%3E%3Cpath d='M43 51c-10 5-17 11-20 18 10-1 18-5 25-13Z' fill='%23c6192e'/%3E%3Cpath d='M53 51c10 5 17 11 20 18-10-1-18-5-25-13Z' fill='%23c6192e'/%3E%3C/svg%3E");
  content: "";
  flex: 0 0 34px;
  height: 27px;
  width: 34px;
}

/* One clear shared neckerchief silhouette: folded triangle, contrasting fold,
   visible knot and two separate loose ends. It replaces the abstract motifs. */
.tsf-countdown::after,
.tsf-territory::before {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
}
.tsf-contact::before,
.tsf-balcony-form-stage {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
}
.tsf-calendar-lab .tsf-label::before,
.tsf-faq .tsf-label::before,
.tsf-guide .tsf-label::before,
.tsf-guide-faq .tsf-label::before,
.tsf-service-faq .tsf-label::before {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
  background-size: contain;
  flex-basis: 34px;
  height: 28px;
  width: 34px;
}
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
}

/* Final form-landing hero override. It deliberately sits last because older
   exploratory landing rules above use the same selectors. */
.tsf-balcony-hero {
  background: #171d1a;
}
.tsf-balcony-hero::before {
  background:
    linear-gradient(90deg, rgba(11, 16, 14, .76) 0%, rgba(11, 16, 14, .52) 34%, rgba(11, 16, 14, .12) 66%, rgba(11, 16, 14, .06) 100%),
    linear-gradient(0deg, rgba(5, 8, 7, .28), transparent 52%),
    var(--tsf-landing-hero-image) center / cover;
  inset: 0;
}
.tsf-balcony-hero__inner {
  align-items: flex-start;
  justify-content: center;
  min-height: inherit;
  padding-bottom: clamp(58px, 6vw, 92px);
  padding-top: clamp(58px, 6vw, 92px);
  width: 100% !important;
}
.tsf-balcony-hero .tsf-label { margin-bottom: 20px; }
.tsf-balcony-hero h1 { max-width: 9.5ch; }
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) {
  background: transparent;
  border: 0;
  bottom: auto;
  box-shadow: none;
  color: rgba(255,255,255,.94);
  left: auto;
  margin: 27px 0 0;
  max-width: 515px;
  padding: 0;
  position: static;
  right: auto;
  text-shadow: 0 2px 15px rgba(0,0,0,.32);
  width: auto;
}
@media (max-width: 900px) {
  .tsf-balcony-hero { min-height: 480px; padding-bottom: 0; }
  .tsf-balcony-hero::before { height: auto; inset: 0; }
  .tsf-balcony-hero__inner { min-height: 480px; }
}
@media (max-width: 767px) {
  .tsf-balcony-hero { min-height: 440px; }
  .tsf-balcony-hero__inner { min-height: 440px; padding-bottom: 50px; padding-top: 59px; }
  .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { margin-top: 21px; max-width: 32rem; }
}

/* Form landings: one full-bleed photograph, with the editorial copy directly
   on the image. Keep the existing banner heights; only the composition changes. */
.tsf-balcony-hero {
  background: #171d1a;
}
.tsf-balcony-hero::before {
  background:
    linear-gradient(90deg, rgba(11, 16, 14, .76) 0%, rgba(11, 16, 14, .52) 34%, rgba(11, 16, 14, .12) 66%, rgba(11, 16, 14, .06) 100%),
    linear-gradient(0deg, rgba(5, 8, 7, .28), transparent 52%),
    var(--tsf-landing-hero-image) center / cover;
  inset: 0;
}
.tsf-balcony-hero__inner {
  align-items: flex-start;
  justify-content: center;
  min-height: inherit;
  padding-bottom: clamp(58px, 6vw, 92px);
  padding-top: clamp(58px, 6vw, 92px);
  width: 100% !important;
}
.tsf-balcony-hero .tsf-label {
  margin-bottom: 20px;
}
.tsf-balcony-hero h1 {
  max-width: 9.5ch;
}
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) {
  background: transparent;
  border: 0;
  bottom: auto;
  box-shadow: none;
  color: rgba(255,255,255,.94);
  left: auto;
  margin: 27px 0 0;
  max-width: 515px;
  padding: 0;
  position: static;
  right: auto;
  text-shadow: 0 2px 15px rgba(0,0,0,.32);
  width: auto;
}
@media (max-width: 900px) {
  .tsf-balcony-hero { min-height: 480px; padding-bottom: 0; }
  .tsf-balcony-hero::before { height: auto; inset: 0; }
  .tsf-balcony-hero__inner { min-height: 480px; }
}
@media (max-width: 767px) {
  .tsf-balcony-hero { min-height: 440px; }
  .tsf-balcony-hero__inner { min-height: 440px; padding-bottom: 50px; padding-top: 59px; }
  .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { margin-top: 21px; max-width: 32rem; }
}

/* Final, explicit service-form textile. This must come after the generic
   contact-form reset: the same element carries both classes. */
.tsf-contact-form.tsf-balcony-form::before {
  background-color: transparent;
  background-image: url("../images/san-fermin-neckerchief-form-pattern.svg?v=20260902") !important;
  background-position: 0 0;
  background-repeat: repeat;
  background-size: 126px 98px;
  content: "" !important;
  inset: 0;
  opacity: .36;
}
.tsf-balcony-form-stage { background-image: none !important; }
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner { background-image: none !important; content: none !important; display: none !important; }

/* Feria del Toro: keep every editorial pair on one deliberate row. Several
   grid children retained their intrinsic image/text widths and were therefore
   being pushed into a second row, leaving false empty space between sections. */
@media (min-width: 901px) {
  .tsf-feria-intro__grid,
  .tsf-feria-observe__grid,
  .tsf-feria-archive__grid { align-items: center; }
  .tsf-feria-intro__grid > *,
  .tsf-feria-observe__grid > *,
  .tsf-feria-archive__grid > * { min-width: 0; }
  .tsf-feria-intro__grid {
    gap: clamp(52px, 7vw, 112px);
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  }
  .tsf-feria-intro__grid figure { grid-column: 1; grid-row: 1; }
  .tsf-feria-intro__grid > div { grid-column: 2; grid-row: 1; }
  .tsf-feria-intro img { height: clamp(470px, 40vw, 620px); }
  .tsf-feria-observe__grid,
  .tsf-feria-archive__grid {
    gap: clamp(58px, 9vw, 144px);
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  }
  .tsf-feria-observe__grid > div:first-child,
  .tsf-feria-archive__grid > div:first-child { grid-column: 1; grid-row: 1; }
  .tsf-feria-observe__grid > div:last-child,
  .tsf-feria-archive__grid > div:last-child { grid-column: 2; grid-row: 1; }
}

/* A calmer image rhythm: two substantial pairs rather than a bento layout
   that creates narrow, accidental-looking strips. */
.tsf-feria-places__grid { gap: 16px; }
.tsf-feria-places figure:nth-child(1),
.tsf-feria-places figure:nth-child(2) { min-height: 390px; }
.tsf-feria-places figure:nth-child(3),
.tsf-feria-places figure:nth-child(4) { min-height: 330px; }
.tsf-feria-gallery__grid { align-items: start; gap: 16px; }
.tsf-feria-gallery__grid img { min-width: 0; }
@media (max-width: 900px) {
  .tsf-feria-intro__grid > *,
  .tsf-feria-observe__grid > *,
  .tsf-feria-archive__grid > * { min-width: 0; }
  .tsf-feria-intro__grid figure { width: 100%; }
}

/* Form service pages: no scarf border around the editorial inclusion cards.
   The recognisable textile lives only inside the red enquiry card, in a
   lighter red so it is clearly intentional without competing with the form. */
.tsf-balcony-form-stage { background-image: none !important; }
.tsf-balcony-form::before {
  background: repeat 0 0 / 126px 98px url("../images/san-fermin-neckerchief-form-pattern.svg?v=20260902");
  opacity: .31;
}
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner { display: none !important; }

/* Feria del Toro: a cultural guide, intentionally separate from sales landings. */
.tsf-feria-page { background:#f5eee4; color:var(--ink); }
.tsf-feria-page h1, .tsf-feria-page h2 { font-family:var(--font-display, Georgia, serif); font-weight:500; letter-spacing:-.065em; line-height:.88; }
.tsf-feria-page h1 em, .tsf-feria-page h2 em { color:var(--red); font-style:italic; }
.tsf-feria-page p, .tsf-feria-page li { font-family:var(--font-ui, sans-serif); }
.tsf-feria-hero { background:linear-gradient(90deg,rgba(11,12,10,.91) 0%,rgba(11,12,10,.54) 46%,rgba(11,12,10,.1) 78%),url('../images/hero-encierro.png') center/cover; color:#fff; min-height:clamp(590px,48vw,760px); position:relative; }
.tsf-feria-hero__inner { align-items:flex-start; display:flex; flex-direction:column; justify-content:center; min-height:inherit; padding-bottom:90px; padding-top:160px; }
.tsf-feria-hero .tsf-label { color:#f5c7c3; }.tsf-feria-hero h1 { font-size:clamp(64px,7.4vw,116px); margin:19px 0 25px; max-width:none; }.tsf-feria-hero > div > p:not(.tsf-label) { font-size:18px; line-height:1.65; margin:0; max-width:545px; }
.tsf-feria-hero__link { border-bottom:1px solid rgba(255,255,255,.65); color:#fff; font-family:var(--font-ui,sans-serif); font-size:11px; font-weight:700; letter-spacing:.1em; margin-top:41px; padding-bottom:10px; text-transform:uppercase; }.tsf-feria-hero__link span { color:#f2bbb7; font-size:18px; margin-left:16px; }
.tsf-feria-intro { padding:clamp(86px,11vw,158px) 0; }.tsf-feria-intro__grid { align-items:center; display:grid; gap:clamp(50px,10vw,170px); grid-template-columns:minmax(260px,.74fr) minmax(0,1.1fr); }.tsf-feria-intro figure { margin:0; position:relative; }.tsf-feria-intro figure::after { border:1px solid var(--red); content:""; inset:15px; pointer-events:none; position:absolute; }.tsf-feria-intro img { display:block; height:clamp(395px,38vw,640px); object-fit:cover; width:100%; }.tsf-feria-intro figcaption { background:var(--red); bottom:0; color:#fff; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.1em; padding:12px 16px; position:absolute; right:0; text-transform:uppercase; z-index:1; }.tsf-feria-intro h2, .tsf-feria-timeline h2, .tsf-feria-places h2, .tsf-feria-observe h2, .tsf-feria-archive h2, .tsf-feria-notes h2, .tsf-feria-gallery h2, .tsf-feria-continue h2 { font-size:clamp(49px,5.1vw,82px); margin:18px 0 31px; }.tsf-feria-intro div > p:not(.tsf-label) { color:#514b45; font-size:16px; line-height:1.78; margin:0 0 18px; max-width:605px; }
.tsf-feria-timeline { background:#182521; color:#fff; overflow:hidden; padding:clamp(78px,9vw,128px) 0; }.tsf-feria-timeline .tsf-label { color:#f1bdb8; }.tsf-feria-timeline h2 { margin-bottom:65px; }.tsf-feria-timeline__track { display:grid; gap:0; grid-template-columns:repeat(6,minmax(0,1fr)); list-style:none; margin:0; padding:0; position:relative; }.tsf-feria-timeline__track::before { background:var(--red); content:""; height:2px; left:0; position:absolute; right:0; top:16px; }.tsf-feria-timeline__track li { padding:0 22px 0 0; position:relative; }.tsf-feria-timeline__track span { align-items:center; background:#182521; border:2px solid var(--red); border-radius:50%; color:#fff; display:flex; font-family:var(--font-ui,sans-serif); font-size:9px; font-weight:700; height:34px; justify-content:center; position:relative; width:34px; z-index:1; }.tsf-feria-timeline__track strong { display:block; font-family:var(--font-display,Georgia,serif); font-size:29px; font-weight:500; margin:23px 0 10px; }.tsf-feria-timeline__track p { color:rgba(255,255,255,.72); font-size:13px; line-height:1.55; margin:0; max-width:180px; }
.tsf-feria-places { background:#fffaf4; padding:clamp(86px,11vw,150px) 0; }.tsf-feria-places header, .tsf-feria-gallery header { align-items:flex-end; display:flex; justify-content:space-between; margin-bottom:52px; }.tsf-feria-places header h2, .tsf-feria-gallery header h2 { margin-bottom:0; }.tsf-feria-places__grid { display:grid; gap:14px; grid-template-columns:repeat(12,minmax(0,1fr)); }.tsf-feria-places figure { margin:0; min-height:300px; overflow:hidden; position:relative; }.tsf-feria-places figure:nth-child(1) { grid-column:span 7; }.tsf-feria-places figure:nth-child(2) { grid-column:span 5; }.tsf-feria-places figure:nth-child(3), .tsf-feria-places figure:nth-child(4) { grid-column:span 6; }.tsf-feria-places img { height:100%; min-height:300px; object-fit:cover; transition:transform .7s ease; width:100%; }.tsf-feria-places figure:hover img { transform:scale(1.045); }.tsf-feria-places figcaption { background:linear-gradient(0deg,rgba(0,0,0,.8),transparent); bottom:0; color:#fff; display:flex; flex-direction:column; gap:5px; left:0; padding:52px 25px 23px; position:absolute; right:0; }.tsf-feria-places figcaption strong { font-family:var(--font-display,Georgia,serif); font-size:31px; font-weight:500; }.tsf-feria-places figcaption span { font-family:var(--font-ui,sans-serif); font-size:12px; }
.tsf-feria-observe { background:var(--red); color:#fff; padding:clamp(78px,9vw,128px) 0; }.tsf-feria-observe .tsf-label { color:#f7ccc8; }.tsf-feria-observe h2 em { color:#fff; }.tsf-feria-observe__grid, .tsf-feria-archive__grid { align-items:start; display:grid; gap:clamp(50px,12vw,210px); grid-template-columns:minmax(260px,.85fr) minmax(0,1fr); }.tsf-feria-observe__grid > div:last-child { font-size:16px; line-height:1.75; max-width:620px; }.tsf-feria-observe ul { border-top:1px solid rgba(255,255,255,.42); list-style:none; margin:29px 0 0; padding:10px 0 0; }.tsf-feria-observe li { border-bottom:1px solid rgba(255,255,255,.32); font-size:13px; padding:13px 0 13px 23px; position:relative; }.tsf-feria-observe li::before { color:#f6c3be; content:"•"; left:0; position:absolute; }
.tsf-feria-archive { background:#e8ddd0; padding:clamp(76px,9vw,125px) 0; }.tsf-feria-archive__grid > div:last-child { color:#544c44; font-size:16px; line-height:1.72; max-width:610px; }.tsf-feria-archive__notice { border-left:3px solid var(--red); font-size:13px; margin-top:31px; padding:5px 0 5px 16px; }
.tsf-feria-notes { background:#fff; padding:clamp(84px,10vw,145px) 0; }.tsf-feria-notes h2 { max-width:760px; }.tsf-feria-notes__grid { border-top:1px solid rgba(18,18,18,.18); display:grid; gap:clamp(38px,8vw,140px); grid-template-columns:1fr 1fr; padding-top:28px; }.tsf-feria-notes__grid p { color:#544c44; font-size:16px; line-height:1.75; margin:0; }
.tsf-feria-gallery { background:#f5eee4; padding:clamp(80px,10vw,140px) 0; }.tsf-feria-gallery__grid { display:grid; gap:14px; grid-template-columns:1.1fr .7fr 1.2fr; }.tsf-feria-gallery__grid img { height:clamp(285px,28vw,490px); object-fit:cover; width:100%; }.tsf-feria-gallery__grid img:nth-child(2) { height:clamp(350px,34vw,570px); margin-top:52px; }.tsf-feria-gallery__caption { color:#746a61; font-size:11px; line-height:1.55; margin:21px 0 0; max-width:470px; }
.tsf-feria-continue { background:#182521; color:#fff; padding:clamp(78px,9vw,125px) 0; }.tsf-feria-continue .tsf-label { color:#efbdb7; }.tsf-feria-continue h2 em { color:#f1bbb6; }.tsf-feria-continue nav { border-top:1px solid rgba(255,255,255,.25); display:grid; grid-template-columns:repeat(4,1fr); margin-top:50px; }.tsf-feria-continue nav a { border-right:1px solid rgba(255,255,255,.2); color:#fff; display:flex; font-family:var(--font-display,Georgia,serif); font-size:28px; justify-content:space-between; padding:23px 20px 18px 0; }.tsf-feria-continue nav a:not(:first-child) { padding-left:20px; }.tsf-feria-continue nav a:last-child { border-right:0; }.tsf-feria-continue nav span { color:#e93d4f; font-family:var(--font-ui,sans-serif); }
@media (max-width:900px) { .tsf-feria-intro__grid, .tsf-feria-observe__grid, .tsf-feria-archive__grid { grid-template-columns:1fr; }.tsf-feria-intro figure { max-width:570px; }.tsf-feria-timeline__track { overflow-x:auto; grid-template-columns:repeat(6,220px); padding-bottom:10px; scroll-snap-type:x mandatory; }.tsf-feria-timeline__track li { scroll-snap-align:start; }.tsf-feria-continue nav { grid-template-columns:1fr 1fr; }.tsf-feria-continue nav a:nth-child(2) { border-right:0; }.tsf-feria-continue nav a:nth-child(n+3) { border-top:1px solid rgba(255,255,255,.2); } }
@media (max-width:620px) { .tsf-feria-hero { min-height:570px; }.tsf-feria-hero__inner { padding-bottom:64px; padding-top:128px; }.tsf-feria-hero h1 { font-size:57px; }.tsf-feria-hero > div > p:not(.tsf-label) { font-size:15px; }.tsf-feria-intro img { height:385px; }.tsf-feria-places header, .tsf-feria-gallery header { display:block; }.tsf-feria-places__grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; }.tsf-feria-places figure, .tsf-feria-places figure:nth-child(n) { flex:0 0 85%; min-height:390px; scroll-snap-align:start; }.tsf-feria-places figcaption strong { font-size:28px; }.tsf-feria-notes__grid, .tsf-feria-gallery__grid { grid-template-columns:1fr; }.tsf-feria-gallery__grid img, .tsf-feria-gallery__grid img:nth-child(2) { height:330px; margin-top:0; }.tsf-feria-continue nav { grid-template-columns:1fr; }.tsf-feria-continue nav a, .tsf-feria-continue nav a:not(:first-child) { border-right:0; border-top:1px solid rgba(255,255,255,.2); font-size:27px; padding:20px 0; }.tsf-feria-continue nav a:first-child { border-top:0; }.tsf-feria-timeline h2, .tsf-feria-places h2, .tsf-feria-observe h2, .tsf-feria-archive h2, .tsf-feria-notes h2, .tsf-feria-gallery h2, .tsf-feria-continue h2 { font-size:49px; } }

/* The Venice mark supplied by its own site is only 98 × 74 px. Do not upscale
   it: its native dimensions are sharper and more respectful of the brand. */
.tsf-other-projects-logos a:last-child img {
  height: 74px;
  max-height: 74px;
  max-width: 98px;
  width: 98px;
}

/* The supplied Venice logo is only 98 × 74 px. Keep it at its native size so
   the partner mark stays crisp instead of being enlarged inside its card. */
.tsf-other-project-venecia .tsf-other-project-logo img {
  height: 74px;
  max-height: 74px;
  max-width: 98px;
  width: 98px;
}

/* Consultation landings: the textile belongs inside the red form card, never
   around the supporting note. This shared rule covers balcony, accommodation,
   tours and the San Fermín service forms. */
.tsf-balcony-form {
  background: var(--red);
  isolation: isolate;
  overflow: hidden;
  position: relative;
}
.tsf-balcony-form::before {
  background: repeat 0 0 / 132px 103px url("../images/san-fermin-neckerchief.svg?v=20260902");
  content: "";
  inset: 0;
  opacity: .17;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tsf-balcony-form > * { position: relative; z-index: 1; }

/* The following information card remains clean and clearly separate. */
.tsf-balcony-inclusion {
  border-top: 3px solid var(--red);
  margin-top: 28px;
  overflow: visible;
}
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner {
  background: none !important;
  content: none !important;
  display: none !important;
}

/* Home: the two paths become a tactile, one-card carousel on mobile. */
section.tsf-worlds {
  display: block;
  height: auto;
}
.tsf-worlds-track {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  height: clamp(390px, 32vw, 420px);
}
.tsf-worlds-pagination { display: none; }

@media (max-width: 767px) {
  section.tsf-worlds {
    overflow: hidden;
    padding-bottom: 18px !important;
  }
  .tsf-worlds-track {
    display: flex;
    height: auto;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
  }
  .tsf-worlds-track::-webkit-scrollbar { display: none; }
  .tsf-worlds-track .tsf-world {
    flex: 0 0 100%;
    height: 370px;
    min-width: 100%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .tsf-worlds-pagination {
    align-items: center;
    display: flex;
    gap: 9px;
    justify-content: center;
    margin-top: 14px;
  }
  .tsf-worlds-pagination button {
    appearance: none;
    background: rgba(255, 255, 255, .5);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    height: 7px;
    margin: 0;
    padding: 0;
    transition: background .2s ease, width .2s ease;
    width: 7px;
  }
  .tsf-worlds-pagination button[aria-current="true"] {
    background: var(--red);
    border-radius: 7px;
    width: 23px;
  }
  .tsf-worlds-pagination button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
}

/* Final contact treatment: small, regular neckerchief print on the red ground.
   The cream form card stays deliberately plain. */
.tsf-contact::before {
    background: repeat 0 0 / 248px 194px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 248 194'%3E%3Cg transform='translate(28 8) scale(.25)'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23f06c79'/%3E%3Cpath d='M144 127c133 22 299 22 432 0' fill='none' stroke='%23f8b7bd' stroke-linecap='round' stroke-width='11'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23f06c79'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23f06c79'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6-105-35-141-88Z' fill='%23f06c79'/%3E%3C/g%3E%3C/svg%3E");
    opacity: .24;
}
.tsf-contact-form::before,
.tsf-contact-page__form::before { content: none; }

/* Balcony reference landing: compact image-led introduction, editorial detail and consultation. */
.tsf-balcony-landing { background: #f4eee5; color: var(--ink); }
.tsf-balcony-landing h1, .tsf-balcony-landing h2, .tsf-balcony-landing h3 { font-family: var(--font-display, Georgia, serif); font-weight: 500; letter-spacing: -.06em; }
.tsf-balcony-hero { background: linear-gradient(90deg, rgba(12,8,7,.8) 0%, rgba(17,10,7,.5) 48%, rgba(10,7,5,.34) 100%), url('../images/hero-encierro.png') center 52% / cover; border-top: 4px solid var(--red); color: #fff; min-height: clamp(370px, 39vw, 510px); overflow: hidden; position: relative; }
.tsf-balcony-hero::after { border: 1px solid rgba(255,255,255,.3); content: ''; inset: 24px 5%; pointer-events: none; position: absolute; }
.tsf-balcony-hero__inner { display: flex; flex-direction: column; justify-content: flex-end; min-height: inherit; padding-bottom: clamp(55px, 6vw, 92px); padding-top: 142px; position: relative; z-index: 1; }
.tsf-balcony-hero .tsf-label { background: var(--red); color: #fff; margin: 0 0 18px; padding: 9px 12px; width: max-content; }
.tsf-balcony-hero h1 { font-size: clamp(3.4rem, 6.2vw, 6.8rem); line-height: .82; margin: 0; max-width: 12ch; text-shadow: 0 4px 24px rgba(0,0,0,.3); }
.tsf-balcony-hero h1 em { color: var(--red, #c6192e); font-style: italic; }
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:last-child { color: rgba(255,255,255,.9); font-family: var(--font-ui, sans-serif); font-size: clamp(15px, 1.25vw, 18px); line-height: 1.6; margin: 25px 0 0; max-width: 600px; }
.tsf-balcony-consultation { padding: clamp(74px, 9vw, 138px) 0; }
.tsf-balcony-consultation__grid { align-items: start; display: grid; gap: clamp(48px, 8vw, 138px); grid-template-columns: minmax(0, 1fr) minmax(430px, .94fr); }
.tsf-balcony-story > .tsf-label { color: var(--red); }
.tsf-balcony-story h2 { font-size: clamp(3.2rem, 5.35vw, 6.4rem); line-height: .83; margin: 21px 0 33px; max-width: 11ch; }
.tsf-balcony-story h2 em { color: var(--red); font-style: italic; }
.tsf-balcony-story > p { color: #554f49; font-family: var(--font-ui, sans-serif); font-size: 16px; line-height: 1.75; margin: 0 0 18px; max-width: 680px; }
.tsf-balcony-story > p strong { color: var(--red); font-weight: 700; }
.tsf-balcony-story__motto { border-left: 3px solid var(--red); color: var(--ink) !important; font-family: var(--font-display, Georgia, serif) !important; font-size: clamp(24px, 2.15vw, 34px) !important; letter-spacing: -.04em; line-height: 1.02 !important; margin: 32px 0 44px !important; padding-left: 18px; }
.tsf-balcony-story__motto em { color: var(--red); }
.tsf-balcony-routes { border-top: 1px solid rgba(18,18,18,.26); margin-top: 46px; }
.tsf-balcony-routes > .tsf-label { color: var(--red); margin: 0; padding: 18px 0 4px; }
.tsf-balcony-routes article { border-bottom: 1px solid rgba(18,18,18,.2); display: grid; gap: 14px 23px; grid-template-columns: 31px minmax(0, 1fr); padding: 24px 0 26px; }
.tsf-balcony-routes span { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; padding-top: 5px; }
.tsf-balcony-routes h3 { font-size: clamp(25px, 2.15vw, 34px); grid-column: 2; line-height: .95; margin: 0; }
.tsf-balcony-routes p { color: #625a53; font-family: var(--font-ui, sans-serif); font-size: 14px; grid-column: 2; line-height: 1.68; margin: -3px 0 0; max-width: 580px; }
.tsf-balcony-form-stage { background: var(--red) repeat 0 0 / 54px 42px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 54 42'%3E%3Cg transform='translate(5 2) scale(.052)'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23e95263'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23e95263'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23e95263'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6-105-35-141-88Z' fill='%23e95263'/%3E%3C/g%3E%3C/svg%3E"); border-radius: 18px; box-shadow: 17px 18px 0 rgba(98,15,28,.16); padding: clamp(14px, 2.3vw, 33px); position: sticky; top: 28px; }
.tsf-balcony-form-stage .tsf-form-notice { background: #fffaf4; margin: 0 0 14px; }
.tsf-balcony-form { border-radius: 11px; box-shadow: none; margin: 0; }
.tsf-balcony-form .tsf-form-heading { align-items: baseline; }
.tsf-balcony-form .tsf-form-heading p { font-size: clamp(24px, 2.3vw, 33px); }
.tsf-balcony-form select, .tsf-balcony-form input, .tsf-balcony-form textarea { background: transparent; }
.tsf-balcony-inclusion { background: #fffaf4; border-radius: 11px; color: var(--ink); margin-top: 14px; padding: clamp(25px, 3vw, 40px); position: relative; }
.tsf-balcony-inclusion::before, .tsf-balcony-inclusion::after { background: repeat-x center / 38px 29px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38 29'%3E%3Cg transform='translate(4 1) scale(.036)'%3E%3Cpath d='M94 104h532L360 410Z' fill='%23c6192e'/%3E%3Cpath d='M294 376c19-23 46-35 66-35s47 12 66 35c-5 38-29 67-66 67s-61-29-66-67Z' fill='%23c6192e'/%3E%3Cpath d='M326 424c-47 31-91 75-108 139 55-6 105-35 141-88Z' fill='%23c6192e'/%3E%3Cpath d='M394 424c47 31 91 75 108 139-55-6-105-35-141-88Z' fill='%23c6192e'/%3E%3C/g%3E%3C/svg%3E"); content: ''; height: 16px; left: 18px; opacity: .75; pointer-events: none; position: absolute; right: 18px; }
.tsf-balcony-inclusion::before { top: -10px; }.tsf-balcony-inclusion::after { bottom: -10px; transform: rotate(180deg); }
.tsf-balcony-inclusion h2 { font-size: clamp(27px, 2.5vw, 38px); line-height: .94; margin: 4px 0 15px; max-width: 12ch; }.tsf-balcony-inclusion h2 em { color: var(--red); font-style: italic; }.tsf-balcony-inclusion p { color: #5e5650; font-family: var(--font-ui, sans-serif); font-size: 13px; line-height: 1.68; margin: 0; }
@media (max-width: 960px) { .tsf-balcony-consultation__grid { grid-template-columns: 1fr; } .tsf-balcony-form-stage { position: static; } }
@media (max-width: 680px) { .tsf-balcony-hero { min-height: 460px; } .tsf-balcony-hero::after { inset: 14px; } .tsf-balcony-hero__inner { padding-bottom: 50px; padding-top: 132px; } .tsf-balcony-hero h1 { font-size: clamp(3.3rem, 14vw, 4.6rem); } .tsf-balcony-consultation { padding: 72px 0; } .tsf-balcony-story h2 { font-size: 3.25rem; } .tsf-balcony-routes article { gap: 11px 16px; grid-template-columns: 25px minmax(0, 1fr); } .tsf-balcony-form-stage { margin-left: -1px; margin-right: -1px; padding: 10px; } .tsf-balcony-form .tsf-form-heading p { font-size: 26px; } }

/* Final balcony layout: editorial text left, independent square enquiry card right. */
.tsf-balcony-consultation__grid { grid-template-areas: "story form"; grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr); }
.tsf-balcony-story { grid-area: story; order: 1; }
.tsf-balcony-form-stage { align-self: start; background: transparent; border-radius: 0; box-shadow: none; grid-area: form; order: 2; padding: 0; position: sticky; top: clamp(18px, 5vw, 82px); }
.tsf-balcony-form { border-radius: 0 !important; box-shadow: 14px 15px 0 rgba(126,19,34,.18); }
.tsf-balcony-inclusion { border-radius: 19px; margin-top: 38px; padding: clamp(31px, 3.3vw, 46px); }
@media (max-width: 960px) { .tsf-balcony-consultation__grid { grid-template-areas: "story" "form"; grid-template-columns: 1fr; } .tsf-balcony-form-stage { position: static; } }
@media (max-width: 680px) { .tsf-balcony-form-stage { margin-left: 0; margin-right: 0; padding: 0; } }

/* Give the consultation clear priority over the supporting editorial copy. */
@media (min-width: 961px) { .tsf-balcony-consultation__grid { gap: clamp(46px, 6vw, 104px); grid-template-columns: minmax(0, .8fr) minmax(490px, 1.2fr); } }
.tsf-balcony-form { background: var(--red); color: #fff; padding: clamp(30px, 4vw, 56px); }
.tsf-balcony-form .tsf-form-heading { border-bottom-color: rgba(255,255,255,.42); }
.tsf-balcony-form .tsf-form-heading p, .tsf-balcony-form .tsf-form-heading span, .tsf-balcony-form .tsf-form-grid label, .tsf-balcony-form .tsf-form-consent span, .tsf-balcony-form .tsf-form-footer p { color: #fff; }
.tsf-balcony-form input:not([type="checkbox"]), .tsf-balcony-form select, .tsf-balcony-form textarea { border-bottom-color: rgba(255,255,255,.62); color: #fff; }
.tsf-balcony-form select { color: #fff; }
.tsf-balcony-form select option { background: #9d1328; color: #fff; }
.tsf-balcony-form input::placeholder, .tsf-balcony-form textarea::placeholder { color: rgba(255,255,255,.72); opacity: 1; }
.tsf-balcony-form input:focus, .tsf-balcony-form select:focus, .tsf-balcony-form textarea:focus { background: rgba(255,255,255,.1); border-bottom-color: #fff; }
.tsf-balcony-form .tsf-form-consent { border-top-color: rgba(255,255,255,.38); }
.tsf-balcony-form .tsf-form-consent input { accent-color: #fff; }
.tsf-balcony-form .tsf-form-submit { background: #fffaf4; border-color: #fffaf4; color: var(--red); }
.tsf-balcony-form .tsf-form-submit:hover, .tsf-balcony-form .tsf-form-submit:focus-visible { background: var(--ink); border-color: var(--ink); color: #fff; }

/* Location details stay concise until the visitor chooses a tramo. */
.tsf-balcony-route { border-bottom: 1px solid rgba(18,18,18,.2); }
.tsf-balcony-route summary { align-items: center; cursor: pointer; display: grid; gap: 14px 23px; grid-template-columns: 31px minmax(0, 1fr) 34px; list-style: none; padding: 24px 0; }
.tsf-balcony-route summary::-webkit-details-marker { display: none; }
.tsf-balcony-route summary > span { color: var(--red); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; padding-top: 0; }
.tsf-balcony-route summary h3 { font-size: clamp(25px, 2.15vw, 34px); line-height: .95; margin: 0; }
.tsf-balcony-route summary i { align-items: center; border: 1px solid rgba(18,18,18,.38); border-radius: 50%; color: var(--red); display: inline-flex; font-family: var(--font-ui, sans-serif); font-size: 23px; font-style: normal; height: 32px; justify-content: center; line-height: 1; transition: background .25s ease, color .25s ease, transform .25s ease; width: 32px; }
.tsf-balcony-route > p { color: #625a53; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.68; margin: -3px 57px 25px 54px; max-width: 580px; }
.tsf-balcony-route[open] summary h3 { color: var(--red); }.tsf-balcony-route[open] summary i { background: var(--red); border-color: var(--red); color: #fff; transform: rotate(45deg); }
@media (max-width: 680px) { .tsf-balcony-route summary { gap: 11px 16px; grid-template-columns: 25px minmax(0, 1fr) 30px; } .tsf-balcony-route > p { margin-left: 41px; margin-right: 0; } .tsf-balcony-route summary i { height: 28px; width: 28px; } }

/* Feria del Toro: the guided experiences use the same compact, expandable
   reading pattern as the Encierro locations. They are services to enquire
   about, not confirmed departures or ticketed products. */
.tsf-feria-routes { margin-top: 45px; }
.tsf-feria-route__content { color: #625a53; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.68; margin: -3px 57px 25px 54px; max-width: 580px; }
.tsf-feria-route__content p { color: inherit; font: inherit; line-height: inherit; margin: 0 0 13px; max-width: none; }
.tsf-feria-route__content p:last-child { margin-bottom: 0; }
.tsf-feria-route__content strong { color: var(--ink); font-weight: 700; }
@media (max-width: 680px) { .tsf-feria-route__content { margin-left: 41px; margin-right: 0; } }

/* Fragment targets must land below the fixed header. This applies to the
   Encierro location link and the shared skip link used by legal pages. */
#main-content,
#localizaciones { scroll-margin-top: clamp(92px, 10vw, 150px); }

/* A lighter, breathing neckerchief frame around the balcony inclusion note. */
.tsf-balcony-inclusion { margin-top: 62px; padding: clamp(26px, 2.7vw, 36px); }
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after {
  /* `space` only paints complete motifs, so neither edge ends on a clipped scarf. */
  background-position: center;
  background-repeat: space no-repeat;
  background-size: 28px 21px;
  height: 13px;
  left: 10px;
  right: 10px;
}
.tsf-balcony-inclusion::before { top: -12px; }
.tsf-balcony-inclusion::after { bottom: -12px; }
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after {
  background-position: center;
  background-repeat: no-repeat space;
  background-size: 21px 28px;
  bottom: 10px;
  top: 10px;
  width: 13px;
}
.tsf-balcony-inclusion__frame::before { left: -12px; }
.tsf-balcony-inclusion__frame::after { right: -12px; }
.tsf-balcony-inclusion__corner { height: 25px; width: 25px; }
.tsf-balcony-inclusion__corner--tl { left: -13px; top: -13px; }
.tsf-balcony-inclusion__corner--tr { right: -13px; top: -13px; }
.tsf-balcony-inclusion__corner--br { bottom: -13px; right: -13px; }
.tsf-balcony-inclusion__corner--bl { bottom: -13px; left: -13px; }
.tsf-balcony-inclusion h2 { font-size: clamp(29px, 2.1vw, 35px); line-height: 1; margin: 0 0 13px; max-width: none; white-space: nowrap; }
@media (max-width: 680px) {
  .tsf-balcony-inclusion { margin-top: 52px; padding: 25px 24px; }
  .tsf-balcony-inclusion h2 { font-size: clamp(26px, 8vw, 32px); white-space: normal; }
}

/* Related reservation categories: a red editorial pause before the FAQs. */
.tsf-balcony-moments { background: var(--red); color: #fffaf4; overflow: hidden; padding: clamp(70px, 9vw, 128px) 0; position: relative; }
.tsf-balcony-moments::before { border: 1px solid rgba(255,250,244,.24); border-radius: 50%; content: ''; height: min(52vw, 780px); pointer-events: none; position: absolute; right: -19vw; top: -26vw; width: min(52vw, 780px); }
.tsf-balcony-moments .container-fluid { position: relative; }
.tsf-balcony-moments__heading { align-items: end; display: grid; gap: 15px 34px; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); margin: 0 auto clamp(36px, 5vw, 60px); max-width: 1180px; }
.tsf-balcony-moments .tsf-label { color: #ffd6dc; grid-column: 1 / -1; margin: 0; }
.tsf-balcony-moments h2 { color: #fffaf4; font-size: clamp(42px, 5vw, 76px); line-height: .86; margin: 0; }
.tsf-balcony-moments h2 em { color: #111; font-style: italic; }
.tsf-balcony-moments__heading > p:last-child { font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.65; margin: 0 0 3px; max-width: 360px; }
.tsf-balcony-moments__grid { display: grid; gap: clamp(15px, 2vw, 26px); grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 auto; max-width: 1180px; }
.tsf-balcony-moment { color: #fff; display: block; isolation: isolate; min-height: clamp(390px, 42vw, 560px); overflow: hidden; position: relative; text-decoration: none; }
.tsf-balcony-moment img { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform .6s cubic-bezier(.2,.7,.2,1); width: 100%; z-index: -2; }
.tsf-balcony-moment__veil { background: linear-gradient(180deg, rgba(15,6,6,.12) 10%, rgba(15,6,6,.79) 88%); inset: 0; position: absolute; z-index: -1; }
.tsf-balcony-moment__content { bottom: 0; display: flex; flex-direction: column; gap: 13px; left: 0; padding: clamp(22px, 2.5vw, 32px); position: absolute; right: 0; }
.tsf-balcony-moment small, .tsf-balcony-moment b { font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.tsf-balcony-moment strong { font-family: var(--font-display, 'Cormorant Garamond', serif); font-size: clamp(36px, 3.6vw, 55px); font-weight: 500; line-height: .88; }
.tsf-balcony-moment b { align-items: center; border-top: 1px solid rgba(255,255,255,.6); display: flex; justify-content: space-between; margin-top: 5px; padding-top: 13px; }
.tsf-balcony-moment b i { font-size: 21px; font-style: normal; font-weight: 400; line-height: .5; transition: transform .25s ease; }
.tsf-balcony-moment:hover img, .tsf-balcony-moment:focus-visible img { transform: scale(1.055); }
.tsf-balcony-moment:hover b i, .tsf-balcony-moment:focus-visible b i { transform: translateX(5px); }
.tsf-balcony-moment:focus-visible { outline: 3px solid #fffaf4; outline-offset: 4px; }
@media (max-width: 760px) { .tsf-balcony-moments__heading { display: block; } .tsf-balcony-moments__heading > p:last-child { margin-top: 22px; } .tsf-balcony-moments__grid { grid-template-columns: 1fr; } .tsf-balcony-moment { min-height: 410px; } }
@media (prefers-reduced-motion: reduce) { .tsf-balcony-moment img, .tsf-balcony-moment b i { transition: none; } }

/* Keep the related categories concise: the cards are a bridge, not a second hero. */
.tsf-balcony-moments { padding: clamp(54px, 6.5vw, 84px) 0; }
.tsf-balcony-moments__heading { margin-bottom: clamp(28px, 3.2vw, 42px); }
.tsf-balcony-moments h2 { font-size: clamp(37px, 4.2vw, 62px); }
.tsf-balcony-moment { min-height: clamp(320px, 32vw, 430px); }
.tsf-balcony-moment__content { gap: 10px; padding: clamp(19px, 2vw, 26px); }
.tsf-balcony-moment strong { font-size: clamp(33px, 3vw, 46px); }
.tsf-balcony-moment b { margin-top: 2px; padding-top: 10px; }
@media (max-width: 760px) { .tsf-balcony-moments { padding: 56px 0; } .tsf-balcony-moment { min-height: 330px; } }

/* Shared cross-service rail: three cards at a time, with a quiet bull-head pattern. */
.tsf-balcony-moments--carousel { isolation: isolate; }
.tsf-balcony-moments--carousel::before { background: repeat url("../images/journal-bull-head.svg") 0 0 / 218px 164px; border: 0; border-radius: 0; content: ""; height: auto; inset: 0; opacity: .2; right: 0; top: 0; width: auto; }
.tsf-balcony-moments--carousel .container-fluid { z-index: 1; }
.tsf-balcony-moments__rail { margin: 0 auto; max-width: 1180px; position: relative; }
.tsf-balcony-moments__viewport { margin: 0 auto; max-width: 1180px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-behavior: smooth; scroll-snap-type: x mandatory; }
.tsf-balcony-moments__viewport::-webkit-scrollbar { display: none; }
.tsf-balcony-moments__viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; -webkit-user-select: none; user-select: none; }
.tsf-balcony-moments__viewport.is-dragging * { cursor: grabbing; -webkit-user-select: none; user-select: none; }
@media (min-width: 761px) { .tsf-balcony-moments__viewport { cursor: grab; } }
.tsf-balcony-moments__arrow { align-items: center; background: transparent; border: 0; color: #111; cursor: pointer; display: flex; font-family: Arial, sans-serif; font-size: 32px; height: 48px; justify-content: center; line-height: 1; padding: 0; position: absolute; top: 50%; transform: translateY(-50%); transition: opacity .2s ease, transform .2s ease; width: 42px; z-index: 2; }
.tsf-balcony-moments__arrow:hover, .tsf-balcony-moments__arrow:focus-visible { transform: translateY(-50%) scale(1.12); }
.tsf-balcony-moments__arrow:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.tsf-balcony-moments__arrow:disabled { cursor: default; opacity: .25; pointer-events: none; }
.tsf-balcony-moments__arrow--previous { left: clamp(-58px, -4vw, -24px); }
.tsf-balcony-moments__arrow--next { right: clamp(-58px, -4vw, -24px); }
.tsf-balcony-moments--carousel .tsf-balcony-moments__grid { display: flex; gap: clamp(15px, 2vw, 26px); margin: 0; max-width: none; width: max-content; }
.tsf-balcony-moments--carousel .tsf-balcony-moment { flex: 0 0 calc((min(1180px, 100vw - 10vw) - clamp(30px, 4vw, 52px)) / 3); scroll-snap-align: start; }
.tsf-balcony-moments__dots { align-items: center; display: flex; gap: 9px; justify-content: center; margin: 28px auto 0; min-height: 12px; }
.tsf-balcony-moments__dots button { background: rgba(255,250,244,.48); border: 0; border-radius: 50%; cursor: pointer; height: 7px; padding: 0; transition: background-color .2s ease, transform .2s ease; width: 7px; }
.tsf-balcony-moments__dots button[aria-current="true"] { background: #fffaf4; transform: scale(1.35); }
.tsf-balcony-moments__dots button:focus-visible { outline: 2px solid #fffaf4; outline-offset: 4px; }
@media (max-width: 760px) { .tsf-balcony-moments--carousel .tsf-balcony-moment { flex-basis: min(78vw, 340px); } .tsf-balcony-moments__viewport { margin-right: -5vw; } .tsf-balcony-moments__arrow { display: none; } }
@media (prefers-reduced-motion: reduce) { .tsf-balcony-moments__viewport { scroll-behavior: auto; }.tsf-balcony-moments__dots button { transition: none; } }

/* The two ritual landings reuse the approved balcony hierarchy with their own imagery. */
.tsf-service-landing--chupinazo .tsf-balcony-hero { background-image: linear-gradient(90deg, rgba(20,8,7,.79), rgba(20,8,7,.34)), url('../images/hero-chupinazo.png'); }
.tsf-service-landing--pobre-de-mi .tsf-balcony-hero { background-image: linear-gradient(90deg, rgba(20,8,7,.8), rgba(20,8,7,.35)), url('../images/velas-pobre-de-mi-san-fermin-pamplona.jpg'); background-position: center; }
.tsf-service-landing--alojamiento .tsf-balcony-hero { background-image: linear-gradient(90deg, rgba(13,25,18,.84), rgba(13,25,18,.38)), url('../images/hero-navarra.png'); background-position: center; }
.tsf-service-landing--tours .tsf-balcony-hero { background-image: linear-gradient(90deg, rgba(15,10,8,.82), rgba(15,10,8,.34)), url('../images/hero-gigantes.png'); background-position: center; }

/* The consultation process shares the exact northern green of Tu Recorrido. */
.tsf-process { background: #6f9084; color: #fffaf2; }
.tsf-process:before { background: linear-gradient(90deg, transparent, rgba(255,250,242,.42) 12%, rgba(255,250,242,.42) 88%, transparent); }
.tsf-process .tsf-label { color: #ffd6dc; }
.tsf-process-heading h2 { color: #fffaf2; }
.tsf-process-heading h2 em { color: var(--red); }
.tsf-process-heading > p,
.tsf-process-step p { color: rgba(255,250,242,.86); }
.tsf-process-track:before,
.tsf-process-track:after { background: var(--red); }
.tsf-process-step span { background: #6f9084; border-color: var(--red); color: var(--red); }
.tsf-process-step h3 { color: #fffaf2; }
.tsf-process-cta { border-bottom-color: rgba(255,250,242,.72); color: #fffaf2; }
.tsf-process-cta span { color: var(--red); }
.tsf-process-cta:hover,
.tsf-process-cta:focus-visible { border-color: #fffaf2; color: #fffaf2; }

/* Reserva San Fermín is a menu group, not a destination page. */
.tsf-nav-dropdown--menu-only .tsf-nav-dropdown-trigger > .tsf-nav-dropdown-primary { align-items: center; display: inline-flex; gap: 7px; height: auto; margin: 0; padding: 0 0 12px; width: auto; }
.tsf-nav-dropdown--menu-only .tsf-nav-dropdown-label { font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; height: auto !important; position: static !important; transform: none !important; width: auto !important; }
.tsf-nav-dropdown--menu-only .tsf-nav-dropdown-label::before { content: none !important; }
.tsf-nav-dropdown--menu-only .tsf-nav-dropdown-icon { display: inline-block; flex: 0 0 7px; }
@media (max-width: 767px) {
  .tsf-header .tsf-nav-dropdown--menu-only > .tsf-nav-dropdown-trigger > .tsf-nav-dropdown-primary { color: var(--ink); font-family: var(--font-display); font-size: clamp(34px, 10.2vw, 49px); font-weight: 500; justify-content: space-between; letter-spacing: -2.3px; line-height: 1; padding: 18px 0 20px; width: 100%; }
  .tsf-header .tsf-nav-dropdown--menu-only .tsf-nav-dropdown-icon { color: var(--red); flex-basis: 48px; height: 62px; position: relative; }
}

/* Direct Instagram access in the utility bar and beside the footer brand. */
.tsf-topbar-instagram { align-items: center; display: inline-flex; height: 22px; justify-content: center; width: 22px; }
.tsf-topbar-instagram svg, .tsf-footer-instagram svg { fill: none; height: 16px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 16px; }
.tsf-topbar-instagram .tsf-instagram-dot, .tsf-footer-instagram .tsf-instagram-dot { fill: currentColor; stroke: none; }
.tsf-footer-brand-row { align-items: center; display: flex; gap: 15px; margin-bottom: 23px; }
.tsf-footer-brand-row .tsf-footer-brand { margin-bottom: 0; }
.tsf-footer-instagram { align-items: center; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; color: #fff; display: inline-flex !important; height: 38px; justify-content: center; margin: 0 !important; padding: 0; transition: background-color .2s ease, border-color .2s ease, color .2s ease; width: 38px; }
.tsf-footer-instagram svg { height: 22px; width: 22px; }
.tsf-footer-instagram:hover, .tsf-footer-instagram:focus-visible { background: var(--red); border-color: var(--red); color: #fff; text-decoration: none; }

/* Four lightweight, editorial views introduce the encierro before its copy. */
.tsf-balcony-story-gallery { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 27px 0 31px; }
.tsf-balcony-story-gallery figure { aspect-ratio: 1.38; margin: 0; overflow: hidden; }
.tsf-balcony-story-gallery img { display: block; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); width: 100%; }
.tsf-balcony-story-gallery figure:hover img { transform: scale(1.045); }
.tsf-balcony-story-gallery--single { grid-template-columns: minmax(0, 1fr); max-width: none; }
.tsf-balcony-story-gallery--single figure { aspect-ratio: auto; }
.tsf-balcony-story-gallery--single img { height: auto; object-fit: initial; }
.tsf-balcony-story-gallery--stack { gap: 18px; grid-template-columns: minmax(0, 1fr); }
.tsf-balcony-story-gallery--stack figure { aspect-ratio: auto; }
.tsf-balcony-story-gallery--stack img { height: auto; object-fit: initial; }
@media (max-width: 680px) { .tsf-balcony-story-gallery { gap: 6px; margin: 22px 0 26px; } }
@media (prefers-reduced-motion: reduce) { .tsf-balcony-story-gallery img { transition: none; } }

/* Blog: a compact red editorial interlude, while the article cards retain their dimensions. */
.tsf-journal { background: var(--red); padding: 84px 0 76px; }
.tsf-journal { isolation: isolate; overflow: hidden; position: relative; }
.tsf-journal::before {
  background-image: url("../images/journal-bull-head.svg");
  background-repeat: repeat;
  background-size: 242px 182px;
  content: "";
  inset: 0;
  opacity: .28;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.tsf-journal > .container-fluid { position: relative; z-index: 1; }
.tsf-journal .tsf-section-top { margin-bottom: 46px; }
.tsf-journal .tsf-label { color: rgba(255,255,255,.76); }
.tsf-journal .tsf-label::before { background: #151311; }
.tsf-journal .tsf-section-top h2 { color: #fff; }
.tsf-journal .tsf-section-top h2 em { color: #151311; }
.tsf-journal .tsf-section-top .tsf-text-link { border-color: rgba(255,255,255,.82); color: #fff; }
.tsf-journal .tsf-section-top .tsf-text-link span { color: #151311; }
.tsf-journal .tsf-journal-card-copy > p { font-size: 10px; }
.tsf-journal .tsf-journal-card-copy > p span { font-size: 9px; }
@media (max-width: 767px) {
  .tsf-journal { padding: 64px 0 58px; }
  .tsf-journal::before { background-size: 184px 138px; opacity: .23; }
  .tsf-journal .tsf-section-top { margin-bottom: 34px; }
}

/* Showcase reviews use discreet centred pagination rather than directional arrows. */
.tsf-testimonials-showcase__controls { align-items: center; display: flex; gap: 9px; justify-content: center; margin-top: 19px; }
.tsf-testimonials-showcase__controls button { background: rgba(18,18,18,.24); border: 0; border-radius: 50%; cursor: pointer; height: 7px; padding: 0; transition: background .25s ease, transform .25s ease, width .25s ease; width: 7px; }
.tsf-testimonials-showcase__controls button[aria-current="true"] { background: var(--red); border-radius: 8px; width: 23px; }
.tsf-testimonials-showcase__controls button:hover, .tsf-testimonials-showcase__controls button:focus-visible { background: var(--red); outline: 2px solid rgba(198,25,46,.35); outline-offset: 4px; transform: scale(1.12); }
.tsf-testimonials-showcase__viewport { cursor: grab; touch-action: pan-y; }
.tsf-testimonials-showcase__viewport.is-dragging { cursor: grabbing; scroll-behavior: auto; user-select: none; }
@media (prefers-reduced-motion: reduce) { .tsf-testimonials-showcase__controls button { transition: none; } }

/* The review showcase must never retain the desktop card width on narrow screens. */
.tsf-testimonials-showcase__card { box-sizing: border-box; }
.tsf-testimonials-showcase__viewport { max-width: 100%; scroll-snap-stop: always; }
@media (max-width: 860px) {
  .tsf-testimonials-showcase__content { grid-template-columns: minmax(0, 1fr); }
  .tsf-testimonials-showcase__copy, .tsf-testimonials-showcase__photo { min-width: 0; }
}
@media (max-width: 580px) {
  .tsf-testimonials-showcase__card blockquote { font-size: clamp(25px, 7vw, 29px); }
}

/* On mobile, the journal becomes a single calm editorial card at a time. */
.tsf-journal-pagination { display: none; }
@media (max-width: 767px) {
  .tsf-journal .tsf-journal-grid { -webkit-overflow-scrolling: touch; display: flex !important; flex-wrap: nowrap; gap: 0; margin: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .tsf-journal .tsf-journal-grid::-webkit-scrollbar { display: none; }
  .tsf-journal .tsf-journal-grid > article.col-md-4 { box-sizing: border-box; flex: 0 0 100%; margin: 0 !important; min-width: 0; padding: 0 !important; scroll-snap-align: start; scroll-snap-stop: always; width: 100% !important; }
  .tsf-journal .tsf-journal-grid { cursor: grab; touch-action: pan-x pan-y; }
  .tsf-journal .tsf-journal-grid.is-dragging { cursor: grabbing; scroll-behavior: auto; user-select: none; }
  .tsf-journal-pagination { align-items: center; display: flex; gap: 9px; justify-content: center; margin-top: 21px; }
  .tsf-journal-pagination button { background: rgba(255,255,255,.48); border: 0; border-radius: 50%; cursor: pointer; height: 7px; padding: 0; transition: background .25s ease, transform .25s ease, width .25s ease; width: 7px; }
  .tsf-journal-pagination button[aria-current="true"] { background: #151311; border-radius: 8px; width: 23px; }
  .tsf-journal-pagination button:hover, .tsf-journal-pagination button:focus-visible { background: #fff; outline: 2px solid rgba(255,255,255,.65); outline-offset: 4px; transform: scale(1.12); }
}
@media (prefers-reduced-motion: reduce) { .tsf-journal-pagination button { transition: none; } }

/* Mobile consultation pages lead with the enquiry, before the supporting story and imagery. */
@media (max-width: 960px) {
  .tsf-balcony-consultation__grid { grid-template-areas: "form" "story"; }
  .tsf-balcony-form-stage { grid-area: form; order: 1; }
  .tsf-balcony-story { grid-area: story; order: 2; }
}

/* Home only: a short, accessible three-step consultation without changing the landing forms. */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.tsf-home-multistep .tsf-form-progress { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 24px 0 22px; padding: 0; }
.tsf-home-multistep .tsf-form-progress li { align-items: center; color: #81786f; display: flex; flex-direction: column; font-family: var(--font-ui); font-size: 9px; font-weight: 700; letter-spacing: .08em; min-width: 0; padding-top: 42px; position: relative; text-align: center; text-transform: uppercase; }
.tsf-home-multistep .tsf-form-progress li:not(:last-child)::after { background: rgba(18,18,18,.22); content: ''; height: 1px; left: 50%; position: absolute; right: -50%; top: 16px; z-index: 0; }
.tsf-home-multistep .tsf-form-progress li.is-complete:not(:last-child)::after { background: var(--red); }
.tsf-home-multistep .tsf-form-progress span { align-items: center; background: #f9f3ea; border: 1px solid rgba(18,18,18,.3); border-radius: 50%; color: #665e56; display: inline-flex; height: 32px; justify-content: center; left: 50%; margin: 0; position: absolute; top: 0; transform: translateX(-50%); width: 32px; z-index: 1; }
.tsf-home-multistep .tsf-form-progress .is-current, .tsf-home-multistep .tsf-form-progress .is-complete { color: var(--ink); }
.tsf-home-multistep .tsf-form-progress .is-current span, .tsf-home-multistep .tsf-form-progress .is-complete span { background: var(--red); border-color: var(--red); color: #fff; }
.tsf-form-step-title { border-bottom: 1px solid rgba(18,18,18,.15); font-family: var(--font-ui); font-size: 12px; line-height: 1.45; margin: 0; padding-bottom: 17px; }
.tsf-form-step-title span { color: var(--red); font-size: 10px; font-weight: 700; letter-spacing: .09em; margin-right: 8px; text-transform: uppercase; }
.tsf-form-step-title strong { font-weight: 500; }
.tsf-home-form-step { border: 0; margin: 0; min-inline-size: 0; padding: 0; }
.tsf-home-multistep .tsf-form-grid { padding-bottom: 22px; }
.tsf-home-multistep .tsf-form-consent { margin-top: 4px; }
.tsf-form-multistep-footer { margin-top: 22px; }
.tsf-form-actions { align-items: center; display: flex; gap: 10px; }
.tsf-home-multistep .tsf-form-actions [hidden] { display: none !important; }
.tsf-form-actions .tsf-button { min-width: 132px; }
.tsf-form-back { background: transparent; border-color: rgba(18,18,18,.35); color: var(--ink); }
.tsf-form-back:hover, .tsf-form-back:focus { background: var(--ink); border-color: var(--ink); color: #fff; }
@media (max-width: 767px) {
  .tsf-home-multistep .tsf-form-progress li { font-size: 8px; letter-spacing: .04em; }
  .tsf-form-actions { align-items: stretch; flex-direction: column; }
  .tsf-form-actions .tsf-button { width: 100%; }
}

/* Form landings: a quiet independent masthead and a two-part editorial cover. */
body:has(.tsf-balcony-landing) .tsf-header {
  background: #f7f1e7;
  color: var(--ink);
  position: relative;
}
body:has(.tsf-balcony-landing) .tsf-header::before { display: none; }
body:has(.tsf-balcony-landing) .tsf-header .tsf-topbar { border-bottom-color: rgba(18,18,18,.18); }
body:has(.tsf-balcony-landing) .tsf-header .tsf-topbar > span,
body:has(.tsf-balcony-landing) .tsf-header a,
body:has(.tsf-balcony-landing) .tsf-header .tsf-menu-button { color: var(--ink); }
body:has(.tsf-balcony-landing) .tsf-header .tsf-nav { background: transparent; box-shadow: none; }
body:has(.tsf-balcony-landing) .tsf-header .tsf-brand::before { display: none; }

.tsf-balcony-hero {
  --tsf-landing-hero-image: url('../images/hero-encierro.png');
  background: #1b2420;
  border-top: 4px solid var(--red);
  min-height: clamp(455px, 35vw, 590px);
}
.tsf-balcony-hero::before {
  background: linear-gradient(90deg, rgba(18,26,23,.2), rgba(18,26,23,0) 24%), var(--tsf-landing-hero-image) center / cover;
  content: '';
  inset: 0 0 0 50%;
  position: absolute;
}
.tsf-balcony-hero::after { display: none; }
.tsf-balcony-hero__inner {
  justify-content: center;
  min-height: inherit;
  padding-bottom: clamp(58px, 6vw, 92px);
  padding-top: clamp(58px, 6vw, 92px);
  width: 50% !important;
}
.tsf-balcony-hero .tsf-label { background: transparent; border-left: 3px solid var(--red); color: #f1c6bc; padding: 2px 0 2px 11px; }
.tsf-balcony-hero h1 { max-width: 9.5ch; text-shadow: none; }
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) {
  background: #f7f1e7;
  border-top: 3px solid var(--red);
  bottom: clamp(38px, 4.4vw, 74px);
  box-shadow: 12px 14px 0 rgba(8,14,12,.14);
  color: var(--ink);
  left: calc(100% - 68px);
  margin: 0;
  max-width: none;
  padding: 25px 28px 27px;
  position: absolute;
  text-shadow: none;
  width: min(410px, 31vw);
}
.tsf-balcony-hero__inner > .tsf-button { display: none; }
.tsf-service-landing--chupinazo .tsf-balcony-hero { --tsf-landing-hero-image: url('../images/hero-chupinazo.png'); background-image: none; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-hero { --tsf-landing-hero-image: url('../images/velas-pobre-de-mi-san-fermin-pamplona.jpg'); background-image: none; }
.tsf-service-landing--alojamiento .tsf-balcony-hero { --tsf-landing-hero-image: url('../images/hero-navarra.png'); background-image: none; }
.tsf-service-landing--tours .tsf-balcony-hero { --tsf-landing-hero-image: url('../images/hero-gigantes.png'); background-image: none; }
/* Tours: keep the introductory heading in three calm, deliberate lines. */
.tsf-service-landing--tours #tours-consultation-title { font-size: clamp(34px, 3.25vw, 52px); line-height: .88; max-width: none; }
/* Keep the Feria headline as the intended two editorial lines at tablet widths. */
@media (min-width: 681px) and (max-width: 1100px) {
  .tsf-service-landing--feria .tsf-balcony-hero h1 { font-size: clamp(3rem, 5.4vw, 3.2rem); max-width: none; }
}
@media (max-width: 900px) {
  .tsf-balcony-hero { min-height: 0; padding-bottom: min(78vw, 480px); }
  .tsf-balcony-hero::before { inset: auto 0 0; height: min(78vw, 480px); }
  .tsf-balcony-hero__inner { min-height: 480px; padding-bottom: 58px; padding-top: 74px; width: 100% !important; }
  .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { bottom: 28px; left: auto; right: var(--tsf-content-gutter); width: min(430px, calc(100% - (var(--tsf-content-gutter) * 2))); }
}
@media (max-width: 767px) {
  body:has(.tsf-balcony-landing) .tsf-header .tsf-topbar { display: none; }
  body:has(.tsf-balcony-landing) .tsf-header .tsf-nav { background: #f7f1e7; }
  .tsf-balcony-hero__inner { min-height: 440px; padding-bottom: 50px; padding-top: 59px; }
  .tsf-balcony-hero h1 { font-size: clamp(3.05rem, 13.8vw, 4.5rem); }
  .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { bottom: 19px; left: 20px; padding: 20px 21px; right: 20px; width: auto; }
}

/* Calendar introduction: compact editorial preface before the interactive days. */
.tsf-calendar-lab { padding-bottom: clamp(78px, 7vw, 108px); padding-top: clamp(74px, 7vw, 104px); }
.tsf-calendar-lab-heading { align-items: flex-start; gap: clamp(40px, 7vw, 120px); margin-bottom: 18px; }
.tsf-calendar-lab h2 { font-size: clamp(43px, 4.3vw, 65px); line-height: .93; max-width: 920px; }
.tsf-calendar-lab-heading > p { max-width: 275px; }
.tsf-calendar-lab-heading .tsf-calendar-guidance { align-self: center; margin: 0; }
.tsf-calendar-concept { margin-top: 0; }
@media (max-width: 767px) {
  .tsf-calendar-lab { padding-bottom: 68px; padding-top: 56px; }
  .tsf-calendar-lab-heading { gap: 0; margin-bottom: 19px; }
  .tsf-calendar-lab h2 { font-size: clamp(40px, 11.2vw, 54px); line-height: .91; }
  .tsf-calendar-lab-heading .tsf-calendar-guidance { margin: 16px 0 0; max-width: none; }
}

/* FAQ on mobile: keep the editorial image, but let the questions arrive first. */
@media (max-width: 767px) {
  .tsf-faq { padding-bottom: 64px; padding-top: 62px; }
  .tsf-faq-intro { margin-bottom: 28px; }
  .tsf-faq h2 { font-size: clamp(2.75rem, 12vw, 3.5rem); letter-spacing: -.055em; line-height: .88; }
  .tsf-faq-intro > p:last-child { font-size: 13px; line-height: 1.58; margin-top: 17px; }
  .tsf-faq-photo { height: 138px; margin-top: 20px; max-width: none; width: 100%; }
  .tsf-faq-photo img { height: 138px; object-position: center 48%; width: 100%; }
  .tsf-faq-photo::after { inset: 8px; }
  .tsf-faq-photo figcaption { font-size: 7px; padding: 8px 10px; }
  .tsf-faq-item summary { grid-template-columns: 28px minmax(0, 1fr) 29px; min-height: 68px; padding: 12px 0; }
  .tsf-faq-item summary strong { font-size: 15px; line-height: 1.28; }
  .tsf-faq-item summary i { height: 28px; width: 28px; }
  .tsf-faq-item summary:hover,
  .tsf-faq-item[open] summary { padding-left: 7px; }
  .tsf-faq-answer > p { font-size: 13px; line-height: 1.65; padding-left: 28px; }
  .tsf-faq-item[open] .tsf-faq-answer > p { padding-bottom: 20px; }
}

/* Six-category selector: one concise editorial line before the visual grid. */
.tsf-interest-selector { padding-bottom: clamp(62px, 6vw, 88px); padding-top: clamp(72px, 6vw, 92px); }
.tsf-interest-heading { display: block; margin-bottom: 34px; }
.tsf-interest-heading h2 { font-size: clamp(2.9rem, 3.55vw, 3.7rem); line-height: .98; max-width: none; white-space: nowrap; }
@media (max-width: 1100px) {
  .tsf-interest-heading h2 { font-size: clamp(2.65rem, 4.35vw, 3.45rem); }
}
@media (max-width: 767px) {
  .tsf-interest-selector { padding-bottom: 52px; padding-top: 60px; }
  .tsf-interest-heading { margin-bottom: 24px; }
  .tsf-interest-heading h2 { font-size: clamp(2.45rem, 10.6vw, 3.2rem); line-height: .91; white-space: normal; }
}

/* Category titles stay readable over photography without boxed highlights. */
.tsf-interest-copy strong,
.tsf-interest-card:hover .tsf-interest-copy strong,
.tsf-interest-card:focus-visible .tsf-interest-copy strong,
.tsf-interest-card.is-active .tsf-interest-copy strong {
  background: transparent;
  color: #fff;
  padding: 0;
  text-shadow: 0 2px 10px rgba(0,0,0,.88), 0 1px 2px rgba(0,0,0,.95);
}
.tsf-interest-copy strong em { color: #fff; text-shadow: inherit; }

/* On phones the territorial index is a compact two-column guide, not a long list. */
@media (max-width: 767px) {
  .tsf-territory-copy .tsf-place-list {
    display: grid;
    gap: 9px 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 24px;
  }
  .tsf-territory-copy .tsf-place-list span {
    box-sizing: border-box;
    font-size: 15px;
    min-width: 0;
    padding-bottom: 7px;
    width: auto;
  }
  .tsf-territory-copy .tsf-place-list span small {
    font-size: 7px;
    letter-spacing: .055em;
    line-height: 1.25;
  }
}

/* With the supporting image removed, the home consultation chapter keeps a tighter rhythm. */
.tsf-contact { padding-bottom: clamp(72px, 6vw, 88px); padding-top: clamp(72px, 6vw, 88px); }
.tsf-contact-intro { padding-top: 0; }
.tsf-contact-note { margin-top: 30px; }
@media (max-width: 767px) {
  .tsf-contact { padding-bottom: 56px; padding-top: 56px; }
  .tsf-contact-note { margin-top: 25px; }
}

/* The reservation selector starts directly with its compact, black editorial label. */
.tsf-interest-selector { padding-top: clamp(48px, 4vw, 64px); }
.tsf-interest-heading { margin-bottom: 18px; }
.tsf-interest-heading .tsf-label { color: var(--ink, #161514); }
@media (max-width: 767px) {
  .tsf-interest-selector { padding-top: 44px; }
  .tsf-interest-heading { margin-bottom: 15px; }
}

/* Design-stage comparison: the existing reservation selector remains intact above it. */
.home .tsf-interest-selector--comparison { padding-bottom: clamp(72px, 6vw, 92px); padding-top: clamp(66px, 6vw, 88px); }
.tsf-interest-comparison__heading { align-items: end; display: grid; gap: clamp(28px, 5vw, 76px); grid-template-columns: minmax(0, 1.05fr) minmax(270px, .95fr); margin-bottom: clamp(34px, 4vw, 54px); }
.tsf-interest-comparison__heading .tsf-label { color: var(--ink, #161514); margin-bottom: 13px; }
.tsf-interest-comparison__heading h2 { font-size: clamp(42px, 4.2vw, 62px); letter-spacing: -2.9px; line-height: .93; margin: 0 0 14px; }
.tsf-interest-comparison__heading h2 em { color: var(--red); }
.tsf-interest-comparison__heading > div > p:last-child { font-size: 16px; line-height: 1.55; margin: 0; max-width: 520px; }
.tsf-interest-comparison__route { align-items: center; display: flex; gap: 20px; justify-content: flex-end; padding-bottom: 5px; }
.tsf-interest-comparison__route > span { background: rgba(22,21,20,.3); flex: 1 1 auto; height: 1px; min-width: 30px; }
.tsf-interest-comparison__route a { align-items: center; border-bottom: 1px solid var(--red); color: var(--ink, #161514); display: inline-flex; flex: 0 0 auto; font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; gap: 18px; letter-spacing: .08em; line-height: 1.35; padding: 0 0 10px; text-transform: uppercase; transition: border-color .2s ease, color .2s ease; }
.tsf-interest-comparison__route a b { color: var(--red); font-size: 20px; font-weight: 400; line-height: .6; }
.tsf-interest-comparison__route a:hover, .tsf-interest-comparison__route a:focus-visible { border-color: var(--ink, #161514); color: var(--red); text-decoration: none; }
@media (max-width: 767px) {
  .home .tsf-interest-selector--comparison { padding-bottom: 58px; padding-top: 60px; }
  .tsf-interest-comparison__heading { display: block; margin-bottom: 30px; }
  .tsf-interest-comparison__heading h2 { font-size: clamp(39px, 11vw, 54px); }
  .tsf-interest-comparison__heading > div > p:last-child { font-size: 15px; }
  .tsf-interest-comparison__route { gap: 14px; justify-content: flex-start; margin-top: 28px; }
  .tsf-interest-comparison__route a { font-size: 10px; gap: 12px; }
}

/* Home-only return control: discreet until there is a meaningful distance to travel. */
.tsf-back-to-top {
  align-items: center;
  background: var(--red, #c6192e);
  border: 1px solid var(--red, #c6192e);
  border-radius: 50%;
  bottom: 24px;
  box-shadow: 0 8px 22px rgba(32, 17, 13, .22);
  color: #fff;
  cursor: pointer;
  display: flex;
  height: 48px;
  justify-content: center;
  opacity: 0;
  padding: 0;
  pointer-events: none;
  position: fixed;
  right: 24px;
  transform: translateY(10px);
  transition: background .2s ease, opacity .2s ease, transform .2s ease;
  width: 48px;
  z-index: 30;
}
.tsf-back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.tsf-back-to-top svg { fill: none; height: 23px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 23px; }
.tsf-back-to-top:hover,
.tsf-back-to-top:focus-visible { background: var(--ink, #161514); border-color: var(--ink, #161514); outline: 0; }
.tsf-back-to-top:focus-visible { box-shadow: 0 0 0 4px rgba(198,25,46,.22), 0 8px 22px rgba(32,17,13,.22); }
@media (max-width: 767px) {
  .tsf-back-to-top { bottom: 17px; height: 44px; right: 17px; width: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsf-back-to-top { transition: none; }
}

/* A clear white navigation bar keeps the route through TuSanfermin in view. */
.tsf-header,
body:has(.tsf-balcony-landing) .tsf-header {
  background: #fffdf9;
  border-top: 4px solid var(--red, #c6192e);
  box-sizing: border-box;
  color: var(--ink, #161514);
  left: 0;
  padding: 0 5.6vw;
  position: fixed;
  top: 0;
  transform: translateY(0);
  transition: box-shadow .24s ease, transform .3s cubic-bezier(.22,.61,.2,1);
  width: 100%;
  z-index: 100;
}
.tsf-header.is-nav-hidden { box-shadow: none; transform: translateY(-105%); }
.tsf-header .tsf-topbar {
  display: none;
}
.tsf-header .tsf-topbar a { color: var(--ink, #161514); }
.tsf-header .tsf-topbar a:hover,
.tsf-header .tsf-topbar a:focus-visible { color: var(--red, #c6192e); }
.tsf-header .tsf-mainbar { min-height: 80px; }
.tsf-header .tsf-brand { height: 58px; }
.tsf-header .tsf-brand img { height: 56px; width: 73px; }
.tsf-header .tsf-nav { color: var(--ink, #161514); }
.tsf-header .tsf-nav > a:not(.tsf-nav-cta),
.tsf-header .tsf-nav-dropdown-trigger > a,
.tsf-header .tsf-nav-dropdown-primary { color: var(--ink, #161514); }
.tsf-header .tsf-nav > a:not(.tsf-nav-cta):hover,
.tsf-header .tsf-nav > a:not(.tsf-nav-cta):focus-visible,
.tsf-header .tsf-nav-dropdown:hover .tsf-nav-dropdown-trigger > a,
.tsf-header .tsf-nav-dropdown:focus-within .tsf-nav-dropdown-trigger > a,
.tsf-header .tsf-nav-dropdown-primary:hover,
.tsf-header .tsf-nav-dropdown-primary:focus-visible { color: var(--red, #c6192e); }
.tsf-header .tsf-nav-dropdown-trigger button { color: var(--red, #c6192e); }
.tsf-header .tsf-nav .tsf-nav-cta {
  background: var(--red, #c6192e);
  border-color: var(--red, #c6192e);
  color: #fff;
}
.tsf-header .tsf-nav .tsf-nav-cta:hover,
.tsf-header .tsf-nav .tsf-nav-cta:focus-visible { background: var(--ink, #161514); border-color: var(--ink, #161514); color: #fff; }
.tsf-header .tsf-nav-indicator { background: var(--red, #c6192e); }
/* The header is one uninterrupted white band: no translucent navigation panel,
   image overlay or elevated shadow behind the category links. */
.tsf-header,
body:has(.tsf-balcony-landing) .tsf-header,
.tsf-header .tsf-mainbar,
.tsf-header .tsf-nav {
  background: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
}
.tsf-header::before,
.tsf-header .tsf-brand::before { display: none !important; }
.tsf-header:not(.is-nav-hidden) { box-shadow: none !important; }
.admin-bar .tsf-header:not(.tsf-blog-header) { top: 32px; }
/* The Blog header flows with the document, so an admin-bar offset creates an empty strip. */
.admin-bar .tsf-blog-header { top: 0; }
@media (max-width: 767px) {
  .tsf-header,
  body:has(.tsf-balcony-landing) .tsf-header { padding: 0 22px; }
  .tsf-header .tsf-topbar { display: none; }
  .tsf-header .tsf-mainbar { min-height: 80px; }
  .tsf-header .tsf-menu-button span { background: var(--ink, #161514); }
  .tsf-header .tsf-nav { background: #fffdf9; color: var(--ink, #161514); }
  .tsf-header .tsf-nav > .tsf-nav-dropdown > .tsf-nav-dropdown-trigger > a,
  .tsf-header .tsf-nav > .tsf-nav-home,
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta) { color: var(--ink, #161514); }
}
@media (max-width: 782px) { .admin-bar .tsf-header:not(.tsf-blog-header) { top: 46px; } .admin-bar .tsf-blog-header { top: 0; } }
@media (prefers-reduced-motion: reduce) { .tsf-header { transition: none; } }

/* Mobile navigation: an independent, touch-friendly panel beneath the clear header. */
@media (max-width: 767px) {
  body.tsf-menu-open { overflow: hidden; }
  .tsf-header .tsf-mainbar { position: relative; }
  .tsf-header .tsf-menu-button { align-items: center; background: transparent; border: 0; cursor: pointer; display: inline-flex; height: 48px; justify-content: center; padding: 0; position: relative; width: 48px; z-index: 3; }
  .tsf-header .tsf-menu-button span { background: var(--ink, #161514); height: 2px; left: 12px; position: absolute; transform-origin: center; transition: transform .24s ease, top .24s ease; width: 24px; }
  .tsf-header .tsf-menu-button span:first-child { top: 18px; }
  .tsf-header .tsf-menu-button span:last-child { top: 28px; }
  .tsf-header .tsf-menu-button[aria-expanded="true"] span:first-child { top: 23px; transform: rotate(45deg); }
  .tsf-header .tsf-menu-button[aria-expanded="true"] span:last-child { top: 23px; transform: rotate(-45deg); }
  .tsf-header .tsf-menu-button:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
  .tsf-header .tsf-nav {
    background: #fffdf9;
    border-top: 1px solid rgba(18,18,18,.14);
    box-shadow: 0 18px 30px rgba(25,18,14,.12);
    display: block !important;
    left: -22px;
    max-height: calc(100dvh - 84px);
    opacity: 0;
    overflow-y: auto;
    padding: 12px 22px 32px;
    pointer-events: none;
    position: absolute;
    right: -22px;
    top: 100%;
    transform: translateY(-8px);
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
    visibility: hidden;
  }
  .tsf-header .tsf-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
  .tsf-header .tsf-nav > .tsf-nav-home,
  .tsf-header .tsf-nav > .tsf-nav-dropdown > .tsf-nav-dropdown-trigger > a,
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta) { color: var(--ink, #161514); font-family: var(--font-display, Georgia, serif); font-size: clamp(25px, 7.3vw, 32px); letter-spacing: -1.4px; line-height: 1; padding: 17px 0; }
  .tsf-header .tsf-nav > .tsf-nav-home { align-items: center; display: flex; justify-content: space-between; }
  .tsf-header .tsf-nav > .tsf-nav-dropdown { border-top: 1px solid rgba(18,18,18,.14); }
  .tsf-header .tsf-nav > .tsf-nav-dropdown > .tsf-nav-dropdown-trigger { align-items: center; display: flex; justify-content: space-between; }
  .tsf-header .tsf-nav-dropdown-trigger button { align-items: center; color: var(--red); display: inline-flex; height: 56px; justify-content: center; margin: 0; width: 48px; }
  .tsf-header .tsf-nav-dropdown-trigger button span { height: 10px; width: 10px; }
  .tsf-header .tsf-nav-submenu { padding-left: 13px; }
  .tsf-header .tsf-nav-dropdown.is-open .tsf-nav-submenu { max-height: 460px; padding: 0 0 16px 13px; }
  .tsf-header .tsf-nav-submenu a { color: #625a52; font-size: 14px; padding: 11px 2px; }
  .tsf-header .tsf-nav .tsf-nav-cta { display: inline-flex; margin: 19px 0 4px; padding: 15px 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsf-header .tsf-menu-button span,
  .tsf-header .tsf-nav { transition: none; }
}

/* Home selector: use the editorial breathing room for larger, more legible cards. */
.home .tsf-interest-heading { align-items: center; display: flex; justify-content: center; }
.home .tsf-interest-hub-link { align-items: center; background: var(--red, #c6192e); color: #fff; display: inline-flex; font-family: var(--font-ui, Arial, sans-serif); font-size: 11px; font-weight: 700; gap: 20px; letter-spacing: .12em; line-height: 1; padding: 15px 22px; text-decoration: none; text-transform: uppercase; transition: background .2s ease, color .2s ease, transform .2s ease; }
.home .tsf-interest-hub-link span { font-size: 18px; font-weight: 400; line-height: .6; }
.home .tsf-interest-hub-link:hover, .home .tsf-interest-hub-link:focus-visible { background: var(--ink, #171513); color: #fff; outline: 0; text-decoration: none; transform: translateY(-2px); }
@media (min-width: 768px) {
  .home .tsf-interest-selector { padding: 76px 0 88px; }
  /* Keep the six-card grid centred: container-fluid is already full width,
     so adding exterior margins made its right edge escape the viewport. */
  .home .tsf-interest-selector .container-fluid { margin-left: 0; margin-right: 0; }
  .home .tsf-interest-heading { margin-bottom: 30px; }
  .home .tsf-interest-grid { gap: 14px; }
  .home .tsf-interest-card { height: clamp(292px, 18vw, 336px); }
}

/* Context before the FAQ: useful editorial copy without extending the page visually. */
.tsf-understand-moment { background: #f5efe6; color: #201d1b; padding: clamp(58px, 7vw, 112px) 0; }
.tsf-understand-moment__rule { border-top: 1px solid rgba(190, 25, 46, .52); margin-bottom: clamp(35px, 4vw, 64px); position: relative; }
.tsf-understand-moment__rule::before { background: var(--red, #c6192e); content: ''; height: 9px; left: 0; position: absolute; top: -5px; width: 9px; }
.tsf-understand-moment__intro h2 { color: #1b1917; font-family: var(--font-display, Georgia, serif); font-size: clamp(42px, 4vw, 66px); font-weight: 500; letter-spacing: -.045em; line-height: .91; margin: 20px 0 23px; max-width: 400px; }
.tsf-understand-moment__intro h2 em { color: var(--red, #c6192e); font-weight: 500; }
.tsf-understand-moment__intro > p:last-child { color: #675e57; font-size: 16px; line-height: 1.65; margin: 0; max-width: 355px; }
.tsf-understand-moment__intro-media {
  height: clamp(74px, 7.2vw, 104px);
  margin: 24px 0 0;
  max-width: 355px;
  overflow: hidden;
}
.tsf-understand-moment__intro-media img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.tsf-understand-moment__list { display: grid; gap: 10px; }
.tsf-understand-moment__item { background: rgba(255,255,255,.62); border: 1px solid #d3c9bd; }
.tsf-understand-moment__item summary { align-items: center; cursor: pointer; display: grid; gap: 8px 18px; grid-template-columns: 42px minmax(0, 1fr) 38px; list-style: none; min-height: 88px; padding: 18px 22px; }
.tsf-understand-moment__item summary::-webkit-details-marker { display: none; }
.tsf-understand-moment__item summary > span { color: var(--red, #c6192e); font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.tsf-understand-moment__item summary strong { font-family: var(--font-display, Georgia, serif); font-size: clamp(22px, 1.7vw, 29px); font-weight: 500; line-height: 1.05; }
.tsf-understand-moment__item summary small { color: #756a61; font-family: var(--font-ui, sans-serif); font-size: 12px; grid-column: 2; line-height: 1.35; }
.tsf-understand-moment__item[open] summary small { display: none; }
.tsf-understand-moment__item summary i { align-items: center; border: 1px solid #aa9f94; border-radius: 50%; color: var(--red, #c6192e); display: inline-flex; font-family: Arial, sans-serif; font-size: 23px; font-style: normal; grid-column: 3; grid-row: 1 / span 2; height: 36px; justify-content: center; transition: .25s ease; width: 36px; }
.tsf-understand-moment__item[open] summary i { background: var(--red, #c6192e); border-color: var(--red, #c6192e); color: #fff; transform: rotate(45deg); }
.tsf-understand-moment__answer { border-top: 1px solid #d9d0c5; color: #5c544e; margin: 0 22px; padding: 19px 60px 24px; }
.tsf-understand-moment__answer p { font-size: 15px; line-height: 1.62; margin: 0 0 12px; max-width: 680px; }
.tsf-understand-moment__answer p:last-child { margin-bottom: 0; }
.tsf-understand-moment__answer a { color: var(--red, #c6192e); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  .tsf-understand-moment { padding: 54px 0 62px; }
  .tsf-understand-moment__rule { margin-bottom: 33px; }
  .tsf-understand-moment__intro { margin-bottom: 32px; }
  .tsf-understand-moment__intro h2 { margin: 17px 0; }
  .tsf-understand-moment__intro-media { height: 96px; margin-top: 20px; max-width: none; }
  .tsf-understand-moment__item summary { grid-template-columns: 31px minmax(0, 1fr) 32px; min-height: 76px; padding: 16px 14px; }
  .tsf-understand-moment__item summary strong { font-size: 21px; }
  .tsf-understand-moment__item summary small { font-size: 11px; }
  .tsf-understand-moment__item summary i { height: 30px; width: 30px; }
  .tsf-understand-moment__answer { margin: 0 14px; padding: 17px 0 21px 31px; }
}

/* Real testimonials: the single approved review keeps the two original layouts balanced. */
.tsf-testimonials-showcase__card footer { color: #6b625b; font-family: var(--font-ui, sans-serif); font-size: 10px; letter-spacing: .04em; margin-top: 25px; }
.tsf-testimonials-grid .tsf-testimonial-card:only-child { flex-basis: min(760px, 100%); }

/* Keep the encierro editorial heading as a deliberate two-line composition. */
.tsf-balcony-landing #balcony-story-title { max-width: 720px; }
.tsf-balcony-landing #balcony-story-title em { display: inline-block; white-space: nowrap; }
@media (min-width: 768px) {
  .tsf-balcony-landing #balcony-story-title { font-size: clamp(52px, 4.35vw, 74px); width: 118%; }
}
@media (max-width: 767px) {
  .tsf-balcony-landing #balcony-story-title { font-size: clamp(38px, 8.4vw, 44px); letter-spacing: -.045em; max-width: 620px; width: 145%; }
}

/* Chupinazo: three measured lines, while the form column retains its full width. */
.tsf-service-landing--chupinazo #service-story-title { max-width: 720px; }
.tsf-service-landing--chupinazo #service-story-title em { display: inline-block; white-space: nowrap; }
@media (min-width: 768px) {
  .tsf-service-landing--chupinazo #service-story-title { font-size: clamp(52px, 4.35vw, 74px); width: 118%; }
}
@media (max-width: 767px) {
  .tsf-service-landing--chupinazo #service-story-title { font-size: clamp(39px, 10.2vw, 51px); letter-spacing: -.045em; }
}

/* Pobre de mí: keep the farewell title in three calm, intentional lines. */
.tsf-service-landing--pobre-de-mi #service-story-title { max-width: 720px; }
.tsf-service-landing--pobre-de-mi #service-story-title em { display: inline-block; white-space: nowrap; }
@media (min-width: 768px) {
  .tsf-service-landing--pobre-de-mi #service-story-title { font-size: clamp(52px, 4.35vw, 74px); width: 118%; }
}
@media (max-width: 767px) {
  .tsf-service-landing--pobre-de-mi #service-story-title { font-size: clamp(39px, 10.2vw, 51px); letter-spacing: -.045em; }
}

/* Tours: the routes heading is intentionally set in two balanced lines. */
.tsf-service-landing--tours #tours-options-title { max-width: 720px; }
.tsf-service-landing--tours #tours-options-title em { display: inline-block; white-space: nowrap; }
@media (min-width: 768px) {
  .tsf-service-landing--tours #tours-options-title { font-size: clamp(48px, 4vw, 68px); width: 118%; }
}
@media (max-width: 767px) {
  .tsf-service-landing--tours #tours-options-title { font-size: clamp(38px, 8.4vw, 44px); letter-spacing: -.045em; max-width: 620px; width: 145%; }
}

/* Editorial map: supporting search content should read as a guide, never as a second FAQ. */
.tsf-understand-moment { overflow: hidden; position: relative; }
.tsf-understand-moment > .container-fluid { position: relative; z-index: 1; }
.tsf-understand-moment__rule { border-color: rgba(198, 25, 46, .68); }
.tsf-understand-moment__grid { align-items: center; }
.tsf-understand-moment__list { gap: 0; }
.tsf-understand-moment__item { background: transparent; border: 0; border-bottom: 1px solid rgba(72, 62, 53, .28); }
.tsf-understand-moment__item:first-child { border-top: 1px solid rgba(72, 62, 53, .28); }
.tsf-understand-moment__item summary { align-items: center; display: grid; gap: 5px 25px; grid-template-columns: minmax(0, 1fr) 38px; min-height: 103px; padding: 20px 0; }
.tsf-understand-moment__item summary strong { color: #24201d; font-size: clamp(26px, 2.05vw, 36px); grid-column: 1; line-height: 1; }
.tsf-understand-moment__item summary small { color: #756a61; font-size: 12px; grid-column: 1; letter-spacing: .025em; line-height: 1.42; }
.tsf-understand-moment__item[open] summary small { display: block; }
.tsf-understand-moment__item summary i { background: transparent; border: 0; border-radius: 0; color: var(--red, #c6192e); font-family: var(--font-display, Georgia, serif); font-size: 32px; font-style: normal; font-weight: 400; grid-column: 2; grid-row: 1 / span 2; height: auto; justify-content: flex-end; transform: none; width: 38px; }
.tsf-understand-moment__item[open] summary i { background: transparent; border: 0; color: var(--red, #c6192e); transform: translateX(7px); }
.tsf-understand-moment__answer { border: 0; color: #5c544e; margin: -2px 0 0; padding: 0 60px 28px 0; }
.tsf-understand-moment__answer p { font-size: 15px; line-height: 1.7; max-width: 660px; }
@media (max-width: 767px) {
  .tsf-understand-moment::before { font-size: 31vw; left: 42%; top: 52%; }
  .tsf-understand-moment__item summary { grid-template-columns: minmax(0, 1fr) 30px; min-height: 88px; padding: 17px 0; }
  .tsf-understand-moment__item summary strong { font-size: 25px; }
  .tsf-understand-moment__item summary i { font-size: 28px; width: 30px; }
  .tsf-understand-moment__answer { padding: 2px 8px 24px 0; }
}

/* Comparison concept 02: dark narrative cards for the Encierro editorial block. */
.tsf-seo-variant { padding: clamp(72px, 9vw, 132px) 0; }
.tsf-seo-variant__heading { max-width: 670px; }
.tsf-seo-variant__heading h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(46px, 5vw, 76px); font-weight: 500; letter-spacing: -.055em; line-height: .91; margin: 18px 0 20px; }
.tsf-seo-variant__heading h2 em { color: var(--red, #c6192e); font-weight: 500; }
.tsf-seo-variant__heading > p:last-child { font-family: var(--font-ui, sans-serif); font-size: 15px; line-height: 1.65; margin: 0; max-width: 500px; }
.tsf-seo-variant--cards { background: #202923; color: #fff; overflow: hidden; position: relative; }
.tsf-seo-variant--cards::before { background: repeating-linear-gradient(135deg, transparent 0 28px, rgba(255,255,255,.035) 29px 30px); content: ''; inset: 0; pointer-events: none; position: absolute; }
.tsf-seo-variant--cards .container-fluid { position: relative; }
.tsf-seo-variant--cards .tsf-label { color: #f2b8b5; }
.tsf-seo-variant--cards .tsf-seo-variant__heading h2 { color: #fff; }
.tsf-seo-variant--cards .tsf-seo-variant__heading > p:last-child { color: rgba(255,255,255,.72); }
.tsf-narrative-cards { display: grid; gap: 17px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(44px, 6vw, 84px); padding-bottom: 27px; }
.tsf-narrative-card { background: #c6192e; box-shadow: 13px 16px 0 rgba(0,0,0,.22); min-height: 312px; overflow: hidden; position: relative; }
.tsf-narrative-card:nth-child(2) { background: #eee5d9; color: #1f1c19; margin-top: 35px; }
.tsf-narrative-card:nth-child(3) { background: #9e1428; margin-top: 13px; }
.tsf-narrative-card::before { border: 1px solid rgba(255,255,255,.33); content: ''; inset: 16px; pointer-events: none; position: absolute; }
.tsf-narrative-card:nth-child(2)::before { border-color: rgba(31,28,25,.2); }
.tsf-narrative-card summary { cursor: pointer; display: grid; gap: 13px; grid-template-columns: minmax(0, 1fr) 28px; list-style: none; min-height: 312px; padding: 35px 34px; position: relative; z-index: 1; }
.tsf-narrative-card summary::-webkit-details-marker { display: none; }
.tsf-narrative-card summary span { align-self: end; font-family: var(--font-display, Georgia, serif); font-size: clamp(34px, 3.1vw, 52px); letter-spacing: -.055em; line-height: .92; }
.tsf-narrative-card summary small { align-self: start; color: rgba(255,255,255,.8); font-family: var(--font-ui, sans-serif); font-size: 11px; grid-column: 1; line-height: 1.5; }
.tsf-narrative-card:nth-child(2) summary small { color: #695e55; }
.tsf-narrative-card summary i { align-self: start; font-size: 24px; font-style: normal; grid-column: 2; grid-row: 1 / span 2; text-align: right; transition: transform .25s ease; }
.tsf-narrative-card[open] summary i { transform: rotate(45deg); }
.tsf-narrative-card > div { border-top: 1px solid rgba(255,255,255,.35); font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.65; margin: 0 34px; padding: 22px 0 35px; position: relative; z-index: 1; }
.tsf-narrative-card:nth-child(2) > div { border-color: rgba(31,28,25,.22); }
.tsf-narrative-card > div p { margin: 0 0 13px; }.tsf-narrative-card > div p:last-child { margin-bottom: 0; }
.tsf-narrative-card a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Comparison concept 03: a three-part timeline with a single continuous red thread. */
.tsf-seo-variant--timeline { background: #f5efe6; }
.tsf-experience-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(48px, 6vw, 82px); position: relative; }
.tsf-experience-timeline::before { background: var(--red, #c6192e); content: ''; height: 2px; left: 4%; position: absolute; right: 4%; top: 13px; }
.tsf-experience-timeline__chapter { min-width: 0; padding: 0 28px 0 0; position: relative; }
.tsf-experience-timeline__chapter::before { background: var(--red, #c6192e); border: 6px solid #f5efe6; border-radius: 50%; content: ''; height: 17px; left: -6px; position: absolute; top: 0; width: 17px; z-index: 1; }
.tsf-experience-timeline__chapter summary { cursor: pointer; list-style: none; padding-top: 43px; }
.tsf-experience-timeline__chapter summary::-webkit-details-marker { display: none; }
.tsf-experience-timeline__chapter summary span { color: var(--red, #c6192e); display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .15em; margin-bottom: 16px; text-transform: uppercase; }
.tsf-experience-timeline__chapter summary strong { display: block; font-family: var(--font-display, Georgia, serif); font-size: clamp(29px, 2.5vw, 43px); font-weight: 500; letter-spacing: -.05em; line-height: .95; max-width: 265px; }
.tsf-experience-timeline__chapter summary small { color: #71675f; display: block; font-family: var(--font-ui, sans-serif); font-size: 12px; line-height: 1.5; margin-top: 17px; max-width: 235px; }
.tsf-experience-timeline__chapter summary i { color: var(--red, #c6192e); display: block; font-size: 24px; font-style: normal; line-height: 1; margin-top: 20px; transition: transform .25s ease; }
.tsf-experience-timeline__chapter[open] summary i { transform: translateX(8px); }
.tsf-experience-timeline__chapter > div { color: #5c544e; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.67; max-width: 290px; padding-top: 20px; }
.tsf-experience-timeline__chapter > div p { margin: 0; }
@media (max-width: 767px) {
  .tsf-seo-variant { padding: 65px 0; }.tsf-seo-variant__heading h2 { font-size: 45px; }
  .tsf-narrative-cards { grid-template-columns: 1fr; margin-top: 40px; }.tsf-narrative-card, .tsf-narrative-card:nth-child(2), .tsf-narrative-card:nth-child(3) { margin-top: 0; min-height: 260px; }.tsf-narrative-card summary { min-height: 260px; padding: 31px 29px; }.tsf-narrative-card > div { margin: 0 29px; }
  .tsf-experience-timeline { display: block; margin-left: 15px; }.tsf-experience-timeline::before { bottom: 12px; height: auto; left: 2px; right: auto; top: 13px; width: 2px; }.tsf-experience-timeline__chapter { padding: 0 0 39px 33px; }.tsf-experience-timeline__chapter::before { left: -7px; }.tsf-experience-timeline__chapter summary { padding-top: 0; }.tsf-experience-timeline__chapter summary small { max-width: 100%; }.tsf-experience-timeline__chapter > div { max-width: 100%; }
}

/* On phones the category grid should feel like imagery, not six miniature links. */
@media (max-width: 767px) {
  .home .tsf-interest-selector .container-fluid.m-5-hor { padding-left: 14px !important; padding-right: 14px !important; }
  .home .tsf-interest-grid { gap: 6px; }
  .home .tsf-interest-card { height: clamp(154px, 43vw, 184px); }
  .home .tsf-interest-copy { padding: 14px; }
  .home .tsf-interest-copy strong { font-size: clamp(19px, 6vw, 25px); }
}

/* Mobile navigation is a proper, full-height sheet below the fixed white bar.
   It must not inherit any of the earlier hero/menu treatments used by the home. */
@media (max-width: 767px) {
  .tsf-header .tsf-nav {
    align-items: stretch;
    background: #fff !important;
    border-top: 3px solid var(--red, #c6192e);
    bottom: 0;
    display: flex !important;
    flex-direction: column;
    gap: 0;
    height: calc(100dvh - 84px);
    left: 0;
    max-height: none;
    min-height: 0 !important;
    padding: 22px 22px max(28px, env(safe-area-inset-bottom));
    position: fixed;
    right: 0;
    scrollbar-gutter: stable;
    top: 84px;
    transform: translateY(-6px);
  }
  .tsf-header .tsf-nav.is-open { transform: translateY(0); }
  .tsf-mobile-nav-kicker { font-size: 9px; margin: 0 0 15px; }
  .tsf-header .tsf-nav > .tsf-nav-home,
  .tsf-header .tsf-nav > .tsf-nav-dropdown > .tsf-nav-dropdown-trigger > a,
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta),
  .tsf-header .tsf-nav-dropdown--menu-only > .tsf-nav-dropdown-trigger > .tsf-nav-dropdown-primary {
    font-size: clamp(25px, 7.2vw, 30px);
    letter-spacing: -1.35px;
    padding: 15px 0 16px;
  }
  .tsf-header .tsf-nav > .tsf-nav-dropdown,
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta) { border-top-color: rgba(18,18,18,.16); }
  .tsf-header .tsf-nav-dropdown-trigger button,
  .tsf-header .tsf-nav-dropdown--menu-only .tsf-nav-dropdown-icon { height: 54px; width: 46px; }
  .tsf-header .tsf-nav-submenu { background: transparent; padding-left: 10px; }
  .tsf-header .tsf-nav-dropdown.is-open .tsf-nav-submenu { max-height: 520px; padding: 0 0 12px 10px; }
  .tsf-header .tsf-nav-submenu a { border-bottom-color: rgba(18,18,18,.11); font-size: 13px; padding: 10px 2px; }
  .tsf-header .tsf-nav .tsf-nav-cta { align-items: center; justify-content: center; margin: 20px 0 0; min-height: 50px; padding: 14px 18px; }
}

/* Consent Mode v2: clear choice, no preselected optional purposes. */
.tsf-consent { background:#fffaf3; border:1px solid rgba(18,18,18,.17); border-top:4px solid var(--red); bottom:22px; box-shadow:0 18px 42px rgba(30,22,17,.22); color:var(--ink); left:22px; max-width:510px; padding:26px 28px 24px; position:fixed; width:calc(100% - 44px); z-index:1002; }
.tsf-consent[hidden] { display:none; }
.tsf-consent h2 { font-size:clamp(31px,3vw,42px); line-height:.95; margin:8px 0 13px; }
.tsf-consent__eyebrow { color:var(--red); font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.13em; margin:0; text-transform:uppercase; }
.tsf-consent__intro > p:not(.tsf-consent__eyebrow) { color:#5d554e; font-family:var(--font-ui,sans-serif); font-size:13px; line-height:1.55; margin:0; max-width:465px; }
.tsf-consent__actions { align-items:center; display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.tsf-consent button, .tsf-cookies-page__open { cursor:pointer; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.09em; min-height:43px; padding:0 14px; text-transform:uppercase; }
.tsf-consent__primary, .tsf-cookies-page__open { background:var(--red); border:1px solid var(--red); color:#fff; }
.tsf-consent__secondary { background:transparent; border:1px solid rgba(18,18,18,.3); color:var(--ink); }
.tsf-consent button:hover, .tsf-consent button:focus-visible, .tsf-cookies-page__open:hover, .tsf-cookies-page__open:focus-visible { background:var(--ink); border-color:var(--ink); color:#fff; outline:0; }
.tsf-consent__intro > a { color:var(--ink); display:inline-block; font-family:var(--font-ui,sans-serif); font-size:11px; margin-top:16px; text-decoration:underline; text-underline-offset:3px; }
.tsf-consent__choice { border-top:1px solid rgba(18,18,18,.15); cursor:pointer; display:flex; gap:12px; padding:14px 0; }
.tsf-consent__choice input { accent-color:var(--red); flex:0 0 auto; height:17px; margin:2px 0 0; width:17px; }
.tsf-consent__choice strong, .tsf-consent__choice small { display:block; font-family:var(--font-ui,sans-serif); }
.tsf-consent__choice strong { font-size:13px; margin-bottom:3px; }.tsf-consent__choice small { color:#665e56; font-size:11px; line-height:1.4; }
.tsf-cookies-page__hero { background:var(--green,#263b35); border-top:4px solid var(--red); color:#fff; padding:clamp(130px,15vw,185px) 0 clamp(72px,8vw,105px); }
.tsf-cookies-page__hero .tsf-label { color:#f3bbb5; }.tsf-cookies-page__hero h1 { font-size:clamp(55px,7.2vw,105px); line-height:.86; margin:18px 0 25px; max-width:750px; }.tsf-cookies-page__hero h1 em { color:#f1bbb5; }.tsf-cookies-page__hero > div > p:last-child { font-family:var(--font-ui,sans-serif); font-size:16px; line-height:1.6; max-width:530px; }
.tsf-cookies-page__content { background:#f5ede2; padding:clamp(78px,10vw,140px) 0; }.tsf-cookies-page__layout { display:grid; gap:clamp(46px,9vw,150px); grid-template-columns:minmax(240px,.68fr) minmax(0,1.3fr); }.tsf-cookies-page__layout aside { align-self:start; position:sticky; top:120px; }.tsf-cookies-page__layout aside h2, .tsf-cookies-page__copy h2 { font-size:clamp(38px,4vw,58px); line-height:.94; margin:16px 0 20px; }.tsf-cookies-page__layout aside > p:not(.tsf-label), .tsf-cookies-page__copy p { color:#5d554e; font-family:var(--font-ui,sans-serif); font-size:14px; line-height:1.72; }.tsf-cookies-page__open { margin-top:22px; }.tsf-cookies-page__open span { font-size:18px; margin-left:15px; }.tsf-cookies-page__copy h3 { border-top:1px solid rgba(18,18,18,.17); font-family:var(--font-display,Georgia,serif); font-size:30px; font-weight:500; margin:38px 0 14px; padding-top:21px; }.tsf-cookies-page__notice { background:#fffaf3; border-left:3px solid var(--red); font-family:var(--font-ui,sans-serif); font-size:13px; line-height:1.6; margin:25px 0; padding:17px 18px; }.tsf-cookies-table { overflow-x:auto; }.tsf-cookies-table table { border-collapse:collapse; font-family:var(--font-ui,sans-serif); font-size:12px; line-height:1.5; min-width:600px; width:100%; }.tsf-cookies-table th { background:var(--green,#263b35); color:#fff; font-size:10px; letter-spacing:.08em; text-align:left; text-transform:uppercase; }.tsf-cookies-table th, .tsf-cookies-table td { border:1px solid rgba(18,18,18,.14); padding:13px; vertical-align:top; }.tsf-cookies-table td { background:#fffaf3; }.tsf-cookies-table code { color:var(--red); font-size:11px; }
@media (max-width:767px) { .tsf-consent { bottom:12px; left:12px; max-width:none; padding:21px 20px; width:calc(100% - 24px); }.tsf-consent__actions { display:grid; grid-template-columns:1fr 1fr; }.tsf-consent__primary { grid-column:1 / -1; }.tsf-cookies-page__hero { padding-bottom:58px; padding-top:134px; }.tsf-cookies-page__hero h1 { font-size:55px; }.tsf-cookies-page__content { padding:66px 0; }.tsf-cookies-page__layout { display:block; }.tsf-cookies-page__layout aside { position:static; }.tsf-cookies-page__copy { margin-top:52px; }.tsf-cookies-page__layout aside h2, .tsf-cookies-page__copy h2 { font-size:42px; } }

/* Countdown: a pair of fine full-bleed rules, signed with a single red marker. */
.tsf-countdown { border-bottom:1px solid rgba(198,25,46,.82); border-top:1px solid rgba(198,25,46,.82); }
.tsf-countdown::before { background:var(--red); content:""; height:8px; left:50%; position:absolute; top:-4px; transform:translateX(-50%) rotate(45deg); width:8px; z-index:2; }
.tsf-countdown-shell { border-bottom:0; border-top:0; }
@media (max-width:767px) { .tsf-countdown::before { height:7px; width:7px; } }

/* Consent banner: a quiet full-width footer band. Detailed choices expand only on request. */
@media (min-width: 768px) {
  .tsf-consent { border-left:0; border-right:0; bottom:0; left:0; max-width:none; padding:15px 5.6vw 14px; width:100%; }
  .tsf-consent__intro { align-items:center; display:grid; gap:20px 34px; grid-template-columns:minmax(240px,.8fr) minmax(310px,1.35fr) auto; }
  .tsf-consent__intro .tsf-consent__eyebrow { display:none; }
  .tsf-consent__intro h2 { font-size:clamp(29px,2.4vw,39px); margin:0; }
  .tsf-consent__intro > p:not(.tsf-consent__eyebrow) { font-size:12px; max-width:520px; }
  .tsf-consent__intro .tsf-consent__actions { justify-content:flex-end; margin:0; }
  .tsf-consent__intro > a { font-size:10px; justify-self:end; margin:0; }
  .tsf-consent__settings:not([hidden]) { margin:0 auto; max-width:690px; }
}
@media (max-width:767px) {
  .tsf-consent { border-left:0; border-right:0; bottom:0; left:0; padding:19px 22px 18px; width:100%; }
  .tsf-consent__intro .tsf-consent__eyebrow { display:none; }
  .tsf-consent__intro h2 { font-size:31px; margin-bottom:8px; }
  .tsf-consent__intro > p:not(.tsf-consent__eyebrow) { font-size:12px; }
  .tsf-consent__intro > a { font-size:10px; margin-top:12px; }
}

/* Legal pages: editorial reading space with review states that cannot be mistaken for final terms. */
.tsf-legal-page__hero { background:var(--green,#263b35); border-top:4px solid var(--red); color:#fff; padding:clamp(130px,15vw,185px) 0 clamp(72px,8vw,105px); }
.tsf-legal-page__hero .tsf-label { color:#f3bbb5; }.tsf-legal-page__hero h1 { font-size:clamp(55px,7.2vw,105px); line-height:.86; margin:18px 0 25px; max-width:820px; }.tsf-legal-page__hero h1 em { color:#f1bbb5; }.tsf-legal-page__hero > div > p:last-child { font-family:var(--font-ui,sans-serif); font-size:16px; line-height:1.6; max-width:600px; }
.tsf-legal-page__content { background:#f5ede2; padding:clamp(78px,10vw,140px) 0; }.tsf-legal-page__layout { display:grid; gap:clamp(46px,9vw,150px); grid-template-columns:minmax(210px,.58fr) minmax(0,1.32fr); }.tsf-legal-page__aside { align-self:start; position:sticky; top:120px; }.tsf-legal-page__aside nav { border-top:1px solid rgba(18,18,18,.18); }.tsf-legal-page__aside a { border-bottom:1px solid rgba(18,18,18,.14); color:var(--ink); display:block; font-family:var(--font-ui,sans-serif); font-size:12px; line-height:1.4; padding:11px 0; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px; }.tsf-legal-page__aside a:hover,.tsf-legal-page__aside a:focus-visible { color:var(--red); text-decoration-color:currentColor; }
.tsf-legal-page__copy { max-width:780px; }.tsf-legal-page__copy h2 { border-top:1px solid rgba(18,18,18,.17); font-family:var(--font-display,Georgia,serif); font-size:clamp(38px,4vw,58px); font-weight:500; line-height:.94; margin:52px 0 20px; padding-top:26px; }.tsf-legal-page__copy h2:first-of-type { margin-top:38px; }.tsf-legal-page__copy h3 { font-family:var(--font-display,Georgia,serif); font-size:30px; font-weight:500; line-height:1; margin:34px 0 14px; }.tsf-legal-page__copy p { color:#5d554e; font-family:var(--font-ui,sans-serif); font-size:15px; line-height:1.75; margin:0 0 17px; }.tsf-legal-page__copy strong { color:var(--ink); }.tsf-legal-page__review { background:#fffaf3; border-left:3px solid var(--red); color:#5d554e; font-family:var(--font-ui,sans-serif); font-size:13px; line-height:1.6; margin-bottom:34px; padding:17px 18px; }.tsf-legal-page__pending { color:#8a2632; font-weight:600; }.tsf-legal-page__copy p.tsf-legal-page__pending { background:rgba(198,25,46,.06); border-left:2px solid rgba(198,25,46,.62); padding:12px 14px; }.tsf-legal-page__date { border-top:1px solid rgba(18,18,18,.17); font-size:12px!important; margin-top:42px!important; padding-top:18px; }
@media (max-width:767px) { .tsf-legal-page__hero { padding-bottom:58px; padding-top:134px; }.tsf-legal-page__hero h1 { font-size:55px; }.tsf-legal-page__content { padding:66px 0; }.tsf-legal-page__layout { display:block; }.tsf-legal-page__aside { position:static; }.tsf-legal-page__aside nav { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }.tsf-legal-page__copy { margin-top:52px; }.tsf-legal-page__copy h2 { font-size:42px; } }

/* Final shared treatment for every neckerchief application. */
.tsf-contact::before {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
  background-repeat: repeat;
  background-size: 106px 81px;
  opacity: .18;
}
.tsf-balcony-form-stage {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
  background-repeat: repeat;
  background-size: 54px 42px;
}
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
  background-size: 28px 22px;
}
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
  background-size: 22px 28px;
}
.tsf-balcony-inclusion__corner {
  background-image: url("../images/san-fermin-neckerchief.svg?v=20260902");
}

/* Final form-landing hero override. It must remain after the earlier
   exploratory landing compositions that share these selectors. */
.tsf-balcony-hero { background: #171d1a; }
.tsf-balcony-hero::before {
  background:
    linear-gradient(90deg, rgba(11,16,14,.76) 0%, rgba(11,16,14,.52) 34%, rgba(11,16,14,.12) 66%, rgba(11,16,14,.06) 100%),
    linear-gradient(0deg, rgba(5,8,7,.28), transparent 52%),
    var(--tsf-landing-hero-image) center / cover;
  inset: 0;
}
.tsf-balcony-hero__inner { align-items:flex-start; justify-content:center; min-height:inherit; padding-bottom:clamp(58px,6vw,92px); padding-top:clamp(58px,6vw,92px); width:100% !important; }
.tsf-balcony-hero .tsf-label { margin-bottom:20px; }
.tsf-balcony-hero h1 { max-width:9.5ch; }
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { background:transparent; border:0; bottom:auto; box-shadow:none; color:rgba(255,255,255,.94); left:auto; margin:27px 0 0; max-width:515px; padding:0; position:static; right:auto; text-shadow:0 2px 15px rgba(0,0,0,.32); width:auto; }
@media (max-width:900px) { .tsf-balcony-hero { min-height:480px; padding-bottom:0; } .tsf-balcony-hero::before { height:auto; inset:0; } .tsf-balcony-hero__inner { min-height:480px; } }
@media (max-width:767px) { .tsf-balcony-hero { min-height:440px; } .tsf-balcony-hero__inner { min-height:440px; padding-bottom:50px; padding-top:59px; } .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { margin-top:21px; max-width:32rem; } }

/* Main navigation: a completely flat white category band. */
.tsf-header .tsf-nav,
.tsf-header .tsf-nav-submenu {
  background-color: #fff !important;
  box-shadow: none !important;
  filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.tsf-header .tsf-nav a,
.tsf-header .tsf-nav button,
.tsf-header .tsf-nav-dropdown-trigger > a {
  text-shadow: none !important;
}
.tsf-header .tsf-nav-submenu a {
  display: block;
  transition: background-color .2s ease, color .2s ease, padding .2s ease;
}
.tsf-header .tsf-nav-submenu a:hover,
.tsf-header .tsf-nav-submenu a:focus-visible {
  background: var(--red, #c6192e);
  color: #fff !important;
  padding-left: 10px;
  padding-right: 10px;
}
.tsf-header .tsf-nav-submenu a:focus-visible { outline-color: #151311; }

/* Optional commercial consent sits beneath the required enquiry consent. */
.tsf-marketing-consent { border-top: 0; padding-top: 10px; }
.tsf-form-consent a { color: inherit; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tsf-form-consent a:hover, .tsf-form-consent a:focus-visible { color: var(--red, #c6192e); }
.tsf-balcony-form .tsf-form-consent a:hover, .tsf-balcony-form .tsf-form-consent a:focus-visible { color: #fff; opacity: .72; }

/* The legal page is intentionally a quiet shell until its approved copy is supplied. */
.tsf-legal-placeholder { background: #f7f1e7; min-height: 48vh; padding: clamp(100px, 13vw, 180px) 0; }
.tsf-legal-placeholder .tsf-label { color: var(--red, #c6192e); }
.tsf-legal-placeholder h1 { font-size: clamp(52px, 7vw, 104px); letter-spacing: -.075em; line-height: .85; margin: 22px 0 0; }
.tsf-legal-placeholder h1 em { color: var(--red, #c6192e); }

/* Form landing headings only need their editorial question; the auxiliary note
   consumed width without helping the next step. */
.tsf-contact-form .tsf-form-heading > span { display: none !important; }
@media (min-width: 681px) {
  .tsf-contact-form .tsf-form-heading { display: block; }
  .tsf-contact-form .tsf-form-heading p { font-size: clamp(18px, 1.55vw, 25px); white-space: nowrap; }
}
@media (max-width: 680px) {
  .tsf-contact-form .tsf-form-heading p { white-space: normal; }
}

/* Prevent browser autofill from adding pale rectangles to the red enquiry forms. */
.tsf-balcony-form input:-webkit-autofill,
.tsf-balcony-form input:-webkit-autofill:hover,
.tsf-balcony-form input:-webkit-autofill:focus,
.tsf-balcony-form select:-webkit-autofill,
.tsf-balcony-form select:-webkit-autofill:hover,
.tsf-balcony-form select:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--red, #c6192e) inset !important;
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff;
  transition: background-color 9999s ease-out 0s;
}

/* Replace the browser's rectangular click focus with a quiet editorial cue. */
.tsf-header .tsf-nav a:focus,
.tsf-header .tsf-nav button:focus {
  outline: 0 !important;
}
.tsf-header .tsf-nav a:focus-visible,
.tsf-header .tsf-nav button:focus-visible {
  color: var(--red, #c6192e) !important;
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}

/* Desktop utility strip: a generous red band for language, Instagram and contact. */
@media (min-width: 768px) {
  .tsf-header .tsf-topbar {
    align-items: center;
    background: var(--red, #c6192e) !important;
    border: 0;
    color: #fff;
    display: flex !important;
    font-size: 10px;
    letter-spacing: .09em;
    margin-left: -5.6vw;
    min-height: 30px;
    padding: 0 5.6vw;
    text-transform: uppercase;
    width: calc(100% + 11.2vw);
  }
  .tsf-header .tsf-topbar > span { color: rgba(255,255,255,.9) !important; }
  .tsf-header .tsf-topbar > div { align-items: center; gap: 18px; }
  .tsf-header .tsf-topbar a { color: #fff !important; }
  .tsf-header .tsf-topbar a:hover,
  .tsf-header .tsf-topbar a:focus-visible { color: #fff !important; opacity: .74; }
  .tsf-header .tsf-topbar-instagram { height: 26px; width: 26px; }
  .tsf-header .tsf-topbar-instagram svg { height: 18px; width: 18px; }
}

/* Form landings: centred editorial composition over the full photograph. */
.tsf-balcony-hero::before {
  background:
    radial-gradient(ellipse at center, rgba(10,12,10,.24) 0%, rgba(10,12,10,.53) 70%, rgba(10,12,10,.68) 100%),
    linear-gradient(0deg, rgba(5,8,7,.32), rgba(5,8,7,.12) 55%, rgba(5,8,7,.25)),
    var(--tsf-landing-hero-image) center / cover;
}
.tsf-balcony-hero__inner {
  align-items: center;
  justify-content: center;
  text-align: center;
}
.tsf-balcony-hero .tsf-label {
  margin-bottom: 22px;
  text-align: center;
}
.tsf-balcony-hero h1 {
  max-width: 14ch;
  text-align: center;
}
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-top: 24px;
  max-width: 590px;
  padding-top: 20px;
  text-align: center;
}
.tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label)::before {
  background: var(--red, #c6192e);
  content: '';
  display: block;
  height: 2px;
  margin: 0 auto 18px;
  width: 48px;
}
@media (max-width: 767px) {
  .tsf-balcony-hero h1 { max-width: 12ch; }
  .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { margin-top: 20px; padding-top: 17px; }
}

/* Compact language menu for the red utility strip. */
@media (min-width: 768px) {
  .tsf-language-switcher { position: relative; }
  .tsf-language-switcher summary {
    align-items: center;
    border: 1px solid rgba(255,255,255,.64);
    cursor: pointer;
    display: flex;
    gap: 10px;
    height: 23px;
    list-style: none;
    padding: 0 9px 0 10px;
  }
  .tsf-language-switcher summary::-webkit-details-marker { display: none; }
  .tsf-language-switcher summary i { border-bottom: 1px solid currentColor; border-right: 1px solid currentColor; display: block; height: 6px; transform: rotate(45deg) translateY(-2px); width: 6px; }
  .tsf-language-switcher[open] summary { background: #fffaf4; border-color: #fffaf4; color: var(--red, #c6192e); }
  .tsf-language-switcher[open] summary i { transform: rotate(225deg) translateY(-1px); }
  .tsf-language-menu {
    background: #fffaf4;
    border: 1px solid rgba(18,18,18,.18);
    color: var(--ink, #161514);
    display: grid;
    min-width: 148px;
    padding: 5px 0;
    position: absolute;
    right: 0;
    top: calc(100% + 5px);
    z-index: 120;
  }
  .tsf-language-menu a,
  .tsf-language-menu span { color: inherit !important; display: block; font-size: 11px; letter-spacing: .03em; padding: 10px 13px; text-align: left; text-decoration: none; text-transform: none; }
  .tsf-language-menu a[aria-current="page"] { color: var(--red, #c6192e) !important; font-weight: 700; }
  .tsf-language-menu a:hover,
  .tsf-language-menu a:focus-visible { background: rgba(198,25,46,.08); color: var(--red, #c6192e) !important; opacity: 1 !important; outline: 0; }
  .tsf-language-menu span[aria-disabled="true"] { color: #8b837b !important; cursor: default; }
}

/* Final form textile: darker, larger and deliberately quiet behind the fields. */
.tsf-contact-form.tsf-balcony-form::before {
  background-color: transparent;
  background-image: url("../images/san-fermin-neckerchief-form-pattern.svg?v=20260903") !important;
  background-position: 0 0;
  background-repeat: repeat;
  background-size: 174px 136px;
  content: "" !important;
  inset: 0;
  opacity: .13;
}
.tsf-balcony-inclusion {
  color: var(--ink, #161514) !important;
  text-decoration: none;
}

/* Contacto: turn the reassurance note into a more useful, human promise. */
.tsf-contact-inclusion .tsf-balcony-inclusion__frame > p {
  max-width: 66ch;
}
.tsf-contact-inclusion__points {
  border-top: 1px solid rgba(198, 25, 46, .28);
  display: grid;
  gap: 12px 22px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 23px 0 0;
  padding: 16px 0 0;
  position: relative;
  z-index: 1;
}
.tsf-contact-inclusion__points li {
  align-items: center;
  color: #403a35;
  display: flex;
  font-family: var(--font-ui, sans-serif);
  font-size: 10px;
  font-weight: 700;
  gap: 8px;
  letter-spacing: .075em;
  line-height: 1.3;
  text-transform: uppercase;
}
.tsf-contact-inclusion__points li::before {
  background: var(--red);
  content: '';
  display: block;
  flex: 0 0 6px;
  height: 6px;
  width: 6px;
}
@media (max-width: 680px) {
  .tsf-contact-inclusion__points { grid-template-columns: 1fr; gap: 11px; }
}

/* Sobre nosotros: a single full-width thread closes the story before the group chapter. */
.page-id-9 .tsf-other-projects {
  border-top: 3px solid var(--red);
}

/* Territory consultations: each note now carries the personality of its place. */
.tsf-territory-inclusion .tsf-balcony-inclusion__content h2 {
  max-width: 25ch;
  white-space: normal;
}
.tsf-territory-inclusion .tsf-balcony-inclusion__content p {
  max-width: 66ch;
}

/* Encierro: use the full editorial column for the supplied horizontal image. */
.tsf-understand-moment__intro-media--encierro {
  height: clamp(112px, 11vw, 154px);
  max-width: none;
  width: 100%;
}
@media (max-width: 767px) {
  .tsf-understand-moment__intro-media--encierro { height: clamp(130px, 38vw, 190px); }
}

/* Form landings: make the editorial chapter a distinct, quieter reading area. */
.tsf-understand-moment {
  background: #d1cbc2;
  border-top: 1px solid rgba(198, 25, 46, .82);
  margin-top: 5px;
  padding: clamp(26px, 3vw, 44px) 0 clamp(38px, 4vw, 68px);
}
.tsf-understand-moment::after {
  border-top: 1px solid rgba(198, 25, 46, .82);
  content: '';
  left: 0;
  position: absolute;
  right: 0;
  top: 5px;
}
.tsf-understand-moment > .container-fluid { padding-top: 0; }
@media (max-width: 767px) {
  .tsf-understand-moment { margin-top: 4px; }
  .tsf-understand-moment::after { top: 4px; }
  .tsf-understand-moment { padding-top: 26px; }
}

/* Form landing editorial accordions: a clear circular control replaces the arrow. */
.tsf-understand-moment__item summary i,
.tsf-understand-moment__item[open] summary i {
  align-items: center;
  border: 1px solid var(--red, #c6192e);
  border-radius: 50%;
  color: var(--red, #c6192e);
  display: inline-flex;
  font-family: Arial, sans-serif;
  font-size: 0;
  height: 34px;
  justify-content: center;
  transform: none;
  transition: background-color .22s ease, border-color .22s ease, color .22s ease;
  width: 34px;
}
.tsf-understand-moment__item summary i::after {
  content: '+';
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
}
.tsf-understand-moment__item[open] summary i {
  background: var(--red, #c6192e);
  color: #fff;
}
@media (max-width: 767px) {
  .tsf-understand-moment__item summary i,
  .tsf-understand-moment__item[open] summary i { height: 30px; width: 30px; }
  .tsf-understand-moment__item summary i::after { font-size: 20px; }
}

/* Territorial guide headers: a compact, clear two-column editorial rhythm. */
@media (min-width: 901px) {
  .tsf-pamplona-guide header {
    align-items: start;
    column-gap: clamp(36px, 6vw, 96px);
    grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
    grid-template-rows: auto auto;
    padding-bottom: 28px;
    row-gap: 9px;
  }
  .tsf-pamplona-guide header .tsf-label {
    align-self: start;
    grid-column: 1;
    grid-row: 2;
    margin: 0;
  }
  .tsf-pamplona-guide header h2 {
    font-size: clamp(34px, 3vw, 54px);
    grid-column: 1;
    grid-row: 1;
    line-height: .92;
    max-width: none;
    white-space: nowrap;
  }
  .tsf-pamplona-guide header > p:not(.tsf-label) {
    align-self: start;
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
    line-height: 1.45;
    margin: 0;
    max-width: 340px;
    text-align: right;
  }
}

/* About: bring the final invitation directly after the service rail. */
.tsf-about-aman__services { padding-bottom: clamp(20px, 2vw, 34px); }
.tsf-about-aman__services-dots { margin-top: 22px; }
.tsf-about-aman__farewell {
  min-height: 0;
  padding: clamp(34px, 3.2vw, 54px) 28px clamp(44px, 4vw, 68px);
}
.tsf-about-aman__farewell-arrow { top: 8%; }
@media (max-width: 760px) {
  .tsf-about-aman__services { padding-bottom: 20px; }
  .tsf-about-aman__services-dots { margin-top: 20px; }
  .tsf-about-aman__farewell { min-height: 0; padding: 42px 25px 50px; }
}

/* Final About hero correction: title clears the fixed header and opening copy follows the image closely. */
.tsf-about-aman__hero { padding-top: clamp(120px, 9vw, 150px); }
.tsf-about-aman__hero h1 {
  color: #201c19;
  display: block;
  opacity: 1 !important;
  position: relative;
  transform: none !important;
  visibility: visible !important;
  z-index: 2;
}
.tsf-about-aman__opening {
  padding: clamp(46px, 4vw, 64px) 28px clamp(70px, 6vw, 100px);
}
@media (max-width: 760px) {
  .tsf-about-aman__hero { padding-top: 86px; }
  .tsf-about-aman__opening { padding: 42px 28px 62px; }
}

/* About hero: retain the page title above the opening photograph at all times. */
.tsf-about-aman__hero h1 {
  color: #201c19;
  display: block;
  margin: clamp(26px, 2.5vw, 40px) auto clamp(24px, 2.4vw, 38px);
  opacity: 1 !important;
  position: relative;
  transform: none !important;
  visibility: visible !important;
  z-index: 2;
}
@media (max-width: 760px) {
  .tsf-about-aman__hero h1 { margin: 25px auto 24px; }
}

/* Keep the opening copy visually connected to the main image. */
.tsf-about-aman__opening {
  padding: clamp(48px, 5vw, 80px) 28px clamp(72px, 8vw, 120px);
}
@media (max-width: 760px) {
  .tsf-about-aman__opening { padding: 48px 28px 64px; }
}

/* About: Mónica follows the opening directly, with copy on the left and portrait on the right. */
@media (min-width: 761px) {
  .tsf-about-aman__monica > .tsf-about-aman__copy--monica { grid-column: 1; grid-row: 1; }
  .tsf-about-aman__monica > figure { grid-column: 2; grid-row: 1; }
}
@media (max-width: 760px) {
  .tsf-about-aman__monica { display: flex; flex-direction: column; }
  .tsf-about-aman__monica > .tsf-about-aman__copy--monica { order: 1; }
  .tsf-about-aman__monica > figure { order: 2; }
}

/* About: the final editorial block gives its long-form copy enough measure. */
@media (min-width: 761px) {
  .tsf-about-aman__future {
    align-items: start;
    column-gap: clamp(58px, 7vw, 128px);
    grid-template-columns: minmax(560px, 1.25fr) minmax(320px, .65fr);
  }
  .tsf-about-aman__future .tsf-about-aman__copy {
    margin: 0 0 5%;
    max-width: 760px;
  }
  .tsf-about-aman__future figure {
    height: clamp(500px, 48vw, 780px);
    justify-self: end;
    max-width: 500px;
    width: 100%;
  }
}

/* About services: compact editorial cards with both text levels kept in view. */
@media (min-width: 761px) {
  .tsf-about-aman__services-track { gap: clamp(18px, 2vw, 32px); }
  .tsf-about-aman__services-track a { flex-basis: clamp(260px, 25vw, 390px); }
  .tsf-about-aman__services-track img { aspect-ratio: 1.22; }
  .tsf-about-aman__services-track span { padding: 17px 3px 5px; }
  .tsf-about-aman__services-track strong { font-size: clamp(25px, 2vw, 34px); }
  .tsf-about-aman__services-track small { margin-top: 7px; }
}

/* Accommodation: keep the editorial statement in its intended three lines. */
.tsf-service-landing--alojamiento #accommodation-consultation-title {
  font-size: clamp(40px, 4.2vw, 56px);
  max-width: none;
}

/* Territory forms: preserve full contrast for the complete introductory title. */
.tsf-territory-landing .tsf-balcony-form .tsf-form-heading p em { color: #fff; }

/* Tours hero: two intentional editorial lines, without a narrow title stack. */
.tsf-service-landing--tours .tsf-balcony-hero h1 {
  font-size: clamp(44px, 3.7vw, 60px);
  max-width: none;
}

/* Shared service forms: a compact first step keeps the complete card in view. */
@media (min-width: 681px) {
  .tsf-service-landing .tsf-balcony-form.tsf-service-multistep { padding: clamp(26px, 2.6vw, 38px); }
  .tsf-service-landing .tsf-service-multistep__progress { margin: 20px 0 16px; }
  .tsf-service-landing .tsf-service-multistep__progress li { padding-top: 27px; }
  .tsf-service-landing .tsf-service-multistep__progress li:not(:last-child)::after { top: 11px; }
  .tsf-service-landing .tsf-service-multistep__progress li span { height: 23px; width: 23px; }
  .tsf-service-landing .tsf-service-multistep__step .tsf-form-grid {
    gap: 16px 22px;
    margin-top: 15px;
    padding: 12px 0 10px;
  }
  .tsf-service-landing .tsf-service-multistep__step .tsf-form-grid input,
  .tsf-service-landing .tsf-service-multistep__step .tsf-form-grid select,
  .tsf-service-landing .tsf-service-multistep__step .tsf-form-grid textarea { padding-bottom: 7px; padding-top: 5px; }
  .tsf-service-landing .tsf-service-multistep .tsf-form-footer { margin-top: 10px; }
  .tsf-service-landing .tsf-service-multistep__next,
  .tsf-service-landing .tsf-service-multistep__back { padding: 11px 17px; }
}

/* Territory carousel: a tighter heading and a two-line, right-aligned note. */
@media (min-width: 761px) {
  .tsf-territory-moments { padding: clamp(38px, 4.5vw, 58px) 0 clamp(44px, 5vw, 64px); }
  .tsf-territory-moments .tsf-balcony-moments__heading {
    column-gap: clamp(24px, 3vw, 48px);
    gap: 9px clamp(24px, 3vw, 48px);
    grid-template-columns: minmax(0, 1fr) minmax(360px, 420px);
    margin-bottom: clamp(20px, 2vw, 30px);
  }
  .tsf-territory-moments .tsf-balcony-moments__heading > p:last-child {
    justify-self: end;
    max-width: 400px;
    text-align: right;
  }
}

/* Pamplona introduction: keep the editorial statement in two calm lines. */
@media (min-width: 681px) {
  .tsf-territory-landing--pamplona #territory-story-title {
    font-size: clamp(36px, 4.1vw, 50px);
    max-width: none;
  }
  .tsf-territory-landing--navarra #territory-story-title {
    font-size: clamp(36px, 4.1vw, 50px);
    max-width: none;
  }
  .tsf-territory-landing--euskadi #territory-story-title {
    font-size: clamp(36px, 4.1vw, 50px);
    max-width: 18ch;
  }
}

/* About: keep the service rail and its closing invitation as one compact thought. */
.tsf-about-aman__services {
  padding-bottom: clamp(46px, 5vw, 78px);
}
.tsf-about-aman__farewell {
  min-height: clamp(240px, 20vw, 340px);
  padding: clamp(42px, 4.5vw, 72px) 28px;
}
@media (max-width: 760px) {
  .tsf-about-aman__services { padding-bottom: 42px; }
  .tsf-about-aman__farewell { min-height: 240px; padding: 48px 25px; }
}

/* Home hero: Pobre de mí is deliberately photographic-free until final imagery arrives. */
.tsf-slide-pobre-de-mi {
  background:
    radial-gradient(circle at 18% 24%, rgba(229, 47, 65, .28) 0 1px, transparent 1.5px) 0 0 / 48px 48px,
    radial-gradient(ellipse at 50% 42%, #69101d 0%, #3a1017 53%, #171111 100%);
}
.tsf-slide-pobre-de-mi .tsf-slide-shade {
  background: linear-gradient(115deg, rgba(10, 8, 8, .54), rgba(88, 12, 27, .17) 52%, rgba(10, 8, 8, .45));
}

/* About: editorial profile rather than a generic WordPress article. */
.tsf-about { background:#f6eee4; color:var(--ink, #161514); }
.tsf-about-hero { background:#171914; min-height:clamp(510px, 58vw, 700px); overflow:hidden; position:relative; }
.tsf-about-hero__image, .tsf-about-hero__image::after { inset:0; margin:0; position:absolute; }
.tsf-about-hero__image::after { background:linear-gradient(90deg, rgba(11,14,12,.76) 0%, rgba(11,14,12,.52) 43%, rgba(11,14,12,.12) 100%); content:""; }
.tsf-about-hero__image img { height:100%; object-fit:cover; width:100%; }
.tsf-about-hero__copy { color:#fff; padding-bottom:80px; padding-top:150px; position:relative; z-index:1; }
.tsf-about-hero .tsf-label { color:#f3bbb5; }.tsf-about-hero h1 { font-size:clamp(55px,6.4vw,101px); line-height:.84; margin:19px 0 28px; max-width:10ch; }.tsf-about-hero h1 em { color:#f2aaa5; }.tsf-about-hero__copy > p:last-child { font-family:var(--font-ui,sans-serif); font-size:16px; line-height:1.6; max-width:480px; }
.tsf-about-intro, .tsf-about-timeline, .tsf-about-values { padding:clamp(75px,10vw,145px) 0; }.tsf-about-intro__grid, .tsf-about-purpose__grid, .tsf-about-expansion__grid, .tsf-about-contact__grid { display:grid; gap:clamp(42px,9vw,150px); grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); }.tsf-about h2 { font-size:clamp(44px,4.9vw,73px); line-height:.91; margin:17px 0 0; }.tsf-about h2 em { color:var(--red,#c6192e); }.tsf-about-intro__copy { font-family:var(--font-ui,sans-serif); font-size:16px; line-height:1.72; max-width:690px; }.tsf-about-intro__lead { color:#222; font-size:20px; line-height:1.5; margin-top:0; }
.tsf-about-timeline { background:#e8d8cb; }.tsf-about-section-heading { display:flex; justify-content:space-between; margin-bottom:clamp(45px,6vw,82px); }.tsf-about-section-heading h2 { max-width:12ch; }.tsf-about-timeline__list { border-top:1px solid rgba(18,18,18,.2); list-style:none; margin:0; padding:0; }.tsf-about-timeline__list li { border-bottom:1px solid rgba(18,18,18,.2); display:grid; gap:30px; grid-template-columns:minmax(86px,.35fr) minmax(0,1fr); padding:25px 0 29px; }.tsf-about-timeline__list span { color:var(--red,#c6192e); font-family:var(--font-ui,sans-serif); font-size:12px; font-weight:700; letter-spacing:.08em; }.tsf-about-timeline__list h3 { font-family:var(--font-display,Georgia,serif); font-size:32px; font-weight:500; margin:0 0 8px; }.tsf-about-timeline__list p { font-family:var(--font-ui,sans-serif); font-size:14px; line-height:1.65; margin:0; max-width:620px; }
.tsf-about-purpose { background:#1c2a26; color:#fff; padding:clamp(70px,9vw,130px) 0; }.tsf-about-purpose__grid { align-items:center; }.tsf-about-purpose figure { margin:0; position:relative; }.tsf-about-purpose figure img { aspect-ratio:3 / 4; display:block; object-fit:cover; width:100%; }.tsf-about-purpose figcaption { background:var(--red,#c6192e); bottom:0; color:#fff; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.1em; padding:13px 16px; position:absolute; right:0; text-transform:uppercase; }.tsf-about-purpose .tsf-label { color:#f2bbb6; }.tsf-about-purpose h2 { max-width:10ch; }.tsf-about-purpose h2 em { color:#f2bbb6; }.tsf-about-purpose p { font-family:var(--font-ui,sans-serif); font-size:15px; line-height:1.7; max-width:600px; }.tsf-about-purpose blockquote { border-left:2px solid var(--red,#c6192e); font-family:var(--font-display,Georgia,serif); font-size:clamp(25px,2.5vw,37px); line-height:1.08; margin:34px 0 0; padding-left:21px; }
.tsf-about-values__grid { display:grid; gap:0; grid-template-columns:repeat(3,1fr); }.tsf-about-values article { border-left:1px solid rgba(18,18,18,.2); min-height:265px; padding:0 clamp(21px,3.4vw,55px); }.tsf-about-values article:first-child { border-left:0; padding-left:0; }.tsf-about-values span { color:var(--red,#c6192e); font-family:var(--font-ui,sans-serif); font-size:11px; font-weight:700; }.tsf-about-values h3 { font-family:var(--font-display,Georgia,serif); font-size:34px; font-weight:500; line-height:1; margin:24px 0 15px; }.tsf-about-values p, .tsf-about-expansion p, .tsf-about-contact p { font-family:var(--font-ui,sans-serif); font-size:14px; line-height:1.7; }
.tsf-about-expansion { background:#fffaf3; border-bottom:1px solid rgba(18,18,18,.18); border-top:1px solid rgba(18,18,18,.18); padding:clamp(66px,8vw,110px) 0; }.tsf-about-expansion h2 { max-width:11ch; }.tsf-about-expansion > div > p:last-child { font-size:17px; margin:7px 0 0; max-width:630px; }.tsf-about-contact { background:var(--red,#c6192e); color:#fff; padding:clamp(72px,9vw,130px) 0; }.tsf-about-contact .tsf-label { color:#ffd4cf; }.tsf-about-contact h2 em { color:#ffd4cf; }.tsf-about-contact > div > div:last-child { max-width:570px; }.tsf-about-contact__signature { font-family:var(--font-display,Georgia,serif) !important; font-size:25px !important; line-height:1.08 !important; margin:28px 0 !important; }.tsf-about-contact__signature span { font-family:var(--font-ui,sans-serif); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }.tsf-about-contact .tsf-button { background:#fffaf3; color:var(--ink,#161514); }.tsf-about-contact .tsf-button:hover { background:#182420; color:#fff; }
@media (max-width:767px) { .tsf-about-hero { min-height:520px; }.tsf-about-hero__image::after { background:linear-gradient(0deg,rgba(11,14,12,.82),rgba(11,14,12,.2)); }.tsf-about-hero__copy { padding-bottom:58px; padding-top:140px; }.tsf-about-hero h1 { font-size:55px; }.tsf-about-intro__grid, .tsf-about-purpose__grid, .tsf-about-expansion__grid, .tsf-about-contact__grid { display:block; }.tsf-about-intro__copy, .tsf-about-purpose__grid > div, .tsf-about-expansion__grid > p, .tsf-about-contact__grid > div:last-child { margin-top:38px; }.tsf-about-intro__lead { font-size:18px; }.tsf-about-section-heading { display:block; }.tsf-about-timeline__list li { gap:16px; grid-template-columns:64px 1fr; }.tsf-about-timeline__list h3 { font-size:28px; }.tsf-about-purpose figure { margin-bottom:45px; }.tsf-about-values__grid { display:block; }.tsf-about-values article, .tsf-about-values article:first-child { border-left:0; border-top:1px solid rgba(18,18,18,.2); min-height:0; padding:26px 0; }.tsf-about-values article:first-child { border-top:0; padding-top:0; }.tsf-about-values h3 { font-size:30px; margin:18px 0 12px; } }

/* The brand mark should never retain a browser click rectangle. */
.tsf-brand,
.tsf-brand:focus,
.tsf-brand:active {
  -webkit-tap-highlight-color: transparent;
  outline: 0 !important;
}
.tsf-brand:focus-visible {
  outline: 0 !important;
}
.tsf-brand:focus-visible img {
  filter: drop-shadow(0 2px 0 var(--red, #c6192e));
}

/* The red-scarf hero has two deliberately complete title lines on desktop. */
@media (min-width: 768px) {
  .tsf-slide-gigantes .tsf-slide-content { max-width: 1380px; }
  .tsf-slide-gigantes .tsf-slide-title {
    font-size: clamp(48px, 4.25vw, 72px);
    letter-spacing: -.055em;
    white-space: nowrap;
  }
}

/* Keep the category action legible when its circle turns red. */
.home .tsf-interest-copy b {
  background: #fff;
  border-color: #fff;
  color: var(--red, #c6192e);
}
.tsf-interest-card:hover .tsf-interest-copy b,
.tsf-interest-card:focus-visible .tsf-interest-copy b,
.tsf-interest-card.is-active .tsf-interest-copy b {
  background: var(--red, #c6192e);
  border-color: var(--red, #c6192e);
  color: var(--ink, #161514);
  transform: none;
}

/* Home selector: the San Fermín route is a full-bleed editorial ribbon,
   so the cards start immediately beneath it without empty vertical bands. */
.home .tsf-interest-selector {
  background: var(--red, #c6192e);
  padding-bottom: 0;
  padding-top: 0;
}
.home .tsf-interest-heading {
  background: var(--red, #c6192e);
  margin: 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: clamp(98px, 7.3vw, 116px);
  padding: 18px 22px;
  position: relative;
  width: 100vw;
}
.home .tsf-interest-hub-link {
  background: var(--ink, #171513);
  color: #fff;
  font-size: 12px;
  justify-content: center;
  min-width: clamp(282px, 22vw, 340px);
  padding: 21px 34px;
}
.home .tsf-interest-hub-link span {
  color: var(--red, #c6192e);
}
.home .tsf-interest-hub-link:hover,
.home .tsf-interest-hub-link:focus-visible {
  background: #f4eee5;
  color: var(--ink, #171513);
  transform: none;
}
.home .tsf-interest-grid {
  padding-bottom: clamp(24px, 2.5vw, 38px);
  padding-top: clamp(6px, .8vw, 11px);
}
@media (max-width: 767px) {
  .home .tsf-interest-heading {
    margin-bottom: 0;
    min-height: 84px;
    padding: 10px 14px;
  }
  .home .tsf-interest-hub-link {
    font-size: 11px;
    min-width: min(286px, 82vw);
    padding: 18px 26px;
  }
  .home .tsf-interest-grid { padding-bottom: 16px; padding-top: 5px; }
}

/* Home cover: a quiet, clickable cue invites the visitor into the story. */
.home #intereses { scroll-margin-top: 94px; }

/* Home category cards: reveal a concise invitation only when the visitor
   chooses to explore a card, keeping the initial visual grid calm. */
.home .tsf-interest-card {
  isolation: isolate;
  transition: border-color .45s ease, box-shadow .45s ease, transform .55s cubic-bezier(.22,.61,.2,1);
}
.home .tsf-interest-image::after {
  background: linear-gradient(180deg, rgba(11,9,8,.04) 12%, rgba(11,9,8,.9) 100%);
  transition: background .6s ease;
}
.home .tsf-interest-card:hover .tsf-interest-image::after,
.home .tsf-interest-card:focus-visible .tsf-interest-image::after {
  background: linear-gradient(180deg, rgba(17,14,12,.16) 3%, rgba(17,14,12,.94) 100%);
}
.home .tsf-interest-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 100%;
}
.home .tsf-interest-copy > span:first-child {
  position: absolute;
  top: 20px;
}
.home .tsf-interest-copy strong {
  transform: translateY(32px);
  transition: transform .55s cubic-bezier(.22,.61,.2,1);
}
.home .tsf-interest-copy small,
.home .tsf-interest-action {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(14px);
  transition: max-height .55s ease, opacity .35s ease, transform .55s cubic-bezier(.22,.61,.2,1);
}
.home .tsf-interest-copy small {
  margin-top: 0;
}
.home .tsf-interest-action {
  align-items: center;
  align-self: flex-start;
  border: 1px solid rgba(255,255,255,.88);
  color: #fff;
  display: inline-flex;
  font-family: var(--font-ui, Arial, sans-serif);
  font-size: 9px;
  font-weight: 700;
  gap: 14px;
  letter-spacing: .12em;
  line-height: 1;
  margin-top: 0;
  padding: 0 13px;
  text-transform: uppercase;
}
.home .tsf-interest-action i {
  color: #fff;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: .55;
}
.home .tsf-interest-card:hover .tsf-interest-copy strong,
.home .tsf-interest-card:focus-visible .tsf-interest-copy strong {
  transform: translateY(0);
}
.home .tsf-interest-card:hover .tsf-interest-copy small,
.home .tsf-interest-card:focus-visible .tsf-interest-copy small {
  max-height: 48px;
  opacity: 1;
  transform: translateY(0);
  margin-top: 11px;
}
.home .tsf-interest-card:hover .tsf-interest-action,
.home .tsf-interest-card:focus-visible .tsf-interest-action {
  max-height: 40px;
  opacity: 1;
  transform: translateY(0);
  margin-top: 14px;
  padding-bottom: 11px;
  padding-top: 11px;
}
.home .tsf-interest-card:hover .tsf-interest-action,
.home .tsf-interest-card:focus-visible .tsf-interest-action {
  background: #fff;
  border-color: #fff;
  color: var(--ink, #171513);
}
.home .tsf-interest-card:hover .tsf-interest-action i,
.home .tsf-interest-card:focus-visible .tsf-interest-action i {
  color: var(--red, #c6192e);
}
@media (max-width: 767px) {
  .home .tsf-interest-copy > span:first-child { top: 14px; }
  .home .tsf-interest-copy strong { transform: none; }
  .home .tsf-interest-copy small,
  .home .tsf-interest-action { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home .tsf-interest-card,
  .home .tsf-interest-image::after,
  .home .tsf-interest-copy strong,
  .home .tsf-interest-copy small,
  .home .tsf-interest-action { transition: none; }
}
.home .tsf-hero-scroll-cue {
  align-items: center;
  color: #fff;
  display: flex;
  height: 32px;
  left: 50%;
  position: absolute;
  text-decoration: none;
  top: -44px;
  transform: translateX(-50%);
  transition: color .2s ease;
  width: 32px;
}
.home .tsf-hero-scroll-cue i {
  display: block;
  position: relative;
  height: 24px;
  width: 24px;
}
.home .tsf-hero-scroll-cue i::before,
.home .tsf-hero-scroll-cue i::after {
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: '';
  height: 10px;
  left: 5px;
  position: absolute;
  transform: rotate(45deg);
  width: 10px;
}
.home .tsf-hero-scroll-cue i::before { top: 1px; }
.home .tsf-hero-scroll-cue i::after {
  animation: tsf-hero-scroll-chevron-bob 1.45s cubic-bezier(.4,0,.2,1) infinite;
  top: 9px;
}
.home .tsf-hero-scroll-cue:hover,
.home .tsf-hero-scroll-cue:focus-visible {
  color: #f4eee5;
  outline: 0;
  text-decoration: none;
}
.home .tsf-hero-scroll-cue:focus-visible::before {
  border: 1px solid #fff;
  content: '';
  inset: -8px;
  position: absolute;
}
@keyframes tsf-hero-scroll-chevron-bob {
  0%, 100% { transform: translateY(0) rotate(45deg); }
  50% { transform: translateY(5px) rotate(45deg); }
}
@media (max-width: 767px) {
  .home .tsf-hero-scroll-cue { top: -40px; }
}
@media (prefers-reduced-motion: reduce) {
  .home .tsf-hero-scroll-cue i::after { animation: none; }
}

/* About: a paced, image-led story inspired by editorial travel journals. */
.tsf-about-aman { background:#f6f0e8; color:#201c19; overflow:hidden; padding:clamp(26px,3vw,52px) 0 0; }.tsf-about-aman figure { margin:0; }.tsf-about-aman img { display:block; height:100%; object-fit:cover; width:100%; }.tsf-about-aman h1,.tsf-about-aman h2,.tsf-about-aman h3 { font-family:var(--font-display,Georgia,serif); font-weight:500; letter-spacing:-.045em; }.tsf-about-aman h2 { font-size:clamp(43px,4.4vw,73px); line-height:.92; margin:0; }.tsf-about-aman h2 em,.tsf-about-aman h3 em { color:var(--red,#c6192e); }.tsf-about-aman__hero h1 { font-size:clamp(42px,4vw,64px); margin:clamp(30px,5vw,78px) auto clamp(48px,6vw,94px); text-align:center; }.tsf-about-aman__hero figure { height:min(48vw,760px); margin:0 2.65vw; min-height:390px; overflow:hidden; }.tsf-about-aman__copy { font-family:var(--font-display,Georgia,serif); font-size:clamp(19px,1.55vw,26px); line-height:1.42; }.tsf-about-aman__copy p { margin:0 0 22px; }.tsf-about-aman__copy--center { margin:0 auto; max-width:800px; text-align:center; }.tsf-about-aman__opening { padding:clamp(100px,14vw,230px) 28px; }.tsf-about-aman__mosaic { display:grid; gap:clamp(38px,7vw,130px); grid-template-columns:minmax(190px,.7fr) minmax(260px,.85fr); margin:0 auto; max-width:1640px; padding:0 8vw clamp(100px,14vw,220px); position:relative; }.tsf-about-aman__mosaic-small { height:clamp(275px,31vw,505px); margin-top:clamp(80px,12vw,200px) !important; }.tsf-about-aman__copy--mosaic { align-self:end; max-width:460px; padding-bottom:clamp(30px,6vw,100px); }.tsf-about-aman__mosaic-large { grid-column:2; height:clamp(340px,43vw,700px); }.tsf-about-aman__arrow { fill:none; pointer-events:none; position:absolute; stroke:var(--red,#c6192e); stroke-linecap:round; stroke-width:1.8; }.tsf-about-aman__arrow path:first-child { animation:tsf-about-draw 3.6s ease-in-out infinite; stroke-dasharray:220; stroke-dashoffset:220; }.tsf-about-aman__arrow--mosaic { height:135px; left:32%; top:34%; width:200px; }.tsf-about-aman__monica { align-items:center; display:grid; gap:clamp(60px,13vw,230px); grid-template-columns:minmax(280px,.93fr) minmax(280px,.75fr); margin:0 auto; max-width:1820px; padding:0 2.65vw clamp(120px,15vw,245px); }.tsf-about-aman__monica figure { height:clamp(480px,56vw,895px); }.tsf-about-aman__copy--monica { max-width:520px; }.tsf-about-aman__eyebrow { color:var(--red,#c6192e); font-family:var(--font-ui,Arial,sans-serif); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }.tsf-about-aman__copy--monica h2 { font-size:clamp(44px,4.15vw,70px); margin:0 0 18px; }.tsf-about-aman__copy--monica h3 { font-size:clamp(25px,2.4vw,38px); line-height:1.05; margin:0 0 42px; }.tsf-about-aman__chapter { display:grid; gap:clamp(45px,10vw,185px); grid-template-columns:minmax(260px,.85fr) minmax(280px,.7fr); margin:0 auto; max-width:1540px; padding:0 8vw clamp(120px,15vw,235px); position:relative; }.tsf-about-aman__chapter figure { height:clamp(350px,42vw,650px); }.tsf-about-aman__chapter .tsf-about-aman__copy { align-self:end; max-width:500px; padding-bottom:8%; }.tsf-about-aman__chapter h2,.tsf-about-aman__future h2 { margin:21px 0 28px; }.tsf-about-aman__arrow--chapter { bottom:14%; left:43%; transform:rotate(-8deg); width:180px; }.tsf-about-aman__future { align-items:end; display:grid; gap:clamp(60px,12vw,210px); grid-template-columns:minmax(280px,.72fr) minmax(320px,1fr); margin:0 auto; max-width:1780px; padding:0 2.65vw clamp(120px,15vw,245px); }.tsf-about-aman__future .tsf-about-aman__copy { margin:0 auto 16%; max-width:480px; }.tsf-about-aman__future figure { height:clamp(390px,50vw,780px); }.tsf-about-aman__services { padding:0 0 clamp(92px,11vw,180px); }.tsf-about-aman__services header { margin:0 auto clamp(44px,6vw,90px); max-width:730px; padding:0 28px; text-align:center; }.tsf-about-aman__services header .tsf-about-aman__eyebrow { margin-bottom:21px; }.tsf-about-aman__services-viewport { overflow-x:auto; scrollbar-width:none; }.tsf-about-aman__services-viewport::-webkit-scrollbar { display:none; }.tsf-about-aman__services-track { display:flex; gap:clamp(16px,2.8vw,44px); padding:0 2.65vw; width:max-content; }.tsf-about-aman__services-track a { color:inherit; flex:0 0 min(38vw,590px); text-decoration:none; }.tsf-about-aman__services-track img { aspect-ratio:1.08; transition:transform .6s ease; }.tsf-about-aman__services-track a:hover img,.tsf-about-aman__services-track a:focus-visible img { transform:scale(1.025); }.tsf-about-aman__services-track span { display:block; padding:22px 4px 4px; }.tsf-about-aman__services-track strong { display:block; font-family:var(--font-display,Georgia,serif); font-size:clamp(27px,2.5vw,42px); font-weight:500; letter-spacing:-.04em; line-height:1; }.tsf-about-aman__services-track small { display:block; font-family:var(--font-ui,Arial,sans-serif); font-size:12px; margin-top:10px; }.tsf-about-aman__services-dots { align-items:center; display:flex; gap:8px; justify-content:center; margin-top:48px; }.tsf-about-aman__services-dots button { background:rgba(32,28,25,.18); border:0; border-radius:50%; cursor:pointer; height:7px; padding:0; width:7px; }.tsf-about-aman__services-dots button[aria-current="true"] { background:var(--red,#c6192e); transform:scale(1.4); }.tsf-about-aman__services-dots button:focus-visible { outline:2px solid var(--red,#c6192e); outline-offset:4px; }@keyframes tsf-about-draw { 0%,25% { stroke-dashoffset:220; } 70%,100% { stroke-dashoffset:0; } }
@media (max-width:760px) { .tsf-about-aman { padding-top:15px; }.tsf-about-aman__hero h1 { margin:35px auto 42px; }.tsf-about-aman__hero figure { height:58vw; margin:0 14px; min-height:270px; }.tsf-about-aman__opening { padding:84px 28px; }.tsf-about-aman__mosaic,.tsf-about-aman__monica,.tsf-about-aman__chapter,.tsf-about-aman__future { display:block; padding-left:14px; padding-right:14px; }.tsf-about-aman__mosaic-small { height:280px; margin:0 23vw 40px 0 !important; }.tsf-about-aman__copy--mosaic { margin:0 9vw 70px 16vw; }.tsf-about-aman__mosaic-large { height:350px; margin-left:12vw !important; }.tsf-about-aman__arrow { display:none; }.tsf-about-aman__monica figure { height:500px; margin-right:12vw; }.tsf-about-aman__copy--monica { margin:48px 10vw 0 8vw; }.tsf-about-aman__chapter figure { height:330px; margin-right:8vw; }.tsf-about-aman__chapter .tsf-about-aman__copy { margin:43px 8vw 0 11vw; }.tsf-about-aman__future .tsf-about-aman__copy { margin:0 10vw 54px 7vw; }.tsf-about-aman__future figure { height:350px; margin-left:10vw; }.tsf-about-aman__services-track { padding:0 14px; }.tsf-about-aman__services-track a { flex-basis:78vw; }.tsf-about-aman__services-dots { margin-top:34px; } }
@media (prefers-reduced-motion:reduce) { .tsf-about-aman__arrow path:first-child { animation:none; stroke-dashoffset:0; }.tsf-about-aman__services-track img { transition:none; } }

/* The services rail behaves like a physical strip on desktop: visitors can
   grab and drag it without turning a drag into an accidental card click. */
.tsf-about-aman__services-viewport {
  cursor: grab;
  overscroll-behavior-inline: contain;
  -webkit-user-select: none;
  user-select: none;
}
.tsf-about-aman__services-viewport.is-dragging { cursor: grabbing; }
.tsf-about-aman__services-viewport.is-dragging,
.tsf-about-aman__services-viewport.is-dragging * { -webkit-user-select: none; user-select: none; }
.tsf-about-aman__services-track a { -webkit-user-drag: none; }
.tsf-about-aman__services-track a:focus:not(:focus-visible),
.tsf-about-aman__services-viewport.is-dragging a { outline: 0 !important; }
@media (hover: none) {
  .tsf-about-aman__services-viewport { cursor: auto; }
}

/* A personal, quiet closing line after the service rail. */
.tsf-about-aman__farewell {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: clamp(310px, 31vw, 510px);
  padding: clamp(66px, 8vw, 130px) 28px;
  text-align: center;
}
.tsf-about-aman__farewell p {
  color: var(--red, #c6192e);
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(32px, 4vw, 62px);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -.075em;
  line-height: .91;
  margin: 0;
  max-width: none;
  white-space: nowrap;
  transform: rotate(-1.2deg);
}
.tsf-about-aman__farewell-arrow {
  height: clamp(76px, 10vw, 144px);
  pointer-events: none;
  position: absolute;
  top: 17%;
  width: clamp(112px, 14vw, 182px);
}
.tsf-about-aman__farewell-arrow svg { fill: none; height: 100%; overflow: visible; stroke: var(--red, #c6192e); stroke-linecap: round; stroke-width: 2.1; width: 100%; }
.tsf-about-aman__farewell-arrow--left { left: max(2.5vw, calc(50% - 520px)); }
.tsf-about-aman__farewell-arrow--right { right: max(2.5vw, calc(50% - 520px)); transform: scaleX(-1); }
.tsf-about-aman__farewell:hover .tsf-about-aman__farewell-arrow--left { animation: tsf-about-farewell-left 1.9s ease-in-out infinite; }
.tsf-about-aman__farewell:hover .tsf-about-aman__farewell-arrow--right { animation: tsf-about-farewell-right 1.9s ease-in-out infinite; }
@keyframes tsf-about-farewell-left { 0%,100% { transform: translate(0,0); } 50% { transform: translate(8px,5px); } }
@keyframes tsf-about-farewell-right { 0%,100% { transform: scaleX(-1) translate(0,0); } 50% { transform: scaleX(-1) translate(8px,5px); } }
@media (max-width: 760px) {
  .tsf-about-aman__farewell { min-height: 285px; padding: 65px 25px; }
  .tsf-about-aman__farewell p { font-size: clamp(32px, 10vw, 46px); line-height: .94; white-space: normal; }
  .tsf-about-aman__farewell-arrow { height: 58px; top: 10%; width: 82px; }
  .tsf-about-aman__farewell-arrow--left { left: 5%; }
  .tsf-about-aman__farewell-arrow--right { right: 5%; }
}
@media (prefers-reduced-motion: reduce) { .tsf-about-aman__farewell:hover .tsf-about-aman__farewell-arrow { animation: none; } }

/* The story is read vertically. These living red strokes lead the eye from
   one chapter to the next, always resolving in a downward arrow. */
.tsf-about-aman__opening,
.tsf-about-aman__monica,
.tsf-about-aman__future { position: relative; }
.tsf-about-aman__arrow {
  height: clamp(112px, 10vw, 170px);
  width: clamp(84px, 8vw, 132px);
  z-index: 2;
}
.tsf-about-aman__arrow--opening { bottom: clamp(8px, 2.4vw, 44px); right: 15%; }
.tsf-about-aman__arrow--mosaic { left: 56%; top: auto; bottom: clamp(32px, 4.5vw, 82px); }
.tsf-about-aman__arrow--monica { bottom: clamp(30px, 5vw, 82px); right: 16%; }
.tsf-about-aman__arrow--chapter { bottom: clamp(36px, 5vw, 90px); left: 48%; transform: rotate(10deg); }
.tsf-about-aman__arrow--future { bottom: clamp(22px, 4.5vw, 72px); left: 17%; }
@media (max-width: 760px) {
  .tsf-about-aman__arrow { display: block; height: 86px; width: 67px; }
  .tsf-about-aman__arrow--opening { bottom: 22px; right: 15%; }
  .tsf-about-aman__arrow--mosaic { bottom: 26px; left: 58%; }
  .tsf-about-aman__arrow--monica { bottom: 23px; right: 15%; }
  .tsf-about-aman__arrow--chapter { bottom: 25px; left: 52%; }
.tsf-about-aman__arrow--future { bottom: 16px; left: 14%; }
}

/* Countdown heading: explain the date before asking the visitor to read it. */
.tsf-countdown-place {
  color: var(--red, #c6192e);
  font-family: var(--font-ui, Arial, sans-serif);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.4;
  margin: 17px 0 0;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .tsf-countdown-place { margin-top: 14px; }
}

/* Optional editorial layers for the About story. They remain restrained: a
   navigation trace, short personal notes and movement only as chapters enter. */
.tsf-about-aman__progress {
  display: flex;
  flex-direction: column;
  gap: 13px;
  left: 20px;
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
}
.tsf-about-aman__progress::before {
  background: rgba(32,28,25,.2);
  content: '';
  height: calc(100% - 26px);
  left: 5px;
  position: absolute;
  top: 13px;
  width: 1px;
}
.tsf-about-aman__progress a {
  align-items: center;
  color: rgba(32,28,25,.48);
  display: flex;
  font-family: var(--font-ui, Arial, sans-serif);
  font-size: 9px;
  font-weight: 700;
  gap: 9px;
  letter-spacing: .08em;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
}
.tsf-about-aman__progress a b {
  background: #f6f0e8;
  border: 1px solid rgba(32,28,25,.28);
  border-radius: 50%;
  display: grid;
  font-size: 7px;
  height: 11px;
  place-items: center;
  position: relative;
  width: 11px;
  z-index: 1;
}
.tsf-about-aman__progress a span { max-width: 0; opacity: 0; overflow: hidden; transition: max-width .3s ease, opacity .25s ease; white-space: nowrap; }
.tsf-about-aman__progress a:hover span,
.tsf-about-aman__progress a:focus-visible span,
.tsf-about-aman__progress a[aria-current='true'] span { max-width: 120px; opacity: 1; }
.tsf-about-aman__progress a[aria-current='true'] { color: var(--red, #c6192e); }
.tsf-about-aman__progress a[aria-current='true'] b { background: var(--red, #c6192e); border-color: var(--red, #c6192e); color: #fff; }
.tsf-about-aman__progress a:focus-visible { outline: 2px solid var(--red, #c6192e); outline-offset: 4px; }
.tsf-about-aman__note {
  color: var(--red, #c6192e);
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(24px, 2.15vw, 37px);
  font-style: italic;
  letter-spacing: -.055em;
  line-height: 1;
  margin-top: clamp(28px, 4vw, 48px) !important;
  max-width: 13ch;
  transform: rotate(-3deg);
}
.tsf-about-aman__timeline {
  align-items: center;
  display: grid;
  gap: 18px;
  grid-template-columns: auto minmax(130px, 270px) auto;
  margin: 0 auto clamp(100px, 13vw, 205px);
  max-width: 620px;
  padding: 0 28px;
}
.tsf-about-aman__timeline > span {
  color: var(--red, #c6192e);
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(27px, 3vw, 42px);
  line-height: 1;
}
.tsf-about-aman__timeline > i { background: rgba(32,28,25,.22); height: 1px; position: relative; }
.tsf-about-aman__timeline > i::after { border-right: 1px solid var(--red, #c6192e); border-top: 1px solid var(--red, #c6192e); content: ''; height: 7px; position: absolute; right: 0; top: -4px; transform: rotate(45deg); width: 7px; }
.tsf-about-aman__timeline p { color: #665e57; font-family: var(--font-ui, Arial, sans-serif); font-size: 11px; grid-column: 1 / -1; line-height: 1.5; margin: 0; text-align: center; }
html.tsf-about-enhanced [data-about-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .95s cubic-bezier(.22,.61,.2,1); }
html.tsf-about-enhanced [data-about-reveal].is-visible { opacity: 1; transform: translateY(0); }
html.tsf-about-enhanced .tsf-about-aman__mosaic [data-about-reveal]:last-of-type,
html.tsf-about-enhanced .tsf-about-aman__future [data-about-reveal]:last-of-type { transition-delay: .13s; }
.tsf-about-aman [data-about-image] { overflow: hidden; position: relative; }
@media (hover: hover) and (pointer: fine) {
  .tsf-about-aman [data-about-image]:hover img { transform: scale(1.025); }
  .tsf-about-aman [data-about-image] img { transition: transform .65s cubic-bezier(.22,.61,.2,1); }
}
@media (max-width: 1024px) { .tsf-about-aman__progress { display: none; } }
@media (max-width: 760px) {
  .tsf-about-aman__note { font-size: 28px; margin-top: 27px !important; }
  .tsf-about-aman__timeline { gap: 13px; grid-template-columns: auto minmax(75px, 1fr) auto; margin-bottom: 84px; padding: 0 28px; }
}
@media (prefers-reduced-motion: reduce) {
  html.tsf-about-enhanced [data-about-reveal],
  .tsf-about-aman__progress a span,
  .tsf-about-aman [data-about-image] img { transition: none; }
}

/* First chapter: the title sits in a deliberately balanced interval, rather
   than leaving a large empty field before the opening photograph. */
.tsf-about-aman { padding-top: 0; }
.tsf-about-aman__hero { display: flex; flex-direction: column; }
.tsf-about-aman__hero h1 { margin: clamp(28px, 2.3vw, 42px) auto; }
@media (max-width: 760px) {
  .tsf-about-aman__hero h1 { margin: 27px auto 31px; }
}

/* A new, editorial entrance for the experience builder. The original form
   remains intact below this chapter while the visitor learns how to begin. */
.tsf-experience-bespoke {
  background: #f7f1e7;
  isolation: isolate;
  min-height: max(860px, 100vh);
  overflow: hidden;
  position: relative;
}
.tsf-experience-bespoke__inner { min-height: max(860px, 100vh); padding-bottom: clamp(70px, 8vw, 130px); padding-top: clamp(140px, 15vw, 220px); position: relative; z-index: 2; }
.tsf-experience-bespoke .tsf-label { color: var(--red, #c6192e); margin: 0 0 clamp(38px, 5vw, 76px); }
.tsf-experience-bespoke h1 { font-family: var(--font-display, Georgia, serif); font-size: clamp(59px, 8.1vw, 132px); font-weight: 500; letter-spacing: -.075em; line-height: .8; margin: 0; max-width: 10ch; position: relative; }
.tsf-experience-bespoke h1 em { color: var(--red, #c6192e); font-style: italic; }
.tsf-experience-bespoke__intro { font-family: var(--font-ui, Arial, sans-serif); font-size: clamp(16px, 1.55vw, 22px); line-height: 1.43; margin: clamp(45px, 6vw, 92px) 0 0 auto; max-width: 690px; text-align: center; }
.tsf-experience-bespoke__intro p { margin: 0 auto 29px; max-width: 650px; }
.tsf-experience-bespoke__intro p:last-child { font-family: var(--font-display, Georgia, serif); font-size: clamp(24px, 2.65vw, 42px); letter-spacing: -.055em; line-height: 1; max-width: 490px; }
.tsf-experience-bespoke__possibilities { display: grid; gap: clamp(20px, 3vw, 48px); grid-template-columns: repeat(3, minmax(0, 1fr)); margin: clamp(58px, 7vw, 112px) 0 0 auto; max-width: 1050px; }
.tsf-experience-bespoke__possibilities article { border-top: 1px solid rgba(32,28,25,.28); padding-top: 17px; }
.tsf-experience-bespoke__possibilities span { color: var(--red, #c6192e); display: block; font-family: var(--font-ui, Arial, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; margin-bottom: 28px; }
.tsf-experience-bespoke__possibilities h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(24px, 2.25vw, 36px); font-weight: 500; letter-spacing: -.045em; line-height: .95; margin: 0 0 14px; max-width: 11ch; }
.tsf-experience-bespoke__possibilities p { color: #5e5650; font-family: var(--font-ui, Arial, sans-serif); font-size: 13px; line-height: 1.6; margin: 0; max-width: 250px; }
.tsf-experience-bespoke__start { align-items: center; border-bottom: 1px solid var(--red, #c6192e); color: #211d1a; display: inline-flex; font-family: var(--font-ui, Arial, sans-serif); font-size: 10px; font-weight: 700; gap: 19px; letter-spacing: .1em; margin: clamp(45px, 6vw, 84px) 0 0; padding-bottom: 10px; text-decoration: none; text-transform: uppercase; }
.tsf-experience-bespoke__start span { color: var(--red, #c6192e); font-size: 20px; line-height: .6; transition: transform .25s ease; }
.tsf-experience-bespoke__start:hover, .tsf-experience-bespoke__start:focus-visible { color: var(--red, #c6192e); text-decoration: none; }.tsf-experience-bespoke__start:hover span, .tsf-experience-bespoke__start:focus-visible span { transform: translateY(5px); }
.tsf-experience-bespoke__line { height: 100%; inset: 0; pointer-events: none; position: absolute; width: 100%; z-index: 1; }
.tsf-experience-bespoke__line path { fill: none; stroke: rgba(198,25,46,.42); stroke-linecap: round; stroke-width: 2.2; }
.tsf-experience-bespoke__arrowhead { opacity: 0; transition: opacity .3s ease; }
.tsf-experience-legacy { scroll-margin-top: 90px; }
.tsf-experience-hero__legacy-title { font-family: var(--font-display, Georgia, serif); font-size: clamp(68px,7.3vw,120px); font-weight: 500; letter-spacing: -.066em; line-height: .81; margin: 0; max-width: 660px; }.tsf-experience-hero__legacy-title em { color: #fff; font-style: italic; position: relative; }.tsf-experience-hero__legacy-title em::after { background: var(--red); bottom: -.07em; content: ''; height: .1em; left: .05em; position: absolute; right: -.03em; z-index: -1; }
@media (max-width: 960px) { .tsf-experience-bespoke__intro { margin-left: 0; text-align: left; }.tsf-experience-bespoke__intro p { margin-left: 0; }.tsf-experience-bespoke__possibilities { margin-left: 0; max-width: none; }.tsf-experience-bespoke__line { opacity: .72; } }
@media (max-width: 680px) { .tsf-experience-bespoke { min-height: 890px; }.tsf-experience-bespoke__inner { min-height: 890px; padding-bottom: 58px; padding-top: 116px; }.tsf-experience-bespoke h1 { font-size: clamp(54px, 15vw, 78px); line-height: .84; }.tsf-experience-bespoke__intro { font-size: 16px; margin-top: 45px; }.tsf-experience-bespoke__intro p:last-child { font-size: 29px; }.tsf-experience-bespoke__possibilities { gap: 0; grid-template-columns: 1fr; margin-top: 47px; }.tsf-experience-bespoke__possibilities article { display: grid; gap: 12px; grid-template-columns: 28px 1fr; padding: 15px 0; }.tsf-experience-bespoke__possibilities span { margin: 4px 0 0; }.tsf-experience-bespoke__possibilities h2 { font-size: 27px; grid-column: 2; margin: 0; max-width: none; }.tsf-experience-bespoke__possibilities p { font-size: 12px; grid-column: 2; max-width: 310px; }.tsf-experience-bespoke__line { opacity: .42; transform: scale(1.28); transform-origin: 50% 0; }.tsf-experience-bespoke__start { margin-top: 34px; }.tsf-experience-hero__legacy-title { font-size: clamp(63px,18vw,84px); } }
@media (prefers-reduced-motion: reduce) { .tsf-experience-bespoke__start span, .tsf-experience-bespoke__arrowhead { transition: none; } }

/* About: a quiet photographic story with varied editorial compositions. */
.tsf-about-editorial { background: #f6eee4; }
.tsf-about-editorial-hero { background: #161411; overflow: hidden; }
.tsf-about-editorial-hero figure { height: min(78vw, 920px); margin: 0; min-height: 560px; }
.tsf-about-editorial-hero img { display: block; height: 100%; object-fit: cover; object-position: center 54%; width: 100%; }
.tsf-about-editorial h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(46px, 5.25vw, 88px); font-weight: 500; letter-spacing: -.065em; line-height: .88; margin: 0; }
.tsf-about-editorial h2 em { color: var(--red, #c6192e); font-weight: 500; }
.tsf-about-editorial .tsf-label { color: var(--red, #c6192e); font-family: var(--font-ui, Arial, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .14em; margin: 0; text-transform: uppercase; }
.tsf-about-editorial-opening { padding: clamp(88px, 13vw, 215px) 0 clamp(92px, 13vw, 210px); }
.tsf-about-editorial-opening__grid { align-items: start; display: grid; gap: clamp(38px, 9vw, 155px); grid-template-columns: minmax(160px, .45fr) minmax(0, 1.55fr); }
.tsf-about-editorial-opening__grid > div { max-width: 910px; }
.tsf-about-editorial-opening__grid > div > p { font-family: var(--font-ui, Arial, sans-serif); font-size: clamp(17px, 1.55vw, 22px); line-height: 1.55; margin: 36px 0 0; max-width: 570px; }
.tsf-about-editorial-story { background: #fffaf3; padding: clamp(75px, 10vw, 160px) 0; }
.tsf-about-editorial-story__grid { align-items: start; display: grid; gap: clamp(38px, 9vw, 156px); grid-template-columns: minmax(280px, .76fr) minmax(0, 1.24fr); }
.tsf-about-editorial-story__portrait { margin: clamp(30px, 8vw, 124px) 0 0; max-width: 490px; position: relative; }
.tsf-about-editorial-story__portrait::after { border: 1px solid rgba(198,25,46,.65); content: ''; inset: -15px 15px 15px -15px; pointer-events: none; position: absolute; }
.tsf-about-editorial-story__portrait img { aspect-ratio: .78; display: block; filter: saturate(.83); object-fit: cover; width: 100%; }
.tsf-about-editorial-story__copy { font-family: var(--font-ui, Arial, sans-serif); font-size: 16px; line-height: 1.75; max-width: 690px; }
.tsf-about-editorial-story__copy .tsf-label { margin-bottom: 24px; }
.tsf-about-editorial-story__copy h2 { margin-bottom: 48px; }
.tsf-about-editorial-story__lead { color: #1d1a18; font-family: var(--font-display, Georgia, serif); font-size: clamp(26px, 2.35vw, 38px); letter-spacing: -.04em; line-height: 1.09; margin: 0 0 31px; }
.tsf-about-editorial-note { background: #ca1730; color: #fffaf3; padding: clamp(68px, 8vw, 126px) 0; }
.tsf-about-editorial-note__grid { align-items: end; display: grid; gap: clamp(38px, 8vw, 148px); grid-template-columns: minmax(0, 1.05fr) minmax(280px, .7fr); }
.tsf-about-editorial-note .tsf-label { color: #ffd5cf; margin-bottom: 23px; }.tsf-about-editorial-note h2 { max-width: 10ch; }.tsf-about-editorial-note h2 em { color: #fffaf3; }.tsf-about-editorial-note__grid > p { font-family: var(--font-ui, Arial, sans-serif); font-size: 17px; line-height: 1.7; margin: 0; max-width: 560px; }
.tsf-about-editorial-timeline { padding: clamp(84px, 11vw, 170px) 0; }.tsf-about-editorial-timeline header { margin-left: auto; max-width: 820px; }.tsf-about-editorial-timeline header .tsf-label { margin-bottom: 23px; }.tsf-about-editorial-timeline ol { border-top: 1px solid rgba(22,21,20,.22); list-style: none; margin: clamp(60px, 8vw, 118px) 0 0; padding: 0; }.tsf-about-editorial-timeline li { align-items: start; border-bottom: 1px solid rgba(22,21,20,.22); display: grid; gap: clamp(28px, 8vw, 135px); grid-template-columns: minmax(100px, .42fr) minmax(0, 1.58fr); padding: 28px 0 34px; }.tsf-about-editorial-timeline li > span { color: var(--red, #c6192e); font-family: var(--font-ui, Arial, sans-serif); font-size: 12px; font-weight: 700; letter-spacing: .1em; }.tsf-about-editorial-timeline h3 { font-family: var(--font-display, Georgia, serif); font-size: clamp(29px, 2.75vw, 45px); font-weight: 500; letter-spacing: -.05em; line-height: .95; margin: 0 0 13px; }.tsf-about-editorial-timeline p { font-family: var(--font-ui, Arial, sans-serif); font-size: 15px; line-height: 1.65; margin: 0; max-width: 620px; }
.tsf-about-editorial-purpose { background: #1b2925; color: #fffaf3; padding: clamp(80px, 10vw, 160px) 0; }.tsf-about-editorial-purpose__grid { align-items: center; display: grid; gap: clamp(45px, 11vw, 180px); grid-template-columns: minmax(0, 1fr) minmax(280px, .75fr); }.tsf-about-editorial-purpose__copy { font-family: var(--font-ui, Arial, sans-serif); font-size: 16px; line-height: 1.72; max-width: 650px; }.tsf-about-editorial-purpose__copy .tsf-label { color: #eeb8b3; margin-bottom: 23px; }.tsf-about-editorial-purpose__copy h2 { margin-bottom: 37px; max-width: 10ch; }.tsf-about-editorial-purpose__copy h2 em { color: #edb9b4; }.tsf-about-editorial-purpose__copy blockquote { border-left: 2px solid var(--red, #c6192e); font-family: var(--font-display, Georgia, serif); font-size: clamp(25px, 2.6vw, 42px); letter-spacing: -.045em; line-height: 1.03; margin: 42px 0 0; max-width: 14ch; padding-left: 22px; }.tsf-about-editorial-purpose__image { margin: clamp(-10px, -3vw, -42px) 0 clamp(-10px, -3vw, -42px) auto; max-width: 510px; position: relative; }.tsf-about-editorial-purpose__image img { aspect-ratio: .72; display: block; object-fit: cover; width: 100%; }.tsf-about-editorial-purpose__image figcaption { background: var(--red, #c6192e); bottom: 0; font-family: var(--font-ui, Arial, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; padding: 14px 17px; position: absolute; right: 0; text-transform: uppercase; }
.tsf-about-editorial-values { background: #e8d9ce; padding: clamp(84px, 10vw, 160px) 0; }.tsf-about-editorial-values header { margin-bottom: clamp(60px, 9vw, 130px); max-width: 760px; }.tsf-about-editorial-values header .tsf-label { margin-bottom: 21px; }.tsf-about-editorial-values__grid { display: grid; grid-template-columns: repeat(3, 1fr); }.tsf-about-editorial-values article { border-left: 1px solid rgba(22,21,20,.22); min-height: 295px; padding: 0 clamp(24px, 3.7vw, 64px); }.tsf-about-editorial-values article:first-child { border: 0; padding-left: 0; }.tsf-about-editorial-values article > span { color: var(--red, #c6192e); font-family: var(--font-ui, Arial, sans-serif); font-size: 11px; font-weight: 700; letter-spacing: .1em; }.tsf-about-editorial-values h3 { font-family: var(--font-display, Georgia, serif); font-size: clamp(28px, 2.55vw, 41px); font-weight: 500; letter-spacing: -.05em; line-height: .98; margin: 43px 0 16px; }.tsf-about-editorial-values p { font-family: var(--font-ui, Arial, sans-serif); font-size: 14px; line-height: 1.68; margin: 0; max-width: 300px; }
.tsf-about-editorial-expansion { background: #fffaf3; padding-bottom: clamp(85px, 10vw, 158px); }.tsf-about-editorial-expansion > figure { height: min(50vw, 700px); margin: 0 0 clamp(70px, 10vw, 155px); overflow: hidden; }.tsf-about-editorial-expansion > figure img { display: block; height: 100%; object-fit: cover; width: 100%; }.tsf-about-editorial-expansion__grid { display: grid; gap: clamp(38px, 10vw, 168px); grid-template-columns: minmax(0, .95fr) minmax(280px, .85fr); }.tsf-about-editorial-expansion__grid .tsf-label { margin-bottom: 21px; }.tsf-about-editorial-expansion__grid > p { font-family: var(--font-ui, Arial, sans-serif); font-size: clamp(17px, 1.55vw, 22px); line-height: 1.62; margin: 9px 0 0; max-width: 620px; }
.tsf-about-editorial-contact { background: var(--red, #c6192e); color: #fffaf3; padding: clamp(84px, 10vw, 160px) 0; }.tsf-about-editorial-contact__grid { display: grid; gap: clamp(42px, 10vw, 165px); grid-template-columns: minmax(0, .95fr) minmax(280px, .85fr); }.tsf-about-editorial-contact .tsf-label { color: #ffd7d1; margin-bottom: 22px; }.tsf-about-editorial-contact h2 em { color: #fffaf3; }.tsf-about-editorial-contact__grid > div:last-child { font-family: var(--font-ui, Arial, sans-serif); font-size: 16px; line-height: 1.7; max-width: 570px; }.tsf-about-editorial-contact__signature { font-family: var(--font-display, Georgia, serif); font-size: 27px; letter-spacing: -.035em; line-height: 1.02; margin: 31px 0 !important; }.tsf-about-editorial-contact__signature span { font-family: var(--font-ui, Arial, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.tsf-about-editorial-contact .tsf-button { background: #fffaf3; color: #181513; }.tsf-about-editorial-contact .tsf-button:hover, .tsf-about-editorial-contact .tsf-button:focus-visible { background: #181513; color: #fff; }
@media (max-width: 767px) { .tsf-about-editorial-hero figure { height: 72vh; min-height: 460px; }.tsf-about-editorial-hero img { object-position: 54% center; }.tsf-about-editorial-opening__grid, .tsf-about-editorial-story__grid, .tsf-about-editorial-note__grid, .tsf-about-editorial-purpose__grid, .tsf-about-editorial-expansion__grid, .tsf-about-editorial-contact__grid { display: block; }.tsf-about-editorial-opening__grid > div, .tsf-about-editorial-note__grid > p, .tsf-about-editorial-expansion__grid > p, .tsf-about-editorial-contact__grid > div:last-child { margin-top: 35px; }.tsf-about-editorial h2 { font-size: clamp(44px, 13vw, 62px); }.tsf-about-editorial-story__portrait { margin: 0 0 55px; max-width: 82%; }.tsf-about-editorial-story__copy h2 { margin-bottom: 35px; }.tsf-about-editorial-note h2 { max-width: 12ch; }.tsf-about-editorial-timeline header { margin-left: 0; }.tsf-about-editorial-timeline li { gap: 18px; grid-template-columns: 68px 1fr; }.tsf-about-editorial-purpose__image { margin: 54px auto 0 0; max-width: 80%; }.tsf-about-editorial-values__grid { display: block; }.tsf-about-editorial-values article, .tsf-about-editorial-values article:first-child { border-left: 0; border-top: 1px solid rgba(22,21,20,.22); min-height: 0; padding: 29px 0; }.tsf-about-editorial-values article:first-child { border-top: 0; padding-top: 0; }.tsf-about-editorial-values h3 { margin-top: 23px; }.tsf-about-editorial-expansion > figure { height: 62vw; min-height: 300px; }.tsf-about-editorial-purpose__copy blockquote { margin-top: 35px; } }

/* Full testimonial reader: keep long reviews out of the carousel. */
body.tsf-testimonial-modal-open { overflow: hidden; }
.tsf-testimonial-modal { align-items: center; background: rgba(17, 13, 11, .72); display: flex; inset: 0; justify-content: center; padding: clamp(18px, 5vw, 72px); position: fixed; z-index: 10050; }
.tsf-testimonial-modal[hidden] { display: none; }
.tsf-testimonial-modal__dialog { background: #fffaf3; box-shadow: 24px 28px 0 rgba(198, 25, 46, .22); box-sizing: border-box; max-height: min(790px, calc(100dvh - 36px)); max-width: 820px; overflow: hidden; padding: clamp(32px, 5vw, 64px); position: relative; width: 100%; }
.tsf-testimonial-modal__close { align-items: center; background: var(--red, #c6192e); border: 0; border-radius: 50%; color: #fff; cursor: pointer; display: inline-flex; font-family: Arial, sans-serif; font-size: 28px; height: 42px; justify-content: center; line-height: 1; padding: 0 0 4px; position: absolute; right: 17px; top: 17px; transition: background .2s ease, color .2s ease, transform .2s ease; width: 42px; z-index: 2; }
.tsf-testimonial-modal__close:hover, .tsf-testimonial-modal__close:focus-visible { background: var(--ink, #171513); color: #fff; outline: 0; transform: rotate(90deg); }
.tsf-testimonial-modal__content { box-sizing: border-box; max-height: calc(min(790px, 100dvh - 36px) - clamp(64px, 10vw, 128px)); overflow-y: auto; overscroll-behavior: contain; padding-right: 16px; scrollbar-color: var(--red, #c6192e) rgba(18,18,18,.1); }
.tsf-testimonial-modal__content::-webkit-scrollbar { width: 7px; }.tsf-testimonial-modal__content::-webkit-scrollbar-track { background: rgba(18,18,18,.08); }.tsf-testimonial-modal__content::-webkit-scrollbar-thumb { background: var(--red, #c6192e); }
.tsf-testimonial-modal .tsf-testimonial-profile { align-items: center; border-bottom: 1px solid rgba(22,21,20,.18); display: grid; gap: 13px; grid-template-columns: 45px minmax(0, 1fr) auto; padding: 0 50px 22px 0; }
.tsf-testimonial-modal .tsf-testimonial-profile__avatar { border: 2px solid var(--ink, #171513); border-radius: 50%; height: 42px; position: relative; width: 42px; }.tsf-testimonial-modal .tsf-testimonial-profile__avatar::before { background: var(--ink, #171513); border-radius: 50%; content: ''; height: 12px; left: 50%; position: absolute; top: 7px; transform: translateX(-50%); width: 12px; }.tsf-testimonial-modal .tsf-testimonial-profile__avatar::after { background: var(--ink, #171513); border-radius: 13px 13px 7px 7px; bottom: 5px; content: ''; height: 14px; left: 7px; position: absolute; right: 7px; }
.tsf-testimonial-modal .tsf-testimonial-profile__identity > strong, .tsf-testimonial-modal .tsf-testimonial-profile__identity > span { display: block; }.tsf-testimonial-modal .tsf-testimonial-profile__identity > strong { font-family: var(--font-ui, Arial, sans-serif); font-size: 14px; font-weight: 700; line-height: 1.25; }.tsf-testimonial-modal .tsf-testimonial-profile__identity > span { color: #665d55; font-family: var(--font-ui, Arial, sans-serif); font-size: 11px; line-height: 1.4; margin-top: 4px; }.tsf-testimonial-modal .tsf-testimonial-profile__identity b { font-size: 14px; font-weight: 400; margin-right: 6px; }.tsf-testimonial-modal .tsf-testimonial-rating { color: #ad7a1f; font-family: Arial, sans-serif; font-size: 14px; letter-spacing: 1px; white-space: nowrap; }
.tsf-testimonial-modal__reading { color: var(--ink, #171513); font-family: var(--font-display, Georgia, serif); font-size: clamp(27px, 3vw, 42px); letter-spacing: -.045em; line-height: 1.1; padding: clamp(31px, 4vw, 52px) 2px 10px; }.tsf-testimonial-modal__reading br { content: ''; display: block; margin: 1.15em 0; }
@media (max-width: 580px) { .tsf-testimonial-modal { align-items: flex-end; padding: 10px; }.tsf-testimonial-modal__dialog { max-height: calc(100dvh - 20px); padding: 29px 24px; }.tsf-testimonial-modal__content { max-height: calc(100dvh - 78px); padding-right: 10px; }.tsf-testimonial-modal .tsf-testimonial-profile { gap: 10px; grid-template-columns: 40px minmax(0, 1fr); padding-right: 43px; }.tsf-testimonial-modal .tsf-testimonial-rating { grid-column: 2; justify-self: start; }.tsf-testimonial-modal__close { height: 37px; right: 14px; top: 14px; width: 37px; }.tsf-testimonial-modal__reading { font-size: clamp(25px, 8.4vw, 34px); padding-top: 30px; } }

/* Utility links use an editorial focus treatment, never the browser's black click box. */
.tsf-header .tsf-topbar a,
.tsf-header .tsf-topbar summary,
.tsf-header .tsf-topbar a:focus,
.tsf-header .tsf-topbar summary:focus,
.tsf-header .tsf-topbar a:active,
.tsf-header .tsf-topbar summary:active {
  -webkit-tap-highlight-color: transparent;
  outline: 0 !important;
}
.tsf-header .tsf-topbar a:focus-visible,
.tsf-header .tsf-topbar summary:focus-visible {
  box-shadow: inset 0 -1px 0 currentColor;
  outline: 0 !important;
}

/* Contact uses the same full-bleed, form-led landing system as every consultation page. */
.tsf-service-landing--contacto .tsf-balcony-hero {
  --tsf-landing-hero-image: url('../images/hero-gigantes.png');
  background-image: none;
}
/* Contact: two balanced lines leave equal breathing room above and below. */
.tsf-service-landing--contacto .tsf-balcony-hero h1 { font-size: clamp(40px, 3.1vw, 56px); line-height: .88; max-width: none; }
.tsf-service-landing--feria .tsf-balcony-hero {
  --tsf-landing-hero-image: url('../images/hero-encierro.png');
  background-image: none;
}
.tsf-service-landing--feria .tsf-balcony-story h2 { max-width: 12ch; }
.tsf-service-landing--tusanfermin .tsf-balcony-hero {
  --tsf-landing-hero-image: url('../images/hero-chupinazo.png');
  background-image: none;
}
.tsf-service-landing--tusanfermin .tsf-balcony-story h2 { max-width: 12ch; }
.tsf-tusanfermin-interests { border: 0; grid-column: 1 / -1; margin: 0; min-inline-size: 0; padding: 0; }
.tsf-tusanfermin-interests legend { color: #fff; font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 700; letter-spacing: .06em; margin-bottom: 11px; padding: 0; text-transform: uppercase; }
.tsf-tusanfermin-interests > div { display: grid; gap: 8px 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsf-tusanfermin-interests label { align-items: center; color: #fff; cursor: pointer; display: flex; font-family: var(--font-ui, sans-serif); font-size: 12px; gap: 8px; line-height: 1.3; }
.tsf-tusanfermin-interests input { accent-color: #fff; flex: 0 0 auto; }
@media (max-width: 580px) { .tsf-tusanfermin-interests > div { grid-template-columns: 1fr; } }
.tsf-service-landing--contacto .tsf-balcony-story h2 { max-width: 18ch; }
.tsf-interest-card { text-decoration: none; }

/* Experiences and packs: the shared consultation landing, adapted to combine several moments. */
.tsf-service-multistep__progress { display:grid; grid-template-columns:repeat(var(--tsf-service-steps, 3), minmax(0, 1fr)); list-style:none; margin:28px 0 25px; padding:0; }
.tsf-service-multistep__progress li { color:rgba(255,255,255,.66); font-family:var(--font-ui,sans-serif); font-size:8px; font-weight:700; letter-spacing:.07em; min-width:0; padding-top:31px; position:relative; text-align:center; text-transform:uppercase; }
.tsf-service-multistep__progress li:not(:last-child)::after { background:rgba(255,255,255,.36); content:''; height:1px; left:50%; position:absolute; right:-50%; top:12px; }
.tsf-service-multistep__progress li span { align-items:center; background:var(--red); border:1px solid rgba(255,255,255,.7); border-radius:50%; color:#fff; display:flex; height:25px; justify-content:center; left:50%; position:absolute; top:0; transform:translateX(-50%); width:25px; z-index:1; }
.tsf-service-multistep__progress li.is-current, .tsf-service-multistep__progress li.is-complete { color:#fff; }.tsf-service-multistep__progress li.is-current span, .tsf-service-multistep__progress li.is-complete span { background:#fffaf4; border-color:#fffaf4; color:var(--red); }
.tsf-service-multistep__step { border:0; margin:0; min-inline-size:0; padding:0; }.tsf-service-multistep__step[hidden] { display:none !important; }
.tsf-service-multistep__step legend { color:#fff; font-family:var(--font-display,Georgia,serif); font-size:clamp(26px,2.6vw,35px); letter-spacing:-.04em; line-height:.95; padding:0; }.tsf-service-multistep__step legend span { color:rgba(255,255,255,.72); font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.09em; margin-right:9px; vertical-align:middle; }
.tsf-service-multistep__step .tsf-form-message { grid-column:1 / -1; margin:0; }
.tsf-service-multistep__step .tsf-form-grid { margin-top:22px; }.tsf-service-multistep__actions { align-items:center; display:flex; gap:12px; justify-content:space-between; }.tsf-service-multistep__actions [hidden] { display:none !important; }.tsf-service-multistep__actions .tsf-button { margin-left:auto; }
.tsf-service-multistep__next, .tsf-service-multistep__back { background:#fffaf4; border:1px solid #fffaf4; color:var(--ink); cursor:pointer; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.08em; padding:13px 18px; text-transform:uppercase; transition:background .2s ease,border-color .2s ease,color .2s ease; }.tsf-service-multistep__back::before { content:'← '; }.tsf-service-multistep__next:hover, .tsf-service-multistep__next:focus-visible, .tsf-service-multistep__back:hover, .tsf-service-multistep__back:focus-visible { background:var(--ink); border-color:var(--ink); color:#fff; outline:0; }
.tsf-experience-section[hidden] { display:none !important; }.tsf-experience-step-actions { align-items:center; display:flex; justify-content:space-between; margin-top:30px; }.tsf-experience-step-actions [hidden] { display:none !important; }.tsf-experience-step-actions__back { background:transparent; border:0; color:var(--ink); cursor:pointer; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.08em; padding:13px 0; text-transform:uppercase; }.tsf-experience-step-actions__back::before { content:'← '; }
@media (max-width:600px) { .tsf-service-multistep__progress li { font-size:7px; letter-spacing:.03em; }.tsf-service-multistep__actions, .tsf-experience-step-actions { align-items:stretch; flex-direction:column-reverse; }.tsf-service-multistep__actions .tsf-button, .tsf-experience-step-actions .tsf-experience-submit { margin-left:0; width:100%; }.tsf-service-multistep__back, .tsf-experience-step-actions__back { padding:7px; } }
.tsf-service-landing--experiencias .tsf-balcony-hero { background-image: linear-gradient(90deg, rgba(10,7,5,.82) 0%, rgba(15,9,6,.55) 53%, rgba(10,7,5,.3) 100%), url('../images/hero-chupinazo.png'); background-position: center; }
.tsf-service-landing--experiencias .tsf-balcony-hero h1 { max-width: 13ch; }
.tsf-service-landing--experiencias .tsf-balcony-story h2 { max-width: 12ch; }
.tsf-experiences-story-image { margin: 29px 0 32px; position: relative; }
.tsf-experiences-story-image img { display: block; width: 100%; }
.tsf-experiences-story-image span { background: var(--red); bottom: 0; color: #fff; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; padding: 10px 13px; position: absolute; right: 0; text-transform: uppercase; }
.tsf-experiences-paths { border-top: 1px solid rgba(18,18,18,.22); margin-top: 47px; }
.tsf-experiences-paths > .tsf-label { color: var(--red); margin: 0; padding: 19px 0 6px; }
.tsf-experiences-path { align-items: center; border-bottom: 1px solid rgba(18,18,18,.18); color: inherit; display: grid; gap: 17px; grid-template-columns: 92px minmax(0,1fr) 24px; padding: 14px 0; text-decoration: none; }
.tsf-experiences-path img { aspect-ratio: 1.12; height: 76px; object-fit: cover; width: 92px; }
.tsf-experiences-path small, .tsf-experiences-path em { color: #756a61; display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-style: normal; line-height: 1.45; }
.tsf-experiences-path small { color: var(--red); font-weight: 700; letter-spacing: .08em; margin-bottom: 5px; text-transform: uppercase; }
.tsf-experiences-path strong { display: block; font-family: var(--font-display, Georgia, serif); font-size: clamp(24px, 2.1vw, 33px); font-weight: 500; letter-spacing: -.05em; line-height: .95; margin-bottom: 7px; }
.tsf-experiences-path b { color: var(--red); font-size: 21px; font-weight: 400; }.tsf-experiences-path:hover strong, .tsf-experiences-path:focus-visible strong { color: var(--red); }
.tsf-packs-form { min-height: 555px; }.tsf-packs-form .tsf-form-heading em { color: var(--ink, #161311); font-style: italic; }.tsf-packs-progress { display: grid; grid-template-columns: repeat(3,1fr); list-style: none; margin: 29px 0 24px; padding: 0; }.tsf-packs-progress li { color: rgba(255,255,255,.66); font-family: var(--font-ui, sans-serif); font-size: 8px; font-weight: 700; letter-spacing: .08em; padding-top: 29px; position: relative; text-align: center; text-transform: uppercase; }.tsf-packs-progress li:not(:last-child)::after { background: rgba(255,255,255,.36); content: ''; height: 1px; left: 50%; position: absolute; right: -50%; top: 12px; }.tsf-packs-progress span { align-items: center; background: var(--red); border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: #fff; display:flex; height:25px; justify-content:center; left:50%; position:absolute; top:0; transform:translateX(-50%); width:25px; z-index:1; }.tsf-packs-progress .is-current, .tsf-packs-progress .is-complete { color:#fff; }.tsf-packs-progress .is-current span, .tsf-packs-progress .is-complete span { background:#fffaf4; color:var(--red); }
.tsf-packs-step { border: 0; margin: 0; min-inline-size: 0; padding: 0; }.tsf-packs-step legend { color:#fff; font-family: var(--font-display,Georgia,serif); font-size: clamp(26px,2.6vw,35px); letter-spacing: -.04em; line-height: .95; padding: 0; }.tsf-packs-step legend span { color: rgba(255,255,255,.72); font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.09em; margin-right:9px; vertical-align:middle; }.tsf-packs-step > p { color:rgba(255,255,255,.86); font-family:var(--font-ui,sans-serif); font-size:13px; line-height:1.58; margin:14px 0 24px; }.tsf-packs-step .tsf-form-grid { gap:20px 22px; }.tsf-packs-step .tsf-form-grid label em { color:rgba(255,255,255,.72); float:right; font-size:10px; font-style:normal; font-weight:400; letter-spacing:0; text-transform:none; }
.tsf-packs-choices { border-top:1px solid rgba(255,255,255,.36); }.tsf-packs-choices label { align-items:center; border-bottom:1px solid rgba(255,255,255,.36); cursor:pointer; display:grid; gap:13px; grid-template-columns:1fr 23px; padding:13px 0; position:relative; }.tsf-packs-choices input { height:1px; opacity:0; position:absolute; width:1px; }.tsf-packs-choices small { color:rgba(255,255,255,.65); display:block; font-family:var(--font-ui,sans-serif); font-size:8px; font-weight:700; letter-spacing:.09em; margin-bottom:4px; text-transform:uppercase; }.tsf-packs-choices strong { color:#fff; font-family:var(--font-display,Georgia,serif); font-size:25px; font-weight:500; letter-spacing:-.04em; line-height:.94; }.tsf-packs-choices i { align-items:center; border:1px solid rgba(255,255,255,.7); border-radius:50%; color:#fff; display:flex; font-size:20px; font-style:normal; height:23px; justify-content:center; line-height:1; width:23px; }.tsf-packs-choices label:has(input:checked) small { color:#fff; }.tsf-packs-choices label:has(input:checked) i { background:#fffaf4; border-color:#fffaf4; color:var(--red); }.tsf-packs-choices input:focus-visible + span { outline:2px solid #fff; outline-offset:4px; }
.tsf-packs-extra { display:block; margin-top:21px; }.tsf-packs-extra > span { color:#fff; display:block; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.07em; margin-bottom:8px; text-transform:uppercase; }.tsf-packs-extra textarea { box-sizing:border-box; width:100%; }.tsf-packs-error { color:#fff7bd!important; font-size:12px!important; font-weight:700; margin:0 0 10px!important; min-height:18px; }
.tsf-packs-actions { display:flex; gap:12px; justify-content:space-between; margin-top:30px; }.tsf-packs-actions [hidden] { display:none !important; }.tsf-packs-actions .tsf-button { margin-left:auto; }.tsf-packs-actions .tsf-button, .tsf-packs-back { background:#fffaf4; border:1px solid #fffaf4; color:var(--ink); cursor:pointer; font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.08em; padding:13px 18px; text-transform:uppercase; transition:background .2s ease,border-color .2s ease,color .2s ease; }.tsf-packs-back::before { content:'← '; }.tsf-packs-actions .tsf-button:hover, .tsf-packs-actions .tsf-button:focus-visible, .tsf-packs-back:hover, .tsf-packs-back:focus-visible { background:var(--ink); border-color:var(--ink); color:#fff; outline:0; }.tsf-packs-note { color:rgba(255,255,255,.74); font-family:var(--font-ui,sans-serif); font-size:10px; line-height:1.5; margin:20px 0 0; }
.tsf-experiences-editorial { background:#e8d8cb; border-top:4px solid var(--red); padding:clamp(76px,8vw,112px) 0; }
.tsf-experiences-editorial > .container-fluid { align-items:start; display:grid !important; gap:clamp(48px,6vw,100px); grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); }
.tsf-experiences-editorial > .container-fluid > header { align-self:start; grid-column:1 !important; grid-row:1 !important; margin:0 !important; }
.tsf-experiences-editorial > .container-fluid > .tsf-experiences-editorial__list { align-self:start; grid-column:2 !important; grid-row:1 !important; margin:0 !important; }
.tsf-experiences-editorial header .tsf-label { color:var(--red); }.tsf-experiences-editorial h2 { font-size:clamp(44px,4.4vw,68px); line-height:.9; margin:20px 0; max-width:10ch; }.tsf-experiences-editorial h2 em { color:var(--red); font-style:italic; }.tsf-experiences-editorial header > p:last-child { color:#5f554c; font-family:var(--font-ui,sans-serif); font-size:15px; line-height:1.65; max-width:390px; }.tsf-experiences-editorial__list { border-top:1px solid rgba(18,18,18,.23); }.tsf-experiences-editorial__list article { border-bottom:1px solid rgba(18,18,18,.23); display:grid; gap:17px 23px; grid-template-columns:37px minmax(0,1fr); padding:24px 0; }.tsf-experiences-editorial__list span { color:var(--red); font-family:var(--font-ui,sans-serif); font-size:10px; font-weight:700; letter-spacing:.09em; padding-top:7px; }.tsf-experiences-editorial__list h3 { font-size:clamp(29px,2.8vw,42px); line-height:.93; margin:0; }.tsf-experiences-editorial__list p { color:#665c53; font-family:var(--font-ui,sans-serif); font-size:14px; grid-column:2; line-height:1.65; margin:0; max-width:550px; }
@media (max-width:960px) { .tsf-experiences-editorial > .container-fluid { grid-template-columns:1fr; }.tsf-experiences-editorial > .container-fluid > header, .tsf-experiences-editorial > .container-fluid > .tsf-experiences-editorial__list { grid-column:auto !important; grid-row:auto !important; }.tsf-experiences-editorial h2 { max-width:13ch; }.tsf-packs-form { min-height:0; } }
@media (max-width:600px) { .tsf-experiences-path { grid-template-columns:72px minmax(0,1fr) 20px; }.tsf-experiences-path img { height:64px; width:72px; }.tsf-experiences-path em { display:none; }.tsf-packs-progress li { font-size:7px; letter-spacing:.03em; }.tsf-packs-actions { align-items:stretch; flex-direction:column-reverse; }.tsf-packs-actions .tsf-button { margin-left:0; width:100%; }.tsf-packs-back { padding:7px; }.tsf-experiences-editorial__list article { grid-template-columns:25px minmax(0,1fr); }.tsf-experiences-editorial__list p { grid-column:2; } }

/* The encierro heading is composed as two complete lines, not a narrow stack. */
.tsf-balcony-hero--encierro {
  --tsf-landing-hero-image: url('../images/hero-balcones-encierro-pamplona.jpg');
}
@media (min-width: 768px) {
  .tsf-balcony-hero--encierro h1 {
    font-size: clamp(54px, 4.6vw, 78px);
    max-width: none;
    white-space: nowrap;
  }
}

/* Keep the white sentence of the opening scene together; the red line follows it. */
@media (min-width: 768px) {
  .tsf-slide-encierro .tsf-slide-content { max-width: 1400px; }
  .tsf-slide-encierro .tsf-slide-content h1 {
    font-size: clamp(55px, 5.1vw, 88px);
    white-space: nowrap;
  }
}

/* The territory scene keeps its opening sentence intact while the red copy can breathe. */
@media (min-width: 768px) {
  .tsf-slide-navarra .tsf-slide-content { max-width: 1400px; }
  .tsf-slide-navarra .tsf-slide-title { font-size: clamp(44px, 3.65vw, 66px); }
  .tsf-slide-navarra .tsf-slide-title__line { display: inline-block; white-space: nowrap; }
}
@media (min-width: 1100px) { .tsf-slide-navarra .tsf-slide-title em { display: inline-block; white-space: nowrap; } }

/* Give the territorial slide's date marker a little more room above the title. */
.tsf-slide-navarra .tsf-slide-content::before { position: relative; top: -16px; }
@media (max-width: 767px) { .tsf-slide-navarra .tsf-slide-content::before { top: -9px; } }

/* A ceremonial pennant replaces the plain date label across the hero scenes. */
.tsf-slide-content::before {
  background: linear-gradient(115deg, #d91c36 0%, var(--red, #c6192e) 62%, #ae1024 100%);
  box-shadow: 0 8px 16px rgba(47, 4, 12, .28), inset 0 1px 0 rgba(255, 255, 255, .2);
  clip-path: polygon(15px 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 15px 100%, 0 50%);
  letter-spacing: .18em;
  left: 12px;
  margin-bottom: 28px;
  padding: 10px 29px 10px 18px;
  position: relative;
  text-align: center;
}
@media (max-width: 767px) {
  .tsf-slide-content::before { clip-path: polygon(11px 0, calc(100% - 11px) 0, 100% 50%, calc(100% - 11px) 100%, 11px 100%, 0 50%); left: 8px; margin-bottom: 24px; padding: 9px 24px 9px 15px; }
}

/* Give the encierro banner copy a little more air above than below. */
.tsf-balcony-hero--encierro .tsf-balcony-hero__inner { transform: translateY(32px); }
@media (max-width: 767px) { .tsf-balcony-hero--encierro .tsf-balcony-hero__inner { transform: translateY(20px); } }

/* Every enquiry landing shares the same calmer vertical balance in its hero. */
.tsf-balcony-landing .tsf-balcony-hero__inner { transform: translateY(32px); }
@media (max-width: 767px) { .tsf-balcony-landing .tsf-balcony-hero__inner { transform: translateY(20px); } }

/* Accommodation benefits from a slightly lower hero composition. */
.tsf-service-landing--alojamiento .tsf-balcony-hero__inner { transform: translateY(54px); }
@media (max-width: 767px) { .tsf-service-landing--alojamiento .tsf-balcony-hero__inner { transform: translateY(30px); } }

/* Give image captions in form landings room to breathe below the photograph. */
.tsf-balcony-landing .tsf-balcony-story-gallery figcaption {
  color: #756a61;
  font-family: var(--font-ui, sans-serif);
  font-size: 11px;
  line-height: 1.45;
  margin: 15px 2px 0;
}
@media (max-width: 767px) { .tsf-balcony-landing .tsf-balcony-story-gallery figcaption { margin-top: 12px; } }

/* Accommodation: keep the routes heading to two balanced lines. */
.tsf-service-landing--alojamiento #accommodation-options-title {
  font-size: clamp(43px, 3.7vw, 60px);
  max-width: none;
}
.tsf-service-landing--alojamiento #accommodation-options-title > span { display: inline-block; white-space: nowrap; }
@media (max-width: 680px) { .tsf-service-landing--alojamiento #accommodation-options-title > span { white-space: normal; } }

/* Restore the red editorial rule beneath each desktop navigation category. */
@media (min-width: 768px) {
  .tsf-header .tsf-nav-indicator { display: none !important; }
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta),
  .tsf-header .tsf-nav-dropdown-trigger > a,
  .tsf-header .tsf-nav-dropdown--menu-only .tsf-nav-dropdown-primary {
    position: relative;
  }
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta)::after,
  .tsf-header .tsf-nav-dropdown-trigger > a::after,
  .tsf-header .tsf-nav-dropdown--menu-only .tsf-nav-dropdown-primary::after {
    background: var(--red, #c6192e);
    bottom: 4px;
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .32s cubic-bezier(.2,.7,.25,1);
    width: 100%;
  }
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta):hover::after,
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta):focus-visible::after,
  .tsf-header .tsf-nav-dropdown:hover .tsf-nav-dropdown-trigger > a::after,
  .tsf-header .tsf-nav-dropdown:focus-within .tsf-nav-dropdown-trigger > a::after,
  .tsf-header .tsf-nav-dropdown--menu-only:hover .tsf-nav-dropdown-primary::after,
  .tsf-header .tsf-nav-dropdown--menu-only:focus-within .tsf-nav-dropdown-primary::after {
    transform: scaleX(1);
  }
}

/* Long real review: native disclosure keeps the complete text available even before JavaScript loads. */
.tsf-testimonial-readmore { display: block; }
.tsf-testimonial-readmore > summary { cursor: pointer; list-style: none; }
.tsf-testimonial-readmore > summary::-webkit-details-marker { display: none; }
.tsf-testimonial-readmore > summary:focus-visible { outline: 2px solid var(--red, #c6192e); outline-offset: 7px; }
.tsf-testimonial-readmore:not([open]) .tsf-testimonial-full { display: none; }
.tsf-testimonial-readmore[open] .tsf-testimonial-excerpt { display: none; }
.tsf-testimonial-full { display: block; margin-bottom: 18px; }
.tsf-testimonial-toggle { align-items: center; color: var(--red, #c6192e); display: inline-flex; font-family: var(--font-display, Georgia, serif); font-size: 30px; height: 30px; justify-content: center; line-height: 1; margin: 5px 0 10px; width: 30px; }
.tsf-testimonial-toggle::before { content: '…'; }
.tsf-testimonial-readmore[open] .tsf-testimonial-toggle { font-family: Arial, sans-serif; font-size: 18px; margin-top: 7px; }
.tsf-testimonial-readmore[open] .tsf-testimonial-toggle::before { content: '×'; }
.tsf-testimonial-readmore > summary:hover .tsf-testimonial-toggle { color: var(--ink, #1d1a18); transform: translateY(2px); }
.tsf-testimonial-expandable.is-expanded { box-shadow: 14px 17px 0 rgba(126, 19, 34, .16); }
.tsf-testimonials-grid .tsf-testimonial-card.is-expanded { flex-basis: 100%; }
.tsf-testimonials-showcase__card.is-expanded { min-height: 510px; }
@media (max-width: 580px) { .tsf-testimonials-showcase__card.is-expanded { min-height: 0; } }

/* The review introduction stays compact; longer stories open as an intentional reading card. */
.tsf-testimonials-showcase__content { min-height: 390px; }
.tsf-testimonials-showcase__copy { padding-bottom: clamp(34px, 3.6vw, 52px); padding-top: clamp(34px, 3.6vw, 52px); }
.tsf-testimonials-showcase__card { justify-content: flex-start; min-height: 238px; padding: 24px 28px; }
.tsf-testimonials-showcase__card blockquote { font-size: clamp(23px, 1.65vw, 28px); line-height: 1.08; margin-top: 22px; }
.tsf-testimonials-showcase__card footer { margin-top: 20px; }
.tsf-testimonial-readmore > summary { display: block; }
.tsf-testimonial-toggle { border-bottom: 1px solid currentColor; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; height: auto; letter-spacing: .1em; margin: 15px 0 1px; padding-bottom: 5px; text-transform: uppercase; width: max-content; }
.tsf-testimonial-toggle::before { content: '…  Seguir leyendo'; }
.tsf-testimonial-readmore[open] .tsf-testimonial-toggle { font-family: var(--font-ui, sans-serif); font-size: 10px; margin-top: 12px; }
.tsf-testimonial-readmore[open] .tsf-testimonial-toggle::before { content: 'Cerrar ×'; }
body.tsf-testimonial-modal-open { overflow: hidden; }
body.tsf-testimonial-modal-open::before { background: rgba(20, 14, 12, .66); content: ''; inset: 0; position: fixed; z-index: 9990; }
.tsf-testimonial-expandable.is-expanded { box-shadow: 20px 23px 0 rgba(126, 19, 34, .21); inset: clamp(18px, 8vh, 82px) clamp(18px, 10vw, 180px); margin: auto; max-width: 900px; overflow-y: auto; position: fixed !important; width: auto; z-index: 9991; }
.tsf-testimonials-showcase__card.is-expanded { min-height: 0; }
.tsf-testimonials-grid .tsf-testimonial-card.is-expanded { flex-basis: auto; }
.tsf-testimonial-expandable.is-expanded .tsf-testimonial-full { margin-bottom: 20px; }
.tsf-testimonials-rail { margin-top: clamp(28px, 3.2vw, 44px); }
@media (max-width: 580px) {
  .tsf-testimonials-showcase__content { min-height: 0; }
  .tsf-testimonials-showcase__card { min-height: 0; padding: 22px; }
  .tsf-testimonials-showcase__card blockquote { font-size: 25px; margin-top: 20px; }
  .tsf-testimonial-expandable.is-expanded { inset: 18px 12px; }
}

/* Long reviews open in the centered reader; carousel cards always retain
   their original proportions and position. */
body.tsf-testimonial-modal-open { overflow: hidden; }
body.tsf-testimonial-modal-open::before { display: none; }

/* Alternative review cards for the side-by-side design comparison. */
.tsf-testimonials--profile { border-top: 1px solid rgba(18,18,18,.14); }
.tsf-testimonials-profile-label { color: var(--red, #c6192e); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .12em; margin: 0 0 13px; text-transform: uppercase; }
.tsf-testimonials--profile .tsf-testimonial-card { padding: 22px 24px 25px; }
.tsf-testimonials--profile .tsf-testimonial-profile { align-items: center; border-bottom: 1px solid rgba(18,18,18,.16); display: grid; gap: 12px; grid-template-columns: 43px minmax(0,1fr) auto; padding-bottom: 15px; }
.tsf-testimonials--profile .tsf-testimonial-profile__avatar { border: 2px solid var(--ink, #1d1a18); border-radius: 50%; height: 40px; position: relative; width: 40px; }
.tsf-testimonials--profile .tsf-testimonial-profile__avatar::before { background: var(--ink, #1d1a18); border-radius: 50%; content: ''; height: 11px; left: 50%; position: absolute; top: 7px; transform: translateX(-50%); width: 11px; }
.tsf-testimonials--profile .tsf-testimonial-profile__avatar::after { background: var(--ink, #1d1a18); border-radius: 12px 12px 7px 7px; bottom: 5px; content: ''; height: 13px; left: 7px; position: absolute; right: 7px; }
.tsf-testimonials--profile .tsf-testimonial-profile__identity { min-width: 0; }
.tsf-testimonials--profile .tsf-testimonial-profile__identity > strong, .tsf-testimonials--profile .tsf-testimonial-profile__identity > span { display: block; }
.tsf-testimonials--profile .tsf-testimonial-profile__identity > strong { color: var(--ink, #1d1a18); font-family: var(--font-ui, sans-serif); font-size: 12px; font-weight: 700; line-height: 1.25; }
.tsf-testimonials--profile .tsf-testimonial-profile__identity > span { color: #6b625b; font-family: var(--font-ui, sans-serif); font-size: 10px; letter-spacing: .02em; line-height: 1.35; margin-top: 4px; }
.tsf-testimonials--profile .tsf-testimonial-profile__identity b { font-size: 13px; font-weight: 400; margin-right: 6px; }
.tsf-testimonials--profile .tsf-testimonial-rating { color: #ad7a1f; font-family: Arial, sans-serif; font-size: 13px; letter-spacing: 1px; line-height: 1; white-space: nowrap; }
.tsf-testimonials--profile .tsf-testimonial-card blockquote { margin: 23px 0 0; }
@media (max-width: 580px) { .tsf-testimonials--profile .tsf-testimonial-card { padding: 20px; } }

/* Local directions: a compact editorial recommendation grid before the FAQ chapter. */
.tsf-local-directions { background: #f4eee5; border-top: 1px solid rgba(31, 24, 20, .16); color: var(--ink, #1d1a18); padding: clamp(76px, 8vw, 122px) 0 45px; }
.tsf-local-directions__layout { align-items: start; display: grid; gap: clamp(38px, 6vw, 105px); grid-template-columns: minmax(230px, .62fr) minmax(0, 1.38fr); }
.tsf-local-directions__intro { padding-top: 8px; }
.tsf-local-directions__intro .tsf-label { color: var(--red, #c6192e); margin-bottom: 21px; }
.tsf-local-directions__intro h2 { font-family: var(--font-display, Georgia, serif); font-size: clamp(42px, 4.1vw, 66px); font-weight: 500; letter-spacing: -.065em; line-height: .9; margin: 0; }
.tsf-local-directions__intro h2 em { color: var(--red, #c6192e); }
.tsf-local-directions__intro > p:last-child { color: #5e554f; font-family: var(--font-ui, Arial, sans-serif); font-size: 15px; line-height: 1.7; margin: 26px 0 0; max-width: 365px; }
.tsf-local-directions__grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(154px, 1fr)); }
.tsf-local-directions__card { background: #261e1a center / cover; color: #fff; display: flex; flex-direction: column; min-height: 154px; overflow: hidden; padding: 20px 21px; position: relative; text-decoration: none; transition: box-shadow .35s ease, transform .35s ease; }
.tsf-local-directions__card::before { background: linear-gradient(180deg, rgba(16, 10, 8, .16), rgba(16, 10, 8, .84)); content: ''; inset: 0; position: absolute; transition: background .35s ease; }
.tsf-local-directions__card > * { position: relative; z-index: 1; }
.tsf-local-directions__card--featured { grid-row: span 2; min-height: 322px; padding: 27px; }
.tsf-local-directions__card--wine { background-image: url('../images/gastronomia-pintxos-navarra.webp'); }
.tsf-local-directions__card--restaurant { background-image: url('../images/pamplona-despues-san-fermin-ruta-cultural.jpg'); }
.tsf-local-directions__card--belagua { background-image: url('../images/hero-navarra.png'); }
.tsf-local-directions__card--encierrico { background-image: url('../images/encierro-san-fermin-calle-pamplona.jpg'); }
.tsf-local-directions__card--gurgur { background-image: url('../images/procesion-san-fermin-pamplona-historia.jpg'); }
.tsf-local-directions__category { font-family: var(--font-ui, Arial, sans-serif); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.tsf-local-directions__card strong { font-family: var(--font-display, Georgia, serif); font-size: clamp(25px, 2vw, 34px); font-weight: 500; letter-spacing: -.045em; line-height: .95; margin: auto 0 8px; }
.tsf-local-directions__card--featured strong { font-size: clamp(34px, 3.1vw, 52px); }
.tsf-local-directions__card small { font-family: var(--font-ui, Arial, sans-serif); font-size: 12px; line-height: 1.38; max-width: 255px; }
.tsf-local-directions__card b { bottom: 18px; font-family: Arial, sans-serif; font-size: 21px; font-weight: 400; position: absolute; right: 19px; transition: transform .35s ease; }
.tsf-local-directions__card:hover, .tsf-local-directions__card:focus-visible { box-shadow: 11px 13px 0 rgba(126, 19, 34, .18); outline: 0; transform: translateY(-5px); }
.tsf-local-directions__card:hover::before, .tsf-local-directions__card:focus-visible::before { background: linear-gradient(180deg, rgba(12, 8, 7, .66), rgba(126, 19, 34, .92)); }
.tsf-local-directions__card:hover strong, .tsf-local-directions__card:hover small, .tsf-local-directions__card:hover .tsf-local-directions__category, .tsf-local-directions__card:hover b, .tsf-local-directions__card:focus-visible strong, .tsf-local-directions__card:focus-visible small, .tsf-local-directions__card:focus-visible .tsf-local-directions__category, .tsf-local-directions__card:focus-visible b { color: #fff !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .72); }
.tsf-local-directions__card:hover b, .tsf-local-directions__card:focus-visible b { transform: translate(4px, -4px); }
.tsf-local-directions__note { border-top: 1px solid rgba(31, 24, 20, .18); color: #746a62; font-family: var(--font-ui, Arial, sans-serif); font-size: 11px; line-height: 1.55; margin: 45px 0 0; padding-top: 16px; }
@media (max-width: 960px) { .tsf-local-directions__layout { grid-template-columns: 1fr; } .tsf-local-directions__intro > p:last-child { max-width: 580px; } }
@media (max-width: 640px) { .tsf-local-directions { padding: 66px 0 34px; } .tsf-local-directions__layout { gap: 35px; } .tsf-local-directions__intro h2 { font-size: 45px; } .tsf-local-directions__grid { grid-template-columns: 1fr; grid-template-rows: none; } .tsf-local-directions__card, .tsf-local-directions__card--featured { grid-row: auto; min-height: 205px; padding: 23px; } .tsf-local-directions__card--featured strong { font-size: 43px; } .tsf-local-directions__note { margin-top: 28px; } }

/* Pamplona needs a deliberately wider desktop measure: its H1 reads as three balanced lines. */
@media (min-width: 768px) {
  .tsf-territory-landing--pamplona .tsf-balcony-hero h1 { max-width: 21ch; }
  .tsf-territory-landing--euskadi .tsf-balcony-hero h1 { max-width: 21ch; }
}

/* Más allá de Pamplona: make the hero itself a fixed vertical canvas and let
   its inner composition occupy it. This keeps exactly the same breathing room
   above and below the copy, even when each territorial headline has a
   different number of lines. */
.tsf-territory-landing .tsf-balcony-hero {
  align-items: stretch;
  display: flex;
  min-height: clamp(440px, 42vw, 570px);
}
.tsf-territory-landing .tsf-balcony-hero__inner {
  box-sizing: border-box;
  flex: 1 1 auto;
  min-height: 0;
  padding-bottom: clamp(80px, 8vw, 120px);
  padding-top: clamp(80px, 8vw, 120px);
  transform: none;
}
@media (max-width: 767px) {
  .tsf-territory-landing .tsf-balcony-hero { min-height: 500px; }
  .tsf-territory-landing .tsf-balcony-hero__inner {
    padding-bottom: 72px;
    padding-top: 72px;
    transform: none;
  }
}

/* Territorial heroes share one centred, more economical vertical rhythm. */
.tsf-territory-landing .tsf-balcony-hero {
  min-height: clamp(430px, 37vw, 520px);
}
.tsf-territory-landing .tsf-balcony-hero__inner {
  align-items: center;
  justify-content: center;
  padding-bottom: clamp(68px, 6vw, 96px);
  padding-top: clamp(68px, 6vw, 96px);
}
@media (max-width: 767px) {
  .tsf-territory-landing .tsf-balcony-hero { min-height: 470px; }
  .tsf-territory-landing .tsf-balcony-hero__inner {
    min-height: 470px;
    padding-bottom: 64px;
    padding-top: 64px;
  }
}

/* Home categories: a proper two-sided card on desktop. Photography is the
   cover; the reverse is a calm, readable invitation to the relevant landing. */
.home .tsf-editorial-ribbon { display: none !important; }
@media (hover: hover) and (pointer: fine) {
  .home .tsf-interest-card {
    aspect-ratio: 1.5;
    background: transparent;
    border: 0;
    display: block;
    min-height: 260px;
    overflow: visible;
    padding: 0;
    perspective: 1200px;
    transform: none !important;
  }
  .home .tsf-interest-card:hover { border-color: transparent; box-shadow: none; }
  .home .tsf-interest-image,
  .home .tsf-interest-copy {
    backface-visibility: hidden;
    box-sizing: border-box;
    height: 100%;
    inset: 0;
    position: absolute;
    transition: transform .72s cubic-bezier(.2,.72,.2,1);
    width: 100%;
  }
  .home .tsf-interest-image { transform: rotateY(0deg); }
  .home .tsf-interest-image::before { display: none; }
  .home .tsf-interest-front-label {
    bottom: 29px;
    color: #fff;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(28px, 2.3vw, 42px);
    font-weight: 500;
    left: 25px;
    letter-spacing: -.055em;
    line-height: .9;
    position: absolute;
    text-shadow: 0 2px 12px rgba(0,0,0,.75);
    z-index: 2;
  }
  .home .tsf-interest-front-label em { color: #e1263d; font-style: normal; text-shadow: 0 2px 12px rgba(0,0,0,.85), 0 1px 2px rgba(255,242,235,.18); }
  .home .tsf-interest-image img { height: 100%; object-fit: cover; width: 100%; }
  .home .tsf-interest-copy {
    align-items: flex-start;
    background: #fff;
    color: #1d1917;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(25px, 3vw, 46px);
    transform: rotateY(180deg);
  }
  .home .tsf-interest-copy strong,
  .home .tsf-interest-card:hover .tsf-interest-copy strong,
  .home .tsf-interest-card:focus-visible .tsf-interest-copy strong {
    background: transparent !important;
    color: #1d1917 !important;
    display: block;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(25px, 2.15vw, 38px);
    letter-spacing: -.06em;
    line-height: .9;
    max-width: none;
    padding: 0;
    text-shadow: none;
    transform: none;
  }
  .home .tsf-interest-copy strong em { color: var(--red, #c6192e) !important; text-shadow: none; }
  .home .tsf-interest-copy small,
  .home .tsf-interest-action {
    max-height: none;
    opacity: 1;
    overflow: visible;
    transform: none;
  }
  .home .tsf-interest-copy small {
    color: #3f2e2b;
    font-family: var(--font-ui, Arial, sans-serif);
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.5;
    margin: 19px 0 0;
    max-width: 30ch;
    text-shadow: none;
    text-transform: none;
  }
  .home .tsf-interest-action,
  .home .tsf-interest-card:hover .tsf-interest-action,
  .home .tsf-interest-card:focus-visible .tsf-interest-action {
    align-items: center;
    align-self: center;
    background: var(--red, #c6192e);
    border: 1px solid var(--red, #c6192e);
    border-radius: 9px;
    color: #fff;
    display: inline-flex;
    font-family: var(--font-ui, Arial, sans-serif);
    font-size: 10px;
    font-weight: 700;
    gap: 13px;
    letter-spacing: .1em;
    margin: 27px auto 0;
    padding: 13px 17px;
    text-transform: uppercase;
  }
  .home .tsf-interest-action i { color: #fff; }
  .home .tsf-interest-action:hover { background: #1d1917; border-color: #1d1917; color: #fff; }
  .home .tsf-interest-action:hover i { color: #e1263d; }
  .home .tsf-interest-copy b { display: none; }
  .home .tsf-interest-card:hover .tsf-interest-image,
  .home .tsf-interest-card:focus-visible .tsf-interest-image { transform: rotateY(-180deg); }
  .home .tsf-interest-card:hover .tsf-interest-copy,
  .home .tsf-interest-card:focus-visible .tsf-interest-copy { transform: rotateY(0deg); }
}

/* Phone form-landings: keep the editorial text clear of both the fixed menu
   and the beginning of the image below it. */
@media (max-width: 767px) {
  .tsf-service-landing .tsf-balcony-hero { padding-bottom: min(84vw, 520px); }
  .tsf-service-landing .tsf-balcony-hero__inner {
    justify-content: flex-start;
    min-height: 500px;
    padding-bottom: 74px;
    padding-top: 82px;
  }
  .tsf-service-landing .tsf-balcony-hero > .tsf-balcony-hero__inner > p:not(.tsf-label) { bottom: 40px; }
}

/* Form landing headlines: retain the editorial red while separating it from
   detailed photography. The tonal support is deliberately local, never a box. */
.tsf-service-landing .tsf-balcony-hero h1,
.tsf-balcony-landing .tsf-balcony-hero h1 {
  isolation: isolate;
  position: relative;
  z-index: 0;
}
.tsf-service-landing .tsf-balcony-hero h1::before,
.tsf-balcony-landing .tsf-balcony-hero h1::before {
  background: radial-gradient(ellipse 88% 92% at 42% 52%, rgba(8, 12, 10, .36) 0%, rgba(8, 12, 10, .2) 42%, rgba(8, 12, 10, 0) 74%);
  content: '';
  inset: -.28em -.42em;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}
.tsf-service-landing .tsf-balcony-hero h1 em,
.tsf-balcony-landing .tsf-balcony-hero h1 em {
  color: #e33b4c;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .4), 0 3px 14px rgba(0, 0, 0, .34);
}

/* Desktop form landings: keep the breadcrumb connected to the opening copy
   and consultation, without changing the more generous mobile rhythm. */
@media (min-width: 961px) {
  .tsf-balcony-landing .tsf-balcony-consultation {
    padding-top: clamp(52px, 5vw, 84px);
  }
}

/* Form-card colour studies. Encierro intentionally keeps the original red as
   the reference option; these rules alter colour only, never layout or type. */
.tsf-service-landing--chupinazo .tsf-balcony-form {
  background: #9a3d46;
}
.tsf-service-landing--chupinazo .tsf-balcony-form::before { opacity: .13; }
.tsf-service-landing--chupinazo .tsf-balcony-form select option { background: #7d3038; }
.tsf-service-landing--chupinazo .tsf-balcony-form .tsf-form-submit { color: #87343d; }

/* Pobre de mí: a pale, quiet card presented against a charcoal editorial
   backdrop. Supporting text colours are changed solely to retain contrast. */
.tsf-service-landing--pobre-de-mi .tsf-balcony-consultation { background: #272924; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-story { color: #f5eee7; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-story .tsf-label,
.tsf-service-landing--pobre-de-mi .tsf-balcony-story h2 em { color: #e38c80; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-story p { color: #eee5dc; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form {
  background: #f1e6da;
  color: #28201d;
}
.tsf-service-landing--pobre-de-mi .tsf-balcony-form::before { opacity: .07; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-heading { border-bottom-color: rgba(40, 32, 29, .25); }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-heading p,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-heading span,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-grid label,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-consent span,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-footer p { color: #28201d; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form input:not([type="checkbox"]),
.tsf-service-landing--pobre-de-mi .tsf-balcony-form select,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form textarea {
  border-bottom-color: rgba(40, 32, 29, .46);
  color: #28201d;
}
.tsf-service-landing--pobre-de-mi .tsf-balcony-form select option { background: #f1e6da; color: #28201d; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form input::placeholder,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form textarea::placeholder { color: rgba(40, 32, 29, .64); }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form input:focus,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form select:focus,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form textarea:focus {
  background: rgba(40, 32, 29, .055);
  border-bottom-color: #28201d;
}
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-consent { border-top-color: rgba(40, 32, 29, .28); }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-consent input { accent-color: #a44547; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-submit {
  background: #a44547;
  border-color: #a44547;
  color: #fff;
}
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-submit:hover,
.tsf-service-landing--pobre-de-mi .tsf-balcony-form .tsf-form-submit:focus-visible {
  background: #28201d;
  border-color: #28201d;
  color: #fff;
}

/* Feria del Toro: a muted forest green, deliberately more natural than red. */
.tsf-service-landing--feria .tsf-balcony-form { background: #35443d; }
.tsf-service-landing--feria .tsf-balcony-form::before { opacity: .13; }
.tsf-service-landing--feria .tsf-balcony-form select option { background: #29362f; }
.tsf-service-landing--feria .tsf-balcony-form .tsf-form-submit { color: #35443d; }

/* Experiencias y packs: an earthy, softened terracotta. */
.tsf-service-landing--experiencias .tsf-balcony-form { background: #ae5f51; }
.tsf-service-landing--experiencias .tsf-balcony-form::before { opacity: .12; }
.tsf-service-landing--experiencias .tsf-balcony-form select option { background: #914d42; }
.tsf-service-landing--experiencias .tsf-balcony-form .tsf-form-submit { color: #985043; }

/* The consultation stories alternate reading with imagery instead of grouping
   every photograph at the beginning. The cadence is deliberately quiet, with
   different image widths rather than extra decorative elements. */
.tsf-story-flow {
  display: grid;
  gap: clamp(20px, 2.1vw, 31px);
  margin: 0 0 8px;
}
.tsf-story-flow p {
  color: #554f49;
  font-family: var(--font-ui, sans-serif);
  font-size: 16px;
  line-height: 1.75;
  margin: 0;
  max-width: 680px;
}
.tsf-story-flow p strong { color: var(--red); font-weight: 700; }
.tsf-story-flow__image,
.tsf-story-flow__pair {
  margin: clamp(4px, .8vw, 12px) 0;
  overflow: hidden;
}
.tsf-story-flow__image img,
.tsf-story-flow__pair img {
  display: block;
  height: auto;
  transition: transform .55s cubic-bezier(.2,.7,.2,1);
  width: 100%;
}
.tsf-story-flow__image:hover img,
.tsf-story-flow__pair figure:hover img { transform: scale(1.04); }
.tsf-story-flow__image--wide { width: 100%; }
.tsf-story-flow__image--portrait {
  justify-self: end;
  max-width: min(76%, 470px);
}
.tsf-story-flow__pair {
  display: grid;
  gap: 10px;
  grid-template-columns: 1.12fr .88fr;
}
.tsf-story-flow__pair figure { margin: 0; overflow: hidden; }
.tsf-service-landing--pobre-de-mi .tsf-story-flow p { color: #eee5dc; }
.tsf-service-landing--pobre-de-mi .tsf-story-flow p strong { color: #f0a096; }
@media (max-width: 680px) {
  .tsf-story-flow { gap: 21px; }
  .tsf-story-flow__image--portrait { max-width: 88%; }
  .tsf-story-flow__pair { gap: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsf-story-flow__image img,
  .tsf-story-flow__pair img { transition: none; }
}

/* Final About spacing override: the closing thought follows the cards closely. */
.tsf-about-aman__services { padding-bottom: clamp(20px, 2vw, 34px); }
.tsf-about-aman__services-dots { margin-top: 22px; }
.tsf-about-aman__farewell {
  min-height: 0;
  padding: clamp(34px, 3.2vw, 54px) 28px clamp(44px, 4vw, 68px);
}
.tsf-about-aman__farewell-arrow { top: 8%; }
@media (max-width: 760px) {
  .tsf-about-aman__services { padding-bottom: 20px; }
  .tsf-about-aman__services-dots { margin-top: 20px; }
  .tsf-about-aman__farewell { min-height: 0; padding: 42px 25px 50px; }
}

/* Terminal About hero correction: this override must follow every prior About rule. */
.tsf-about-aman__hero { padding-top: clamp(120px, 9vw, 150px); }
.tsf-about-aman__hero h1 {
  color: #201c19;
  display: block;
  opacity: 1 !important;
  position: relative;
  transform: none !important;
  visibility: visible !important;
  z-index: 2;
}
.tsf-about-aman__opening {
  padding: clamp(46px, 4vw, 64px) 28px clamp(70px, 6vw, 100px);
}
@media (max-width: 760px) {
  .tsf-about-aman__hero { padding-top: 86px; }
  .tsf-about-aman__opening { padding: 42px 28px 62px; }
}

/* About introduction: a horizontal Chupinazo scene bridges the opening and Mónica's story. */
.tsf-about-aman__intro-scene {
  align-items: center;
  display: grid;
  gap: clamp(42px, 7vw, 130px);
  grid-template-columns: minmax(0, 1.2fr) minmax(310px, .68fr);
  margin: 0 auto;
  max-width: 1820px;
  padding: 0 2.65vw clamp(90px, 9vw, 150px);
}
.tsf-about-aman__intro-scene figure {
  height: clamp(310px, 31vw, 500px);
  margin: 0;
  overflow: hidden;
}
.tsf-about-aman__intro-scene figure img { height: 100%; object-fit: cover; width: 100%; }
.tsf-about-aman__copy--intro-scene { max-width: 485px; }
.tsf-about-aman__copy--intro-scene h2 { margin: 17px 0 25px; }
@media (max-width: 760px) {
  .tsf-about-aman__intro-scene { display: block; padding: 0 14px 74px; }
  .tsf-about-aman__intro-scene figure { height: 53vw; min-height: 255px; }
  .tsf-about-aman__copy--intro-scene { margin: 38px 8vw 0 8vw; }
}

/* About opener: keep it a quiet prelude, not the page's dominant moment. */
@media (min-width: 761px) {
  .tsf-about-aman__intro-scene {
    gap: clamp(48px, 5vw, 76px);
    grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr);
    max-width: 1280px;
    padding: 0 clamp(52px, 6vw, 110px) clamp(70px, 7vw, 108px);
  }
  .tsf-about-aman__intro-scene figure { height: clamp(285px, 25vw, 365px); }
  .tsf-about-aman__copy--intro-scene { max-width: 465px; }
  .tsf-about-aman__copy--intro-scene { font-size: clamp(17px, 1.22vw, 21px); line-height: 1.5; }
  .tsf-about-aman__copy--intro-scene h2 { font-size: clamp(40px, 3.35vw, 54px); line-height: .94; margin: 12px 0 19px; }
  .tsf-about-aman__copy--intro-scene p { margin-bottom: 14px; }
}
@media (max-width: 760px) {
  .tsf-about-aman__intro-scene { padding-bottom: 58px; }
  .tsf-about-aman__intro-scene figure { height: 45vw; min-height: 225px; }
  .tsf-about-aman__copy--intro-scene { font-size: 18px; line-height: 1.48; margin-top: 30px; }
  .tsf-about-aman__copy--intro-scene h2 { font-size: 43px; margin: 12px 0 18px; }
}

/* About opening: keep the handwritten closing thought centered in the viewport. */
.tsf-about-aman__opening .tsf-about-aman__note {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Mónica: a balanced desktop portrait and a more generous reading measure. */
@media (min-width: 761px) {
  .tsf-about-aman__monica {
    align-items: stretch;
    column-gap: clamp(52px, 5vw, 104px);
    grid-template-columns: minmax(390px, .85fr) minmax(600px, 1.15fr);
    max-width: 1900px;
    padding-left: clamp(30px, 4.6vw, 88px);
    padding-right: clamp(30px, 4.6vw, 88px);
  }
  .tsf-about-aman__monica > figure { grid-column: 1; grid-row: 1; height: clamp(640px, 44.6vw, 690px); }
  .tsf-about-aman__monica > .tsf-about-aman__copy--monica {
    align-self: center;
    grid-column: 2;
    grid-row: 1;
    max-width: none;
  }
  .tsf-about-aman__copy--monica {
    font-size: clamp(20px, 1.28vw, 24px);
    line-height: 1.34;
  }
  .tsf-about-aman__copy--monica p { margin-bottom: 18px; }
  .tsf-about-aman__copy--monica h3 { margin-bottom: 30px; }
}

/* A concise pause after Mónica's story: words at left, Pamplona at right. */
.tsf-about-aman__street-note {
  align-items: center;
  display: grid;
  gap: clamp(42px, 7vw, 126px);
  grid-template-columns: minmax(280px, .62fr) minmax(460px, 1.16fr);
  margin: 0 auto;
  max-width: 1760px;
  padding: 0 clamp(30px, 4.6vw, 88px) clamp(88px, 8vw, 132px);
}
.tsf-about-aman__street-note figure {
  height: clamp(275px, 23vw, 390px);
  margin: 0;
  overflow: hidden;
}
.tsf-about-aman__street-note figure img { height: 100%; object-fit: cover; width: 100%; }
.tsf-about-aman__copy--street-note { max-width: 465px; }
.tsf-about-aman__copy--street-note h2 { font-size: clamp(38px, 3.6vw, 61px); margin: 14px 0 22px; }
.tsf-about-aman__copy--street-note p { margin-bottom: 15px; }
@media (min-width: 761px) {
  .tsf-about-aman__monica { padding-bottom: clamp(62px, 5.5vw, 94px); }
}
@media (max-width: 760px) {
  .tsf-about-aman__street-note { display: flex; flex-direction: column; gap: 34px; padding: 0 14px 72px; }
  .tsf-about-aman__street-note figure { height: 57vw; min-height: 260px; order: 2; width: 100%; }
  .tsf-about-aman__copy--street-note { margin: 0 8vw; order: 1; }
}

/* Clearly identify the external projects mentioned in Mónica's story. */
.tsf-about-aman__backlink {
  color: var(--red, #c6192e);
  text-decoration-color: currentColor;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .16em;
}
.tsf-about-aman__backlink:hover,
.tsf-about-aman__backlink:focus-visible {
  color: #8e1020;
  text-decoration-thickness: 2px;
}

/* Feria del Toro: preserve the author-defined break as two clear hero lines. */
@media (min-width: 768px) {
  .tsf-service-landing--feria .tsf-balcony-hero h1 {
    font-size: clamp(46px, 4.15vw, 64px);
    max-width: none;
    white-space: nowrap;
  }
}

/* Footer links retain their text treatment when selected, without a browser focus box. */
.tsf-footer a:focus,
.tsf-footer a:focus-visible {
  box-shadow: none !important;
  outline: 0 !important;
}

/* About services: three complete, compact cards are visible in each desktop view. */
@media (min-width: 761px) {
  .tsf-about-aman__services-viewport { overflow-x: hidden; }
  .tsf-about-aman__services-track {
    gap: 24px;
    padding-left: 2.65vw;
    padding-right: 2.65vw;
  }
  .tsf-about-aman__services-track a {
    flex: 0 0 calc((100vw - 5.3vw - 48px) / 3);
  }
  .tsf-about-aman__services-track img { aspect-ratio: 1.45; }
  .tsf-about-aman__services-track span { padding-top: 14px; }
  .tsf-about-aman__services-track strong { font-size: clamp(22px, 1.6vw, 31px); }
  .tsf-about-aman__services-track small { font-size: 11px; margin-top: 5px; }
}

/* Territory ribbon: a faster, continuous editorial pace. */
.tsf-marquee-territory .tsf-marquee-track { animation-duration: 5s; }
@media (max-width: 767px) {
  .tsf-marquee-territory .tsf-marquee-track { animation-duration: 4.5s; }
}

/* Mónica's signature reads as a personal, handwritten introduction. */
.tsf-about-aman__copy--monica h2 { font-style: italic; }

/* About services: an editorial red panel with tall, self-contained proposal cards. */
.tsf-about-aman__services {
  background: var(--red, #c6192e);
  color: #fff;
  padding-top: clamp(48px, 5vw, 76px);
}
.tsf-about-aman__services header {
  margin-bottom: clamp(30px, 3.3vw, 50px);
  max-width: 1500px;
  padding-left: 2.65vw;
  padding-right: 2.65vw;
  text-align: left;
}
.tsf-about-aman__services header .tsf-about-aman__eyebrow { color: rgba(255,255,255,.8); }
.tsf-about-aman__services header h2 { color: #fff; font-size: clamp(43px, 4.15vw, 68px); }
.tsf-about-aman__services-track a {
  color: #fff;
  overflow: hidden;
  position: relative;
}
.tsf-about-aman__services-track a::after {
  background: linear-gradient(180deg, rgba(5,4,3,.02) 28%, rgba(5,4,3,.82) 100%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.tsf-about-aman__services-track span {
  bottom: 0;
  left: 0;
  padding: clamp(20px, 2vw, 31px);
  position: absolute;
  right: 0;
  z-index: 1;
}
.tsf-about-aman__services-track strong { color: #fff; }
.tsf-about-aman__services-track small { color: rgba(255,255,255,.88); }
.tsf-about-aman__services-dots button { background: rgba(255,255,255,.45); }
.tsf-about-aman__services-dots button[aria-current="true"] { background: #fff; }
@media (min-width: 761px) {
  .tsf-about-aman__services-track { gap: 32px; }
  .tsf-about-aman__services-track a { flex-basis: calc((100vw - 5.3vw - 64px) / 3); }
  .tsf-about-aman__services-track img { aspect-ratio: .84; }
  .tsf-about-aman__services-track strong { font-size: clamp(28px, 2.65vw, 44px); line-height: .95; }
  .tsf-about-aman__services-track small { font-size: 11px; margin-top: 10px; }
}
@media (max-width: 760px) {
  .tsf-about-aman__services { padding-top: 44px; }
  .tsf-about-aman__services header { padding-left: 28px; padding-right: 28px; }
  .tsf-about-aman__services header h2 { font-size: 43px; }
  .tsf-about-aman__services-track a { min-height: 410px; }
  .tsf-about-aman__services-track img { aspect-ratio: auto; height: 100%; }
}

/* Final shared enquiry-form system: Feria's forest tone, softened one step. */
:root { --tsf-form-green: #405149; --tsf-form-green-dark: #34433d; }
.tsf-balcony-form {
  background: var(--tsf-form-green) !important;
  box-shadow: 14px 15px 0 rgba(31, 52, 45, .16) !important;
  color: #fff !important;
}
.tsf-balcony-form::before { opacity: .13 !important; }
.tsf-balcony-form select option { background: var(--tsf-form-green-dark) !important; color: #fff !important; }
.tsf-balcony-form .tsf-form-heading p,
.tsf-balcony-form .tsf-form-heading span,
.tsf-balcony-form .tsf-form-grid label,
.tsf-balcony-form .tsf-form-consent span,
.tsf-balcony-form .tsf-form-footer p { color: #fff !important; }
.tsf-balcony-form input:not([type="checkbox"]),
.tsf-balcony-form select,
.tsf-balcony-form textarea { border-bottom-color: rgba(255,255,255,.62) !important; color: #fff !important; }
.tsf-balcony-form input::placeholder,
.tsf-balcony-form textarea::placeholder { color: rgba(255,255,255,.72) !important; }
.tsf-balcony-form .tsf-form-submit {
  background: #fffaf4 !important;
  border-color: #fffaf4 !important;
  color: var(--tsf-form-green) !important;
}
.tsf-balcony-form input:-webkit-autofill,
.tsf-balcony-form input:-webkit-autofill:hover,
.tsf-balcony-form input:-webkit-autofill:focus,
.tsf-balcony-form select:-webkit-autofill,
.tsf-balcony-form select:-webkit-autofill:hover,
.tsf-balcony-form select:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--tsf-form-green) inset !important;
}
.tsf-service-multistep__progress li span {
  background: #fff;
  border-color: #fff;
  color: var(--tsf-form-green);
}
.tsf-service-multistep__progress li.is-current span,
.tsf-service-multistep__progress li.is-complete span {
  background: var(--red, #c6192e);
  border-color: var(--red, #c6192e);
  color: #fff;
}
.tsf-service-multistep__progress li.is-complete:not(:last-child)::after { background: var(--red, #c6192e); }
@media (min-width: 681px) {
  .tsf-balcony-form.tsf-service-multistep { padding: clamp(24px, 2.35vw, 34px); }
  .tsf-balcony-form.tsf-service-multistep .tsf-service-multistep__progress { margin: 17px 0 14px; }
  .tsf-balcony-form.tsf-service-multistep .tsf-service-multistep__step .tsf-form-grid {
    gap: 14px 20px;
    margin-top: 12px;
    padding: 9px 0 7px;
  }
  .tsf-balcony-form.tsf-service-multistep .tsf-form-footer { margin-top: 8px; }
}

/* Keep the actual enquiry card—not its whole side column—centered while reading. */
@media (min-width: 961px) {
  .tsf-balcony-consultation__grid { align-items: stretch; }
  .tsf-balcony-form-stage {
    align-self: stretch;
    position: relative;
    top: auto;
    transform: none;
  }
  .tsf-balcony-form-stage > .tsf-balcony-form {
    position: sticky;
    /* Centre in the usable reading area below the fixed navigation, not behind it. */
    top: calc(50vh + 70px);
    transform: translateY(-50%);
  }
}

/* Tours catalogue: every proposal leads to its own enquiry form, never away
   to the generic contact page. */
.tsf-service-landing--tours .tsf-tours-route__cta {
  align-items: center;
  background: var(--red, #c6192e);
  border-radius: 8px;
  color: #fff !important;
  display: inline-flex;
  font-family: var(--font-ui, sans-serif);
  font-size: 11px;
  font-weight: 700;
  gap: 16px;
  letter-spacing: .08em;
  line-height: 1;
  margin-top: 20px;
  padding: 15px 17px;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: background .2s ease, transform .2s ease;
}
.tsf-service-landing--tours .tsf-tours-route__cta:hover,
.tsf-service-landing--tours .tsf-tours-route__cta:focus-visible {
  background: var(--ink, #171411);
  color: #fff !important;
  transform: translateY(-2px);
}
.tsf-service-landing--tours .tsf-tours-route__cta span { font-size: 17px; line-height: .65; }

/* Final San Fermín packs: the existing editorial list now carries the full
   itinerary, while keeping the same calm, two-column reading structure. */
.tsf-experiences-editorial__list article > div { grid-column: 2; min-width: 0; }
.tsf-experiences-editorial__list article small { color: var(--red, #c6192e); display: block; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .09em; margin: 0 0 8px; text-transform: uppercase; }
.tsf-experiences-editorial__list .tsf-experiences-editorial__lead { color: var(--ink, #171411); font-family: var(--font-subtitle, Georgia, serif); font-size: 18px; line-height: 1.35; margin: 9px 0 21px; }
.tsf-experiences-editorial__list h4 { color: var(--red, #c6192e); font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; letter-spacing: .1em; margin: 22px 0 10px; text-transform: uppercase; }
.tsf-experiences-editorial__list ul { color: #665c53; font-family: var(--font-ui, sans-serif); font-size: 14px; line-height: 1.62; list-style: none; margin: 0; padding: 0; }
.tsf-experiences-editorial__list li { padding-left: 16px; position: relative; }
.tsf-experiences-editorial__list li::before { color: var(--red, #c6192e); content: '•'; left: 0; position: absolute; }
.tsf-experiences-editorial__list a:not(.tsf-experiences-editorial__cta) { color: var(--red, #c6192e); text-decoration: underline; text-decoration-color: rgba(198, 25, 46, .35); text-underline-offset: 3px; }
.tsf-experiences-editorial__list .tsf-experiences-editorial__extras { border-top: 1px solid rgba(18, 18, 18, .16); padding-top: 12px; }
.tsf-experiences-editorial__cta { align-items: center; background: var(--red, #c6192e); border-radius: 8px; color: #fff !important; display: inline-flex; font-family: var(--font-ui, sans-serif); font-size: 10px; font-weight: 700; gap: 15px; letter-spacing: .08em; margin-top: 24px; padding: 14px 16px; text-decoration: none !important; text-transform: uppercase; }
.tsf-experiences-editorial__cta:hover, .tsf-experiences-editorial__cta:focus-visible { background: var(--ink, #171411); color: #fff !important; }
.tsf-experiences-editorial__cta span { font-size: 17px; line-height: .7; }
@media (max-width: 600px) {
  .tsf-experiences-editorial__list article > div { grid-column: 2; }
  .tsf-experiences-editorial__list ul { font-size: 13px; }
}

/* Script-controlled hand-off: the form floats only while there is editorial
   content beside it, then docks above the following information card. */
@media (min-width: 961px) {
  .tsf-balcony-form-stage > .tsf-balcony-form {
    position: static !important;
    top: auto !important;
    transform: none !important;
  }
  .tsf-balcony-form-stage.is-form-floating > .tsf-balcony-form {
    left: var(--tsf-form-floating-left) !important;
    position: fixed !important;
    top: var(--tsf-form-floating-top) !important;
    transform: none !important;
    width: var(--tsf-form-floating-width) !important;
    z-index: 4;
  }
  .tsf-balcony-form-stage.is-form-docked > .tsf-balcony-form {
    left: 0;
    position: absolute !important;
    top: var(--tsf-form-dock-top) !important;
    transform: none !important;
    width: 100% !important;
    z-index: 1;
  }
}

/* About category cards return to the original horizontal, quiet treatment. */
.tsf-about-aman__services-track a { overflow: visible; }
.tsf-about-aman__services-track a::after { display: none; }
.tsf-about-aman__services-track span {
  bottom: auto;
  left: auto;
  padding: 14px 3px 5px;
  position: static;
  right: auto;
}
.tsf-about-aman__services-track a:hover img,
.tsf-about-aman__services-track a:focus-visible img { transform: none !important; }
@media (min-width: 761px) {
  .tsf-about-aman__services-track { gap: 24px; }
  .tsf-about-aman__services-track a { flex-basis: calc((100vw - 5.3vw - 48px) / 3); }
  .tsf-about-aman__services-track img { aspect-ratio: 1.45; }
  .tsf-about-aman__services-track strong { font-size: clamp(22px, 1.6vw, 31px); line-height: 1; }
  .tsf-about-aman__services-track small { font-size: 11px; margin-top: 5px; }
}
@media (max-width: 760px) {
  .tsf-about-aman__services-track a { min-height: 0; }
  .tsf-about-aman__services-track img { aspect-ratio: 1.45; height: auto; }
}

/* Dates of San Fermín 2027: a calm, answer-first SEO landing. */
.tsf-dates { background: #f9f4ec; color: var(--ink, #171411); }
.tsf-dates-hero { background: #f4dada; overflow: hidden; padding: clamp(54px, 6.5vw, 104px) 0; }
.tsf-dates-hero__grid,
.tsf-dates-editorial__grid { align-items: center; display: grid; gap: clamp(38px, 6vw, 104px); grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
.tsf-dates-hero__copy { max-width: 610px; }
.tsf-dates .tsf-label { color: var(--red, #c6192e); }
.tsf-dates h1,
.tsf-dates h2,
.tsf-dates h3 { font-family: var(--font-display); font-weight: 500; }
.tsf-dates h1 { font-size: clamp(54px, 6vw, 92px); letter-spacing: -.055em; line-height: .87; margin: 14px 0 26px; }
.tsf-dates-hero__answer { font-family: var(--font-display); font-size: clamp(27px, 2.2vw, 37px); line-height: 1.05; margin: 0 0 18px; }
.tsf-dates-hero__copy > p:not(.tsf-label):not(.tsf-dates-hero__answer) { font-size: 17px; line-height: 1.65; margin: 0 0 27px; max-width: 560px; }
.tsf-dates-hero__visual { margin: 0; position: relative; }
.tsf-dates-hero__visual::after { border: 1px solid rgba(198, 25, 46, .55); content: ''; inset: 16px -16px -16px 16px; pointer-events: none; position: absolute; }
.tsf-dates-hero__visual img { display: block; height: clamp(310px, 38vw, 560px); object-fit: cover; position: relative; width: 100%; z-index: 1; }
.tsf-dates-hero__visual figcaption { color: #725754; font-size: 11px; letter-spacing: .08em; margin-top: 16px; text-transform: uppercase; }
.tsf-dates-calendar { background: #f9f4ec; padding: clamp(66px, 8vw, 124px) 0; }
.tsf-dates-calendar__heading { display: grid; gap: 0 clamp(44px, 7vw, 132px); grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr); margin-bottom: clamp(36px, 5vw, 70px); }
.tsf-dates-calendar__heading .tsf-label { grid-column: 1 / -1; }
.tsf-dates-calendar h2 { font-size: clamp(40px, 4.4vw, 70px); letter-spacing: -.045em; line-height: .93; margin: 14px 0 0; }
.tsf-dates h2 em { color: var(--red, #c6192e); font-style: italic; }
.tsf-dates-calendar__heading > p:last-child { align-self: end; font-size: 15px; line-height: 1.65; margin: 0; max-width: 495px; }
.tsf-dates-calendar__days { border-bottom: 1px solid rgba(24, 20, 17, .2); border-top: 1px solid rgba(24, 20, 17, .2); display: grid; grid-template-columns: repeat(3, 1fr); }
.tsf-dates-calendar__days article { display: grid; gap: 22px; grid-template-columns: auto 1fr; min-height: 210px; padding: clamp(26px, 3vw, 45px) clamp(20px, 3vw, 48px); }
.tsf-dates-calendar__days article + article { border-left: 1px solid rgba(24, 20, 17, .2); }
.tsf-dates-calendar__days > article > span { color: var(--red, #c6192e); font-family: var(--font-display); font-size: clamp(36px, 3.5vw, 58px); letter-spacing: -.06em; line-height: .78; }
.tsf-dates-calendar__days small { color: #8e665d; display: block; font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.tsf-dates-calendar__days h3 { font-size: clamp(25px, 2.25vw, 34px); line-height: 1; margin: 9px 0; }
.tsf-dates-calendar__days p { font-size: 13px; line-height: 1.55; margin: 0; }
.tsf-dates-editorial { background: #f1d7d4; padding: clamp(64px, 8vw, 120px) 0; }
.tsf-dates-editorial__grid { grid-template-columns: minmax(260px, .76fr) minmax(0, 1.05fr); max-width: 1380px; }
.tsf-dates-editorial__visual { margin: 0; }
.tsf-dates-editorial__visual img { display: block; height: clamp(380px, 43vw, 610px); object-fit: cover; width: 100%; }
.tsf-dates-editorial__copy { max-width: 640px; }
.tsf-dates-editorial h2 { font-size: clamp(42px, 4.7vw, 74px); letter-spacing: -.05em; line-height: .91; margin: 13px 0 26px; }
.tsf-dates-editorial__copy > p:not(.tsf-label) { font-size: 17px; line-height: 1.65; margin: 0 0 18px; }
.tsf-dates-editorial__copy .tsf-text-link { margin-top: 12px; }
.tsf-dates-faq { background: #f9f4ec; padding: clamp(68px, 8vw, 125px) 0; }
.tsf-dates-faq__grid { display: grid; gap: clamp(44px, 8vw, 145px); grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); }
.tsf-dates-faq h2 { font-size: clamp(41px, 4.1vw, 64px); letter-spacing: -.045em; line-height: .92; margin: 14px 0 25px; }
.tsf-dates-faq header > p:last-child { font-size: 15px; line-height: 1.65; max-width: 410px; }
.tsf-dates-faq__items { border-top: 1px solid rgba(24, 20, 17, .22); }
.tsf-dates-faq details { border-bottom: 1px solid rgba(24, 20, 17, .22); }
.tsf-dates-faq summary { align-items: center; cursor: pointer; display: flex; font-family: var(--font-display); font-size: clamp(24px, 2vw, 32px); gap: 26px; justify-content: space-between; line-height: 1.05; list-style: none; padding: 24px 0; }
.tsf-dates-faq summary::-webkit-details-marker { display: none; }
.tsf-dates-faq summary span { align-items: center; border: 1px solid var(--red, #c6192e); border-radius: 50%; color: var(--red, #c6192e); display: inline-flex; flex: 0 0 auto; font-family: Arial, sans-serif; font-size: 22px; height: 28px; justify-content: center; line-height: 1; transition: .2s ease; width: 28px; }
.tsf-dates-faq details[open] summary span { background: var(--red, #c6192e); color: #fff; transform: rotate(45deg); }
.tsf-dates-faq details p { font-size: 15px; line-height: 1.68; margin: -3px 45px 25px 0; max-width: 700px; }
@media (max-width: 767px) {
  .tsf-dates-hero { padding: 48px 0 60px; }
  .tsf-dates-hero__grid,
  .tsf-dates-editorial__grid,
  .tsf-dates-faq__grid { display: block; }
  .tsf-dates h1 { font-size: 57px; }
  .tsf-dates-hero__visual { margin-top: 36px; }
  .tsf-dates-hero__visual img { height: 295px; }
  .tsf-dates-calendar__heading { display: block; }
  .tsf-dates-calendar__heading > p:last-child { margin-top: 22px; }
  .tsf-dates-calendar__days { display: block; }
  .tsf-dates-calendar__days article { min-height: 0; }
  .tsf-dates-calendar__days article + article { border-left: 0; border-top: 1px solid rgba(24, 20, 17, .2); }
  .tsf-dates-editorial__visual { margin-bottom: 38px; }
  .tsf-dates-editorial__visual img { height: 410px; }
  .tsf-dates-faq__items { margin-top: 38px; }
  .tsf-dates-faq summary { font-size: 26px; }
}

/* Mónica's closing note now leads the eye across to the next chapter. */
@media (min-width: 761px) {
  .tsf-about-aman__monica { padding-bottom: clamp(132px, 10.5vw, 182px); }
  .tsf-about-aman__copy--monica .tsf-about-aman__note {
    max-width: none;
    white-space: nowrap;
  }
  .tsf-about-aman__arrow--monica {
    bottom: clamp(26px, 3vw, 52px);
    height: clamp(130px, 11vw, 205px);
    left: 4.6vw;
    right: auto;
    transform: none;
    width: min(76vw, 1320px);
  }
}
@media (max-width: 760px) {
  .tsf-about-aman__monica { padding-bottom: 112px; }
  .tsf-about-aman__copy--monica .tsf-about-aman__note { max-width: none; white-space: nowrap; }
  .tsf-about-aman__arrow--monica {
    bottom: 20px;
    height: 88px;
    left: 12%;
    right: auto;
    transform: none;
    width: 250px;
  }
}

/* The closing invitation now hands the story to the category cards below. */
.tsf-about-aman__farewell {
  min-height: clamp(238px, 21vw, 330px);
  padding: clamp(46px, 5.2vw, 78px) 28px clamp(96px, 8vw, 132px);
  position: relative;
}
.tsf-about-aman__farewell-arrow {
  height: clamp(82px, 8vw, 126px);
  top: auto;
  bottom: clamp(54px, 4vw, 68px);
  width: clamp(112px, 12vw, 174px);
}
.tsf-about-aman__farewell-arrow--left { left: max(8vw, calc(50% - 520px)); }
.tsf-about-aman__farewell-arrow--right { right: max(8vw, calc(50% - 520px)); }
@media (max-width: 760px) {
  .tsf-about-aman__farewell { min-height: 242px; padding: 48px 24px 102px; }
  .tsf-about-aman__farewell-arrow { bottom: 22px; height: 64px; width: 92px; }
  .tsf-about-aman__farewell-arrow--left { left: 8%; }
  .tsf-about-aman__farewell-arrow--right { right: 8%; }
}

/* Territory enquiry landings: one shared, mathematically centred hero rhythm. */
@media (min-width: 768px) {
  .tsf-territory-landing .tsf-balcony-hero {
    min-height: clamp(470px, 37vw, 520px);
  }
  .tsf-territory-landing .tsf-balcony-hero__inner {
    justify-content: center;
    min-height: inherit;
    padding-bottom: 0;
    padding-top: 0;
  }
}

/* Territory breadcrumbs follow the same rhythm as the balcony landing:
   directly after the banner, with the breathing room kept below them. */
@media (min-width: 961px) {
  .tsf-territory-landing .tsf-balcony-consultation { padding-top: 0; }
  .tsf-territory-landing .tsf-architecture-breadcrumbs {
    margin-bottom: clamp(52px, 5vw, 84px);
  }
}

/* Tours catalogue: give each final proposal a clear editorial subheading. */
.tsf-service-landing--tours .tsf-tours-route__tagline {
  color: var(--red, #c6192e);
  display: block;
  font-family: var(--font-display, Georgia, serif);
  font-size: 18px;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.15;
  margin-bottom: 10px;
}
.tsf-service-landing--tours .tsf-balcony-route > p b { color: #312a25; }
.tsf-service-landing--tours .tsf-balcony-route > p a {
  color: var(--red, #c6192e);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .16em;
}

/* Footer consultation: a restrained red card that remains clearly actionable. */
.tsf-footer-consult {
  background: var(--red, #c6192e);
  border: 1px solid var(--red, #c6192e);
  border-bottom: 1px solid var(--red, #c6192e);
  border-radius: 3px;
  color: #fff;
  justify-content: space-between;
  min-width: 218px;
  padding: 14px 16px;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.tsf-footer-consult span { color: #fff; margin-left: 20px; }
.tsf-footer-consult:hover,
.tsf-footer-consult:focus-visible { background: #a91427; border-color: #a91427; color: #fff; text-decoration: none; transform: translateY(-1px); }
.tsf-footer-consult:hover span { transform: translateX(4px); }

/* Photography credits remain present on every page without competing with the footer navigation. */
.tsf-footer-credits {
  color: rgba(255,255,255,.48);
  font-family: var(--font-ui, sans-serif);
  font-size: 9px;
  letter-spacing: .07em;
  margin: 14px 0 0;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .tsf-footer-credits { font-size: 8px; line-height: 1.5; margin-top: 12px; }
}

/* Pobre de mí returns to the shared, pale-red consultation palette. */
.tsf-service-landing--pobre-de-mi .tsf-balcony-consultation { background: #f4dfda; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-story { color: #28201d; }
.tsf-service-landing--pobre-de-mi .tsf-balcony-story .tsf-label,
.tsf-service-landing--pobre-de-mi .tsf-balcony-story h2 em { color: var(--red, #c6192e); }
.tsf-service-landing--pobre-de-mi .tsf-balcony-story p,
.tsf-service-landing--pobre-de-mi .tsf-story-flow p { color: #554f49; }
.tsf-service-landing--pobre-de-mi .tsf-story-flow p strong { color: var(--red, #c6192e); }

/* Home territory map: distinct, irregular regional outlines make the north legible
   at a glance, including Iparralde beyond Gipuzkoa and Navarra. */
.tsf-map-interactive { aspect-ratio: 720 / 460; }
.tsf-region-iparralde { fill: url(#tsf-iparralde); }
.tsf-region-bizkaia { fill: url(#tsf-bizkaia); }
.tsf-region-gipuzkoa { fill: url(#tsf-gipuzkoa); }
.tsf-region-alava { fill: url(#tsf-alava); }
.tsf-region-navarra { fill: url(#tsf-navarra); }
.tsf-map-destination-pamplona { left: 59%; top: 62.4%; }
.tsf-map-destination-bilbao { left: 25.1%; top: 34.6%; }
.tsf-map-destination-roncesvalles { left: 72.2%; top: 45%; }
.tsf-map-destination-donosti { left: 61.4%; top: 32.6%; }
.tsf-map-destination-iparralde { left: 79.7%; top: 25.4%; }
.tsf-map-interactive.is-active-iparralde .tsf-map-route:not(.tsf-map-route-iparralde) { opacity: .18; }
.tsf-map-interactive.is-active-iparralde .tsf-map-route-iparralde { opacity: 1; stroke: #fff8ee; stroke-width: 3; }
/* Pajarita roja: sustituye de forma consistente todos los antiguos motivos
   de pañuelo y mantiene el estampado de las consultas ligero y legible. */
.tsf-countdown::after,
.tsf-territory::before,
.tsf-contact::before,
.tsf-calendar-lab .tsf-label::before,
.tsf-faq .tsf-label::before,
.tsf-guide .tsf-label::before,
.tsf-guide-faq .tsf-label::before,
.tsf-service-faq .tsf-label::before,
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner {
  background-image: url("../images/san-fermin-bow.svg?v=20260911") !important;
}

.tsf-contact-form::before,
.tsf-contact-page__form::before,
.tsf-contact-form.tsf-balcony-form::before {
  background-image: url("../images/san-fermin-bow-form-pattern.svg?v=20260911") !important;
}

/* The remaining red editorial rails used a bull-head print. They now share
   the same tonal bow-tie textile as the rest of the visual system. */
.tsf-balcony-moments--carousel::before,
.tsf-journal::before {
  background-image: url("../images/san-fermin-bow-form-pattern.svg?v=20260911") !important;
}

/* Step three starts compact; JavaScript expands the note as it is written. */
.tsf-service-multistep textarea[name="mensaje"] {
  box-sizing: border-box;
  height: 56px;
  min-height: 56px !important;
  overflow-y: hidden;
  resize: none;
}

/* Keep the consultation and the following reading block visually connected.
   The former lower padding left an unnecessary empty band on every form page. */
.tsf-balcony-landing .tsf-balcony-consultation {
  padding-bottom: clamp(44px, 4.5vw, 68px);
}

@media (max-width: 680px) {
  .tsf-balcony-landing .tsf-balcony-consultation { padding-bottom: 48px; }
}

/* Dates 2027: a restrained photographic banner followed by compact, alternating reading blocks. */
.tsf-dates { background: #f9f4ec; }
.tsf-dates-hero { min-height: clamp(440px, 52vw, 650px); padding: 0; position: relative; display: flex; align-items: end; }
.tsf-dates-hero__visual { inset: 0; margin: 0; overflow: hidden; position: absolute; }
.tsf-dates-hero__visual img { display: block; height: 100%; object-fit: cover; width: 100%; }
.tsf-dates-hero__shade { background: linear-gradient(90deg, rgba(18, 12, 10, .68) 0%, rgba(18, 12, 10, .38) 50%, rgba(18, 12, 10, .12) 100%); inset: 0; position: absolute; }
.tsf-dates-hero__content { color: #fff; max-width: 760px; padding-bottom: clamp(52px, 6vw, 100px); position: relative; z-index: 1; }
.tsf-dates-hero .tsf-label { color: #fff; }
.tsf-dates-hero h1 { color: #fff; font-size: clamp(56px, 6.4vw, 104px); line-height: .86; margin: 14px 0 20px; max-width: 700px; }
.tsf-dates-hero__content > p:not(.tsf-label) { font-family: var(--font-subtitle); font-size: clamp(21px, 2vw, 30px); line-height: 1.25; margin: 0 0 26px; max-width: 610px; }
.tsf-dates-hero .tsf-button { background: #fff; color: var(--red, #c6192e); }
.tsf-dates-editorial { background: #f9f4ec; padding: clamp(54px, 6vw, 88px) 0; }
.tsf-dates-editorial--morning { background: #f3dddd; }
.tsf-dates-editorial__grid { align-items: center; gap: clamp(36px, 5vw, 84px); grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); max-width: 1250px; }
.tsf-dates-editorial__visual img { height: clamp(260px, 28vw, 390px); object-fit: cover; }
.tsf-dates-editorial__copy { max-width: 560px; }
.tsf-dates-editorial h2 { font-size: clamp(38px, 4.2vw, 63px); line-height: .91; margin: 11px 0 18px; }
.tsf-dates-editorial__copy > p:not(.tsf-label):not(.tsf-dates-editorial__note) { font-size: 16px; line-height: 1.6; margin-bottom: 14px; }
.tsf-dates-editorial__note { border-top: 1px solid rgba(24, 20, 17, .25); color: var(--red, #c6192e); font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: .06em; line-height: 1.55; margin: 22px 0 0; padding-top: 14px; text-transform: uppercase; }
.tsf-dates-editorial .tsf-text-link { margin-top: 20px; }
.tsf-dates-calendar { padding: clamp(62px, 7vw, 102px) 0; }
.tsf-dates-calendar__heading { align-items: end; grid-template-columns: minmax(0, .9fr) minmax(290px, .7fr); margin-bottom: clamp(30px, 4vw, 54px); }
.tsf-dates-calendar__heading h2 { margin-top: 12px; }
.tsf-dates-calendar__days { grid-template-columns: repeat(5, 1fr); }
.tsf-dates-calendar__days article { gap: 14px; grid-template-columns: 1fr; min-height: 210px; padding: clamp(20px, 2.2vw, 32px) clamp(17px, 1.8vw, 25px); }
.tsf-dates-calendar__days h3 { font-size: clamp(23px, 1.9vw, 30px); }
.tsf-dates-calendar__days p { font-size: 12px; }
.tsf-dates-calendar__disclaimer { color: #6b5a54; font-size: 12px; line-height: 1.55; margin: 18px 0 0; max-width: 700px; }
@media (max-width: 900px) {
  .tsf-dates-calendar__days { grid-template-columns: repeat(2, 1fr); }
  .tsf-dates-calendar__days article:nth-child(4) { border-left: 0; }
  .tsf-dates-calendar__days article:nth-child(n+3) { border-top: 1px solid rgba(24, 20, 17, .2); }
}
@media (max-width: 767px) {
  .tsf-dates-hero { min-height: 470px; }
  .tsf-dates-hero__shade { background: linear-gradient(0deg, rgba(18, 12, 10, .75), rgba(18, 12, 10, .22)); }
  .tsf-dates-hero__content { padding-bottom: 48px; }
  .tsf-dates-hero h1 { font-size: 58px; }
  .tsf-dates-editorial__grid { display: flex; flex-direction: column; }
  .tsf-dates-editorial--morning .tsf-dates-editorial__grid { flex-direction: column-reverse; }
  .tsf-dates-editorial__visual { width: 100%; }
  .tsf-dates-editorial__visual img { height: 255px; }
  .tsf-dates-calendar__heading { display: block; }
  .tsf-dates-calendar__heading > p { margin-top: 20px; }
  .tsf-dates-calendar__days { display: block; }
  .tsf-dates-calendar__days article + article { border-left: 0; border-top: 1px solid rgba(24, 20, 17, .2); }
}

/* The enquiry card must travel only through the editorial column.  The
   supporting card stays at the bottom of that same column, so it cannot be
   crossed by the sticky form while the visitor is reading the left-hand copy. */
@media (min-width: 961px) {
  .tsf-balcony-consultation__grid { align-items: stretch; }
  .tsf-balcony-form-stage {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .tsf-balcony-form-stage > .tsf-balcony-form {
    position: sticky;
    /* Do not use a transform here: transforms are applied before sticky starts
       and were pulling the form into the hero. */
    top: max(150px, calc(50vh - 225px));
    transform: none;
    z-index: 1;
  }
  .tsf-balcony-form-stage > .tsf-balcony-inclusion {
    margin-bottom: 0;
    margin-top: auto;
  }
}

/* The bow-tie textile is exclusive to the green enquiry card.  Do not let a
   decorative layer from the surrounding column, the supporting note or an
   editorial rail bleed into the page background. */
.tsf-balcony-form-stage,
.tsf-balcony-form-stage::before,
.tsf-balcony-form-stage::after,
.tsf-balcony-inclusion,
.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner,
.tsf-balcony-moments--carousel::before,
.tsf-journal::before {
  background-image: none !important;
}

.tsf-balcony-inclusion::before,
.tsf-balcony-inclusion::after,
.tsf-balcony-inclusion__frame::before,
.tsf-balcony-inclusion__frame::after,
.tsf-balcony-inclusion__corner {
  content: none !important;
  display: none !important;
}

.tsf-contact-form.tsf-balcony-form {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.tsf-contact-form.tsf-balcony-form::before {
  background-image: url("../images/san-fermin-bow-form-pattern.svg?v=20260911") !important;
  background-position: 0 0 !important;
  background-repeat: repeat !important;
  background-size: 174px 136px !important;
  content: "" !important;
  inset: 0 !important;
}

/* Language selector: a compact editorial popover rather than a browser-like
   list.  It deliberately uses the same warm paper, red and Inter details as
   the rest of the header. */
.tsf-language-switcher {
  isolation: isolate;
  position: relative;
  z-index: 220;
}

.tsf-language-switcher summary {
  align-items: center;
  background: transparent;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 5px;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--font-ui, Inter, sans-serif);
  font-size: 10px;
  font-weight: 700;
  gap: 12px;
  letter-spacing: .09em;
  line-height: 1;
  list-style: none;
  min-height: 30px;
  padding: 0 11px 0 12px;
  text-transform: uppercase;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.tsf-language-switcher summary::-webkit-details-marker { display: none; }
.tsf-language-switcher summary i {
  border-bottom: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  display: block;
  height: 6px;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .2s ease;
  width: 6px;
}
.tsf-language-switcher summary:hover,
.tsf-language-switcher summary:focus-visible {
  background: rgba(255,255,255,.12);
  border-color: #fff;
  outline: 0;
}
.tsf-language-switcher[open] summary {
  background: #fffaf4;
  border-color: #fffaf4;
  box-shadow: 0 7px 18px rgba(64, 12, 19, .2);
  color: var(--red, #c6192e);
}
.tsf-language-switcher[open] summary i { transform: rotate(225deg) translateY(-1px); }

.tsf-language-menu {
  background: #fffaf4;
  border: 1px solid rgba(34, 27, 23, .11);
  border-radius: 7px;
  box-shadow: 0 14px 30px rgba(36, 24, 20, .17);
  color: var(--ink, #161514);
  display: grid;
  gap: 2px;
  min-width: 184px;
  padding: 7px;
  position: absolute;
  right: 0;
  top: calc(100% + 9px);
  z-index: 221;
}
.tsf-language-menu::before {
  color: #8d5b31;
  content: "IDIOMA";
  font-family: var(--font-ui, Inter, sans-serif);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .16em;
  padding: 6px 9px 5px;
}
.tsf-language-menu a,
.tsf-language-menu span {
  align-items: center;
  border-radius: 4px;
  color: inherit !important;
  display: flex;
  font-family: var(--font-ui, Inter, sans-serif);
  font-size: 13px;
  font-weight: 500;
  justify-content: space-between;
  letter-spacing: 0;
  line-height: 1.15;
  min-height: 38px;
  padding: 0 10px;
  text-align: left;
  text-decoration: none;
  text-transform: none;
  transition: background-color .18s ease, color .18s ease;
}
.tsf-language-menu a[aria-current="page"] {
  background: rgba(198,25,46,.09);
  color: var(--red, #c6192e) !important;
  font-weight: 700;
}
.tsf-language-menu a[aria-current="page"]::after {
  background: var(--red, #c6192e);
  border-radius: 50%;
  content: "";
  height: 6px;
  width: 6px;
}
.tsf-language-menu a:hover,
.tsf-language-menu a:focus-visible {
  background: rgba(198,25,46,.11);
  color: var(--red, #c6192e) !important;
  outline: 0;
}
.tsf-language-menu span[aria-disabled="true"] { color: #968b82 !important; cursor: default; }

@media (max-width: 767px) {
  .tsf-language-menu { min-width: 176px; right: auto; left: 0; }
}

/* Footer consultation uses the same quiet horizontal hover as the footer
   navigation: it keeps its red card and white type, then advances slightly. */
.tsf-footer-consult,
.tsf-footer-consult:hover,
.tsf-footer-consult:focus-visible {
  color: #fff !important;
}
.tsf-footer-consult:hover,
.tsf-footer-consult:focus-visible {
  background: var(--red, #c6192e);
  border-color: var(--red, #c6192e);
  transform: translateX(4px);
}
.tsf-footer-consult span,
.tsf-footer-consult:hover span,
.tsf-footer-consult:focus-visible span {
  color: #fff !important;
}
.tsf-footer-consult:hover span,
.tsf-footer-consult:focus-visible span { transform: translateX(3px); }

/* Primary navigation is operational UI, not editorial display type.  Every
   category—including the Reserva San Fermín disclosure—uses one Inter scale. */
@media (min-width: 768px) {
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta),
  .tsf-header .tsf-nav > .tsf-nav-dropdown > .tsf-nav-dropdown-trigger > a,
  .tsf-header .tsf-nav-dropdown--menu-only > .tsf-nav-dropdown-trigger > .tsf-nav-dropdown-primary {
    font-family: var(--font-ui, Inter, sans-serif) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: .01em !important;
    line-height: 1.2;
  }
  .tsf-header .tsf-nav-dropdown--menu-only > .tsf-nav-dropdown-trigger > .tsf-nav-dropdown-primary {
    background: transparent;
    border: 0;
    color: inherit;
    text-transform: none;
  }
}

@media (max-width: 767px) {
  .tsf-header .tsf-nav > .tsf-nav-home,
  .tsf-header .tsf-nav > .tsf-nav-dropdown > .tsf-nav-dropdown-trigger > a,
  .tsf-header .tsf-nav > a:not(.tsf-nav-cta),
  .tsf-header .tsf-nav-dropdown--menu-only > .tsf-nav-dropdown-trigger > .tsf-nav-dropdown-primary {
    font-family: var(--font-ui, Inter, sans-serif) !important;
    font-size: clamp(20px, 5.6vw, 25px) !important;
    font-weight: 500 !important;
    letter-spacing: -.02em !important;
  }
}

/* Current language selector markup: the panel is anchored below the trigger,
   above the header, and never inherits the primary-navigation layout. */
.tsf-language-switcher { overflow: visible; }
.tsf-language-switcher__toggle {
  align-items: center;
  background: transparent;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 5px;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--font-ui, Inter, sans-serif);
  font-size: 10px;
  font-weight: 700;
  gap: 10px;
  letter-spacing: .09em;
  line-height: 1;
  list-style: none;
  min-height: 30px;
  padding: 0 10px 0 12px;
}
.tsf-language-switcher__toggle::-webkit-details-marker { display: none; }
.tsf-language-switcher__chevron { font-size: 16px; line-height: .5; transition: transform .2s ease; }
.tsf-language-switcher[open] .tsf-language-switcher__toggle { background: #fffaf4; border-color: #fffaf4; box-shadow: 0 7px 18px rgba(64,12,19,.2); color: var(--red, #c6192e); }
.tsf-language-switcher[open] .tsf-language-switcher__chevron { transform: rotate(180deg); }
.tsf-language-switcher__menu {
  background: #fffaf4;
  border: 1px solid rgba(34,27,23,.12);
  border-radius: 7px;
  box-shadow: 0 14px 30px rgba(36,24,20,.17);
  display: grid;
  gap: 2px;
  min-width: 184px;
  padding: 7px;
  position: absolute;
  right: 0;
  top: calc(100% + 9px);
  z-index: 1005;
}
.tsf-language-switcher__menu a,
.tsf-language-switcher__menu span {
  align-items: center;
  border-radius: 4px;
  color: var(--ink, #161514) !important;
  display: flex;
  font-family: var(--font-ui, Inter, sans-serif);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.15;
  min-height: 38px;
  padding: 0 10px;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease;
}
.tsf-language-switcher__menu a[aria-current="true"] { background: rgba(198,25,46,.09); color: var(--red, #c6192e) !important; font-weight: 700; }
.tsf-language-switcher__menu a[aria-current="true"]::after { background: var(--red, #c6192e); border-radius: 50%; content: ""; height: 6px; margin-left: auto; width: 6px; }
.tsf-language-switcher__menu a:hover,
.tsf-language-switcher__menu a:focus-visible { background: rgba(198,25,46,.11); color: var(--red, #c6192e) !important; outline: 0; }
.tsf-language-switcher__menu [aria-disabled="true"] { color: #968b82 !important; cursor: default; }
@media (max-width: 767px) { .tsf-language-switcher__menu { left: 0; right: auto; } }
