:root {
    --jt-teal: #2f858a;
    --jt-teal-dark: #176f77;
    --jt-ink: #273546;
    --jt-border: #31415a;
    --jt-muted: #6d747c;
    --jt-cream: #fbfaf7;
    --jt-red: #f00000;
    --jt-green: #00af13;
    --jt-blue: #0615f0;
    --jt-shadow: 0 18px 42px rgba(24, 45, 55, 0.16);
}

.jt-public-shell {
    min-height: 100vh;
    background: #fff;
    color: var(--jt-ink);
    font-family: Arial, Helvetica, sans-serif;
}

.jt-public-shell * {
    box-sizing: border-box;
}

.jt-public-shell a {
    color: var(--jt-teal-dark);
    text-decoration: none;
}

.jt-public-shell a:hover,
.jt-public-shell a:focus {
    color: #10575f;
    text-decoration: underline;
}

.jt-public-header {
    background: #fff;
    border-bottom: 1px solid rgba(49, 65, 90, 0.08);
    position: relative;
    z-index: 10;
}

.jt-header-inner {
    align-items: center;
    display: flex;
    gap: clamp(2rem, 8vw, 8rem);
    justify-content: center;
    margin: 0 auto;
    max-width: 1490px;
    min-height: 150px;
    padding: 1.35rem clamp(1.25rem, 6vw, 3.75rem);
    position: relative;
}

.jt-brand,
.jt-footer-logo {
    color: var(--jt-teal-dark);
    display: inline-flex;
    flex-direction: column;
    line-height: 1;
    min-width: 250px;
    text-align: center;
    text-decoration: none;
}

.jt-brand-script {
    color: #3b8080;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(2.9rem, 5vw, 4.65rem);
    font-style: italic;
    letter-spacing: -0.08em;
    text-shadow: 0 1px 0 rgba(255,255,255,.9);
    transform: skew(-8deg);
}

.jt-brand-skyline {
    align-self: center;
    border-bottom: 5px solid #202020;
    display: block;
    height: 36px;
    margin-top: -7px;
    position: relative;
    width: 240px;
}

.jt-brand-skyline::before {
    background: linear-gradient(to top, transparent 0 7px, #202020 7px 10px, transparent 10px),
        linear-gradient(90deg, transparent 0 9px, #202020 9px 12px, transparent 12px 21px, #202020 21px 25px, transparent 25px 42px, #202020 42px 46px, transparent 46px 68px, #202020 68px 72px, transparent 72px),
        linear-gradient(90deg, #fff 0 12px, transparent 12px 29px, #fff 29px 40px, transparent 40px 61px, #fff 61px 70px, transparent 70px);
    border: 3px solid #202020;
    border-bottom: none;
    bottom: 0;
    content: '';
    height: 30px;
    left: 0;
    position: absolute;
    right: 0;
    clip-path: polygon(0 100%, 0 58%, 9% 58%, 9% 31%, 18% 31%, 18% 52%, 27% 52%, 27% 19%, 36% 19%, 36% 51%, 45% 51%, 45% 40%, 54% 40%, 54% 0, 62% 0, 62% 45%, 70% 45%, 70% 25%, 78% 25%, 78% 57%, 88% 57%, 88% 35%, 100% 35%, 100% 100%);
}

.jt-public-nav {
    align-items: center;
    display: flex;
    gap: clamp(1.6rem, 4vw, 3.75rem);
    justify-content: center;
}

.jt-public-nav a {
    color: #19747e;
    font-size: 1.1rem;
    font-weight: 700;
    white-space: nowrap;
}

.jt-nav-toggle {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.jt-nav-button {
    background: #f3f3f3;
    border-radius: 8px;
    cursor: pointer;
    display: none;
    height: 64px;
    padding: 14px;
    width: 64px;
}

.jt-nav-button span {
    background: #343a40;
    border-radius: 3px;
    display: block;
    height: 6px;
    margin: 7px 0;
}

.jt-public-main {
    background: #fff;
}

.jt-hero,
.jt-detail-hero {
    background:
        linear-gradient(rgba(15, 25, 34, .44), rgba(15, 25, 34, .48)),
        radial-gradient(circle at 54% 23%, rgba(255, 190, 120, .58), transparent 18%),
        linear-gradient(115deg, #0d273a 0%, #183f5d 33%, #905235 62%, #112b42 100%);
    min-height: 420px;
    position: relative;
    overflow: hidden;
}

.jt-hero::before,
.jt-detail-hero::before {
    border-bottom: 13px solid rgba(10, 49, 82, .95);
    border-top: 10px solid rgba(19, 67, 109, .88);
    content: '';
    height: 98px;
    left: 36%;
    position: absolute;
    right: 11%;
    top: 45%;
    transform: skewY(-2deg);
}

.jt-hero::after,
.jt-detail-hero::after {
    background:
        linear-gradient(90deg, transparent 0 13%, rgba(3, 30, 54, .95) 13% 15%, transparent 15% 53%, rgba(3, 30, 54, .95) 53% 56%, transparent 56%),
        repeating-linear-gradient(120deg, transparent 0 32px, rgba(12, 55, 91, .85) 32px 37px),
        linear-gradient(to top, rgba(49, 24, 15, .72), transparent 28%);
    bottom: 0;
    content: '';
    left: 0;
    opacity: .88;
    position: absolute;
    right: 0;
    top: 0;
}

.jt-hero-overlay {
    align-items: center;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 420px;
    padding: 3rem 1rem;
    position: relative;
    text-align: center;
    text-shadow: 0 4px 8px rgba(0, 0, 0, .48);
    z-index: 1;
}

.jt-hero h1,
.jt-hero p,
.jt-detail-hero h1 {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 800;
}

.jt-hero h1 {
    font-size: clamp(2.4rem, 4.8vw, 4.2rem);
    margin: 0 0 1.6rem;
}

.jt-hero p {
    font-size: clamp(2.05rem, 4.6vw, 4.15rem);
    line-height: 1.24;
    margin: .15rem 0;
    max-width: 1250px;
}

.jt-home-intro {
    color: var(--jt-muted);
    font-size: 1.16rem;
    line-height: 1.75;
    margin: 0 auto;
    max-width: 1040px;
    padding: 2rem 1.5rem 0;
    text-align: center;
}

.jt-section-heading {
    margin: 0 auto;
    max-width: 1120px;
    padding: 2rem 1.5rem 1rem;
    text-align: center;
}

.jt-section-heading h2 {
    color: var(--jt-teal);
    display: inline-block;
    font-size: clamp(2rem, 4vw, 3.15rem);
    font-weight: 800;
    line-height: 1.08;
    margin: 0;
    text-decoration: underline;
    text-decoration-thickness: .08em;
    text-underline-offset: .12em;
}

.jt-section-heading p {
    color: var(--jt-muted);
    font-size: 1.12rem;
    line-height: 1.65;
    margin: 1rem auto 0;
    max-width: 820px;
}

.jt-section-eyebrow {
    color: var(--jt-teal);
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .14em;
    margin-bottom: .6rem;
    text-transform: uppercase;
}

.jt-adventure-heading {
    padding-top: 1.2rem;
}

.jt-tour-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 auto 2rem;
    max-width: 1240px;
}

.jt-tour-grid-bordered {
    border-left: 3px solid var(--jt-border);
    border-top: 3px solid var(--jt-border);
}

.jt-tour-card {
    background: #fff;
    border-bottom: 3px solid var(--jt-border);
    border-right: 3px solid var(--jt-border);
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: .8rem .78rem 1rem;
    text-align: center;
}

.jt-tour-card h3 {
    font-size: clamp(1.28rem, 2vw, 1.72rem);
    font-weight: 800;
    line-height: 1.12;
    margin: .25rem 0 .25rem;
}

.jt-title-red { color: var(--jt-red); }
.jt-title-green { color: var(--jt-green); }
.jt-title-blue { color: var(--jt-blue); }
.jt-title-teal { color: var(--jt-teal); }

.jt-card-subtitle {
    color: inherit;
    font-size: 1.42rem;
    font-weight: 800;
    line-height: 1.15;
    margin: 0;
}

.jt-card-status {
    color: #444b54;
    font-size: 1.15rem;
    font-weight: 800;
    margin: 1.15rem 0 1.25rem;
}

.jt-tour-poster,
.jt-gallery-tile {
    align-items: center;
    aspect-ratio: 1 / 1;
    color: #fff;
    display: flex;
    justify-content: center;
    margin: 0 0 .25rem;
    min-height: 260px;
    overflow: hidden;
    position: relative;
    text-align: center;
    text-transform: uppercase;
}

.jt-tour-poster span,
.jt-gallery-tile span {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(2rem, 4vw, 3.6rem);
    font-weight: 900;
    letter-spacing: .05em;
    line-height: .95;
    position: relative;
    text-shadow: 0 5px 10px rgba(0,0,0,.55);
    z-index: 1;
}

.jt-gallery-tile span {
    font-size: clamp(1.25rem, 1.9vw, 1.75rem);
    letter-spacing: .03em;
    max-width: 100%;
    overflow-wrap: normal;
    padding: 0 .7rem;
}

.jt-tour-poster::after,
.jt-gallery-tile::after {
    background: linear-gradient(35deg, rgba(255,255,255,.12), transparent 37%, rgba(255,255,255,.18) 38%, transparent 50%);
    content: '';
    inset: 0;
    position: absolute;
}

.jt-poster-killer {
    background:
        radial-gradient(circle at 20% 20%, #8f0000 0 2%, transparent 3%),
        radial-gradient(circle at 67% 42%, #a00000 0 2%, transparent 3%),
        linear-gradient(rgba(255,255,255,.18), rgba(0,0,0,.15)),
        repeating-linear-gradient(90deg, rgba(0,0,0,.2) 0 2px, transparent 2px 80px),
        linear-gradient(140deg, #dedbd3, #5d6061 48%, #18191b);
    color: #b40d12;
}

.jt-poster-unmapped {
    background: radial-gradient(circle at 50% 22%, #3a2c21 0 9%, #101010 30%, #050506 58%), linear-gradient(#171717, #3d1b0d);
}

.jt-poster-market {
    background: radial-gradient(circle at 70% 32%, #ffe289 0 6%, transparent 7%), linear-gradient(155deg, #f77d4d, #f7eadc 48%, #77c8ce);
    color: #fefefe;
}

.jt-poster-fire {
    background: radial-gradient(circle at 50% 72%, #ffb000, transparent 18%), linear-gradient(160deg, #33140d, #a61609 48%, #111);
}

.jt-poster-sips {
    background: radial-gradient(circle at 72% 24%, #f7c979, transparent 11%), linear-gradient(150deg, #0e4770, #31475f 45%, #822f19);
}

.jt-poster-bites,
.jt-poster-teal {
    background: radial-gradient(circle at 24% 33%, #ffd481, transparent 9%), linear-gradient(135deg, #2f858a, #5a9882 52%, #f0b457);
}

.jt-card-copy {
    color: #6b7078;
    flex: 1;
    font-size: 1.23rem;
    line-height: 1.62;
    padding: .15rem .55rem;
}

.jt-card-copy p {
    margin: .7rem 0 1.65rem;
}

.jt-card-actions {
    color: #6b7078;
    font-size: 1.17rem;
    margin-top: auto;
}

.jt-card-actions p {
    margin: 0 0 1rem;
}

.jt-button,
.jt-outline-button {
    align-items: center;
    border-radius: 4px;
    display: inline-flex;
    font-size: 1.08rem;
    font-weight: 800;
    gap: .45rem;
    justify-content: center;
    min-width: 170px;
    padding: .84rem 1.35rem;
    text-decoration: none !important;
    text-transform: none;
}

.jt-button {
    background: var(--jt-teal);
    border: 2px solid var(--jt-teal);
    color: #fff !important;
}

.jt-button:hover,
.jt-button:focus {
    background: var(--jt-teal-dark);
    border-color: var(--jt-teal-dark);
    color: #fff !important;
}

.jt-outline-button {
    background: #fff;
    border: 2px solid var(--jt-teal);
    color: var(--jt-teal-dark) !important;
}

.jt-outline-button-light {
    background: rgba(255,255,255,.08);
    border-color: #fff;
    color: #fff !important;
}

.jt-button-wide {
    width: 100%;
}

.jt-more-options,
.jt-why,
.jt-faq-strip,
.jt-detail-bottom-cta {
    margin: 0 auto;
    max-width: 1240px;
    padding: 2.25rem 1.5rem;
}

.jt-option-grid,
.jt-credibility-grid,
.jt-review-strip {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.jt-feature-card,
.jt-credibility-grid article,
.jt-review-strip article,
.jt-detail-panel {
    background: var(--jt-cream);
    border: 1px solid rgba(49,65,90,.12);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(24, 45, 55, 0.08);
    padding: 1.5rem;
}

.jt-feature-card h3,
.jt-credibility-grid h3,
.jt-detail-content h2,
.jt-detail-facts h2,
.jt-detail-bottom-cta h2,
.jt-faq-strip h2 {
    color: var(--jt-teal-dark);
    font-weight: 800;
}

.jt-feature-card p,
.jt-credibility-grid p,
.jt-faq-strip p {
    color: var(--jt-muted);
    font-size: 1.05rem;
    line-height: 1.65;
}

.jt-why {
    border-top: 3px solid rgba(47,133,138,.35);
}

.jt-credibility-grid article span {
    color: #f4ad00;
    display: block;
    font-size: 2rem;
}

.jt-review-strip {
    margin-top: 1.5rem;
}

.jt-review-strip article {
    background: #f1f1f1;
    border: none;
    color: #111;
}

.jt-review-strip span {
    color: #f5b000;
    display: block;
    font-size: 1.15rem;
    margin: .5rem 0;
}

.jt-faq-strip {
    text-align: center;
}

.jt-public-footer {
    border-top: 3px solid rgba(47, 133, 138, .35);
    padding-top: 3rem;
}

.jt-footer-inner {
    display: grid;
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: 1.2fr .75fr 1.2fr 1.15fr;
    margin: 0 auto;
    max-width: 1500px;
    padding: 0 clamp(1.25rem, 5vw, 4rem) 2.5rem;
}

.jt-footer-inner h2 {
    color: var(--jt-teal-dark);
    font-size: 1.45rem;
    font-weight: 800;
    margin: 0 0 1.4rem;
}

.jt-footer-brand p,
.jt-footer-links,
.jt-contact-list {
    color: #67717d;
    font-size: 1rem;
    line-height: 1.8;
}

.jt-footer-logo .jt-brand-script {
    font-size: 3.7rem;
}

.jt-footer-links,
.jt-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.jt-footer-links li,
.jt-contact-list li {
    margin: .65rem 0;
}

.jt-footer-links li::before {
    color: #c7c7c7;
    content: '›';
    font-size: 1.3rem;
    margin-right: 1.2rem;
}

.jt-contact-list li {
    align-items: flex-start;
    display: grid;
    gap: 1rem;
    grid-template-columns: 1.25rem 1fr;
}

.jt-contact-list span:first-child {
    color: #bfbfbf;
}

.jt-newsletter input,
.jt-recaptcha-placeholder {
    border: 1px solid #d2d2d2;
    display: block;
    font-size: 1rem;
    margin-bottom: .8rem;
    min-height: 49px;
    padding: .85rem 1rem;
    width: 100%;
}

.jt-recaptcha-placeholder {
    align-items: center;
    color: #c22;
    display: flex;
    min-height: 96px;
}

.jt-newsletter .jt-button {
    border-radius: 0;
    letter-spacing: .35em;
    text-transform: uppercase;
}

.jt-footer-bottom {
    background: #f7f9f9;
    color: #68717a;
    padding: 1rem;
    text-align: center;
}

.jt-back-to-top {
    align-items: center;
    background: var(--jt-teal);
    border-radius: 4px;
    bottom: 1rem;
    color: #fff !important;
    display: flex;
    font-size: 2.25rem;
    font-weight: 800;
    height: 40px;
    justify-content: center;
    position: fixed;
    right: 2rem;
    text-decoration: none !important;
    width: 40px;
    z-index: 12;
}

.jt-detail-hero {
    min-height: 520px;
}

.jt-detail-hero-copy {
    color: #fff;
    margin: 0 auto;
    max-width: 1160px;
    padding: 7rem 1.5rem 4rem;
    position: relative;
    text-shadow: 0 4px 9px rgba(0,0,0,.48);
    z-index: 1;
}

.jt-detail-hero h1 {
    font-size: clamp(3.2rem, 7vw, 6rem);
    margin: .3rem 0;
}

.jt-detail-subtitle {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    font-weight: 800;
    max-width: 800px;
}

.jt-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
}

.jt-detail-shell {
    align-items: start;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    margin: 0 auto;
    max-width: 1240px;
    padding: 2.5rem 1.5rem;
}

.jt-detail-facts {
    background: #fff;
    border: 3px solid var(--jt-border);
    box-shadow: var(--jt-shadow);
    padding: 1.4rem;
    position: sticky;
    top: 1rem;
}

.jt-detail-facts dl,
.jt-detail-facts dd {
    margin: 0;
}

.jt-detail-facts div {
    border-bottom: 1px solid rgba(49,65,90,.15);
    padding: .85rem 0;
}

.jt-detail-facts dt {
    color: var(--jt-teal-dark);
    font-weight: 800;
}

.jt-detail-facts dd {
    color: var(--jt-muted);
    line-height: 1.45;
}

.jt-detail-content {
    color: #5e6872;
    font-size: 1.12rem;
    line-height: 1.72;
}

.jt-detail-content .jt-section-heading {
    padding: 0 0 1rem;
    text-align: left;
}

.jt-detail-gallery {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1.25fr .85fr .85fr;
    margin: 1.75rem 0;
}

.jt-gallery-tile {
    border-radius: 14px;
    min-height: 220px;
}

.jt-detail-two-col {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 1.5rem 0;
}

.jt-detail-panel {
    margin: 1rem 0;
}

.jt-detail-bottom-cta {
    background: var(--jt-cream);
    max-width: none;
    text-align: center;
}

@media (max-width: 950px) {
    .jt-header-inner {
        justify-content: space-between;
        min-height: 190px;
        padding: 1.5rem 9vw;
    }

    .jt-brand {
        min-width: 0;
        transform: scale(.88);
        transform-origin: left center;
    }

    .jt-nav-button {
        display: block;
    }

    .jt-public-nav {
        background: #fff;
        border-top: 1px solid rgba(49,65,90,.1);
        box-shadow: var(--jt-shadow);
        display: none;
        flex-direction: column;
        gap: 0;
        left: 0;
        padding: .75rem 1.25rem;
        position: absolute;
        right: 0;
        top: 100%;
    }

    .jt-public-nav a {
        border-bottom: 1px solid rgba(49,65,90,.08);
        display: block;
        padding: 1rem;
        width: 100%;
    }

    .jt-nav-toggle:checked ~ .jt-public-nav {
        display: flex;
    }

    .jt-hero,
    .jt-hero-overlay {
        min-height: 430px;
    }

    .jt-tour-grid,
    .jt-option-grid,
    .jt-credibility-grid,
    .jt-review-strip,
    .jt-footer-inner,
    .jt-detail-shell,
    .jt-detail-two-col {
        grid-template-columns: 1fr;
    }

    .jt-detail-facts {
        position: static;
    }

    .jt-detail-gallery {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .jt-header-inner {
        min-height: 190px;
        padding: 1.25rem 7vw;
    }

    .jt-brand-script {
        font-size: 3.15rem;
    }

    .jt-brand-skyline {
        width: 225px;
    }

    .jt-nav-button {
        height: 58px;
        width: 58px;
    }

    .jt-hero,
    .jt-hero-overlay {
        min-height: 430px;
    }

    .jt-hero h1 {
        font-size: 2.6rem;
    }

    .jt-hero p {
        font-size: 2.35rem;
    }

    .jt-section-heading h2 {
        font-size: 2.55rem;
    }

    .jt-tour-grid {
        margin-left: 0;
        margin-right: 0;
    }

    .jt-tour-card {
        padding-left: .7rem;
        padding-right: .7rem;
    }

    .jt-tour-card h3 {
        font-size: 1.75rem;
    }

    .jt-card-subtitle {
        font-size: 1.7rem;
    }

    .jt-card-copy,
    .jt-card-actions {
        font-size: 1.45rem;
        line-height: 1.7;
    }

    .jt-button,
    .jt-outline-button {
        font-size: 1.35rem;
        min-width: 230px;
        padding: .95rem 1.4rem;
    }

    .jt-tour-poster {
        min-height: 360px;
    }

    .jt-back-to-top {
        right: 1rem;
    }
}

.jt-preview-banner {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    max-width: 1180px;
    margin: 1.5rem auto 0;
    padding: 1.25rem 1.5rem;
    border: 2px solid #f2b705;
    border-radius: 1rem;
    background: #fff7d6;
    color: #332200;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.jt-preview-banner h1 {
    margin: 0.25rem 0 0.5rem;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.jt-preview-banner p {
    margin: 0.35rem 0;
}

.jt-preview-banner code {
    color: inherit;
}

.jt-preview-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.jt-account-nav {
    margin: 1.5rem auto 2rem;
    max-width: 1040px;
}

.jt-account-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: center;
}

.jt-account-nav-link {
    border: 1px solid var(--jt-border);
    border-radius: 999px;
    color: var(--jt-teal);
    font-weight: 800;
    padding: .55rem 1rem;
    text-decoration: none;
}

.jt-account-nav-link:hover,
.jt-account-nav-link:focus,
.jt-account-nav-link.active {
    background: var(--jt-teal);
    color: #fff;
}

.jt-account-nav-logout {
    color: var(--jt-muted);
}
