.hakuba-article{max-width:1080px;margin:auto;padding:36px 28px 80px;color:#293a30;line-height:1.85;background:#faf8f0;min-width:0}.hakuba-article *{box-sizing:border-box}.hakuba-article a{color:#275b3d;text-underline-offset:4px}.hakuba-article h1{font-size:36px;line-height:1.45;margin:18px 0}.hakuba-article h1 small{font-size:21px;display:block;margin-top:10px}.hakuba-article h2{font-size:25px;margin:44px 0 20px;padding-bottom:10px;border-bottom:2px solid #42684d}.hakuba-article h3{font-size:21px;line-height:1.55}.hakuba-article .meta,.hakuba-article .note,.hakuba-article figcaption,.hakuba-article small{font-size:12px;line-height:1.7;color:#5f6c62}.hakuba-article .lead{font-size:18px}.hakuba-article figure{margin:0}.hakuba-article .hero img{display:block;width:100%;max-height:430px;object-fit:cover;border-radius:9px}.hakuba-article figcaption{margin:6px 0 16px}.hakuba-article nav{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.hakuba-article nav a{padding:8px 12px;background:#e6eedf;border-radius:5px;text-decoration:none;font-size:14px}.hakuba-article details{border-block-start:1px solid #bdcbb6;padding:13px 0;font-size:14px}.hakuba-article summary{cursor:pointer;font-weight:700}.hakuba-article .directory ul{columns:2;padding-left:22px}.hakuba-article .directory li{break-inside:avoid;margin-bottom:9px}.hakuba-article #hk-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.hakuba-article label{flex:1 1 145px;font-size:13px;font-weight:700}.hakuba-article select,.hakuba-article button{font:inherit;padding:12px;border:1px solid #9eaf99;border-radius:5px;background:white;color:#293a30}.hakuba-article select{display:block;width:100%;font-size:14px}.hakuba-article button{cursor:pointer;background:#e6eedf}.hakuba-article #hk-filter button{flex:0 0 auto}.hakuba-article #hk-count{font-weight:700}.hakuba-article .hotel{margin:24px 0;border:1px solid #b8c9b1;border-radius:10px;overflow:hidden;background:#fffdf8;box-shadow:0 3px 0 #b6c4b0,0 7px 16px #2439230d;scroll-margin-top:24px}.hakuba-article .hotel header{position:static;display:block;width:auto;height:auto;box-shadow:none;background:#edf3e5;padding:18px 22px}.hakuba-article .hotel h3{margin:6px 0}.hakuba-article .hotel header p{margin:6px 0 0}.hakuba-article .eyebrow{font-size:12px;color:#52694f}.hakuba-article .cardbody{padding:20px 22px}.hakuba-article .stayphoto{float:right;width:34%;max-width:300px;margin:0 0 12px 24px}.hakuba-article .stayphoto img{display:block;width:100%;height:200px;object-fit:contain;border-radius:7px;background:#edf1e7}.hakuba-article .stayphoto figcaption{font-size:10px}.hakuba-article .conditions{display:flex;flex-wrap:wrap;gap:6px}.hakuba-article .conditions span{background:#e9f0e1;border-radius:4px;padding:4px 8px;font-size:13px}.hakuba-article dl{display:grid;grid-template-columns:85px minmax(0,1fr);gap:8px 10px;font-size:14px}.hakuba-article dt{font-weight:700}.hakuba-article dd{margin:0;overflow-wrap:anywhere}.hakuba-article .important{font-size:13px;border-left:3px solid #ad7c55;padding-left:10px}.hakuba-article .review{font-size:14px;margin:14px 0}.hakuba-article .review a{font-weight:700}.hakuba-article small{display:block}.hakuba-article .rate{clear:both;padding:14px 16px;background:#f2ebdf;border-radius:7px}.hakuba-article .rate strong{display:block;font-size:26px;color:#bf2525}.hakuba-article .rate span{font-size:12px}.hakuba-article .booking{display:flex;align-items:center;justify-content:center;min-height:56px;padding:14px 18px;color:white!important;text-decoration:none;font-weight:800;background:linear-gradient(180deg,#21864c,#116935);border:1px solid #126937;border-bottom:4px solid #0c5129;border-radius:9px;box-shadow:0 4px 0 #0c5129,0 7px 14px #1d4d2926,inset 0 1px 0 #ffffff55;margin:16px 0 21px;text-align:center}.hakuba-article .booking:hover{transform:translateY(-2px)}.hakuba-article .booking:active{transform:translateY(2px)}.hakuba-article a:focus-visible,.hakuba-article button:focus-visible,.hakuba-article select:focus-visible{outline:3px solid #b8702d;outline-offset:4px}.hakuba-article #hk-more{display:block;width:100%;margin:24px auto;font-weight:700;padding:15px}.hakuba-article .purpose-item{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid #bac7b2;text-decoration:none;align-items:center}.hakuba-article .purpose-item img{width:112px;height:84px;object-fit:cover;border-radius:5px;flex:none}.hakuba-article .purpose-item strong{display:block}.hakuba-article .purpose-item p{margin:3px 0;font-size:14px}.hakuba-article .tablewrap{overflow-x:auto;max-width:100%;border:1px solid #8ea383}.hakuba-article table{border-collapse:collapse;width:100%;min-width:800px;font-size:13px}.hakuba-article th,.hakuba-article td{padding:12px;border:1px solid #9bb18f;vertical-align:top;text-align:left}.hakuba-article thead th{background:#315d44;color:white}.hakuba-article tbody th{position:sticky;left:0;background:#eef2e8;min-width:170px;width:190px;z-index:1}.hakuba-article tbody tr:nth-child(even) td{background:#f0f3e9}.hakuba-article td strong{display:block;color:#bf2525;font-size:18px}.hakuba-article .lowest{display:inline-block;font-size:11px;background:#ffedce;color:#754719;padding:2px 6px;border-radius:3px}.hakuba-article .scope{font-size:13px}.hakuba-article [hidden]{display:none!important}.hakuba-article .related{border-block:1px solid #aabc9f;padding:14px 0}.hakuba-article .related a{display:block;margin:6px 0}.hakuba-article .sources li{overflow-wrap:anywhere;margin-bottom:10px}.hakuba-article .holdtable{min-width:600px}.hakuba-article .holdtable th{min-width:150px}.hakuba-article .kicker{font-size:13px;letter-spacing:.08em;color:#477455;font-weight:700}.hakuba-article .access{font-size:12px;color:#5f6c62}@media(max-width:600px){.hakuba-article{padding:22px 16px 55px}.hakuba-article h1{font-size:28px}.hakuba-article h1 small{font-size:18px}.hakuba-article h2{font-size:22px}.hakuba-article .lead{font-size:16px}.hakuba-article .hotel header,.hakuba-article .cardbody{padding:16px}.hakuba-article .stayphoto{float:none;width:100%;max-width:none;margin:0 0 12px}.hakuba-article .stayphoto img{height:auto;max-height:240px}.hakuba-article .purpose-item img{width:80px;height:60px}.hakuba-article .purpose-item{gap:10px}.hakuba-article .directory ul{columns:1}.hakuba-article label{flex-basis:125px}.hakuba-article #hk-filter{gap:10px}.hakuba-article dl{grid-template-columns:75px minmax(0,1fr);font-size:13px}.hakuba-article .rate strong{font-size:24px}.hakuba-article tbody th{min-width:135px}.hakuba-article .hero img{max-height:290px}}

.hakuba-article .hero{display:block;grid-template-columns:none;padding:0;min-height:0;margin:0 0 24px;background:none}.hakuba-article .hero figcaption{display:block;margin:7px 0 0}

.hakuba-article .points{padding-left:20px;font-size:14px;margin:12px 0}.hakuba-article .points li{margin:5px 0}.hakuba-article .stayphoto img{width:auto;max-width:100%;margin:auto;height:auto;max-height:220px}

.hakuba-article .pet-fee{color:#b92323}.hakuba-article .market-price{margin-top:10px;border-top:1px solid #d8cdbc;padding-top:8px}.hakuba-article .market-price b{color:#b92323}.hakuba-article .stayphoto{min-height:0}.hakuba-article{overflow-wrap:break-word}.hakuba-article .hotel h3{overflow-wrap:anywhere}

/* Compact cards: title, photo, three facts, rate and booking. */
.hakuba-article .stayphoto{float:none;width:100%;max-width:none;margin:0 0 14px}
.hakuba-article .stayphoto img{display:block;width:100%;height:340px;max-height:none;object-fit:contain;background:#edf1e7}
.hakuba-article .stayphoto figcaption{margin:5px 0;font-size:11px}
.hakuba-article .hk-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.hakuba-article .hk-facts>div{background:#edf3e5;border-radius:6px;padding:12px}
.hakuba-article .hk-facts dt{font-size:12px;color:#5f6c62;margin-bottom:4px}
.hakuba-article .hk-facts dd{font-size:14px;font-weight:700;line-height:1.6}
.hakuba-article #hk-filter{max-width:640px}
.hakuba-article #hk-filter label{flex:1 1 150px}
.hakuba-article .hk-sort{display:flex;align-items:center;gap:10px;margin:14px 0 6px;font-size:13px}
.hakuba-article .hk-sort label{flex:none}
.hakuba-article .hk-sort select{width:auto;max-width:100%;padding:8px 10px;font-size:13px}
.hakuba-article .rate{padding:12px 16px}
.hakuba-article .review{margin:12px 0}
.hakuba-article .hotel details p{font-size:13px}
@media(max-width:600px){.hakuba-article .stayphoto img{height:220px}.hakuba-article .hk-facts{gap:6px}.hakuba-article .hk-facts>div{padding:9px 7px}.hakuba-article .hk-facts dt{font-size:11px}.hakuba-article .hk-facts dd{font-size:12px}.hakuba-article #hk-filter button{padding:10px;font-size:12px}.hakuba-article #hk-filter label{flex-basis:100px}.hakuba-article .hk-sort select{max-width:240px}}
