:root{--ink:#1f1f1f;--muted:#8c96a9;--paper:#f7f7f7;--line:#c1c1c1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.9 'Noto Sans JP','Hiragino Sans','Yu Gothic',Meiryo,sans-serif;letter-spacing:.05em}body.lock{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}button{cursor:pointer}img{max-width:100%;display:block}button{color:inherit}h1,h2,h3,h4,p{margin:0 0 24px}h1,h2,h3,h4{font-weight:400}.serif,.en{font-family:Georgia,'Times New Roman','Yu Mincho',serif}.container{max-width:1140px;margin:auto;padding:0 30px}.skip{position:fixed;left:20px;top:-100px;z-index:9999;background:white;padding:12px}.skip:focus{top:12px}.header{height:90px;position:fixed;inset:0 0 auto;z-index:1000;display:flex;align-items:center;gap:30px;padding:0 30px;color:white;transition:background .35s,color .35s}.header.solid{background:rgba(255,255,255,.97);color:var(--ink);box-shadow:0 1px 0 #eee}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;letter-spacing:1px;font-size:15px}.brand svg{width:40px;height:42px}.desktop-nav{display:flex;gap:27px;margin-left:auto;align-items:center;font-size:14px}.desktop-nav a{position:relative}.desktop-nav a:after{content:'';position:absolute;bottom:-8px;left:0;width:0;height:1px;background:currentColor;transition:width .3s}.desktop-nav a:hover:after{width:100%}.contact-nav{border:1px solid #ffffff80;padding:12px 24px}.solid .contact-nav{border-color:var(--line)}.hamburger{display:none;width:40px;height:40px;border:0;background:none;padding:7px;position:relative}.hamburger span{height:2px;background:currentColor;display:block;margin:6px 0;transition:.3s}.hamburger[aria-expanded=true] span:first-child{transform:translateY(8px) rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:last-child{transform:translateY(-8px) rotate(-45deg)}.drawer{position:fixed;inset:0;background:#f7f7f7;z-index:900;overflow:auto;padding:130px max(8vw,30px) 60px;display:none}.drawer.open{display:block}.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 80px;max-width:1000px;margin:auto}.drawer-group>a{font-size:25px;display:block;border-bottom:1px solid #ddd;padding-bottom:15px}.drawer-group small{display:block;color:#666;margin:15px 0}.drawer-group small a{display:block;padding:3px 0}.rail{position:fixed;right:0;top:30%;z-index:700;display:grid;gap:10px}.rail a,.rail button{writing-mode:vertical-rl;text-orientation:upright;border:1px solid #fff9;background:#303030b8;color:white;width:52px;min-height:104px;display:flex;align-items:center;justify-content:center;padding:8px;font-size:12px;letter-spacing:3px}.rail a:hover,.rail button:hover{background:#111}.hero{height:100svh;min-height:600px;position:relative;display:grid;place-items:center;color:#fff;overflow:hidden;background:#31495c}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(#162e3b22,#0005),url('/assets/hero.png') center/cover;animation:hero-in 2s ease-out both}.hero-copy{position:relative;text-align:center;padding:40px;width:100%}.hero h1{font-size:clamp(21px,2.55vw,38px);letter-spacing:4px;line-height:1.5;white-space:nowrap;margin:0 0 12px}.hero p{font-size:clamp(17px,2.45vw,36px);letter-spacing:9px;margin:0}.hero .scroll{position:absolute;bottom:35px;font-size:11px;letter-spacing:3px;left:40px;writing-mode:vertical-rl}.hero .scroll:after{content:'';display:inline-block;width:1px;height:65px;background:#fff8;margin-top:15px}.asset-note{position:absolute;bottom:12px;right:18px;font-size:10px;letter-spacing:.03em;color:#fff9}.section{padding:100px 0}.about{padding:120px 0 200px}.about-grid{display:grid;grid-template-columns:40% 46%;justify-content:space-between;align-items:center;gap:6%}.photo{position:relative;overflow:hidden;background:#dce1e3;min-height:300px}.photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s}.photo:hover img{transform:scale(1.035)}.photo .caption{position:absolute;bottom:12px;left:15px;font-size:10px;background:#ffffffb8;color:#555;padding:2px 8px}.about .photo{height:610px}.eyebrow{color:var(--muted);font-size:14px;margin-bottom:20px;letter-spacing:1.2px}.about h2{font-size:27px;line-height:1.8}.about p{line-height:2.2;margin:28px 0 35px;color:#646464}.btn{border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;gap:55px;min-width:210px;padding:15px 28px;background:transparent;font-size:15px;transition:.3s;line-height:1.8}.btn:after{content:'⟶';font-family:Arial,sans-serif}.btn:hover{background:#1f1f1f;color:white;border-color:#1f1f1f}.title{text-align:center;position:relative;line-height:1.5;margin-bottom:45px}.title h2{font:400 42px/1.4 Georgia,'Yu Mincho',serif;letter-spacing:3px;margin-bottom:10px}.title p{color:var(--muted);font-size:13px;letter-spacing:2px}.service-intro{max-width:950px;text-align:center;margin:0 auto 65px;padding:0 30px;color:#646464}.service-row{display:grid;grid-template-columns:55% 45%;margin-bottom:150px;min-height:510px;scroll-margin-top:100px}.service-row.reverse{grid-template-columns:45% 55%}.service-row.reverse .photo{order:2}.service-row .photo{min-height:510px}.service-content{max-width:440px;margin:auto;padding:60px 30px}.service-content h3{font-size:23px;line-height:1.7;margin-top:25px}.service-content .en{font-size:28px;letter-spacing:1.2px;margin-bottom:4px;line-height:1.5}.service-content .ja{color:var(--muted);font-size:12px}.service-content p{color:#646464;line-height:2}.service-number{font:400 65px/1 Georgia,serif;color:#c6ccd2;margin-bottom:12px}.service-page .service-row{margin-bottom:0;background:white}.service-page .service-content{max-width:600px;padding:75px 50px}.service-page .photo{min-height:640px}.properties-section{padding:60px 0 110px;background:white}.slider{display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 max(30px,calc((100vw - 1140px)/2));}.slider::-webkit-scrollbar{display:none}.property-card{min-width:0}.slider .property-card{flex:0 0 350px;scroll-snap-align:center}.property-card .photo{min-height:0;height:270px}.property-card h3{font-size:18px;margin:20px 0 6px}.category{font-size:12px;color:var(--muted)}.slider-controls{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:35px}.slider-controls button{border:0;background:none;padding:10px}.dots{display:flex;gap:9px}.dots button{width:6px;height:6px;padding:0;border-radius:100%;background:#d0d0d0}.dots button.active{background:#333}.recruit-band{display:grid;grid-template-columns:1fr 1fr;background:#f3f3f3}.recruit-copy{max-width:550px;margin:auto;padding:90px 45px}.recruit-copy .title{text-align:left}.recruit-copy p{font-size:18px;color:#646464;line-height:2}.recruit-links{display:grid;grid-template-columns:1fr 1fr;gap:25px}.recruit-links a{border-bottom:1px solid #aaa;padding:15px 0}.recruit-links a span{display:block;font-family:Georgia,serif;font-size:13px;color:#89929d}.recruit-band .photo{height:100%}.contact-block{text-align:center;padding:100px 30px;background:#f7f7f7}.contact-block p{color:#646464}.contact-block address{font-style:normal;margin:28px 0 36px;font-size:14px;line-height:2}.footer{padding:70px 0 25px;background:white;font-size:13px;color:#646464}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.footer .brand{color:#333;margin-bottom:25px}.footer nav{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px;align-content:start}.footer nav a:hover{text-decoration:underline}.footer-bottom{margin-top:45px;padding-top:20px;border-top:1px solid #eee;display:flex;justify-content:space-between;gap:25px;font-size:11px}.top-button{border:0;background:none}.page-head{padding:160px 0 80px;min-height:410px;position:relative;overflow:hidden}.page-head:before{content:attr(data-shadow);position:absolute;top:40px;left:0;font:400 clamp(80px,13vw,180px)/1.5 'Yu Mincho',Georgia,serif;color:#f0f0f0;white-space:nowrap;pointer-events:none}.page-head .container{position:relative}.page-head h1{font:400 52px/1.4 'Yu Mincho',Georgia,serif;margin-bottom:10px}.page-head .en{font-size:18px;color:#646464;letter-spacing:1px}.breadcrumb{text-align:right;margin-top:65px;font:12px Georgia,serif;letter-spacing:.06em}.breadcrumb span{margin:0 12px;color:#999}.page-content{background:white;padding:80px 0 110px}.narrow{max-width:900px;margin:auto;padding:0 30px}.overview{border-collapse:collapse;width:100%;margin:35px 0 50px}.overview th,.overview td{padding:25px 20px;border-bottom:1px solid #ddd;text-align:left;vertical-align:top;font-weight:400;line-height:2;white-space:pre-line}.overview th{width:25%;background:#f8f8f8}.message{line-height:2.4;color:#646464;margin-bottom:80px}.message p{margin-bottom:30px}.property-layout{display:grid;grid-template-columns:1fr 220px;gap:65px}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.property-grid .photo{height:230px}.filter-list{display:grid;align-content:start;gap:12px}.filter-list h2{font-size:18px;padding-bottom:15px;border-bottom:1px solid #ccc}.filter-list button{background:none;border:0;border-bottom:1px solid #eee;text-align:left;padding:12px 5px;color:#646464}.filter-list button.active{color:#111;border-color:#111}.pagination{display:flex;gap:10px;justify-content:center;margin-top:50px}.pagination button{background:white;border:1px solid #ddd;padding:8px 15px}.pagination .active{background:#333;color:#fff}.news-row{display:grid;grid-template-columns:140px 1fr 30px;border-bottom:1px solid #ddd;padding:27px 0;align-items:center;gap:20px}.news-row:hover{color:#8c96a9}.news-row time{font-family:Georgia,serif;color:#777}.detail-photo{height:480px;margin:30px 0}.detail-photo img{width:100%;height:100%;object-fit:cover}.form-intro{text-align:center;margin-bottom:45px;color:#646464}.demo-note{border-left:2px solid #8c96a9;background:#f7f7f7;padding:14px 20px;font-size:12px;color:#646464;margin-bottom:35px}.field{display:grid;grid-template-columns:220px 1fr;gap:25px;padding:25px 0;border-bottom:1px solid #ddd;align-items:start}.field>label,.field>span{padding-top:10px}.required{color:#a65f49;margin-left:7px}.field input:not([type=checkbox]),.field select,.field textarea{border:1px solid #ddd;background:#fafafa;width:100%;padding:12px;min-height:48px;border-radius:0}.field textarea{min-height:180px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#8996a9;outline:1px solid #8996a9}.agree{text-align:center;margin:35px 0}.agree input{width:17px;height:17px;vertical-align:middle;margin-right:10px}.agree a{text-decoration:underline}.form-actions{text-align:center}.confirmation{margin:40px 0}.confirmation dd{overflow-wrap:anywhere;white-space:pre-line;margin:0;padding:15px 0;border-bottom:1px solid #ddd}.confirmation dt{color:#8993a4;margin-top:20px}.hidden{display:none!important}.privacy-copy h3{font-size:20px;margin-top:35px}.privacy-copy p{line-height:2;color:#646464}.empty{padding:50px;text-align:center;color:#777}.fade{animation:fade-in .8s ease both}@keyframes fade-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes hero-in{from{transform:scale(1.08)}to{transform:scale(1)}}
@media(min-width:1440px){.header{height:100px}.brand{font-size:17px}.desktop-nav{gap:30px}}
@media(max-width:1199px){.desktop-nav{gap:17px;font-size:12px}.brand{font-size:13px}.header{gap:20px}.contact-nav{padding:10px 15px}}
@media(max-width:991px){.header{height:55px;padding:0 20px}.desktop-nav{display:none}.hamburger{display:block;margin-left:auto}.brand{font-size:12px}.brand svg{width:36px;height:38px}.hero{min-height:500px}.hero-copy{padding-bottom:110px}.hero h1{white-space:normal;font-size:28px}.hero p{font-size:24px;letter-spacing:5px}.about{padding:100px 0}.about-grid{display:block;max-width:560px;margin:auto}.about .photo{height:480px;width:80%;margin:auto}.about-copy{padding-top:65px}.service-row,.service-row.reverse{display:flex;flex-direction:column;margin-bottom:30px}.service-row.reverse .photo{order:0}.service-row .photo{min-height:0;height:auto;aspect-ratio:1.8;width:calc(100% - 30px)}.service-row.reverse .photo{margin-left:auto}.service-content{max-width:440px;padding:70px 30px}.service-page .service-content{max-width:600px;padding:65px 40px}.service-page .photo{min-height:0}.recruit-band{display:block}.recruit-band>.photo{height:370px}.recruit-copy{max-width:550px;padding:80px 30px}.page-head{padding:135px 0 75px;min-height:400px}.page-head h1{font-size:52px}.property-layout{grid-template-columns:1fr;gap:40px}.filter-list{grid-row:1;display:flex;flex-wrap:wrap;gap:10px}.filter-list h2{display:none}.filter-list button{padding:10px 12px}.property-grid .photo{height:240px}}
@media(max-width:575px){body{font-size:14px}.container,.narrow{padding:0 22px}.hero{height:calc(100svh - 78px);min-height:480px}.hero h1{font-size:17px;letter-spacing:1px;line-height:2;white-space:nowrap}.hero p{font-size:16px;letter-spacing:2px}.hero-copy{padding:20px 10px 90px}.hero .scroll{left:22px;bottom:25px}.rail{top:auto;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0}.rail a,.rail button{writing-mode:horizontal-tb;width:100%;min-height:0;height:50px;letter-spacing:1px;border:1px solid #ffffff55;font-size:11px}.asset-note{bottom:12px;font-size:9px}.about{padding:75px 0 90px}.about .photo{height:370px}.about h2{font-size:23px}.about p{font-size:14px}.section{padding:70px 0}.title h2{font-size:34px}.service-intro{text-align:left;padding:0 22px}.service-content{padding:50px 25px}.service-content h3{font-size:21px}.service-content .en{font-size:25px}.service-number{font-size:48px}.service-page .service-content{padding:50px 25px}.slider .property-card{flex-basis:80vw}.slider{padding:0 22px;gap:22px}.slider .photo{height:240px}.recruit-band>.photo{height:270px}.recruit-copy p{font-size:16px}.contact-block{padding:70px 22px}.footer{padding:55px 0 65px}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-bottom{flex-direction:column;gap:10px}.page-head{padding:110px 0 55px;min-height:310px}.page-head h1{font-size:36px}.page-head:before{top:65px;font-size:95px}.breadcrumb{margin-top:40px}.page-content{padding:55px 0 75px}.property-grid{grid-template-columns:1fr;gap:35px}.property-grid .photo{height:270px}.field{grid-template-columns:1fr;gap:10px;padding:20px 0}.field>label,.field>span{padding:0}.overview th,.overview td{padding:17px 12px}.overview th{width:30%}.news-row{grid-template-columns:1fr 20px;gap:7px;padding:22px 0}.news-row time{grid-column:1/-1;font-size:12px}.drawer-grid{grid-template-columns:1fr;gap:20px}.drawer{padding:95px 30px 80px}.drawer-group>a{font-size:21px}.detail-photo{height:300px}.detail-title{font-size:24px}.filter-list{gap:3px}.filter-list button{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{animation:none!important;transition:none!important}}
@media(min-width:576px) and (max-width:991px){.hero h1{font-size:clamp(19px,3.1vw,28px);white-space:nowrap;letter-spacing:1px}.hero p{font-size:clamp(18px,3vw,24px);letter-spacing:4px}}
.gallery-buttons{display:flex;gap:15px;margin-bottom:35px}.gallery-buttons button{padding:10px 18px;border:1px solid #ccc;background:white}.gallery-buttons button.active{background:#333;color:white}.property-body{padding:15px 0 50px}.property-body h3{font-size:18px;border-bottom:1px solid #ddd;padding:15px 0;margin-top:25px}.property-body p{line-height:2;margin-bottom:15px}.detail-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}
.hero-copy{min-width:0}.hero p{font-weight:400}
@media(max-width:575px){.hero h1{font-size:clamp(12px,4.25vw,17px);letter-spacing:.5px}.hero p{font-size:clamp(12px,4.1vw,16px);letter-spacing:1.3px}}
@media(max-width:360px){.page-head h1{font-size:30px}.hero p{letter-spacing:1px}}
@media(max-width:991px){.service-content{width:100%;min-width:0}.service-content .en{overflow-wrap:anywhere}}
