/* HIRO'S ROOM SEARCH — responsive website. No remote fonts or libraries. */
:root{--navy:#071b34;--deep:#041326;--blue:#102d4c;--cream:#f7f5ef;--paper:#fffefa;--sand:#eeece5;--gold:#ac793f;--light-gold:#dfbc88;--ink:#152c42;--muted:#65737b;--rule:#18314726;--gutter:clamp(24px,5.6vw,90px);--wrap:1280px;--ease:cubic-bezier(.22,1,.36,1);--sans:'Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic',YuGothic,'Noto Sans CJK JP',Meiryo,sans-serif;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px;scrollbar-gutter:auto}body{margin:0;background:var(--cream);color:var(--ink);font:15px/2 var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:600}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}a,button{-webkit-tap-highlight-color:transparent}svg{display:block;width:25px;height:21px;flex-shrink:0}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:5px}::selection{background:var(--light-gold);color:var(--deep)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:14px;left:14px;background:white;padding:10px 20px;z-index:999;transform:translateY(-180%)}.skip-link:focus{transform:none}.wrap{width:min(var(--wrap),calc(100% - var(--gutter)*2));margin-inline:auto}.section{padding-block:clamp(80px,8.5vw,128px)}h2{font:600 clamp(29px,3.25vw,47px)/1.65 var(--serif);letter-spacing:.015em}h2 em{font-style:normal;color:var(--gold)}.eyebrow{color:var(--gold);font:600 12px/1.7 Arial,sans-serif;letter-spacing:.23em;margin-bottom:24px;display:flex;gap:13px;align-items:center}.eyebrow:before{content:'';width:30px;height:1px;background:currentColor}.eyebrow.small{font-size:12px;letter-spacing:.18em;gap:0;margin-bottom:13px}.eyebrow.small:before{display:none}.section-heading{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:51px}.section-heading>*:not(.section-no){z-index:1;position:relative}.section-intro{font-size:13px;line-height:2.1;color:var(--muted);padding-bottom:5px}.section-no{position:absolute;right:-2px;top:-51px;color:#102c4908;font:italic 170px/1 Georgia,serif;pointer-events:none}.dark{background:var(--navy);color:var(--cream)}.dark .eyebrow{color:var(--light-gold)}.dark .section-intro{color:#b1bfca}.dark .section-no{color:#ffffff06}.photo{position:relative;overflow:hidden;background:var(--blue);isolation:isolate}.photo img{object-position:var(--photo-pos,50% 50%);transition:transform 1s var(--ease)}.photo:hover img{transform:scale(1.025)}.photo-expand{position:absolute;right:12px;top:12px;z-index:4;width:40px;height:40px;place-items:center;color:#fff;border:1px solid #ffffff88;background:#04132655;border-radius:50%;transition:background .25s,transform .25s}.photo-expand:hover{background:#041326cc;transform:scale(1.05)}.photo-expand svg{width:20px;height:20px}.js-control{display:none}.js .photo-expand{display:grid}.js .carousel-controls{display:flex}.text-link{display:inline-flex;gap:32px;align-items:center;border-bottom:1px solid var(--rule);padding:4px 0 12px;font-size:12px;transition:gap .3s}.text-link:hover{gap:42px}.line-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:64px;padding:17px 25px;background:#06c755;color:white;border:1px solid #06c755;border-radius:3px;font-weight:600;font-size:14px;white-space:nowrap;box-shadow:0 8px 25px #00000010;transition:transform .3s var(--ease),background .3s,box-shadow .3s}.line-button .chat{width:26px;height:26px}.line-button svg:last-of-type{margin-left:15px;transition:transform .3s}.line-button:hover{background:#05b34c;transform:translateY(-3px);box-shadow:0 12px 30px #001b2533}.line-button:hover svg:last-of-type{transform:translateX(4px)}
/* Navigation */
.site-header{position:fixed;inset:0 0 auto;z-index:60;height:88px;background:linear-gradient(#04132699,#04132616);color:#fff;border-bottom:1px solid #ffffff26;transition:background .35s,box-shadow .35s,backdrop-filter .35s}.site-header.is-scrolled{background:#071b34ed;backdrop-filter:blur(16px);box-shadow:0 5px 22px #00132612}.header-inner{height:100%;margin-inline:var(--gutter);display:flex;align-items:center;gap:30px}.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:47px;height:47px;border-radius:50%}.brand>span{font:500 20px/1.45 var(--serif);letter-spacing:.035em}.brand small{display:block;font:12px/1.8 Arial,sans-serif;letter-spacing:.16em;color:#c2c9d2;margin-top:3px}.desktop-nav{display:flex;align-items:center;gap:25px;margin-left:auto;font-size:12px}.desktop-nav a{position:relative;white-space:nowrap}.desktop-nav a:after{content:'';position:absolute;bottom:-7px;left:0;right:0;height:1px;background:var(--light-gold);transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}.header-contact{display:flex;align-items:center;gap:10px;border:1px solid #06c755;padding:11px 14px;font-size:12px;white-space:nowrap;background:#06c755;color:#fff}.header-contact .chat{width:20px;height:20px;color:#fff}.header-contact>svg:last-child{width:19px;height:17px}.header-contact:hover{background:#05b34c}.scroll-progress{position:absolute;bottom:-1px;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--light-gold)}.menu-toggle{margin-left:auto;width:44px;height:44px;position:relative}.menu-toggle span{position:absolute;left:9px;right:9px;top:17px;height:1px;background:white}.menu-toggle span+span{top:25px;left:16px}.mobile-menu{margin:0 0 0 auto;max-height:none;max-width:none;height:100dvh;width:min(470px,100%);border:0;padding:29px 30px 35px;color:var(--ink);background:var(--cream);overscroll-behavior:contain}.mobile-menu::backdrop,.photo-viewer::backdrop{background:#020d1dcc;backdrop-filter:blur(9px)}.menu-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:37px}.mobile-menu .brand small{color:var(--muted)}.menu-close,.viewer-close{width:44px;height:44px;font:32px/1 var(--sans);flex-shrink:0}.mobile-menu nav{display:flex;flex-direction:column;border-top:1px solid var(--rule);margin-bottom:29px}.mobile-menu nav>a{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--rule);min-height:57px;font:500 19px/1.5 var(--serif)}.mobile-menu nav small{font:8px Arial,sans-serif;letter-spacing:.12em;color:var(--gold);margin-left:auto}.mobile-menu nav svg{width:19px;height:17px}.mobile-menu .line-button{width:100%}.menu-note{font-size:12px;color:var(--muted);margin-top:18px;line-height:2}
/* First view */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(1000px,max(865px,100svh));padding:160px 0 142px;display:flex;align-items:center;background:var(--deep);color:white}.hero-photo{position:absolute;inset:-3% -2% -3% 35%;z-index:-3;transform:translateY(var(--hero-shift,0px)) scale(1.04)}.hero-photo img{object-position:70% 52%;animation:hero-image-in 2.1s var(--ease) both}.hero-photo:hover img{transform:none}.hero-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#041326 0%,#041326f7 24%,#041326c4 41%,#04132628 70%,#04132610),linear-gradient(0deg,#041326e6 0%,transparent 36%,transparent 80%,#04132677)}.hero-copy{width:59%;max-width:690px}.hero .eyebrow{color:var(--light-gold);font-size:12px;margin-bottom:18px}.hero-service{font-size:12px;letter-spacing:.14em;color:#d4dce4;margin-bottom:20px}.hero h1{font:600 clamp(48px,4.85vw,75px)/1.5 var(--sans);letter-spacing:.005em}.hero h1 em{color:var(--light-gold);font-style:normal}.hero-description{font-size:14px;line-height:2.15;color:#dbe1e7;margin:24px 0 27px}.hero .line-button{min-width:332px}.hero-fine{font-size:12px;color:#b8c5d1;margin-top:13px;letter-spacing:.02em}.hero-more{display:inline-flex;align-items:center;gap:20px;margin-top:24px;font-size:12px;color:#d3dde6;border-bottom:1px solid #ffffff38;padding-bottom:7px}.hero-more svg{width:20px;height:17px}.hero-caption{position:absolute;right:var(--gutter);bottom:145px;text-align:right}.hero-caption span{font:italic 18px/1.5 Georgia,serif;color:#f4ddbe}.hero-caption p{font:500 26px/1.9 var(--serif);letter-spacing:.12em;margin-top:12px;text-shadow:0 3px 18px #0008}.hero-bottom{position:absolute;bottom:28px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff36;padding-top:23px}.hero-bottom>p{display:flex;gap:23px;color:#d0d9e2;font-size:12px;letter-spacing:.14em}.hero-bottom>p span+span{padding-left:23px;border-left:1px solid #ffffff36}.scroll-guide{display:flex;align-items:center;gap:18px;color:#c8d1da;font:8px Arial,sans-serif;letter-spacing:.15em}.scroll-guide span{height:32px;width:1px;background:#ffffff38;overflow:hidden;position:relative}.scroll-guide span:after{content:'';position:absolute;inset:0;background:var(--light-gold);animation:scroll-line 2.4s ease-in-out infinite}
/* About */
.about-grid{display:grid;grid-template-columns:1fr .97fr;gap:clamp(44px,7vw,106px);align-items:center}.about-visual{position:relative;padding:0 24px 24px 0}.about-visual:after{content:'';position:absolute;inset:24px 0 0 24px;border:1px solid #b0855066;z-index:-1}.about-main{aspect-ratio:4/4.95}.about-main img{object-position:35% 50%}.about-word{position:absolute;left:28px;bottom:57px;color:white;font:italic 37px/1.2 Georgia,serif;z-index:4;text-shadow:0 2px 10px #0008}.about-copy h2{font-size:clamp(28px,2.9vw,42px)}.about-copy>p:not(.eyebrow){font-size:13px;line-height:2.2;color:var(--muted);margin-top:21px;max-width:470px}.about-copy .about-intro{font-size:15px!important;color:var(--ink)!important}.about-copy .about-promise{border-top:1px solid var(--rule);padding-top:22px;font-weight:600;color:var(--ink)!important;font-size:13px}.about-copy .text-link{margin-top:24px}
/* Concerns */
.concerns{background:var(--sand)}.concern-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.concern-card{min-width:0;background:var(--paper)}.concern-card .photo{aspect-ratio:4/3.4}.concern-copy{padding:20px 19px 26px}.item-no{display:block;font:italic 17px Georgia,serif;color:var(--gold);margin-bottom:10px}.concern-copy h3{font-size:16px;line-height:1.85;font-weight:600}.concern-copy p{font-size:12px;line-height:2;color:var(--muted);margin-top:12px}
/* Lifestyle gallery */
.recommended{overflow:hidden}.recommend-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;padding-bottom:12px}.recommend-track::-webkit-scrollbar{display:none}.recommend-card{flex:0 0 calc((100% - 48px)/3.15);min-width:0;scroll-snap-align:start}.recommend-card .photo{aspect-ratio:4/4.65}.recommend-copy{padding-top:24px}.recommend-copy h3{font:500 24px/1.8 var(--serif)}.recommend-copy>p:last-child{font-size:12px;color:#b7c5d0;line-height:2;margin-top:12px}.carousel-footer{display:flex;align-items:center;gap:23px;margin-top:28px}.gallery-line{height:1px;background:#ffffff25;flex:1;overflow:hidden}.gallery-line span{width:20%;height:1px;background:var(--light-gold);display:block;transition:width .25s,transform .3s}.carousel-status{font:10px Arial,sans-serif;letter-spacing:.07em;min-width:82px;color:#d0d9e1}.carousel-controls{gap:10px}.carousel-controls button{height:45px;width:45px;border:1px solid #ffffff66;border-radius:50%;display:grid;place-items:center;transition:opacity .25s,background .25s}.carousel-controls button:hover{background:#ffffff15}.carousel-controls button:disabled{opacity:.25;cursor:default}.carousel-controls svg{width:21px}.carousel-prev svg{transform:rotate(180deg)}
/* Reasons */
.reason-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:51px 40px}.reason-card{min-width:0}.reason-card .photo{aspect-ratio:16/9.3}.reason-card:nth-child(3) .photo{--photo-pos:35% 50%!important}.reason-copy{display:grid;grid-template-columns:44px 1fr;gap:21px;margin-top:23px}.reason-no{font:italic 33px/1.35 Georgia,serif;color:var(--gold)}.reason-copy h3{font:600 26px/1.65 var(--serif)}.reason-copy p{font-size:13px;color:var(--muted);line-height:2.15;margin-top:15px;max-width:455px}
/* Mid-page CTA */
.bridge{min-height:365px;padding-block:67px;display:flex;align-items:center;position:relative;overflow:hidden;isolation:isolate;color:white;background:var(--deep)}.bridge-photo{position:absolute;inset:0;z-index:-3}.bridge-photo img{object-position:50% 57%}.bridge:after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#041326e8,#041326bc 47%,#04132670)}.bridge-inner{display:flex;align-items:center;justify-content:space-between;gap:45px}.bridge .eyebrow{color:var(--light-gold);margin-bottom:15px}.bridge h2{font-size:34px;line-height:1.75}.bridge .line-button{flex-shrink:0}
/* Services */
.service-list{border-top:1px solid var(--rule)}.service-row{display:grid;grid-template-columns:65px .95fr 1.05fr;gap:42px;align-items:center;padding-block:35px;border-bottom:1px solid var(--rule)}.service-no{align-self:start;padding-top:5px;font:italic 37px/1 Georgia,serif;color:var(--gold)}.service-row .photo{aspect-ratio:16/10.5}.service-copy{padding-left:20px}.service-copy h3{font:600 29px/1.7 var(--serif)}.service-copy>p:not(.eyebrow){font-size:13px;line-height:2.15;color:var(--muted);margin-top:16px;max-width:380px}.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.service-tags span{font-size:12px;color:#526779;border:1px solid var(--rule);padding:3px 11px}
/* Flow */
.flow{background:var(--sand)}.flow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}.step{min-width:0}.step-no{display:flex;align-items:center;gap:10px;font:8px Arial,sans-serif;letter-spacing:.1em;color:var(--gold);margin-bottom:18px}.step-no strong{font:italic 25px Georgia,serif;letter-spacing:0}.step-no:after{content:'';height:1px;background:#ac793f66;flex:1}.step .photo{aspect-ratio:4/3.3}.step-copy h3{font-size:17px;line-height:1.8;margin:19px 0 10px}.step-copy p{font-size:12px;line-height:2;color:var(--muted)}.flow-note{margin-top:34px;padding-top:21px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted);line-height:2}
/* Pre-consultation questions; not testimonials */
.before-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 45px}.before-item{display:grid;grid-template-columns:104px 1fr;gap:23px;align-items:center;border-top:1px solid #ffffff26;padding-block:24px;min-width:0}.before-item .photo{height:115px}.before-item h3{font:500 19px/1.85 var(--serif)}.before-item p{font-size:12px;color:#b7c5d0;line-height:2;margin-top:8px}
/* FAQ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:start;gap:clamp(40px,7vw,106px)}.faq-visual{position:sticky;top:120px}.faq-photo{aspect-ratio:4/5.5}.faq-visual:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#041326d6);pointer-events:none}.faq-photo-copy{position:absolute;left:28px;bottom:40px;right:25px;color:#fff;font:500 26px/1.9 var(--serif);z-index:4}.faq-content .section-heading{margin-bottom:30px}.faq-list{border-top:1px solid var(--rule)}.faq-list details{border-bottom:1px solid var(--rule)}.faq-list summary{list-style:none;display:grid;grid-template-columns:28px 1fr 20px;gap:17px;align-items:center;font-size:14px;font-weight:500;padding:25px 0;cursor:pointer;line-height:1.95}.faq-list summary::-webkit-details-marker{display:none}.faq-q{font:italic 26px Georgia,serif;color:var(--gold)}.faq-list summary i{width:18px;height:18px;position:relative}.faq-list summary i:before,.faq-list summary i:after{content:'';position:absolute;left:1px;right:1px;top:8px;height:1px;background:var(--gold);transition:transform .3s}.faq-list summary i:after{transform:rotate(90deg)}.faq-list details[open] summary i:after{transform:rotate(0)}.faq-answer{display:grid;grid-template-columns:28px 1fr;gap:17px;padding:0 28px 25px 0;color:var(--muted);font-size:13px;line-height:2.1}.faq-answer>span{font:italic 24px Georgia,serif}.faq-answer a{color:var(--ink);border-bottom:1px solid var(--gold)}.faq-list details[open] .faq-answer{animation:answer-in .3s ease-out}
/* Contact and footer */
.contact{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:740px;padding-block:112px;background:var(--deep);color:white}.contact-photo{position:absolute;inset:0;z-index:-3}.contact-photo img{object-position:70% 50%}.contact:after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#041326ed 0%,#041326c9 25%,#04132676 54%,#04132615),linear-gradient(0deg,#041326b5,transparent 50%)}.contact-copy{max-width:830px}.contact .eyebrow{color:var(--light-gold)}.contact h2{font-size:clamp(33px,3.6vw,53px);line-height:1.8;letter-spacing:.015em}.contact h2 em{color:var(--light-gold)}.contact-copy>p:not(.eyebrow){font-size:14px;line-height:2.25;color:#d1dbe4;margin:25px 0 30px}.contact-copy>small{display:block;margin-top:15px;font-size:12px;color:#bfcbd5}.footer{background:var(--deep);color:#b5c2ce;padding:51px 0 35px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-bottom:30px;border-bottom:1px solid #ffffff26}.footer .brand{color:white}.footer nav{display:flex;gap:23px;flex-wrap:wrap;font-size:12px;margin-left:auto}.footer nav a:hover{color:var(--light-gold)}.back-top{width:44px;height:44px;border:1px solid #ffffff55;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.back-top svg{transform:rotate(-90deg);width:19px;height:18px}.footer-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;padding-top:26px}.footer-bottom p{font-size:12px;line-height:2.1;max-width:830px;color:#93a6b7}.footer-bottom>small{font:8px Arial,sans-serif;letter-spacing:.1em;white-space:nowrap;color:#91a3b3}.floating-line{position:fixed;right:23px;bottom:22px;z-index:55;display:flex;align-items:center;gap:10px;justify-content:center;min-height:60px;width:220px;background:#06c755;color:#fff;border:1px solid #06c755;box-shadow:0 10px 30px #0003;padding:14px 20px;opacity:0;transform:translateY(125px);pointer-events:none;transition:transform .5s var(--ease),opacity .35s}.floating-line.is-visible{opacity:1;transform:none;pointer-events:auto}
/* Expanded images are images only, not listings or staff profiles. */
.photo-viewer{width:min(1080px,calc(100vw - 40px));max-width:none;max-height:94dvh;padding:16px 22px 23px;background:var(--navy);color:white;border:1px solid #dfbc8866}.viewer-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.viewer-head p{font-size:13px;color:var(--light-gold)}.viewer-frame{height:min(66dvh,700px);background:var(--deep)}.viewer-frame img{object-fit:contain}.viewer-bottom{padding-top:15px}.viewer-caption{font-size:12px;margin-bottom:7px}.viewer-bottom small{display:block;color:#b3c1ce;font-size:12px;line-height:1.9}
@keyframes hero-image-in{from{transform:scale(1.08)}to{transform:scale(1)}}@keyframes scroll-line{0%{transform:translateY(-100%)}70%,100%{transform:translateY(100%)}}@keyframes answer-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(min-width:1700px){.hero-copy{max-width:720px}.hero-photo{left:40%}}
@media(max-width:1230px){.header-inner{gap:22px}.desktop-nav{gap:17px;font-size:12px}.header-contact{display:none}.section-intro{font-size:12px}.concern-grid{gap:14px}.concern-copy{padding:17px 14px 23px}.concern-copy h3{font-size:15px}.reason-copy h3{font-size:23px}.service-row{gap:27px;grid-template-columns:50px 1fr 1.05fr}.service-copy{padding-left:8px}.service-copy h3{font-size:25px}.step-copy h3{font-size:15px}.step-copy p{font-size:12px}.flow-grid{gap:19px}.bridge h2{font-size:29px}.footer nav{gap:17px}.footer .brand>span{font-size:18px}}
@media(max-width:960px){:root{--gutter:36px}.desktop-nav{display:none}.js .menu-toggle{display:block}.header-contact{display:flex;margin-left:auto}.header-inner{gap:19px}.site-header{height:80px}.brand img{width:43px;height:43px}.brand>span{font-size:19px}.hero{min-height:870px}.hero-photo{left:18%}.hero-overlay{background:linear-gradient(90deg,#041326fa,#041326d9 29%,#0413268c 51%,#04132626),linear-gradient(0deg,#041326d9,transparent 55%)}.hero-copy{width:70%}.hero h1{font-size:58px}.hero-caption{bottom:143px}.hero-caption p{font-size:22px}.hero-caption span{font-size:15px}.hero .line-button{min-width:318px}.section{padding-block:84px}.section-heading{gap:26px;margin-bottom:36px}.section-intro{max-width:280px}.section-no{font-size:136px;top:-30px}.about-grid{gap:34px;grid-template-columns:1fr 1fr}.about-copy h2{font-size:28px}.about-copy>p:not(.eyebrow){font-size:12px}.about-copy .about-intro{font-size:13px!important}.about-main{aspect-ratio:4/6.2}.about-visual{padding:0 15px 15px 0}.about-word{font-size:26px;left:18px;bottom:42px}.concern-grid{grid-template-columns:repeat(3,1fr);gap:24px}.concern-copy h3{font-size:17px}.concern-copy p{font-size:12px}.concern-copy{padding:21px 20px 25px}.recommend-card{flex-basis:calc((100% - 24px)/2.15)}.recommend-copy h3{font-size:23px}.reason-grid{gap:38px 29px}.reason-copy{grid-template-columns:34px 1fr;gap:15px}.reason-no{font-size:28px}.reason-copy h3{font-size:21px}.reason-copy p{font-size:12px}.bridge-inner{display:block}.bridge h2{font-size:32px}.bridge .line-button{margin-top:26px}.bridge{min-height:400px}.service-copy h3{font-size:24px}.service-row{grid-template-columns:42px 1fr 1.08fr;gap:22px}.service-copy>p:not(.eyebrow){font-size:12px}.service-row .photo{aspect-ratio:4/3.6}.service-no{font-size:31px}.flow-grid{grid-template-columns:repeat(3,1fr);gap:32px 24px}.step-copy h3{font-size:17px}.step-copy p{font-size:12px}.before-grid{gap:0 28px}.before-item{grid-template-columns:81px 1fr;gap:18px}.before-item h3{font-size:17px}.before-item p{font-size:12px}.before-item .photo{height:110px}.faq-grid{gap:35px}.faq-photo-copy{font-size:23px;left:21px;bottom:32px}.faq-list summary{gap:12px;font-size:13px}.faq-answer{gap:12px;font-size:12px;padding-right:8px}.faq-photo{aspect-ratio:4/6.2}.contact{min-height:660px}.contact h2{font-size:38px}.footer-top{flex-wrap:wrap;gap:23px}.footer nav{order:3;flex-basis:100%;gap:20px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:20px}.back-top{margin-left:auto}}
@media(max-width:620px){:root{--gutter:23px}html{scroll-padding-top:96px}.site-header{height:72px}.header-inner{gap:12px}.header-contact{display:none}.brand>span{font-size:18px}.brand small{font-size:12px}.brand img{width:39px;height:39px}.brand{gap:10px}.hero{min-height:max(810px,100svh);padding:128px 0 152px;align-items:flex-start}.hero-photo{inset:-1% -5%;transform:translateY(0) scale(1.02)}.hero-photo img{object-position:84% 51%}.hero-overlay{background:linear-gradient(90deg,#041326e6 0%,#041326ba 35%,#04132655 77%,#04132640),linear-gradient(0deg,#041326fa 0%,#04132699 22%,#04132600 58%,#04132688)}.hero-copy{width:100%;max-width:440px}.hero .eyebrow{font-size:12px;letter-spacing:.2em;margin-bottom:16px;gap:10px}.hero .eyebrow:before{width:24px}.hero-service{font-size:12px;letter-spacing:.08em;margin-bottom:18px}.hero h1{font-size:clamp(34px,10.2vw,48px);line-height:1.53;letter-spacing:0}.hero-description{font-size:12px;line-height:2.15;margin:22px 0 24px}.line-button{font-size:12px;gap:12px;min-height:59px;padding:15px 19px}.line-button .chat{width:24px;height:24px}.line-button svg:last-of-type{margin-left:12px;width:21px}.hero .line-button{min-width:0;width:min(331px,100%)}.hero-fine{font-size:12px;margin-top:12px}.hero-more{font-size:12px;margin-top:19px;gap:22px}.hero-caption{right:var(--gutter);bottom:118px}.hero-caption span{font-size:13px;opacity:.86}.hero-caption p{font-size:19px;line-height:1.65;margin-top:7px}.hero-bottom{bottom:26px;padding-top:19px;gap:20px}.hero-bottom>p{font-size:12px;gap:12px;letter-spacing:.025em}.hero-bottom>p span+span{padding-left:12px}.scroll-guide{font-size:12px;gap:11px;letter-spacing:.08em}.section{padding-block:70px}.eyebrow{font-size:12px;margin-bottom:19px;letter-spacing:.19em;gap:12px}.eyebrow:before{width:25px}h2{font-size:28px;line-height:1.8}.section-heading{display:block;margin-bottom:31px}.section-intro{margin-top:18px;font-size:12px;line-height:2.15;max-width:none}.section-no{font-size:112px;top:-20px}.about-grid{display:flex;flex-direction:column-reverse;gap:34px}.about-copy h2{font-size:28px}.about-copy>p:not(.eyebrow){font-size:13px;line-height:2.2;margin-top:19px;max-width:none}.about-copy .about-intro{font-size:14px!important}.about-copy .about-promise{font-size:12px;margin-top:24px!important}.about-copy .text-link{margin-top:23px}.about-visual{width:100%;padding:0 15px 15px 0}.about-visual:after{inset:18px 0 0 18px}.about-main{aspect-ratio:4/4.1}.about-main img{object-position:34% 50%}.about-word{font-size:30px;left:21px;bottom:42px}.concern-grid{grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}.concern-card{display:grid;grid-template-columns:108px 1fr;gap:22px;background:transparent;border-bottom:1px solid var(--rule);padding-block:23px;align-items:center}.concern-card .photo{aspect-ratio:auto;height:122px}.concern-copy{padding:0}.item-no{font-size:15px;margin-bottom:6px}.concern-copy h3{font-size:16px;line-height:1.8}.concern-copy h3 br{display:none}.concern-copy p{font-size:12px;margin-top:8px;line-height:1.95}.gallery-shell{width:calc(100% - var(--gutter));margin-left:var(--gutter);margin-right:0}.recommend-track{gap:19px;padding-right:var(--gutter)}.recommend-card{flex-basis:84%;scroll-snap-align:start}.recommend-card .photo{aspect-ratio:4/4.4}.recommend-copy{padding-top:22px}.recommend-copy h3{font-size:24px;line-height:1.8}.recommend-copy>p:last-child{font-size:12px;line-height:2.05}.recommend-copy .eyebrow.small{font-size:12px}.carousel-footer{margin-right:var(--gutter);gap:15px;margin-top:24px}.carousel-controls{gap:8px}.carousel-controls button{width:43px;height:43px}.carousel-status{font-size:12px;min-width:78px}.reason-grid{grid-template-columns:1fr;gap:39px}.reason-card .photo{aspect-ratio:16/10.2}.reason-copy{grid-template-columns:33px 1fr;gap:15px;margin-top:21px}.reason-copy h3{font-size:23px;line-height:1.75}.reason-copy p{font-size:12px;line-height:2.15;margin-top:13px}.reason-no{font-size:27px}.bridge{min-height:405px;padding-block:61px}.bridge h2{font-size:clamp(25px,6.7vw,32px);line-height:1.85;letter-spacing:0}.bridge-photo img{object-position:74% 50%}.bridge .line-button{margin-top:26px;width:min(333px,100%)}.service-row{grid-template-columns:34px 1fr;gap:17px 16px;align-items:start;padding-block:28px}.service-row .photo{grid-column:2;aspect-ratio:4/3}.service-no{grid-column:1;grid-row:1;font-size:29px;padding-top:1px}.service-copy{grid-column:2;padding:0}.service-copy h3{font-size:24px;line-height:1.75}.service-copy h3 br{display:none}.service-copy .eyebrow.small{font-size:12px;margin-bottom:7px}.service-copy>p:not(.eyebrow){font-size:12px;line-height:2.1;margin-top:10px}.service-tags{gap:7px;margin-top:15px}.service-tags span{font-size:12px;padding:3px 9px}.flow-grid{display:block}.step{display:grid;grid-template-columns:106px 1fr;gap:11px 23px;border-bottom:1px solid var(--rule);padding-bottom:25px;margin-bottom:26px}.step:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.step-no{grid-column:1/-1;margin-bottom:3px}.step .photo{height:111px;aspect-ratio:auto}.step-copy{align-self:center}.step-copy h3{font-size:16px;line-height:1.8;margin:0 0 8px}.step-copy p{font-size:12px;line-height:2}.flow-note{font-size:12px;line-height:2;margin-top:28px}.before-grid{display:block}.before-item{grid-template-columns:91px 1fr;gap:22px;padding-block:22px}.before-item .photo{height:110px}.before-item h3{font-size:18px;line-height:1.85}.before-item p{font-size:12px;line-height:2;margin-top:7px}.faq-grid{display:flex;flex-direction:column;gap:35px}.faq-visual{position:relative;top:auto;width:100%}.faq-photo{aspect-ratio:16/11}.faq-photo img{object-position:50% 31%}.faq-photo-copy{font-size:24px;left:22px;bottom:26px;line-height:1.8}.faq-content{width:100%}.faq-content .section-heading{margin-bottom:26px}.faq-list summary{font-size:13px;gap:12px;grid-template-columns:23px 1fr 17px;padding-block:23px}.faq-q{font-size:24px}.faq-answer{font-size:12px;gap:12px;grid-template-columns:23px 1fr;padding:0 12px 22px 0}.faq-answer>span{font-size:22px}.contact{min-height:688px;padding:79px 0 93px}.contact-photo img{object-position:65% center}.contact:after{background:linear-gradient(90deg,#041326e6,#041326aa 50%,#04132655),linear-gradient(0deg,#041326b3,transparent 55%)}.contact h2{font-size:clamp(25px,6.55vw,31px);letter-spacing:0;line-height:1.95}.contact-copy>p:not(.eyebrow){font-size:12px;line-height:2.15;margin:24px 0 27px}.contact-copy>p:not(.eyebrow) br{display:none}.contact-copy>small{font-size:12px;line-height:2;max-width:310px}.contact .line-button{width:min(333px,100%);font-size:12px;padding-inline:16px;gap:12px}.footer{padding:35px 0 30px}.footer-top{gap:23px;padding-bottom:26px}.footer .brand>span{font-size:18px}.footer nav{font-size:12px;gap:12px 20px}.footer-bottom{padding-top:23px;gap:18px}.footer-bottom p{font-size:12px;line-height:2.1}.footer-bottom>small{font-size:12px}.floating-line{right:12px;left:12px;width:auto;bottom:calc(9px + env(safe-area-inset-bottom));padding:7px 15px 7px 7px;border-radius:4px;min-height:67px;gap:15px}.mobile-menu{padding:23px 23px 33px}.mobile-menu .brand>span{font-size:16px}.mobile-menu .brand img{width:36px;height:36px}.menu-head{margin-bottom:31px}.mobile-menu nav>a{font-size:17px;padding-block:14px}.mobile-menu .line-button{font-size:12px;padding-inline:17px}.photo-viewer{width:calc(100vw - 24px);padding:12px 13px 20px}.viewer-frame{height:59dvh}.viewer-head p{font-size:12px}.viewer-caption{font-size:12px}.viewer-bottom small{font-size:12px}}
@media(max-width:365px){:root{--gutter:19px}.hero h1{font-size:34px}.hero{padding-top:119px;min-height:800px}.hero-description{font-size:12px}.hero .line-button{font-size:12px;gap:10px;padding-inline:15px}.hero h1{line-height:1.6}.hero-service{font-size:12px}.hero .eyebrow{font-size:12px}.hero-caption span{font-size:12px}.hero-caption p{font-size:18px}.hero-bottom>p{font-size:12px;gap:9px}.hero-bottom>p span+span{padding-left:9px}.scroll-guide{font-size:12px;gap:9px}.about-copy h2{font-size:25px}h2{font-size:25px}.concern-card{grid-template-columns:91px 1fr;gap:18px}.concern-copy h3{font-size:15px}.concern-copy p{font-size:12px}.reason-copy h3{font-size:21px}.service-copy h3{font-size:21px}.before-item{grid-template-columns:80px 1fr;gap:18px}.before-item h3{font-size:16px}.contact h2{font-size:23px}.bridge h2{font-size:23px}.bridge .line-button,.contact .line-button{font-size:12px;gap:10px;padding-inline:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-photo{transform:none!important}}
@media print{.site-header,.floating-line,.carousel-controls,.photo-expand,.scroll-guide,.mobile-menu,.hero-more{display:none!important}.section{padding-block:35px}.hero{min-height:680px;padding-top:55px}.recommend-track{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible}.photo{break-inside:avoid}.contact{min-height:500px}body{print-color-adjust:exact;-webkit-print-color-adjust:exact}details>*{display:block!important}}

/* Readability refinements, including narrow mobile screens. */
body{font-size:16px}
.about-copy>p:not(.eyebrow),.about-copy .about-intro,.about-copy .about-promise{font-size:16px!important}
.hero-description,.concern-copy p,.recommend-copy>p:last-child,.reason-copy p,.service-copy>p:not(.eyebrow),.step-copy p,.before-item p,.faq-answer p,.contact-copy>p:not(.eyebrow){font-size:16px}
.section-intro,.flow-note,.menu-note,.faq-list summary,.text-link,.hero-more,.footer nav{font-size:14px}
.line-button{font-size:16px;background:#06c755}
.desktop-nav{font-size:14px;gap:20px}.header-contact{font-size:14px}
.brand small{font-size:12px;letter-spacing:.08em}.hero .eyebrow{font-size:12px}
.footer-bottom p{font-size:12px}.hero-fine,.contact-copy>small{font-size:13px}
@media(max-width:1250px){.desktop-nav{display:none}.js .menu-toggle{display:block}.header-contact{margin-left:auto}}
@media(max-width:620px){.line-button,.hero .line-button,.bridge .line-button,.contact .line-button{font-size:14px;padding-inline:14px;gap:10px;white-space:normal}.line-button svg:last-of-type{margin-left:2px}.header-contact{display:none}.hero-service{font-size:13px}.hero h1{font-size:clamp(32px,8.8vw,45px)}.hero{min-height:900px}.hero-description{font-size:16px}.hero-bottom>p{gap:10px;font-size:12px}.hero-bottom>p span+span{padding-left:10px}.scroll-guide{display:none}.hero-copy{width:100%}.concern-card{grid-template-columns:100px minmax(0,1fr)}.before-item{grid-template-columns:85px minmax(0,1fr)}.before-item h3{font-size:18px}.mobile-menu{overflow-y:auto}.footer{padding-bottom:110px}.faq-list summary{gap:10px;grid-template-columns:23px minmax(0,1fr) 18px}}

/* Reference artwork: navy / ivory / copper, diagonal city views and white panels. */
:root{--navy:#061b35;--deep:#031329;--gold:#b37636;--light-gold:#d8a15f;--cream:#f7f5f0;--muted:#506374}
h2{font-family:var(--sans);font-weight:700;line-height:1.6}
.hero{border-top:3px solid var(--gold)}.hero-photo{inset:-2% -1% -2% 0}.hero-photo img{object-position:80% 50%}.hero-overlay{background:linear-gradient(90deg,#031329fc,#031329ea 30%,#0313298a 58%,#03132910),linear-gradient(0deg,#031329b3,transparent 35%)}
.about-copy h2,.before h2,.faq h2{font-family:var(--sans)}
.reasons{position:relative;isolation:isolate;overflow:hidden;background:#f4f2ed}.reasons>.wrap{position:relative}.reasons .section-heading{max-width:820px;display:block}.reasons .section-intro{margin-top:18px}.reasons .section-no{display:none}
.reasons-scene{position:absolute;inset:0 0 0 43%;z-index:-2}.reasons-scene img{object-position:80% center}.reasons:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(125deg,#fffefa,#efede8);clip-path:polygon(0 0,80% 0,53% 100%,0 100%);border-top:1px solid #d3b184}
.reason-grid{display:grid;grid-template-columns:1fr;gap:20px;width:74%;max-width:850px}.reason-card{display:grid;grid-template-columns:112px minmax(0,1fr);background:#fffffff7;border:1px solid #d3c6b533;border-radius:7px;box-shadow:0 7px 22px #00152c15;overflow:hidden}.reason-card .photo{height:100%;aspect-ratio:auto;min-height:150px}.reason-copy{padding:23px 27px;margin:0;grid-template-columns:38px 1fr;gap:16px}.reason-no{font-size:29px}.reason-copy h3{font:700 23px/1.6 var(--sans)}.reason-copy h3 br{display:none}.reason-copy p{font-size:16px;line-height:1.9;margin-top:8px}.reason-card .photo img{object-position:50% center}
.services{position:relative;isolation:isolate;background:var(--cream);overflow:hidden}.services:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/hero-1600.webp') right center/cover no-repeat}.services:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(112deg,#f7f5f0fc 20%,#f7f5f0f2 64%,#f7f5f04d)}.services .section-heading{display:block;text-align:center}.services .section-heading .eyebrow{justify-content:center}.services .section-intro{margin-top:14px}.services .section-no{display:none}
.service-list{display:grid;grid-template-columns:1fr 1fr;gap:24px;border:0}.service-row{position:relative;display:grid;grid-template-columns:140px minmax(0,1fr);gap:25px;padding:24px;background:#fffffff5;border:1px solid #e7e0d6;border-radius:9px;box-shadow:0 8px 20px #00152c12;align-items:center}.service-no{position:absolute;top:10px;left:11px;z-index:3;font-size:23px;background:var(--navy);color:var(--light-gold);padding:8px}.service-row .photo{height:190px;aspect-ratio:auto;border-radius:4px}.service-copy{padding:0}.service-copy .eyebrow{font-size:12px;letter-spacing:.11em}.service-copy h3{font:700 23px/1.6 var(--sans)}.service-copy h3:after{content:'';display:block;width:38px;height:2px;background:var(--gold);margin-top:13px}.service-copy>p:not(.eyebrow){font-size:16px}.service-tags{margin-top:13px}
.before{position:relative;isolation:isolate;background:linear-gradient(#f7f5f0,#eeece6);overflow:hidden;padding-bottom:150px}.before:before{content:'';position:absolute;inset:30% 0 0;z-index:-2;background:linear-gradient(#f7f5f0ee,#f7f5f0b0),url('assets/future-1600.webp') center/cover}.before:after{content:'';position:absolute;left:-10%;right:-10%;bottom:-70px;height:120px;background:var(--navy);border-radius:50% 50% 0 0;border-top:2px solid var(--gold);z-index:-1}.before .section-heading{display:block;text-align:center}.before .section-heading .eyebrow{justify-content:center}.before .section-intro{margin-top:18px}.before .section-no{display:none}.before-grid{gap:24px}.before-item{position:relative;padding:30px;background:#fffefd;border:1px solid #e8e0d6;box-shadow:0 6px 20px #00152c12;border-radius:9px;grid-template-columns:90px minmax(0,1fr);gap:25px;align-items:start}.before-item .photo{height:120px;border-radius:4px}.before-item h3{color:var(--navy);font:700 20px/1.7 var(--sans)}.before-item p{color:var(--ink);font-size:16px}.before .eyebrow{color:var(--gold)}
.faq{background:linear-gradient(118deg,#f7f5f0 68%,#092844 68%)}.faq-content{background:#fffefbf7;border:1px solid #decdb2;border-radius:18px;padding:35px;box-shadow:0 10px 30px #04132610}.faq-list details:last-child{border-bottom:0}.faq-q{font-size:35px;font-style:normal}.faq-list summary{font-size:16px;grid-template-columns:34px minmax(0,1fr) 18px}.faq-answer{grid-template-columns:34px minmax(0,1fr);font-size:16px;padding-right:0}.faq-answer>span{color:var(--gold);font-size:30px}.faq-visual{border-radius:12px;overflow:hidden}.faq-grid{gap:50px;grid-template-columns:.85fr 1.15fr}
.contact>.wrap{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:60px}.contact-copy{position:relative;z-index:2}.contact h2{font:700 clamp(35px,4.7vw,66px)/1.55 var(--sans)}.contact-message{font:600 23px/1.85 var(--sans);margin-top:24px}.contact-copy>p:not(.eyebrow){font-size:16px;margin-top:20px}.contact-copy>p br{display:none}.contact-phone{aspect-ratio:4/5;max-height:530px;border-radius:18px;transform:rotate(5deg);box-shadow:0 20px 60px #0005;border:1px solid #ffffff30}.contact:after{background:linear-gradient(90deg,#031329f7,#031329cc 45%,#03132980)}.contact-phone img{object-position:center}.contact-photo img{object-position:80% center}.contact .line-button{min-height:66px}
@media(max-width:1100px){.service-list{grid-template-columns:1fr}.service-row{grid-template-columns:160px minmax(0,1fr)}.reason-grid{width:86%}.contact>.wrap{gap:32px;grid-template-columns:1.15fr .85fr}.faq-content{padding:25px}.faq-grid{gap:28px}}
@media(max-width:767px){.reasons:after{clip-path:polygon(0 0,94% 0,72% 100%,0 100%)}.reason-grid{width:94%}.reason-card{grid-template-columns:88px minmax(0,1fr)}.reason-copy{padding:20px 18px;display:block}.reason-no{display:block;font-size:24px;margin-bottom:8px}.reason-copy h3{font-size:20px}.reason-copy p{font-size:16px}.reasons-scene{left:15%}.before-grid{grid-template-columns:1fr}.before-item{padding:23px;grid-template-columns:85px minmax(0,1fr);gap:20px}.before-item h3{font-size:19px}.faq-grid{grid-template-columns:1fr}.faq-visual{position:relative;top:auto}.faq-photo{aspect-ratio:16/9}.faq-content{padding:25px 20px;border-radius:15px}.contact>.wrap{grid-template-columns:1fr;gap:35px}.contact{padding-block:80px}.contact-copy{text-align:left}.contact-phone{width:75%;max-width:340px;justify-self:end;margin-right:10px;max-height:390px;transform:rotate(4deg)}.contact h2{font-size:clamp(34px,8vw,48px)}.contact-message{font-size:21px}.contact .line-button{width:100%}}
@media(max-width:480px){.service-row{grid-template-columns:88px minmax(0,1fr);gap:17px;padding:22px 15px}.service-row .photo{height:190px}.service-copy h3{font-size:20px}.service-copy>p:not(.eyebrow){font-size:16px}.service-tags{display:none}.service-copy .eyebrow{font-size:12px;letter-spacing:.06em}.reason-grid{width:100%}.reason-card{grid-template-columns:77px minmax(0,1fr)}.reason-copy{padding:18px 15px}.reason-copy h3{font-size:19px}.before-item{grid-template-columns:1fr}.before-item .photo{height:145px;width:100%}.before-item .photo img{object-position:50% 40%}.faq-content{padding:24px 16px}.faq-list summary{gap:10px}.contact-message{font-size:19px}}

.contact-phone{aspect-ratio:2/3;max-width:360px;justify-self:end}.contact-phone img{object-fit:cover}.hero-photo img{object-position:78% center}.reasons-scene img{object-position:83% center}@media(max-width:620px){.hero-photo{inset:0 -50% 0 -20%}.hero-photo img{object-position:88% center}.hero-overlay{background:linear-gradient(90deg,#031329ea,#03132985 70%,#03132936),linear-gradient(0deg,#03132980,transparent 45%)}.contact-phone{max-height:none;width:77%;max-width:300px;transform:rotate(3deg)}}

.floating-line>span{font-size:15px;font-weight:600;line-height:1.5}.floating-line:hover{background:#05b34c}
