:root{--navy:#3B5070;--navy-d:#26364F;--blue:#1494DC;--blue-t:#0E6FA8;--sky:#9CCDF0;--ivory:#F7F5F0;--sand:#EDE9DF;--line:#DDD8CC;--line-d:#CFC9BB;--ink:#26364F;--muted:#4A5B73;--serif:'EB Garamond',Georgia,'Times New Roman',serif;--sans:'Commissioner',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1296px;margin:0 auto;padding:0 72px}
.eyebrow{font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--blue-t);font-weight:400}
.on-dark .eyebrow,.eyebrow.light{color:var(--sky)}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--navy);margin:0}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--navy);padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
/* topbar + header */
.topbar{background:var(--navy-d);color:#C7D3E3;font-size:12.5px;letter-spacing:.08em}
.topbar .wrap{display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;padding-top:9px;padding-bottom:9px}
.topbar a:hover{color:#fff}
.site-header{background:var(--ivory);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px 36px;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:50px;width:auto}
.brand span{font-size:13.5px;letter-spacing:.2em;white-space:nowrap;font-weight:400;color:var(--navy);text-transform:uppercase}
.nav{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:13.5px;letter-spacing:.02em;color:var(--navy);font-weight:400}
.nav a{position:relative;padding:6px 0;white-space:nowrap}
.nav a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--blue);transition:width .25s}
.nav a:hover:after,.nav a[aria-current=page]:after{width:100%}
.burger{display:none;background:none;border:1px solid var(--line-d);color:var(--navy);width:46px;height:46px;cursor:pointer;padding:0}
.burger svg{display:block;margin:auto}
/* buttons */
.btn{display:inline-block;min-height:48px;padding:14px 34px;background:var(--navy);color:#fff;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;border:1px solid var(--navy);transition:background .2s,color .2s}
.btn:hover{background:var(--navy-d)}
.btn.ghost{background:transparent;border-color:#fff;color:#fff}
.btn.ghost:hover{background:#fff;color:var(--navy)}
.link-arrow{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--blue-t)}
/* hero */
.hero{background:var(--navy);color:#fff;display:flex;flex-wrap:wrap}
.hero-l{flex:1 1 520px;min-width:0;padding:96px 72px 88px;display:flex;flex-direction:column;justify-content:center}
.hero-r{flex:1 1 420px;min-width:0;position:relative;background:var(--navy-d);min-height:640px}
.hero-r img.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.hero-r img.mark{position:absolute;right:32px;bottom:32px;height:64px;width:auto;opacity:.9}
.hero h1{color:#fff;font-size:76px;line-height:1.02;margin:24px 0 0}
.hero .creds{font-size:15px;letter-spacing:.18em;margin-top:26px;color:#D5DEEA;font-weight:400}
.hero .rule{width:72px;height:1px;background:#7FC4F0;margin:36px 0 30px}
.hero .lead{font-family:var(--serif);font-size:25px;line-height:1.5;margin:0;max-width:520px;color:#EAF0F6}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:44px;align-items:center}
.hero .aff{margin-top:56px;padding-top:24px;border-top:1px solid #5E7596;max-width:520px;font-size:14px;line-height:1.7;color:#C7D3E3;letter-spacing:.03em}
.hero .aff b{color:#fff;font-weight:400}
/* sections */
section.s{padding:110px 0}
.s-head{text-align:center;max-width:700px;margin:0 auto 64px}
.s-head h2{font-size:48px;line-height:1.15;margin-top:18px}
.creds-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line)}
.creds-row>div{padding:44px 40px}
.creds-row>div:first-child{padding-left:0}.creds-row>div:last-child{padding-right:0}
.creds-row>div+div{border-left:1px solid var(--line)}
.creds-row .t{font-family:var(--serif);font-size:34px;color:var(--navy);line-height:1}
.creds-row .t small{font-size:22px}
.creds-row p{font-size:15px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line-d)}
.card{display:block;padding:52px 40px;min-height:340px;transition:all .3s}
.card+.card{border-left:1px solid var(--line-d)}
.card .n{font-family:var(--serif);font-size:20px;color:var(--blue-t)}
.card h3{font-size:32px;line-height:1.2;margin:22px 0 16px}
.card p{font-size:16px;line-height:1.75;margin:0 0 28px;color:var(--muted)}
.card .link-arrow{color:var(--blue-t)}
.card:hover{background:var(--navy);color:#fff}
.card:hover h3,.card:hover p{color:#fff}.card:hover p{color:#D5DEEA}
.card:hover .n,.card:hover .link-arrow{color:var(--sky)}
.about{background:var(--sand)}
.about .wrap{display:flex;flex-wrap:wrap;gap:64px;align-items:stretch;padding-top:110px;padding-bottom:110px}
.about .panel{flex:1 1 380px;max-width:520px;background:var(--navy);color:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.about .panel img{height:72px;width:auto;align-self:flex-start}
.about .panel .f{border-top:1px solid #5E7596;padding-top:18px;margin-top:30px}
.about .panel .f:first-of-type{margin-top:0}
.about .panel .y{font-family:var(--serif);font-size:40px;line-height:1}
.about .panel .d{font-size:14.5px;color:#C7D3E3;margin-top:8px;letter-spacing:.03em}
.about .txt{flex:1 1 420px;min-width:0;align-self:center}
.about h2{font-size:48px;line-height:1.15;margin:18px 0 28px}
.about p{font-size:17.5px;line-height:1.9;margin:0 0 18px;color:#3A4A62}
.about .btn{margin-top:20px}
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.strip figure{margin:0;overflow:hidden;aspect-ratio:4/5;background:var(--sand)}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.strip figure:hover img{transform:scale(1.04)}
.conds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:56px;row-gap:52px}
.conds h3{font-family:var(--sans);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--blue-t);font-weight:400;padding-bottom:16px;border-bottom:1px solid var(--navy)}
.conds a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:23px;color:var(--navy);transition:padding .2s,color .2s}
.conds a:hover{color:var(--blue-t);padding-left:10px}
.contact{background:var(--navy);color:#fff}
.contact .wrap{display:flex;flex-wrap:wrap;gap:56px;align-items:center;padding-top:104px;padding-bottom:104px}
.contact .l{flex:1 1 380px;min-width:0}
.contact h2{color:#fff;font-size:52px;line-height:1.12;margin:18px 0 22px}
.contact .l p{font-size:17px;line-height:1.8;margin:0 0 36px;color:#D5DEEA;max-width:460px}
.contact .r{flex:1 1 380px;min-width:0;border-left:1px solid #6F86A6;padding-left:48px;display:flex;flex-direction:column;gap:26px;font-size:19px}
.contact .r small{display:block;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--sky);font-weight:400;margin-bottom:6px}
.contact .r a:hover{color:var(--sky)}
/* footer */
.site-footer{background:var(--navy-d);color:#B9C6D8;font-size:14px}
.site-footer .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-top:64px;padding-bottom:48px}
.site-footer img{height:56px;width:auto;margin-bottom:18px}
.site-footer h4{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--sky);font-weight:400;margin:0 0 16px}
.site-footer a{display:block;padding:4px 0}.site-footer a:hover{color:#fff}
.site-footer .legal{border-top:1px solid #3B5070;padding:20px 0;grid-column:1/-1;font-size:12.5px;letter-spacing:.05em;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}
/* sub pages */
.band{background:var(--navy);color:#fff;padding:72px 0 64px;position:relative;overflow:hidden}
.band h1{color:#fff;font-size:56px;line-height:1.1;margin:16px 0 0;max-width:900px}
.band .sub{font-family:var(--serif);font-size:23px;line-height:1.5;color:#D5DEEA;margin:20px 0 0;max-width:760px;font-style:italic}
.crumbs{font-size:13px;letter-spacing:.06em;color:#B9C6D8}
.crumbs a:hover{color:#fff}.crumbs span{opacity:.6;margin:0 8px}
.band .emb{position:absolute;right:72px;top:50%;transform:translateY(-50%);height:190px;width:auto;opacity:.12}
.page{padding:72px 0 96px}
.page .wrap{display:flex;flex-wrap:wrap;gap:64px;align-items:flex-start}
.article{flex:1 1 640px;min-width:0;max-width:780px}
.aside{flex:0 1 320px;min-width:260px;position:sticky;top:110px}
.article>figure{margin:0 0 40px}
.article>figure img{width:100%;border:1px solid var(--line)}
.article>figure figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.article p{margin:0 0 18px;color:#3A4A62}
.article h2{font-size:34px;line-height:1.2;margin:48px 0 16px}
.article h3{font-size:24px;margin:30px 0 10px}
.article h2:first-child{margin-top:0}
.article ul{margin:0 0 22px;padding:0;list-style:none}
.article li{position:relative;padding:0 0 0 26px;margin:0 0 10px;color:#3A4A62}
.article li:before{content:"";position:absolute;left:2px;top:.8em;width:10px;height:1px;background:var(--blue-t)}
.article li p{margin:0 0 8px}
.article strong{font-weight:500;color:var(--navy)}
.article p.note{font-family:var(--serif);font-size:22px;line-height:1.55;color:var(--navy);border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d);padding:22px 0;margin:32px 0}
.article p.note strong{font-weight:400}
.disclaimer{font-size:14px;color:var(--muted);font-style:italic;border-top:1px solid var(--line);padding-top:20px;margin-top:40px}
.cta-box{background:var(--navy);color:#fff;padding:36px 32px}
.cta-box h3{color:#fff;font-size:26px;margin:0 0 12px}
.cta-box p{font-size:15px;line-height:1.7;color:#D5DEEA;margin:0 0 22px}
.cta-box .tel{display:block;font-size:20px;margin-bottom:22px;color:#fff}
.cta-box .btn{background:transparent;border-color:#fff;padding:13px 24px;font-size:12px}
.cta-box .btn:hover{background:#fff;color:var(--navy)}
.related{margin-top:28px;border:1px solid var(--line-d);padding:26px 28px}
.related h4{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--blue-t);font-weight:400;margin:0 0 8px}
.related a{display:block;padding:9px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:20px;color:var(--navy)}
.related a:last-child{border-bottom:0}.related a:hover{color:var(--blue-t)}
.cardgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);transition:box-shadow .3s,transform .3s}
.pcard:hover{box-shadow:0 18px 40px -22px rgba(38,54,79,.45);transform:translateY(-3px)}
.pcard .im{aspect-ratio:1200/630;background:var(--navy);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pcard .im img{width:100%;height:100%;object-fit:cover}
.pcard .im img.em{width:auto;height:50%;object-fit:contain}
.pcard .b{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.pcard h3{font-size:25px;line-height:1.2}
.pcard p{font-size:15px;line-height:1.65;color:var(--muted);margin:0}
.group-h{display:flex;align-items:baseline;gap:18px;margin:64px 0 28px;border-bottom:1px solid var(--navy);padding-bottom:14px}
.group-h:first-of-type{margin-top:0}
.group-h h2{font-size:34px}
.portrait{margin:0 0 36px}
.portrait img{width:100%;max-width:420px}
.gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin:8px 0 56px}
.gallery figure{margin:0;overflow:hidden;background:var(--sand)}
.gallery img{width:100%;height:100%;object-fit:cover}
.g-a{grid-column:span 3;aspect-ratio:3/2}.g-b{grid-column:span 2;aspect-ratio:2/3}.g-c{grid-column:span 4;aspect-ratio:3/2}.g-d{grid-column:span 2;aspect-ratio:2/3}.g-e{grid-column:span 6;aspect-ratio:3/1.15}
.certs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0 10px}
.certs figure{margin:0}
.certs img{width:100%;aspect-ratio:3/4;object-fit:contain;background:#fff;border:1px solid var(--line);padding:8px}
.certs figcaption{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.5}
@media(max-width:1100px){.nav{display:none}.burger{display:block}.nav.open{display:flex;flex-direction:column;width:100%;gap:0;padding:8px 0 12px;order:3}.nav.open a{padding:14px 0;border-bottom:1px solid var(--line)}.site-header .wrap{flex-wrap:wrap}.topbar{display:none}.conds{grid-template-columns:repeat(2,minmax(0,1fr))}.cardgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer .wrap{grid-template-columns:1fr 1fr}.aside{position:static;flex:1 1 100%}}
@media(max-width:900px){.wrap{padding:0 16px}.hero-l{padding:64px 16px}.hero-r{min-height:440px}.hero h1{font-size:46px}.cards,.creds-row{grid-template-columns:1fr}.card+.card{border-left:0;border-top:1px solid var(--line-d)}.creds-row>div,.creds-row>div:first-child,.creds-row>div:last-child{padding:28px 0}.creds-row>div+div{border-left:0;border-top:1px solid var(--line)}section.s{padding:72px 0}.s-head h2,.about h2{font-size:36px}.about .wrap{gap:40px;padding-top:72px;padding-bottom:72px}.about .panel{padding:40px 28px;max-width:none}.contact .wrap{padding-top:72px;padding-bottom:72px;gap:40px}.contact h2{font-size:38px}.contact .r{border-left:0;border-top:1px solid #6F86A6;padding:32px 0 0}.band{padding:48px 0 44px}.band h1{font-size:38px}.band .emb{display:none}.page{padding:48px 0 64px}.page .wrap{gap:40px}.strip{grid-template-columns:1fr 1fr}.certs{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr}.g-a,.g-b,.g-c,.g-d,.g-e{grid-column:span 2;aspect-ratio:3/2}}
@media(max-width:560px){.conds,.cardgrid,.site-footer .wrap{grid-template-columns:1fr}.strip{grid-template-columns:1fr}.certs{grid-template-columns:1fr}.brand span{font-size:12px;letter-spacing:.16em}.article h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){*{transition:none !important;scroll-behavior:auto}}

.partners{background:#fff;border-bottom:1px solid var(--line);padding:44px 0;text-align:center}
.logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:28px 72px;margin:26px 0 8px}
.logos img{width:auto;max-width:100%}
.article .logos{justify-content:flex-start;margin:14px 0 30px;gap:24px 48px}
@media(max-width:560px){.logos{gap:22px 36px}.logos img{height:auto !important;max-height:50px}}

/* hours + map */
.visit{background:var(--sand)}
.visit .wrap{display:flex;flex-wrap:wrap;gap:56px;padding-top:96px;padding-bottom:96px}
.hours{flex:1 1 340px;min-width:0}
.hours h2{font-size:44px;line-height:1.15;margin:18px 0 28px}
.hours dl{margin:0 0 22px;border-top:1px solid var(--navy)}
.hours dl div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-d)}
.hours dt{font-family:var(--serif);font-size:21px;color:var(--navy)}
.hours dd{margin:0;color:#3A4A62}
.hours p{color:var(--muted);margin:0}
.map{flex:1 1 480px;min-width:0;min-height:420px;background:var(--navy);position:relative}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center;color:#fff;background:var(--navy) url(../img/emblem-white.png) no-repeat 50% 50%/auto 40%;background-blend-mode:soft-light}
.map-ph p{font-family:var(--serif);font-size:24px;margin:0}
.map-ph .btn{background:transparent;border-color:#fff;cursor:pointer}
.map-ph .btn:hover{background:#fff;color:var(--navy)}
.map-ph small{font-size:13px;color:#C7D3E3}
/* booking form */
.booking .wrap{padding-top:96px;padding-bottom:96px}
.booking .s-head{margin-bottom:44px}
.booking .s-head p{color:var(--muted);margin:18px 0 0}
.form{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form label{display:flex;flex-direction:column;gap:8px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);font-weight:400}
.form input,.form textarea{font:inherit;font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink);background:#fff;border:1px solid var(--line-d);padding:13px 14px;border-radius:0;width:100%}
.form input:focus,.form textarea:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}
.form .invalid{border-color:#B3261E}
.form .chk{flex-direction:row;align-items:flex-start;gap:12px;font-size:15px;letter-spacing:0;text-transform:none;color:#3A4A62;font-weight:300}
.form .chk input{width:18px;height:18px;margin:4px 0 0;flex:none;accent-color:var(--navy)}
.form .hp{position:absolute;left:-9999px}
.form .actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.form .btn{cursor:pointer}
.form .btn[disabled]{opacity:.6;cursor:wait}
.form .status{margin:0;font-size:15px}
.form .status.ok{color:#1E6B3A}.form .status.err{color:#B3261E}
.form .fine{font-size:14px;color:var(--muted);font-style:italic;margin:0}
/* cookie banner */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:640px;margin:0 auto;background:var(--navy-d);color:#D5DEEA;padding:20px 22px;font-size:14.5px;line-height:1.6;box-shadow:0 18px 40px -18px rgba(0,0,0,.5);display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.cookie p{margin:0;flex:1 1 300px}
.cookie div{display:flex;gap:10px}
.cookie button{font:inherit;font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:10px 18px;cursor:pointer;border:1px solid #fff;background:#fff;color:var(--navy)}
.cookie button.no{background:transparent;color:#fff}
@media(max-width:900px){.visit .wrap,.booking .wrap{padding-top:64px;padding-bottom:64px;gap:40px}.hours h2{font-size:36px}.map{min-height:340px}.form .row{grid-template-columns:1fr}}
