:root{--blue:#6e9ec1;--deep:#315b78;--ink:#252728;--warm:#f5f3ee;--white:#fff;--gap:8px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--warm)}
body{margin:0;color:var(--ink);font-family:"Montserrat",Arial,sans-serif;background:var(--warm);padding-bottom:78px}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
.brand-bar{height:118px;display:grid;place-items:center;background:rgba(255,255,255,.98);position:relative;z-index:3}
.brand-bar img{width:96px;height:96px;object-fit:contain}
.hero{min-height:calc(100svh - 118px);position:relative;background:url("assets/hero-v3.png") center 28%/cover no-repeat;display:flex;align-items:flex-end;overflow:hidden}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,32,38,.04) 35%,rgba(24,31,34,.82) 100%)}
.hero-copy{position:relative;color:#fff;padding:0 26px 68px;width:100%;text-shadow:0 1px 14px rgba(0,0,0,.22)}
.hero-services{position:absolute;z-index:2;top:34px;left:clamp(14px,4vw,24px);right:clamp(14px,4vw,24px);display:flex;align-items:center;justify-content:space-between;color:#151515;font-size:clamp(10px,3.5vw,14px);line-height:1.5;letter-spacing:.035em;text-transform:uppercase;margin:0;font-weight:500;white-space:nowrap}
.hero-services b{color:#315b78;font-size:1.2em;font-weight:500}
.hero-copy h1{font-size:clamp(36px,10vw,52px);font-weight:300;letter-spacing:-.04em;line-height:1.04;margin:0 0 24px}
.hero-cta,.primary,.secondary{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.04em}
.hero-cta{width:170px;background:#fff;color:var(--deep);text-shadow:none}
.scroll-cue{position:absolute;right:24px;bottom:28px;width:28px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:18px}
.scroll-cue:after{content:"";position:absolute;left:50%;top:9px;width:3px;height:7px;border-radius:4px;background:#fff;transform:translateX(-50%);animation:scroll 1.7s infinite}
@keyframes scroll{0%{opacity:0;transform:translate(-50%,0)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}
.intro{padding:72px 28px 52px;text-align:center;max-width:600px;margin:auto}
.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.18em;font-size:10px;font-weight:600;margin:0 0 13px}
.intro h2,.contact h2{color:var(--deep);font-size:29px;font-weight:300;line-height:1.2;letter-spacing:-.035em;margin:0 auto 20px;max-width:390px}
.intro>p:last-child{font-size:14px;line-height:1.8;color:#686b6c;margin:0 auto;max-width:420px}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);padding:var(--gap);background:#fff}
.gallery figure{margin:0;overflow:hidden;background:#eae8e3;border-radius:2px}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.gallery .portrait{aspect-ratio:2/3}
.gallery .landscape{grid-column:1/-1;aspect-ratio:16/9}
.gallery .solo{grid-column:1/-1;width:calc(50% - 4px);justify-self:center}
.gallery figure.visible img{transform:scale(1.015)}
.contact{text-align:center;padding:78px 28px 62px;background:#f3f5f5}
.contact>img{width:112px;margin:0 auto 28px}
.contact .primary{max-width:340px;margin:28px auto 10px;color:white;background:var(--blue);font-size:17px}
.contact .secondary{max-width:340px;margin:auto;border:1px solid rgba(49,91,120,.3);color:var(--deep)}
.address{font-size:12px;color:#777;margin:22px 0 0}
.quick-actions{position:fixed;z-index:20;bottom:0;left:0;right:0;height:calc(68px + env(safe-area-inset-bottom));padding:8px 10px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(255,255,255,.94);border-top:1px solid rgba(49,91,120,.13);backdrop-filter:blur(16px)}
.quick-actions a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--deep);font-size:10px;font-weight:600;letter-spacing:.02em}
.quick-actions span{font-size:19px;line-height:1;color:var(--blue)}
@media(min-width:700px){body{max-width:600px;margin:auto;box-shadow:0 0 50px rgba(25,45,57,.14)}.quick-actions{left:50%;max-width:600px;transform:translateX(-50%)}.brand-bar{height:132px}.brand-bar img{width:106px;height:106px}.hero{min-height:760px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-cue:after{animation:none}.gallery img{transition:none}}
