/*
Theme Name: 비랜딩 테마 - 김주하 아기수면연구소 LMS
Theme URI: https://blanding.kr
Author: 비랜딩 blanding.kr
Author URI: https://blanding.kr
Description: 비랜딩에서 제작한 빠른 속도가 강점인 테마입니다
Version: 2.6.37
Text Domain: blanding-base
*/

@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&display=swap');

/* =============================================================================
   ① DESIGN TOKENS
   ============================================================================= */
:root {
    /* Brand colors */
    --clr-primary:       #c18d71;
    --clr-primary-dark:  #9c6d54;
    --clr-primary-light: #e8c4ae;
    --clr-accent:        #5a876e;
    --clr-accent-light:  #a5c5b5;

    /* Neutrals - Warm */
    --clr-bg:            #ffffff;
    --clr-bg-alt:        #f7f4f1;
    --clr-bg-card:       #ffffff;
    --clr-border:        #eddfd7;
    --clr-border-light:  #f5ede8;

    /* Text */
    --clr-txt-dark:      #381711;
    --clr-txt-base:      #462d29;
    --clr-txt-muted:     #8a7066;
    --clr-txt-light:     #b8a49c;

    /* Footer */
    --clr-footer-bg:     #1e1814;
    --clr-footer-mid:    #2a211c;
    --clr-footer-text:   #8a7a73;
    --clr-footer-title:  #e8d9d1;

    /* Spacing */
    --sp-xs: 8px;
    --sp-sm: 16px;
    --sp-md: 32px;
    --sp-lg: 64px;
    --sp-xl: 96px;

    /* Radius */
    --r-sm:  8px;
    --r-md:  16px;
    --r-lg:  24px;
    --r-xl:  32px;

    /* Shadow */
    --shadow-sm:  0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03);
    --shadow-md:  0 8px 25px rgba(193,141,113,0.08), 0 2px 8px rgba(0,0,0,0.04);
    --shadow-lg:  0 20px 50px rgba(193,141,113,0.12), 0 6px 20px rgba(0,0,0,0.05);
    --shadow-glow: 0 0 40px rgba(193,141,113,0.18);

    /* Transition */
    --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in:   cubic-bezier(0.7, 0, 0.84, 0);
    --t-fast: 0.18s;
    --t-med:  0.35s;
    --t-slow: 0.6s;

    /* Header height */
    --header-h: 100px;

    /* Typography roles */
    --type-page-title-mobile: clamp(30px, 8.1vw, 32px);
    --type-form-control-mobile: 16px;
}

/* =============================================================================
   ② RESET + BASE
   ============================================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background-color: var(--clr-bg);
    color: var(--clr-txt-base);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--clr-primary); text-decoration: none; transition: color var(--t-fast) ease; }
a:hover { color: var(--clr-primary-dark); }

ul, ol { list-style: none; }

/* =============================================================================
   ③ HEADER — Sticky + glassmorphism on scroll
   ============================================================================= */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    height: var(--header-h);
    background-color: #ffffff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid rgba(237,223,215,0.6);
    /* Keep the header's layout dimensions fixed while scrolling.
       Animating its height makes the document reflow at the scroll threshold,
       which can cause the sticky navigation to visibly jump. */
    transition: box-shadow var(--t-med) ease, background-color var(--t-med) ease;
}

.site-header.scrolled {
    background-color: rgba(255,255,255,0.98);
    box-shadow: 0 4px 24px rgba(193,141,113,0.08);
}

.header-container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 24px;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

/* Logo */
.logo-area,
.logo-area a.custom-logo-link { display: inline-flex; flex: 0 0 auto; align-items: center; min-width: 0; }
.logo-area img.custom-logo { max-height: 72px; width: auto; }
.site-header.scrolled .logo-area img.custom-logo { max-height: 72px; }
.site-logo-link {
    font-family: 'Playfair Display', 'Pretendard', serif;
    font-size: 20px;
    font-weight: 700;
    color: var(--clr-txt-dark);
    letter-spacing: -0.3px;
}

/* Nav */
.main-navigation { display: flex; align-items: center; }

.nav-menu {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
}

.nav-menu li { margin: 0; position: relative; }

.nav-menu > li > a {
    display: block;
    padding: 8px 14px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--clr-txt-base);
    border-radius: var(--r-sm);
    transition: background var(--t-fast) ease, color var(--t-fast) ease;
    white-space: nowrap;
}

.nav-menu > li > a:hover {
    background-color: rgba(193,141,113,0.09);
    color: var(--clr-primary);
}

/* Three core programs: soft category colors with a shared active state. */
.nav-menu > li > a[href*="/online-academy/"] {
    color: #5a322c;
    background-color: rgba(193, 141, 113, .16);
}

.nav-menu > li > a[href*="/coaching/"] {
    color: #462d29;
    background-color: #eeeeee;
}

.nav-menu > li > a[href*="/one-time-consultation/"] {
    color: #381711;
    background-color: rgba(90, 50, 44, .10);
}

.nav-menu > li > a[href*="/online-academy/"]:hover,
.nav-menu > li > a[href*="/coaching/"]:hover,
.nav-menu > li > a[href*="/one-time-consultation/"]:hover,
.nav-menu > li.current-menu-item > a[href*="/online-academy/"],
.nav-menu > li.current-menu-item > a[href*="/coaching/"],
.nav-menu > li.current-menu-item > a[href*="/one-time-consultation/"] {
    color: #fff;
    background-color: #5a322c;
}

/* CTA nav item */
.nav-menu .cta-nav > a,
.nav-menu li:last-child > a {
    background: var(--clr-primary);
    color: #fff !important;
    border-radius: 50px;
    padding: 8px 18px;
    font-size: 13.5px;
    box-shadow: 0 4px 14px rgba(193,141,113,0.3);
}
.nav-menu .cta-nav > a:hover,
.nav-menu li:last-child > a:hover {
    background: var(--clr-primary-dark) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(193,141,113,0.4);
}

/* Submenu */
.nav-menu .sub-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    background: #fff;
    min-width: 200px;
    border-radius: var(--r-md);
    padding: 10px;
    border: 1px solid var(--clr-border-light);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t-fast) ease, transform var(--t-fast) ease, visibility var(--t-fast);
    z-index: 100;
}

.nav-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.nav-menu .sub-menu a {
    display: block;
    padding: 9px 14px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--clr-txt-base);
    border-radius: var(--r-sm);
    transition: background var(--t-fast) ease, color var(--t-fast) ease;
}
.nav-menu .sub-menu a::after { display: none; }
.nav-menu .sub-menu a:hover {
    background: var(--clr-bg-alt);
    color: var(--clr-primary);
}

/* Hamburger */
.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: var(--r-sm);
    transition: background var(--t-fast) ease;
}
.menu-toggle:hover { background: var(--clr-bg-alt); }
.menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--clr-txt-dark);
    border-radius: 2px;
    transition: all var(--t-med) var(--ease-out);
    transform-origin: center;
}
.menu-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* =============================================================================
   ④ PAGE LAYOUT
   ============================================================================= */
.site-main { min-height: 70vh; }

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.container-sm {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 24px;
}

/* =============================================================================
   ⑤ SUBPAGE HERO — Layered texture with animated gradient
   ============================================================================= */
.subpage-hero {
    position: relative;
    overflow: hidden;
    padding: 64px 24px 56px;
    text-align: center;
    background: linear-gradient(145deg, #fdf5f0 0%, #f7e9e1 50%, #eedfd5 100%);
    border-bottom: 1px solid var(--clr-border-light);
}

.subpage-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 50%, rgba(193,141,113,0.12) 0%, transparent 55%),
        radial-gradient(circle at 80% 20%, rgba(193,141,113,0.08) 0%, transparent 45%);
    z-index: 0;
}

/* Floating decorative blobs */
.subpage-hero::after {
    content: '';
    position: absolute;
    width: 350px;
    height: 350px;
    border-radius: 50%;
    background: rgba(193,141,113,0.06);
    right: -80px;
    top: -100px;
    z-index: 0;
    animation: blobFloat 8s ease-in-out infinite alternate;
}

@keyframes blobFloat {
    from { transform: translate(0, 0) scale(1); }
    to { transform: translate(-20px, 20px) scale(1.05); }
}

.subpage-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto;
}

.subpage-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(193,141,113,0.12);
    border: 1px solid rgba(193,141,113,0.2);
    color: var(--clr-primary);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 50px;
    margin-bottom: 18px;
}

.subpage-hero__title {
    font-size: clamp(26px, 4vw, 38px);
    font-weight: 800;
    color: var(--clr-txt-dark);
    line-height: 1.25;
    letter-spacing: -0.5px;
}

/* Breadcrumb strip under hero */
.breadcrumb-strip {
    background: var(--clr-bg-alt);
    border-bottom: 1px solid var(--clr-border-light);
    padding: 10px 24px;
    font-size: 12.5px;
    color: var(--clr-txt-muted);
}
.breadcrumb-strip a { color: var(--clr-txt-muted); }
.breadcrumb-strip a:hover { color: var(--clr-primary); }
.breadcrumb-strip .sep { margin: 0 6px; opacity: 0.5; }

/* Page titles already provide sufficient context in the compact hero. */
.subpage-hero__breadcrumbs { display: none !important; }

/* Content area */
.page-content-wrap {
    max-width: 1140px;
    margin: 0 auto;
    padding: 56px 24px 80px;
}

/* =============================================================================
   ⑥ FRONT PAGE COMPONENTS
   ============================================================================= */

/* --- Hero Ticker Badge --- */
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, rgba(193,141,113,0.15), rgba(193,141,113,0.05));
    border: 1px solid rgba(193,141,113,0.25);
    backdrop-filter: blur(6px);
    color: var(--clr-primary);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.8px;
    padding: 6px 16px;
    border-radius: 50px;
    margin-bottom: 24px;
}
.hero-badge::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--clr-primary);
    animation: pulse 2s infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.85); }
}

/* --- Feature Stat pills --- */
.stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-top: 36px;
}
.stat-pill {
    background: rgba(255,255,255,0.8);
    border: 1px solid rgba(193,141,113,0.18);
    backdrop-filter: blur(8px);
    border-radius: 50px;
    padding: 8px 20px;
    font-size: 13px;
    font-weight: 600;
    color: var(--clr-txt-base);
    display: flex;
    align-items: center;
    gap: 7px;
}
.stat-pill strong { color: var(--clr-primary); font-weight: 800; }

/* --- Section heading --- */
.section-heading {
    text-align: center;
    margin-bottom: 56px;
}
.section-heading__eyebrow {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--clr-primary);
    display: block;
    margin-bottom: 12px;
}
.section-heading__title {
    font-size: clamp(24px, 3.5vw, 34px);
    font-weight: 800;
    color: var(--clr-txt-dark);
    line-height: 1.25;
    letter-spacing: -0.5px;
    margin-bottom: 14px;
}
.section-heading__desc {
    font-size: 16px;
    color: var(--clr-txt-muted);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}
.section-heading__line {
    width: 48px;
    height: 3px;
    background: linear-gradient(90deg, var(--clr-primary), var(--clr-primary-light));
    border-radius: 2px;
    margin: 20px auto 0;
}

/* --- Feature icon card --- */
.feature-icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 28px;
}
.feature-icon-card {
    background: var(--clr-bg-card);
    border: 1px solid var(--clr-border-light);
    border-radius: var(--r-lg);
    padding: 36px 30px;
    text-align: center;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out), border-color var(--t-med) ease;
    position: relative;
    overflow: hidden;
}
.feature-icon-card::before {
    content: '';
    position: absolute;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(193,141,113,0.08) 0%, transparent 70%);
    top: -40px;
    right: -30px;
    pointer-events: none;
}
.feature-icon-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
    border-color: var(--clr-primary-light);
}
.feature-icon-card__icon {
    width: 64px;
    height: 64px;
    border-radius: var(--r-md);
    background: linear-gradient(135deg, var(--clr-bg-alt), #fff);
    border: 1px solid var(--clr-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    margin: 0 auto 20px;
    box-shadow: 0 4px 12px rgba(193,141,113,0.1);
}
.feature-icon-card__num {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    color: var(--clr-primary);
    text-transform: uppercase;
    margin-bottom: 8px;
}
.feature-icon-card__title {
    font-size: 17px;
    font-weight: 800;
    color: var(--clr-txt-dark);
    margin-bottom: 12px;
}
.feature-icon-card__desc {
    font-size: 14px;
    color: var(--clr-txt-muted);
    line-height: 1.7;
}

/* --- Program Card --- */
.program-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 28px;
}
.program-card {
    background: var(--clr-bg-card);
    border: 1px solid var(--clr-border-light);
    border-radius: var(--r-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out);
}
.program-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}
.program-card__thumb {
    position: relative;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 60px;
    overflow: hidden;
}
.program-card__thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: inherit;
    opacity: 0.35;
    mix-blend-mode: overlay;
}
.program-card__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 4px 10px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 700;
    z-index: 1;
}
.badge-available { background: #ecfdf5; color: #047857; }
.badge-coming { background: rgba(255,255,255,0.9); color: #94a3b8; border: 1px solid #e2e8f0; }

.program-card__body { padding: 28px; flex-grow: 1; display: flex; flex-direction: column; }
.program-card__title { font-size: 19px; font-weight: 800; color: var(--clr-txt-dark); margin-bottom: 10px; }
.program-card__desc { font-size: 14px; color: var(--clr-txt-muted); line-height: 1.7; margin-bottom: 24px; flex-grow: 1; }
.program-card__btn {
    display: block;
    text-align: center;
    padding: 13px 20px;
    border-radius: var(--r-md);
    font-size: 14px;
    font-weight: 700;
    transition: all var(--t-fast) ease;
}
.program-card__btn--active {
    background: linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));
    color: #fff;
    box-shadow: 0 4px 16px rgba(193,141,113,0.3);
}
.program-card__btn--active:hover {
    background: linear-gradient(135deg, var(--clr-primary-dark), #7a4f3a);
    box-shadow: 0 6px 20px rgba(193,141,113,0.4);
    transform: translateY(-1px);
    color: #fff;
}
.program-card__btn--disabled {
    background: #f1f5f9;
    color: #94a3b8;
    cursor: default;
    pointer-events: none;
}

/* --- Review Card --- */
.review-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}
.review-card {
    background: var(--clr-bg-card);
    border: 1px solid var(--clr-border-light);
    border-radius: var(--r-lg);
    padding: 28px;
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out);
    position: relative;
    overflow: hidden;
}
.review-card::before {
    content: '"';
    position: absolute;
    top: -10px;
    right: 20px;
    font-size: 120px;
    font-family: 'Playfair Display', serif;
    color: var(--clr-border);
    line-height: 1;
    pointer-events: none;
}
.review-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}
.review-card__stars { color: var(--clr-primary); font-size: 15px; margin-bottom: 14px; letter-spacing: 2px; }
.review-card__title { font-size: 15px; font-weight: 800; color: var(--clr-txt-dark); margin-bottom: 10px; line-height: 1.45; }
.review-card__body { font-size: 13.5px; color: var(--clr-txt-muted); line-height: 1.75; margin-bottom: 20px; }
.review-card__author { font-size: 12px; font-weight: 700; color: var(--clr-txt-light); }
.jh-review-archive-card { position:relative; cursor:pointer; }
.jh-review-archive-card__overlay { position:absolute; z-index:5; inset:0; border-radius:inherit; }
.jh-review-archive-card__overlay:focus-visible { outline:3px solid rgba(90,50,44,.3); outline-offset:3px; }
.jh-review-archive-card > div:first-of-type > h4 { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; word-break:keep-all; }
.jh-review-archive-card__excerpt { display:-webkit-box; overflow:hidden; max-height:calc(1.7em * 3); margin:0; color:#555; font-size:13.5px; line-height:1.7; -webkit-box-orient:vertical; -webkit-line-clamp:3; word-break:keep-all; }
.jh-review-archive-card > div:last-of-type { display:none !important; }
.jh-review-archive-card::after { content:'상세 후기 보기 →'; display:none !important; align-self:flex-start; margin-top:14px; color:#5a322c; font-size:12px; font-weight:800; }
.jh-review-archive-card:hover::after { text-decoration:underline; }
body.single-joohalab_review .subpage-hero__desc { display:none !important; }
.jh-review-chip span { display:none !important; }

/* Review-page images use negative card margins for a full-bleed header. */
.jh-review-archive-card > div:first-of-type > a:not(.jh-review-archive-card__overlay) {
    display:block;
    height:190px;
    margin:-25px -25px 20px;
    overflow:hidden;
    border-radius:16px 16px 0 0;
}
.jh-review-archive-card > div:first-of-type > a:not(.jh-review-archive-card__overlay) img,
.jh-review-archive-card > div:first-of-type > img {
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:100% !important;
    margin:0 !important;
    object-fit:cover;
    object-position:center center;
}

/* --- Director profile --- */
.director-wrap {
    display: flex;
    align-items: center;
    gap: 60px;
    flex-wrap: wrap;
}
.director-wrap__text { flex: 1; min-width: 300px; }
.director-wrap__img  { flex: 0 0 340px; display: flex; justify-content: center; }
.director-avatar {
    width: 320px;
    height: 380px;
    border-radius: var(--r-xl);
    background: linear-gradient(145deg, #fbf0ea, #e5d5cd);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 110px;
    box-shadow: var(--shadow-lg), 0 0 0 1px var(--clr-border);
    position: relative;
    overflow: hidden;
}
.director-avatar::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(to top, rgba(193,141,113,0.12), transparent);
    pointer-events: none;
}

.career-list {
    padding: 0;
    margin: 24px 0;
}
.career-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--clr-border-light);
    font-size: 14px;
    color: var(--clr-txt-base);
    line-height: 1.55;
}
.career-list li:last-child { border-bottom: none; }
.career-list li .icon {
    width: 32px;
    height: 32px;
    border-radius: var(--r-sm);
    background: var(--clr-bg-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    margin-top: 1px;
}

/* --- CTA Banner --- */
.cta-banner {
    background: linear-gradient(135deg, var(--clr-primary) 0%, var(--clr-primary-dark) 100%);
    border-radius: var(--r-xl);
    padding: 64px 40px;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(193,141,113,0.35);
}
.cta-banner::before {
    content: '';
    position: absolute;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: rgba(255,255,255,0.06);
    top: -200px;
    right: -100px;
}
.cta-banner::after {
    content: '';
    position: absolute;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: rgba(255,255,255,0.04);
    bottom: -140px;
    left: -80px;
}
.cta-banner h2 { font-size: 28px; font-weight: 800; color: #fff; margin-bottom: 14px; position: relative; z-index: 1; }
.cta-banner p { font-size: 15px; color: rgba(255,255,255,0.85); margin-bottom: 32px; max-width: 520px; margin-left: auto; margin-right: auto; line-height: 1.7; position: relative; z-index: 1; word-break: keep-all; }
.cta-banner__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    color: var(--clr-primary);
    padding: 14px 32px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    transition: all var(--t-fast) ease;
    position: relative;
    z-index: 1;
}
.cta-banner__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.16);
    color: var(--clr-primary-dark);
}

/* =============================================================================
   ⑦ PREMIUM COMPONENTS (LMS内)
   ============================================================================= */

/* Animations */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes shimmer {
    0%   { background-position: -200% center; }
    100% { background-position: 200% center; }
}

.animated-fade-in {
    animation: fadeInUp 0.6s var(--ease-out) both;
}

/* Scroll reveal helper (add via JS) */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s var(--ease-out), transform 0.65s var(--ease-out);
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Safety fallback: if JS not loaded after 3s, reveal everything */
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1 !important; transform: none !important; }
}


/* Premium Card */
.premium-card {
    background: var(--clr-bg-card);
    border: 1px solid var(--clr-border-light);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-sm);
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out), border-color var(--t-med) ease;
}
.premium-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: var(--clr-border);
}

/* Premium Inputs */
.premium-input, .premium-select, .premium-textarea {
    width: 100%;
    padding: 13px 16px;
    border: 1.5px solid var(--clr-border);
    border-radius: var(--r-md);
    background: var(--clr-bg-alt);
    font-size: 14.5px;
    font-family: inherit;
    color: var(--clr-txt-dark);
    outline: none;
    transition: border-color var(--t-fast) ease, box-shadow var(--t-fast) ease, background var(--t-fast) ease;
    appearance: none;
    -webkit-appearance: none;
}
.premium-input:focus, .premium-select:focus, .premium-textarea:focus {
    border-color: var(--clr-primary);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(193,141,113,0.14);
}
.premium-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23c18d71' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}

/* Premium Buttons */
.premium-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 28px;
    background: linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));
    color: #fff;
    border: none;
    border-radius: var(--r-md);
    font-family: inherit;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(193,141,113,0.28);
    transition: all var(--t-fast) ease;
    text-decoration: none;
    letter-spacing: 0.1px;
    position: relative;
    overflow: hidden;
}
.premium-btn::before {
    content: '';
    position: absolute;
    top: 0; left: -100%; right: -100%; bottom: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
    transform: skewX(-20deg);
    transition: left var(--t-med) ease;
}
.premium-btn:hover::before { left: 200%; }
.premium-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(193,141,113,0.38);
    color: #fff;
}
.premium-btn:active { transform: translateY(0); }

.premium-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 26px;
    background: #fff;
    color: var(--clr-primary);
    border: 1.5px solid var(--clr-primary);
    border-radius: var(--r-md);
    font-family: inherit;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    transition: all var(--t-fast) ease;
    text-decoration: none;
}
.premium-btn-secondary:hover {
    background: var(--clr-bg-alt);
    border-color: var(--clr-primary-dark);
    color: var(--clr-primary-dark);
    transform: translateY(-1px);
}

/* Progress Bar */
.progress-bar-container {
    background: var(--clr-border);
    border-radius: 10px;
    height: 8px;
    width: 100%;
    overflow: hidden;
}
.progress-bar-fill {
    height: 100%;
    border-radius: 10px;
    background: linear-gradient(90deg, var(--clr-accent), #7eb89e);
    transition: width 0.6s var(--ease-out);
    position: relative;
    overflow: hidden;
}
.progress-bar-fill::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.25) 50%, transparent 100%);
    background-size: 200% 100%;
    animation: shimmer 2.5s infinite;
}

/* Chat Bubbles Q&A */
.chat-bubble-q {
    background: #fff;
    border: 1px solid var(--clr-border-light);
    border-radius: 4px 18px 18px 18px;
    padding: 16px 20px;
    box-shadow: var(--shadow-sm);
}
.chat-bubble-a {
    background: linear-gradient(135deg, #fdf0e9, #fbebe0);
    border: 1px solid rgba(193,141,113,0.2);
    border-radius: 18px 4px 18px 18px;
    padding: 16px 20px;
    box-shadow: var(--shadow-sm);
}

/* Course Player Grid */
.course-player-grid {
    display: grid;
    grid-template-columns: 2.8fr 1.2fr;
    gap: 28px;
    margin-top: 24px;
    align-items: start;
}

/* =============================================================================
   ⑧ FOOTER — Premium dark warm
   ============================================================================= */
.site-footer {
    background: var(--clr-footer-bg);
    color: var(--clr-footer-text);
    padding: 72px 0 0;
    font-size: 14px;
    line-height: 1.7;
    border-top: 1px solid rgba(255,255,255,0.03);
    margin-top: 0;
    position: relative;
    overflow: hidden;
}

/* Keep every page flush with the footer; avoid an empty strip above it. */
body.home .site-footer {
    margin-top: 0;
}

/* Decorative top curve */
.site-footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--clr-primary), var(--clr-primary-light), var(--clr-primary), transparent);
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2.2fr 1fr 1fr;
    gap: 48px;
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

/* Brand column */
.footer-brand__logo {
    display: inline-block;
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--clr-footer-title);
    margin-bottom: 14px;
    text-decoration: none;
    letter-spacing: -0.3px;
}
.footer-brand__logo img { max-height: 40px; filter: brightness(0) invert(1) opacity(0.85); }
.footer-brand__tagline {
    font-size: 13.5px;
    color: var(--clr-footer-text);
    line-height: 1.75;
    max-width: 300px;
    margin-bottom: 24px;
}

/* Social icons row */
.footer-social {
    display: flex;
    gap: 10px;
}
.footer-social a {
    width: 36px;
    height: 36px;
    border-radius: var(--r-sm);
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.07);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: var(--clr-footer-text);
    transition: all var(--t-fast) ease;
    text-decoration: none;
}
.footer-social a svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-social a:hover {
    background: var(--clr-primary);
    border-color: var(--clr-primary);
    color: #fff;
    transform: translateY(-2px);
}

/* Nav columns */
.footer-col h4 {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--clr-footer-title);
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.footer-links { padding: 0; margin: 0; }
.footer-links li { margin-bottom: 11px; }
.footer-links a {
    color: var(--clr-footer-text);
    font-size: 13.5px;
    transition: color var(--t-fast) ease, padding-left var(--t-fast) ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.footer-links a::before { content: '›'; color: var(--clr-primary); opacity: 0; transition: opacity var(--t-fast) ease; }
.footer-links a:hover { color: var(--clr-footer-title); }
.footer-links a:hover::before { opacity: 1; }

/* Disclaimer */
.footer-disclaimer {
    padding: 28px 0;
    border-bottom: 1px solid rgba(255,255,255,0.04);
}
.footer-disclaimer__title {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    margin-bottom: 8px;
}
.footer-disclaimer p {
    font-size: 12px;
    color: rgba(255,255,255,0.18);
    line-height: 1.8;
    text-align: justify;
}

/* Bottom bar */
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 0;
    flex-wrap: wrap;
    gap: 10px;
}
.footer-copy { font-size: 12.5px; color: rgba(255,255,255,0.2); }
.footer-meta-links { display: flex; gap: 20px; }
.footer-meta-links a { font-size: 12px; color: rgba(255,255,255,0.22); transition: color var(--t-fast) ease; }
.footer-meta-links a:hover { color: rgba(255,255,255,0.55); }

/* =============================================================================
   ⑨ PAGINATION
   ============================================================================= */
.pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 48px;
    flex-wrap: wrap;
}
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border-radius: var(--r-md);
    background: var(--clr-bg-card);
    border: 1px solid var(--clr-border);
    color: var(--clr-txt-muted);
    font-weight: 600;
    font-size: 14px;
    transition: all var(--t-fast) ease;
}
.pagination .page-numbers:hover,
.pagination .page-numbers.current {
    background: var(--clr-primary);
    border-color: var(--clr-primary);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(193,141,113,0.3);
}

/* =============================================================================
   ⑩ RESPONSIVE
   ============================================================================= */
@media (max-width: 1024px) {
    .director-wrap { gap: 40px; }
    .director-wrap__img { flex: 0 0 280px; }
    .director-avatar { width: 260px; height: 320px; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-col:first-child { grid-column: 1 / -1; }
    .course-player-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    :root { --header-h: 64px; }

    body.nav-open { overflow: hidden; touch-action: none; }

    /* Hamburger */
    .menu-toggle { display: flex; }

    .main-navigation {
        position: fixed;
        top: var(--header-h);
        left: -100%;
        width: 100%;
        height: calc(100dvh - var(--header-h));
        background: rgba(253,249,246,0.98);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        padding: 32px 24px;
        transition: left var(--t-med) var(--ease-out);
        z-index: 998;
        border-top: 1px solid var(--clr-border-light);
        overflow-y: auto;
    }
    .main-navigation.active { left: 0; }

    .nav-menu {
        flex-direction: column;
        width: 100%;
        gap: 4px;
    }
    .nav-menu > li { width: 100%; }
    .nav-menu > li > a {
        font-size: 16px;
        padding: 14px 16px;
        border-radius: var(--r-md);
    }
    .nav-menu .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        background: var(--clr-bg-alt);
        border-radius: var(--r-md);
        padding: 8px 8px;
        margin-top: 4px;
    }

    /* Layout */
    .subpage-hero { padding: 48px 20px 40px; }
    .page-content-wrap { padding: 36px 16px 60px; }
    .footer-grid { grid-template-columns: 1fr; gap: 32px; }
    .footer-col:first-child { grid-column: auto; }
    .director-wrap { flex-direction: column-reverse; }
    .director-wrap__img { flex: none; width: 100%; }
    .director-avatar { width: 100%; max-width: 280px; height: 300px; margin: 0 auto; }
    .stat-row { gap: 8px; }
    .stat-pill { font-size: 12px; padding: 6px 14px; }
    .program-grid { grid-template-columns: 1fr; }
    .cta-banner { padding: 48px 28px; border-radius: var(--r-lg); }
    .feature-icon-grid { grid-template-columns: 1fr; }
    .footer-bottom { flex-direction: column; text-align: center; }
    .footer-meta-links { justify-content: center; }
}

@media (max-width: 480px) {
    .subpage-hero__title { font-size: 22px; }
    .section-heading__title { font-size: 22px; }
    .cta-banner h2 { font-size: 22px; }
}

/* =============================================================================
   ⑪ LEARNDASH CUSTOM PREMIUM STYLING OVERRIDES
   ============================================================================= */
.ld-course-list-items {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
    gap: 30px !important;
    margin-top: 20px !important;
}

.ld-course-list-items .ld_course_grid {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Premium Card container wrapper for LearnDash Courses */
.ld-course-list-items article.thumbnail.course {
    background: var(--clr-bg-card) !important;
    border: 1px solid var(--clr-border-light) !important;
    border-radius: 24px !important;
    box-shadow: var(--shadow-sm) !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out), border-color var(--t-med) ease !important;
    position: relative !important;
    padding: 0 !important;
    margin: 0 0 30px 0 !important;
    height: 100% !important;
}

.ld-course-list-items article.thumbnail.course:hover {
    transform: translateY(-6px) !important;
    box-shadow: var(--shadow-lg) !important;
    border-color: var(--clr-primary-light) !important;
}

/* Thumbnail Image styling */
.ld-course-list-items article.thumbnail.course img {
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    transition: transform var(--t-med) var(--ease-out) !important;
}

.ld-course-list-items article.thumbnail.course:hover img {
    transform: scale(1.025) !important;
}

/* Ribbon/Badge styling */
.ld-course-list-items article.thumbnail.course .ribbon {
    position: absolute !important;
    top: 20px !important;
    left: 20px !important;
    background: var(--clr-primary) !important;
    color: #fff !important;
    padding: 6px 14px !important;
    border-radius: 50px !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    z-index: 10 !important;
    box-shadow: 0 4px 12px rgba(193, 141, 113, 0.25) !important;
    border: none !important;
}

.ld-course-list-items article.thumbnail.course .ribbon.free {
    background: var(--clr-accent) !important; /* Cozy organic green */
    color: #fff !important;
}

/* Caption details area */
.ld-course-list-items article.thumbnail.course .caption {
    padding: 30px !important;
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    background: #fff !important;
    border: none !important;
}

.ld-course-list-items article.thumbnail.course h3.entry-title {
    font-size: 19px !important;
    font-weight: 800 !important;
    color: var(--clr-txt-dark) !important;
    margin: 0 0 16px 0 !important;
    line-height: 1.4 !important;
    order: 1 !important;
    font-family: inherit !important;
}

.ld-course-list-items article.thumbnail.course .ld_course_grid_button {
    margin-top: auto !important;
    order: 2 !important;
}

/* Button styling */
.ld-course-list-items article.thumbnail.course .btn-primary {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 14px 20px !important;
    background: linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark)) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 16px rgba(193,141,113,0.28) !important;
    transition: all var(--t-fast) ease !important;
    text-decoration: none !important;
}

.ld-course-list-items article.thumbnail.course .btn-primary:hover {
    background: linear-gradient(135deg, var(--clr-primary-dark), #7a4f3a) !important;
    box-shadow: 0 6px 20px rgba(193,141,113,0.4) !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}

/* =============================================================================
   ⑫ HAMA STUDY-STYLE PREMIUM LEARNDASH OVERRIDES (Kim Juha Brand Theme)
   ============================================================================= */
.learndash-wrapper {
    font-family: 'Pretendard', sans-serif !important;
    max-width: 1140px !important;
    margin: 40px auto 50px !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
}

body.single-sfwd-courses .entry-title,
body.single-sfwd-courses .post-title,
body.single-sfwd-courses h1.entry-title,
.learndash-wrapper .ld-course-title {
    text-align: center !important;
    font-weight: 800 !important;
    margin-top: 10px !important;
    margin-bottom: 30px !important;
    color: var(--clr-txt-dark) !important;
}

.learndash-wrapper .ld-breadcrumbs,
.learndash-wrapper .ld-breadcrumbs a,
.learndash-wrapper .ld-breadcrumbs span,
.learndash-wrapper .ld-breadcrumbs-segments,
.learndash-wrapper .ld-breadcrumbs-segments a,
.learndash-wrapper .ld-breadcrumbs-segments span,
.ld-breadcrumbs,
.ld-breadcrumbs a,
.ld-breadcrumbs span,
.ld-breadcrumbs-segments,
.ld-breadcrumbs-segments a,
.ld-breadcrumbs-segments span {
    color: var(--clr-txt-muted) !important;
    -webkit-text-fill-color: var(--clr-txt-muted) !important;
}

.learndash-wrapper .ld-course-status {
    background: #ffffff !important;
    padding: 35px 40px !important;
    border-radius: 20px !important;
    box-shadow: var(--shadow-sm) !important;
    border: 1px solid var(--clr-border-light) !important;
    margin-bottom: 45px !important;
}

.learndash-wrapper .ld-progress {
    margin-top: 15px !important;
}

.learndash-wrapper .ld-progress-heading {
    font-size: 15.5px !important;
    font-weight: 800 !important;
    color: var(--clr-txt-dark) !important;
    margin-bottom: 12px !important;
    display: flex !important;
    align-items: center !important;
}

.learndash-wrapper .ld-progress-percentage {
    color: var(--clr-primary) !important;
    font-weight: 900 !important;
    font-size: 17.5px !important;
    margin-left: 10px !important;
}

.learndash-wrapper .ld-progress-bar-percentage::before,
.learndash-wrapper .ld-progress-bar-percentage::after {
    display: none !important;
}

.learndash-wrapper .ld-progress-bar {
    height: 12px !important;
    border-radius: 20px !important;
    background-color: var(--clr-bg-alt) !important;
    overflow: hidden !important;
    border: none !important;
    position: relative !important;
}

.learndash-wrapper .ld-progress-bar-percentage {
    background: linear-gradient(90deg, var(--clr-primary-light), var(--clr-primary)) !important;
    border-radius: 20px !important;
    transition: width 1s ease-in-out !important;
    display: block !important;
    height: 100% !important;
    min-height: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: left !important;
    clear: both !important;
    transform: none !important;
    transform-origin: left center !important;
    max-width: 100% !important;
}

.learndash-wrapper .ld-item-list {
    border: none !important;
    background: transparent !important;
}

.learndash-wrapper .ld-section-heading {
    background: transparent !important;
    border: none !important;
    padding: 0 0 20px 0 !important;
}

.learndash-wrapper .ld-section-heading h2 {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--clr-txt-dark) !important;
}

.learndash-wrapper .ld-item-list-item {
    background: #ffffff !important;
    border: 1px solid var(--clr-border-light) !important;
    border-radius: 16px !important;
    margin-bottom: 16px !important;
    padding: 20px 25px !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: 0 4px 6px rgba(0,0,0,0.01) !important;
}

.learndash-wrapper .ld-item-list-item-preview:hover {
    background-color: #fff !important;
}

.learndash-wrapper .ld-item-list-item:hover {
    transform: translateY(-4px) !important;
    box-shadow: var(--shadow-md) !important;
    border-color: var(--clr-primary) !important;
    z-index: 2;
}

.learndash-wrapper .ld-item-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--clr-primary-dark) !important;
    transition: color 0.2s !important;
}

.learndash-wrapper .ld-item-list-item:hover .ld-item-title {
    color: var(--clr-primary) !important;
}

.learndash-wrapper .ld-status-icon,
body.ld-in-focus-mode .ld-focus-sidebar .ld-status-icon {
    border-color: #cbd5e1 !important;
    color: #cbd5e1 !important;
    border-width: 2px !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    border-radius: 50% !important;
    aspect-ratio: 1 / 1 !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
}

.learndash-wrapper .ld-status-complete .ld-status-icon {
    border-color: var(--clr-primary) !important;
    background-color: var(--clr-primary) !important;
    color: #fff !important;
}

body.ld-in-focus-mode .ld-focus-sidebar .ld-status-complete .ld-item-title::after,
.learndash-wrapper .ld-status-complete .ld-item-title::after {
    content: "완료";
    display: inline-block;
    margin-left: 8px;
    font-size: 10.5px;
    font-weight: 700;
    color: #fff;
    background: var(--clr-accent);
    padding: 2px 7px;
    border-radius: 4px;
    vertical-align: middle;
    line-height: 1.2;
}

.learndash-wrapper .ld-button,
.learndash-wrapper .ld-button:hover {
    background-color: var(--clr-primary) !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
    padding: 12px 24px !important;
    box-shadow: 0 4px 12px rgba(193, 141, 113, 0.2) !important;
}

body.ld-in-focus-mode .ld-focus-content,
body.ld-in-focus-mode .ld-focus-main {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 1140px !important;
    margin: 0 auto !important;
}

body.ld-in-focus-mode .ld-progress .ld-progress-percentage,
body.ld-in-focus-mode .ld-focus-main .ld-progress .ld-progress-percentage {
    font-size: 15px !important;
    font-weight: 800 !important;
}

.ld-focus-content .ld-focus-main .wp-block-embed iframe,
.ld-focus-content .ld-focus-main iframe,
.learndash-wrapper .wp-block-embed iframe,
.learndash-wrapper iframe {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 16px !important;
    box-shadow: 0 15px 35px rgba(0,0,0,0.06) !important;
    display: block !important;
    margin: 0 auto 40px auto !important;
}

.ld-focus-content .ld-focus-main .wp-block-embed {
    margin-bottom: 30px !important;
}

.ld-focus-content .ld-focus-main h1,
.ld-focus-content .ld-focus-main h2,
.ld-focus-content .ld-focus-main p {
    padding: 0 20px !important;
}

@media (max-width: 768px) {
    .learndash-wrapper {
        margin: 30px auto 30px !important;
    }
}

/* ===== Focus Mode CSS Adjustments (Hama-Style) ===== */
body.ld-in-focus-mode .ld-focus-header {
    min-height: 80px !important;
    padding: 16px 24px !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 20px !important;
    border: none !important;
    background: #ffffff !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-progress {
    flex: 1 !important;
    min-width: 200px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    border: none !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-progress .ld-progress-heading {
    margin: 0 !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-content-actions,
body.ld-in-focus-mode .ld-focus-header .ld-content-action {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    border: none !important;
    flex-shrink: 0 !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-content-actions form,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-content-action {
    display: flex !important;
    align-items: center !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-content-actions input[type="submit"],
body.ld-in-focus-mode .ld-focus-header .ld-content-actions button[type="submit"],
body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-button,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions a.ld-button,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-content-action a,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions form a,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-content-action label {
    background-color: var(--clr-primary) !important;
    background: var(--clr-primary) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 10px 18px !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    font-family: 'Pretendard', sans-serif !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
}

.learndash-wrapper .ld-content-actions .ld-lesson-complete-form input[type="submit"],
.learndash-wrapper .ld-content-actions form input[type="submit"],
.learndash-wrapper .ld-button.ld-button-primary {
    background-color: var(--clr-primary) !important;
    background: var(--clr-primary) !important;
    color: #fff !important;
}

.learndash-wrapper .ld-focus .ld-focus-header #sfwd-mark-complete #learndash_mark_complete_button,
.learndash-wrapper .ld-focus .ld-focus-header #sfwd-mark-complete .learndash_mark_complete_button,
.learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete #learndash_mark_complete_button,
.learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete .learndash_mark_complete_button {
    background: var(--clr-primary) !important;
    background-color: var(--clr-primary) !important;
    color: #fff !important;
    padding: 12px 24px !important;
    font-size: 14.5px !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-user-menu {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    border: none !important;
    flex-shrink: 0 !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-user-menu::before,
body.ld-in-focus-mode .ld-focus-header .ld-user-menu::after,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions::before,
body.ld-in-focus-mode .ld-focus-header .ld-content-actions::after,
body.ld-in-focus-mode .ld-focus-header .ld-content-action::before,
body.ld-in-focus-mode .ld-focus-header .ld-content-action::after,
body.ld-in-focus-mode .ld-focus-header .ld-progress::before,
body.ld-in-focus-mode .ld-focus-header .ld-progress::after {
    display: none !important;
    content: none !important;
}

body.ld-in-focus-mode .ld-focus-header > * {
    border: none !important;
}

body.ld-in-focus-mode .ld-focus-sidebar .ld-focus-sidebar-toggle {
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 100 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.ld-in-focus-mode.ld-focus-sidebar-collapsed .ld-focus-sidebar .ld-focus-sidebar-toggle {
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

/* Custom logo spacing in Focus Mode sidebar */
body.ld-in-focus-mode .ld-focus-sidebar {
    padding-top: 72px !important;
    box-sizing: border-box !important;
}

body.ld-in-focus-mode .ld-focus-sidebar .ld-focus-sidebar-heading,
body.ld-in-focus-mode .ld-focus-sidebar .ld-course-navigation-heading {
    margin-top: 0 !important;
}

.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-focus-sidebar-trigger .ld-icon {
    right: 20px !important;
}

body.ld-in-focus-mode .ld-focus-header {
    margin-top: 0 !important;
    top: 0 !important;
    background: #ffffff !important;
    box-shadow: 0 2px 15px rgba(0,0,0,0.04) !important;
}

body.ld-in-focus-mode .ld-focus {
    padding-top: 0 !important;
}

body.ld-in-focus-mode .ld-focus-main {
    background: #ffffff !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-progress-heading,
body.ld-in-focus-mode .ld-focus-header .ld-progress .ld-progress-heading {
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
}

body.ld-in-focus-mode .ld-breadcrumbs,
body.ld-in-focus-mode .ld-breadcrumbs a,
body.ld-in-focus-mode .ld-breadcrumbs span,
body.ld-in-focus-mode .ld-breadcrumbs-segments,
body.ld-in-focus-mode .ld-breadcrumbs-segments a,
body.ld-in-focus-mode .ld-breadcrumbs-segments span,
body.ld-in-focus-mode .ld-focus-header .ld-breadcrumbs,
body.ld-in-focus-mode .ld-focus-header .ld-breadcrumbs a,
body.ld-in-focus-mode .ld-focus-header .ld-breadcrumbs span,
body.ld-in-focus-mode .ld-focus-header .ld-breadcrumbs-segments,
body.ld-in-focus-mode .ld-focus-header .ld-breadcrumbs-segments a,
body.ld-in-focus-mode .ld-focus-header .ld-breadcrumbs-segments span {
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
}

body.ld-in-focus-mode .ld-focus-header .ld-status,
body.ld-in-focus-mode .ld-focus-header [class*="ld-status"]:not(.ld-status-icon),
body.ld-in-focus-mode .ld-focus-header .ld-course-status-label {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

@media (max-width: 768px) {
    body.ld-in-focus-mode .ld-focus-sidebar {
        padding-top: 64px !important;
    }
    body.ld-in-focus-mode .ld-focus-header {
        flex-wrap: wrap !important;
        gap: 12px !important;
        padding: 12px 16px !important;
        min-height: auto !important;
        overflow-x: hidden !important;
    }
    body.ld-in-focus-mode .ld-focus-header .ld-progress {
        min-width: 0 !important;
        flex: 1 1 100% !important;
        order: 1 !important;
    }
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions {
        flex-wrap: wrap !important;
        gap: 8px !important;
        order: 2 !important;
        flex: 1 1 100% !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-content-action {
        justify-content: center !important;
    }
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions input[type="submit"],
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions button[type="submit"],
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-button,
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions a.ld-button,
    body.ld-in-focus-mode .ld-focus-header .ld-content-actions .ld-content-action a {
        padding: 8px 16px !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }
    body.ld-in-focus-mode .ld-focus-header .ld-user-menu {
        order: 3 !important;
    }
    .learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete,
    .learndash-wrapper .ld-focus .ld-focus-header #sfwd-mark-complete {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
    .learndash-wrapper .ld-focus .ld-focus-header .sfwd-mark-complete form,
    .learndash-wrapper .ld-focus .ld-focus-header #sfwd-mark-complete form {
        margin: 0 auto !important;
    }
}

/* =============================================================================
   ⑥ COLUMN GRID & PAGINATION — 3 cols PC / 2 cols Mobile
   ============================================================================= */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-bottom: 50px;
}

.blog-card {
    background: #fff;
    border: 1px solid #f0e6e1;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(193,141,113,0.02);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(193,141,113,0.08);
}

.blog-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    display: block;
}

.blog-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.blog-card:hover .blog-thumb img {
    transform: scale(1.05);
}

.blog-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.blog-meta {
    display: flex;
    gap: 12px;
    font-size: 12.5px;
    color: var(--clr-txt-muted);
    margin-bottom: 12px;
}

.blog-cat {
    color: var(--clr-primary);
    font-weight: 700;
}

.blog-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--clr-txt-dark);
    margin: 0 0 12px 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: keep-all;
}

.blog-title a {
    color: inherit;
    text-decoration: none;
}

.blog-excerpt {
    font-size: 14px;
    color: #555;
    line-height: 1.6;
    margin: 0 0 20px 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: keep-all;
}

.blog-read-more {
    margin-top: auto;
    padding: 11px 14px;
    border: 1px solid #eadbd3;
    border-radius: 9px;
    background: #f8eee8;
    font-size: 13.5px;
    font-weight: 700;
    color: #5a322c;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.blog-read-more:hover {
    border-color: #5a322c;
    background: #5a322c;
    color: #fff;
}

/* Pagination */
.blog-pagination {
    text-align: center;
    margin-top: 40px;
}

.blog-pagination .nav-links {
    display: inline-flex;
    gap: 8px;
}

.blog-pagination .page-numbers {
    display: inline-flex;
    width: 40px;
    height: 40px;
    justify-content: center;
    align-items: center;
    border: 1px solid #f0e6e1;
    background: #fff;
    border-radius: 8px;
    color: var(--clr-txt-dark);
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s;
}

.blog-pagination .page-numbers.current,
.blog-pagination .page-numbers:hover {
    background: var(--clr-primary);
    color: #fff;
    border-color: var(--clr-primary);
}

/* Mobile responsive Column Grid */
@media (max-width: 992px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/* 0726 final cascade overrides */
.jh-home-program > img { aspect-ratio:16/10; }
.jh-finder-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) 230px; align-items:stretch; gap:24px; }
.jh-finder-question { height:100%; }
.jh-finder-actions { grid-column:1 / -1; display:flex; justify-content:center; }
.jh-finder-actions .jh-button { min-height:56px; border:0; cursor:pointer; }
.jh-finder-result { grid-column:1 / -1; }
.jh-process-grid.jh-process-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.jh-consultation-process .jh-process-grid { text-align:center; }

@media (min-width:769px) and (max-width:1350px) {
  .header-container { gap:10px; }
  .logo-area img.custom-logo,.site-header.scrolled .logo-area img.custom-logo { max-height:64px; }
  .nav-menu { gap:2px; }
  .nav-menu > li > a { padding:8px 9px; font-size:13px; }
  .nav-menu .cta-nav > a,.nav-menu li:last-child > a { padding-right:13px; padding-left:13px; font-size:12.5px; }
}

@media (max-width:600px) {
  .jh-coaching-image-grid article { display:block !important; grid-template-columns:1fr !important; }
  .jh-coaching-image-grid img { width:100%; height:auto !important; aspect-ratio:16/10 !important; }
  .jh-coaching-application ol { grid-template-columns:1fr; }
  .jh-process-grid--three { grid-template-columns:1fr !important; }
  .jh-finder-form { grid-template-columns:1fr; gap:20px; }
  .jh-finder-actions { grid-column:auto; }
}

/* Coaching product: keep the refund policy full-width and make the post-payment
 * schedule step visible before a customer starts checkout. */
.jh-coaching-product-page div.product > .jh-refund-policy {
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:12px 0 0 !important;
  box-sizing:border-box !important;
}
.jh-coaching-product-page .jh-refund-policy__grid {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.jh-coaching-product-page .jhcs-schedule-next-step {
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  width:100%;
  margin:0;
  padding:28px 32px;
  box-sizing:border-box;
  border:1px solid #eadbd3;
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 38px rgba(56,23,17,.06);
}
.jhcs-schedule-next-step > div { min-width:0; }
.jhcs-schedule-next-step span {
  display:block;
  margin-bottom:8px;
  color:#a6745b;
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
}
.jhcs-schedule-next-step h2 {
  margin:0 0 8px;
  color:#381711;
  font-size:22px;
  line-height:1.35;
  letter-spacing:-.04em;
}
.jhcs-schedule-next-step p {
  max-width:720px;
  margin:0;
  color:#705b54;
  font-size:13px;
  line-height:1.7;
  word-break:keep-all;
}
.jhcs-schedule-next-step__button {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 22px;
  border-radius:999px;
  background:#5a322c;
  color:#fff !important;
  font-size:13px;
  font-weight:850;
  white-space:nowrap;
}
.jhcs-schedule-next-step__button:hover,
.jhcs-schedule-next-step__button:focus-visible { background:#381711; color:#fff !important; }
@media(max-width:900px) {
  .jh-coaching-product-page .jh-refund-policy__grid { grid-template-columns:1fr !important; }
  .jh-coaching-product-page .jhcs-schedule-next-step { align-items:flex-start; flex-direction:column; padding:26px 24px; }
  .jhcs-schedule-next-step__button { width:100%; }
}
@media(max-width:520px) {
  .jh-coaching-product-page div.product > .jh-refund-policy { margin-top:4px !important; }
  .jhcs-schedule-next-step { border-radius:18px; }
  .jhcs-schedule-next-step h2 { font-size:20px; }
}

/* Coaching payment catalogue: four equal columns on desktop. */
.jh-payment-products__grid {
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  width:min(1240px,100%) !important;
  align-items:stretch;
}
.jh-payment-product {
  display:flex !important;
  min-width:0;
  flex-direction:column !important;
  border-radius:20px !important;
}
.jh-payment-product>img {
  display:block;
  width:100% !important;
  height:auto !important;
  aspect-ratio:4/3;
  min-height:0 !important;
  object-fit:cover !important;
}
.jh-payment-product>div {
  display:flex !important;
  flex:1 1 auto;
  min-width:0;
  padding:24px 22px 22px !important;
  flex-direction:column;
  align-items:flex-start;
}
.jh-payment-product h2 { font-size:21px !important; }
.jh-payment-product p { margin-bottom:16px !important; font-size:13px !important; }
.jh-payment-product strong { margin-top:auto !important; font-size:22px !important; }
.jh-payment-product a { width:100%; box-sizing:border-box; justify-content:center; margin-top:15px !important; }
@media(max-width:1100px) {
  .jh-payment-products__grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; max-width:760px; }
}
@media(max-width:650px) {
  .jh-payment-products__grid { grid-template-columns:1fr !important; width:min(100%,420px) !important; gap:18px !important; }
  .jh-payment-product>img { aspect-ratio:16/10; }
  .jh-payment-product>div { padding:24px 22px !important; }
}

/* Accessible password visibility controls on the custom login/register forms. */
.jh-password-field { position:relative; }
.jh-password-field input { padding-right:52px !important; }
.jh-password-toggle {
  position:absolute;
  top:50%;
  right:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#9b7564;
  cursor:pointer;
  transform:translateY(-50%);
}
.jh-password-toggle:hover,
.jh-password-toggle:focus-visible { background:#f7efea; color:#5a322c; outline:2px solid #c18d71; outline-offset:2px; }
.jh-password-toggle svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.jh-password-toggle__hide { display:none; }
.jh-password-toggle[aria-pressed="true"] .jh-password-toggle__show { display:none; }
.jh-password-toggle[aria-pressed="true"] .jh-password-toggle__hide { display:block; }

/* Desktop coaching application process. */
@media (min-width:901px) {
  .jh-coaching-application ol {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
}

@media (min-width:601px) and (max-width:900px) {
  .jh-coaching-application ol {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:600px) {
  .jh-coaching-application ol {
    grid-template-columns:1fr;
  }
}

/* Unified login and registration */
.jh-auth-shell {
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr;
  width:min(620px,100%);
  margin:10px auto 30px;
  border:1px solid #e7d9d2;
  border-radius:28px;
  background:#fff;
  box-shadow:0 26px 70px rgba(56,23,17,.11);
}
.jh-auth-story {
  position:relative;
  overflow:hidden;
  padding:58px 48px;
  background:#381711;
  color:#fff;
}
.jh-auth-story::before,
.jh-auth-story::after {
  content:'';
  position:absolute;
  border:1px solid rgba(255,255,255,.1);
  border-radius:50%;
  pointer-events:none;
}
.jh-auth-story::before { right:-95px; top:-85px; width:260px; height:260px; }
.jh-auth-story::after { left:-120px; bottom:-145px; width:330px; height:330px; }
.jh-auth-story__eyebrow {
  position:relative;
  z-index:1;
  color:#fffefc;
  font-size:11px;
  font-weight:850;
  letter-spacing:.18em;
}
.jh-auth-story h2 {
  position:relative;
  z-index:1;
  margin:18px 0;
  color:#fff;
  font-size:clamp(30px,3.1vw,42px);
  line-height:1.3;
  letter-spacing:-.045em;
  word-break:keep-all;
}
.jh-auth-story > p {
  position:relative;
  z-index:1;
  margin:0;
  color:rgba(255,255,255,.7);
  font-size:14px;
  line-height:1.85;
  word-break:keep-all;
}
.jh-auth-story ul {
  position:relative;
  z-index:1;
  display:grid;
  gap:13px;
  margin:42px 0 0;
  padding:0;
  list-style:none;
}
.jh-auth-story li {
  display:grid;
  grid-template-columns:44px 1fr;
  align-items:center;
  gap:14px;
  padding:15px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(255,255,255,.055);
}
.jh-auth-story__icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:12px;
  background:rgba(255,255,255,.1);
}
.jh-auth-story__icon svg {
  width:22px;
  height:22px;
  fill:none;
  stroke:#fff;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.jh-auth-story li strong,
.jh-auth-story li small { display:block; }
.jh-auth-story li strong { color:#fff; font-size:14px; }
.jh-auth-story li small { margin-top:4px; color:rgba(255,255,255,.58); font-size:11.5px; line-height:1.45; }
.jh-auth-panel { min-width:0; padding:46px 52px 50px; }
.jh-auth-brand { margin-bottom:27px; text-align:center; }
.jh-auth-brand > a { display:inline-flex; align-items:center; justify-content:center; min-height:56px; color:#381711; }
.jh-auth-brand img { display:block; width:auto; max-width:260px; max-height:58px; }
.jh-auth-brand strong { font-size:22px; font-weight:850; }
.jh-auth-brand h2 { margin:20px 0 6px; color:#381711; font-size:26px; letter-spacing:-.035em; }
.jh-auth-brand p { margin:0; color:#806b65; font-size:13.5px; line-height:1.55; }
.jh-auth-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
  margin-bottom:28px;
  padding:5px;
  border-radius:14px;
  background:#eeeeee;
}
.jh-auth-tabs button {
  min-height:46px;
  padding:10px 14px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#806b65;
  font:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,box-shadow .2s ease;
}
.jh-auth-tabs button.is-active {
  background:#fff;
  color:#5a322c;
  box-shadow:0 5px 15px rgba(56,23,17,.1);
}
.jh-auth-tabs button:focus-visible { outline:3px solid rgba(90,50,44,.2); outline-offset:2px; }
.jh-auth-form[hidden] { display:none !important; }
.jh-auth-field { margin-bottom:18px; }
.jh-auth-field label {
  display:block;
  margin-bottom:8px;
  color:#462d29;
  font-size:13px;
  font-weight:800;
}
.jh-auth-field label span { color:#5a322c; }
.jh-auth-field input {
  display:block;
  width:100%;
  height:52px;
  padding:0 16px;
  border:1px solid #dfd4cf;
  border-radius:12px;
  outline:0;
  background:#fffefc;
  color:#381711;
  font:inherit;
  font-size:14px;
  box-sizing:border-box;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.jh-auth-field input::placeholder { color:#ad9b94; }
.jh-auth-field input:focus {
  border-color:#5a322c;
  background:#fff;
  box-shadow:0 0 0 4px rgba(90,50,44,.09);
}
.jh-auth-utilities {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:3px 0 25px;
  color:#806b65;
  font-size:12.5px;
}
.jh-auth-check {
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:#735f59;
  font-size:12.5px;
  line-height:1.55;
  cursor:pointer;
}
.jh-auth-check input { flex:0 0 auto; width:16px; height:16px; margin:1px 0 0; accent-color:#5a322c; }
.jh-auth-find { display:flex; align-items:center; white-space:nowrap; }
.jh-auth-find a,
.jh-auth-terms a { color:#5a322c; font-weight:750; text-decoration:none; }
.jh-auth-find a:hover,
.jh-auth-terms a:hover { text-decoration:underline; }
.jh-auth-find i { display:block; width:1px; height:11px; margin:0 8px; background:#d8cbc5; }
.jh-auth-terms { margin:1px 0 22px; }
.jh-auth-submit {
  width:100%;
  min-height:54px;
  padding:14px 20px;
  border:1px solid #5a322c;
  border-radius:12px;
  background:#5a322c;
  color:#fff;
  font:inherit;
  font-size:15px;
  font-weight:850;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(90,50,44,.16);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.jh-auth-submit:hover,
.jh-auth-submit:focus-visible { background:#381711; transform:translateY(-1px); box-shadow:0 13px 30px rgba(56,23,17,.2); }
.jh-auth-caption { margin:13px 0 0; color:#9a8881; font-size:11.5px; text-align:center; }
.jh-auth-message {
  margin:0 0 22px;
  padding:13px 15px;
  border-radius:11px;
  font-size:13px;
  font-weight:700;
  line-height:1.55;
}
.jh-auth-message--error { border:1px solid #dfc9c2; background:#fff7f4; color:#5a322c; }

@media (max-width:820px) {
  .jh-auth-shell { grid-template-columns:1fr; width:min(620px,100%); }
  .jh-auth-story { padding:38px 38px 35px; }
  .jh-auth-story h2 { margin:13px 0 12px; font-size:31px; }
  .jh-auth-story ul { grid-template-columns:repeat(3,1fr); gap:8px; margin-top:25px; }
  .jh-auth-story li { grid-template-columns:1fr; align-content:start; padding:13px; }
  .jh-auth-story li small { display:none; }
}

@media (max-width:600px) {
  .jh-auth-shell { margin:0 auto 15px; border-radius:20px; }
  .jh-auth-story { padding:30px 24px; }
  .jh-auth-story h2 { font-size:27px; }
  .jh-auth-story > p { font-size:13px; }
  .jh-auth-story ul { display:none; }
  .jh-auth-panel { padding:30px 22px 34px; }
  .jh-auth-brand { margin-bottom:23px; }
  .jh-auth-brand img { max-width:220px; max-height:51px; }
  .jh-auth-brand h2 { margin-top:15px; font-size:23px; }
  .jh-auth-utilities { align-items:flex-start; flex-direction:column; gap:12px; }
  .jh-auth-field input { height:50px; }
}

/* 0727 document request: prominent finder CTA inside the program section. */
.jh-home-program-finder {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  margin-top:34px;
  padding:38px 44px;
  border-radius:24px;
  background:#5a322c;
  color:#fff;
  box-shadow:0 18px 42px rgba(56,23,17,.14);
}
.jh-home-program-finder__copy > span {
  display:block;
  margin-bottom:9px;
  color:#e7b99f;
  font-size:13px;
  font-weight:850;
  letter-spacing:.08em;
}
.jh-home-program-finder__copy h3 {
  margin:0;
  color:#fff;
  font-size:clamp(28px,3vw,40px);
  line-height:1.2;
  letter-spacing:-.04em;
  word-break:keep-all;
}
.jh-home-program-finder__copy p {
  margin:13px 0 0;
  color:rgba(255,255,255,.78);
  font-size:16px;
  line-height:1.7;
  word-break:keep-all;
}
.jh-home-program-finder__button {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:58px;
  padding:0 26px;
  border-radius:999px;
  background:#fff;
  color:#381711;
  font-size:15px;
  font-weight:850;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.jh-home-program-finder__button:hover,
.jh-home-program-finder__button:focus-visible {
  background:#f7e8df;
  color:#381711;
  transform:translateY(-2px);
}

/* Desktop coaching application process. */
@media (min-width:901px) {
  .jh-coaching-application ol {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
}

@media (min-width:601px) and (max-width:900px) {
  .jh-coaching-application ol {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:760px) {
  .jh-home-program-finder {
    align-items:stretch;
    flex-direction:column;
    gap:24px;
    padding:30px 24px;
  }
  .jh-home-program-finder__button {
    width:100%;
  }
}

@media (max-width:600px) {
  .jh-coaching-application ol {
    grid-template-columns:1fr;
  }
}

/* 0727 mobile navigation: account actions are separated from page navigation. */
.mobile-nav-heading,
.mobile-nav-account,
.mobile-nav-backdrop {
  display:none;
}

@media (max-width:782px) {
  body.nav-open { overflow:hidden; }

  .menu-toggle {
    display:flex;
    position:relative;
    z-index:1003;
    align-items:center;
    width:44px;
    height:44px;
    border:1px solid #eadfd9;
    border-radius:14px;
    background:#fff;
    box-shadow:0 6px 18px rgba(56,23,17,.07);
  }
  .menu-toggle:hover { background:#fffaf6; }
  .menu-toggle.active {
    position:fixed;
    top:calc(20px + env(safe-area-inset-top));
    right:18px;
    border-color:#e2d0c7;
  }

  .mobile-nav-backdrop {
    display:block;
    position:fixed;
    inset:0;
    z-index:1001;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(39,24,20,.46);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .28s ease,visibility .28s ease;
  }
  body.nav-open .mobile-nav-backdrop {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .main-navigation {
    display:flex;
    position:fixed;
    top:0;
    right:0;
    left:auto;
    z-index:1002;
    width:min(88vw,390px);
    height:100dvh;
    padding:0 20px 24px;
    border:0;
    border-radius:24px 0 0 24px;
    background:#fffefc;
    box-shadow:-22px 0 60px rgba(56,23,17,.18);
    overflow-y:auto;
    transform:translateX(105%);
    transition:transform .32s cubic-bezier(.22,.8,.28,1);
  }
  .main-navigation.active {
    right:0;
    left:auto;
    transform:translateX(0);
  }

  .mobile-nav-heading {
    display:flex;
    flex-direction:column;
    width:100%;
    padding:calc(28px + env(safe-area-inset-top)) 58px 20px 4px;
    border-bottom:1px solid #eadfd9;
  }
  .mobile-nav-heading span {
    color:#b57d61;
    font-size:11px;
    font-weight:850;
    letter-spacing:.16em;
  }
  .mobile-nav-heading strong {
    margin-top:6px;
    color:#381711;
    font-size:18px;
    line-height:1.4;
    letter-spacing:-.025em;
  }

  .nav-menu {
    width:100%;
    margin:14px 0 0;
    gap:5px;
  }
  .nav-menu > li > a {
    display:flex;
    align-items:center;
    position:relative;
    min-height:48px;
    padding:13px 44px 13px 15px;
    border:1px solid transparent;
    border-radius:13px;
    background:transparent;
    color:#4f3a34;
    font-size:15px;
    font-weight:700;
    line-height:1.4;
  }
  .nav-menu > li > a::after {
    content:'';
    position:absolute;
    top:50%;
    right:17px;
    width:7px;
    height:7px;
    border-top:1.5px solid currentColor;
    border-right:1.5px solid currentColor;
    opacity:.46;
    transform:translateY(-50%) rotate(45deg);
  }
  .nav-menu > li > a:hover,
  .nav-menu > li.current-menu-item > a {
    border-color:#eadfd9;
    background:#fff8f3;
    color:#5a322c;
  }
  .nav-menu > li > a[href*="/online-academy/"],
  .nav-menu > li > a[href*="/coaching/"],
  .nav-menu > li > a[href*="/one-time-consultation/"] {
    width:100%;
    max-width:none;
    min-height:48px;
    padding:13px 44px 13px 15px;
    border-color:#eadfd9;
    background:#f8f1ed;
    color:#5a322c;
  }
  .nav-menu > li.current-menu-item > a[href*="/online-academy/"],
  .nav-menu > li.current-menu-item > a[href*="/coaching/"],
  .nav-menu > li.current-menu-item > a[href*="/one-time-consultation/"] {
    border-color:#5a322c;
    background:#5a322c;
    color:#fff;
  }
  .nav-menu .cta-nav,
  .nav-menu > li:has(> a[href*="/my-classroom/"]) {
    display:none;
  }

  .mobile-nav-account {
    display:block;
    width:100%;
    margin-top:22px;
    padding:20px 0 72px;
    border-top:1px solid #eadfd9;
  }
  .mobile-nav-account__eyebrow {
    display:block;
    margin:0 0 9px 3px;
    color:#a47a68;
    font-size:10px;
    font-weight:850;
    letter-spacing:.16em;
  }
  .mobile-nav-account__classroom {
    display:flex;
    align-items:center;
    gap:13px;
    padding:16px;
    border-radius:16px;
    background:#5a322c;
    color:#fff !important;
    box-shadow:0 12px 26px rgba(90,50,44,.2);
  }
  .mobile-nav-account__classroom svg {
    flex:0 0 32px;
    width:32px;
    height:32px;
    padding:6px;
    border-radius:10px;
    background:rgba(255,255,255,.12);
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .mobile-nav-account__classroom span { min-width:0; }
  .mobile-nav-account__classroom strong,
  .mobile-nav-account__classroom small { display:block; }
  .mobile-nav-account__classroom strong { font-size:15px; }
  .mobile-nav-account__classroom small {
    margin-top:3px;
    color:rgba(255,255,255,.7);
    font-size:11px;
    font-weight:500;
  }
  .mobile-nav-account__auth {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    margin:9px 64px 0 0;
    border:1px solid #dfcec5;
    border-radius:14px;
    background:#fff;
    color:#5a322c;
    font-size:14px;
    font-weight:800;
  }
  .mobile-nav-account__auth:hover {
    border-color:#c18d71;
    background:#fff8f3;
    color:#381711;
  }
}

@media (max-width:360px) {
  .main-navigation {
    width:min(92vw,360px);
    padding-right:16px;
    padding-left:16px;
  }
  .mobile-nav-heading { padding-left:2px; }
}

/* 0727: keep the coaching application bar compact, centered and clear of chat UI. */
.jh-coaching-page .jh-coaching-floating {
  left:50%;
  right:auto;
  width:min(760px,calc(100% - 40px));
  max-width:760px;
  padding:10px 12px 10px 42px;
  transform:translateX(-50%);
}

@media (max-width:600px) {
  .jh-coaching-page .jh-coaching-floating {
    left:14px;
    right:76px;
    width:auto;
    max-width:none;
    padding:10px 10px 10px 26px;
    transform:none;
  }
  .jh-coaching-page .jh-coaching-floating > div {
    min-width:0;
    padding-right:5px;
  }
  .jh-coaching-page .jh-coaching-floating > div strong {
    font-size:12px;
    line-height:1.35;
  }
  .jh-coaching-page .jh-coaching-floating > a {
    min-width:84px;
    padding:12px 13px;
  }
}

@media (max-width:390px) {
  .jh-coaching-page .jh-coaching-floating {
    left:10px;
    right:68px;
    padding-left:22px;
  }
  .jh-coaching-page .jh-coaching-floating > div strong {
    font-size:11px;
  }
  .jh-coaching-page .jh-coaching-floating > a {
    min-width:76px;
    padding-right:10px;
    padding-left:10px;
  }
}

/* Checkout layout correction: WooCommerce prints the order heading as a
   separate flex child. Keep the checkout to two intentional columns instead
   of allowing that heading to create a third, empty column. */
.woocommerce-checkout form.checkout {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(340px,420px) !important;
  gap:32px !important;
  align-items:start !important;
  margin-top:30px !important;
}
.woocommerce-checkout #customer_details {
  grid-column:1 !important;
  width:auto !important;
  min-width:0 !important;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
  float:none !important;
  width:100% !important;
  max-width:none !important;
}
.woocommerce-checkout #order_review_heading {
  display:none !important;
}
.woocommerce-checkout #order_review {
  grid-column:2 !important;
  width:auto !important;
  min-width:0 !important;
  position:sticky !important;
  top:104px !important;
}
.woocommerce-checkout #order_review::before {
  content:'고객님의 주문';
  display:block;
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:2px solid #c18d71;
  color:#1a1512;
  font-size:19px;
  font-weight:800;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
  float:none !important;
  width:100% !important;
  max-width:none !important;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row,
.woocommerce-checkout .woocommerce-additional-fields p.form-row {
  width:100% !important;
  float:none !important;
  clear:none !important;
  min-width:0 !important;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="first-name"],
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="last-name"] {
  width:100% !important;
}
.woocommerce-checkout .woocommerce-info {
  max-width:1200px;
  margin-right:auto !important;
  margin-left:auto !important;
}

@media (max-width:992px) {
  .woocommerce-checkout form.checkout {
    display:flex !important;
    flex-direction:column !important;
    gap:22px !important;
  }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review {
    width:100% !important;
    grid-column:auto !important;
    position:static !important;
  }
}

@media (max-width:600px) {
  .woocommerce-checkout .woocommerce {
    width:calc(100% - 28px);
  }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review {
    padding:22px 18px !important;
    border-radius:18px !important;
  }
  .woocommerce-billing-fields__field-wrapper {
    grid-template-columns:1fr !important;
    gap:0 !important;
  }
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="first-name"],
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="last-name"] {
    grid-column:1 !important;
  }
  .woocommerce-checkout #order_review::before {
    font-size:18px;
  }
}

/* 0726 document audit: combined program introduction and live finder score. */
.jh-program-subhero {
  position:relative;
  overflow:hidden;
  padding:88px 24px 82px;
  background:
    radial-gradient(circle at 12% 22%,rgba(193,141,113,.13) 0 90px,transparent 91px),
    radial-gradient(circle at 88% 76%,rgba(90,50,44,.07) 0 150px,transparent 151px),
    linear-gradient(135deg,#fffefc 0%,#f5e7df 100%);
  text-align:center;
}
.jh-program-subhero .jh-info-container { position:relative; z-index:1; }
.jh-program-subhero h1 {
  margin:13px 0 14px;
  color:#381711;
  font-size:clamp(38px,5vw,58px);
  line-height:1.18;
  letter-spacing:-.05em;
}
.jh-program-subhero p {
  margin:0;
  color:#735f59;
  font-size:16px;
  line-height:1.8;
  word-break:keep-all;
}
.jh-program-subhero__links {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px;
  margin-top:27px;
}
.jh-program-subhero__links a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:45px;
  padding:11px 18px;
  border:1px solid #dcc8be;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:#5a322c;
  font-size:13px;
  font-weight:800;
  backdrop-filter:blur(8px);
}
.jh-program-subhero__links a:hover {
  border-color:#5a322c;
  background:#5a322c;
  color:#fff;
}
.jh-program-introduction {
  padding:100px 0;
  background:#fff;
  scroll-margin-top:100px;
}
.jh-program-introduction .jh-home-heading h1,
.jh-program-introduction .jh-home-heading h2 {
  margin:15px 0 14px;
  color:#381711;
  font-size:clamp(30px,4vw,48px);
  line-height:1.22;
  letter-spacing:-.045em;
  word-break:keep-all;
}
.jh-program-introduction .jh-home-program__body h2 {
  margin:8px 0 12px;
  color:#381711;
  font-size:23px;
}
.jh-finder__hero {
  scroll-margin-top:100px;
}
.jh-finder__body {
  width:min(1180px,calc(100% - 48px));
}
.jh-finder-form {
  grid-template-columns:repeat(2,minmax(0,1fr)) 230px;
  align-items:stretch;
  gap:24px;
}
.jh-finder-question {
  padding:30px 28px 25px;
}
.jh-finder-question legend {
  margin-bottom:22px;
  font-size:19px;
}
.jh-finder-options {
  gap:9px;
}
.jh-finder-options label > span {
  height:50px;
  font-size:15px;
}
.jh-finder-scale {
  display:flex;
  justify-content:space-between;
  gap:15px;
  margin-top:10px;
  color:#9a847d;
  font-size:12px;
  font-weight:600;
}
.jh-finder-score {
  grid-column:3;
  grid-row:1 / span 3;
  position:sticky;
  top:125px;
  align-self:start;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:230px;
  padding:28px 22px;
  border-radius:50%;
  background:#c49376;
  color:#fff;
  text-align:center;
  box-shadow:0 16px 34px rgba(90,50,44,.14);
}
.jh-finder-score > span {
  font-size:13px;
  font-weight:800;
}
.jh-finder-score > strong {
  margin:8px 0 1px;
  font-size:58px;
  line-height:1;
  letter-spacing:-.05em;
}
.jh-finder-score > b {
  font-size:15px;
}
.jh-finder-score > p {
  position:absolute;
  top:calc(100% + 17px);
  width:230px;
  margin:0;
  color:#806b65;
  font-size:12.5px;
  font-weight:600;
  line-height:1.65;
}
.jh-finder-actions {
  grid-column:1 / 3;
}

@media (max-width:1080px) {
  .jh-finder-form {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .jh-finder-score {
    grid-column:1 / -1;
    grid-row:auto;
    position:relative;
    width:230px;
    margin:12px auto 24px;
  }
  .jh-finder-actions {
    grid-column:1 / -1;
  }
}

@media (max-width:600px) {
  .jh-program-subhero { padding:62px 18px 58px; }
  .jh-program-subhero h1 { font-size:38px; }
  .jh-program-subhero p { max-width:300px; margin-right:auto; margin-left:auto; font-size:14px; }
  .jh-program-subhero__links { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:22px; }
  .jh-program-subhero__links a { min-height:43px; padding:9px 10px; font-size:12px; }
  .jh-program-introduction {
    padding:72px 0;
  }
  .jh-program-introduction .jh-home-heading h1,
  .jh-program-introduction .jh-home-heading h2 {
    font-size:31px;
  }
  .jh-finder__body {
    width:min(100% - 28px,1120px);
  }
  .jh-finder-form {
    grid-template-columns:1fr;
    gap:20px;
  }
  .jh-finder-question {
    padding:25px 18px 22px;
  }
  .jh-finder-options {
    gap:5px;
  }
  .jh-finder-options label > span {
    height:47px;
    font-size:13px;
  }
  .jh-finder-score,
  .jh-finder-actions {
    grid-column:auto;
  }
}

/* Coaching bottom bar: compact desktop centering and safe mobile gutters. */
.jh-coaching-page .jh-coaching-floating {
  left:50%;
  right:auto;
  width:min(760px,calc(100% - 40px));
  padding:10px 12px 10px 24px;
  transform:translateX(-50%);
}

@media (max-width:600px) {
  .jh-coaching-page .jh-coaching-floating {
    left:14px;
    right:76px;
    width:auto;
    padding:10px 10px 10px 19px;
    transform:none;
  }
  .jh-coaching-page .jh-coaching-floating > div {
    padding-right:5px;
  }
  .jh-coaching-page .jh-coaching-floating > div strong {
    font-size:12px;
    line-height:1.35;
  }
  .jh-coaching-page .jh-coaching-floating > a {
    min-width:84px;
    padding:12px 13px;
  }
}

@media (max-width:390px) {
  .jh-coaching-page .jh-coaching-floating {
    left:10px;
    right:68px;
    padding-left:15px;
  }
  .jh-coaching-page .jh-coaching-floating > div strong {
    font-size:11px;
  }
  .jh-coaching-page .jh-coaching-floating > a {
    min-width:76px;
    padding-right:10px;
    padding-left:10px;
  }
}

/* 0726 feedback: content hierarchy, page navigation and mobile safeguards */
.jh-home-program:nth-child(1) { background:#fff8f3; }
.jh-home-program:nth-child(2) { background:#eeeeee; }
.jh-home-program:nth-child(3) { background:#f8f0eb; }
.jh-home-program__body { background:transparent; }
.jh-home-program > img { aspect-ratio:16/10; }
.jh-home-final .jh-button { min-height:58px; padding:17px 30px; font-size:16px; }
.jh-home-system__training-intro { margin:0 0 24px !important; padding:0 0 22px; border-bottom:1px solid #eadfd9; color:#5a322c !important; font-size:15px; font-weight:750; line-height:1.8 !important; }

.jh-academy-intro h1 { word-break:keep-all; text-wrap:balance; }
.jh-course-card-eyebrow { margin:0 0 7px; color:#806b65; font-size:13px; font-weight:500; line-height:1.6; word-break:keep-all; }

.jh-coaching-tabs { position:sticky; z-index:80; top:var(--header-height, 84px); border-top:1px solid #eee; border-bottom:1px solid #eadfd9; background:rgba(255,254,252,.96); backdrop-filter:blur(12px); }
.jh-coaching-tabs .jh-info-container { display:flex; justify-content:center; gap:8px; padding-top:12px; padding-bottom:12px; overflow-x:auto; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; scrollbar-width:none; }
.jh-coaching-tabs .jh-info-container::-webkit-scrollbar { display:none; }
.jh-coaching-tabs a { flex:0 0 auto; padding:10px 16px; border-radius:999px; color:#5a322c; font-size:13px; font-weight:800; white-space:nowrap; }
.jh-coaching-tabs a:hover,.jh-coaching-tabs a:focus-visible { background:#5a322c; color:#fff; }
.jh-coaching-types { scroll-margin-top:140px; padding:100px 0; background:#fff; }
.jh-coaching-types__grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:stretch; gap:22px; width:min(1020px,100%); margin-inline:auto; }
.jh-coaching-types__grid .jh-coaching-option-card { position:relative; overflow:hidden; display:flex; grid-column:span 2; flex-direction:column; min-width:0; border:1px solid #e5d6ce; border-radius:22px; background:#fff; box-shadow:0 14px 38px rgba(56,23,17,.07); }
.jh-coaching-types__grid .jh-coaching-option-card:nth-child(4) { grid-column:2 / span 2; }
.jh-coaching-types__grid .jh-coaching-option-card:nth-child(5) { grid-column:4 / span 2; }
.jh-coaching-option-card__badge { position:absolute; z-index:2; top:15px; left:-34px; width:126px; padding:7px 0; transform:rotate(-38deg); background:#d8292f; color:#fff; font-size:10px; font-weight:900; letter-spacing:.12em; text-align:center; box-shadow:0 4px 12px rgba(216,41,47,.24); }
.jh-coaching-types__grid .jh-coaching-option-card__label { margin:0; padding:23px 20px; background:#5a322c; color:#fff; font-size:19px; font-weight:850; line-height:1.35; text-align:center; word-break:keep-all; }
.jh-coaching-option-card__body { display:flex; flex-direction:column; flex:1; padding:25px 23px 22px; }
.jh-coaching-option-card__body dl { display:flex; width:100%; margin:0; flex-direction:column; gap:17px; text-align:center; }
.jh-coaching-option-card__body dl > div { margin:0; }
.jh-coaching-option-card__body dt { margin:0 0 5px; color:#5a322c; font-size:14px; font-weight:850; }
.jh-coaching-option-card__body dd { margin:0; color:#62504b; font-size:13px; line-height:1.65; word-break:keep-all; }
.jh-coaching-option-card__line { display:block; }
.jh-coaching-option-card__line + .jh-coaching-option-card__line { margin-top:3px; }
.jh-coaching-option-card__price { display:grid; grid-template-columns:1fr; justify-items:center; align-items:end; gap:4px; padding:17px 22px; border-top:1px solid #eee; border-bottom:1px solid #eadbd3; background:#fffefc; text-align:center; }
.jh-coaching-option-card__price span { grid-column:1 / -1; color:#806b65; font-size:12px; font-weight:750; }
.jh-coaching-option-card__price strong { color:#381711; font-size:21px; line-height:1.2; }
.jh-coaching-option-card__price small { color:#806b65; font-size:12px; }
.jh-coaching-option-card__footer { display:grid; justify-items:center; align-items:center; gap:14px; padding:20px 22px 22px; background:#fff; text-align:center; }
.jh-coaching-option-card__footer h4 { margin:0; color:#381711; font-size:16px; line-height:1.45; word-break:keep-all; }
.jh-coaching-types__grid .jh-coaching-option-card__footer a { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:10px 13px; border:1px solid #5a322c; border-radius:999px; color:#5a322c; font-size:12px; font-weight:800; line-height:1; white-space:nowrap; }
.jh-coaching-types__grid .jh-coaching-option-card__footer a:hover,.jh-coaching-types__grid .jh-coaching-option-card__footer a:focus-visible { background:#5a322c; color:#fff; }
.jh-coaching-types__note { margin:26px 0 0; text-align:center; color:#5a322c; font-size:16px; font-weight:750; }

/* Desktop coaching typography: supporting copy should remain readable beside
   the intentionally large section headings. Mobile retains its tuned scale. */
@media (min-width:901px) {
  .jh-coaching-page .jh-service-hero__grid > div:first-child > p { font-size:18px; line-height:1.85; }
  .jh-coaching-page .jh-service-hero .jh-coaching-refund { margin-top:17px; font-size:15px; line-height:1.65; }
  .jh-coaching-page .jh-coaching-tabs a { padding:11px 18px; font-size:15px; }
  .jh-coaching-page .jh-info-heading > p { font-size:17px; line-height:1.8; }
  .jh-coaching-page .jh-coaching-option-card__body dt { font-size:15px; }
  .jh-coaching-page .jh-coaching-option-card__body dd { font-size:15px; line-height:1.7; }
  .jh-coaching-page .jh-coaching-care__copy > p { font-size:17px; }
  .jh-coaching-page .jh-coaching-care__copy h4 { font-size:14px; }
  .jh-coaching-page .jh-coaching-care__copy li { font-size:16px; line-height:1.65; }
  .jh-coaching-page .jh-coaching-cycle li p,
  .jh-coaching-page .jh-coaching-program p,
  .jh-coaching-page .jh-coaching-program__result li { font-size:16px; }
  .jh-coaching-page .jh-coaching-cycle__closing { margin-top:38px; font-size:21px; line-height:1.65; font-weight:800; }
  .jh-coaching-page .jh-coaching-team__cards p,
  .jh-coaching-page .jh-coaching-reviews__grid .jh-coaching-review p { font-size:15px; }
}
.jh-coaching-reviews__grid .jh-coaching-review { overflow:hidden; display:flex; flex-direction:column; min-height:0; border:1px solid #eadbd3; border-radius:18px; background:#fff7eb; color:inherit; }
.jh-coaching-reviews__grid .jh-coaching-review img { width:100%; height:auto; aspect-ratio:16/10; min-height:0; object-fit:cover; }
.jh-coaching-reviews__grid .jh-coaching-review div { display:block; padding:24px; }
.jh-coaching-reviews__grid .jh-coaching-review h3 { display:-webkit-box; overflow:hidden; margin:0 0 9px; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.jh-coaching-reviews__grid .jh-coaching-review p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.jh-coaching-reviews .jh-home-center { display:flex; align-items:center; justify-content:center; width:100%; margin:38px auto 0; text-align:center; }
.jh-coaching-reviews__cta { display:inline-flex; align-items:center; justify-content:center; min-width:190px; margin:0 auto; padding:15px 24px; border:1px solid #5a322c; border-radius:999px; font-size:16px; }
.jh-coaching-application li small { display:block; margin-top:9px; color:#4b76a5; font-size:12px; font-weight:750; }
.jh-coaching-form-options { margin:0; padding:18px; border:1px solid #cbd5e1; border-radius:10px; }
.jh-coaching-form-options legend { padding:0 7px; color:#333; font-size:13.5px; font-weight:800; }
.jh-coaching-form-options > label { display:inline-flex; align-items:center; gap:6px; margin:7px 18px 7px 0; color:#5f514c; font-size:13px; }
.jh-coaching-form-options input { accent-color:#5a322c; }

.jh-consultation-page .jh-service-hero h1 { max-width:none; font-size:clamp(33px,3.35vw,48px); line-height:1.25; }
.jh-consultation-process .jh-info-heading { text-align:center; }
.jh-consultation-process__cta { margin-top:36px; text-align:center; }

.jh-finder-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:24px; }
.jh-finder-question { height:100%; }
.jh-finder-actions { grid-column:1 / -1; display:flex; justify-content:center; }
.jh-finder-actions .jh-button { min-height:56px; border:0; cursor:pointer; }
.jh-finder-result { grid-column:1 / -1; }

@media (max-width:900px) {
  .jh-coaching-types__grid { grid-template-columns:repeat(2,minmax(0,1fr)); width:min(720px,100%); }
  .jh-coaching-types__grid .jh-coaching-option-card { grid-column:auto; min-height:0; }
  .jh-coaching-types__grid .jh-coaching-option-card:last-child:nth-child(odd) { grid-column:1 / -1; width:calc(50% - 11px); justify-self:center; }
  .jh-coaching-types__grid .jh-coaching-option-card:nth-child(4) { grid-column:auto; }
  .jh-coaching-types__grid .jh-coaching-option-card:nth-child(5) { grid-column:1 / -1; width:calc(50% - 11px); justify-self:center; }
  .jh-consultation-page .jh-service-hero h1 { white-space:normal; }
}

@media (max-width:600px) {
  .jh-home-final__inner { padding-left:22px; padding-right:22px; }
  .jh-home-final h2 { max-width:12em; margin-left:auto; margin-right:auto; text-wrap:balance; }
  .jh-home-final p { max-width:22em; margin-left:auto; margin-right:auto; word-break:keep-all; }
  .jh-home-final .jh-button { width:100%; max-width:300px; min-height:54px; padding:15px 18px; font-size:15px; }
  .jh-academy-intro h1 { font-size:34px; line-height:1.28; }
  .jh-coaching-tabs { top:70px; }
  .jh-coaching-tabs .jh-info-container { justify-content:center; gap:2px; padding-left:6px; padding-right:6px; overflow-x:hidden; }
  .jh-coaching-tabs a { padding:9px 8px; font-size:12px; letter-spacing:-.04em; }
  .jh-coaching-types { padding:72px 0; }
  .jh-coaching-types__grid { grid-template-columns:1fr; width:min(100%,380px); margin-inline:auto; }
  .jh-coaching-types__grid .jh-coaching-option-card:last-child:nth-child(odd) { grid-column:auto; width:auto; justify-self:stretch; }
  .jh-coaching-types__grid .jh-coaching-option-card:nth-child(5) { grid-column:auto; width:auto; }
  .jh-coaching-option-card__body { padding:23px 21px 20px; }
  .jh-coaching-option-card__footer { align-items:center; }
  .jh-coaching-image-grid article { display:block !important; grid-template-columns:1fr !important; }
  .jh-coaching-image-grid img { width:100%; height:auto !important; aspect-ratio:16/10 !important; }
  .jh-coaching-reviews__grid article { grid-template-columns:1fr; }
  .jh-coaching-reviews__grid article img { width:100%; height:auto; min-height:0; aspect-ratio:16/10; }
  .jh-coaching-application ol { grid-template-columns:1fr; }
  .jh-process-grid--three { grid-template-columns:1fr !important; }
  .jh-finder-form { grid-template-columns:1fr; gap:20px; }
  .jh-finder-actions { grid-column:auto; }
}

/* 2026-07 request-document refinements */
.jh-home-program__body > a { display:inline-flex; align-items:center; gap:6px; margin-top:20px; padding:11px 15px; border:1px solid #eadbd3; border-radius:10px; background:#f8eee8; color:#5a322c; font-size:14px; line-height:1.2; }
.jh-home-program__body > a:hover { background:#5a322c; border-color:#5a322c; color:#fff; }
.jh-home-system__training { margin-top:30px; padding:25px; border:1px solid #eadbd3; border-radius:18px; background:#fff; }
.jh-home-system__training > span,.jh-coaching-training__lead { display:block; margin:0 0 7px; color:#9c6d54; font-size:11px; font-weight:850; letter-spacing:.12em; }
.jh-home-system__training h3 { margin:0; color:#381711; font-size:20px; line-height:1.45; letter-spacing:-.03em; }
.jh-home-system__training-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:21px; border-top:1px solid #eee; }
.jh-home-system__training-grid > div { padding:15px 12px 3px; border-right:1px solid #eee; text-align:center; }.jh-home-system__training-grid > div:last-child { border-right:0; }
.jh-home-system__training-grid strong { display:block; color:#5a322c; font-size:19px; }.jh-home-system__training-grid span { display:block; margin-top:4px; color:#806b65; font-size:12px; line-height:1.45; }
.jh-finder-actions { display:flex; justify-content:center; margin-top:34px; }.jh-finder-actions [hidden] { display:none !important; }
.jh-finder-result__score { display:flex; align-items:baseline; justify-content:center; gap:8px; margin:11px 0 5px; color:#5a322c; }.jh-finder-result__score strong { font-size:clamp(54px,9vw,80px); line-height:1; letter-spacing:-.06em; }.jh-finder-result__score span { font-size:17px; font-weight:800; }
.jh-process-grid--three { grid-template-columns:repeat(3,1fr); }.jh-process-grid h3 small { display:block; margin-top:6px; color:#806b65; font-size:13px; font-weight:600; line-height:1.5; }
.jh-coaching-training__lead { margin:32px 0 -27px; color:#e8c4ae; text-align:center; font-size:16px; letter-spacing:.08em; }
.jh-coaching-team__cards article { position:relative; overflow:hidden; border-radius:50%; aspect-ratio:1; display:flex; flex-direction:column; justify-content:center; text-align:center; padding:26px; }.jh-coaching-team__cards article::after { content:''; position:absolute; inset:9px; border:1px solid rgba(255,255,255,.13); border-radius:50%; pointer-events:none; }
.jh-coaching-team__cards h3 { font-size:20px; }.jh-coaching-team__cards p { font-size:12px; line-height:1.6; }
.jh-coaching-cycle li { position:relative; }.jh-coaching-cycle li:not(:last-child)::after { content:'→'; position:absolute; z-index:2; right:-21px; top:50%; transform:translateY(-50%); color:#72a8d7; font-size:29px; font-weight:900; text-shadow:0 2px 6px rgba(0,0,0,.12); }
@media (max-width:900px) { .jh-coaching-team__cards article { border-radius:18px; aspect-ratio:auto; min-height:220px; }.jh-coaching-team__cards article::after { border-radius:14px; }.jh-coaching-cycle li:not(:last-child)::after { display:none; } }
@media (max-width:600px) {
  .jh-home-system__training { padding:21px 18px; }
  .jh-home-system__training h3 { font-size:18px; }
  .jh-home-system__training-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .jh-home-system__training-grid > div {
    min-width:0;
    padding:14px 5px 3px;
    border-right:1px solid #eee;
    border-bottom:0;
  }
  .jh-home-system__training-grid > div:last-child { border-right:0; }
  .jh-home-system__training-grid strong { font-size:clamp(16px,5.2vw,20px); white-space:nowrap; }
  .jh-home-system__training-grid span { font-size:10.5px; word-break:keep-all; }
  .jh-process-grid--three { grid-template-columns:1fr; }
  .jh-finder-result__score strong { font-size:60px; }
}

/* =============================================================================
   1:1 coaching full-detail landing
   ============================================================================= */
.jh-coaching-hero__actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:28px; }.jh-coaching-hero__actions .jh-button { min-height:58px; padding:0 32px; font-size:16px; }
.jh-service-hero .jh-coaching-refund { margin:15px 0 0; color:#5a322c; font-size:12px; font-weight:800; }
.jh-coaching-care { padding:110px 0; background:#eeeeee; }
.jh-coaching-care__item { display:grid; grid-template-columns:minmax(0,1fr) 390px; align-items:center; gap:58px; margin-top:24px; padding:52px; border:1px solid #e4ddd9; border-radius:24px; background:#fffefc; box-shadow:0 12px 34px rgba(56,23,17,.055); }
.jh-coaching-care__item--reverse { grid-template-columns:390px minmax(0,1fr); }.jh-coaching-care__item--reverse .jh-coaching-care__copy { order:2; }.jh-coaching-care__item--reverse > img { order:1; }
.jh-coaching-care__item > img { width:100%; height:410px; border-radius:20px; object-fit:cover; }
.jh-coaching-care__copy > span { display:inline-grid; place-items:center; min-width:44px; height:34px; padding:0 12px; border-radius:8px; background:#f8eee8; color:#9c6d54; font-size:12px; font-weight:850; }
.jh-coaching-care__copy h3 { margin:14px 0 14px; color:#5a322c; font-size:31px; letter-spacing:-.035em; }.jh-coaching-care__copy > p { color:#735f59; font-size:15px; line-height:1.85; word-break:keep-all; }
.jh-coaching-care__copy h4 { display:inline-block; margin:27px 0 10px; padding:7px 10px; border-radius:7px; background:#fff5ec; color:#5a322c; font-size:12px; }
.jh-coaching-care__copy ul { margin:0; padding:0; list-style:none; }.jh-coaching-care__copy li { position:relative; padding:8px 0 8px 28px; color:#5e4b45; font-size:14px; line-height:1.55; }.jh-coaching-care__copy li::before { content:''; position:absolute; left:2px; top:13px; width:14px; height:8px; border-left:2px solid #c18d71; border-bottom:2px solid #c18d71; transform:rotate(-45deg); }
.jh-coaching-cycle { padding:105px 0; background:#5a322c; color:#fff; text-align:center; }.jh-coaching-cycle .jh-kicker { color:#e8c4ae; }.jh-coaching-cycle h2 { margin:13px auto 46px; color:#fff; font-size:clamp(31px,4vw,45px); line-height:1.3; letter-spacing:-.04em; word-break:keep-all; text-wrap:balance; }
.jh-coaching-cycle ol { display:grid; grid-template-columns:repeat(5,1fr); gap:13px; margin:0; padding:0; list-style:none; }.jh-coaching-cycle li { min-height:235px; padding:28px 18px; border:1px solid rgba(255,255,255,.17); border-radius:18px; background:#fffefc; text-align:left; }.jh-coaching-cycle li span { color:#9c6d54; font-size:12px; font-weight:850; }.jh-coaching-cycle li strong { display:block; margin:18px 0 11px; color:#381711; font-size:17px; line-height:1.4; }.jh-coaching-cycle li p { color:#806b65; font-size:14px; line-height:1.7; }.jh-coaching-cycle__closing { margin:34px 0 0; color:rgba(255,255,255,.78); font-size:16px; font-weight:700; }
.jh-coaching-program { padding:100px 0; background:#fffefc; }.jh-coaching-program__grid { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:60px; }.jh-coaching-program h2 { margin:13px 0 16px; color:#381711; font-size:clamp(33px,4vw,48px); line-height:1.2; letter-spacing:-.045em; }.jh-coaching-program p { margin-bottom:27px; color:#735f59; line-height:1.8; }
.jh-coaching-program__result { padding:42px; border:1px solid #eadbd3; border-radius:22px; background:#fbf1e8; }.jh-coaching-program__result h3 { margin:0 0 23px; color:#5a322c; font-size:24px; }.jh-coaching-program__result ul { margin:0; padding:0; list-style:none; }.jh-coaching-program__result li { position:relative; padding:13px 0 13px 35px; border-top:1px solid #e3d1c7; color:#5f4a43; }.jh-coaching-program__result li::before { content:''; position:absolute; left:5px; top:17px; width:15px; height:8px; border-left:2px solid #c18d71; border-bottom:2px solid #c18d71; transform:rotate(-45deg); }
.jh-coaching-team__promise { width:min(720px,100%); margin:28px auto 0; color:rgba(255,255,255,.76); text-align:center; font-size:14px; font-weight:700; }
.jh-coaching-reviews { background:#fffefc; }.jh-coaching-reviews__grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; }.jh-coaching-reviews__grid article { overflow:hidden; display:grid; grid-template-columns:180px 1fr; min-height:190px; border:1px solid #eadbd3; border-radius:18px; background:#fff7eb; }.jh-coaching-reviews__grid .jh-coaching-review__image { display:block; height:100%; }.jh-coaching-reviews__grid img { width:100%; height:100%; min-height:190px; object-fit:cover; filter:grayscale(.2); }.jh-coaching-reviews__grid article div { display:flex; flex-direction:column; justify-content:center; padding:24px; }.jh-coaching-reviews__grid h3 { margin:0 0 9px; color:#5a322c; font-size:17px; line-height:1.4; }.jh-coaching-reviews__grid h3 a { color:inherit; }.jh-coaching-reviews__grid p { margin:0; color:#735f59; font-size:14px; line-height:1.7; }
.jh-coaching-application { padding:100px 0; background:#eeeeee; text-align:center; }.jh-coaching-application h2 { margin:12px 0 45px; color:#381711; font-size:clamp(31px,4vw,44px); }.jh-coaching-application ol { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }.jh-coaching-application li { padding:30px 20px; border-radius:17px; background:#fffefc; }.jh-coaching-application li span { display:block; color:#c18d71; font-size:12px; font-weight:850; }.jh-coaching-application li strong { display:block; margin-top:14px; color:#462d29; }.jh-coaching-application > .jh-info-container > p { margin:35px 0 0; color:#462d29; font-size:22px; font-weight:700; }.jh-coaching-application p strong { padding:2px 8px; background:#c18d71; color:#fff; }
.jh-coaching-page .jh-coaching-floating { position:fixed; z-index:990; left:50%; bottom:18px; transform:translateX(-50%); display:flex; justify-content:space-between; align-items:center; gap:26px; width:min(1000px,calc(100% - 32px)); max-width:none; padding:10px 12px 10px 28px; border:0; border-radius:999px; background:rgba(70,70,70,.95); color:#fff; box-shadow:0 13px 35px rgba(0,0,0,.22); backdrop-filter:blur(14px); }
.jh-coaching-floating > div { display:flex; flex-direction:column; gap:2px; min-width:0; }.jh-coaching-floating > div strong { color:#fff; font-size:14px; }.jh-coaching-floating > div span { color:rgba(255,255,255,.72); font-size:12px; }
.jh-coaching-page .jh-coaching-floating > a { flex:0 0 auto; min-width:130px; padding:14px 22px; border-radius:999px; background:#c18d71; color:#fff; text-align:center; font-size:13px; font-weight:850; }.jh-coaching-page .jh-coaching-floating > a:hover { background:#b17c61; }

@media (max-width:900px) {
  .jh-coaching-care__item,.jh-coaching-care__item--reverse { grid-template-columns:1fr; gap:30px; padding:36px; }.jh-coaching-care__item--reverse .jh-coaching-care__copy,.jh-coaching-care__item--reverse > img { order:initial; }.jh-coaching-care__item > img { height:330px; }.jh-coaching-cycle ol { grid-template-columns:1fr 1fr; }.jh-coaching-program__grid { grid-template-columns:1fr; }.jh-coaching-reviews__grid { grid-template-columns:1fr; }
}

@media (max-width:600px) {
  .jh-coaching-hero__actions { justify-content:center; }.jh-coaching-care { padding:74px 0; }.jh-coaching-care__item,.jh-coaching-care__item--reverse { padding:25px 20px; }.jh-coaching-care__item > img { height:245px; }.jh-coaching-care__copy h3 { font-size:25px; }.jh-coaching-cycle { padding:76px 0; }.jh-coaching-cycle ol { grid-template-columns:1fr; }.jh-coaching-cycle li { min-height:auto; }.jh-coaching-program { padding:76px 0; }.jh-coaching-program__result { padding:28px 22px; }.jh-coaching-reviews__grid article { grid-template-columns:110px 1fr; }.jh-coaching-reviews__grid article div { padding:18px; }.jh-coaching-application { padding:76px 0 105px; }.jh-coaching-application ol { grid-template-columns:1fr 1fr; }.jh-coaching-application > .jh-info-container > p { font-size:17px; }.jh-coaching-page .jh-coaching-floating { left:10px; right:78px; bottom:9px; width:auto; transform:none; gap:8px; padding:9px 9px 9px 15px; }.jh-coaching-floating > div strong { font-size:11px; }.jh-coaching-floating > div span { display:none; }.jh-coaching-page .jh-coaching-floating > a { min-width:78px; padding:12px 11px; font-size:12px; }
}

/* =============================================================================
   0719 HOME / PROGRAM UPDATE
   ============================================================================= */
.jh-home { overflow: hidden; background: #fff; color: #462d29; }
.jh-home-container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.jh-kicker { display: inline-block; color: #9c6d54; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.jh-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; border: 1px solid #5a322c; border-radius: 999px; background: #5a322c; color: #fff !important; font-size: 14px; font-weight: 800; box-shadow: 0 10px 24px rgba(90,50,44,.16); }
.jh-button:hover { background: #381711; border-color: #381711; transform: translateY(-2px); }
.jh-button--ghost { background: transparent; color: #5a322c !important; box-shadow: none; }
.jh-button--ghost:hover { background: #5a322c; color: #fff !important; }
.jh-home-hero { position: relative; background: #fff; }
.jh-home-hero__inner { width: min(1280px, calc(100% - 48px)); min-height: 650px; margin: 0 auto; display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 50px; }
.jh-home-hero__copy { position: relative; z-index: 2; padding: 70px 0 96px; }
.jh-home-hero__copy h1 { margin: 17px 0 20px; color: #381711; font-size: clamp(40px,5vw,68px); line-height: 1.12; letter-spacing: -.055em; word-break: keep-all; }
.jh-home-hero__copy h1 em { color: #9c6d54; font-style: normal; }
.jh-home-hero__copy > p { color: #664d47; font-size: 17px; line-height: 1.8; word-break: keep-all; }
.jh-home-hero__copy .jh-home-hero__lead { margin-bottom: 4px; color: #5a322c; font-size: 20px; font-weight: 800; }
.jh-home-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.jh-home-hero__copy .jh-refund { margin-top: 17px; color: #5a322c; font-size: 13px; font-weight: 800; }
.jh-home-hero__portrait { position: relative; align-self: stretch; display: flex; align-items: flex-end; justify-content: center; min-height: 590px; }
.jh-home-hero__portrait-bg { position: absolute; width: 490px; height: 490px; right: 4%; bottom: 56px; border-radius: 50%; background: rgba(255,255,255,.62); box-shadow: inset 0 0 0 1px rgba(90,50,44,.08); }
.jh-home-hero__portrait img { position: relative; z-index: 1; width: min(560px,100%); max-height: 620px; object-fit: contain; object-position: bottom; }
.jh-home-hero__caption { position: absolute; z-index: 3; right: 7%; bottom: 76px; display: flex; flex-direction: column; gap: 2px; padding: 13px 18px; border: 1px solid rgba(90,50,44,.12); border-radius: 12px; background: rgba(255,255,255,.9); box-shadow: 0 12px 30px rgba(90,50,44,.11); }
.jh-home-hero__caption strong { color: #381711; font-size: 14px; }
.jh-home-hero__caption span { color: #8a7066; font-size: 12px; }
.jh-proof { position: absolute; z-index: 5; left: 50%; bottom: -44px; transform: translateX(-50%); width: min(850px,calc(100% - 48px)); display: grid; grid-template-columns: repeat(3,1fr); padding: 22px 30px; border: 1px solid #eee; border-radius: 18px; background: #fff; box-shadow: 0 18px 45px rgba(56,23,17,.09); }
.jh-proof div { display: flex; flex-direction: column; align-items: center; gap: 2px; border-right: 1px solid #eee; }
.jh-proof div:last-child { border-right: 0; }
.jh-proof strong { color: #5a322c; font-size: 26px; letter-spacing: -.03em; }
.jh-proof span { color: #806b65; font-size: 12px; font-weight: 700; }
.jh-home-section { padding: 130px 0 110px; }
.jh-home-heading { max-width: 740px; margin: 0 auto 48px; text-align: center; }
.jh-home-heading h2 { margin: 15px 0 14px; color: #381711; font-size: clamp(30px,4vw,48px); line-height: 1.22; letter-spacing: -.045em; word-break: keep-all; }
.jh-home-heading p { color: #806b65; font-size: 15px; word-break: keep-all; }
.jh-home-programs { background: #fffefc; }
.jh-home-program-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.jh-home-program { overflow: hidden; display: flex; flex-direction: column; border: 1px solid #eee; border-radius: 22px; background: #fff; box-shadow: 0 10px 35px rgba(56,23,17,.055); transition: transform .3s ease,box-shadow .3s ease; }
.jh-home-program:hover { transform: translateY(-6px); box-shadow: 0 18px 46px rgba(56,23,17,.1); }
.jh-home-program > img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #eee; }
.jh-home-program__body { display: flex; flex: 1; flex-direction: column; padding: 28px; }
.jh-home-program__body > span { color: #9c6d54; font-size: 12px; font-weight: 800; letter-spacing: .11em; }
.jh-home-program__body h3 { margin: 8px 0 12px; color: #381711; font-size: 23px; }
.jh-home-program__body p { flex: 1; margin-bottom: 23px; color: #735f59; font-size: 14px; line-height: 1.75; word-break: keep-all; }
.jh-home-program__body a { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:4px; padding:14px 16px; border:1px solid #eadbd3; border-radius:12px; background:#f7ece6; color:#5a322c; font-size:14px; font-weight:800; transition:background .2s ease,color .2s ease,transform .2s ease; }
.jh-home-program__body a:hover { background:#5a322c; color:#fff; transform:translateY(-1px); }
.jh-home-program__body a span { margin-left:5px; }
.jh-home-center { margin-top: 38px; text-align: center; }
.jh-text-link { display: inline-block; padding-bottom: 5px; border-bottom: 1px solid #5a322c; color: #5a322c; font-size: 14px; font-weight: 800; }
.jh-home-reviews { background: #eeeeee; }
.jh-review-feature { overflow: hidden; display: grid; grid-template-columns: .85fr 1.15fr; width: min(900px,100%); margin: 0 auto 30px; border-radius: 22px; background: #fff; box-shadow: 0 16px 42px rgba(56,23,17,.08); }
.jh-review-feature__media { min-height:330px; background:#e7d9d1; }
.jh-review-feature__media img { display:block; width:100%; height:100%; min-height:330px; object-fit:cover; }
.jh-review-feature > div { display: flex; flex-direction: column; justify-content: center; padding: 44px; }
.jh-review-feature span { color: #9c6d54; font-size: 12px; font-weight: 800; letter-spacing: .1em; }
.jh-review-feature blockquote { margin: 12px 0; color: #381711; font-size: 24px; font-weight: 800; line-height: 1.55; word-break: keep-all; }
.jh-review-feature p { color: #806b65; font-size: 14px; line-height: 1.75; }
.jh-review-track-wrap { overflow: hidden; margin: 32px calc((100vw - 100%)/-2) 0; }
.jh-review-track { display: flex; width: max-content; gap: 16px; animation: jhReviewRoll 48s linear infinite; }
.jh-review-track:hover { animation-play-state: paused; }
.jh-review-chip { position:relative; overflow:hidden; width:320px; min-height:330px; border:1px solid #e3dfdc; border-radius:16px; background:#fffefc; }
.jh-review-chip__overlay { position:absolute; z-index:4; inset:0; border-radius:inherit; }
.jh-review-chip__overlay:focus-visible { outline:3px solid rgba(90,50,44,.3); outline-offset:-3px; }
.jh-review-chip__media { display:block; width:100%; height:135px; object-fit:cover; background:linear-gradient(135deg,#f5ece6,#e9ddd6); }
.jh-review-chip__copy { padding:22px; }
.jh-review-chip h3 { color:#381711; font-size:15px; line-height:1.45; word-break:keep-all; }
.jh-review-chip p { display:-webkit-box; overflow:hidden; margin-top:10px; color:#67534d; font-size:13px; line-height:1.65; -webkit-box-orient:vertical; -webkit-line-clamp:3; word-break:keep-all; }
.jh-review-chip span { display:block; margin-top:15px; color:#9c6d54; font-size:12px; font-weight:800; }
.jh-review-chip--empty { background:#f5f1ee; }
.jh-review-chip--empty .jh-review-chip__copy::before,.jh-review-chip--empty .jh-review-chip__copy::after { content:''; display:block; height:10px; margin-bottom:12px; border-radius:99px; background:#e5ddd8; }.jh-review-chip--empty .jh-review-chip__copy::after { width:65%; }
@keyframes jhReviewRoll { to { transform: translateX(calc(-50% - 8px)); } }
.jh-home-final { padding: 110px 24px; background: #5a322c; text-align: center; }
.jh-home-final__inner { width: min(760px,100%); margin: 0 auto; }
.jh-home-final .jh-kicker { color: #e8c4ae; }
.jh-home-final h2 { margin: 15px 0; color: #fff; font-size: clamp(30px,4vw,46px); letter-spacing: -.045em; }
.jh-home-final p { margin-bottom: 28px; color: rgba(255,255,255,.72); }
.jh-home-final .jh-button { border-color: #fff; background: #fff; color: #5a322c !important; }

@media (prefers-reduced-motion: reduce) { .jh-review-track { animation: none; } }
@media (max-width: 1024px) {
  .nav-menu { gap: 1px; }
  .nav-menu > li > a { padding: 8px 9px; font-size: 13px; }
  .jh-home-hero__inner { grid-template-columns: 1fr 1fr; gap: 10px; }
  .jh-home-hero__portrait-bg { width: 390px; height: 390px; }
}
@media (max-width: 782px) {
  :root { --header-h: 62px; }
  .header-container { padding-right:16px; padding-left:16px; }
  .logo-area img.custom-logo { max-height: 40px; }
  .site-header.scrolled .logo-area img.custom-logo { max-height: 40px; }
  .jh-home-container,.jh-home-hero__inner { width: min(100% - 32px,1180px); }
  .jh-home-hero__inner { min-height: auto; grid-template-columns: 1fr; }
  .jh-home-hero__copy { padding: 58px 0 14px; text-align: center; }
  .jh-home-hero__copy h1 { font-size: 38px; }
  .jh-home-hero__copy .jh-home-hero__lead { font-size: 17px; }
  .jh-home-hero__actions { justify-content: center; }
  .jh-home-hero__portrait { min-height: 390px; }
  .jh-home-hero__portrait img { max-height: 420px; }
  .jh-home-hero__portrait-bg { right: 50%; bottom: 26px; width: 330px; height: 330px; transform: translateX(50%); }
  .jh-home-hero__caption { right: 4%; bottom: 40px; }
  .jh-proof { position: relative; bottom: auto; width: calc(100% - 32px); margin: -6px auto 0; transform: none; left: auto; padding: 17px 10px; }
  .jh-proof strong { font-size: 20px; }
  .jh-proof span { font-size: 12px; line-height:1.4; }
  .jh-home-section { padding: 82px 0; }
  .jh-home-heading { margin-bottom: 34px; }
  .jh-home-heading h2 { font-size: 31px; }
  .jh-home-program-grid { grid-template-columns: 1fr; }
  .jh-home-program > img { aspect-ratio: 16/10; }
  .jh-review-feature { grid-template-columns: 1fr; }
  .jh-review-feature__media { min-height:240px; max-height:290px; }
  .jh-review-feature__media img { min-height:240px; max-height:290px; }
  .jh-review-feature > div { padding: 28px; }
  .jh-review-feature blockquote { font-size: 20px; }
  .jh-review-chip { width: 280px; }
  .jh-home-final { padding: 80px 20px; }
}

/* Compact mobile header: preserve the full wordmark while reducing header height. */
@media (max-width: 360px) {
  .header-container {
    padding-right: 14px;
    padding-left: 14px;
    gap: 10px;
  }
  .logo-area img.custom-logo,
  .site-header.scrolled .logo-area img.custom-logo {
    width: auto;
    max-width: calc(100vw - 78px);
    max-height: 38px;
  }
  .menu-toggle {
    flex: 0 0 40px;
  }
}

/* 0719 information, services and finder pages */
.jh-info-page,.jh-service-page,.jh-finder,.jh-academy-page { background:#fffefc; color:#462d29; }
.jh-info-container { width:min(1120px,calc(100% - 48px)); margin:0 auto; }
.jh-info-hero,.jh-service-hero { background:linear-gradient(120deg,#fffefc,#f2e4dc); }
.jh-info-hero__grid,.jh-service-hero__grid { min-height:520px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:70px; }
.jh-info-hero h1,.jh-service-hero h1,.jh-finder__hero h1,.jh-academy-intro h1 { margin:16px 0; color:#381711; font-size:clamp(36px,5vw,58px); line-height:1.18; letter-spacing:-.05em; word-break:keep-all; }
.jh-info-hero p,.jh-service-hero p,.jh-finder__hero p,.jh-academy-intro p { color:#735f59; font-size:16px; line-height:1.8; word-break:keep-all; }
.jh-info-hero img { align-self:end; max-height:500px; margin:0 auto; object-fit:contain; }
.jh-info-section { padding:100px 0; }
.jh-info-heading { max-width:700px; margin:0 auto 46px; text-align:center; }
.jh-info-heading h2 { margin-top:13px; color:#381711; font-size:clamp(29px,4vw,43px); line-height:1.3; letter-spacing:-.045em; }
.jh-value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.jh-value-grid article { padding:36px 30px; border:1px solid #eee; border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(56,23,17,.045); }
.jh-value-grid strong { color:#c18d71; font-size:14px; }
.jh-value-grid h3 { margin:12px 0 10px; color:#381711; font-size:20px; }
.jh-value-grid p { color:#806b65; font-size:14px; line-height:1.75; word-break:keep-all; }
.jh-info-profile { background:#eee; }
.jh-info-profile__grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:80px; }
.jh-info-profile__photo { display:flex; align-items:flex-end; height:470px; overflow:hidden; border-radius:24px; background:#f3e4dc; }
.jh-info-profile__photo img { width:100%; height:100%; object-fit:contain; object-position:bottom; }
.jh-info-profile h2 { margin:10px 0 25px; color:#381711; font-size:40px; }
.jh-info-profile li { position:relative; padding:9px 0 9px 18px; border-bottom:1px solid #ddd; font-size:15px; }
.jh-info-profile li::before { position:absolute; left:0; content:'—'; color:#c18d71; }
.jh-info-book { padding:95px 24px; background:#5a322c; color:#fff; text-align:center; }
.jh-info-book .jh-kicker { color:#e8c4ae; }.jh-info-book h2 { margin:14px 0 10px; font-size:38px; }.jh-info-book p { color:rgba(255,255,255,.72); }
.jh-info-book details { width:min(560px,100%); margin:28px auto 0; border:1px solid rgba(255,255,255,.25); border-radius:12px; text-align:left; }
.jh-info-book summary { padding:17px 20px; cursor:pointer; font-weight:800; }.jh-info-book details div { padding:0 20px 18px; color:rgba(255,255,255,.7); font-size:13px; }
.jh-info-book .jh-book-publishers ul { padding:0 20px 18px; }.jh-info-book .jh-book-publishers li + li { border-top:1px solid rgba(255,255,255,.12); }.jh-info-book .jh-book-publishers a { display:flex; justify-content:space-between; padding:12px 0; color:#fff; font-weight:700; }
.jh-finder__hero,.jh-academy-intro { padding:90px 24px; background:linear-gradient(120deg,#fffefc,#f2e4dc); text-align:center; }
.jh-finder__hero h1,.jh-academy-intro h1 { font-size:clamp(34px,4.5vw,52px); }
.jh-finder__body { width:min(1040px,calc(100% - 48px)); margin:0 auto; padding:92px 0 120px; }
.jh-finder-form { display:flex; flex-direction:column; gap:28px; }
.jh-finder-question { min-width:0; padding:34px 36px 32px; border:1px solid #e8dfda; border-radius:22px; background:#fff; box-shadow:0 8px 24px rgba(56,23,17,.035); transition:border-color .2s ease,box-shadow .2s ease; }
.jh-finder-question:focus-within { border-color:#d9b8a6; box-shadow:0 12px 30px rgba(56,23,17,.07); }
.jh-finder-question legend { float:left; width:100%; margin:0 0 27px; padding:0; color:#381711; font-size:clamp(19px,1.7vw,22px); font-weight:800; line-height:1.5; letter-spacing:-.025em; word-break:keep-all; }
.jh-finder-question legend span { display:block; margin-bottom:10px; color:#b57d61; font-size:12.5px; font-weight:850; letter-spacing:.14em; }
.jh-finder-options { clear:both; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:0; }
.jh-finder-options label { cursor:pointer; }
.jh-finder-options input { position:absolute; opacity:0; pointer-events:none; }
.jh-finder-options label > span { display:flex; align-items:center; justify-content:center; height:58px; border:1px solid #ddd4cf; border-radius:12px; background:#fffefc; color:#654e47; font-size:20px; font-weight:800; transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease; }
.jh-finder-options label:hover > span { border-color:#c99a80; color:#5a322c; transform:translateY(-1px); }
.jh-finder-options small { display:block; margin-top:9px; color:#806b65; font-size:13px; font-weight:600; line-height:1.4; text-align:center; word-break:keep-all; }
.jh-finder-options input:checked + span,.jh-finder-options input:focus-visible + span { border-color:#5a322c; background:#5a322c; color:#fff; box-shadow:0 7px 18px rgba(90,50,44,.2); }
.jh-finder-form > .jh-button { align-self:center; min-height:54px; margin-top:24px; padding:15px 32px; border:0; font-size:15px; cursor:pointer; }
.jh-finder-result { margin-top:55px; padding:48px; border:1px solid #eadbd3; border-radius:22px; background:#f8eee8; text-align:center; outline:none; }
.jh-finder-result h2 { margin:12px 0 18px; color:#381711; font-size:30px; }.jh-finder-result > strong { display:block; color:#9c6d54; font-size:23px; }.jh-finder-result p { max-width:650px; margin:12px auto 25px; color:#735f59; line-height:1.8; }
.jh-academy-content { min-height:400px; padding:70px 0 100px; }
.jh-service-hero__grid { min-height:560px; }
.jh-service-hero__grid > div:first-child p { margin-bottom:26px; }
.jh-service-hero img { width:100%; max-height:410px; border-radius:24px; object-fit:cover; box-shadow:0 20px 50px rgba(56,23,17,.12); }
.jh-process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.jh-process-grid article { padding:30px 20px; border-top:3px solid #c18d71; background:#fff; box-shadow:0 8px 24px rgba(56,23,17,.05); }
.jh-process-grid span { color:#c18d71; font-size:12px; font-weight:800; }.jh-process-grid h3 { margin-top:8px; color:#381711; font-size:17px; }
.jh-price-section { padding:90px 0; background:#eee; }
.jh-price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.jh-price-grid article { display:flex; flex-direction:column; gap:8px; padding:36px; border-radius:18px; background:#fff; text-align:center; }.jh-price-grid span { color:#806b65; font-weight:700; }.jh-price-grid strong { color:#5a322c; font-size:28px; }
.jh-embedded-form { padding:90px 0; background:#fffefc; }.jh-embedded-form .container { width:100% !important; max-width:none !important; padding:0 !important; }

@media (max-width:782px) {
  .jh-info-container,.jh-finder__body { width:min(100% - 32px,1120px); }
  .jh-info-hero__grid,.jh-service-hero__grid { min-height:auto; grid-template-columns:1fr; gap:28px; padding-top:65px; }
  .jh-info-hero__grid > div,.jh-service-hero__grid > div { text-align:center; }
  .jh-info-hero h1,.jh-service-hero h1 { font-size:36px; }
  .jh-info-hero img { max-height:360px; }.jh-service-hero img { margin-bottom:50px; max-height:300px; }
  .jh-info-section { padding:74px 0; }.jh-value-grid,.jh-price-grid { grid-template-columns:1fr; }.jh-process-grid { grid-template-columns:1fr 1fr; }
  .jh-info-profile__grid { grid-template-columns:1fr; gap:35px; }.jh-info-profile__photo { height:360px; }.jh-info-profile h2 { font-size:32px; }
  .jh-finder__hero,.jh-academy-intro { padding:65px 18px; }.jh-finder__body { width:min(100% - 28px,1120px); padding:62px 0 88px; }.jh-finder-form { gap:22px; }.jh-finder-question { padding:26px 20px 24px; border-radius:18px; }
  .jh-finder-question legend { margin-bottom:22px; font-size:18px; line-height:1.45; }.jh-finder-question legend span { margin-bottom:8px; font-size:12px; }.jh-finder-options { gap:6px; }.jh-finder-options label > span { height:52px; border-radius:10px; font-size:18px; }.jh-finder-options small { display:block; margin-top:7px; font-size:12px; line-height:1.4; }.jh-finder-result { padding:34px 22px; }
  .jh-academy-content,.jh-embedded-form { padding:55px 0 75px; }
}

.jh-course-proof { position:relative; z-index:3; width:min(820px,calc(100% - 40px)); margin:-34px auto 0; display:grid; grid-template-columns:repeat(3,1fr); padding:23px; border:1px solid #eee; border-radius:18px; background:#fff; box-shadow:0 16px 40px rgba(56,23,17,.09); }
.jh-course-proof div { display:flex; flex-direction:column; align-items:center; border-right:1px solid #eee; }.jh-course-proof div:last-child { border:0; }.jh-course-proof strong { color:#5a322c; font-size:26px; }.jh-course-proof span { color:#806b65; font-size:12px; font-weight:700; }
.jh-course-reasons { width:min(1100px,calc(100% - 40px)); margin:0 auto; padding:100px 0 40px; }.jh-course-reasons header { margin-bottom:35px; text-align:center; }.jh-course-reasons h2 { margin-top:12px; color:#381711; font-size:38px; line-height:1.3; }
.jh-course-reasons__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.jh-course-reasons article { overflow:hidden; border:1px solid #eee; border-radius:18px; background:#fff; }.jh-course-reasons article img { width:100%; aspect-ratio:4/3; object-fit:cover; }.jh-course-reasons article h3 { margin:22px 22px 8px; color:#381711; }.jh-course-reasons article p { margin:0 22px 25px; color:#806b65; font-size:13px; line-height:1.7; }
@media (max-width:782px) { .jh-course-proof { padding:18px 8px; }.jh-course-proof strong { font-size:20px; }.jh-course-proof span { font-size:12px; line-height:1.45; }.jh-course-reasons { padding-top:75px; }.jh-course-reasons h2 { font-size:29px; }.jh-course-reasons__grid { grid-template-columns:1fr; } }

/* Legal policy pages */
.joohalab-policy {
    max-width: 920px;
    margin: 0 auto;
    color: #4f423c;
    font-size: 15px;
    line-height: 1.85;
    word-break: keep-all;
}

.joohalab-policy__notice {
    margin: 0 0 34px;
    padding: 18px 20px;
    border: 1px solid #eadbd3;
    border-radius: 14px;
    background: #fcf8f5;
    color: #705c52;
}

.joohalab-policy h2 {
    margin: 42px 0 14px;
    color: #2f2723;
    font-size: 22px;
    line-height: 1.45;
}

.joohalab-policy h3 {
    margin: 26px 0 10px;
    color: #493a33;
    font-size: 17px;
}

.joohalab-policy p,
.joohalab-policy ul,
.joohalab-policy ol {
    margin-top: 0;
    margin-bottom: 16px;
}

.joohalab-policy li + li {
    margin-top: 7px;
}

.joohalab-policy table {
    width: 100%;
    margin: 16px 0 26px;
    border-collapse: collapse;
    border: 1px solid #eadfd9;
    background: #fff;
}

.joohalab-policy th,
.joohalab-policy td {
    padding: 14px 16px;
    border: 1px solid #eadfd9;
    text-align: left;
    vertical-align: top;
}

.joohalab-policy th {
    background: #f8f2ee;
    color: #5f493d;
    font-weight: 800;
}

.joohalab-policy__effective {
    margin-top: 42px;
    padding-top: 20px;
    border-top: 1px solid #eadfd9;
    color: #806e65;
    font-size: 14px;
}

@media (max-width: 767px) {
    .joohalab-policy {
        font-size: 14px;
        line-height: 1.75;
    }

    .joohalab-policy h2 {
        margin-top: 34px;
        font-size: 19px;
    }

    .joohalab-policy table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

@media (max-width: 576px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
    .blog-body {
        padding: 12px !important;
    }
    .blog-title {
        font-size: 14.5px !important;
        margin-bottom: 6px !important;
    }
    .blog-meta {
        font-size: 11px !important;
        margin-bottom: 6px !important;
        gap: 8px !important;
    }
    .blog-excerpt {
        display: none !important;
    }
}

/* =============================================================================
   ⑦ WOOCOMMERCE CART & CHECKOUT PAGE PREMIUM OVERRIDES
   ============================================================================= */
/* Cart Table */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    font-family: 'Pretendard', sans-serif;
}

.woocommerce table.shop_table {
    border: 1px solid #f0e6e1 !important;
    border-radius: 12px !important;
    border-collapse: separate !important;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 15px rgba(193,141,113,0.02);
}

.woocommerce table.shop_table th {
    background-color: #faf6f3 !important;
    color: #1a1512 !important;
    font-weight: 800 !important;
    padding: 16px 20px !important;
    border-bottom: 1px solid #f0e6e1 !important;
    font-size: 14.5px;
}

.woocommerce table.shop_table td {
    padding: 20px !important;
    border-top: 1px solid #f0e6e1 !important;
    color: #4a5568 !important;
    font-size: 14.5px;
}

.woocommerce table.shop_table td.product-thumbnail img {
    width: 70px !important;
    border-radius: 8px !important;
    border: 1px solid #f0e6e1;
}

.woocommerce table.shop_table td.product-name a {
    color: #1a1512 !important;
    font-weight: 700 !important;
}

.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal {
    font-weight: 700 !important;
    color: #c18d71 !important;
}

/* Coupon & Actions */
.woocommerce-cart table.cart td.actions {
    padding: 15px 20px !important;
    background: #faf6f3;
}

.woocommerce-cart table.cart td.actions .coupon {
    display: flex;
    gap: 8px;
    align-items: center;
}

.woocommerce-cart table.cart td.actions .coupon input.input-text {
    width: 200px !important;
    height: 40px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    padding: 0 12px !important;
    font-family: inherit;
    font-size: 13px !important;
    margin: 0 !important;
    outline: none;
}

.woocommerce-cart table.cart td.actions button.button {
    height: 40px !important;
    background-color: #fff !important;
    color: #c18d71 !important;
    border: 1px solid #c18d71 !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
    padding: 0 20px !important;
    cursor: pointer;
    transition: all 0.2s !important;
}

.woocommerce-cart table.cart td.actions button.button:hover {
    background-color: #fcf8f6 !important;
}

.woocommerce-cart table.cart td.actions button.button[name="update_cart"] {
    background-color: #fff !important;
    color: #666 !important;
    border: 1px solid #ccc !important;
}

.woocommerce-cart table.cart td.actions button.button[name="update_cart"]:hover {
    background-color: #f5f5f5 !important;
}

/* Cart Collaterals / Totals */
.cart-collaterals {
    margin-top: 40px;
    display: flex;
    justify-content: flex-end;
}

.cart-collaterals .cart_totals {
    width: 420px !important;
    float: none !important;
    background: #fff;
    border: 2px solid #c18d71;
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(193,141,113,0.06);
}

.cart_totals h2 {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #1a1512 !important;
    border-bottom: 2px solid #c18d71;
    padding-bottom: 12px;
    margin-bottom: 20px !important;
}

.cart_totals table.shop_table_split {
    width: 100%;
    margin-bottom: 20px;
}

.cart_totals table.shop_table_split tr {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid #f0e6e1;
}

.cart_totals table.shop_table_split tr.order-total {
    border-bottom: none;
}

.cart_totals table.shop_table_split th {
    font-weight: 700;
    color: #4a5568;
    text-align: left;
}

.cart_totals table.shop_table_split td {
    font-weight: 800;
    color: #1a1512;
    text-align: right;
}

.cart_totals table.shop_table_split tr.order-total td span.amount {
    font-size: 22px;
    color: #c18d71;
    font-weight: 900;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    background-color: #c18d71 !important;
    color: #fff !important;
    padding: 15px 0 !important;
    border-radius: 30px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    transition: all 0.3s !important;
    box-shadow: 0 4px 12px rgba(193,141,113,0.2) !important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: #8d654f !important;
    transform: translateY(-2px);
}

/* =======================================
   Checkout Page styling
   ======================================= */
.woocommerce-checkout form.checkout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    margin-top: 30px;
}

.woocommerce-checkout #customer_details {
    flex: 1.2;
    background: #fff;
    border: 1px solid #f0e6e1;
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 4px 15px rgba(193,141,113,0.02);
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
    flex: 0.8;
}

.woocommerce-checkout #order_review {
    background: #fff;
    border: 2px solid #c18d71;
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(193,141,113,0.06);
    position: sticky;
    top: 100px;
}

.woocommerce-checkout h3 {
    font-size: 19px !important;
    font-weight: 800 !important;
    color: #1a1512 !important;
    margin-bottom: 25px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid #c18d71;
    display: inline-block;
}

.woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

/* Make wide fields span full-width */
#billing_first_name_field,
#billing_last_name_field,
#billing_phone_field,
#billing_email_field {
    grid-column: span 1;
}

.woocommerce-billing-fields__field-wrapper p.form-row {
    display: flex;
    flex-direction: column;
    margin-bottom: 15px;
    grid-column: span 2;
}

.woocommerce-billing-fields__field-wrapper p.form-row[class*="first-name"],
.woocommerce-billing-fields__field-wrapper p.form-row[class*="last-name"] {
    grid-column: span 1;
}

.woocommerce-checkout p.form-row label {
    font-size: 13.5px;
    font-weight: 800;
    color: #333;
    margin-bottom: 8px;
}

.woocommerce-checkout p.form-row input.input-text,
.woocommerce-checkout p.form-row select,
.woocommerce-checkout p.form-row textarea {
    height: 44px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 0 12px;
    font-family: inherit;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
    background: #fff;
    box-sizing: border-box;
    width: 100%;
}

.woocommerce-checkout p.form-row textarea {
    height: 100px;
    padding: 12px;
    resize: vertical;
}

.woocommerce-checkout p.form-row input.input-text:focus,
.woocommerce-checkout p.form-row select:focus,
.woocommerce-checkout p.form-row textarea:focus {
    border-color: #c18d71;
}

/* Order review items */
.woocommerce-checkout #order_review table.shop_table {
    border: none !important;
    box-shadow: none !important;
    margin-bottom: 20px !important;
    width: 100%;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
    padding: 12px 0 !important;
    border-top: none !important;
    border-bottom: 1px solid #f0e6e1 !important;
    background: transparent !important;
}

.woocommerce-checkout #order_review table.shop_table tr.cart-subtotal th,
.woocommerce-checkout #order_review table.shop_table tr.cart-subtotal td,
.woocommerce-checkout #order_review table.shop_table tr.order-total th,
.woocommerce-checkout #order_review table.shop_table tr.order-total td {
    border-bottom: 1px solid #f0e6e1 !important;
}

.woocommerce-checkout #order_review table.shop_table tr.order-total td span.amount {
    font-size: 20px;
    color: #c18d71;
    font-weight: 900;
}

/* Checkout item removal */
.woocommerce-checkout .jh-checkout-remove {
    display: inline-flex;
    align-items: center;
    margin: 0 0 0 8px;
    padding: 3px 8px;
    border: 1px solid #e4cec2;
    border-radius: 999px;
    background: #fffaf7;
    color: #8a5b4e;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    vertical-align: middle;
    white-space: nowrap;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.woocommerce-checkout .woocommerce-message { display:none !important; }
.woocommerce-checkout .woocommerce-additional-fields { display:none !important; }
.woocommerce-checkout .jh-checkout-remove:hover,
.woocommerce-checkout .jh-checkout-remove:focus-visible {
    border-color: #c18d71;
    background: #c18d71;
    color: #fff;
}

/* Payment Section styling */
.woocommerce-checkout .woocommerce-info {
    margin-bottom: 18px !important;
    padding: 16px 20px 16px 50px !important;
    border: 1px solid #eadfd9 !important;
    border-top-width: 1px !important;
    border-radius: 12px !important;
    background: #fffaf7 !important;
    color: #5a322c !important;
    line-height: 1.6;
}

.woocommerce-checkout .woocommerce-info::before {
    top: 16px !important;
    left: 20px !important;
    color: #c18d71 !important;
}

.woocommerce-checkout .woocommerce-info a,
.woocommerce-checkout .woocommerce-info button {
    color: #8d5c45 !important;
    font-weight: 750;
}

#payment {
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
}

#payment ul.payment_methods {
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
    list-style: none !important;
    border-bottom: none !important;
}

#payment ul.payment_methods li {
    background: #faf6f3;
    border: 1px solid #f0e6e1;
    border-radius: 8px;
    padding: 12px 15px;
    margin-bottom: 10px !important;
    font-size: 13.5px;
}

#payment ul.payment_methods li input {
    margin-right: 10px !important;
}

#payment ul.payment_methods li div.payment_box {
    background: #fff !important;
    border: 1.5px dashed #f0e6e1;
    border-radius: 6px;
    padding: 12px !important;
    font-size: 12.5px;
    color: #666;
    margin: 10px 0 0 0 !important;
}

#payment ul.payment_methods li div.payment_box::before {
    display: none !important;
}

#payment button#place_order {
    display: block !important;
    width: 100% !important;
    height: 50px !important;
    background-color: #c18d71 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 30px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    box-shadow: 0 4px 12px rgba(193,141,113,0.2) !important;
}

#payment button#place_order:hover {
    background-color: #8d654f !important;
    transform: translateY(-2px);
}

/* =============================================================================
   Content completion: home section 4, about, coaching
   ============================================================================= */
.jh-home-system { background:#fffefc; }
.jh-home-system__grid { display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:72px; }
.jh-home-system__visual { position:relative; min-width:0; }
.jh-home-system__visual > img { width:100%; aspect-ratio:4/4.3; object-fit:cover; border-radius:26px; box-shadow:0 24px 60px rgba(56,23,17,.12); }
.jh-home-changes { padding:26px 0 96px; background:#fffefc; }
.jh-home-changes__panel { padding:48px; border:1px solid #e6ded9; border-radius:24px; background:#fff; box-shadow:0 16px 42px rgba(56,23,17,.05); }
.jh-home-changes__head { margin-bottom:28px; text-align:center; }
.jh-home-changes__head > span { color:#9c6d54; font-size:11px; font-weight:850; letter-spacing:.14em; }
.jh-home-changes__head h2 { margin:10px 0 0; color:#381711; font-size:clamp(26px,3vw,38px); letter-spacing:-.045em; }
.jh-home-changes__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.jh-home-changes__grid article { min-height:142px; padding:25px 28px; border-radius:17px; background:#f8f2ef; }
.jh-home-changes__grid article:nth-child(2),.jh-home-changes__grid article:nth-child(5) { background:#f0f0f0; }
.jh-home-changes__grid h3 { margin:0 0 13px; color:#5a322c; font-size:17px; line-height:1.4; letter-spacing:-.035em; word-break:keep-all; }
.jh-home-changes__grid p { margin:0; color:#765f58; font-size:14px; line-height:1.75; word-break:keep-all; }
.jh-home-system__proof { position:absolute; right:-28px; bottom:26px; width:min(420px,90%); display:grid; grid-template-columns:repeat(3,1fr); padding:20px 18px; border:1px solid rgba(90,50,44,.1); border-radius:18px; background:rgba(255,254,252,.96); box-shadow:0 16px 40px rgba(56,23,17,.13); backdrop-filter:blur(10px); }
.jh-home-system__proof div { padding:0 10px; text-align:center; border-right:1px solid #eadfd9; }.jh-home-system__proof div:last-child { border:0; }
.jh-home-system__proof strong { display:block; color:#5a322c; font-size:18px; }.jh-home-system__proof span { display:block; margin-top:5px; color:#8a7066; font-size:12px; line-height:1.4; }
.jh-home-system__copy h2 { margin:15px 0 20px; color:#381711; font-size:clamp(32px,4vw,48px); line-height:1.22; letter-spacing:-.045em; word-break:keep-all; }
.jh-home-system__copy > p { color:#735f59; line-height:1.85; word-break:keep-all; }
.jh-home-system__roles { margin:30px 0 27px; padding:0; list-style:none; counter-reset:jh-role; }
.jh-home-system__roles li { position:relative; display:grid; grid-template-columns:104px 1fr; gap:14px; padding:18px 0 18px 43px; border-top:1px solid #eee; counter-increment:jh-role; }
.jh-home-system__roles li:last-child { border-bottom:1px solid #eee; }
.jh-home-system__roles li::before { content:'0' counter(jh-role); position:absolute; left:0; top:19px; color:#c18d71; font-size:12px; font-weight:850; }
.jh-home-system__roles strong { color:#381711; font-size:15px; }.jh-home-system__roles span { color:#806b65; font-size:13px; line-height:1.65; }

.jh-about-video { padding:105px 0; background:#fffefc; }
.jh-about-video__grid { display:grid; grid-template-columns:.82fr 1.18fr; align-items:center; gap:70px; }
.jh-about-video h2 { margin:14px 0 18px; color:#381711; font-size:clamp(32px,4vw,46px); line-height:1.25; letter-spacing:-.045em; }
.jh-about-video p { margin-bottom:25px; color:#735f59; font-size:15px; line-height:1.85; word-break:keep-all; }
.jh-about-video__frame { overflow:hidden; aspect-ratio:16/9; border-radius:22px; background:#381711; box-shadow:0 22px 60px rgba(56,23,17,.15); }
.jh-about-video__frame iframe { width:100%; height:100%; border:0; }
.jh-info-book { min-height:430px; text-align:left; }
.jh-info-book__grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:70px; }
.jh-info-book__copy { max-width:460px; }
.jh-info-book__copy h2 { margin:14px 0 12px; color:#fff; font-size:clamp(34px,4vw,48px); }
.jh-info-book__copy p { margin-bottom:26px; line-height:1.8; }
.jh-info-book__copy .jh-button { border-color:#fff; background:#fff; color:#5a322c !important; cursor:pointer; }
.jh-info-book__panel { display:grid; grid-template-columns:210px 1fr; align-items:center; gap:34px; padding:26px; border:1px solid rgba(255,255,255,.18); border-radius:20px; background:rgba(255,255,255,.08); animation:jh-book-enter .35s ease both; }
.jh-info-book__panel[hidden] { display:none !important; }
.jh-info-book__panel img { width:100%; max-height:280px; object-fit:contain; border-radius:8px; box-shadow:0 13px 32px rgba(0,0,0,.2); }
.jh-info-book__panel h3 { margin:0 0 12px; color:#fff; font-size:19px; }
.jh-info-book__panel ul { margin:0; padding:0; list-style:none; }
.jh-info-book__panel li + li { border-top:1px solid rgba(255,255,255,.13); }
.jh-info-book__panel a { display:flex; justify-content:space-between; padding:12px 0; color:#fff; font-size:14px; font-weight:750; }
@keyframes jh-book-enter { from { opacity:0; transform:translateX(18px); } to { opacity:1; transform:none; } }

.jh-coaching-page { padding-bottom:74px; }
.jh-coaching-problems { background:#fffefc; }
.jh-coaching-image-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.jh-coaching-image-grid article { overflow:hidden; border:1px solid #eee; border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(56,23,17,.06); }
.jh-coaching-image-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.jh-coaching-image-grid article > div { padding:24px; }.jh-coaching-image-grid article span { color:#c18d71; font-size:12px; font-weight:850; }
.jh-coaching-image-grid h3 { margin:8px 0 10px; color:#381711; font-size:19px; }.jh-coaching-image-grid p { margin:0; color:#806b65; font-size:13px; line-height:1.7; }
.jh-coaching-science { background:#eee; }
.jh-coaching-science__grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; }
.jh-coaching-science__image img { width:100%; aspect-ratio:4/4.1; object-fit:cover; border-radius:24px; }
.jh-coaching-science h2 { margin:14px 0 18px; color:#381711; font-size:clamp(31px,4vw,44px); line-height:1.25; letter-spacing:-.04em; }.jh-coaching-science p { color:#735f59; line-height:1.8; }
.jh-coaching-science ul { margin:28px 0 0; padding:0; list-style:none; }.jh-coaching-science li { display:grid; grid-template-columns:100px 1fr; gap:15px; padding:16px 0; border-top:1px solid #d8d8d8; }.jh-coaching-science li:last-child { border-bottom:1px solid #d8d8d8; }.jh-coaching-science li strong { color:#381711; }.jh-coaching-science li span { color:#806b65; font-size:13px; line-height:1.6; }
.jh-coaching-team { background:#5a322c; color:#fff; }.jh-coaching-team .jh-kicker { color:#e8c4ae; }.jh-coaching-team .jh-info-heading h2 { color:#fff; }
.jh-coaching-team__cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.jh-coaching-team__cards article { padding:31px; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:rgba(255,255,255,.06); }.jh-coaching-team__cards span { color:#e8c4ae; font-size:12px; font-weight:850; }.jh-coaching-team__cards h3 { margin:11px 0; color:#fff; font-size:22px; }.jh-coaching-team__cards p { margin:0; color:rgba(255,255,255,.68); font-size:13px; line-height:1.75; }
.jh-coaching-team__venn-block { width:min(560px,100%); margin:48px auto 0; text-align:center; }
.jh-coaching-team__venn-eyebrow { margin:0 0 12px; color:#e8c4ae; font-size:11px; font-weight:850; letter-spacing:.16em; }
.jh-coaching-team__venn { position:relative; width:min(430px,100%); aspect-ratio:1.28; margin:0 auto; isolation:isolate; }
.jh-coaching-team__venn-circle { position:absolute; display:flex; flex-direction:column; align-items:center; justify-content:center; width:46%; aspect-ratio:1; padding:18px; border:1px solid rgba(90,50,44,.22); border-radius:50%; background:rgba(255,254,252,.88); color:#5a322c; box-shadow:0 16px 36px rgba(56,23,17,.16),inset 0 0 0 8px rgba(255,255,255,.22); backdrop-filter:blur(3px); }
.jh-coaching-team__venn-circle span { margin-bottom:7px; color:#a6745b; font-size:9px; font-weight:850; letter-spacing:.12em; }
.jh-coaching-team__venn-circle strong { color:#381711; font-size:clamp(16px,2.2vw,21px); line-height:1.25; letter-spacing:-.025em; }
.jh-coaching-team__venn-circle--director { z-index:3; top:0; left:27%; }
.jh-coaching-team__venn-circle--coach { z-index:2; top:40%; left:7%; }
.jh-coaching-team__venn-circle--leader { z-index:1; top:40%; right:7%; }
.jh-coaching-team__venn-core { position:absolute; z-index:4; top:52%; left:50%; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:78px; aspect-ratio:1; border:1px solid rgba(255,254,252,.8); border-radius:50%; background:#5a322c; color:#fffefc; box-shadow:0 8px 22px rgba(56,23,17,.25); font-size:11px; font-weight:850; line-height:1.45; letter-spacing:-.02em; }
.jh-coaching-training__lead { margin:50px 0 -25px; color:#fffefc; font-size:clamp(20px,2.3vw,25px); font-weight:850; line-height:1.3; letter-spacing:-.03em; }
.jh-coaching-training { display:grid; grid-template-columns:repeat(3,1fr); width:min(720px,100%); margin:38px auto 0; padding:20px; border-radius:16px; background:#fffefc; }.jh-coaching-training div { text-align:center; border-right:1px solid #eadfd9; }.jh-coaching-training div:last-child { border:0; }.jh-coaching-training strong { display:block; color:#5a322c; font-size:23px; }.jh-coaching-training span { color:#8a7066; font-size:12px; line-height:1.4; }
.jh-coaching-cycle li:not(:last-child)::after { content:'›'; color:#e3bda6; font-size:25px; text-shadow:none; }
.jh-coaching-steps { background:#fffefc; }
.jh-coaching-outcomes { padding:95px 0; background:#eee; text-align:center; }.jh-coaching-outcomes h2 { margin:13px 0 38px; color:#381711; font-size:clamp(30px,4vw,43px); }.jh-coaching-outcomes__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.jh-coaching-outcomes__grid div { padding:22px 14px; border:1px solid #dfdfdf; border-radius:14px; background:#fffefc; color:#5a322c; font-weight:780; }
.jh-coaching-floating { position:fixed; z-index:990; left:50%; bottom:20px; transform:translateX(-50%); display:flex; align-items:center; gap:5px; width:max-content; max-width:calc(100% - 32px); padding:7px; border:1px solid rgba(90,50,44,.15); border-radius:999px; background:rgba(255,254,252,.94); box-shadow:0 14px 40px rgba(56,23,17,.18); backdrop-filter:blur(14px); }
.jh-coaching-floating a { padding:11px 15px; border-radius:999px; color:#5a322c; font-size:12px; font-weight:750; white-space:nowrap; }.jh-coaching-floating a:hover { background:#f5ece7; }.jh-coaching-floating .jh-coaching-floating__cta { padding-left:20px; padding-right:20px; background:#5a322c; color:#fff; }.jh-coaching-floating .jh-coaching-floating__cta:hover { background:#381711; }

@media (max-width:900px) {
  .jh-home-system__grid,.jh-about-video__grid,.jh-info-book__grid,.jh-coaching-science__grid { grid-template-columns:1fr; gap:42px; }
  .jh-home-system__visual { width:min(650px,100%); margin:0 auto; }.jh-home-system__visual > img { aspect-ratio:16/10; }
  .jh-home-system__proof { right:18px; }
  .jh-info-book__panel { max-width:650px; }.jh-coaching-image-grid { grid-template-columns:1fr; }.jh-coaching-image-grid article { display:grid; grid-template-columns:220px 1fr; }.jh-coaching-image-grid img { height:100%; aspect-ratio:auto; }
}

@media (max-width:600px) {
  .jh-home-system__visual > img { aspect-ratio:4/4.4; }.jh-home-system__proof { position:relative; right:auto; bottom:auto; width:calc(100% - 22px); margin:-38px auto 0; }.jh-home-system__proof { padding:16px 8px; }.jh-home-system__proof strong { font-size:15px; }.jh-home-system__roles li { grid-template-columns:1fr; gap:5px; padding-left:34px; }.jh-home-changes { padding:12px 0 70px; }.jh-home-changes__panel { padding:28px 18px; border-radius:18px; }.jh-home-changes__grid { grid-template-columns:1fr; gap:10px; }.jh-home-changes__grid article { min-height:0; padding:21px 20px; }.jh-home-changes__grid h3 { font-size:16px; }.jh-home-changes__grid p { font-size:13.5px; }
  .jh-about-video { padding:74px 0; }.jh-info-book { padding:75px 0; }.jh-info-book__panel { grid-template-columns:112px 1fr; gap:19px; padding:18px; }.jh-info-book__panel h3 { font-size:15px; }
  .jh-coaching-image-grid article { display:block; }.jh-coaching-image-grid img { aspect-ratio:16/10; }.jh-coaching-science li { grid-template-columns:1fr; gap:5px; }.jh-coaching-team__cards,.jh-coaching-outcomes__grid { grid-template-columns:1fr; }.jh-coaching-team__venn-block { margin-top:38px; }.jh-coaching-team__venn { width:min(330px,100%); }.jh-coaching-team__venn-circle { padding:12px; }.jh-coaching-team__venn-circle span { margin-bottom:5px; font-size:7px; }.jh-coaching-team__venn-circle strong { font-size:15px; }.jh-coaching-team__venn-core { width:62px; font-size:9px; }.jh-coaching-training__lead { margin-top:42px; }.jh-coaching-training { padding:15px 5px; }.jh-coaching-training strong { font-size:18px; }
  .jh-coaching-floating { bottom:10px; width:calc(100% - 20px); justify-content:space-between; }.jh-coaching-floating > div strong { font-size:12px; }.jh-coaching-floating > div span { font-size:12px; }.jh-coaching-page .jh-coaching-floating > a { padding:11px 12px; font-size:12px; }.jh-coaching-floating .jh-coaching-floating__cta { padding-left:13px; padding-right:13px; }
}

/* Checkout Responsiveness */
@media (max-width: 992px) {
    .woocommerce-checkout form.checkout {
        flex-direction: column;
    }
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review {
        width: 100% !important;
        position: static !important;
    }
}

/* 0727 final coaching bar override (must remain after the legacy component rules). */
.jh-coaching-page .jh-coaching-floating {
  left:50%;
  right:auto;
  width:min(760px,calc(100% - 40px));
  max-width:760px;
  padding:10px 12px 10px 42px;
  transform:translateX(-50%);
}

@media (max-width:600px) {
  .jh-coaching-page .jh-coaching-floating {
    left:14px;
    right:76px;
    width:auto;
    max-width:none;
    padding:10px 10px 10px 26px;
    transform:none;
  }
  .jh-coaching-page .jh-coaching-floating > div {
    min-width:0;
    padding-right:5px;
  }
  .jh-coaching-page .jh-coaching-floating > div strong {
    font-size:12px;
    line-height:1.35;
  }
  .jh-coaching-page .jh-coaching-floating > a {
    min-width:84px;
    padding:12px 13px;
  }
}

@media (max-width:390px) {
  .jh-coaching-page .jh-coaching-floating {
    left:10px;
    right:68px;
    padding-left:22px;
  }
  .jh-coaching-page .jh-coaching-floating > div strong {
    font-size:11px;
  }
  .jh-coaching-page .jh-coaching-floating > a {
    min-width:76px;
    padding-right:10px;
    padding-left:10px;
  }
}

/* 0726 final cascade overrides */
.jh-home-program > img { aspect-ratio:16/10; }
.jh-finder-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) 230px; align-items:stretch; gap:24px; }
.jh-finder-question { height:100%; }
.jh-finder-actions { grid-column:1 / -1; display:flex; justify-content:center; }
.jh-finder-actions .jh-button { min-height:56px; border:0; cursor:pointer; }
.jh-finder-result { grid-column:1 / -1; }
.jh-process-grid.jh-process-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.jh-consultation-process .jh-process-grid { text-align:center; }

@media (max-width:1100px) {
  .jh-finder-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jh-finder-score,.jh-finder-actions { grid-column:1 / -1; }
}

@media (max-width:600px) {
  .jh-coaching-image-grid article { display:block !important; grid-template-columns:1fr !important; }
  .jh-coaching-image-grid img { width:100%; height:auto !important; aspect-ratio:16/10 !important; }
  .jh-coaching-application ol { grid-template-columns:1fr; }
  .jh-process-grid--three { grid-template-columns:1fr !important; }
  .jh-finder-form { grid-template-columns:1fr; gap:20px; }
  .jh-finder-actions { grid-column:auto; }
}

/* Coaching card rows and one-row desktop application steps. */
@media (min-width:901px) {
  .jh-coaching-types__grid {
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
  .jh-coaching-types__grid .jh-coaching-option-card {
    grid-column:span 2;
  }
  .jh-coaching-types__grid .jh-coaching-option-card:nth-child(4) {
    grid-column:2 / span 2;
  }
  .jh-coaching-types__grid .jh-coaching-option-card:nth-child(5) {
    grid-column:4 / span 2;
  }
  .jh-coaching-application ol {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
}

@media (min-width:601px) and (max-width:900px) {
  .jh-coaching-application ol {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:600px) {
  .jh-coaching-application ol {
    grid-template-columns:1fr;
  }
}
/* Notion 0726 content and reservation refinements */
.jh-info-hero__mobile-photo { display:none; }
.jh-info-hero__grid { grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr); }
.jh-info-hero__copy { min-width:0; }
.jh-info-hero__copy h1 { max-width:760px; white-space:normal; text-wrap:balance; font-size:clamp(36px,4.2vw,54px); }
.jh-info-hero__desktop-photo { width:100%; max-width:470px; max-height:560px !important; justify-self:end; object-fit:contain; object-position:center bottom; }
.jh-info-profile__photo { min-height:520px; }
.jh-info-profile__photo img { transform:none; object-fit:contain; object-position:center bottom; }
.jh-coaching-option-card__private { flex:0 0 auto; display:inline-flex; align-items:center; padding:9px 12px; border-radius:999px; background:#f8eee8; color:#5a322c; font-size:11px; font-weight:800; white-space:nowrap; }
.jh-consultation-pricing { padding:88px 0; background:#fffefc; }
.jh-consultation-pricing__list { max-width:680px; margin:36px auto 0; padding:10px 32px 22px; border:1px solid #eadbd3; border-radius:22px; background:#fff; box-shadow:0 12px 34px rgba(56,23,17,.05); }
.jh-consultation-pricing__row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 4px; border-bottom:1px solid #efe5df; color:#381711; font-size:var(--jh-type-label); font-weight:650; }
.jh-consultation-pricing__row strong { color:#946650; font-size:var(--jh-type-price-small); white-space:nowrap; }
.jh-consultation-pricing__list p { margin:20px 4px 0; color:#715c53; font-size:15px; line-height:1.6; }
@media(max-width:600px){.jh-consultation-pricing__list{padding:4px 18px 20px}.jh-consultation-pricing__row{padding:19px 2px}}
.jh-consultation-pricing__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; max-width:920px; margin:38px auto 0; }
.jh-consultation-pricing__grid article { position:relative; padding:28px; border:1px solid #eadbd3; border-radius:18px; background:#fff; text-align:center; box-shadow:0 12px 34px rgba(56,23,17,.05); }
.jh-consultation-pricing__grid article>span { display:grid; width:38px; height:38px; margin:0 auto 15px; border-radius:50%; background:#f5e8e1; color:#8d654f; font-size:12px; font-weight:850; place-items:center; }
.jh-consultation-pricing__grid h3 { margin:0 0 12px; color:#381711; font-size:20px; }
.jh-consultation-pricing__grid strong { color:#9c6d54; font-size:24px; }
.jh-consultation-pricing__grid p { margin:10px 0 0; color:#806b65; font-size:13px; }
@media(max-width:900px) {
  .jh-info-hero__grid { grid-template-columns:1fr; }
  .jh-info-hero__copy { width:100%; }
  .jh-info-hero__copy h1 { white-space:normal; }
  .jh-info-hero__desktop-photo { display:none; }
  .jh-info-hero__mobile-photo { display:block; width:min(100%,390px); max-height:440px; margin:20px auto 0; object-fit:contain; object-position:center bottom; }
  .jh-info-profile__photo { min-height:420px; }
  .jh-info-profile__photo img { transform:none; }
  .jh-consultation-pricing { padding:70px 0; }
  .jh-consultation-pricing__grid { grid-template-columns:1fr; max-width:420px; }
}

@media(max-width:600px) {
  .jh-info-hero { overflow:hidden; }
  .jh-info-hero__grid { gap:0; padding-top:36px; }
  .jh-info-hero__copy h1 {
    max-width:350px;
    margin:12px auto 0;
    font-size:var(--type-page-title-mobile);
    line-height:1.22;
    letter-spacing:-.04em;
  }
  .jh-info-hero__mobile-photo {
    width:min(68vw,260px);
    max-height:none;
    margin:10px auto 0;
  }
  .jh-info-hero__copy > p {
    margin:0 0 18px;
    font-size:14px;
    line-height:1.65;
  }
}

/* Private 1:1 coaching payment pages */
.jh-coaching-product-page { overflow-x:hidden; background:#fffefc; color:#381711; }
.jh-coaching-product-page .site-main,
.jh-coaching-product-page #primary { width:100%; }
.jh-coaching-product-page div.product {
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(420px,.94fr);
  align-items:start;
  gap:64px;
  width:min(1180px,calc(100% - 64px));
  margin:0 auto;
  padding:76px 0 92px;
}
.jh-coaching-product-page div.product::after { display:none; }
.jh-coaching-product-page div.product .woocommerce-product-gallery {
  position:relative;
  top:auto;
  float:none !important;
  overflow:hidden;
  width:auto !important;
  margin:0 !important;
  border:1px solid #eadbd3;
  border-radius:28px;
  background:#f4e9e2;
  box-shadow:0 24px 60px rgba(56,23,17,.09);
}
.jh-coaching-product-page div.product .woocommerce-product-gallery::after {
  content:'4주간 함께 만드는 우리 가족의 수면 변화';
  position:absolute;
  right:24px;
  bottom:24px;
  left:24px;
  padding:19px 22px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:15px;
  background:rgba(56,23,17,.78);
  color:#fff;
  font-size:15px;
  font-weight:800;
  line-height:1.45;
  letter-spacing:-.02em;
  text-align:center;
  backdrop-filter:blur(10px);
}
.jh-coaching-product-page div.product .woocommerce-product-gallery img {
  display:block;
  width:100%;
  height:auto;
  min-height:580px;
  aspect-ratio:4/5;
  object-fit:cover;
}
.jh-coaching-product-page div.product .summary {
  float:none !important;
  width:auto !important;
  margin:0 !important;
  padding:42px;
  border:1px solid #eadbd3;
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 52px rgba(56,23,17,.065);
}
.jhcs-product-eyebrow { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 22px; }
.jhcs-product-eyebrow span { color:#a6745b; font-size:11px; font-weight:900; letter-spacing:.15em; }
.jhcs-product-eyebrow strong { padding:8px 12px; border-radius:999px; background:#f5ece7; color:#5a322c; font-size:11px; font-weight:800; white-space:nowrap; }
.jh-coaching-product-page div.product .product_title { margin:0 0 18px; color:#381711; font-size:clamp(34px,3.4vw,48px); line-height:1.18; letter-spacing:-.055em; word-break:keep-all; }
.jh-coaching-product-page div.product .summary > .price { margin:0 0 23px; color:#9c6d54; font-size:29px; font-weight:850; letter-spacing:-.035em; }
.jh-coaching-product-page div.product .woocommerce-product-details__short-description { margin:0 0 26px; padding:0 0 25px; border-bottom:1px solid #eee; }
.jh-coaching-product-page div.product .woocommerce-product-details__short-description p { margin:0; color:#6f5b55; font-size:15px; line-height:1.85; word-break:keep-all; }
.jh-coaching-product-page .jhcs-family-type { margin:0 0 22px !important; padding:20px !important; border-color:#eadbd3 !important; border-radius:16px !important; background:#fffaf7 !important; }
.jh-coaching-product-page .jhcs-family-type label { margin-bottom:10px !important; font-size:14px; }
.jh-coaching-product-page .jhcs-family-type select { min-height:52px !important; padding:0 14px; border:1px solid #d8c9c2 !important; border-radius:10px !important; background:#fff; color:#381711; font-size:14px; }
.jh-coaching-product-page div.product form.cart { display:block; margin:0; }
.jh-coaching-product-page div.product form.cart .quantity { display:none !important; float:none !important; margin:0 !important; }
.jh-coaching-product-page div.product form.cart .qty { width:100%; min-height:56px; border:1px solid #d8c9c2; border-radius:12px; background:#fff; color:#381711; text-align:center; }
.jh-coaching-product-page div.product form.cart .single_add_to_cart_button {
  float:none !important;
  display:block;
  width:100%;
  min-height:56px;
  border:0;
  border-radius:12px;
  background:#5a322c !important;
  color:#fff !important;
  font-size:15px;
  font-weight:850;
  box-shadow:0 12px 24px rgba(90,50,44,.18);
}
.jh-coaching-product-page div.product form.cart .single_add_to_cart_button:hover { transform:translateY(-1px); background:#381711 !important; }
.jh-coaching-product-page div.product .product_meta { display:none !important; }
.jh-coaching-product-page div.product .product_meta .sku_wrapper { display:none; }
.jh-coaching-product-page div.product .product_meta a { color:#806b65; }
.jhcs-product-assurance-copy { margin:14px 0 0; color:#806b65; font-size:12px; line-height:1.75; word-break:keep-all; }
.jhcs-product-assurance { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:25px 0 0; }
.jhcs-product-assurance div { min-width:0; padding:15px 9px; border-radius:13px; background:#f9f5f2; text-align:center; }
.jhcs-product-assurance span { display:block; margin-bottom:7px; color:#c18d71; font-size:10px; font-weight:900; letter-spacing:.08em; }
.jhcs-product-assurance strong { display:block; color:#5a322c; font-size:12px; line-height:1.35; }
.jhcs-product-assurance small { display:block; margin-top:4px; color:#9a8580; font-size:10px; line-height:1.45; }
.jhcs-product-detail-panel {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
  gap:40px 72px;
  margin-top:12px;
  padding:58px 62px;
  border-radius:28px;
  background:#5a322c;
  color:#fff;
  box-shadow:0 22px 55px rgba(56,23,17,.12);
}
.jhcs-product-detail-panel__intro > span { color:#e9c4ae; font-size:11px; font-weight:900; letter-spacing:.15em; }
.jhcs-product-detail-panel__intro h2 { max-width:650px; margin:13px 0 18px; color:#fff; font-size:clamp(29px,3vw,40px); line-height:1.28; letter-spacing:-.045em; word-break:keep-all; }
.jhcs-product-detail-panel__intro p { max-width:650px; margin:0; color:rgba(255,255,255,.72); font-size:14px; line-height:1.85; word-break:keep-all; }
.jhcs-product-detail-panel ul { display:grid; align-content:center; gap:12px; margin:0; padding:0; list-style:none; }
.jhcs-product-detail-panel li { display:flex; align-items:center; gap:12px; padding:15px 16px; border:1px solid rgba(255,255,255,.14); border-radius:13px; background:rgba(255,255,255,.055); color:#fff; font-size:13px; font-weight:700; line-height:1.5; }
.jhcs-product-detail-panel li i { flex:0 0 auto; width:16px; height:9px; border-bottom:2px solid #e9c4ae; border-left:2px solid #e9c4ae; transform:rotate(-45deg); }
.jhcs-product-detail-panel__note { grid-column:1/-1; display:grid; grid-template-columns:170px 1fr; gap:26px; padding-top:26px; border-top:1px solid rgba(255,255,255,.16); }
.jhcs-product-detail-panel__note strong { color:#fff; font-size:14px; }
.jhcs-product-detail-panel__note p { margin:0; color:rgba(255,255,255,.64); font-size:12px; line-height:1.75; }
.jhcs-product-plain-description {
  grid-column:1/-1;
  width:min(100% - 36px,920px);
  margin:10px auto 24px;
  padding:0 0 20px;
  border-bottom:1px solid #eadfd9;
  color:#735f59;
  font-size:13px;
  line-height:1.85;
  word-break:keep-all;
}

@media(max-width:900px) {
  .jh-coaching-product-page div.product { grid-template-columns:1fr; gap:28px; width:min(100% - 36px,680px); padding:34px 0 68px; }
  .jh-coaching-product-page div.product .woocommerce-product-gallery { position:relative; top:auto; border-radius:22px; }
  .jh-coaching-product-page div.product .woocommerce-product-gallery img { min-height:0; aspect-ratio:16/11; }
  .jh-coaching-product-page div.product .summary { padding:30px; border-radius:22px; }
  .jhcs-product-detail-panel { grid-template-columns:1fr; gap:28px; padding:40px 34px; border-radius:22px; }
  .jhcs-product-detail-panel__note { grid-template-columns:1fr; gap:8px; }
}

@media(max-width:520px) {
  .jh-coaching-product-page div.product { width:calc(100% - 28px); padding-top:20px; }
  .jh-coaching-product-page div.product .woocommerce-product-gallery::after { right:14px; bottom:14px; left:14px; padding:14px 12px; font-size:12px; }
  .jh-coaching-product-page div.product .summary { padding:25px 20px; }
  .jhcs-product-eyebrow { align-items:flex-start; flex-direction:column; margin-bottom:18px; }
  .jh-coaching-product-page div.product .product_title { font-size:31px; }
  .jh-coaching-product-page div.product .summary > .price { font-size:25px; }
  .jhcs-product-assurance { grid-template-columns:1fr; }
  .jhcs-product-assurance div { display:grid; grid-template-columns:32px 1fr; align-items:center; gap:0 8px; padding:13px 14px; text-align:left; }
  .jhcs-product-assurance span { grid-row:1/3; margin:0; }
  .jhcs-product-assurance small { margin-top:2px; }
  .jhcs-product-detail-panel { padding:34px 24px; }
  .jhcs-product-detail-panel__intro h2 { font-size:27px; }
}

/* 2026-08 coaching payment and three-program layout */
.jh-coaching-types__grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; width:min(1160px,100%); margin-left:auto; margin-right:auto; }
@media(max-width:980px) { .jh-coaching-types__grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; width:min(760px,100%); } }
.jh-coaching-types__grid .jh-coaching-option-card,.jh-coaching-types__grid .jh-coaching-option-card:nth-child(4),.jh-coaching-types__grid .jh-coaching-option-card:nth-child(5) { grid-column:auto !important; width:auto !important; }
.jh-coaching-payment-guide { width:min(980px,100%); margin:27px auto 0; color:#806b65; font-size:13px; line-height:1.8; text-align:center; word-break:keep-all; }
.jh-coaching-payment-guide a { display:inline; margin-left:7px; color:#5a322c; font-weight:850; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.jh-payment-page { background:#fffefc; }
.jh-payment-hero { padding:92px 20px 64px; border-bottom:1px solid #eadbd3; background:#fff; text-align:center; }
.jh-payment-hero span { color:#9e6d56; font-size:12px; font-weight:850; letter-spacing:.15em; }
.jh-payment-hero h1 { margin:14px 0 12px; color:#381711; font-size:44px; line-height:1.2; letter-spacing:-.035em; }
.jh-payment-hero p { margin:0; color:#705b54; font-size:16px; line-height:1.7; }
.jh-payment-products { padding:70px 20px 96px; }
.jh-payment-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:min(1050px,100%); margin:0 auto 32px; padding:0; overflow:hidden; border:1px solid #eadbd3; border-radius:16px; background:#fff; list-style:none; }
.jh-payment-flow li { display:grid; grid-template-columns:34px 1fr; gap:1px 10px; padding:19px 20px; color:#8a7670; text-align:left; }
.jh-payment-flow li+li { border-left:1px solid #eadbd3; }
.jh-payment-flow li>span { grid-row:1/3; display:grid; width:32px; height:32px; border-radius:50%; background:#f2ebe7; color:#7e6359; font-size:12px; font-weight:850; place-items:center; }
.jh-payment-flow strong { align-self:end; color:#5a322c; font-size:14px; }
.jh-payment-flow small { font-size:11px; }
.jh-payment-flow .is-current { background:#fff8f4; }
.jh-payment-flow .is-current>span { background:#5a322c; color:#fff; }
.jh-payment-products__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; width:min(1050px,100%); }
.jh-payment-product { overflow:hidden; display:grid; grid-template-columns:42% 1fr; min-width:0; border:1px solid #e5d6ce; border-radius:22px; background:#fff; box-shadow:0 16px 42px rgba(56,23,17,.07); }
.jh-payment-product>img { width:100%; height:100%; min-height:330px; object-fit:contain; background:#f8f2ee; }
.jh-payment-product>div { display:flex; min-width:0; padding:30px; flex-direction:column; align-items:flex-start; }
.jh-payment-product h2 { margin:0 0 12px; color:#381711; font-size:24px; line-height:1.35; letter-spacing:-.025em; }
.jh-payment-product p { margin:0 0 24px; color:#705b54; font-size:14px; line-height:1.75; }
.jh-payment-product strong { margin-top:auto; color:#5a322c; font-size:25px; }
.jh-payment-product strong small { font-size:13px; font-weight:600; color:#806b65; }
.jh-payment-product a { display:inline-flex; margin-top:18px; padding:12px 18px; border-radius:999px; background:#5a322c; color:#fff; font-size:13px; font-weight:800; }
.jh-payment-product a:hover,.jh-payment-product a:focus-visible { background:#381711; color:#fff; }
.jh-payment-products__notice { margin:28px auto 0; color:#806b65; font-size:13px; text-align:center; }
.jh-coaching-product-page .jhcs-product-visual img { object-fit:contain !important; background:#fff !important; }

@media(max-width:900px) {
  .jh-payment-products__grid { grid-template-columns:1fr; max-width:650px; }
}
@media(max-width:650px) {
  .jh-payment-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jh-payment-flow li:nth-child(3) { border-left:0; border-top:1px solid #eadbd3; }
  .jh-payment-flow li:nth-child(4) { border-top:1px solid #eadbd3; }
  .jh-coaching-types__grid { grid-template-columns:1fr !important; }
  .jh-coaching-payment-guide { width:calc(100% - 24px); text-align:left; }
  .jh-payment-hero { padding:64px 16px 44px; }
  .jh-payment-hero h1 { font-size:34px; }
  .jh-payment-products { padding:44px 14px 70px; }
  .jh-payment-product { grid-template-columns:1fr; }
  .jh-payment-product>img { height:auto; min-height:0; aspect-ratio:4/3; }
  .jh-payment-product>div { padding:24px 22px; }
}

/* Coaching payment cards: keep the product visual and purchase details
   balanced without the large empty stretch created by auto-pushing price. */
.jh-payment-products__grid { align-items:stretch; }
.jh-payment-product {
  grid-template-columns:minmax(190px,40%) minmax(0,1fr) !important;
  align-items:stretch;
}
.jh-payment-product>img {
  min-height:360px !important;
  height:360px !important;
  object-fit:contain !important;
  align-self:stretch;
}
.jh-payment-product>div {
  justify-content:flex-start !important;
  padding:30px 30px 28px !important;
}
.jh-payment-product h2 { margin-bottom:12px; }
.jh-payment-product p { margin-bottom:0; }
.jh-payment-product strong {
  display:block;
  margin-top:34px !important;
}
.jh-payment-product a { margin-top:16px; }
@media(max-width:900px) and (min-width:651px) {
  .jh-payment-product { grid-template-columns:minmax(175px,38%) minmax(0,1fr) !important; }
  .jh-payment-product>img { min-height:320px !important; height:320px !important; }
  .jh-payment-product>div { padding:26px 24px 24px !important; }
}
@media(max-width:650px) {
  .jh-payment-product { grid-template-columns:1fr !important; }
  .jh-payment-product>img { height:auto !important; aspect-ratio:4/3; }
  .jh-payment-product>div { padding:24px 22px !important; }
  .jh-payment-product strong { margin-top:25px !important; }
}

/* Four coaching products are compared in one row on desktop. */
@media(min-width:1101px) {
  .jh-payment-products__grid { grid-template-columns:repeat(4,minmax(0,1fr)) !important; width:min(1320px,100%) !important; gap:16px !important; }
  .jh-payment-flow { width:min(1320px,100%) !important; }
  .jh-payment-product { grid-template-columns:1fr !important; }
  .jh-payment-product>img { width:100% !important; height:auto !important; min-height:0 !important; aspect-ratio:4/3; }
  .jh-payment-product>div { min-height:285px; padding:23px 20px 21px !important; }
  .jh-payment-product h2 { font-size:20px; }
  .jh-payment-product strong { margin-top:auto !important; font-size:22px; }
}
@media(max-width:1100px) and (min-width:651px) {
  .jh-payment-products__grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; max-width:900px !important; }
}

/* Final checkout layout overrides (after all WooCommerce component rules). */
.woocommerce-checkout form.checkout {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(340px,420px) !important;
  gap:32px !important;
  align-items:start !important;
  margin-top:30px !important;
}
.woocommerce-checkout #customer_details {
  grid-column:1 !important;
  width:auto !important;
  min-width:0 !important;
}
.woocommerce-checkout #order_review_heading { display:none !important; }
.woocommerce-checkout #order_review {
  grid-column:2 !important;
  width:auto !important;
  min-width:0 !important;
  position:sticky !important;
  top:104px !important;
}
.woocommerce-checkout #order_review::before {
  content:'고객님의 주문';
  display:block;
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:2px solid #c18d71;
  color:#1a1512;
  font-size:19px;
  font-weight:800;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row,
.woocommerce-checkout .woocommerce-additional-fields p.form-row {
  width:100% !important;
  float:none !important;
  clear:none !important;
  min-width:0 !important;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="first-name"],
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="last-name"] {
  width:100% !important;
}
@media (max-width:992px) {
  .woocommerce-checkout form.checkout {
    display:flex !important;
    flex-direction:column !important;
    gap:22px !important;
  }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review {
    width:100% !important;
    grid-column:auto !important;
    position:static !important;
  }
}
@media (max-width:600px) {
  .woocommerce-checkout .woocommerce { width:calc(100% - 28px); }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review { padding:22px 18px !important; border-radius:18px !important; }
  .woocommerce-billing-fields__field-wrapper { grid-template-columns:1fr !important; gap:0 !important; }
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="first-name"],
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper p.form-row[class*="last-name"] { grid-column:1 !important; }
  .woocommerce-checkout p.form-row input.input-text,
  .woocommerce-checkout p.form-row select,
  .woocommerce-checkout p.form-row textarea,
  .woocommerce-checkout .select2-selection,
  .woocommerce-checkout .select2-search__field {
    font-size:var(--type-form-control-mobile) !important;
  }
}
/* Program finder: explicit validation instead of a silent failed submit. */
.jh-finder-validation {
  margin: 0 0 12px;
  padding: 13px 16px;
  border: 1px solid #dba996;
  border-radius: 10px;
  background: #fff6f2;
  color: #7b3327;
  font-size: 14px;
  font-weight: 750;
}

/* September feedback: shared compact typography roles and course labels. */
:root{--jh-type-body-small:14px;--jh-type-label:16px;--jh-type-caption:12px;--jh-type-price-small:20px}
.jh-coaching-option-card__gift{margin:22px 0 0;color:#946650;font-size:var(--jh-type-label);font-weight:700}.jh-course-age-label{position:absolute;left:18px;top:18px;z-index:2;padding:9px 15px;background:#5a322c;color:#fff;border-radius:8px;font-size:20px;font-weight:750;line-height:1.3}.jh-card-thumb-wrap{position:relative}

/* 2026-09-27: existing type roles reused by the study portal and coaching footer. */
.jh-coaching-option-card__price .jh-coaching-option-card__gift{margin:0 0 8px;font-size:var(--jh-type-label);line-height:1.5;color:#946650}
.jh-course-study-heading{max-width:1160px;margin:0 auto;padding:40px 24px 0}
.jh-course-study-heading>a{font-size:var(--jh-type-label);color:#5a322c;font-weight:700}
.jh-course-study-heading h1{font-size:clamp(24px,3vw,34px);line-height:1.35;word-break:keep-all;margin:18px 0 0}
.jh-course-overview .ld-section-heading,.jh-course-overview .ld-section-heading h2{font-size:var(--jh-type-price-small)!important;font-weight:750}
.jh-lesson-materials a{color:#5a322c!important;font-size:var(--jh-type-label,16px);font-weight:700!important;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.learndash-wrapper .ld-content-actions{justify-content:space-between}
.learndash-wrapper .ld-content-actions .ld-content-action:last-child{margin-left:auto;text-align:right}

/* 2026-10-20 Task 2-1 & 8 */
.jh-flow-sup { font-size: 0.72em; vertical-align: super; line-height: 0; margin-left: 2px; font-weight: 800; }
.jh-card-thumb-link { display: block; width: 100%; height: 100%; cursor: pointer; text-decoration: none; }
