:root{
  --pink:#ff0080;
  --pink-dark:#d4006b;
  --light:#ececec;
  --ink:#161616;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:"Libre Baskerville", Georgia, "Times New Roman", serif;
  background:var(--light);
  color:var(--ink);
}

.py-lg-6{
  padding-top:6rem;
  padding-bottom:6rem;
}

.navbar{
  background:var(--pink);
}

.navbar-brand,
.navbar-brand:hover,
.nav-link,
.nav-link:hover,
.nav-link:focus{
  color:#fff;
}

.navbar-brand{
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:2rem;
  font-weight:700;
}

.brand-logo{
  height:44px;
  width:auto;
}

.nav-link{
  font-size:1.15rem;
  font-weight:700;
  margin-left:1rem;
}

.navbar-toggler{
  filter:invert(1);
}

.section-light{
  background:var(--light);
}

.section-pink{
  background:var(--pink);
}

.site-title,
.section-title,
.footer-brand,
.footer-location,
.service-card h3,
.contact-list strong{
  font-family:"Cormorant Garamond", Georgia, serif;
  font-weight:700;
}

.site-title{
  color:var(--pink);
  line-height:1;
}

.hero-copy,
.section-subtitle,
.about-copy,
.contact-list,
.service-card p{
  font-size:1.15rem;
  line-height:1.8;
}

.hero-wordmark{
  max-width:320px;
  width:100%;
}

.portrait-frame{
  max-width:360px;
  padding:1rem;
  background:#fff;
  border-radius:1.5rem;
  box-shadow:0 1.2rem 2.5rem rgba(0,0,0,.12);
}

.hero-portrait{
  border-radius:1rem;
  display:block;
  width:100%;
}

.btn-primary{
  background:var(--pink);
  border-color:var(--pink);
}

.btn-primary:hover,
.btn-primary:focus{
  background:var(--pink-dark);
  border-color:var(--pink-dark);
}

.portfolio-card{
  position:relative;
  width:100%;
  padding:0;
  border:0;
  background:#fff;
  border-radius:1.25rem;
  overflow:hidden;
  box-shadow:0 1rem 2rem rgba(0,0,0,.14);
  transition:transform .25s ease, box-shadow .25s ease;
}

.portfolio-card:hover{
  transform:translateY(-6px);
  box-shadow:0 1.35rem 2.4rem rgba(0,0,0,.18);
}

.portfolio-card img{
  width:100%;
  height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}

.portfolio-label{
  position:absolute;
  left:1rem;
  bottom:1rem;
  padding:.45rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  font-size:.9rem;
  font-weight:700;
}

.about-copy{
  max-width:44rem;
  color:var(--pink-dark);
}

.about-logo,
.services-logo,
.contact-logo{
  max-width:100%;
}

.service-card{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  border-radius:1.25rem;
  padding:2rem 1.4rem;
  box-shadow:0 1rem 2rem rgba(0,0,0,.12);
}

.service-card h3{
  font-size:2rem;
  margin-bottom:1rem;
}

.contact-card{
  background:#fff;
  border-radius:1.5rem;
  padding:2rem;
  box-shadow:0 1.2rem 2.4rem rgba(0,0,0,.08);
}

.contact-list{
  color:var(--pink-dark);
}

.contact-list p{
  margin-bottom:1.25rem;
}

.contact-list a{
  color:var(--pink-dark);
  word-break:break-word;
}

.site-footer{
  color:#fff;
}

.footer-brand,
.footer-location{
  font-size:2.2rem;
  line-height:1.1;
}

.modal-content{
  border-radius:1.25rem;
}

.modal-header{
  border-bottom:0;
}

@media (max-width: 991.98px){
  .nav-link{margin-left:0;}
  .site-title{font-size:clamp(3rem, 11vw, 5rem);}
}

@media (min-width: 992px){
  .site-title{font-size:5.4rem;}
}

@media (max-width: 575.98px){
  .navbar-brand{font-size:1.45rem;}
  .brand-logo{height:34px;}
  .hero-copy,
  .section-subtitle,
  .about-copy,
  .contact-list,
  .service-card p{font-size:1rem;}
  .footer-brand,
  .footer-location{font-size:1.7rem;}
  .contact-card{padding:1.4rem;}
}

.navbar-brand img { height: 80px !important; }

.navbar-brand img { height: 110px !important; }
