@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--navy:#103751;--blue:#205c7d;--red:#a62832;--gold:#e4be7b;--ink:#193b50;--paper:#fcfaf7;--muted:#586975}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;font:16px/1.7 'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #358dc0;outline-offset:4px}img{display:block;width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.13}h2{font-size:clamp(2.4rem,4vw,3.5rem);letter-spacing:-.03em;margin-bottom:25px}h2 em{color:var(--blue)}h3{font-size:1.55rem}em{font-weight:500}p{margin-bottom:20px}section{scroll-margin-top:10px}.skip{position:fixed;top:-100px;z-index:20;padding:12px;background:white}.skip:focus{top:0}.announcement{padding:9px 5%;background:var(--navy);color:#fff;font-size:.875rem;display:flex;justify-content:space-between;letter-spacing:.02em}.announcement span{color:#d3e2e9}header{display:flex;align-items:center;justify-content:space-between;padding:20px 5%;background:rgba(252,250,247,.96);border-bottom:1px solid #dae0e2;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:13px;font-family:'Playfair Display',Georgia,serif;font-size:1.38rem;line-height:1.2}.brand-j{display:grid;place-items:center;width:43px;height:48px;border:1px solid #bac9d2;font-style:italic;font-size:2rem;color:var(--red)}.brand-blue{display:block;font-size:.875rem;font-family:'DM Sans',sans-serif;letter-spacing:.2em;text-transform:uppercase;margin-top:5px;color:var(--blue)}nav{display:flex;align-items:center;gap:34px;font-size:.9375rem;font-weight:500}nav>a:hover,.text-link:hover{color:var(--red)}.button{display:inline-flex;align-items:center;justify-content:center;padding:15px 25px;background:var(--red);color:#fff;border:1px solid var(--red);border-radius:5px;font-size:.9375rem;font-weight:600;line-height:1.5;transition:background .2s}.button:hover{background:#86222b;color:white}.button:disabled{opacity:.6;cursor:wait}.button.small{padding:11px 19px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;position:relative;background:var(--navy);color:#fff}.hero-copy{padding:68px 8% 68px 10%;align-self:center}.eyebrow{font-size:.8125rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;margin-bottom:25px;color:var(--blue)}.hero .eyebrow{color:var(--gold)}h1{font-size:clamp(3.5rem,6vw,6.3rem);letter-spacing:-.045em;line-height:1.07;margin-bottom:24px}h1 em{color:var(--gold)}.intro{font-size:1.125rem;max-width:370px;color:#dfebf1;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:32px;flex-wrap:wrap}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:4px;font-weight:600;font-size:.9375rem}.hero-location{display:flex;align-items:center;gap:9px;font-size:.875rem;color:#c3d7e2;margin-top:42px}.hero-picture{position:relative;min-height:650px;margin:24px 24px 24px 0;border-radius:140px 6px 6px 6px;overflow:hidden}.hero-picture>img{height:100%;object-fit:cover;object-position:47% 35%}.picture-label{position:absolute;bottom:0;left:0;right:0;padding:70px 30px 30px;background:linear-gradient(transparent,rgba(9,31,46,.85));display:flex;flex-direction:column}.picture-label span{font-size:.875rem;letter-spacing:.06em}.picture-label strong{font:italic 1.8rem 'Playfair Display',Georgia,serif;margin-top:8px}.hero-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:32px;background:#0c2d43;border-top:1px solid #2b4c62;padding:19px 5%;color:#dfe9ee;font-size:.875rem}.hero-bottom span{color:var(--gold)}.section{padding:100px 7%;max-width:1600px;margin:auto}.about{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about-image{position:relative}.about-image img{aspect-ratio:1.12;object-fit:cover;border-radius:7px}.image-caption{display:block;padding:14px 0;border-bottom:1px solid #c8d4dc;font:italic 1.2rem 'Playfair Display',Georgia,serif}.about-copy p:not(.eyebrow){color:var(--muted);max-width:510px}.about-social{display:flex;align-items:center;gap:20px;border-top:1px solid #dae0e2;margin-top:32px;padding-top:24px;font-size:.875rem}.social{display:flex;align-items:center;gap:10px}.social a{display:grid;place-items:center;width:41px;height:41px;border:1px solid #bcccd5;border-radius:50%;transition:background .2s}.social a:hover{color:#fff;background:var(--blue);border-color:var(--blue)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:38px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:330px;color:var(--muted);margin-bottom:6px}.experiences{padding-top:40px;padding-bottom:90px}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #cfdce3;border-radius:8px;overflow:hidden;background:#fff}.experience-grid article{padding:35px;border-right:1px solid #cfdce3}.experience-grid article:last-child{border:none}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:42px;color:var(--blue)}.service-top span{font-family:Georgia,serif;font-style:italic;color:#7892a2}.experience-grid h3{margin-bottom:17px}.experience-grid p{color:var(--muted);font-size:.9375rem;min-height:80px}.gallery{max-width:none;background:#eef3f6;border-block:1px solid #d5e1e8}.gallery .section-heading,.filters,.photo-grid,.gallery-social{max-width:1376px;margin-left:auto;margin-right:auto}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.filters button{border:1px solid #b9cbd7;border-radius:30px;padding:9px 21px;background:transparent;color:var(--navy);font-size:.875rem}.filters .active{background:var(--navy);color:#fff;border-color:var(--navy)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.photo{border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}.photo>div{height:280px;display:grid;place-items:center;background:#dce6eb;border-radius:5px;overflow:hidden;padding:12px}.photo img{width:100%;height:100%;object-fit:contain;transition:transform .25s}.photo:hover img{transform:scale(1.035)}.photo>span{display:block;margin-top:12px;font-family:'Playfair Display',Georgia,serif;font-size:1.18rem}.photo small{display:block;font-family:'DM Sans',sans-serif;font-size:.8125rem;color:var(--muted);margin-top:3px}.gallery-social{display:flex;justify-content:center;align-items:center;gap:22px;padding-top:40px;font-size:.9375rem}.testimonial{padding:80px 15%;text-align:center;position:relative;max-width:1350px;margin:auto}.testimonial .eyebrow{margin-bottom:10px}.quote-mark{display:block;font:5rem/.8 Georgia,serif;color:var(--gold);margin-top:25px}.testimonial blockquote{font:500 clamp(1.5rem,2.4vw,2rem)/1.5 'Playfair Display',Georgia,serif;margin:0 auto 25px;max-width:860px}.quote-credit{font-size:.875rem;color:var(--muted)}.quote-credit span{padding:0 10px}.visit{max-width:none;display:grid;grid-template-columns:.8fr 1.2fr;gap:8%;background:var(--navy);color:#fff}.visit-info{max-width:425px}.visit .eyebrow,.visit h2 em{color:var(--gold)}.visit h2{font-size:clamp(3rem,5vw,4.5rem)}.visit-info>p:not(.eyebrow){color:#d4e3ed}.booking-note{font-size:.875rem;border-left:2px solid var(--gold);padding-left:18px;margin-top:25px}.contact-list{border-top:1px solid #406077;padding-top:30px;margin:35px 0}.contact-list a,.contact-list p{display:flex;align-items:flex-start;gap:15px;margin-bottom:21px;overflow-wrap:anywhere}.contact-list svg{flex-shrink:0;margin-top:4px;color:var(--gold)}.visit .social a{border-color:#5b7789}.form-card{background:var(--paper);color:var(--ink);padding:38px;border-radius:8px}.form-title{display:flex;align-items:center;gap:14px}.form-title h3{margin:0}.form-help{font-size:.8125rem;color:var(--muted);margin:13px 0 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{font-size:.8755rem;font-weight:600;display:flex;flex-direction:column;gap:7px}.form-grid .wide{grid-column:1/-1}input,select,textarea{width:100%;min-width:0;border:1px solid #bdccd5;border-radius:4px;background:white;padding:12px;color:var(--ink);font-size:.9375rem;font-weight:400;line-height:1.5}input::placeholder,textarea::placeholder{color:#677a87}textarea{resize:vertical}.form-grid .honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.privacy-note{font-size:.8125rem;line-height:1.6;color:var(--muted);margin:24px 0 20px}.form-submit{width:100%}.error{background:#f9e7e7;color:#8d1928;padding:12px;border-radius:4px;font-size:.875rem}.success{padding:45px 10px;text-align:center}.success svg{color:var(--blue);margin-bottom:25px}.success h3{font-size:2rem}.success a{border-bottom:1px solid}.reference{font-size:.875rem;color:var(--muted)}footer{padding:48px 7%;display:flex;align-items:start;justify-content:space-between;gap:30px}footer p{color:var(--muted);font-size:.875rem;margin-top:22px}.footer-right{display:flex;gap:25px;align-items:center}.footer-right>a{font-size:.875rem}.footer-right small{font-size:.75rem;line-height:1.6;color:var(--muted);text-align:right}.lightbox{background:transparent;color:#fff;border:0;max-width:92vw;max-height:95dvh;padding:0;overflow:visible}.lightbox::backdrop{background:rgba(3,14,23,.94)}.lightbox-content{position:relative;padding-top:48px}.lightbox-content>img{height:72dvh;max-width:82vw;object-fit:contain;width:auto;max-height:900px;margin:auto}.close{position:absolute;top:0;right:0;border:1px solid #a9bac6;border-radius:50%;background:transparent;color:white;width:42px;height:42px;display:grid;place-items:center}.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:20px 0}.lightbox-footer button{display:grid;place-items:center;border:1px solid #8ea4b2;background:transparent;color:#fff;width:45px;height:45px;border-radius:50%}.lightbox-footer p{text-align:center;margin:0}.lightbox-footer small{display:block;color:#b8cbd7;font-size:.8125rem}
@media(min-width:1700px){.hero-copy{padding-left:15%}.hero-picture{max-height:850px}}
@media(max-width:1100px){nav{gap:20px}.hero-copy{padding:50px 8%}.hero-picture{min-height:560px}.hero-bottom{gap:15px}.section{padding:75px 5%}.experience-grid article{padding:27px}.visit{gap:5%}.form-card{padding:28px}.photo>div{height:240px}.footer-right{flex-wrap:wrap;justify-content:flex-end}.hero-actions{gap:20px}}
@media(max-width:760px){html{scroll-padding-top:90px}.announcement{justify-content:center;font-size:.75rem;padding:7px 10px}.announcement span{display:none}header{padding:14px 5%}.brand{font-size:1.2rem}.brand-j{width:34px;height:41px}.brand-blue{font-size:.75rem}.menu-toggle{display:grid;place-items:center;background:transparent;border:0;color:var(--navy);padding:10px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:24px 5%;border-bottom:1px solid #beced7}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:18px}.hero{grid-template-columns:1fr}.hero-copy{padding:48px 7% 40px}h1{font-size:clamp(3.1rem,11vw,4.8rem)}.hero .eyebrow{font-size:.75rem}.intro{max-width:420px}.hero-location{margin-top:28px;font-size:.8125rem}.hero-picture{min-height:0;height:440px;margin:0 5% 24px;border-radius:85px 5px 5px 5px}.hero-picture>img{object-position:50% 30%}.picture-label{padding:70px 22px 22px}.hero-bottom{gap:8px 15px;flex-wrap:wrap;font-size:.75rem;padding:15px}.hero-bottom span{display:none}.section{padding:60px 6%}.about{grid-template-columns:1fr;gap:38px}.about-image{max-width:550px}.about-copy h2{font-size:2.5rem}.section-heading{display:block;margin-bottom:25px}.section-heading>p{margin-top:20px;max-width:500px}.experience-grid{grid-template-columns:1fr}.experience-grid article{border-right:0;border-bottom:1px solid #cfdce3;padding:28px}.service-top{margin-bottom:22px}.experience-grid p{min-height:0}.photo-grid{grid-template-columns:1fr 1fr;gap:22px 15px}.photo>div{height:200px;padding:8px}.photo>span{font-size:1rem}.gallery-social{flex-direction:column;gap:15px;text-align:center}.filters button{padding:8px 15px}.testimonial{padding:60px 7%}.visit{grid-template-columns:1fr;gap:35px}.visit-info{max-width:100%}.contact-list{margin-bottom:22px}.form-card{padding:25px 20px}.form-grid{gap:18px 14px}.form-grid label{font-size:.8125rem}input,select,textarea{font-size:1rem;padding:10px}.form-title h3{font-size:1.35rem}footer{flex-direction:column;padding:40px 6%}.footer-right{justify-content:flex-start;gap:25px}.footer-right small{text-align:left}.lightbox-content>img{max-width:88vw;height:65dvh}}
@media(max-width:420px){.hero-picture{height:340px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.form-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr}.photo>div{height:290px}.filters{gap:7px}.filters button{font-size:.8125rem}.gallery h2{font-size:2.35rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
[hidden]{display:none!important}.lightbox-footer button{width:auto;min-width:68px;padding:8px 12px;border-radius:5px;font-size:.875rem}.close{font-size:1.7rem}.response-page{max-width:750px;margin:10vh auto;padding:30px}.response-page h1{font-size:2.7rem;color:var(--navy)}
.age-help{font-weight:400;font-size:.8125rem;color:var(--muted);line-height:1.5}.admin-main{max-width:1200px;margin:auto;padding:45px 5%}.admin-auth{max-width:560px;margin:30px auto}.admin-auth h1,.admin-heading h1{font-size:2.5rem;color:var(--navy)}.admin-form{display:flex;flex-direction:column;gap:22px}.admin-form label{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:.9375rem}.admin-form .button{align-self:flex-start}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:35px}.admin-subtitle{font-size:1.8rem;margin-top:40px}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.admin-photo{border:1px solid #c9d5de;border-radius:7px;overflow:hidden;background:white}.admin-photo>img{height:220px;object-fit:contain;background:#e4edf1}.admin-photo>div{padding:20px}.admin-photo h3{font-size:1.3rem;overflow-wrap:anywhere}.admin-photo p{font-size:.875rem}.admin-success{padding:18px;background:#e2f0e8;border:1px solid #82b296;border-radius:5px}.admin-form small{font-weight:400;color:var(--muted);font-size:.8125rem}@media(max-width:760px){.admin-grid{grid-template-columns:1fr 1fr}.admin-heading{align-items:flex-start}.admin-heading h1{font-size:2rem}}@media(max-width:480px){.admin-grid{grid-template-columns:1fr}.admin-heading{flex-direction:column}.admin-form .form-grid{grid-template-columns:1fr}}

.gallery-empty{text-align:center;padding:40px;color:var(--muted)}

/* Compact section headings and anchor spacing. */
html{scroll-padding-top:var(--anchor-offset,88px)}
main section{scroll-margin-top:0}
.section{padding-top:36px;padding-bottom:56px}
main h2,.about-copy h2,.visit h2,.gallery h2{font-size:clamp(2rem,3vw,2.65rem);margin-bottom:18px}
main .eyebrow{margin-bottom:14px}
.section-heading{margin-bottom:24px}
.section-heading h2{margin-bottom:0}
.about{align-items:start}
.testimonial{padding-top:40px;padding-bottom:40px}
@media(max-width:760px){
.section{padding-top:24px;padding-bottom:40px}
main h2,.about-copy h2,.visit h2,.gallery h2{font-size:2rem}
.about-copy{order:-1}
.section-heading{margin-bottom:20px}
.section-heading>p{margin-top:12px}
}

.reviews-page h1{font-size:clamp(2.2rem,4vw,3rem);color:var(--navy);margin-bottom:0}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.review-card{border:1px solid #cbd9e2;border-radius:7px;padding:30px;background:white}.review-card blockquote{font:1.35rem/1.6 'Playfair Display',Georgia,serif;margin:0 0 22px}.review-source{font-size:.8125rem;color:var(--muted);margin:0}.review-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:30px}.review-cta{margin-top:40px;padding-top:30px;border-top:1px solid #cbd9e2}nav [aria-current="page"]{color:var(--red)}@media(max-width:900px){nav{gap:18px}.review-grid{grid-template-columns:1fr}}

.google-reviews-section{padding:0 0 32px;margin-bottom:32px;border-bottom:1px solid #cbd9e2}.google-review-text{white-space:pre-line;margin-top:18px}.google-attribution{margin-top:22px}.published-reviews-heading{font-size:1.8rem}

/* Reviews: a Christmas portrait, rich color, and thoughtful quote cards. */
.reviews-main{background:#eaf1f5}
.reviews-intro{display:grid;grid-template-columns:1.05fr 1fr;gap:5%;align-items:center;background:var(--navy);color:white;padding:34px 7% 38px}
.reviews-intro-copy{max-width:600px}
.reviews-intro .eyebrow{color:var(--gold);margin-bottom:15px}
.reviews-intro h1{font-size:clamp(2.2rem,4.1vw,3.7rem);line-height:1.14;margin-bottom:20px;letter-spacing:-.035em}
.reviews-intro h1 em{color:var(--gold)}
.reviews-intro-copy>p:not(.eyebrow){color:#d6e5ed;max-width:460px;font-size:1.05rem;margin-bottom:18px}
.reviews-hero-link{display:inline-block;border-bottom:1px solid var(--gold);padding-bottom:4px;color:var(--gold);font-size:.9375rem;font-weight:600}
.reviews-intro-photo{margin:0;padding:10px;background:#fff;border-radius:6px;box-shadow:0 14px 30px #061e3240;transform:rotate(1deg)}
.reviews-intro-photo img{max-height:280px;object-fit:contain;background:#e2e9ec;border-radius:2px}
.reviews-intro-photo figcaption{color:var(--navy);font:italic 1.05rem/1.5 'Playfair Display',Georgia,serif;text-align:center;padding:11px 5px 3px}
.reviews-page{padding-top:38px;padding-bottom:45px}
.reviews-page .google-reviews-section{padding:26px;border:1px solid #b9cdd9;border-radius:8px;background:#f6f9fb;margin-bottom:35px}
.google-reviews-section .section-heading{margin-bottom:18px}
.google-reviews-section .section-heading h2{font-size:1.75rem}
.reviews-page .review-grid{gap:22px;align-items:stretch}
.reviews-page .review-card{border:0;border-top:4px solid var(--gold);border-radius:7px;padding:27px;background:#fff;box-shadow:0 7px 20px #173e5110;display:flex;flex-direction:column}
.reviews-page .review-card:nth-child(2){border-top-color:var(--red);background:#fcf2f2}
.reviews-page .review-card:nth-child(3){border-top-color:var(--blue);background:#dceaf2}
.reviews-page .review-card .eyebrow{letter-spacing:.12em;font-size:.75rem}
.reviews-page .review-card blockquote{font-size:1.4rem;line-height:1.55;flex:1;color:#173d54}
.reviews-page .review-card .review-source{padding-top:14px;border-top:1px solid #cbd6dd;font-size:.8125rem}
.published-reviews-title{margin-bottom:24px}
.published-reviews-title .eyebrow{margin-bottom:9px}
.reviews-page .published-reviews-heading{font-size:clamp(1.75rem,2.5vw,2.3rem)}
.review-links{font-size:.9375rem}
.reviews-page .review-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--navy);color:white;border:0;border-radius:8px;padding:30px;margin-top:35px}
.review-cta .eyebrow{color:var(--gold);margin-bottom:10px}
.review-cta h2{font-size:clamp(1.6rem,2.4vw,2rem);margin:0}
.review-cta h2 em{color:var(--gold)}
.review-cta .button{flex-shrink:0}
@media(max-width:760px){.reviews-intro{grid-template-columns:1fr;padding:28px 6% 32px;gap:25px}.reviews-intro h1{font-size:2.4rem}.reviews-intro-photo{max-width:480px;width:100%;transform:none}.reviews-intro-photo img{max-height:230px}.reviews-page .google-reviews-section{padding:21px}.reviews-page .review-cta{flex-direction:column;align-items:flex-start;padding:24px}.reviews-page .review-grid{grid-template-columns:1fr}}

/* Keep the brand message visible above navigation on every public page. */
.announcement{position:sticky;top:0;z-index:12}
header{top:var(--announcement-height,42px)}
html{scroll-padding-top:var(--anchor-offset,130px)}
@media(max-width:760px){.announcement{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 12px;font-size:.75rem;line-height:1.5;text-align:center}.announcement span{display:block;font-size:.75rem}}
