:root{
  color-scheme:light;
  --ivory:#f7f1eb;
  --plum:#342a32;
  --rose:#b77b78;
  --rose-dark:#81514f;
  --white:#fff;
  --muted:#665a60;
  --line:#e5dcd9;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
  --content:1240px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --duration:260ms;
  --z-header:20;
  --z-menu:30}

*{
  box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:6rem}
body{
  margin:0;
  background:var(--ivory);
  color:var(--plum);
  font:400 15px/1.75 var(--sans);
  -webkit-font-smoothing:antialiased}
img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover}
a{
  color:inherit;
  text-decoration:none}
button{
  font:inherit}
::selection{
  background:var(--rose);
  color:var(--plum)}
.wrap{
  width:min(var(--content),calc(100% - 64px));
  margin-inline:auto}
.skip-link{
  position:fixed;
  top:.5rem;
  left:.5rem;
  z-index:100;
  padding:.75rem 1rem;
  background:var(--plum);
  color:var(--white);
  transform:translateY(-160%)}
.skip-link:focus{
  transform:translateY(0)}
:focus-visible{
  outline:2px solid var(--rose-dark);
  outline-offset:4px}

.site-header{
  position:sticky;
  top:0;
  z-index:var(--z-header);
  background:rgba(247,241,235,.96);
  border-bottom:1px solid transparent;
  transition:border-color var(--duration),box-shadow var(--duration),background var(--duration)}
.site-header.is-scrolled{
  border-color:var(--line);
  box-shadow:0 5px 20px rgba(52,42,50,.045);
  background:rgba(247,241,235,.98)}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:88px}
.brand{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  line-height:1}
.brand-name{
  font:600 38px/.8 var(--serif);
  letter-spacing:-.055em}
.brand-caption{
  margin-top:8px;
  font-size:8px;
  letter-spacing:.2em}
.site-nav{
  display:flex;
  align-items:center;
  gap:clamp(18px,2.5vw,36px);
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em}
.site-nav>a:not(.nav-cta){
  position:relative;
  padding-block:10px}
.site-nav>a:not(.nav-cta)::after{
  position:absolute;
  right:0;
  bottom:3px;
  left:0;
  height:1px;
  background:var(--rose-dark);
  content:"";
  transform:scaleX(0);
  transform-origin:right;
  transition:transform var(--duration) var(--ease)}
.site-nav>a:not(.nav-cta):hover::after,.site-nav>a[aria-current=location]::after{
  transform:scaleX(1);
  transform-origin:left}
.nav-cta{
  display:inline-flex;
  align-items:center;
  gap:13px;
  padding:13px 17px;
  background:var(--plum);
  color:var(--white);
  transition:background var(--duration)}
.nav-cta:hover{
  background:var(--rose-dark)}
.nav-cta span,.button span,.text-link span{
  display:inline-block;
  transition:transform var(--duration) var(--ease)}
.nav-cta:hover span,.button:hover span,.text-link:hover span{
  transform:translate(3px,-2px)}
.menu-toggle{
  display:none}

.eyebrow{
  margin:0 0 21px;
  color:var(--rose-dark);
  font-size:10px;
  font-weight:700;
  letter-spacing:.19em;
  line-height:1.5}
 .eyebrow span{
  padding-inline:5px;
  color:var(--rose)}
h1,h2,h3,p{
  margin-top:0}
h1,h2,.manifesto-line{
  font:400 clamp(46px,6.1vw,82px)/.97 var(--serif);
  letter-spacing:-.035em}
h1 em,h2 em,h3 em,.manifesto-line em{
  color:var(--rose-dark);
  font-weight:400}

.hero{
  position:relative;
  padding-top:clamp(65px,8.5vw,120px)}
.hero-copy{
  position:relative;
  z-index:1;
  padding-bottom:56px}
.hero h1{
  max-width:890px;
  margin-bottom:25px}
.hero-description{
  max-width:560px;
  margin-bottom:29px;
  color:var(--muted);
  font-size:14px;
  line-height:1.9}
.hero-actions{
  display:flex;
  align-items:center;
  gap:31px}
.button{
  display:inline-flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:14px 20px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.015em;
  transition:background var(--duration),color var(--duration),border-color var(--duration)}
.button-dark{
  background:var(--plum);
  color:var(--white)}
.button-dark:hover{
  background:var(--rose-dark)}
.button-light{
  background:var(--ivory);
  color:var(--plum)}
.button-light:hover{
  background:var(--white)}
.button-outline{
  border:1px solid var(--plum)}
.button-outline:hover{
  background:var(--plum);
  color:var(--white)}
.text-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:11px;
  font-weight:700}
.text-link.underlined{
  padding-bottom:6px;
  border-bottom:1px solid var(--rose)}
.hero-tags{
  margin:35px 0 0;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
  letter-spacing:.17em}
.hero-tags i{
  display:inline-block;
  width:4px;
  height:4px;
  margin:0 13px 2px;
  border-radius:50%;
  background:var(--rose)}
.hero-image{
  position:relative;
  width:min(100% - 64px,1560px);
  height:clamp(300px,51vw,675px);
  margin:0 auto;
  overflow:hidden;
  background:#d8c9c1}
.hero-image img{
  object-position:center 43%}
.hero-image::after{
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.16);
  content:"";
  pointer-events:none}
.hero-image figcaption{
  position:absolute;
  right:27px;
  bottom:23px;
  color:#fff;
  font-size:9px;
  font-weight:700;
  letter-spacing:.2em;
  text-shadow:0 1px 8px rgba(0,0,0,.45)}
.section-pad{
  padding-block:clamp(90px,12vw,165px)}
.about-grid{
  display:grid;
  grid-template-columns:minmax(250px,.82fr) minmax(360px,1.18fr);
  column-gap:clamp(55px,9vw,130px);
  row-gap:70px;
  align-items:center}
.about-photo{
  position:relative;
  width:100%;
  height:clamp(390px,53vw,650px)}
.about-photo img{
  object-position:center}
.photo-note{
  position:absolute;
  right:-30px;
  bottom:32px;
  padding:13px 17px;
  background:var(--ivory);
  font-size:9px;
  font-weight:700;
  letter-spacing:.12em}
.about-copy h2,.section-heading h2,.contact h2{
  margin-bottom:27px;
  font-size:clamp(47px,5vw,67px)}
.about-copy>p:not(.eyebrow),.contact-intro>p:not(.eyebrow){
  max-width:590px;
  margin-bottom:18px;
  color:var(--muted);
  font-size:13px;
  line-height:1.95}
.about-copy .text-link{
  margin-top:15px}
.values{
  display:grid;
  grid-column:1/-1;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line)}
.values>div{
  padding:24px 30px 0 0}
.values>div+div{
  padding-left:29px;
  border-left:1px solid var(--line)}
.value-number{
  color:var(--rose-dark);
  font-size:10px;
  letter-spacing:.15em}
.values h3{
  margin:15px 0 5px;
  font:500 26px/1.1 var(--serif)}
.values p{
  margin:0;
  color:var(--muted);
  font-size:11px}

.services{
  background:#f1e9e3}
.section-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:55px;
  margin-bottom:67px}
.section-heading h2{
  margin:0}
.section-heading>p{
  max-width:390px;
  margin:0 4% 7px 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.9}
.service-feature{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  min-height:560px;
  margin-bottom:82px;
  background:var(--ivory)}
.service-image{
  position:relative;
  min-height:300px;
  overflow:hidden;
  background:#d7c5bd}
.service-image img{
  transition:transform 800ms var(--ease)}
.service-image:hover img{
  transform:scale(1.025)}
.image-index{
  position:absolute;
  top:18px;
  left:18px;
  padding:7px 9px;
  background:var(--ivory);
  font-size:9px;
  letter-spacing:.12em}
.service-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(32px,5.2vw,72px)}
.service-copy h3{
  margin:0 0 17px;
  font:500 clamp(34px,3.4vw,48px)/1 var(--serif)}
.service-title{
  margin-bottom:20px;
  font:400 26px/1.05 var(--serif)}
.service-copy>p:not(.eyebrow,.service-title){
  margin-bottom:25px;
  color:var(--muted);
  font-size:12px;
  line-height:1.9}
.service-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:clamp(35px,7vw,96px);
  row-gap:80px}
.service-item{
  min-width:0}
.service-item:nth-child(even){
  margin-top:85px}
.service-item .service-image{
  height:clamp(270px,36vw,440px)}
.service-item-copy{
  max-width:530px;
  padding-top:25px}
.service-item-copy .eyebrow{
  margin-bottom:12px}
.service-item-copy h3{
  margin-bottom:12px;
  font:500 clamp(30px,3vw,40px)/1.08 var(--serif)}
.service-item-copy>p:not(.eyebrow){
  min-height:88px;
  margin-bottom:19px;
  color:var(--muted);
  font-size:12px;
  line-height:1.85}
.service-item-wide{
  display:grid;
  grid-column:1/-1;
  grid-template-columns:1.25fr .75fr;
  gap:45px;
  align-items:center;
  margin-top:0!important}
.service-item-wide .service-image{
  height:390px}
.service-item-wide .service-item-copy{
  padding:0}
.complements{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:70px;
  margin-top:145px;
  padding-top:47px;
  border-top:1px solid #d8cbc5}
.complement-intro h3{
  margin:0;
  font:400 clamp(37px,4vw,52px)/1.05 var(--serif)}
.complement-intro h3 em{
  color:var(--rose-dark)}
.complement-list{
  margin:0;
  padding:0;
  list-style:none}
.complement-list li{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:20px;
  padding:15px 0;
  border-bottom:1px solid #d8cbc5}
.complement-list li:first-child{
  padding-top:0}
.complement-list li span{
  font:500 21px/1.15 var(--serif)}
.complement-list small{
  color:var(--muted);
  font-size:10px;
  line-height:1.6}
.services-end{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:67px;
  padding-top:28px;
  border-top:1px solid #d8cbc5}
.services-end p{
  margin:0;
  font:400 27px var(--serif)}

.gift{
  background:var(--plum);
  color:var(--ivory)}
.gift-grid{
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:clamp(55px,9vw,130px);
  align-items:center}
.gift-copy{
  padding-block:30px}
.gift .eyebrow{
  color:#d7aaa5}
.gift h2{
  margin-bottom:26px;
  font-size:clamp(48px,5.4vw,72px)}
.gift h2 em{
  color:#d7aaa5}
.gift-copy>p:not(.eyebrow){
  max-width:500px;
  margin-bottom:28px;
  color:#e0d8d9;
  font-size:13px;
  line-height:1.95}
.gift-photo{
  position:relative;
  height:clamp(430px,54vw,660px)}
.gift-caption{
  position:absolute;
  right:0;
  bottom:0;
  padding:13px 17px;
  background:var(--ivory);
  font-size:9px;
  font-weight:700;
  letter-spacing:.16em}
.manifesto{
  padding-block:clamp(105px,14vw,190px)}
.manifesto-inner{
  text-align:center}
.manifesto-line{
  margin:0 auto 35px;
  font-size:clamp(43px,7vw,91px)}
.manifesto-bottom{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:40px;
  color:var(--muted);
  font-size:11px}
.manifesto-bottom .text-link{
  color:var(--plum)}
.contact{
  background:#eee5df}
.contact-grid{
  display:grid;
  grid-template-columns:1fr .85fr;
  gap:clamp(55px,10vw,140px)}
.contact-intro h2{
  font-size:clamp(46px,5vw,65px)}
.contact-intro>p:not(.eyebrow){
  margin-bottom:26px}
.contact-details{
  padding-top:11px}
.contact-row{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:0 0 25px;
  margin-bottom:25px;
  border-bottom:1px solid #d8cbc5}
.contact-row .eyebrow{
  margin-bottom:11px}
.contact-row address,.contact-row>a,.contact-row>p{
  margin:0;
  font-size:13px;
  font-style:normal;
  line-height:1.9}
.contact-row .text-link{
  margin-top:10px}
.final-cta{
  padding-block:clamp(90px,11vw,145px);
  background:var(--rose);
  color:#241d23;
  text-align:center}
.final-cta .eyebrow{
  color:#241d23}
.final-cta h2{
  margin-bottom:23px;
  font-size:clamp(52px,6vw,78px)}
.final-cta h2 em{
  color:#fff3ec}
.final-cta-inner>p:not(.eyebrow){
  max-width:530px;
  margin:0 auto 26px;
  font-size:12px}
.final-cta small{
  display:block;
  margin-top:15px;
  font-size:10px}
.site-footer{
  padding-block:48px 20px;
  background:var(--plum);
  color:var(--ivory)}
.footer-main{
  display:grid;
  grid-template-columns:.8fr 1fr 1fr 1fr;
  gap:30px;
  align-items:start;
  padding-bottom:43px}
.footer-brand{
  align-items:flex-start}
.footer-brand .brand-name{
  font-size:42px}
.footer-brand .brand-caption{
  color:#d7aaa5}
.footer-main>p{
  margin:0;
  color:#d4c9ce;
  font-size:11px}
.footer-main nav,.footer-contact{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:11px}
.footer-main a:hover{
  color:#d7aaa5}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:25px;
  padding-top:15px;
  border-top:1px solid rgba(255,255,255,.15);
  color:#c8bdc1;
  font-size:9px}

.js-enabled .reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 650ms var(--ease),transform 650ms var(--ease)}
.js-enabled .reveal.is-visible{
  opacity:1;
  transform:translateY(0)}

@media(min-width:1440px){
  .hero-copy{
  padding-bottom:65px}
}

@media(max-width:900px){
  .wrap{
  width:min(var(--content),calc(100% - 44px))}
.header-inner{
  min-height:76px}
.site-nav{
  gap:17px;
  font-size:10px}
.nav-cta{
  padding:11px 12px}
.hero-image{
  width:calc(100% - 44px)}
.about-grid{
  column-gap:50px}
.section-heading{
  gap:35px}
.section-heading>p{
  max-width:330px;
  margin-right:0}
.service-copy{
  padding:35px}
.service-item-copy>p:not(.eyebrow){
  min-height:125px}
.complements{
  gap:40px}
}

@media(max-width:700px){
  html{
  scroll-padding-top:5rem}
body{
  font-size:14px}
.wrap{
  width:calc(100% - 40px)}
.header-inner{
  min-height:72px}
.brand-name{
  font-size:34px}
.menu-toggle{
  position:relative;
  z-index:var(--z-menu);
  display:flex;
  width:44px;
  height:44px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:0;
  background:transparent;
  color:var(--plum);
  cursor:pointer}
.menu-toggle span{
  width:22px;
  height:1px;
  background:currentColor;
  transition:transform var(--duration)}
.menu-toggle[aria-expanded=true] span:first-child{
  transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{
  transform:translateY(-3.5px) rotate(-45deg)}
.site-nav{
  position:absolute;
  top:100%;
  right:0;
  left:0;
  display:none;
  align-items:stretch;
  gap:0;
  padding:9px 20px 22px;
  border-bottom:1px solid var(--line);
  background:var(--ivory);
  font-size:13px}
.site-nav.is-open{
  display:flex;
  flex-direction:column}
.site-nav>a:not(.nav-cta){
  padding:13px 2px;
  border-bottom:1px solid var(--line)}
.site-nav>a:not(.nav-cta)::after{
  display:none}
.nav-cta{
  justify-content:space-between;
  margin-top:14px;
  padding:15px}
.hero{
  padding-top:61px}
.hero-copy{
  padding-bottom:37px}
.eyebrow{
  margin-bottom:16px;
  font-size:9px;
  letter-spacing:.15em}
h1{
  font-size:clamp(47px,12.6vw,67px)}
.hero h1{
  margin-bottom:19px}
.hero-description{
  font-size:12px;
  line-height:1.85}
.hero-actions{
  align-items:flex-start;
  flex-direction:column;
  gap:20px}
.button{
  min-height:51px;
  padding:13px 16px;
  font-size:10px}
.hero-tags{
  margin-top:26px;
  font-size:8px;
  letter-spacing:.11em}
.hero-tags i{
  margin-inline:7px}
.hero-image{
  width:calc(100% - 20px);
  height:390px}
.hero-image img{
  object-position:55% center}
.hero-index{
  right:17px;
  bottom:31px;
  font-size:8px}
.section-pad{
  padding-block:88px}
.about-grid{
  grid-template-columns:1fr;
  row-gap:46px}
.about-photo{
  width:83%;
  height:440px}
.photo-note{
  right:-32px;
  bottom:22px;
  font-size:8px}
.about-copy h2,.section-heading h2,.contact h2{
  font-size:clamp(46px,11vw,60px)}
.about-copy>p:not(.eyebrow){
  font-size:12px}
.values{
  grid-template-columns:1fr}
.values>div,.values>div+div{
  padding:19px 0;
  border-bottom:1px solid var(--line);
  border-left:0}
.values h3{
  margin-top:7px}
.section-heading{
  align-items:flex-start;
  flex-direction:column;
  gap:20px;
  margin-bottom:43px}
.section-heading>p{
  max-width:100%;
  font-size:12px}
.service-feature{
  grid-template-columns:1fr;
  margin-bottom:61px}
.service-feature .service-image{
  height:335px}
.service-copy{
  padding:29px 23px 34px}
.service-copy h3{
  font-size:38px}
.service-copy>p:not(.eyebrow,.service-title){
  font-size:11px}
.service-grid{
  grid-template-columns:1fr;
  row-gap:50px}
.service-item:nth-child(even){
  margin-top:0}
.service-item .service-image{
  height:350px}
.service-item-copy{
  padding-top:19px}
.service-item-copy h3{
  font-size:35px}
.service-item-copy>p:not(.eyebrow){
  min-height:0;
  font-size:11px}
.service-item-wide{
  display:block;
  grid-column:auto}
.service-item-wide .service-image{
  height:330px}
.service-item-wide .service-item-copy{
  padding-top:19px}
.complements{
  grid-template-columns:1fr;
  gap:24px;
  margin-top:85px;
  padding-top:31px}
.complement-intro h3{
  font-size:43px}
.complement-list li{
  grid-template-columns:1fr;
  gap:4px}
.services-end{
  align-items:flex-start;
  flex-direction:column;
  gap:16px;
  margin-top:42px}
.services-end p{
  font-size:25px}
.gift-grid{
  grid-template-columns:1fr;
  gap:30px}
.gift-copy{
  padding:0}
.gift h2{
  font-size:clamp(47px,11vw,60px)}
.gift-copy>p:not(.eyebrow){
  font-size:12px}
.gift-photo{
  height:410px}
.manifesto{
  padding-block:95px}
.manifesto-line{
  font-size:clamp(45px,11vw,65px)}
.manifesto-bottom{
  flex-direction:column;
  gap:17px}
.contact-grid{
  grid-template-columns:1fr;
  gap:48px}
.contact-intro>p:not(.eyebrow){
  font-size:12px}
.contact-row{
  margin-bottom:20px}
.final-cta h2{
  font-size:clamp(50px,11vw,65px)}
.final-cta-inner>p:not(.eyebrow){
  font-size:11px}
.footer-main{
  grid-template-columns:1fr 1fr;
  row-gap:30px}
.footer-bottom{
  align-items:flex-start;
  flex-direction:column;
  gap:5px}
}

@media(max-width:380px){
  .wrap{
  width:calc(100% - 32px)}
.hero-image{
  width:calc(100% - 12px);
  height:340px}
.hero-tags{
  letter-spacing:.07em}
.hero-tags i{
  margin-inline:4px}
.about-photo{
  height:390px}
.service-item .service-image{
  height:300px}
}

/* Keep treatment photography consistent while preserving portraits for Pinup. */
.service-feature .service-image,
.service-item .service-image,
.service-item-wide .service-image{
  height:auto;
  min-height:0;
  aspect-ratio:3 / 2}
.service-feature,
.service-item-wide{
  min-height:0}
.service-feature .service-image,
.service-item-wide .service-image{
  align-self:center}

.hero{
  padding-block:clamp(56px,7vw,100px)}
.hero-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.95fr);
  align-items:center;
  gap:clamp(36px,6vw,88px)}
.hero-copy{
  padding-bottom:0}
.hero h1{
  max-width:650px;
  font-size:clamp(50px,5.2vw,72px);
  line-height:.98}
.hero-description{
  max-width:510px}
.hero-image{
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  margin:0;
  overflow:hidden;
  background:#e7ddd7}
.hero-image img{
  object-position:center 42%}
.hero-image::after{
  border:1px solid rgba(255,255,255,.45)}
.hero-image figcaption{
  position:absolute;
  right:17px;
  bottom:17px;
  padding:9px 12px;
  background:rgba(52,42,50,.78);
  color:var(--white);
  font-size:9px;
  letter-spacing:.16em;
  text-shadow:none}
.about-photo{
  width:100%;
  height:clamp(390px,38vw,500px)}
.about-photo img,
.gift-photo img{
  object-position:center 40%}
.gift-photo{
  height:clamp(460px,54vw,660px)}

@media(max-width:820px){
  .hero{
    padding-block:54px 75px}
  .hero-layout{
    grid-template-columns:1fr;
    gap:32px}
  .hero-copy{
    max-width:650px}
  .hero h1{
    max-width:620px;
    font-size:clamp(50px,9vw,68px)}
  .hero-image{
    width:100%;
    aspect-ratio:16 / 10}
}

@media(max-width:1024px){
  .hero-actions{
    align-items:flex-start;
    flex-direction:column;
    gap:18px}
}

@media(max-width:700px){
  .hero{
    padding-block:48px 64px}
  .hero-layout{
    gap:27px}
  .hero h1{
    font-size:clamp(47px,12vw,62px)}
  .hero-image{
    aspect-ratio:4 / 3}
  .about-photo{
    width:100%;
    height:clamp(390px,105vw,430px)}
  .gift-photo{
    height:min(135vw,480px)}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
  scroll-behavior:auto!important;
  transition-duration:.01ms!important;
  animation-duration:.01ms!important;
  animation-iteration-count:1!important}
.js-enabled .reveal{
  opacity:1;
  transform:none}
}

