:root {
    --jh-pine: #0d3527;
    --jh-forest: #14583a;
    --jh-leaf: #6a9f30;
    --jh-gold: #cba54a;
    --jh-cream: #f8f4eb;
    --jh-paper: #fffdf8;
    --jh-ink: #17241d;
    --jh-muted: #5f6c64;
    --jh-orange: #f26922;
    --jh-orange-dark: #d94e10;
    --jh-line: rgba(18, 73, 47, .14);
    --jh-shadow: 0 24px 70px rgba(13, 53, 39, .12);
}

.jh-d21-body,
.jh-d21-body #page,
.jh-d21-body .site-content {
    margin: 0 !important;
    padding: 0 !important;
    background: var(--jh-paper);
}

.jh-d21,
.jh-d21 * {
    box-sizing: border-box;
}

.jh-d21 {
    margin: 0;
    overflow: hidden;
    color: var(--jh-ink);
    background: var(--jh-paper);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

.jh-d21 img {
    display: block;
    max-width: 100%;
}

.jh-d21 a {
    transition: transform .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}

.jh-d21 a:focus-visible,
.jh-d21 summary:focus-visible {
    outline: 3px solid #ffb467;
    outline-offset: 4px;
}

.jh-skip-link {
    position: fixed;
    top: -100px;
    left: 16px;
    z-index: 99999;
    padding: 10px 16px;
    border-radius: 8px;
    color: #fff;
    background: var(--jh-pine);
    font-weight: 800;
}

.jh-skip-link:focus {
    top: 12px;
}

.jh-trustbar {
    padding: .55rem 1rem;
    color: #fff;
    background: var(--jh-pine);
    text-align: center;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.jh-trustbar b {
    padding: 0 .5rem;
    color: #e2bd67;
}

.jh-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(100% - 48px, 1180px);
    height: 82px;
    margin: 0 auto;
}

.jh-brand {
    display: block;
    width: 160px;
    height: 68px;
    overflow: hidden;
}

.jh-brand img,
.jh-footer > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

.jh-header-note {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #5a685f;
    font-size: .82rem;
    font-weight: 750;
}

.jh-header-note span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--jh-leaf);
    box-shadow: 0 0 0 5px rgba(106, 159, 48, .13);
}

.jh-header-cta {
    padding: .7rem 1.1rem;
    border: 1px solid rgba(13, 53, 39, .28);
    border-radius: 999px;
    color: var(--jh-pine);
    font-size: .88rem;
    font-weight: 850;
    text-decoration: none;
}

.jh-header-cta:hover {
    color: #fff;
    background: var(--jh-pine);
    transform: translateY(-2px);
}

.jh-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .98fr);
    min-height: 700px;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 12%, rgba(203, 165, 74, .13), transparent 28%),
        linear-gradient(130deg, #fcfaf5, #eef5ed);
}

.jh-hero-copy {
    position: relative;
    z-index: 2;
    align-self: center;
    width: min(600px, calc(100% - 48px));
    margin-left: max(24px, calc((100vw - 1180px) / 2));
    padding: 72px 34px 80px 0;
}

.jh-eyebrow,
.jh-kicker {
    margin: 0 0 1rem;
    color: var(--jh-forest);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.jh-eyebrow span {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: .55rem;
    border-radius: 50%;
    background: var(--jh-leaf);
    box-shadow: 0 0 0 5px rgba(106, 159, 48, .13);
}

.jh-kicker-light {
    color: #e5c66f;
}

.jh-d21 h1,
.jh-d21 h2,
.jh-d21 h3,
.jh-d21 h4,
.jh-d21 p {
    padding: 0;
}

.jh-d21 h1 {
    max-width: 680px;
    margin: 0;
    color: #102f24;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 5vw, 5.45rem);
    line-height: .98;
    letter-spacing: -.055em;
}

.jh-lead {
    max-width: 590px;
    margin: 1.6rem 0 2rem;
    color: #44544a;
    font-size: 1.13rem;
}

.jh-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 58px;
    padding: .9rem 1.5rem;
    border-radius: 14px;
    color: #fff !important;
    background: linear-gradient(135deg, #ff7a28, var(--jh-orange));
    box-shadow: 0 14px 30px rgba(242, 105, 34, .27);
    font-size: .95rem;
    font-weight: 900;
    letter-spacing: .025em;
    text-decoration: none !important;
    text-transform: uppercase;
}

.jh-cta b {
    font-size: 1.35rem;
}

.jh-cta:hover {
    color: #fff;
    background: linear-gradient(135deg, #ff8b43, var(--jh-orange-dark));
    box-shadow: 0 18px 36px rgba(242, 105, 34, .34);
    transform: translateY(-3px);
}

.jh-microproof {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.1rem;
    margin-top: 1.15rem;
    color: #45554b;
    font-size: .83rem;
    font-weight: 700;
}

.jh-hero-visual {
    position: relative;
    isolation: isolate;
    min-height: 700px;
}

.jh-hero-visual::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    background:
        linear-gradient(90deg, #eef5ed 0, transparent 22%),
        linear-gradient(0deg, rgba(13, 53, 39, .4), transparent 48%);
}

.jh-hero-photo {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 63% center;
}

.jh-hero-book {
    position: absolute;
    bottom: -2%;
    left: 4%;
    width: min(48%, 360px);
    filter: drop-shadow(0 28px 28px rgba(11, 35, 25, .3));
    transform: rotate(-2deg);
}

.jh-hero-badge {
    position: absolute;
    right: 4%;
    bottom: 4%;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 18px;
    color: #fff;
    background: rgba(13, 53, 39, .82);
    box-shadow: 0 16px 32px rgba(13, 53, 39, .2);
    backdrop-filter: blur(8px);
}

.jh-hero-badge strong {
    color: #f3ce6c;
    font-family: Georgia, serif;
    font-size: 2.25rem;
    line-height: 1;
}

.jh-hero-badge span {
    font-size: .72rem;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.jh-section {
    padding: 108px 24px;
}

.jh-heading {
    max-width: 790px;
    margin: 0 auto 50px;
    text-align: center;
}

.jh-heading h2,
.jh-method-copy > h2,
.jh-benefits-copy h2,
.jh-offer-visual h2,
.jh-faq-intro h2,
.jh-guarantee-card h2,
.jh-final h2 {
    margin: 0 0 1rem;
    color: var(--jh-pine);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 4vw, 4rem);
    line-height: 1.05;
    letter-spacing: -.04em;
}

.jh-heading > p:last-child,
.jh-intro,
.jh-benefits-copy > p,
.jh-faq-intro > p {
    color: var(--jh-muted);
    font-size: 1.05rem;
}

.jh-pain {
    background: #fff;
}

.jh-pain-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    max-width: 1080px;
    margin: 0 auto;
}

.jh-pain-grid article {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    min-height: 128px;
    padding: 24px;
    border: 1px solid var(--jh-line);
    border-radius: 20px;
    background: #fffdfa;
    box-shadow: 0 10px 28px rgba(21, 58, 41, .05);
}

.jh-pain-grid i {
    display: grid;
    flex: 0 0 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    color: var(--jh-forest);
    background: #edf5e9;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 900;
}

.jh-pain-grid p {
    margin: .15rem 0 0;
    color: #3f5046;
    font-weight: 650;
}

.jh-transition-copy {
    max-width: 780px;
    margin: 42px auto 0;
    text-align: center;
}

.jh-transition-copy span {
    display: inline-block;
    padding: 15px 22px;
    border-radius: 999px;
    color: var(--jh-pine);
    background: #edf5e9;
    font-family: Georgia, serif;
    font-size: 1.14rem;
    font-style: italic;
    font-weight: 700;
}

.jh-method {
    background: var(--jh-cream);
}

.jh-method-layout {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    gap: clamp(44px, 7vw, 92px);
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
}

.jh-method-image {
    position: relative;
}

.jh-method-image > img {
    width: 100%;
    min-height: 620px;
    border-radius: 32px;
    box-shadow: var(--jh-shadow);
    object-fit: cover;
}

.jh-image-note {
    position: absolute;
    right: -26px;
    bottom: 30px;
    display: grid;
    max-width: 250px;
    padding: 18px 20px;
    border-radius: 18px;
    color: #fff;
    background: var(--jh-pine);
    box-shadow: 0 15px 35px rgba(13, 53, 39, .22);
}

.jh-image-note b {
    color: #e6c86f;
    font-size: .88rem;
    text-transform: uppercase;
}

.jh-image-note span {
    font-size: .82rem;
}

.jh-method-copy > h2 {
    max-width: 620px;
}

.jh-pillars {
    display: grid;
    gap: 10px;
    margin-top: 30px;
}

.jh-pillars article {
    display: flex;
    align-items: flex-start;
    gap: 17px;
    padding: 15px 16px;
    border: 1px solid transparent;
    border-radius: 17px;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.jh-pillars article:hover {
    border-color: var(--jh-line);
    background: rgba(255, 255, 255, .62);
    transform: translateX(5px);
}

.jh-pillars i {
    display: grid;
    flex: 0 0 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--jh-forest);
    font-size: .76rem;
    font-style: normal;
    font-weight: 900;
}

.jh-pillars h3 {
    margin: 0 0 3px;
    color: var(--jh-pine);
    font-size: 1rem;
}

.jh-pillars p {
    margin: 0;
    color: #5b6a61;
    font-size: .91rem;
}

.jh-benefits {
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(106, 159, 48, .22), transparent 34%),
        linear-gradient(135deg, #0d3527, #154e36);
}

.jh-benefits-layout {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    gap: clamp(45px, 8vw, 100px);
    align-items: center;
    max-width: 1120px;
    margin: 0 auto;
}

.jh-benefits-copy h2 {
    color: #fff;
}

.jh-benefits-copy > p {
    color: rgba(255, 255, 255, .72);
}

.jh-benefit-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.jh-benefit-list div {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 15px 17px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 16px;
    background: rgba(255, 255, 255, .07);
    backdrop-filter: blur(5px);
}

.jh-benefit-list i {
    display: grid;
    flex: 0 0 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    color: var(--jh-pine);
    background: #e5c66f;
    font-style: normal;
    font-weight: 900;
}

.jh-benefit-list span {
    font-size: .91rem;
    font-weight: 720;
}

.jh-weeks {
    background: #fff;
}

.jh-weeks-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    max-width: 1080px;
    margin: 0 auto;
}

.jh-weeks-grid article {
    position: relative;
    padding: 32px;
    overflow: hidden;
    border: 1px solid var(--jh-line);
    border-radius: 24px;
    background: #fffdfa;
    box-shadow: 0 14px 34px rgba(21, 58, 41, .06);
}

.jh-weeks-grid article::after {
    position: absolute;
    top: -40px;
    right: -40px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    content: "";
    background: rgba(106, 159, 48, .08);
}

.jh-weeks-grid .jh-week-featured {
    color: #fff;
    border-color: var(--jh-forest);
    background: var(--jh-forest);
    box-shadow: 0 20px 45px rgba(20, 88, 58, .2);
    transform: translateY(-10px);
}

.jh-week-number {
    color: var(--jh-leaf);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.jh-week-featured .jh-week-number {
    color: #e7c86f;
}

.jh-week-icon {
    display: grid;
    width: 52px;
    height: 52px;
    margin: 22px 0 18px;
    place-items: center;
    border-radius: 16px;
    color: var(--jh-forest);
    background: #edf5e9;
    font-weight: 900;
}

.jh-week-featured .jh-week-icon {
    color: var(--jh-pine);
    background: #e7c86f;
}

.jh-weeks-grid h3 {
    margin: 0 0 10px;
    color: var(--jh-pine);
    font-family: Georgia, serif;
    font-size: 1.55rem;
}

.jh-week-featured h3 {
    color: #fff;
}

.jh-weeks-grid p {
    min-height: 110px;
    margin: 0;
    color: #617067;
    font-size: .94rem;
}

.jh-week-featured p {
    color: rgba(255, 255, 255, .72);
}

.jh-weeks-grid strong {
    display: block;
    margin-top: 22px;
    color: var(--jh-forest);
    font-size: .76rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.jh-week-featured strong {
    color: #e7c86f;
}

.jh-app {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 15%, rgba(106, 159, 48, .14), transparent 30%),
        var(--jh-cream);
}

.jh-app::before {
    position: absolute;
    top: 44px;
    right: -120px;
    width: 330px;
    height: 330px;
    border: 1px solid rgba(203, 165, 74, .3);
    border-radius: 50%;
    content: "";
}

.jh-app-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.04fr .96fr;
    gap: clamp(50px, 8vw, 105px);
    align-items: center;
    max-width: 1100px;
    margin: 0 auto;
}

.jh-app-copy h2 {
    margin: 0 0 22px;
    color: var(--jh-pine);
    font-family: Georgia, serif;
    font-size: clamp(2.6rem, 4.7vw, 4.6rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.jh-app-lead {
    max-width: 650px;
    margin: 0 0 28px;
    color: #58675e;
    font-size: 1.02rem;
}

.jh-app-features {
    display: grid;
    gap: 13px;
    margin-bottom: 28px;
}

.jh-app-features article {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 15px 17px;
    border: 1px solid rgba(20, 88, 58, .12);
    border-radius: 16px;
    background: rgba(255, 255, 255, .68);
}

.jh-app-features i {
    display: grid;
    flex: 0 0 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    color: #fff;
    background: var(--jh-forest);
    font-size: .66rem;
    font-style: normal;
    font-weight: 900;
}

.jh-app-features h3 {
    margin: 0 0 3px;
    color: var(--jh-pine);
    font-size: .96rem;
}

.jh-app-features p,
.jh-app-note {
    margin: 0;
    color: #68756d;
    font-size: .82rem;
}

.jh-app-note {
    max-width: 520px;
    margin-top: 14px;
}

.jh-app-visual {
    position: relative;
    display: grid;
    min-height: 640px;
    place-items: center;
}

.jh-phone {
    position: relative;
    width: min(100%, 340px);
    padding: 11px;
    border: 4px solid #0b281e;
    border-radius: 42px;
    background: #071a14;
    box-shadow: 0 34px 80px rgba(13, 53, 39, .28);
    transform: rotate(2.5deg);
}

.jh-phone::after {
    position: absolute;
    top: 92px;
    right: -7px;
    width: 3px;
    height: 82px;
    border-radius: 0 4px 4px 0;
    content: "";
    background: #0b281e;
}

.jh-phone-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 48px;
    padding: 0 17px;
    border-radius: 29px 29px 0 0;
    color: rgba(255, 255, 255, .78);
    background: var(--jh-pine);
    font-size: .72rem;
}

.jh-phone-top span {
    width: 54px;
    height: 17px;
    border-radius: 999px;
    background: #061711;
}

.jh-phone-top em {
    color: #d6b458;
    font-style: normal;
    letter-spacing: .1em;
}

.jh-phone-screen {
    min-height: 535px;
    padding: 24px 18px 22px;
    border-radius: 0 0 29px 29px;
    background: #fffdf8;
}

.jh-phone-screen > p {
    margin: 0;
    color: var(--jh-leaf);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.jh-phone-screen > h3 {
    margin: 4px 0 18px;
    color: var(--jh-pine);
    font-family: Georgia, serif;
    font-size: 1.5rem;
    line-height: 1.08;
}

.jh-app-progress {
    display: grid;
    width: 124px;
    height: 124px;
    margin: 0 auto 18px;
    place-items: center;
    align-content: center;
    border: 10px solid #dfead9;
    border-top-color: var(--jh-leaf);
    border-right-color: var(--jh-leaf);
    border-radius: 50%;
    color: var(--jh-pine);
}

.jh-app-progress strong {
    font-family: Georgia, serif;
    font-size: 2.35rem;
    line-height: 1;
}

.jh-app-progress span {
    color: #78847c;
    font-size: .65rem;
    font-weight: 750;
}

.jh-app-card {
    display: grid;
    gap: 3px;
    padding: 14px;
    border: 1px solid rgba(20, 88, 58, .1);
    border-radius: 14px;
    background: #f5f2ea;
}

.jh-app-card-main {
    color: #fff;
    border: 0;
    background: linear-gradient(135deg, var(--jh-forest), var(--jh-pine));
}

.jh-app-card span {
    color: #7a867f;
    font-size: .61rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.jh-app-card-main span,
.jh-app-card-main small {
    color: rgba(255, 255, 255, .72);
}

.jh-app-card b {
    color: var(--jh-pine);
    font-size: .79rem;
}

.jh-app-card-main b {
    color: #fff;
    font-size: .86rem;
}

.jh-app-card small {
    margin-top: 7px;
    font-size: .65rem;
    font-weight: 800;
}

.jh-app-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    margin: 10px 0;
}

.jh-app-stats div {
    display: grid;
    gap: 3px;
    padding: 12px;
    border-radius: 13px;
    background: #edf5e9;
}

.jh-app-stats span {
    color: #6c786f;
    font-size: .62rem;
}

.jh-app-stats strong {
    color: var(--jh-forest);
    font-size: .78rem;
}

.jh-app-float {
    position: absolute;
    right: -12px;
    bottom: 75px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1px solid rgba(20, 88, 58, .12);
    border-radius: 15px;
    color: var(--jh-pine);
    background: #fff;
    box-shadow: 0 18px 45px rgba(13, 53, 39, .16);
    font-size: .72rem;
    line-height: 1.25;
}

.jh-app-float b {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--jh-leaf);
}

.jh-trust {
    background: var(--jh-cream);
}

.jh-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    max-width: 1120px;
    margin: 0 auto;
}

.jh-trust-grid article {
    padding: 27px 24px;
    border-bottom: 3px solid transparent;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(21, 58, 41, .06);
}

.jh-trust-grid article:hover {
    border-bottom-color: var(--jh-gold);
}

.jh-trust-grid i {
    display: grid;
    width: 44px;
    height: 44px;
    margin-bottom: 18px;
    place-items: center;
    border-radius: 14px;
    color: var(--jh-forest);
    background: #edf5e9;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 900;
}

.jh-trust-grid h3 {
    margin: 0 0 8px;
    color: var(--jh-pine);
    font-size: 1.02rem;
}

.jh-trust-grid p {
    margin: 0;
    color: #68756d;
    font-size: .9rem;
}

.jh-offer {
    position: relative;
    color: #fff;
    background:
        radial-gradient(circle at 10% 8%, rgba(203, 165, 74, .15), transparent 25%),
        var(--jh-pine);
}

.jh-offer-shell {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 70px;
    align-items: center;
    max-width: 1120px;
    margin: 0 auto;
}

.jh-offer-visual {
    position: relative;
    min-height: 650px;
}

.jh-offer-visual h2 {
    max-width: 700px;
    color: #fff;
}

.jh-offer-book {
    position: absolute;
    bottom: -35px;
    left: -25px;
    width: 310px;
    filter: drop-shadow(0 26px 30px rgba(0, 0, 0, .28));
    transform: rotate(-4deg);
}

.jh-included {
    position: absolute;
    right: 0;
    bottom: 32px;
    display: grid;
    width: 54%;
    gap: 10px;
}

.jh-included span {
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 11px;
    color: rgba(255, 255, 255, .86);
    background: rgba(255, 255, 255, .06);
    font-size: .84rem;
    font-weight: 700;
}

.jh-price-card {
    position: relative;
    padding: 42px 38px 34px;
    border: 1px solid rgba(203, 165, 74, .35);
    border-radius: 28px;
    color: var(--jh-ink);
    background: #fffdf8;
    box-shadow: 0 32px 70px rgba(0, 0, 0, .24);
}

.jh-best-value {
    position: absolute;
    top: -16px;
    left: 50%;
    padding: 8px 22px;
    border-radius: 999px;
    color: var(--jh-pine);
    background: linear-gradient(135deg, #eed485, var(--jh-gold));
    box-shadow: 0 8px 18px rgba(203, 165, 74, .24);
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
    transform: translateX(-50%);
}

.jh-product-name {
    margin: 10px 0 4px;
    color: var(--jh-pine);
    font-family: Georgia, serif;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
}

.jh-access {
    margin: 0 0 28px;
    color: #708078;
    font-size: .79rem;
    font-weight: 700;
    text-align: center;
}

.jh-price-old {
    color: #6a756f;
    font-size: .86rem;
    text-align: center;
}

.jh-price {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin: 2px 0;
    color: var(--jh-pine);
    line-height: 1;
}

.jh-price small {
    margin: 13px 5px 0 0;
    font-size: 1.05rem;
    font-weight: 850;
}

.jh-price strong {
    font-family: Georgia, serif;
    font-size: 5.4rem;
    letter-spacing: -.08em;
}

.jh-price span {
    margin-top: 13px;
    font-size: 1.55rem;
    font-weight: 850;
}

.jh-price-note {
    margin: 0 0 22px;
    color: #657169;
    font-size: .8rem;
    text-align: center;
}

.jh-cta-full {
    width: 100%;
    padding-inline: 1rem;
    font-size: .83rem;
}

.jh-secure {
    margin-top: 14px;
    color: #708078;
    font-size: .75rem;
    font-weight: 700;
    text-align: center;
}

.jh-secure span {
    color: var(--jh-leaf);
}

.jh-bonus-wrap {
    display: grid;
    grid-template-columns: .88fr 1.12fr;
    gap: 48px;
    align-items: center;
    max-width: 1120px;
    margin: 100px auto 0;
    padding: 50px;
    border: 1px solid rgba(203, 165, 74, .22);
    border-radius: 30px;
    color: var(--jh-ink);
    background: var(--jh-cream);
}

.jh-bonus-copy > h3 {
    margin: 0 0 26px;
    color: var(--jh-pine);
    font-family: Georgia, serif;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.06;
}

.jh-bonus-list {
    display: grid;
    gap: 13px;
}

.jh-bonus-list article {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.jh-bonus-list i {
    display: grid;
    flex: 0 0 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--jh-forest);
    font-size: .65rem;
    font-style: normal;
    font-weight: 900;
}

.jh-bonus-list h4 {
    margin: 0 0 2px;
    color: var(--jh-pine);
    font-size: .94rem;
}

.jh-bonus-list p {
    margin: 0;
    color: #69766e;
    font-size: .82rem;
}

.jh-bonus-image {
    width: 100%;
    border-radius: 22px;
    mix-blend-mode: multiply;
}

.jh-faq {
    background: #fff;
}

.jh-faq-layout {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: clamp(50px, 9vw, 110px);
    align-items: flex-start;
    max-width: 1080px;
    margin: 0 auto;
}

.jh-faq-intro {
    position: sticky;
    top: 30px;
}

.jh-faq-intro > a {
    display: inline-block;
    margin-top: 18px;
    color: var(--jh-forest);
    font-size: .9rem;
    font-weight: 850;
}

.jh-faq-list {
    border-top: 1px solid var(--jh-line);
}

.jh-faq-list details {
    border-bottom: 1px solid var(--jh-line);
}

.jh-faq-list summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 24px 0;
    color: var(--jh-pine);
    cursor: pointer;
    list-style: none;
    font-size: 1rem;
    font-weight: 850;
}

.jh-faq-list summary::-webkit-details-marker {
    display: none;
}

.jh-faq-list summary span {
    display: grid;
    flex: 0 0 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--jh-forest);
    font-size: 1.2rem;
    transition: transform .2s ease;
}

.jh-faq-list details[open] summary span {
    transform: rotate(45deg);
}

.jh-faq-list details p {
    max-width: 680px;
    margin: -7px 48px 24px 0;
    color: #627168;
    font-size: .94rem;
}

.jh-faq-list details a {
    color: var(--jh-forest);
    font-weight: 800;
}

.jh-guarantee {
    padding-top: 25px;
    padding-bottom: 100px;
    background: #fff;
}

.jh-guarantee-card {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 38px;
    align-items: center;
    max-width: 930px;
    margin: 0 auto;
    padding: 42px 48px;
    border-radius: 28px;
    color: #fff;
    background: linear-gradient(135deg, #1a633f, var(--jh-pine));
    box-shadow: var(--jh-shadow);
}

.jh-guarantee-seal {
    display: grid;
    width: 135px;
    height: 135px;
    place-items: center;
    align-content: center;
    border: 2px solid #e3c264;
    border-radius: 50%;
    box-shadow: inset 0 0 0 7px rgba(227, 194, 100, .1);
}

.jh-guarantee-seal strong {
    color: #e3c264;
    font-family: Georgia, serif;
    font-size: 3.6rem;
    line-height: .8;
}

.jh-guarantee-seal span {
    margin-top: 8px;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.jh-guarantee-card h2 {
    color: #fff;
}

.jh-guarantee-card p:last-child {
    margin: 0;
    color: rgba(255, 255, 255, .74);
}

.jh-final {
    position: relative;
    display: grid;
    grid-template-columns: 1fr .48fr;
    min-height: 610px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 78% 20%, rgba(106, 159, 48, .24), transparent 36%),
        linear-gradient(135deg, #081f18, #103b2b);
}

.jh-final::before {
    position: absolute;
    inset: 0;
    content: "";
    opacity: .17;
    background-image: radial-gradient(rgba(255, 255, 255, .7) .7px, transparent .7px);
    background-size: 18px 18px;
}

.jh-final-copy {
    position: relative;
    z-index: 1;
    align-self: center;
    width: min(720px, calc(100% - 48px));
    margin-left: max(24px, calc((100vw - 1100px) / 2));
    padding: 85px 20px 85px 0;
}

.jh-final h2 {
    max-width: 750px;
    color: #fff;
    font-size: clamp(2.8rem, 5vw, 5rem);
}

.jh-final-copy > p:not(.jh-kicker) {
    max-width: 650px;
    margin: 0 0 28px;
    color: rgba(255, 255, 255, .72);
    font-size: 1.05rem;
}

.jh-final > img {
    position: relative;
    z-index: 1;
    align-self: end;
    width: min(95%, 450px);
    max-height: 620px;
    object-fit: contain;
    object-position: bottom center;
    filter: drop-shadow(0 30px 45px rgba(0, 0, 0, .28));
}

.jh-final-proof {
    margin-top: 17px;
    color: rgba(255, 255, 255, .58);
    font-size: .78rem;
    font-weight: 720;
}

.jh-footer {
    padding: 55px 24px 40px;
    color: #657169;
    background: var(--jh-cream);
    text-align: center;
}

.jh-footer > img {
    width: 140px;
    height: 88px;
    margin: 0 auto 10px;
}

.jh-footer p {
    margin: 7px auto;
    font-size: .8rem;
}

.jh-footer a {
    color: var(--jh-forest);
    font-weight: 800;
}

.jh-footer .jh-disclaimer {
    max-width: 850px;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--jh-line);
    color: #7b857f;
    font-size: .72rem;
}

.jh-mobile-buy {
    display: none;
}

@media (max-width: 1050px) {
    .jh-offer-shell {
        gap: 40px;
    }

    .jh-offer-book {
        width: 270px;
    }

    .jh-trust-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .jh-header-note {
        display: none;
    }

    .jh-hero {
        grid-template-columns: 1fr;
    }

    .jh-hero-copy {
        width: auto;
        margin: 0;
        padding: 60px 24px 46px;
        text-align: center;
    }

    .jh-lead {
        margin-inline: auto;
    }

    .jh-microproof {
        justify-content: center;
    }

    .jh-hero-visual {
        min-height: 520px;
    }

    .jh-hero-book {
        left: 5%;
        width: 42%;
    }

    .jh-pain-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .jh-method-layout,
    .jh-benefits-layout,
    .jh-app-layout,
    .jh-offer-shell,
    .jh-bonus-wrap,
    .jh-faq-layout {
        grid-template-columns: 1fr;
    }

    .jh-method-image {
        max-width: 680px;
        margin: 0 auto;
    }

    .jh-method-image > img {
        min-height: 470px;
    }

    .jh-method-copy {
        max-width: 720px;
        margin: 0 auto;
    }

    .jh-benefits-copy {
        max-width: 720px;
    }

    .jh-weeks-grid {
        grid-template-columns: 1fr;
        max-width: 680px;
    }

    .jh-weeks-grid .jh-week-featured {
        transform: none;
    }

    .jh-weeks-grid p {
        min-height: auto;
    }

    .jh-app-copy {
        max-width: 720px;
        margin: 0 auto;
        text-align: center;
    }

    .jh-app-copy .jh-kicker::after {
        margin-inline: auto;
    }

    .jh-app-lead,
    .jh-app-note {
        margin-inline: auto;
    }

    .jh-app-features {
        text-align: left;
    }

    .jh-app-visual {
        min-height: 610px;
    }

    .jh-phone {
        transform: none;
    }

    .jh-offer-visual {
        min-height: 690px;
    }

    .jh-price-card {
        max-width: 520px;
        margin: 0 auto;
    }

    .jh-bonus-wrap {
        padding: 40px;
    }

    .jh-bonus-image {
        grid-row: 1;
    }

    .jh-faq-intro {
        position: static;
    }

    .jh-guarantee-card {
        grid-template-columns: 130px 1fr;
    }

    .jh-final {
        grid-template-columns: 1fr .42fr;
    }
}

@media (max-width: 680px) {
    .jh-trustbar {
        font-size: .63rem;
        letter-spacing: .03em;
    }

    .jh-trustbar b {
        padding: 0 .18rem;
    }

    .jh-header {
        width: calc(100% - 32px);
        height: 70px;
    }

    .jh-brand {
        width: 126px;
        height: 58px;
    }

    .jh-header-cta {
        padding: .58rem .78rem;
        font-size: .78rem;
    }

    .jh-d21 h1 {
        font-size: clamp(2.7rem, 13vw, 4.1rem);
    }

    .jh-lead {
        font-size: 1rem;
    }

    .jh-cta {
        width: 100%;
        max-width: 430px;
        padding-inline: 1rem;
        font-size: .82rem;
    }

    .jh-hero-visual {
        min-height: 430px;
    }

    .jh-hero-book {
        bottom: -1%;
        width: 50%;
    }

    .jh-hero-badge {
        right: 3%;
        bottom: 3%;
    }

    .jh-section {
        padding: 76px 18px;
    }

    .jh-heading h2,
    .jh-method-copy > h2,
    .jh-benefits-copy h2,
    .jh-app-copy h2,
    .jh-offer-visual h2,
    .jh-faq-intro h2,
    .jh-guarantee-card h2 {
        font-size: clamp(2.15rem, 10vw, 3.25rem);
    }

    .jh-pain-grid,
    .jh-benefit-list,
    .jh-trust-grid {
        grid-template-columns: 1fr;
    }

    .jh-method-image > img {
        min-height: 390px;
        border-radius: 24px;
    }

    .jh-image-note {
        right: 13px;
        bottom: 13px;
    }

    .jh-pillars article {
        padding-inline: 0;
    }

    .jh-app-visual {
        min-height: 560px;
    }

    .jh-phone {
        width: min(94%, 320px);
    }

    .jh-phone-screen {
        min-height: 485px;
    }

    .jh-app-progress {
        width: 108px;
        height: 108px;
    }

    .jh-app-float {
        right: 0;
        bottom: 34px;
    }

    .jh-offer-visual {
        display: flex;
        min-height: auto;
        flex-direction: column;
    }

    .jh-offer-book {
        position: relative;
        bottom: auto;
        left: auto;
        width: min(78%, 300px);
        margin: 26px auto 20px;
        transform: none;
    }

    .jh-included {
        position: static;
        width: 100%;
    }

    .jh-included span {
        padding: 8px 9px;
        font-size: .72rem;
    }

    .jh-price-card {
        padding: 40px 24px 28px;
    }

    .jh-bonus-wrap {
        margin-top: 74px;
        padding: 28px 20px;
    }

    .jh-bonus-copy > h3 {
        font-size: 2.2rem;
    }

    .jh-guarantee {
        padding-top: 15px;
        padding-bottom: 75px;
    }

    .jh-guarantee-card {
        grid-template-columns: 1fr;
        padding: 34px 25px;
        text-align: center;
    }

    .jh-guarantee-seal {
        width: 120px;
        height: 120px;
        margin: 0 auto;
    }

    .jh-final {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .jh-final-copy {
        width: auto;
        margin: 0;
        padding: 78px 20px 28px;
        text-align: center;
    }

    .jh-final h2 {
        font-size: clamp(2.7rem, 12vw, 4.2rem);
    }

    .jh-final > img {
        width: min(75%, 330px);
        margin: 0 auto;
    }

    .jh-footer {
        padding-bottom: 105px;
    }

    .jh-mobile-buy {
        position: fixed;
        z-index: 9990;
        right: 10px;
        bottom: 10px;
        left: 10px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 11px 12px 11px 16px;
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 17px;
        color: #fff;
        background: rgba(13, 53, 39, .95);
        box-shadow: 0 14px 42px rgba(0, 0, 0, .3);
        backdrop-filter: blur(10px);
        transition: opacity .25s ease, transform .25s ease;
    }

    .jh-mobile-buy.is-hidden {
        pointer-events: none;
        opacity: 0;
        transform: translateY(120%);
    }

    .jh-mobile-buy div {
        display: grid;
    }

    .jh-mobile-buy span {
        color: rgba(255, 255, 255, .65);
        font-size: .62rem;
        font-weight: 800;
        letter-spacing: .07em;
        text-transform: uppercase;
    }

    .jh-mobile-buy strong {
        color: #f0cf72;
        font-size: 1.25rem;
        line-height: 1.1;
    }

    .jh-mobile-buy a {
        padding: 10px 13px;
        border-radius: 11px;
        color: #fff;
        background: var(--jh-orange);
        font-size: .73rem;
        font-weight: 900;
        text-decoration: none;
        text-transform: uppercase;
    }
}

@media (prefers-reduced-motion: reduce) {
    .jh-d21,
    .jh-d21 * {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
