@font-face{font-family:CliffordDisplay;src:url('display.ttf') format('truetype');font-display:swap}:root{--blue:#2759d5;--navy:#11244b;--paper:#f3f5f8;--ink:#172747;--muted:#56647b;--line:#d3dbe7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,.wordmark,.display{font-family:CliffordDisplay,'Arial Narrow',sans-serif;font-weight:400;text-transform:uppercase;line-height:1.02}h2{font-size:clamp(40px,5vw,72px);letter-spacing:-.025em}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #75acff;outline-offset:6px}.wrap{max-width:1440px;margin:auto;padding-inline:5vw}.header{background:var(--paper)}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px}.wordmark{font-size:34px;letter-spacing:-1px}.wordmark span{color:var(--blue)}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:4px}.nav nav{display:flex;gap:32px;font-size:14px}.nav nav a:hover{color:var(--blue)}.nav-phone{border-bottom:1px solid var(--ink);padding-block:10px;font-size:16px;font-weight:bold}.nav-phone span{margin-left:20px}.hero{background:var(--blue);color:white;overflow:hidden}.hero-top{display:flex;justify-content:space-between;padding-top:32px;font-size:11px;letter-spacing:2px;text-transform:uppercase}.hero-title{font-size:clamp(90px,18.9vw,270px);letter-spacing:-.045em;white-space:nowrap;margin:22px 0 30px;line-height:.93}.hero-title span{color:#a5c7ff}.hero-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;padding-bottom:54px;align-items:center}.hero-copy h2{font-size:clamp(36px,4vw,60px);max-width:440px}.hero-copy p{max-width:370px;color:#e0e9ff;margin:24px 0 28px}.button{display:inline-flex;justify-content:space-between;gap:30px;align-items:center;padding:17px 24px;min-height:56px;background:var(--blue);color:white;font-size:14px;font-weight:bold;border:0;cursor:pointer}.button.white{background:white;color:var(--navy)}.button:hover{filter:brightness(.94)}.button span{font-size:22px;line-height:1}.hero-photo{position:relative}.hero-photo img{height:350px;object-fit:cover;object-position:center 20%;border-radius:2px}.photo-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;padding-top:14px;color:#dce7ff}.address-strip{background:var(--navy);color:#fff}.address-strip .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:23px;font-size:13px}.address-strip a{color:#c5d7ff}.section{padding-block:100px}.section-top{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:50px}.kicker{font-size:11px;letter-spacing:2px;text-transform:uppercase;display:block;padding-top:12px;color:var(--muted)}.section-top h2{max-width:780px}.service{display:grid;grid-template-columns:1fr 2fr;gap:40px;border-top:1px solid var(--line);padding-block:34px}.service-number{font-family:CliffordDisplay,sans-serif;font-size:36px;color:var(--blue)}.service-main{display:flex;align-items:start;justify-content:space-between;gap:24px}.service h3{font-size:clamp(23px,2.4vw,36px);font-weight:500;line-height:1.2;max-width:690px}.service p{color:var(--muted);max-width:550px;margin-top:14px;font-size:14px}.service .arrow{color:var(--blue);font-size:32px}.service-note{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding-top:24px;font-size:13px;color:var(--muted)}.service-note a{color:var(--blue);font-weight:bold}.gallery-section{background:#e5ebf4;padding-block:80px}.gallery-header{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.gallery-header .kicker{margin-bottom:16px}.gallery-controls{display:flex;gap:10px;align-items:center}.gallery-controls button,.modal button{width:50px;height:50px;border:1px solid #a7b6cd;background:transparent;color:var(--navy);font-size:22px;cursor:pointer}.gallery-controls button:hover{background:var(--navy);color:white}.gallery-count{font-size:12px;margin-right:12px;font-variant-numeric:tabular-nums}.gallery-stage{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.gallery-open{padding:0;border:0;background:var(--navy);cursor:zoom-in;overflow:hidden}.gallery-open img{height:450px;object-fit:cover;transition:transform .4s}.gallery-open:hover img{transform:scale(1.025)}.gallery-side{display:flex;flex-direction:column;justify-content:space-between;gap:28px;background:var(--navy);color:white;padding:38px}.gallery-side .display{font-size:clamp(40px,4.5vw,68px)}.gallery-side p{color:#c2cee3;font-size:14px}.gallery-caption{font-size:12px;color:var(--muted);margin-top:16px}.reviews .section-top{margin-bottom:44px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.review{display:flex;flex-direction:column;padding:28px 0;border-top:2px solid var(--blue)}.rating{color:var(--blue);letter-spacing:4px;font-size:16px}.review blockquote{font-size:18px;line-height:1.6;margin:25px 0 30px;flex:1}.review-author{font-weight:bold;font-size:14px}.review-date{color:var(--muted);font-size:11px;margin:4px 0 12px}.review-source{font-size:12px;color:var(--blue)}.review-label{font-size:11px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.contact{background:var(--navy);color:white;padding-block:85px}.contact .kicker{color:#aabbd9}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:7vw}.contact h2{font-size:clamp(54px,6vw,86px);margin:25px 0 35px}.big-phone{font-family:CliffordDisplay,sans-serif;font-size:clamp(34px,4vw,58px);border-bottom:1px solid #526586;padding-bottom:15px;display:inline-block}.contact-details{border-top:1px solid #526586;padding-top:25px}.contact-details h3{font-size:24px;font-weight:400;margin:14px 0 24px}.contact-details p{color:#b8c7df;font-size:14px;margin-bottom:26px}.contact-details .button{margin-bottom:30px;width:100%}.contact-details small{display:block;color:#b8c7df;font-size:12px}.footer{background:var(--navy);color:#a7bad8}.footer .wrap{border-top:1px solid #354867;padding-block:28px;display:flex;justify-content:space-between;align-items:center;gap:22px;font-size:11px}.footer .wordmark{color:white;font-size:27px}.mobile-call{display:none}.modal{border:0;padding:50px 20px 20px;background:var(--navy);max-width:min(1100px,95vw);max-height:95vh}.modal::backdrop{background:#061126e8}.modal img{width:auto;max-width:100%;max-height:78vh;object-fit:contain;margin:auto}.modal button{position:absolute;right:10px;top:5px;border:0;color:white;width:40px;height:40px}.skip{position:fixed;top:10px;left:10px;z-index:10;background:white;color:var(--navy);padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}@media(min-width:1600px){.hero-title{font-size:270px}}@media(max-width:800px){.wrap{padding-inline:24px}.nav{min-height:82px;flex-wrap:wrap;gap:12px;padding-block:18px}.nav nav{order:3;width:100%;justify-content:space-between;font-size:13px;gap:12px;padding-top:8px}.wordmark{font-size:28px}.nav-phone{font-size:13px}.nav-phone span{margin-left:8px}.hero-title{font-size:19vw;margin-block:28px}.hero-top{font-size:9px;letter-spacing:1px}.hero-grid{grid-template-columns:1fr;gap:32px;padding-bottom:30px}.hero-copy h2{font-size:44px}.hero-copy p{max-width:100%}.hero-photo img{height:300px}.address-strip .wrap{align-items:start;flex-direction:column;gap:7px;font-size:12px}.section{padding-block:65px}.section-top{grid-template-columns:1fr;gap:18px;margin-bottom:35px}.section-top h2{font-size:44px}.service{grid-template-columns:40px 1fr;gap:15px;padding-block:28px}.service h3{font-size:25px}.service-note{flex-direction:column;gap:10px}.gallery-section{padding-block:55px}.gallery-header{align-items:start;flex-direction:column;gap:24px}.gallery-header h2{font-size:44px}.gallery-stage{grid-template-columns:1fr}.gallery-open img{height:330px}.gallery-side{padding:28px;gap:20px}.gallery-side .display{font-size:42px}.review-grid{grid-template-columns:1fr;gap:10px}.review blockquote{margin-block:20px}.contact{padding-block:60px}.contact-grid{grid-template-columns:1fr;gap:45px}.contact h2{font-size:55px}.footer .wrap{flex-wrap:wrap;padding-bottom:100px}.mobile-call{display:flex;position:fixed;bottom:12px;left:12px;right:12px;z-index:5;box-shadow:0 5px 24px #07163140}.mobile-call .button{width:100%;background:var(--blue)}.photo-label{font-size:10px}.hero .button{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.review-stars{margin:0 0 22px}.contact-map{margin-top:55px}.contact-map-frame{overflow:hidden;border:1px solid #526586;background:#e5ebf4}.contact-map iframe{display:block;width:100%;height:420px;border:0}.contact-map p{font-size:12px;color:#b8c7df;margin-top:14px}@media(max-width:800px){.contact-map{margin-top:40px}.contact-map iframe{height:350px}}

.gallery-photo{position:relative;min-width:0;background:var(--navy)}
.gallery-photo .gallery-open{display:block;width:100%;height:100%;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
.gallery-photo .gallery-open img{pointer-events:none}
.gallery-photo>button:not(.gallery-open){position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:52px;height:52px;border:1px solid #ffffff70;background:#11244be8;color:white;font-size:25px;cursor:pointer;display:grid;place-items:center}
.gallery-photo>button:not(.gallery-open):hover{background:var(--blue)}
.gallery-photo #prev{left:16px}.gallery-photo #next{right:16px}
.gallery-hint-mobile{display:none}
#large-photo{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
.modal button.modal-prev,.modal button.modal-next{top:50%;transform:translateY(-50%);background:#11244be8;border:1px solid #ffffff70;width:48px;height:48px}
.modal button.modal-prev{left:12px;right:auto}.modal button.modal-next{right:12px}
@media(max-width:800px){.gallery-photo>button:not(.gallery-open){width:40px;height:44px;font-size:22px}.gallery-photo #prev{left:8px}.gallery-photo #next{right:8px}.gallery-hint-desktop{display:none}.gallery-hint-mobile{display:inline}}

/* Let content shrink within grid and flex tracks instead of widening the page. */
.contact-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.contact-grid>*,.service-main,.service-main>div{min-width:0}
.contact h2{font-size:clamp(36px,4vw,64px);overflow-wrap:anywhere}
.service h3{overflow-wrap:anywhere;hyphens:auto}
.service .arrow{flex-shrink:0}
@media(max-width:800px){
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .contact h2{font-size:clamp(30px,8vw,55px);line-height:1.08}
  .contact-details .button{max-width:100%;gap:16px}
  .mobile-call .button{gap:8px;padding:14px 12px;font-size:13px}
  .mobile-call .button>span{font-size:clamp(14px,4vw,18px);white-space:nowrap}
}

.gallery-open img,.gallery-open:hover img{transform:none;transition:none}

@media(max-width:800px){.mobile-call{border:2px solid var(--navy);box-shadow:0 8px 28px #07163155}.mobile-call .button{background:#fff;color:var(--navy)}.mobile-call .button:hover{background:#eaf0ff}}
