/* Homepage-only editorial design. No shared service-page selectors. */
.home-page { background: #f8f7f4; }
.home-page main { --kh-green: #173f36; --kh-soft: #f2eee7; --kh-muted: #5f625c; --kh-line: #d8d2c9; }
/* Quiet warm neutrals alternate with the existing forest-green sections. */
.kh-hero { background: #f8f7f4; }
.kh-intro { background: #fbfaf7; }
.kh-approach { background: #f8f7f4; }
.kh-visit { background: #fbfaf7; }
.kh-wrap { width: min(1380px,100%); margin-inline: auto; padding-inline: clamp(24px,5vw,80px); }
.kh-section { padding-block: clamp(64px,8vw,112px); }
.kh-kicker { font: 600 .69rem/1.6 var(--sans); color: #596443; text-transform: uppercase; letter-spacing: .17em; margin: 0 0 20px; }
.home-page main h1,.home-page main h2,.home-page main h3 { color: var(--kh-green); }
.home-page main h1,.home-page main h2 { text-wrap: balance; }
.home-page main h2 { font-size: clamp(2.1rem,3.8vw,3.65rem); letter-spacing: -.035em; line-height: 1.08; }
.home-page main h2 em { display: block; font-weight: 400; color: #657456; }
.home-page main p { line-height: 1.75; }
.home-page main a:focus-visible,.kh-faq summary:focus-visible { outline: 3px solid #8a9b5a; outline-offset: 6px; }
.kh-hero { overflow: hidden; }
.kh-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px,5vw,84px); align-items: center; padding-block: 54px 64px; }
.kh-hero-copy { padding-block: 20px; }
.kh-hero-copy h1 { font-size: clamp(3.4rem,5.8vw,5.7rem); letter-spacing: -.055em; line-height: 1.01; }
.kh-hero-copy h1 em { display: block; font-weight: 400; color: #687854; }
.kh-hero-lead { max-width: 43ch; font-size: clamp(1rem,1.35vw,1.15rem); margin-top: 28px; color: #4c574f; }
.kh-hero-copy .btn-row { align-items: center; gap: 24px; margin-top: 30px; }
.kh-text-button { font-size: .85rem; font-weight: 600; color: var(--kh-green); padding-block: 12px; border-bottom: 1px solid var(--kh-line); }
.kh-text-button span { margin-left: 10px; }
.kh-hero-note { font-size: .72rem; color: #69705f; margin: 30px 0 0; max-width: 44ch; }
.kh-hero-photo { margin: 0; position: relative; align-self: stretch; min-height: 550px; }
.kh-hero-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 62% 50%; border-radius: 150px 4px 4px 4px; }
.kh-hero-photo figcaption { position: absolute; bottom: 18px; left: 18px; right: 18px; padding: 17px 20px; background: #f0ece3f2; display: flex; flex-wrap: wrap; gap: 7px 18px; justify-content: space-between; font-size: .68rem; color: #344b3d; border-radius: 2px; }
.kh-hero-photo figcaption span:first-child { font-weight: 600; }
.kh-facts { border-block: 1px solid var(--kh-line); background: #e8dfd5; }
.kh-facts .kh-wrap { display: grid; grid-template-columns: repeat(3,1fr); }
.kh-facts p { margin: 0; padding: 24px 28px; border-right: 1px solid var(--kh-line); }
.kh-facts p:first-child { padding-left: 0; }.kh-facts p:last-child { border: 0; }
.kh-facts p>span { display: block; font-size: .66rem; color: #64705d; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 5px; }
.kh-facts strong,.kh-facts a { color: var(--kh-green); font-size: .92rem; font-weight: 500; }
.kh-facts a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #aab59c; }
.kh-heading { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,7vw,110px); align-items: end; }
.kh-heading>p { max-width: 44ch; margin: 0; color: var(--kh-muted); font-size: .95rem; }
.kh-intro .kh-heading { align-items: start; }.kh-intro .kh-lead { font-size: 1.08rem; color: #314e42; }
.kh-intro p:not(.kh-kicker) { font-size: 1rem; }.kh-intro p:last-child { margin-bottom: 0; }
.kh-services { background: #f2eee7; }
.kh-service-group { display: grid; grid-template-columns: 230px 1fr; gap: 40px; border-top: 1px solid #cbd1c2; padding-block: 36px; }
.kh-services .kh-heading { margin-bottom: 48px; }
.kh-group-title>span { font-size: .68rem; color: #6c785d; letter-spacing: .1em; display: block; margin-bottom: 24px; }
.kh-group-title h3 { font-size: 1.6rem; max-width: 13ch; }
.kh-services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
.kh-services-grid:has(>.kh-service:nth-child(2):last-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
.kh-service { min-width: 0; }.kh-service h3 { font-family: var(--sans); font-weight: 600; font-size: 1rem; line-height: 1.5; }
.kh-service>p { color: #5c6558; font-size: .9rem; margin: 14px 0 20px; }
.kh-link { display: flex; justify-content: space-between; gap: 16px; color: var(--kh-green); font-size: .88rem; font-weight: 600; align-items: baseline; }
.kh-link>span:last-child { flex: 0 0 auto; transition: transform .2s; }.kh-link:hover>span:last-child { transform: translate(2px,-2px); }
.kh-service .kh-link { font-size: inherit; }.kh-service .kh-link:hover>span:first-child { text-decoration: underline; text-underline-offset: 4px; }
.kh-sub-links { display: flex; flex-direction: column; gap: 8px; }
.kh-sub-link { display: flex; justify-content: space-between; gap: 8px; font-size: .8rem; color: #3e5d4a; border-bottom: 1px solid #d7dcce; padding: 7px 0; }
.kh-sub-link:hover { border-color: #59724d; color: #1c382c; }.kh-sub-link span:last-child { color: #71835e; }
.kh-help { margin-top: 6px; padding-top: 25px; border-top: 1px solid #cbd1c2; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.kh-help p { margin: 0; font-family: var(--serif); font-size: 1.4rem; color: var(--kh-green); }
.kh-approach-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(48px,8vw,112px); align-items: center; }
.kh-approach figure { margin: 0; }.kh-approach img { width: 100%; max-height: 700px; object-fit: cover; object-position: center 38%; border-radius: 4px 4px 120px 4px; }
.kh-steps { list-style: none; padding: 0; margin: 30px 0; }
.kh-steps li { display: flex; gap: 22px; padding-block: 22px; border-bottom: 1px solid var(--kh-line); }
.kh-steps li>span { font-size: .67rem; color: #667855; padding-top: 5px; }
.kh-steps h3 { font-family: var(--sans); font-size: .97rem; line-height: 1.4; font-weight: 600; margin-bottom: 8px; }
.kh-steps p { font-size: .88rem; color: var(--kh-muted); margin: 0; }
.kh-approach .kh-link { max-width: 220px; }
.kh-guides { background: #173f36; }.kh-guides .kh-kicker { color: #bed0aa; }
.home-page .kh-guides h2 { color: #fbfaf1; }.home-page .kh-guides h2 em { color: #c5d3b4; }
.kh-guides .kh-heading>p { color: #d2ddd2; }
.kh-guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 38px; margin-top: 50px; }
.kh-guide { border-top: 1px solid #668070; padding-top: 25px; display: flex; flex-direction: column; transition: border-color .2s; }
.kh-guide:hover { border-color: #e0ebcd; }.home-page .kh-guide h3 { color: #f8f7ee; font-size: 1.6rem; line-height: 1.22; }
.kh-guide>p:not(.kh-kicker) { color: #cfdbcf; font-size: .85rem; margin: 18px 0 22px; }
.kh-guide-arrow { color: #d7e6c4; margin-top: auto; font-size: 1.45rem; }
.kh-visit-photo { position: relative; }.kh-visit-photo img { width: 100%; aspect-ratio: 2.4; object-fit: cover; object-position: 50% 55%; border-radius: 4px; }
.kh-visit-photo p { position: absolute; bottom: 24px; left: 28px; margin: 0; padding: 10px 18px; background: #f0ece3ed; color: #234835; font-family: var(--serif); font-size: 1.45rem; }
.kh-visit-grid { display: grid; grid-template-columns: 1fr .8fr; gap: clamp(40px,10vw,150px); margin-top: 50px; }
.kh-visit-grid h2 { margin-bottom: 24px; }.kh-visit-grid p:not(.kh-kicker) { font-size: .95rem; color: var(--kh-muted); }
.kh-visit-grid .kh-link { max-width: 250px; margin-top: 22px; }
.kh-visit-details { border-left: 1px solid var(--kh-line); padding-left: 44px; }
.kh-visit-details h3 { font-size: 1.5rem; margin-bottom: 17px; }.kh-visit-details address { font-size: .9rem; font-style: normal; line-height: 1.8; max-width: 36ch; }
.kh-visit-details dl { font-size: .81rem; border-block: 1px solid var(--kh-line); padding-block: 18px; margin-block: 20px; }.kh-visit-details dl>div { display: flex; gap: 20px; justify-content: space-between; }.kh-visit-details dd { margin: 0; text-align: right; }
.kh-contact { display: block; font-size: .79rem; margin-top: 10px; overflow-wrap: anywhere; }.kh-contact:hover { text-decoration: underline; }
.kh-faq { background: #e8dfd5; }.kh-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
.kh-faq details { border-bottom: 1px solid #cbd1c2; }.kh-faq details:first-child { border-top: 1px solid #cbd1c2; }
.kh-faq summary { list-style: none; display: flex; align-items: baseline; justify-content: space-between; gap: 24px; cursor: pointer; padding: 24px 0; color: #234a3b; font-size: .93rem; font-weight: 500; }
.kh-faq summary::-webkit-details-marker { display: none; }.kh-faq summary span { font-size: 1.2rem; flex-shrink: 0; }.kh-faq details[open] summary span { transform: rotate(45deg); }
.kh-faq details p { padding: 0 24px 24px 0; margin: 0; font-size: .88rem; color: #535f51; }
.kh-final { background: #173f36; padding-block: 80px; text-align: center; }.kh-final .kh-kicker { color: #bfd0ae; }.home-page .kh-final h2 { color: #fffaf0; font-size: clamp(2.5rem,5vw,4.7rem); }.home-page .kh-final h2 em { color: #c5d3b4; }.kh-final p:not(.kh-kicker) { color: #d1ddcf; max-width: 48ch; margin: 26px auto; font-size: .94rem; }.kh-final .btn-row { justify-content: center; }
.home-page .site-footer { border-top: 1px solid #ffffff20; }
.home-page.lang-th main,.home-page.lang-zh main { font-size: 16px; }
.home-page.lang-th .kh-kicker,.home-page.lang-th .kh-service h3,.home-page.lang-th .kh-steps h3,.home-page.lang-th .kh-help p,.home-page.lang-th .kh-visit-photo p { font-family: inherit; letter-spacing: 0; }
.home-page.lang-th main h1,.home-page.lang-zh main h1 { font-size: clamp(2.65rem,4.5vw,4.5rem); line-height: 1.25; letter-spacing: -.02em; }
.home-page.lang-th main h2,.home-page.lang-zh main h2 { font-size: clamp(1.9rem,2.9vw,2.8rem); line-height: 1.38; letter-spacing: 0; }
.home-page.lang-th main h1 em,.home-page.lang-th main h2 em,.home-page.lang-zh main h1 em,.home-page.lang-zh main h2 em { font-style: normal; }
.home-page.lang-th .kh-group-title h3 { max-width: none; line-height: 1.5; }
@media(min-width:1500px) { .kh-hero-photo { min-height: 630px; } }
@media(max-width:1100px) { .kh-service-group { grid-template-columns: 170px 1fr; gap: 28px; }.kh-services-grid { gap: 22px; }.kh-service .kh-link { font-size: .93rem; }.kh-hero-photo { min-height: 530px; }.kh-hero-grid { gap: 32px; }.kh-hero-copy .btn-row { gap: 12px; }.kh-hero-copy .btn { padding-inline: 1.3em; } }
@media(max-width:850px) { .kh-service-group { grid-template-columns: 1fr; }.kh-group-title { display: flex; gap: 22px; align-items: baseline; }.kh-group-title h3 { max-width: none; font-size: 1.65rem; }.kh-group-title>span { margin: 0; }.kh-facts p { padding-inline: 16px; }.kh-facts strong,.kh-facts a { font-size: .8rem; }.kh-heading { gap: 35px; }.kh-approach-grid { gap: 38px; grid-template-columns: .75fr 1fr; }.kh-faq-grid { gap: 38px; }.kh-visit-details { padding-left: 25px; }.kh-hero-photo figcaption { left: 12px; right: 12px; padding: 12px; } }
@media(max-width:680px) {
 .kh-wrap { padding-inline: 24px; }.kh-section { padding-block: 60px; }.kh-kicker { font-size: .65rem; margin-bottom: 16px; }
 .kh-hero-grid { grid-template-columns: 1fr; gap: 30px; padding-top: 28px; padding-bottom: 34px; }.kh-hero-copy { padding: 8px 0 0; }.kh-hero-copy h1 { font-size: clamp(3.25rem,11.8vw,4.5rem); }.kh-hero-lead { font-size: 1rem; margin-top: 24px; }.kh-hero-copy .btn-row { gap: 15px; margin-top: 25px; }.kh-hero-copy .btn { font-size: .83rem; }.kh-text-button { font-size: .8rem; }.kh-hero-note { margin-top: 22px; font-size: .69rem; }
 .kh-hero-photo { min-height: 340px; }.kh-hero-photo img { border-top-left-radius: 90px; object-position: 65% 50%; }.kh-hero-photo figcaption { font-size: .62rem; gap: 3px 15px; }
 .kh-facts .kh-wrap { grid-template-columns: 1fr; }.kh-facts p { border-right: 0; border-bottom: 1px solid var(--kh-line); padding: 15px 0; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }.kh-facts p>span { margin: 0; font-size: .58rem; }.kh-facts strong,.kh-facts a { font-size: .78rem; }
 .kh-heading,.kh-approach-grid,.kh-visit-grid,.kh-faq-grid { grid-template-columns: 1fr; gap: 28px; }.kh-heading>p { font-size: .9rem; }.kh-intro p:not(.kh-kicker) { font-size: .95rem; }
 .kh-services .kh-heading { margin-bottom: 32px; }.kh-service-group { padding-block: 28px; gap: 24px; }.kh-services-grid,.kh-services-grid:has(>.kh-service:nth-child(2):last-child) { grid-template-columns: 1fr; gap: 24px; }.kh-service { padding: 23px; background: #f0ece3; border: 1px solid #e1e3d7; border-radius: 3px; }.kh-service>p { font-size: .9rem; }.kh-service .kh-link { font-size: 1rem; }.kh-sub-link { font-size: .8rem; }.kh-group-title h3 { font-size: 1.45rem; }.kh-help { align-items: start; flex-direction: column; gap: 10px; }.kh-help .kh-link { width: 100%; }.kh-help p { font-size: 1.4rem; }
 .kh-approach img { max-height: 470px; aspect-ratio: 1.1; object-position: center 35%; border-bottom-right-radius: 90px; }.kh-steps { margin-block: 16px 28px; }.kh-steps p { font-size: .88rem; }
 .kh-guide-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 32px; }.kh-guide { position: relative; padding-right: 35px; }.kh-guide-arrow { position: absolute; bottom: 20px; right: 0; }.kh-guide>p:not(.kh-kicker) { margin-bottom: 0; }
 .kh-visit-photo img { aspect-ratio: 1.2; object-position: 65% 50%; }.kh-visit-photo p { left: 12px; bottom: 12px; right: 12px; font-size: 1.1rem; padding: 10px 12px; }.kh-visit-grid { margin-top: 35px; }.kh-visit-details { border-left: 0; border-top: 1px solid var(--kh-line); padding: 28px 0 0; }.kh-visit-details address { max-width: none; }
 .kh-faq summary { font-size: .88rem; padding-block: 21px; }.kh-faq details p { padding-right: 0; }.kh-final { padding-block: 60px; }.kh-final .btn-row { flex-direction: column; align-items: stretch; }.kh-final p:not(.kh-kicker) { font-size: .9rem; }
 .home-page.lang-th main h1 { font-size: clamp(2.5rem,9.5vw,3.7rem); }.home-page.lang-th .kh-group-title h3 { font-size: 1.3rem; }.home-page.lang-th .kh-hero-copy .btn-row { align-items: stretch; }.home-page.lang-th .kh-facts p { flex-wrap: wrap; }.home-page.lang-th .kh-facts strong { font-size: .78rem; }
}
@media(prefers-reduced-motion:reduce) { .home-page *, .home-page *::before,.home-page *::after { scroll-behavior: auto !important; transition: none !important; } }
