:root{--blue:#386fad;--deep:#254e7b;--ink:#263445;--muted:#667586;--pale:#d9eff8;--line:#d9e1e9;--serif:'Noto Serif JP',serif;--sans:'Noto Sans JP',sans-serif;--eng:'Montserrat',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:155px}body{margin:0;color:var(--ink);background:#fff;font:15px/1.9 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block;object-fit:cover}p,h1,h2,h3,figure{margin:0}h2,h3{font-family:var(--serif);font-weight:500}h2{font-size:34px;line-height:1.7;letter-spacing:.09em;color:var(--deep)}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #c18c22;outline-offset:5px}a{transition:color .25s,background .25s,transform .25s}.container{width:min(1120px,calc(100% - 80px));margin:auto}.section{padding:100px 0}.eyebrow{font:500 11px/1.6 var(--eng);letter-spacing:.18em;color:var(--blue)}.section-title .eyebrow{margin-bottom:12px}.section-title>p:last-child:not(.eyebrow){margin-top:16px;color:var(--muted);font-size:14px}.section-title.centered{text-align:center;margin-bottom:44px}.section-title.centered h2:after{content:'';display:block;width:32px;height:1px;background:var(--blue);margin:22px auto 0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:52px;padding:12px 24px;border:1px solid var(--blue);border-radius:32px;font-size:13px;color:var(--deep);background:#fff;line-height:1.5}.button span{font-size:20px;transition:transform .25s}.button:hover{background:var(--deep);color:#fff;transform:translateY(-2px)}.button:hover span{transform:translate(2px,-2px)}.button.filled{background:var(--blue);color:#fff}.button.filled:hover{background:var(--deep)}.button.small{min-height:46px;font-size:12px}.header{position:sticky;top:0;background:rgba(255,255,255,.97);z-index:20;border-bottom:1px solid #e6edf2;transition:box-shadow .3s}.header.scrolled{box-shadow:0 4px 20px #254e7b0c}.header-top{max-width:1360px;padding:20px 36px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{height:54px;width:54px;border:1px solid var(--blue);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--blue);font:500 20px/1.2 var(--eng);flex-shrink:0}.brand-mark span{font-size:7px;letter-spacing:2px;margin-top:2px}.brand small{font:500 10px/1.8 var(--eng);letter-spacing:.1em;display:block;color:var(--muted)}.brand small i{font:normal 10px var(--sans)}.brand strong{font:600 22px/1.6 var(--serif);letter-spacing:.04em;color:var(--deep)}.header-contact{display:flex;gap:28px;align-items:center}.phone{font:500 25px/1.4 var(--eng);letter-spacing:.02em;color:var(--deep);white-space:nowrap}.phone small{display:block;font:10px/1.8 var(--sans);text-align:center;letter-spacing:.08em}.header nav{display:flex;justify-content:center;gap:34px;padding:12px 24px;border-top:1px solid #f0f3f6;font-size:12px}.header nav a{position:relative}.header nav a:after{content:'';position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:var(--blue);transform:scaleX(0);transition:transform .25s}.header nav a:hover:after{transform:scaleX(1)}.menu-toggle{display:none}.hero{padding:22px 30px 0;background:linear-gradient(#fff 50%,var(--pale) 50%)}.hero-frame{max-width:1380px;height:600px;margin:auto;position:relative;overflow:hidden;border-radius:3px}.hero-frame>img{width:100%;height:100%;object-position:45% 42%;animation:hero-in 1.8s ease-out both}.hero-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 38%,#fff6 62%,#fff9)}.hero-copy{position:absolute;z-index:1;right:5%;top:50%;transform:translateY(-50%);width:40%;animation:copy-in 1s .2s both}.hero-copy h1{font:500 clamp(34px,3.35vw,50px)/1.6 var(--serif);letter-spacing:.12em;color:#254968;margin:18px 0 12px}.hero-sub{font:500 22px/1.8 var(--serif);letter-spacing:.12em}.hero-desc{font-size:13px;line-height:2;margin:18px 0 25px}.hero-copy .eyebrow{font-size:10px}.image-note{position:absolute;bottom:12px;left:18px;z-index:2;font-size:10px;color:#fff;text-shadow:0 1px 5px #000}.hero-bottom{display:flex;justify-content:space-between;align-items:center;max-width:1280px;margin:auto;padding:18px 0;font:9px var(--eng);letter-spacing:.18em;color:var(--blue)}.hero-bottom a{display:flex;align-items:center;gap:15px}.scroll-line{width:1px;height:22px;background:var(--blue);transform-origin:top;animation:scroll-line 2s infinite}.announcement{padding:15px 0 45px;background:var(--pale)}.announce-inner{background:#fff;border-radius:4px;display:flex;align-items:center;gap:28px;padding:24px 30px}.announce-inner>.eyebrow{min-width:145px}.announce-inner>.eyebrow span{display:block;font:11px var(--sans);letter-spacing:.06em;margin-top:8px}.announce-inner>p:nth-child(2){font-size:13px;flex:1}.round-link{border:1px solid #bdcfdf;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0}.round-link:hover{background:var(--blue);color:white}.news-layout{display:grid;grid-template-columns:230px 1fr;gap:45px}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;font-size:12px;color:var(--blue);border-bottom:1px solid var(--line);padding:10px 0}.section-title .text-link{margin-top:30px}.news-list{border-top:1px solid var(--line)}.news-list>a{display:grid;grid-template-columns:95px 70px 1fr 15px;align-items:center;gap:16px;padding:20px 4px;border-bottom:1px solid var(--line);font-size:13px}.news-list>a:hover{color:var(--blue);background:#f6fafd}.news-list time{font:11px var(--eng);color:var(--blue)}.tag{font-size:10px;text-align:center;background:#eff5f8;padding:3px;color:var(--blue)}.hours{background:#fef6dd}.hours-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:38px;align-items:center}.schedule{background:#fff;padding:30px;border-radius:6px}table{border-collapse:collapse;width:100%;font-size:13px;text-align:center}th{font-weight:500}thead{color:var(--blue);border-bottom:1px solid var(--line)}th,td{padding:15px 5px}td{color:var(--blue);font-size:12px}tbody tr{border-bottom:1px solid var(--line)}th:first-child{text-align:left;white-space:nowrap}.closed{background:#f7f8f9;color:#7a838e}.schedule-note{font-size:10px;margin-top:18px;color:var(--muted)}.schedule-note strong{display:block;font-size:12px;color:var(--ink);margin-top:6px}.muted{font-size:11px;color:var(--muted);margin-top:8px}.hours-contact{text-align:center}.hours-contact>p{font-size:13px;margin-bottom:12px}.hours-contact .phone{font-size:31px;display:block}.hours-contact>span{font-size:11px;display:block;margin:12px 0}.animal-strip{display:flex;justify-content:center;gap:24px;margin-top:25px;font-size:12px}.animal-strip strong{color:var(--blue);white-space:nowrap}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.photo{position:relative}.photo img{height:auto;aspect-ratio:1.25;width:100%;border-radius:3px}.photo figcaption{font-size:10px;color:var(--muted);margin-top:8px}.greeting .photo:before{content:'';position:absolute;inset:25px 25px -12px -25px;background:#edf5f9;z-index:-1}.greeting-copy .eyebrow{margin-bottom:18px}.greeting-copy>p:not(.eyebrow){font-size:13px;line-height:2.2;margin-top:22px}.greeting-copy .button{margin-top:30px}.guide{padding-top:30px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.card-photo{overflow:hidden;position:relative;border-radius:3px}.card-photo img{width:100%;aspect-ratio:1.4;transition:transform .65s}.card:hover img{transform:scale(1.045)}.card-photo>span{position:absolute;bottom:8px;right:10px;font-size:9px;color:white;text-shadow:0 1px 4px #000}.card>.eyebrow{margin:24px 0 9px;font-size:10px}.card h3{font-size:23px;display:flex;align-items:center;justify-content:space-between;color:var(--deep);margin-bottom:10px}.card h3 span{font-family:var(--sans);font-size:18px}.card>p:last-child{font-size:12px;color:var(--muted)}.recruit{margin-top:48px;background:#f3f7fa;padding:25px 34px;display:flex;align-items:center;gap:32px}.recruit strong{font:500 20px var(--serif);flex:1}.recruit small{font:11px var(--sans);display:inline-block;margin-left:25px;color:var(--muted)}.equipment{background:#ecf0f6}.equipment .eyebrow{margin-bottom:14px}.equipment h2{font-size:30px}.equipment p:not(.eyebrow){font-size:13px;margin:20px 0}.equipment-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;padding:0;list-style:none;margin:20px 0 30px;font-size:12px}.equipment-list li{border-bottom:1px solid #ccd7e2;padding:10px 0}.equipment .photo img{aspect-ratio:1.15}.map-wrap{background:#edf3f7;min-width:0}.map-wrap iframe{border:0;width:100%;height:350px;display:block}.map-link{display:block;background:#edf3f7;color:var(--blue);text-align:center;padding:12px;font-size:12px}.access-copy h3{font-size:23px;margin:10px 0 20px;color:var(--deep)}.access-copy p{font-size:13px}.access-copy dl{margin:24px 0;font-size:12px}.access-copy dt{font-weight:600;color:var(--blue);margin-top:14px}.access-copy dd{margin:4px 0 0;line-height:1.9}.contact-band{padding:45px 0;background:var(--pale)}.contact-band .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.contact-band h2{font-size:21px;margin-top:10px}footer{background:#315f91;color:white;padding:55px 0 25px}footer .brand strong,footer .brand small{color:white}footer .brand-mark{border-color:#a3bdd8;color:white}.footer-main{display:flex;justify-content:space-between;align-items:center}.back-top{font:10px var(--eng);letter-spacing:.12em}.footer-links{display:flex;gap:28px;font-size:12px;margin:35px 0}.footer-note{font-size:10px;color:#d8e3ee}.copyright{display:flex;justify-content:space-between;border-top:1px solid #ffffff30;margin-top:24px;padding-top:22px;font:9px var(--eng);letter-spacing:.04em;color:#d8e3ee}.mobile-actions{display:none}.skip{position:fixed;left:15px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal{transition:opacity .8s ease,transform .8s ease}.reveal.pending{opacity:0;transform:translateY(24px)}@keyframes hero-in{from{transform:scale(1.035);opacity:.5}to{transform:scale(1);opacity:1}}@keyframes copy-in{from{opacity:0;margin-top:15px}to{opacity:1;margin-top:0}}@keyframes scroll-line{0%,100%{transform:scaleY(.5);opacity:.4}50%{transform:scaleY(1);opacity:1}}
@media(min-width:1600px){.hero-frame{height:650px}}@media(max-width:1100px){.header-top{padding:18px 24px}.header nav{gap:23px}.brand strong{font-size:19px}.header-contact{gap:18px}.header-contact .phone{font-size:22px}.hero-frame{height:550px}.hero-copy{right:4%;width:42%}.hero-copy h1{font-size:36px}.container{width:calc(100% - 56px)}.split{gap:40px}.news-layout{grid-template-columns:180px 1fr;gap:25px}.news-list>a{gap:12px}.hours-layout{gap:25px;grid-template-columns:1.5fr 1fr}.schedule{padding:20px}.hours-contact .phone{font-size:26px}.recruit strong{font-size:18px}}
@media(max-width:800px){html{scroll-padding-top:90px}.header-top{padding:14px 20px}.brand-mark{width:43px;height:43px;font-size:17px}.brand{gap:10px}.brand strong{font-size:17px}.brand small{font-size:9px}.brand small i{display:none}.header-contact{display:none}.menu-toggle{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:transparent;color:var(--blue);padding:6px;width:48px;cursor:pointer}.menu-toggle>span{width:24px;height:1px;background:var(--blue);transition:transform .25s}.menu-toggle small{font:8px var(--eng);letter-spacing:.05em}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}.header nav{display:none}.header nav.open{display:grid;grid-template-columns:1fr 1fr;padding:20px 25px 28px;gap:0 24px;position:absolute;left:0;right:0;background:white;box-shadow:0 15px 20px #254e7b15}.header nav a{padding:13px 0;border-bottom:1px solid var(--line)}.hero{padding:15px 16px 0}.hero-frame{height:570px}.hero-frame>img{object-position:36% center}.hero-copy{width:46%;right:3%}.hero-copy h1{font-size:32px}.hero-copy .eyebrow{font-size:8px;letter-spacing:.1em}.hero-sub{font-size:18px}.hero-desc{font-size:12px}.hero-copy .button{font-size:11px;padding:12px 15px;gap:15px}.announce-inner{gap:20px;padding:22px}.announce-inner>.eyebrow{min-width:110px;font-size:10px}.announce-inner>p:nth-child(2){font-size:12px}.section{padding:70px 0}.news-layout{grid-template-columns:1fr}.section-title .text-link{margin-top:15px}.news-list>a{grid-template-columns:90px 65px 1fr 14px}.hours-layout{grid-template-columns:1fr}.hours-contact{border-top:1px solid #e2d8b8;padding-top:24px}.animal-strip{align-items:flex-start;font-size:11px}.split{gap:30px}.greeting-copy h2{font-size:28px}.cards{gap:20px}.card h3{font-size:19px}.card>.eyebrow{font-size:8px}.recruit{gap:20px;padding:24px}.recruit small{display:block;margin:10px 0 0}.equipment h2{font-size:27px}.access-layout{grid-template-columns:1fr 1fr}.map-wrap iframe{height:380px}.access-copy h3{font-size:19px}.contact-band h2{font-size:18px}.contact-band .button{flex-shrink:0}.footer-links{flex-wrap:wrap;gap:15px 25px}}
@media(max-width:560px){body{font-size:14px}.container{width:calc(100% - 40px)}h2{font-size:27px}.header-top{padding:12px 16px}.brand strong{font-size:15px;letter-spacing:0}.brand-mark{width:39px;height:39px;font-size:16px}.brand-mark span{font-size:6px}.hero{padding:10px 12px 0}.hero-frame{height:auto;background:#f7f9f6}.hero-frame>img{height:310px;object-position:23% 30%;object-fit:cover}.hero-frame:after{background:linear-gradient(0deg,#f7f9f6,transparent);top:250px;bottom:auto;height:62px}.hero-copy{position:relative;width:auto;right:auto;top:auto;transform:none;padding:15px 24px 30px}.hero-copy .eyebrow{font-size:8px}.hero-copy h1{font-size:34px;line-height:1.55;margin:12px 0}.hero-sub{font-size:16px;line-height:1.7}.hero-sub br{display:none}.hero-desc{margin:12px 0 20px;font-size:12px}.hero-desc br{display:none}.hero-copy .button{min-height:48px;font-size:12px;width:100%}.image-note{top:280px;bottom:auto;left:auto;right:10px;font-size:8px;color:#47525f;text-shadow:none}.hero-bottom{font-size:7px;padding:15px 5px;letter-spacing:.09em}.announcement{padding:8px 0 28px}.announce-inner{width:calc(100% - 32px);padding:20px;display:grid;grid-template-columns:1fr 35px;gap:12px}.announce-inner>.eyebrow{grid-column:1;display:flex;gap:15px;align-items:center}.announce-inner>.eyebrow span{font-size:10px;margin:0}.announce-inner>p:nth-child(2){grid-column:1;grid-row:2;font-size:11px;line-height:2}.announce-inner>p:nth-child(2) br{display:none}.announce-inner .round-link{grid-column:2;grid-row:1/3;width:32px;height:32px}.section{padding:58px 0}.section-title.centered{margin-bottom:30px}.section-title>p:last-child:not(.eyebrow){font-size:12px}.news-layout{gap:24px}.news-layout .section-title{position:relative}.section-title .text-link{font-size:11px;position:absolute;right:0;bottom:5px}.news-list>a{grid-template-columns:90px 66px 1fr;gap:7px 10px;padding:17px 0}.news-list p{grid-column:1/3;grid-row:2;font-size:12px}.news-list>a>span:last-child{grid-column:3;grid-row:1/3;text-align:right}.schedule{padding:18px 12px}table{font-size:10px;table-layout:fixed}th:first-child{width:94px}th,td{padding:14px 2px}td{font-size:9px}.schedule-note{font-size:9px}.schedule-note strong{font-size:11px}.animal-strip{gap:16px}.animal-strip p{line-height:2}.split{grid-template-columns:1fr;gap:32px}.photo img{aspect-ratio:1.35}.greeting .photo:before{inset:18px 18px -8px -10px}.greeting-copy>p:not(.eyebrow){margin-top:18px;font-size:13px}.greeting-copy .button{margin-top:22px}.desktop{display:none}.guide{padding-top:10px}.cards{grid-template-columns:1fr;gap:35px}.card-photo img{aspect-ratio:1.65}.card>.eyebrow{font-size:9px;margin:18px 0 8px}.card h3{font-size:22px}.recruit{margin-top:35px;display:grid;grid-template-columns:1fr 35px;gap:14px;padding:22px}.recruit>.eyebrow{grid-column:1;font-size:9px}.recruit strong{grid-column:1;font-size:16px}.recruit .round-link{grid-column:2;grid-row:1/3;width:32px;height:32px}.equipment .photo img{aspect-ratio:1.35}.equipment h2{font-size:27px}.equipment-list{font-size:11px}.map-wrap iframe{height:300px}.access-copy h3{font-size:22px}.contact-band{padding:35px 0}.contact-band .container{display:block}.contact-band h2{font-size:20px}.contact-band .button{margin-top:22px;width:100%}footer{padding:38px 0 88px}.footer-main{gap:15px}.footer-main .brand-mark{display:none}.footer-main .brand strong{font-size:16px}.back-top{font-size:8px;white-space:nowrap}.footer-links{font-size:11px;gap:12px 22px;margin:25px 0}.footer-note{font-size:9px}.copyright{font-size:8px;display:block}.copyright span{display:block;margin-bottom:7px}.mobile-actions{display:grid;grid-template-columns:1.5fr 1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:30;box-shadow:0 -3px 20px #254e7b12;background:#fff;padding-bottom:env(safe-area-inset-bottom)}.mobile-actions a{padding:17px 6px;text-align:center;font-size:11px;color:var(--deep);border-right:1px solid var(--line)}.mobile-actions a:first-child{background:var(--blue);color:white}.photo figcaption{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.pending{opacity:1;transform:none}}

/* Portrait service photographs: bounded natural proportions, no cropping. */
.cards{grid-template-columns:repeat(3,minmax(0,256px));justify-content:space-between;gap:32px;max-width:960px;margin-inline:auto;align-items:start}
.card{min-width:0}
.card-photo{aspect-ratio:4/5;max-height:320px;background:#f3f7fa}
.card-photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;transform:none}
.card:hover img{transform:none}
.card:hover .card-photo{box-shadow:0 6px 20px #254e7b16}
.card-photo{transition:box-shadow .3s}
@media(max-width:800px){.cards{gap:24px}.card h3{font-size:18px}}
@media(max-width:560px){.cards{grid-template-columns:1fr;gap:26px;max-width:400px}.card{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:20px;row-gap:8px;align-content:start}.card-photo{grid-column:1;grid-row:1/4;width:120px;height:150px;aspect-ratio:4/5}.card>.eyebrow{grid-column:2;align-self:end;margin:4px 0 0;font-size:8px}.card h3{grid-column:2;font-size:19px;margin:0;gap:6px}.card>p:last-child{grid-column:2;font-size:11px;line-height:1.9}.card-photo>span{font-size:7px;right:5px;bottom:5px}}
@media(max-width:360px){.card{grid-template-columns:104px minmax(0,1fr);column-gap:14px}.card-photo{width:104px;height:130px}.card h3{font-size:17px}}
/* Keep the two intentional hero headline lines intact on narrow screens. */
@media(max-width:560px){.hero-copy h1{font-size:clamp(20px,7.2vw,34px);letter-spacing:.05em;white-space:nowrap}}
