
:root{
  --cream:#fbf7f4;
  --blush:#efd9dc;
  --rose:#d7b9bf;
  --ink:#201d1d;
  --muted:#786f70;
  --white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
}
a{color:inherit}
.script{font-family:"Brush Script MT","Segoe Script",cursive;font-weight:400}
nav{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 7vw;background:rgba(251,247,244,.95);
  border-bottom:1px solid rgba(32,29,29,.07);
  backdrop-filter:blur(8px)
}
.brand{font-size:1.75rem;text-decoration:none}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{text-decoration:none;font-size:.82rem;letter-spacing:.11em;text-transform:uppercase}
.btn{
  display:inline-block;padding:13px 22px;border:1px solid var(--ink);
  background:var(--ink);color:#fff;text-decoration:none;
  text-transform:uppercase;letter-spacing:.1em;font-size:.78rem
}
.btn.light{background:transparent;color:var(--ink)}
.btn.cream{background:var(--white);color:var(--ink);border-color:var(--white)}
.hero{
  min-height:78vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff
}
.hero-copy{padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--muted);margin-bottom:10px}
h1{font-size:clamp(3.2rem,7vw,6.6rem);line-height:.93;font-weight:400;margin:0 0 24px}
h2{font-size:clamp(2.1rem,4vw,4rem);font-weight:400;line-height:1.08;margin:0 0 18px}
h3{font-weight:400;font-size:1.35rem}
.hero-copy p,.lead{color:var(--muted);font-size:1.08rem;max-width:650px}
.hero-photo,.photo-box{
  background-color:#e9dfdd;background-position:center;background-size:cover;position:relative
}
.hero-photo{min-height:520px;background-image:url('images/hero.jpg')}
.photo-label{
  position:absolute;left:22px;bottom:22px;background:rgba(255,255,255,.9);
  padding:9px 12px;font-size:.76rem;color:var(--muted)
}
section{padding:88px 8vw}
.center{text-align:center;max-width:780px;margin:0 auto 46px}
.mini{background:var(--blush);text-align:center}
.mini-card{max-width:890px;margin:auto;padding:55px 32px;background:rgba(255,255,255,.62);border:1px solid rgba(32,29,29,.08)}
.price{font-size:3.2rem;line-height:1;margin:12px 0}
.details{display:flex;gap:25px;justify-content:center;flex-wrap:wrap;color:var(--muted);margin:20px 0 30px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.port-card{
  min-height:370px;display:flex;align-items:flex-end;padding:22px;position:relative;overflow:hidden;
  background:#e9dfdd center/cover no-repeat
}
.port-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.5))}
.port-card span{position:relative;z-index:2;color:#fff;font-size:1.45rem}
.p1{background-image:url('images/families.jpg')}
.p2{background-image:url('images/couples.jpg')}
.p3{background-image:url('images/children.jpg')}
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:68px;align-items:center;background:#fff}
.about .photo-box{min-height:520px;background-image:url('images/about.jpg')}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:#fff;padding:34px;border:1px solid rgba(32,29,29,.08)}
.card .price{font-size:2.4rem}
.card ul{padding-left:18px;color:var(--muted)}
.banner{background:var(--ink);color:#fff;text-align:center}
.banner p{color:#d9d2d2;max-width:680px;margin:0 auto 28px}
.form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:start}
form{background:#fff;padding:34px;border:1px solid rgba(32,29,29,.08)}
label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;margin:15px 0 7px}
input,select,textarea{
  width:100%;padding:13px;border:1px solid #d8cdce;background:#fff;font:inherit
}
textarea{min-height:130px;resize:vertical}
form button{margin-top:18px;cursor:pointer}
.gallery{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px
}
.gallery .photo-box{min-height:330px}
.gallery .photo-box:nth-child(1){background-image:url('images/gallery1.jpg')}
.gallery .photo-box:nth-child(2){background-image:url('images/gallery2.jpg')}
.gallery .photo-box:nth-child(3){background-image:url('images/gallery3.jpg')}
.gallery .photo-box:nth-child(4){background-image:url('images/gallery4.jpg')}
.gallery .photo-box:nth-child(5){background-image:url('images/gallery5.jpg')}
.gallery .photo-box:nth-child(6){background-image:url('images/gallery6.jpg')}
.note{font-size:.9rem;color:var(--muted)}
footer{
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:34px 8vw;background:#171515;color:#eee6e6;font-size:.83rem
}
@media(max-width:850px){
  .nav-links a:not(.btn){display:none}
  .hero,.about,.form-wrap{grid-template-columns:1fr}
  .hero-copy{padding:90px 8vw 58px}
  .grid3,.cards,.gallery{grid-template-columns:1fr}
  section{padding:68px 7vw}
}

/* Harp Photo Co. real portfolio imagery */
.p1{background-image:url('images/portfolio2.jpg')!important}
.p2{background-image:url('images/portfolio8.jpg')!important}
.p3{background-image:url('images/portfolio4.jpg')!important}

/* Consistent homepage portfolio crops */
.port-card{background-size:cover!important;background-position:center 42%!important}
.hero-photo{background-size:cover!important;background-position:center 42%!important}
