
:root{--ink:#153c3a;--muted:#60716b;--paper:#f8f6ef;--white:#fff;--line:#d8dfd6;--gold:#ad7847;--pale:#e9eee6;--rose:#9b6856}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:15px;line-height:1.9}a{color:inherit;text-underline-offset:4px}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bd8142;outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,.serif{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500}h1{font-size:clamp(33px,4.3vw,60px);line-height:1.45;letter-spacing:.05em}h2{font-size:clamp(26px,3vw,38px);line-height:1.5;margin-bottom:20px}h3{font-size:18px;line-height:1.6}small,.small{font-size:12px}.muted{color:var(--muted)}.wrap{width:min(1180px,calc(100% - 64px));margin:auto}.narrow{max-width:850px}.eyebrow{font-size:11px;letter-spacing:.22em;color:var(--gold);font-weight:700;text-transform:uppercase;margin-bottom:16px}.head{background:rgba(248,246,239,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.head-inner{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:25px}.brand{text-decoration:none;line-height:1.5}.brand span{display:block;font-size:10px;letter-spacing:.22em;color:var(--gold)}.brand strong{font-size:19px;font-family:"Yu Mincho",serif}.head nav{display:flex;gap:24px;font-size:13px;align-items:center}.head nav a{text-decoration:none}.button,button{display:inline-flex;justify-content:center;align-items:center;padding:13px 23px;background:var(--ink);color:white;border:1px solid var(--ink);text-decoration:none;cursor:pointer;line-height:1.6}.button.light{background:transparent;color:var(--ink)}.button:hover,button:hover{background:#285753;color:white}.button:disabled,button:disabled{opacity:.5;cursor:not-allowed}.intro{padding:75px 0 48px}.intro .lead{max-width:750px;margin-top:25px;color:var(--muted)}.title-meta{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.pill{font-size:12px;border:1px solid var(--line);padding:3px 12px;border-radius:24px}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.tag{background:var(--pale);padding:3px 10px;font-size:12px}.top-collage{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px}.top-collage img{width:100%;height:350px;object-fit:cover}.top-collage figcaption{font-size:12px;padding:10px 0}.hero{position:relative}.hero>img{width:100%;height:520px;object-fit:cover}.hero-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.6));color:white;padding:50px 28px 14px;font-size:12px}.hero-copy{padding:45px 0 0}.hero-copy p{max-width:780px}.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:35px}.facts>div{padding:22px;border-right:1px solid var(--line)}.facts>div:last-child{border:0}.facts b{font-size:17px;display:block}.facts span{font-size:12px;color:var(--muted)}.section{padding:72px 0}.section.alt{background:var(--pale)}.section-head{display:flex;gap:40px;justify-content:space-between;align-items:end;margin-bottom:30px}.section-head p{max-width:470px;color:var(--muted)}.section-head h2{margin-bottom:0}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.course-card{background:white;border:1px solid var(--line);display:flex;flex-direction:column}.course-card img{width:100%;height:225px;object-fit:cover}.course-card .body{padding:28px;display:flex;flex:1;flex-direction:column}.course-card p{margin:12px 0 22px}.course-card .button{margin-top:auto;align-self:start}.number{font-family:Georgia,serif;font-size:29px;line-height:1;color:var(--gold)}.linknav{display:flex;gap:20px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line);font-size:13px}.note{padding:20px 24px;background:white;border-left:3px solid var(--gold);margin:22px 0;color:var(--muted);font-size:13px}.notice{padding:18px 23px;border:1px solid #cfae75;background:#fff7e4;color:#82503e;font-size:13px}.days{display:grid;gap:20px}.day{background:white;border:1px solid var(--line);display:grid;grid-template-columns:135px 1fr}.day-number{padding:27px;border-right:1px solid var(--line);background:#f2f2eb}.day-number b{display:block;font-family:Georgia,serif;font-size:42px;color:var(--gold);line-height:1.2}.day-number span{font-size:12px}.day-content{padding:26px 32px}.day-content h3{margin-bottom:20px}.slots{display:grid;gap:12px}.slot{display:grid;grid-template-columns:52px 1fr;gap:10px}.slot b{font-size:12px;color:var(--gold);padding-top:4px}.slot p{font-size:14px}.meals{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.meals p{font-size:12px}.meals b{display:block;color:var(--gold)}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.gallery img{width:100%;height:315px;object-fit:cover}.gallery .wide{grid-column:1/-1}.gallery .wide img{height:auto;max-height:580px;object-fit:cover}.gallery figcaption{font-size:12px;color:var(--muted);padding:10px 0}.gallery figcaption strong{display:block;font-size:16px;color:var(--ink)}.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.hotel-card{border:1px solid var(--line);background:white}.hotel-card img{height:210px;width:100%;object-fit:cover}.hotel-card .body{padding:23px}.hotel-card .eng{font-size:11px;color:var(--muted);line-height:1.5;margin:6px 0 14px}.hotel-card p{font-size:13px;margin-top:12px}.hotel-card .location{font-size:12px;color:var(--gold)}.rating{font-size:13px;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}.rating strong{font-size:20px}.hotel-card .caption{font-size:10px;color:var(--muted);padding:8px 20px 0;line-height:1.6}.hotel-card .sources{font-size:11px;display:flex;gap:15px;flex-wrap:wrap;margin-top:8px}.hotel-group-title{font-size:22px;margin:36px 0 20px}.seven{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;counter-reset:recommend}.point{display:grid;grid-template-columns:45px 1fr;gap:12px;padding:25px 0;border-bottom:1px solid var(--line);counter-increment:recommend}.point:before{content:counter(recommend,decimal-leading-zero);font-family:Georgia,serif;font-size:25px;color:var(--gold)}.point p{font-size:14px;color:var(--muted);margin-top:9px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary:after{content:'＋';color:var(--gold);flex-shrink:0}.faq details[open] summary:after{content:'−'}.faq details p{padding:18px 25px 4px 0;color:var(--muted);font-size:14px}.form-box{background:white;border:1px solid var(--line);padding:32px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;min-height:48px;border:1px solid #aabcb3;border-radius:0;background:white;padding:10px 12px;color:var(--ink)}.field.full{grid-column:1/-1}.field textarea{height:100px}.required{font-size:10px;color:#a34d3f;margin-left:8px}.check{display:flex;gap:10px;font-size:13px;margin:22px 0}.check input{width:18px;height:18px;flex-shrink:0;margin-top:4px}.confirmation{margin-top:28px;padding:24px;background:var(--pale)}.confirmation pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:13px}.confirmation .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.footer{padding:55px 0 28px;background:#173e3b;color:#f5f1e6}.footer .contact{padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid #61756b}.footer h2{font-size:28px;margin:0 0 12px}.footer .companies{display:grid;grid-template-columns:1fr 1fr;gap:45px}.footer h3{font-size:14px;margin-bottom:10px}.footer p{font-size:12px}.footer .legal{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;margin-top:30px}.footer .bottom{border-top:1px solid #61756b;margin-top:30px;padding-top:20px;font-size:11px;color:#c5cec3}.printbutton{background:transparent;border:1px solid var(--line);color:var(--ink);padding:7px 12px;font-size:12px}.source-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.source-list figure{background:white;padding:20px;border:1px solid var(--line)}.source-list img{max-height:160px;width:100%;object-fit:contain}.source-list figcaption{font-size:12px;overflow-wrap:anywhere}body{overflow-wrap:break-word}[hidden]{display:none!important}
@media(max-width:850px){.wrap{width:calc(100% - 36px)}.head-inner{min-height:72px}.head nav{gap:13px}.head nav a:not(:last-child){display:none}.brand strong{font-size:16px}.intro{padding:44px 0 30px}.top-collage{grid-template-columns:1.2fr 1fr}.top-collage figure:last-child{display:none}.top-collage img{height:250px}.course-grid,.hotel-grid{grid-template-columns:1fr}.course-card{display:grid;grid-template-columns:35% 1fr}.course-card img{height:100%;min-height:270px}.section{padding:46px 0}.section-head{display:block}.section-head p{margin-top:16px}.hero>img{height:370px}.facts{grid-template-columns:repeat(2,1fr)}.facts>div{padding:18px;border-bottom:1px solid var(--line)}.facts>div:nth-child(2){border-right:0}.facts>div:nth-child(3),.facts>div:nth-child(4){border-bottom:0}.day{grid-template-columns:85px 1fr}.day-number{padding:20px 15px}.day-number b{font-size:32px}.day-content{padding:22px}.meals{grid-template-columns:1fr;gap:8px}.meals p{display:flex;gap:10px}.gallery img{height:240px}.seven{grid-template-columns:1fr}.hotel-card{display:grid;grid-template-columns:34% 1fr}.hotel-card>img{height:100%;object-fit:cover}.hotel-card>.caption{display:none}.hotel-card>.body{grid-column:2}.hotel-card.no-image{display:block}.hotel-card.no-image>.body{display:block}.footer .companies{gap:25px}}
@media(max-width:520px){.head nav .button{padding:8px 13px;font-size:11px}.hero>img{height:290px}.hero-caption{font-size:10px;padding-left:16px}.top-collage img{height:180px}.top-collage figcaption{font-size:10px}.course-card{display:flex}.course-card img{height:210px;min-height:0}.facts b{font-size:14px}.facts span{font-size:11px}.day{display:block}.day-number{display:flex;align-items:center;gap:12px;border-right:0;border-bottom:1px solid var(--line);padding:12px 20px}.day-number b{font-size:25px}.slot{display:block}.slot p{font-size:13px}.slot b{display:block}.day-content{padding:20px}.gallery{grid-template-columns:1fr;gap:20px}.gallery img{height:auto}.hotel-card{display:block}.hotel-card>img{height:220px}.hotel-card>.caption{display:block}.hotel-card>.body{padding:23px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-box{padding:22px 18px}.footer .companies{grid-template-columns:1fr}.source-list{grid-template-columns:1fr}.linknav{gap:15px;font-size:12px}}
@media print{body{background:white;font-size:10pt}.head,.hero,.linknav,.gallery-section,.recommend-section,.faq-section,.form-section,.notice,.printbutton,.footer .legal,.footer .bottom{display:none!important}.wrap{width:100%}.intro,.section{padding:14px 0}.facts{margin:10px 0}.facts>div{padding:8px}.day{break-inside:avoid;grid-template-columns:70px 1fr;margin-bottom:10px}.day-content{padding:12px}.day-number{padding:10px}.slot{margin:0}.meals{margin-top:8px;padding-top:8px}.hotel-grid{display:block}.hotel-card{break-inside:avoid;margin:8px 0;border:0;border-bottom:1px solid #ccc}.hotel-card img,.hotel-card .caption{display:none}.hotel-card .body{padding:8px}.hotel-card .sources,.rating{font-size:8pt}h1{font-size:24pt}h2{font-size:18pt}h3{font-size:12pt}.footer{background:white;color:black;padding:20px 0}.footer .contact{margin:0;padding:0}.footer .companies{gap:20px}a{color:inherit}.note{padding:8px;margin:10px 0}}

.price-panel{margin:30px 0;padding:27px;background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;align-items:center}.price-panel span{font-size:12px}.price-panel strong{display:block;font:36px Georgia,serif;color:#946539;line-height:1.5}.price-panel strong small{font:16px "Meiryo",sans-serif;margin-left:4px}.price-panel>p{grid-column:1/-1;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}.estimate{margin-top:24px;background:var(--pale);padding:20px;white-space:pre-line;font-size:14px}.estimate b{font-size:20px}@media(max-width:650px){.price-panel{grid-template-columns:1fr 1fr;padding:22px;gap:16px}.price-panel>div:first-child{grid-column:1/-1}.price-panel strong{font-size:29px}.price-panel span{font-size:11px}}
.intro h1{text-wrap:balance}.intro h1>span{display:block;text-wrap:balance}

.upgrade-price{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.upgrade-price span,.upgrade-price small{display:block;font-size:11px;color:var(--muted)}.upgrade-price strong{display:block;font-size:22px;color:var(--gold);line-height:1.6}

.price-overview{margin:34px 0;background:#fff;padding:30px;border:1px solid var(--line)}.price-overview h2{font-size:25px;margin:0}.price-overview .fare-table-wrap{margin-top:15px}.price-overview .fare-table td{font-size:20px;color:#946539}.price-overview .fare-table th{background:transparent}.price-overview .fare-table thead th{background:var(--pale)}.price-overview .fare-table tbody th{font-weight:500}.price-overview>p{margin-top:16px}.course-price strong{color:#946539}.course-price small{color:var(--muted)}@media(max-width:650px){.price-overview{padding:20px 14px}.price-overview .fare-table{font-size:11px}.price-overview .fare-table td{font-size:16px}.price-overview .fare-table th,.price-overview .fare-table td{padding:12px 5px}.price-overview h2{font-size:22px}}

.hcm-tagline{padding:14px 0;color:#244946;font-weight:700}.hcm-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:30px}.spa-card{border:1px solid #ded9ce;background:#fff;padding:28px;display:flex;flex-direction:column}.spa-card h3{font-size:1.4rem}.spa-card .eng{font-size:.85rem;color:#6b7169;margin:10px 0}.spa-card .source-links{margin-top:auto;padding-top:20px;display:flex;flex-wrap:wrap;gap:14px}.spa-card p{margin:14px 0}.optional-tag{align-self:flex-start;padding:5px 10px;background:#f2e8d5;color:#71552c;font-size:.8rem;font-weight:700;margin-bottom:18px}.set-menu{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:28px}.set-menu ol{padding-left:1.4em}.set-menu li{padding:7px 0}.hcm-costs{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}.hcm-costs>div{border-top:2px solid #bd9250;padding:20px 0}.bank-panel{background:#f4f1e8;border:1px solid #ddd5c3;padding:25px;margin:25px 0}.bank-panel dl{display:grid;grid-template-columns:6em 1fr;gap:8px 16px;margin:20px 0}.bank-panel dt{color:#5d665f}.bank-panel dd{margin:0;font-weight:700;overflow-wrap:anywhere}.fare-table-wrap{overflow-x:auto;margin-top:25px}.fare-table{border-collapse:collapse;width:100%;font-size:.92rem}.fare-table th,.fare-table td{padding:15px 12px;text-align:left;border-bottom:1px solid #ded9ce}.fare-table th{background:#eae7dc}.fare-table td:not(:first-child){white-space:nowrap}.fare-table td:first-child{min-width:160px}.fare-table caption{text-align:left;margin-bottom:14px;font-size:.85rem}.menu-note{font-size:.86rem;color:#596761}
@media(max-width:800px){.hcm-card-grid,.set-menu,.hcm-costs{grid-template-columns:1fr}.spa-card{padding:24px}.bank-panel{padding:22px 18px}.bank-panel dl{grid-template-columns:5em 1fr;gap:8px}.fare-table th,.fare-table td{padding:12px 8px}}

.experience-options{border:1px solid #d8dfd6;margin:28px 0 0;padding:22px}.experience-options legend{font-weight:700;padding:0 8px}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.experience-card{padding:20px;background:#f8f6ef}.experience-card h3{margin-bottom:10px}.experience-card .field{margin-top:15px}.experience-card .fee{font-weight:700;color:#946539}.experience-card .small{line-height:1.7}.experience-count{margin-top:14px}.photo-label{display:inline-block;background:#e9eee6;padding:3px 12px;font-size:12px;margin-bottom:12px}.reference-photo img{width:100%;height:250px;object-fit:cover}.reference-photo{border:1px solid #d8dfd6;padding:20px;background:white}.reference-photo p{margin:10px 0}.reference-photo .filename{font-size:11px;word-break:break-all;color:#60716b}
@media(max-width:650px){.experience-grid{grid-template-columns:1fr}.experience-options{padding:18px 12px}.experience-card{padding:18px 14px}}
