.jtv-editorial-page { color: #1f2933; font-family: inherit; }
.jtv-editorial-hero { position: relative; display: grid; align-items: end; min-height: 310px; overflow: hidden; background: #132433; color: #fff; }
.jtv-editorial-hero.jtv-has-image { min-height: min(49vw, 490px); }
.jtv-editorial-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jtv-editorial-hero.jtv-has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4, 16, 24, .87), rgba(4, 16, 24, .12) 90%); }
.jtv-editorial-hero-inner { position: relative; z-index: 1; width: min(100% - 40px, 1100px); margin: auto; padding: 45px 0; }
.jtv-editorial-hero h1 { margin: 0 0 .45em; color: #fff; font-size: clamp(2rem, 4vw, 3.75rem); line-height: 1.12; }
.jtv-editorial-hero p { max-width: 780px; margin: 0; color: #fff; font-size: clamp(1.05rem, 1.5vw, 1.27rem); line-height: 1.5; }
.jtv-editorial-content { width: min(100% - 36px, 1060px); margin: 0 auto; padding: 38px 0 80px; font-size: 1.08rem; line-height: 1.65; }
.jtv-editorial-content h2 { margin: 1.9em 0 .5em; line-height: 1.2; }
.jtv-editorial-content h3 { margin: 1.4em 0 .35em; line-height: 1.25; }
.jtv-editorial-content p { max-width: 76ch; margin: .55em 0 1em; }
.jtv-editorial-content a { color: #0b587a; text-decoration: underline; text-underline-offset: 3px; }
.jtv-editorial-content a:focus-visible { outline: 3px solid #ff9e20; outline-offset: 3px; }
.jtv-editorial-content .jtv-cta a { display: inline-block; padding: .7em 1.15em; border-radius: 7px; background: #f59e0b; color: #17212b; font-weight: 700; text-decoration: none; }
.jtv-editorial-content table { width: 100%; min-width: 540px; margin: 1.25em 0; border-collapse: collapse; }
.jtv-editorial-content th, .jtv-editorial-content td { border: 1px solid #cbd5dc; padding: .75em; text-align: left; vertical-align: top; }
.jtv-editorial-content th { background: #eef4f7; }
.jtv-editorial-content figure { margin: 1.4em 0; }
.jtv-editorial-content figure img { display: block; width: 100%; max-height: 680px; object-fit: contain; }
.jtv-image-caption, .jtv-editorial-content figcaption { color: #475569; font-size: .92rem; }
.jtv-proof { font-weight: 700; color: #243b53; }
.jtv-local-blueprint .jtv-editorial-content { padding-top: 4px; }
.jtv-local-blueprint .jtv-lead { font-size: 1.2rem; line-height: 1.55; }
.jtv-planning-example { border: 1px solid #cbd5dc; border-radius: 10px; padding: 1rem 1.3rem; margin: 1.2rem 0; background: #f8fafb; }
.jtv-planning-example ul { margin: .7em 0 1em; padding-left: 1.5em; }
.jtv-local-blueprint .jtv-booking { margin: 2.5rem 0; }
.jtv-quick-fact { display: inline-block; margin: .3em .55em .3em 0 !important; padding: .4em .75em; border-radius: 7px; background: #eef4f7; }
.jtv-project-cards, .jtv-review-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 1.5em 0; }
.jtv-project-cards a { display: block; border: 1px solid #d6e0e6; border-radius: 10px; overflow: hidden; text-decoration: none; font-weight: 700; }
.jtv-project-cards img { display: block; width: 100%; height: 220px; object-fit: cover; }
.jtv-project-cards span { display: block; padding: 12px 15px; }
.jtv-review-cards blockquote { margin: 0; padding: 18px; border-left: 4px solid #f59e0b; background: #f8fafb; }
.jtv-review-cards cite { font-size: .86rem; font-style: normal; }
@media (max-width: 700px) {
  .jtv-editorial-hero.jtv-has-image { min-height: 380px; }
  .jtv-editorial-hero-inner { width: calc(100% - 32px); padding: 30px 0; }
  .jtv-editorial-content { width: calc(100% - 30px); padding-top: 25px; }
  .jtv-project-cards, .jtv-review-cards { grid-template-columns: 1fr; }
  .jtv-project-cards img { height: 240px; }
}
