
:root{--cream:#f8f4ef;--blush:#d8b2a7;--rose:#b98e82;--charcoal:#292725;--white:#fff;--line:rgba(41,39,37,.14);--shadow:0 18px 55px rgba(35,29,27,.12);--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--charcoal);font-family:var(--sans);line-height:1.65}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.container{width:min(1180px,92vw);margin:auto}.eyebrow{letter-spacing:.22em;text-transform:uppercase;font-size:.75rem;font-weight:700;color:var(--rose)}.section{padding:88px 0}.section.soft{background:#fffaf6}.section.dark{background:var(--charcoal);color:white}.section.white{background:white}h1,h2{font-family:var(--serif);font-weight:500;line-height:1.05;margin:0 0 18px}h1{font-size:clamp(3rem,7vw,6.5rem)}h2{font-size:clamp(2.2rem,4.6vw,4.4rem)}p{margin:0 0 18px}.lede{font-size:clamp(1.08rem,1.5vw,1.3rem);max-width:700px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 23px;border:1px solid var(--charcoal);font-weight:700;letter-spacing:.09em;text-transform:uppercase;font-size:.78rem;transition:.25s;background:transparent}.btn:hover{background:var(--charcoal);color:white;transform:translateY(-2px)}.btn.light{border-color:white;color:white}.btn.light:hover{background:white;color:var(--charcoal)}.btn.blush{border-color:var(--rose);background:var(--rose);color:white}.btn.blush:hover{background:var(--charcoal);border-color:var(--charcoal)}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
header{position:sticky;top:0;z-index:50;background:rgba(248,244,239,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav{min-height:78px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;font-family:var(--serif);font-size:1.05rem}.brand-mark{font-style:italic;font-size:1.4rem}.navlinks{display:flex;gap:23px;align-items:center}.navlinks a{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.navlinks a:hover{color:var(--rose)}.menu{display:none;border:0;background:transparent;font-size:1.5rem}
.hero{min-height:82vh;position:relative;color:white;display:grid;align-items:end;background:#111;overflow:hidden}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,11,10,.72),rgba(12,11,10,.2) 58%,rgba(12,11,10,.16))}.hero-content{position:relative;z-index:2;padding:100px 0 80px;max-width:790px}.hero .tag{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,2.3vw,2rem)}.hero .kicker{letter-spacing:.22em;text-transform:uppercase;font-size:.8rem;font-weight:700}.logo-strip{padding:28px 0;background:white;border-bottom:1px solid var(--line)}.logo-strip img{max-height:190px;margin:auto;object-fit:contain}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.split.reverse .image{order:2}.image-frame{position:relative}.image-frame:before{content:"";position:absolute;inset:22px -22px -22px 22px;border:1px solid var(--blush)}.image-frame img{position:relative;z-index:1;width:100%;height:650px;object-fit:cover;box-shadow:var(--shadow)}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}.photo-card{position:relative;overflow:hidden;min-height:500px}.photo-card img{width:100%;height:100%;object-fit:cover;transition:.4s}.photo-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.7))}.photo-card:hover img{transform:scale(1.035)}.photo-card span{position:absolute;left:24px;bottom:22px;z-index:2;color:white;font-family:var(--serif);font-size:1.7rem}
.feature-dark{display:grid;grid-template-columns:1.25fr .75fr;min-height:680px}.feature-dark .photo img{width:100%;height:100%;object-fit:cover}.feature-dark .copy{padding:70px;display:flex;flex-direction:column;justify-content:center;background:var(--charcoal);color:white}
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:160px;gap:12px;margin-top:36px}.mosaic figure{margin:0;overflow:hidden}.mosaic img{width:100%;height:100%;object-fit:cover}.m1{grid-column:span 7;grid-row:span 3}.m2{grid-column:span 5;grid-row:span 2}.m3{grid-column:span 5;grid-row:span 2}.m4,.m5,.m6{grid-column:span 4;grid-row:span 2}.m7,.m8{grid-column:span 6;grid-row:span 2}
.page-hero{padding:130px 0 90px;background:var(--charcoal);color:white;position:relative;overflow:hidden}.page-hero:after{content:"♡";position:absolute;right:7vw;top:30px;font-family:var(--serif);font-size:14rem;color:rgba(216,178,167,.12)}.page-hero p{max-width:680px;font-size:1.15rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery-grid img{width:100%;height:420px;object-fit:cover}.gallery-grid .wide{grid-column:span 2}.gallery-grid .tall{height:640px}.gallery-grid .full{grid-column:1/-1;height:620px}.quote{font-family:var(--serif);font-size:clamp(2rem,4vw,4rem);line-height:1.18;max-width:980px}.quote em{color:var(--rose)}
.booking{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.form{background:white;padding:38px;box-shadow:var(--shadow)}label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:18px 0 7px}input,select,textarea{width:100%;padding:13px;border:1px solid #d9d2cc;background:#fff;font:inherit}textarea{min-height:140px;resize:vertical}.note{font-size:.88rem;color:#756b65}
footer{background:#1f1d1b;color:#eee;padding:54px 0 32px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:45px}.footer-title{font-family:var(--serif);font-size:1.8rem}.footer-links{display:grid;gap:8px;font-size:.9rem}.copyright{border-top:1px solid rgba(255,255,255,.14);padding-top:20px;margin-top:35px;font-size:.8rem;color:#bfb8b3}
@media(max-width:900px){.navlinks{display:none;position:absolute;left:0;right:0;top:78px;background:var(--cream);padding:20px 4vw;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.navlinks.open{display:flex}.menu{display:block}.split,.feature-dark,.booking,.footer-grid{grid-template-columns:1fr}.split.reverse .image{order:0}.feature-dark .copy{padding:48px 7vw}.cards3{grid-template-columns:1fr}.photo-card{min-height:420px}.image-frame img{height:520px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid .wide,.gallery-grid .full{grid-column:1/-1}.mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:250px}.mosaic>*{grid-column:auto!important;grid-row:auto!important}.hero{min-height:72vh}}
@media(max-width:620px){.section{padding:64px 0}.hero-content{padding:72px 0 55px}.logo-strip img{max-height:135px}.gallery-grid{grid-template-columns:1fr}.gallery-grid .wide,.gallery-grid .full{grid-column:auto}.gallery-grid img,.gallery-grid .tall,.gallery-grid .full{height:430px}.mosaic{grid-template-columns:1fr;grid-auto-rows:340px}.image-frame:before{display:none}.image-frame img{height:470px}.form{padding:24px}.page-hero{padding:100px 0 70px}}

.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.album-card{background:white;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.album-cover{height:340px;overflow:hidden}
.album-cover img{width:100%;height:100%;object-fit:cover;transition:.35s}
.album-card:hover .album-cover img{transform:scale(1.025)}
.album-body{padding:24px}
.album-meta{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);font-weight:700;margin-bottom:8px}
.album-body h3{font-family:var(--serif);font-size:1.9rem;margin:0 0 12px;line-height:1.1}
@media(max-width:900px){.album-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.album-grid{grid-template-columns:1fr}.album-cover{height:300px}}

/* Stories in Motion: preserve the photographer's original framing */
.mosaic{
  display:block;
  columns:3 280px;
  column-gap:14px;
  margin-top:36px;
}
.mosaic figure,
.mosaic .m1,.mosaic .m2,.mosaic .m3,.mosaic .m4,
.mosaic .m5,.mosaic .m6,.mosaic .m7,.mosaic .m8{
  display:inline-block;
  width:100%;
  margin:0 0 14px;
  break-inside:avoid;
  overflow:hidden;
  grid-column:auto;
  grid-row:auto;
}
.mosaic img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
}
@media(max-width:900px){
  .mosaic{columns:2 240px;}
}
@media(max-width:620px){
  .mosaic{columns:1;}
}
