:root{--ink:#22342e;--muted:#65726b;--green:#355f50;--sage:#e8eee7;--sand:#f5f1e8;--cream:#fbfaf6;--gold:#b88d55;--line:#e1e5dc;--white:#fff;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.8}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.wrap{width:min(1080px,calc(100% - 40px));margin:auto}.topline{height:5px;background:linear-gradient(90deg,var(--green) 0 34%,var(--gold) 34% 67%,#7d8e6b 67%)}
header{background:rgba(251,250,246,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;backdrop-filter:blur(10px)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:600 20px var(--serif);letter-spacing:.05em}.brand small{display:block;font:10px var(--sans);letter-spacing:.2em;color:var(--muted);margin-top:-5px}.navlinks{display:flex;align-items:center;gap:24px;font-size:13px}.navlinks a:hover,.textlink:hover{color:var(--gold)}.navcta{border:1px solid var(--green);padding:7px 14px;color:var(--green)}
.hero{background:var(--sand);min-height:365px;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";position:absolute;border:1px solid #9aac9c55;border-radius:50%;width:390px;height:390px}.hero:before{left:-150px;top:-210px}.hero:after{right:-180px;bottom:-245px}.hero-inner{position:relative;padding:65px 0}.eyebrow{color:var(--gold);letter-spacing:.24em;text-transform:uppercase;font-size:11px;font-weight:600}.hero h1{font:clamp(34px,5vw,55px)/1.5 var(--serif);letter-spacing:.1em;margin:15px 0}.hero p{color:var(--muted);font-size:14px}
section{padding:78px 0}.section-head{text-align:center;margin:0 auto 38px}.section-head h2{font:clamp(27px,3vw,38px) var(--serif);letter-spacing:.08em;margin:7px 0}.section-head p{margin:0;color:var(--muted);font-size:13px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{min-height:220px;background:white;border:1px solid var(--line);padding:28px;display:flex;flex-direction:column;transition:.2s}.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #22342e12}.card .num{font:italic 13px Georgia;color:var(--gold)}.card h3{font:26px var(--serif);letter-spacing:.08em;margin:20px 0 25px}.card .more{margin-top:auto;color:var(--green);font-size:12px;letter-spacing:.08em;border-bottom:1px solid #9eaf9f;width:max-content;padding-bottom:3px}
.pagehero{background:var(--sand);padding:63px 0 55px;text-align:center}.pagehero h1{font:clamp(32px,4vw,46px) var(--serif);letter-spacing:.1em;margin:9px 0}.pagehero p{color:var(--muted);font-size:13px;margin:0}.content{max-width:850px;margin:auto}.content h2{font:28px var(--serif);letter-spacing:.07em;margin:0 0 15px}.content p{color:#59665f;font-size:14px}.policylist{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}.policy{padding:22px;border:1px solid var(--line);background:#fff;display:flex;justify-content:space-between;gap:14px;align-items:center}.policy b{font:18px var(--serif)}.policy span{color:var(--green)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);padding:28px}.panel h2{font:25px var(--serif);margin:0 0 8px}.panel p{color:var(--muted);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border:1px solid var(--green);background:var(--green);color:#fff;font-size:12px;letter-spacing:.08em}.btn.ghost{background:transparent;color:var(--green)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:215px;gap:12px}.gallery img{width:100%;height:100%;object-fit:cover;background:#e8e8df}.gallery img:first-child{grid-column:span 2;grid-row:span 2}.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:25px 0}.fact{padding:15px 12px;font-size:12px;border-right:1px solid var(--line)}.fact:last-child{border:0}.fact b{display:block;color:var(--green);font-size:10px;letter-spacing:.12em}
.reserve{background:var(--sand)}.reserve-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}.reserve-layout h2{font:29px var(--serif);margin:0 0 12px}.reserve-layout p{font-size:13px;color:var(--muted)}.notice{border-left:2px solid var(--gold);padding:11px 14px;background:#ffffff9c;font-size:12px;color:#59665f;margin-top:20px}.formbox{background:white;border:1px solid var(--line);padding:28px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600}.req{color:#986949;font-size:9px;margin-left:5px}.field input,.field select,.field textarea{width:100%;border:1px solid #d9ded5;background:white;padding:10px 11px;border-radius:0}.field textarea{min-height:80px;resize:vertical}.consent{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:var(--muted);margin:17px 0}.consent input{margin-top:5px}.formbox button{width:100%;opacity:.68;cursor:not-allowed}.demo{text-align:center;font-size:10px!important;color:#8a6e46!important;margin:9px 0 0}
.footer{padding:28px 0;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.footerrow{display:flex;justify-content:space-between;gap:18px;align-items:center}.footlinks{display:flex;gap:18px;flex-wrap:wrap}.copyright{text-align:center;border-top:1px solid var(--line);margin-top:20px;padding-top:14px;font-size:10px}
@media(max-width:760px){.wrap{width:calc(100% - 32px)}.nav{height:64px}.navlinks{gap:12px;font-size:11px}.navlinks a:nth-child(2){display:none}.hero{min-height:330px}.cards{grid-template-columns:1fr}.card{min-height:160px}.card h3{margin:12px 0 17px}.split,.reserve-layout{grid-template-columns:1fr;gap:18px}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.gallery img:first-child{grid-column:span 2;grid-row:span 1}.facts{grid-template-columns:1fr 1fr}.fact:nth-child(2){border-right:0}.fact:nth-child(-n+2){border-bottom:1px solid var(--line)}.policylist{grid-template-columns:1fr}.footerrow{align-items:flex-start;flex-direction:column}section{padding:58px 0}}
@media(max-width:420px){.navlinks a:nth-child(1){display:none}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.navcta{padding:6px 9px}}

.card-image{display:block;width:100%;height:138px;object-fit:cover;margin:0 0 17px;background:var(--sage)}.page-visual{width:min(1080px,calc(100% - 40px));margin:-13px auto 8px;overflow:hidden;background:var(--sage);border:1px solid var(--line)}.page-visual img{display:block;width:100%;height:260px;object-fit:cover}.page-visual.lodging img{height:320px;object-fit:cover}@media(max-width:760px){.card-image{height:180px}.page-visual img{height:190px}.page-visual.lodging img{height:210px}}

.stay-highlights{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.stay-highlights>div{padding:18px;border:1px solid var(--line);background:#fff}.stay-highlights b,.stay-highlights span{display:block}.stay-highlights b{font:17px var(--serif);margin-bottom:7px}.stay-highlights span{font-size:12px;line-height:1.8;color:var(--muted)}@media(max-width:760px){.stay-highlights{grid-template-columns:1fr}}

.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-form{max-width:760px;margin:auto}.contact-form button{width:100%;opacity:1;cursor:pointer}

.company-table-wrap{margin:25px 0}.company-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}.company-table th,.company-table td{padding:15px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:13px}.company-table th{width:180px;color:var(--green);font-weight:600;background:#f5f7f2;white-space:nowrap}.company-note{margin-top:24px}@media(max-width:600px){.company-table th,.company-table td{padding:12px;font-size:12px}.company-table th{width:105px;white-space:normal}}

.price-simple{max-width:700px;margin:auto;background:#fff;border:1px solid var(--line);padding:26px}.price-simple table{width:100%;border-collapse:collapse}.price-simple th,.price-simple td{padding:15px;border-bottom:1px solid var(--line);text-align:left}.price-simple th{color:var(--green);background:#f5f7f2}.price-simple p{font-size:13px;color:var(--muted);margin:17px 0 0}.price-simple .smallnote{font-size:11px;padding-top:10px;border-top:1px solid var(--line)}
