
:root{
  --navy:#1f3548;
  --navy2:#142636;
  --sage:#a9b8a2;
  --sage2:#83967d;
  --ivory:#f8f5ef;
  --white:#fff;
  --ink:#26323b;
  --line:rgba(31,53,72,.13);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:"DM Sans",sans-serif}
img{display:block;width:100%}
a{color:inherit}
.header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(248,245,239,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}
.logo{text-decoration:none;color:var(--navy);display:grid;grid-template-columns:auto auto;column-gap:7px;line-height:.8}
.logo-styled{grid-column:1/3;font:italic 500 35px/1 "Playfair Display",serif;color:var(--sage2)}
.logo-by{font:500 8px/1 "DM Sans";letter-spacing:.2em}
.logo-name{font:600 12px/1 "DM Sans";letter-spacing:.2em}
.header nav{display:flex;gap:28px;align-items:center}
.header nav a{text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.nav-book{background:var(--navy);color:white;padding:14px 20px;border-radius:999px}
.menu{display:none;border:0;background:none;color:var(--navy);font-weight:700}
.hero{min-height:760px;display:grid;grid-template-columns:48% 52%;background:#fbfaf7}
.hero-copy{padding:115px 6vw 80px 8vw;display:flex;flex-direction:column;justify-content:center}
.kicker,.eyebrow{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--sage2)}
h1,h2,h3{font-family:"Playfair Display",serif;color:var(--navy);font-weight:500}
h1{font-size:clamp(60px,7vw,108px);line-height:.94;margin:24px 0}
h1 em{color:var(--sage2)}
.hero-text{font-size:18px;line-height:1.7;max-width:580px}
.actions{display:flex;gap:14px;margin:30px 0 50px;flex-wrap:wrap}
.primary,.secondary{display:inline-flex;text-decoration:none;padding:16px 23px;border-radius:4px;font-weight:700;font-size:13px;letter-spacing:.05em}
.primary{background:var(--navy);color:white}
.secondary{border:1px solid var(--navy);color:var(--navy)}
.hero-details{display:flex;gap:42px;border-top:1px solid var(--line);padding-top:25px}
.hero-details span{display:flex;flex-direction:column}
.hero-details b{font-family:"Playfair Display";font-size:19px;color:var(--navy)}
.hero-details small{font-size:11px;margin-top:3px}
.hero-image{position:relative;min-height:760px;overflow:hidden}
.hero-image img{height:100%;object-fit:cover}
.image-note{position:absolute;left:28px;bottom:28px;background:rgba(248,245,239,.9);padding:15px 18px;font-family:"Playfair Display";font-size:17px;color:var(--navy);max-width:300px}
.marquee{overflow:hidden;background:var(--sage);color:var(--navy);padding:18px;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.16em;text-align:center}
.marquee i{margin:0 24px}
.section{padding:110px 7vw}
.about{display:grid;grid-template-columns:42% 1fr;gap:9vw;align-items:center}
.portrait-wrap{position:relative}
.portrait-wrap img{height:650px;object-fit:cover;object-position:center;border-radius:250px 250px 18px 18px}
.portrait-accent{position:absolute;inset:20px -18px -18px 20px;border:1px solid var(--sage2);border-radius:250px 250px 18px 18px;z-index:-1}
h2{font-size:clamp(46px,5vw,76px);line-height:1.05;margin:14px 0 25px}
.about-copy .lead{font:500 28px/1.4 "Playfair Display";color:var(--navy)}
.about-copy p{font-size:16px;line-height:1.8;max-width:650px}
.arrow-link{display:inline-block;margin-top:20px;text-decoration:none;font-weight:700;border-bottom:1px solid var(--sage2);padding-bottom:5px}
.services{background:white}
.section-head{text-align:center;max-width:760px;margin:0 auto 55px}
.section-head>p:last-child{font-size:17px}
.service-grid{max-width:1250px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service{padding:31px;min-height:285px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.service>div{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.service strong{font-size:16px;color:var(--navy)}
.service h3{font-size:29px;margin:35px 0 10px}
.service p{font-size:14px;line-height:1.6;flex:1}
.service a{text-decoration:none;font-size:13px;font-weight:700}
.pricing-note{text-align:center;font-size:12px;margin-top:25px}
.work{background:var(--ivory)}
.work-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}
.work-head a{text-decoration:none;font-weight:700}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery-card{border:0;padding:0;background:none;overflow:hidden;cursor:pointer}
.gallery-card img{height:390px;object-fit:cover;transition:.35s}
.gallery-card:nth-child(2n) img{height:480px}
.gallery-card:hover img{transform:scale(1.025)}
.reviews{background:var(--navy);color:white;display:grid;grid-template-columns:1fr 280px;gap:7vw}
.reviews h2,.reviews blockquote{color:white}
.pale{color:#c6d0c1}
.stars{color:#e3c66e;letter-spacing:.25em}
blockquote{font:500 clamp(30px,4vw,56px)/1.25 "Playfair Display";margin:25px 0;max-width:950px}
.reviewer{font-size:13px;letter-spacing:.08em}
.reviews aside{border-left:1px solid rgba(255,255,255,.25);padding-left:45px;align-self:center}
.big-number{font:500 86px/1 "Playfair Display"}
.reviews aside a{display:inline-block;margin-top:25px;font-weight:700}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.contact-copy>p:not(.eyebrow){font-size:18px;line-height:1.7;max-width:560px;margin-bottom:30px}
.contact-card{background:white;border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}
.contact-card>div{padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.contact-card small{font-weight:700;letter-spacing:.15em;color:var(--sage2)}
.contact-card p{line-height:1.6}
footer{background:var(--navy2);color:white;text-align:center;padding:55px 20px;display:flex;flex-direction:column;gap:13px}
.footer-logo{font:500 31px "Playfair Display"}
.footer-logo i{font-size:17px}
footer a{font-weight:700}
footer small{opacity:.65}
.floating{position:fixed;right:20px;bottom:20px;background:var(--sage);color:var(--navy);text-decoration:none;font-weight:800;font-size:12px;letter-spacing:.12em;padding:17px 20px;border-radius:999px;z-index:10;box-shadow:0 15px 35px rgba(20,38,54,.22)}
.lightbox{display:none;position:fixed;inset:0;background:rgba(12,20,27,.94);z-index:100;align-items:center;justify-content:center;padding:40px}
.lightbox.open{display:flex}
.lightbox img{max-height:90vh;max-width:90vw;width:auto}
.lightbox button{position:absolute;right:25px;top:15px;background:none;border:0;color:white;font-size:48px;cursor:pointer}
@media(max-width:950px){
 .header nav{display:none;position:absolute;top:92px;left:0;right:0;background:var(--ivory);padding:25px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
 .header nav.open{display:flex}.menu{display:block}
 .hero{grid-template-columns:1fr}.hero-copy{padding:90px 7vw 60px}.hero-image{min-height:650px}
 .about{grid-template-columns:1fr}.portrait-wrap{max-width:600px;margin:auto}
 .service-grid{grid-template-columns:1fr 1fr}
 .gallery{grid-template-columns:1fr 1fr}
 .reviews,.contact{grid-template-columns:1fr}
 .reviews aside{border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:30px 0 0}
}
@media(max-width:600px){
 .header{height:78px;padding:0 20px}.header nav{top:78px}
 .logo-styled{font-size:29px}
 .hero-copy{padding:70px 22px 45px}.hero-image{min-height:520px}
 .hero-details{display:grid;grid-template-columns:1fr 1fr;gap:20px}
 .section{padding:78px 22px}
 .portrait-wrap img{height:480px}
 .service-grid{grid-template-columns:1fr}
 .gallery{grid-template-columns:1fr 1fr;gap:8px}
 .gallery-card img,.gallery-card:nth-child(2n) img{height:250px}
 .work-head{display:block}.work-head a{display:inline-block;margin-top:15px}
 .contact-card{grid-template-columns:1fr}
 .contact-card>div{border-right:0}
 .floating{left:18px;right:18px;text-align:center}
}
