:root{--deep:#0a5f6b;--teal:#0e7a87;--mint:#f1f9fc;--sky:#cbe9f6;--ink:#10303a;--muted:#4a656d;--line:#cfe6ee;--red:#c8102e} *{box-sizing:border-box;margin:0} html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%} body{font:400 1rem/1.65 Figtree,system-ui,sans-serif;color:var(--ink);padding-bottom:calc(4.6rem + env(safe-area-inset-bottom))} img{max-width:100%;display:block}a{color:inherit;text-decoration:none} h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:700;line-height:1.15;color:var(--deep)} h1{font-size:clamp(2rem,8vw,3.6rem)}h2{font-size:clamp(1.6rem,5.5vw,2.4rem);margin-bottom:.9rem}h3{font-size:1.15rem;margin-bottom:.35rem} .wrap{width:min(1140px,92%);margin-inline:auto} section{padding:3rem 0}.alt{background:var(--mint)} .lead{color:var(--muted);max-width:60ch;margin-bottom:1rem} :focus-visible{outline:3px solid var(--red);outline-offset:3px} .topbar{display:none} header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line)} .nav{display:flex;align-items:center;justify-content:space-between;height:66px} .brand{display:flex;align-items:center;gap:.6rem;font:700 .98rem/1.15 Fraunces,serif;color:var(--deep)} .brand img{height:44px;width:auto}.brand span{max-width:9.5rem} .menu{background:none;border:0;font-size:1.9rem;line-height:1;color:var(--deep);width:44px;height:44px;cursor:pointer} nav ul{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;list-style:none;padding:.4rem 4% 1rem;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(10,95,107,.12)} nav.open ul{display:flex} nav li a:not(.btn){display:block;padding:.85rem 0;font-weight:600;border-bottom:1px solid var(--line)} nav a[aria-current]:not(.btn){color:var(--teal)} nav .btn{margin-top:.8rem;width:100%} .btn{display:inline-block;padding:.8rem 1.5rem;min-height:46px;border-radius:10px;background:var(--teal);color:#fff;border:2px solid var(--teal);font:700 1rem Figtree,sans-serif;text-align:center;cursor:pointer} .btn:hover{background:var(--deep);border-color:var(--deep)} .btn.out{background:transparent;color:var(--teal)}.btn.out:hover{background:var(--teal);color:#fff} .btn.light{background:#fff;color:var(--deep);border-color:#fff}.btn.light:hover{background:var(--mint)} .btn.sm{padding:.5rem 1.1rem;min-height:0} .hero{background:radial-gradient(circle at 88% 12%,rgba(14,122,135,.14),transparent 42%),radial-gradient(circle at 5% 90%,rgba(203,233,246,.7),transparent 45%),linear-gradient(180deg,#fff,var(--mint));padding:2.2rem 0 0} .herogrid{display:grid;gap:1.6rem} .hero h1{color:var(--teal);max-width:14ch} .hero p{color:var(--muted);font-size:1.08rem;margin:.9rem 0 1.4rem;max-width:48ch} .cta{display:flex;gap:.8rem;flex-wrap:wrap}.cta .btn{flex:1 1 11rem} .infocard{display:none} .facts{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:2rem;margin-bottom:-2rem;position:relative;z-index:2} .facts div{background:#fff;border:1px solid var(--teal);border-radius:12px;padding:.9rem 1rem;color:var(--muted);font-size:.9rem;line-height:1.3;box-shadow:0 6px 18px rgba(10,95,107,.1)} .facts b{display:block;font:700 1.55rem Fraunces,serif;color:var(--teal);line-height:1.2} .hero+section{padding-top:4.5rem} .two{display:grid;gap:1.6rem;align-items:start} .chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem} .chips span{border:1px solid var(--teal);color:var(--deep);padding:.25rem .85rem;border-radius:99px;font-weight:600;font-size:.92rem} .mv{border-left:5px solid var(--teal);padding:.2rem 0 .2rem 1.2rem}.mv h3{margin-top:1rem}.mv h3:first-child{margin-top:0} .dir{display:grid}.dir div{padding:1rem 0;border-top:2px solid var(--teal)} .dir dt{font:700 1.15rem Fraunces,serif;color:var(--deep)}.dir dd{color:var(--muted)}.dir dt a:hover{text-decoration:underline} #services{background:var(--sky)} #services .dir{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.2rem} #services .dir div{background:#fff;border:1px solid var(--teal);border-radius:12px;padding:.9rem} #services .dir dt{font-size:1rem}#services .dir dd{display:none} .more{margin-top:1.6rem}.more .btn{width:100%} .three{display:grid;gap:1.4rem;margin-top:1.4rem}.three p{color:var(--muted)} .sha{background:var(--teal);color:#fff;padding:2rem 0}.sha .wrap{display:grid;gap:.6rem;justify-items:start} .sha h2{color:#fff;margin:0;font-size:1.6rem}.sha p{margin:0} form{display:grid;gap:.9rem;background:#fff;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:12px;padding:1.2rem} label{display:grid;gap:.3rem;font-weight:600;font-size:.95rem} input,select,textarea{font:inherit;font-size:1rem;padding:.75rem .8rem;border:1px solid #9fc3cc;border-radius:8px;background:#fff;color:var(--ink);width:100%;min-height:46px} textarea{min-height:100px}form .btn{width:100%} .info{list-style:none;padding:0;margin-top:1rem}.info li{display:grid;grid-template-columns:5.2rem 1fr;gap:.6rem;padding:.7rem 0;border-top:1px solid var(--line)} .info b{color:var(--deep)}.info a{color:var(--teal);font-weight:700} iframe{width:100%;height:300px;border:0;border-radius:12px;background:var(--sky)} .pagehead{background:var(--sky);padding:2rem 0}.pagehead h1{color:var(--deep);font-size:clamp(1.9rem,7vw,3rem)}.pagehead p{color:var(--muted);margin-top:.5rem;max-width:55ch} .gal{display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:1.2rem -4.3% 0;padding:.2rem 4.3% .8rem;scroll-padding-inline:4.3%;scrollbar-width:none} .gal::-webkit-scrollbar{display:none} .gal figure{margin:0;flex:0 0 78%;scroll-snap-align:start} .gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--line)} .gal figcaption{color:var(--muted);font-size:.92rem;padding-top:.4rem} footer{background:var(--deep);color:#d4ecf0;font-size:.92rem;padding:1.4rem 0}footer .wrap{display:grid;gap:.4rem} .actionbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:.6rem;padding:.6rem 4% calc(.6rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(10,95,107,.12)} .actionbar .btn{flex:1;padding:.7rem .5rem} @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}} @media(min-width:861px){ body{padding-bottom:0}.actionbar{display:none}section{padding:5rem 0} .topbar{display:block;background:var(--deep);color:#d4ecf0;font-size:.9rem}.topbar .wrap{display:flex;justify-content:space-between;gap:.3rem 1rem;padding:.45rem 0}.topbar a{color:#fff;font-weight:700;border-bottom:2px solid var(--red)} .nav{height:82px}.brand{font-size:1.15rem}.brand img{height:54px}.brand span{max-width:13rem}.menu{display:none} nav ul{display:flex;position:static;flex-direction:row;align-items:center;gap:1.6rem;padding:0;border:0;box-shadow:none;background:none} nav li a:not(.btn){padding:.3rem 0;border:0}nav a[aria-current]:not(.btn){border-bottom:2px solid var(--teal)}nav .btn{margin:0;width:auto} .hero{padding:4.5rem 0 0}.herogrid{grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}.cta .btn{flex:0 0 auto} .infocard{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.8rem;box-shadow:0 18px 40px rgba(10,95,107,.14)} .infocard h2{font-size:1.5rem;margin-bottom:.4rem}.infocard ul{list-style:none;padding:0}.infocard li{display:grid;grid-template-columns:7rem 1fr;gap:.6rem;padding:.7rem 0;border-top:1px solid var(--line)}.infocard b{color:var(--deep)}.infocard a{color:var(--teal);font-weight:700} .facts{grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:4rem;margin-bottom:-3.5rem}.facts div{padding:1.2rem 1.3rem;font-size:.95rem}.facts b{font-size:2.1rem} .hero+section{padding-top:8.5rem} .two{grid-template-columns:1.15fr 1fr;gap:3.5rem}.three{grid-template-columns:repeat(3,1fr);gap:3rem} .dir{grid-template-columns:1fr 1fr;gap:0 3.5rem} #services .dir{gap:0 3.5rem;margin-top:2rem}#services .dir div{background:none;border:0;border-top:2px solid var(--teal);border-radius:0;padding:1.1rem 0}#services .dir dt{font-size:1.2rem}#services .dir dd{display:block} .more .btn{width:auto} .sha .wrap{display:flex;flex-wrap:wrap;gap:.6rem 3rem;align-items:baseline}.sha .btn{margin-left:auto} form{padding:1.6rem}form .btn{width:auto;justify-self:start}iframe{height:380px}.pagehead{padding:3.5rem 0} .gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;overflow:visible;margin:1.6rem 0 0;padding:0} footer .wrap{display:flex;justify-content:space-between} } .slides{display:grid} .slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s} .slide.is-on{opacity:1;visibility:visible} .hero .h1{font:700 clamp(2rem,8vw,3.6rem)/1.15 Fraunces,Georgia,serif;color:var(--teal);max-width:14ch} .slidectl{display:flex;align-items:center;gap:.7rem;margin-top:1.3rem} .slidectl button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font-size:1.5rem;line-height:1;cursor:pointer} .dots{display:flex;gap:.5rem;align-items:center} .slidectl .dots button{position:relative;width:12px;height:12px;padding:0;border:0;background:var(--sky);transition:width .3s} .slidectl .dots button::after{content:"";position:absolute;inset:-12px -4px} .slidectl .dots button[aria-current="true"]{width:30px;border-radius:99px;background:var(--teal)} .tourbtn{display:grid;place-items:center;width:100%;aspect-ratio:16/9;margin-top:1rem;border:0;border-radius:16px;background:var(--deep) center/cover;cursor:pointer} .tourbtn span{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:#fff;color:var(--teal);font-size:1.6rem;padding-left:.2rem} dialog{border:0;border-radius:16px;padding:1.6rem;width:min(92vw,520px);box-shadow:0 24px 60px rgba(0,0,0,.35);color:var(--ink)} dialog::backdrop{background:rgba(6,40,46,.62)} dialog .x{position:absolute;top:.4rem;right:.4rem;width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:1.8rem;line-height:1;color:inherit;cursor:pointer} dialog h2{margin:.4rem 2rem .6rem 0}dialog p{color:var(--muted);margin-bottom:1.1rem} dialog.wide{width:min(94vw,980px);padding:.8rem;background:#111;color:#fff} dialog.wide img{width:100%;max-height:74vh;object-fit:contain;border-radius:8px} dialog.wide video{width:100%;max-height:80vh;border-radius:8px;background:#000} dialog.wide .cap{color:#e6e6e6;margin:.6rem 0 .5rem}.lbnav{display:flex;gap:.6rem;justify-content:center} dialog.wide .btn.out{color:#fff;border-color:#fff}dialog.wide .btn.out:hover{background:#fff;color:#111} @media(prefers-reduced-motion:reduce){.slide{transition:none}} .steps{list-style:none;padding:0;counter-reset:s;margin-top:1.2rem} .steps li{counter-increment:s;position:relative;padding:.8rem 0 .8rem 3rem;border-top:1px solid var(--line);color:var(--muted)} .steps li::before{content:counter(s);position:absolute;left:0;top:.75rem;width:2rem;height:2rem;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:700 1rem Fraunces,serif} .steps b{display:block;color:var(--ink)} .check{display:flex;gap:.7rem;align-items:flex-start;font-weight:400;font-size:.92rem;color:var(--muted)} .check input{width:20px;height:20px;min-height:0;margin-top:.15rem;flex:none}.check a{color:var(--teal);text-decoration:underline} .note{font-size:.88rem;color:var(--muted)} .formbtns{display:grid;gap:.7rem} @media(min-width:861px){.formbtns{display:flex;gap:.8rem}} .prose{max-width:70ch}.prose h2{font-size:1.4rem;margin:1.8rem 0 .5rem}.prose h2:first-child{margin-top:0} .prose p{color:var(--muted);margin-bottom:.7rem}.prose a{color:var(--teal);text-decoration:underline} footer a{text-decoration:underline} .faqs{max-width:820px}.faqs h2{font-size:1.4rem;margin:2rem 0 .6rem}.faqs h2:first-child,.qgroup:first-child h2{margin-top:0} .qa{border-top:1px solid var(--line)}.qgroup .qa:last-child,.faqs>.qa:last-of-type{border-bottom:1px solid var(--line)} .qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:52px;padding:.9rem 0;font:700 1.05rem Fraunces,Georgia,serif;color:var(--deep)} .qa summary::-webkit-details-marker{display:none} .qa summary::after{content:"+";font:400 1.6rem Figtree,sans-serif;color:var(--teal);flex:none} .qa[open] summary::after{content:"\2212"} .qa p{color:var(--muted);padding:0 0 1.1rem;max-width:68ch}.qa a{color:var(--teal);text-decoration:underline} .hd-btn{position:fixed;right:1rem;bottom:calc(5.4rem + env(safe-area-inset-bottom));z-index:35;display:flex;align-items:center;gap:.5rem;height:52px;padding:0 1.1rem 0 .9rem;border:0;border-radius:99px;background:var(--teal);color:#fff;font:700 1rem Figtree,sans-serif;box-shadow:0 8px 22px rgba(10,95,107,.35);cursor:pointer} .hd-btn svg{width:24px;height:24px}.hd-btn[aria-expanded="true"]{display:none} .hd{position:fixed;right:1rem;bottom:calc(5.4rem + env(safe-area-inset-bottom));z-index:36;width:min(92vw,370px);max-height:min(72vh,560px);display:none;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 50px rgba(10,95,107,.28);overflow:hidden} .hd.open{display:flex} .hd-h{display:flex;justify-content:space-between;align-items:center;background:var(--teal);color:#fff;padding:.5rem .6rem .5rem 1rem} .hd-h b{font:700 1.05rem Fraunces,Georgia,serif} .hd-x{width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer} .hd-b{overflow:auto;padding:1rem;display:grid;gap:.6rem;align-content:start;background:var(--mint);min-height:120px} .m{max-width:90%;padding:.6rem .85rem;border-radius:14px;font-size:.95rem;line-height:1.45} .m.bot{background:#fff;border:1px solid var(--line);justify-self:start}.m.me{background:var(--teal);color:#fff;justify-self:end} .hd-act{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem} .hd-act a{border:1.5px solid var(--teal);color:var(--teal);border-radius:99px;padding:.3rem .8rem;font-weight:700;font-size:.9rem} .hd-q{display:flex;flex-wrap:wrap;gap:.4rem;padding:.7rem 1rem;border-top:1px solid var(--line);background:#fff;max-height:8.5rem;overflow:auto} .hd-q button{border:1.5px solid var(--teal);background:#fff;color:var(--teal);border-radius:99px;padding:.35rem .8rem;font:600 .9rem Figtree,sans-serif;min-height:36px;cursor:pointer} .hd-q button:hover{background:var(--teal);color:#fff} .hd-n{font-size:.78rem;color:var(--muted);padding:.1rem 1rem .8rem;background:#fff} @media(min-width:861px){.hd-btn{bottom:1.4rem;right:1.4rem}.hd{bottom:1.4rem;right:1.4rem}} .svch{margin-top:.8rem;font-weight:700;color:var(--deep);font-size:.95rem} .svc{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:.3rem} .svc li{position:relative;padding-left:1.3rem;color:var(--ink);font-size:.97rem} .svc li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:.5rem;border-radius:50%;background:var(--teal)} .rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:1.4rem -4.3% 0;padding:.2rem 4.3% .8rem;scroll-padding-inline:4.3%;scrollbar-width:none} .rail::-webkit-scrollbar{display:none} .rail>*{flex:0 0 72%;scroll-snap-align:start} .rail.photos>*{flex-basis:80%} .railctl{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.3rem} .railctl button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font-size:1.5rem;line-height:1;cursor:pointer} .railctl button:disabled{opacity:.35;cursor:default} .member{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden} .member img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--sky)} .member div{padding:.9rem 1rem 1.1rem}.member h3{font-size:1.1rem;margin:0} .member p{color:var(--muted);font-size:.92rem;margin:.15rem 0 0}.member .dept{color:var(--teal);font-weight:700} .photos figure{margin:0}.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:var(--sky)} .photos figcaption{color:var(--muted);font-size:.92rem;padding-top:.4rem} @media(min-width:861px){.rail{margin-inline:0;padding-inline:0;scroll-padding-inline:0}.rail>*{flex-basis:calc((100% - 3rem)/4)}.rail.photos>*{flex-basis:calc((100% - 2rem)/3)}}