:root{--ref-dark:#242424;--ref-black:#171717;--ref-wine:#1b0507;--ref-paper:#f3f3ef}
body.home-page{background:#fff;color:#262626;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55}.home-page h1,.home-page h2,.home-page h3{font-family:"Libre Baskerville",Georgia,serif;text-transform:uppercase;letter-spacing:.015em}
.hs-header{height:138px;background:#efefeb url('../img/photos/texture.png') center/cover;position:relative;z-index:20}.hs-header__inner{width:min(1180px,92%);height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:36px}.hs-logo{width:185px;height:118px;display:flex;align-items:center}.hs-logo img{width:100%;height:100%;object-fit:contain}.hs-nav{display:flex;align-items:center;background:#fffefa;box-shadow:0 5px 12px #0004;height:48px}.hs-nav>a{position:relative;display:flex;align-items:center;height:48px;padding:0 19px;text-transform:uppercase;font-size:12px;color:#555;white-space:nowrap;transition:height .24s ease,background-color .24s ease,color .24s ease,box-shadow .24s ease}.hs-nav>a:not(.hs-call):hover,.hs-nav>a:not(.hs-call):focus-visible,.hs-nav>a.active{height:78px;background:#242424;color:#fff;box-shadow:0 5px 10px #0004}.hs-nav .hs-call{height:64px;margin-left:1px;background:#242424;color:#fff;padding-inline:28px;gap:12px;box-shadow:0 5px 10px #0004}.hs-nav .hs-call:hover,.hs-nav .hs-call:focus-visible{background:#111}.hs-call img{width:22px;filter:sepia(1) saturate(4)}.hs-nav-check,.hs-nav-toggle{display:none}
.social-rail{position:fixed;z-index:35;left:14px;top:48%;display:grid;gap:14px}.social-rail a{width:21px;height:21px}.social-rail img{width:100%;height:100%}
.hs-hero{height:calc(100vh - 138px);min-height:610px;max-height:850px;position:relative;overflow:hidden;display:grid;place-items:center;color:#fff;text-align:center}.hs-hero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hs-hero__shade{position:absolute;inset:0;background:#0002}.hs-hero__content{position:relative;z-index:2;margin-top:50px}.hs-hero h1{font-family:"Amagro","Bodoni Moda",Didot,serif;font-size:clamp(42px,4vw,67px);font-weight:700;line-height:1.08;letter-spacing:0;text-shadow:0 5px 0 rgba(0,0,0,.3);margin:0 0 36px}.hs-hero p{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:clamp(22px,2vw,33px);font-weight:300;line-height:1.2;margin-bottom:44px;text-shadow:0 4px 5px rgba(0,0,0,.4)}.hs-hero .hs-button{width:min(190px,82vw);min-width:0;padding:9px 18px;letter-spacing:.08em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:300;line-height:1.25}.hs-button{display:inline-flex;min-width:172px;justify-content:center;padding:13px 24px;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.hs-button--dark{background:#252525;color:#fff}.hs-button--light{background:#fff;color:#444}
.hs-services-intro{padding:70px 3.5%;display:grid;grid-template-columns:1fr 1fr;background:var(--ref-paper) url('../img/photos/texture.png') center/cover}.hs-services-intro__image img{height:610px;width:100%;object-fit:cover}.hs-services-intro__copy{background:#222;color:#fff;display:grid;place-items:center}.hs-services-intro__copy>div{width:min(430px,72%)}.hs-services-intro h2{font-size:40px;margin-bottom:45px}.hs-services-intro h3{font:500 14px Arial;text-transform:uppercase;margin-bottom:20px}.hs-services-intro ul{list-style:disc;padding-left:20px;margin-bottom:40px;color:#ddd}
.hs-why{padding:65px 3.3% 68px}.hs-heading{text-align:center;margin:auto auto 48px}.hs-heading h2,.hs-projects>h2,.hs-gallery-section>h2{font-size:38px;margin-bottom:18px}.hs-heading p{color:#666}.hs-trust-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #8c8c8c;max-width:1880px;margin:auto}.hs-trust-grid>div{min-height:255px;display:grid;place-content:center;text-align:center;gap:22px}.hs-trust-grid>div:nth-child(even){background:#242424;color:#eee}.hs-trust-grid img{width:55px;height:55px;margin:auto}.hs-trust-grid>div:nth-child(even) img{filter:invert(1)}.hs-trust-grid span{font-size:17px;line-height:1.3}
.hs-about{background:#ccc;display:grid;grid-template-columns:1fr 1fr;padding:0 2.5%;align-items:stretch}.hs-about__copy{background:#fff;display:grid;place-items:center}.hs-about__copy>div{width:min(580px,70%)}.hs-about h2{font-size:38px;margin-bottom:34px}.hs-about p{color:#666;line-height:1.75;margin-bottom:24px}.hs-about>img{width:100%;height:600px;object-fit:cover}
.hs-gallery-section{background:var(--ref-paper) url('../img/photos/texture.png') center top/100% auto no-repeat;padding:68px 2.6% 72px}.hs-gallery-section>h2{text-align:center;margin-bottom:75px}.hs-gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:130px;gap:48px 52px}.hs-gallery img{width:100%;height:100%;object-fit:cover;border:1px solid #817569}.hs-gallery .portrait{grid-column:span 2;grid-row:span 2}.hs-gallery .wide{grid-column:span 3;grid-row:span 2}.hs-gallery .feature{grid-column:span 4;grid-row:span 3}.hs-gallery .small{grid-column:span 2;grid-row:span 1}
.hs-projects{padding:38px 4.8% 70px}.hs-projects>h2{text-align:center;background:var(--ref-paper) url('../img/photos/texture.png') center/cover;margin:-38px -5.2% 58px;padding:42px 20px}.hs-project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.hs-project-grid a{display:flex;flex-direction:column}.hs-project-grid img{width:100%;height:320px;object-fit:cover}.hs-project-grid span{background:#252525;color:#fff;text-align:center;text-transform:uppercase;font-family:"Libre Baskerville",serif;padding:14px 8px}
.hs-reviews{margin:15px 3.2% 55px;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #333}.hs-reviews>*{min-height:460px;margin:0;padding:65px 52px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #333}.hs-reviews>*:last-child{border:0}.hs-reviews__title{background:#fff}.hs-reviews h2{font-size:34px}.hs-reviews blockquote:nth-child(2){background:#c5c5c5}.hs-reviews blockquote:nth-child(3){background:#9f9f9e}.hs-reviews blockquote:nth-child(4){background:#444;color:#eee}.hs-reviews blockquote:nth-child(5){background:#242424;color:#eee}.hs-reviews p{line-height:1.65}.hs-reviews cite{font-style:normal;font-size:25px}
.hs-contact{background:var(--ref-wine);color:#eee;display:grid;grid-template-columns:1.15fr 1fr .65fr;gap:11%;padding:65px 4% 45px}.hs-contact h2{font-size:32px;margin-bottom:45px}.hs-contact__details p{display:flex;align-items:center;gap:22px;margin:0 0 34px;color:#ccc}.hs-contact__details p img{width:28px;height:28px;filter:invert(1)}.hs-contact__details small{display:block;color:#827a7a;margin-top:48px}.hs-contact__form{gap:12px}.hs-contact__form .form-row{gap:12px}.hs-contact__form .form-field{gap:2px}.hs-contact__form label{font-size:12px;text-transform:none;letter-spacing:0;color:#ccc}.hs-contact__form input,.hs-contact__form textarea{border-radius:0;border:0;padding:10px}.hs-contact__form button{background:#fff;color:#666;padding:12px}.hs-contact__nav{display:flex;flex-direction:column;gap:12px;padding-top:35px}.hs-map{height:330px}.hs-map iframe{border:0;width:100%;height:100%;filter:grayscale(1) invert(.86)}.chat-fab{right:18px;bottom:18px;background:#222;border:1px solid #555;font-size:15px;padding:12px 22px}.chat-fab img{width:28px;height:28px}
@media(max-width:1200px){.hs-nav>a{padding-inline:11px}.hs-header__inner{gap:16px}.hs-reviews>*{padding:42px 28px}.hs-gallery{gap:24px}.hs-project-grid img{height:250px}}
@media(max-width:900px){.hs-header{height:92px;position:sticky;top:0}.hs-header__inner{width:92%}.hs-logo{width:125px;height:82px}.hs-nav-check{display:block;position:absolute;opacity:0}.hs-nav-toggle{display:grid;gap:5px;width:42px;padding:8px}.hs-nav-toggle span{display:block;height:2px;background:#222}.hs-nav{display:none;position:absolute;left:0;right:0;top:92px;height:auto;background:#f6f6f3;flex-direction:column;align-items:stretch;box-shadow:0 8px 20px #0003}.hs-nav-check:checked~.hs-nav{display:flex}.hs-nav>a,.hs-nav>a:not(.hs-call):hover,.hs-nav>a:not(.hs-call):focus-visible,.hs-nav>a.active,.hs-nav .hs-call{height:auto;margin-left:0;padding:14px 5%;border-bottom:1px solid #ddd;box-shadow:none}.hs-hero{height:72vh;min-height:520px}.hs-services-intro,.hs-about{grid-template-columns:1fr}.hs-services-intro{padding:30px}.hs-services-intro__image img{height:420px}.hs-services-intro__copy{min-height:480px}.hs-about__copy{min-height:560px}.hs-about>img{height:480px}.hs-trust-grid{grid-template-columns:1fr 1fr}.hs-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}.hs-gallery img,.hs-gallery .portrait,.hs-gallery .wide,.hs-gallery .feature,.hs-gallery .small{grid-column:span 1;grid-row:span 1}.hs-project-grid{grid-template-columns:1fr 1fr}.hs-reviews{grid-template-columns:1fr 1fr}.hs-reviews>*{min-height:340px}.hs-reviews__title{grid-column:1/-1;min-height:180px}.hs-contact{grid-template-columns:1fr 1fr;gap:60px}.hs-contact__nav{display:none}.social-rail{display:none}}
@media(max-width:600px){.hs-hero__content{padding:20px}.hs-hero h1{font-size:34px}.hs-hero p{font-size:18px}.hs-services-intro{padding:18px}.hs-services-intro__image img{height:300px}.hs-services-intro__copy>div{width:80%;padding:55px 0}.hs-services-intro h2{font-size:31px}.hs-heading h2,.hs-projects>h2,.hs-gallery-section>h2{font-size:27px}.hs-heading p br{display:none}.hs-trust-grid{grid-template-columns:1fr}.hs-trust-grid>div{min-height:200px}.hs-about{padding:0 18px}.hs-about__copy>div{width:84%;padding:55px 0}.hs-about h2{font-size:31px}.hs-about>img{height:330px}.hs-gallery-section{padding-inline:18px}.hs-gallery{grid-template-columns:1fr;grid-auto-rows:240px}.hs-projects{padding-inline:18px}.hs-project-grid{grid-template-columns:1fr}.hs-project-grid img{height:260px}.hs-reviews{grid-template-columns:1fr;margin-inline:18px}.hs-reviews__title{grid-column:auto}.hs-reviews>*{border-right:0;border-bottom:1px solid #333;min-height:300px}.hs-contact{grid-template-columns:1fr;padding:55px 24px;gap:55px}.hs-map{height:280px}.chat-fab span{display:none}.chat-fab{padding:10px}.form-row{grid-template-columns:1fr}}
@media(max-width:900px){.hs-hero h1{margin-bottom:24px}.hs-hero p{margin-bottom:44px}.hs-hero .hs-button{max-width:280px;font-size:13px}}

/* Full-width services panel based on the supplied reference artwork. */
.hs-services-intro {
  display: grid;
  grid-template-columns: 1fr;
  min-height: clamp(720px, 63.42vw, 1120px);
  padding: 0;
  background: #1d1d1d url('../img/photos/services-dark-texture.jpeg') center / cover no-repeat;
}

.hs-services-intro__copy {
  min-height: inherit;
  padding-block: clamp(80px, 10vw, 180px);
  background: transparent;
  place-items: center start;
}

.hs-services-intro__copy > div {
  width: min(491px, 66%);
  margin-left: 28%;
}

.hs-services-intro h2 {
  margin-bottom: clamp(48px, 5.5vw, 92px);
  font-family: "Amagro", "Bodoni Moda", Didot, serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
}

.hs-services-intro h3 {
  margin-bottom: 32px;
  font: 700 16px / 1.4 "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.hs-services-intro ul {
  margin-bottom: clamp(54px, 5vw, 82px);
  padding-left: 46px;
  color: #fff;
  font: 300 16px / 1.8 "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.hs-services-intro .hs-button {
  width: min(186px, 100%);
  min-height: 47px;
  min-width: 0;
  align-items: center;
  padding: 0 20px;
  font: 300 13px / 1.4 "Helvetica Neue", Helvetica, Arial, sans-serif;
  letter-spacing: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}

@media (max-width: 900px) {
  .hs-services-intro {
    min-height: 720px;
    padding: 0;
    background-position: 58% center;
  }

  .hs-services-intro__copy {
    min-height: 720px;
    padding: 72px 7%;
  }

  .hs-services-intro__copy > div {
    width: min(520px, 100%);
    margin-left: 0;
    padding: 0;
  }

  .hs-services-intro h2 {
    margin-bottom: 44px;
    font-size: 34px;
  }

  .hs-services-intro h3 {
    margin-bottom: 24px;
    font-size: 15px;
  }

  .hs-services-intro ul {
    margin-bottom: 48px;
    padding-left: 28px;
    font-size: 15px;
  }

  .hs-services-intro .hs-button {
    padding-block: 0;
    font-size: 13px;
  }
}

/* Reference-matched typography and line icons for the trust section. */
.hs-heading h2 {
  margin-bottom: 16px;
  font-family: var(--font-display);
  font-size: clamp(32px, 2vw, 38px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .015em;
}

.hs-heading p {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.8;
}

.hs-trust-grid > div {
  gap: 22px;
}

.hs-trust-grid img {
  width: 55px;
  height: 55px;
}

.hs-trust-grid span {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.35;
}

@media (max-width: 600px) {
  .hs-heading h2 {
    font-size: 30px;
  }

  .hs-heading p {
    font-size: 14px;
    line-height: 1.65;
  }
}

/* Keep every title on the home page consistent with the reference's Amagro face. */
.home-page h1,
.home-page h2,
.home-page h3,
.home-page h4,
.home-page h5,
.home-page h6,
.home-page .hs-project-grid span {
  font-family: var(--font-display);
  font-weight: 700;
}

/* Exact contact typography and outline icon treatment from the reference. */
.hs-contact h2 {
  font-family: "Amagro", "Bodoni Moda", Didot, serif;
  font-size: 35px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .05em;
}

.hs-contact__details p,
.hs-contact__nav a,
.hs-contact__form label,
.hs-contact__form input,
.hs-contact__form textarea,
.hs-contact__form button {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 300;
}

.hs-contact__details p,
.hs-contact__nav a {
  font-size: 16px;
  line-height: 1.4;
}

.hs-contact__details p img {
  width: 30px;
  height: 30px;
  filter: invert(1);
}

.hs-contact__details small {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}

.hs-contact__form label {
  font-size: 14px;
  line-height: 1.4;
}

.hs-contact__form input,
.hs-contact__form textarea,
.hs-contact__form button {
  font-size: 16px;
  line-height: 1.4;
}

.hs-contact__form input::placeholder,
.hs-contact__form textarea::placeholder {
  color: #8a8a8a;
  opacity: 1;
}

@media (max-width: 600px) {
  .hs-contact h2 {
    font-size: 32px;
  }

  .hs-contact__details p,
  .hs-contact__nav a,
  .hs-contact__form input,
  .hs-contact__form textarea,
  .hs-contact__form button {
    font-size: 15px;
  }
}

/* Exact review typography from the reference site. */
.hs-reviews h2 {
  font-family: "Amagro", "Bodoni Moda", Didot, serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0;
}

.hs-reviews blockquote p {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.8;
}

.hs-reviews cite {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 30px;
  font-weight: 300;
  line-height: 1.1;
}

.hs-reviews blockquote:nth-child(2) cite,
.hs-reviews blockquote:nth-child(4) cite,
.hs-reviews blockquote:nth-child(5) cite {
  font-weight: 500;
}

@media (max-width: 600px) {
  .hs-reviews h2 {
    font-size: 36px;
  }

  .hs-reviews blockquote p {
    font-size: 15px;
  }

  .hs-reviews cite {
    font-size: 27px;
  }
}

/* Reference-matched editorial gallery. Percentages preserve the supplied layout. */
.hs-gallery-section {
  padding: 0 2.6% 64px;
  background: #fff;
}

.hs-gallery-section > h2 {
  min-height: 138px;
  margin: 0 -2.75% 62px;
  display: grid;
  place-items: center;
  background: var(--ref-paper) url('../img/photos/texture.png') center / cover;
  font-family: var(--font-display);
  font-size: clamp(32px, 2vw, 40px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .01em;
}

.hs-gallery {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1940 / 560;
}

.hs-gallery__item,
.hs-gallery__dark-tile {
  position: absolute;
  display: block;
  margin: 0;
  height: auto;
  overflow: hidden;
  border: 1px solid #817569;
  background: #e4e2dd;
  transition: opacity .7s ease, transform .8s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease;
}

.hs-gallery__item img {
  position: static;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  transform: scale(1);
  transition: transform .8s cubic-bezier(.2, .7, .2, 1), filter .45s ease;
  will-change: transform;
}

.hs-gallery__item:nth-child(1) { left: 0; top: 0; width: 8.66%; height: 44.46%; }
.hs-gallery__item:nth-child(2) { left: 11.29%; top: 0; width: 9.69%; height: 44.46%; }
.hs-gallery__item:nth-child(3) { left: 23.66%; top: 0; width: 19.69%; height: 45.36%; }
.hs-gallery__item:nth-child(4) { left: 46.03%; top: 0; width: 28.04%; height: 64.82%; }
.hs-gallery__item:nth-child(5) { left: 76.75%; top: 0; width: 11.24%; height: 29.11%; }
.hs-gallery__dark-tile { left: 90.67%; top: 0; width: 9.28%; height: 29.11%; background: #242424; }
.hs-gallery__item:nth-child(7) { left: 0; top: 53.75%; width: 20.98%; height: 46.25%; }
.hs-gallery__item:nth-child(8) { left: 23.66%; top: 54.64%; width: 19.69%; height: 45.36%; }
.hs-gallery__item:nth-child(9) { left: 46.03%; top: 74.11%; width: 14.02%; height: 25.89%; }
.hs-gallery__item:nth-child(10) { left: 62.63%; top: 74.11%; width: 11.44%; height: 25.89%; }
.hs-gallery__item:nth-child(11) { left: 76.75%; top: 38.57%; width: 23.25%; height: 61.43%; }

.hs-gallery__item:hover {
  z-index: 2;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .18);
}

.hs-gallery__item:hover img {
  filter: brightness(1.04);
  transform: scale(1.08);
}

.hs-gallery.is-reveal-ready .hs-gallery__item,
.hs-gallery.is-reveal-ready .hs-gallery__dark-tile {
  opacity: 0;
  transform: scale(1.08);
}

.hs-gallery.is-reveal-ready .hs-gallery__item.is-visible,
.hs-gallery.is-reveal-ready .hs-gallery__dark-tile.is-visible {
  opacity: 1;
  transform: scale(1);
}

@media (max-width: 900px) {
  .hs-gallery-section {
    padding: 0 24px 48px;
  }

  .hs-gallery-section > h2 {
    min-height: 116px;
    margin: 0 -24px 36px;
    padding: 20px;
    text-align: center;
    font-size: clamp(28px, 5vw, 36px);
  }

  .hs-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    aspect-ratio: auto;
    gap: 20px;
  }

  .hs-gallery__item,
  .hs-gallery__dark-tile,
  .hs-gallery__item:nth-child(n) {
    position: static;
    width: 100%;
    height: 230px;
  }
}

@media (max-width: 600px) {
  .hs-gallery {
    grid-template-columns: 1fr;
  }

  .hs-gallery__item,
  .hs-gallery__dark-tile,
  .hs-gallery__item:nth-child(n) {
    height: 250px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hs-gallery__item,
  .hs-gallery__item img,
  .hs-gallery__dark-tile {
    transition: none;
  }

  .hs-gallery.is-reveal-ready .hs-gallery__item,
  .hs-gallery.is-reveal-ready .hs-gallery__dark-tile {
    opacity: 1;
    transform: none;
  }

  .hs-gallery__item:hover img {
    transform: none;
  }
}

/* Reference-matched About section. */
.hs-about h2 {
  margin-bottom: 32px;
  font-family: var(--font-display);
  font-size: clamp(34px, 2vw, 40px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .01em;
}

.hs-about p {
  margin-bottom: 24px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.75;
}

.hs-about__copy > div {
  width: min(390px, 72%);
}

@media (min-width: 901px) {
  .hs-about {
    padding: 0 2.5% 58px;
  }

  .hs-about > img {
    height: auto;
    aspect-ratio: 1792 / 1042;
    object-fit: cover;
  }
}

@media (max-width: 600px) {
  .hs-about h2 {
    margin-bottom: 26px;
    font-size: 32px;
  }

  .hs-about p {
    font-size: 14px;
    line-height: 1.7;
  }

  .hs-about__copy > div {
    width: 84%;
  }
}

/* Thin top and bottom frame lines separate the About section. */
.chat-fab {
  right: 18px;
  bottom: 18px;
  width: 170px;
  height: 52px;
  gap: 12px;
  padding: 6px 18px 6px 8px;
  border: 0;
  border-radius: 999px;
  background: #242424;
  color: #fff;
  box-shadow: 0 8px 20px rgba(17, 17, 17, .22);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}

.chat-fab img {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  padding: 4px;
  object-fit: contain;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0, #eee 42%, #b8b8b8 100%);
}

@media (max-width: 600px) {
  .chat-fab {
    width: 160px;
    height: 48px;
    padding: 5px 16px 5px 7px;
    font-size: 15px;
  }

  .chat-fab img {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .chat-fab span {
    display: inline;
  }
}

.hs-about {
  position: relative;
}

.hs-about::before,
.hs-about::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 2.5%;
  right: 2.5%;
  height: 1px;
  background: #aa9c89;
  pointer-events: none;
}

.hs-about::before {
  top: 0;
}

.hs-about::after {
  bottom: 0;
}

@media (max-width: 900px) {
  .hs-about::before,
  .hs-about::after {
    left: 18px;
    right: 18px;
  }
}

/* Reference-matched desktop navigation: light paper bar, dark raised active tab with folded corner. */
.hs-header__inner {
  width: min(1320px, 92%);
}

.hs-nav {
  --nav-h: 52px;
  --nav-lift: 13px;
  height: var(--nav-h);
  padding-left: 30px;
  background: linear-gradient(180deg, #eeeeec 0%, #e6e6e4 55%, #dededc 100%);
  border-top: 1px solid rgba(255, 255, 255, .7);
  box-shadow: 0 4px 7px rgba(0, 0, 0, .28);
}

.hs-nav > a {
  height: var(--nav-h);
  margin-inline: 12px;
  padding-inline: 10px;
  color: #3a3a3a;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
}

.hs-nav > a:first-child {
  margin-left: 0;
}

/* Small grey fold linking the raised tab back to the bar. */
.hs-nav > a:not(.hs-call)::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(var(--nav-lift) * -1);
  width: 0;
  height: 0;
  border-left: var(--nav-lift) solid transparent;
  border-bottom: var(--nav-lift) solid #b9b9b6;
  opacity: 0;
  transition: opacity .2s ease;
}

.hs-nav > a:not(.hs-call):hover,
.hs-nav > a:not(.hs-call):focus-visible,
.hs-nav > a.active {
  height: calc(var(--nav-h) + var(--nav-lift) * 2);
  background: #252525;
  color: #d4d4d4;
  box-shadow: 0 4px 8px rgba(0, 0, 0, .3);
}

.hs-nav > a:not(.hs-call):hover::before,
.hs-nav > a:not(.hs-call):focus-visible::before,
.hs-nav > a.active::before {
  opacity: 1;
}

.hs-nav .hs-call {
  align-self: flex-start;
  height: calc(var(--nav-h) + 2px);
  min-width: 186px;
  margin: -1px 0 0 14px;
  padding-inline: 36px;
  justify-content: center;
  gap: 16px;
  background: #242424;
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  box-shadow: 3px 5px 9px rgba(0, 0, 0, .38);
}

.hs-nav .hs-call:hover,
.hs-nav .hs-call:focus-visible {
  background: #111;
}

.hs-call img {
  width: 25px;
  height: 25px;
  filter: none;
}

.hs-logo {
  flex-shrink: 0;
}

@media (min-width: 1201px) and (max-width: 1440px) {
  .hs-header__inner {
    gap: 24px;
  }

  .hs-nav {
    padding-left: 20px;
  }

  .hs-nav > a {
    margin-inline: 5px;
    font-size: 15px;
  }

  .hs-nav .hs-call {
    min-width: 160px;
    margin-left: 10px;
    padding-inline: 26px;
    font-size: 15px;
  }
}

@media (min-width: 901px) and (max-width: 1200px) {
  .hs-header__inner {
    gap: 16px;
  }

  .hs-nav {
    --nav-h: 46px;
    --nav-lift: 11px;
    padding-left: 16px;
  }

  .hs-nav > a {
    margin-inline: 4px;
    padding-inline: 8px;
    font-size: 13px;
  }

  .hs-nav .hs-call {
    min-width: 142px;
    margin-left: 8px;
    padding-inline: 18px;
    gap: 12px;
    font-size: 13px;
  }

  .hs-call img {
    width: 21px;
    height: 21px;
  }
}

@media (max-width: 900px) {
  .hs-nav,
  .hs-nav > a,
  .hs-nav > a:not(.hs-call):hover,
  .hs-nav > a:not(.hs-call):focus-visible,
  .hs-nav > a.active,
  .hs-nav .hs-call {
    height: auto;
  }

  .hs-nav {
    padding-left: 0;
    border-top: 0;
    background: #f6f6f3;
  }

  .hs-nav > a {
    margin: 0;
    padding: 14px 5%;
    font-size: 13px;
  }

  .hs-nav > a.active {
    color: #fff;
  }

  .hs-nav > a:not(.hs-call)::before {
    display: none;
  }

  .hs-nav .hs-call {
    align-self: stretch;
    min-width: 0;
    margin: 0;
    justify-content: flex-start;
    padding: 14px 5%;
    font-size: 13px;
  }
}

/* Split services feature: supplied family photo + reference dark texture panel. */
.hs-services-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 0;
  padding: clamp(36px, 3.3vw, 68px) 3.3%;
  background: var(--ref-paper) url('../img/photos/texture.png') center / cover;
}

.hs-services-intro__image {
  min-width: 0;
  aspect-ratio: 1752 / 1120;
  overflow: hidden;
}

.hs-services-intro__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hs-services-intro__copy {
  min-height: 0;
  padding: 0;
  display: grid;
  place-items: center;
  background: #1d1d1d url('../img/photos/services-dark-texture.jpeg') center / cover no-repeat;
}

.hs-services-intro__copy > div {
  width: min(400px, 58%);
  margin: 0;
  padding: 0;
}

.hs-services-intro h2 {
  margin: 0 0 42px;
  font-family: var(--font-display);
  font-size: clamp(34px, 2vw, 40px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .025em;
}

.hs-services-intro h3 {
  margin: 0 0 20px;
  font: 500 14px / 1.4 "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.hs-services-intro ul {
  margin: 0 0 42px;
  padding-left: 25px;
  color: #fff;
  font: 300 14px / 1.45 "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.hs-services-intro .hs-button {
  width: 162px;
  min-width: 0;
  min-height: 42px;
  padding: 0 16px;
  align-items: center;
  font: 300 12px / 1.4 "Helvetica Neue", Helvetica, Arial, sans-serif;
  letter-spacing: 0;
}

@media (max-width: 1100px) {
  .hs-services-intro {
    grid-template-columns: 1fr;
    padding: 28px;
  }

  .hs-services-intro__image {
    aspect-ratio: 16 / 10;
  }

  .hs-services-intro__copy {
    min-height: 520px;
    padding: 64px 8%;
  }

  .hs-services-intro__copy > div {
    width: min(430px, 100%);
  }
}

/* Compact desktop navigation: approximately half the previous visual footprint. */
@media (min-width: 901px) {
  .hs-nav {
    --nav-h: 32px;
    --nav-lift: 8px;
    height: var(--nav-h);
    padding-left: 12px;
  }

  .hs-nav > a {
    height: var(--nav-h);
    margin-inline: 4px;
    padding-inline: 9px;
    font-size: 12px;
  }

  .hs-nav .hs-call {
    height: 34px;
    min-width: 112px;
    margin: -1px 0 0 10px;
    padding-inline: 14px;
    gap: 8px;
    font-size: 12px;
  }

  .hs-call img {
    width: 16px;
    height: 16px;
  }
}

@media (min-width: 1201px) {
  .hs-header__inner {
    position: relative;
  }

  .hs-nav {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media (max-width: 600px) {
  .hs-services-intro {
    padding: 18px;
  }

  .hs-services-intro__copy {
    min-height: 480px;
    padding: 52px 10%;
  }

  .hs-services-intro h2 {
    margin-bottom: 34px;
    font-size: 31px;
  }

  .hs-services-intro ul {
    margin-bottom: 36px;
  }
}

/* Customer chat panel shared by every page. */
.chat-fab {
  border: 3px solid #a98750;
  box-shadow: 0 0 0 5px #242424, 0 10px 24px rgba(0, 0, 0, .3);
}

.chat-panel[hidden] { display: none; }

.chat-panel {
  position: fixed;
  z-index: 100;
  right: 22px;
  bottom: 84px;
  width: min(420px, calc(100vw - 28px));
  height: min(620px, calc(100vh - 110px));
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  border-radius: 32px;
  background: #fff;
  color: #242424;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .34);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  transform-origin: right bottom;
  animation: chat-panel-in .22s ease-out;
}

@keyframes chat-panel-in {
  from { opacity: 0; transform: translateY(14px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.chat-panel__header {
  min-height: 88px;
  display: grid;
  grid-template-columns: 58px 1fr 32px;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: #242424;
  color: #fff;
}

.chat-panel__brand {
  position: relative;
  width: 58px;
  height: 58px;
  padding: 7px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0, #eee 45%, #aaa 100%);
}

.chat-panel__brand img { width: 100%; height: 100%; object-fit: contain; }
.chat-panel__brand::after { content: ""; position: absolute; right: 0; bottom: 4px; width: 14px; height: 14px; border: 2px solid #242424; border-radius: 50%; background: #48b92e; }
.chat-panel__heading strong { display: block; font-size: 20px; font-weight: 500; line-height: 1.15; letter-spacing: .01em; white-space: nowrap; }
.chat-panel__heading span { display: block; margin-top: 4px; color: #eee; font-size: 14px; font-weight: 300; }
.chat-panel__close { position: relative; width: 34px; height: 34px; padding: 0; color: #fff; }
.chat-panel__close::before,.chat-panel__close::after { content: ""; position: absolute; left: 6px; top: 16px; width: 23px; height: 2px; background: currentColor; }
.chat-panel__close::before { transform: rotate(45deg); }.chat-panel__close::after { transform: rotate(-45deg); }

.chat-panel__body {
  overflow-y: auto;
  padding: 16px 20px 22px;
  background-color: #fff;
  background-image: linear-gradient(135deg, transparent 47%, rgba(95,95,95,.12) 48%, rgba(95,95,95,.12) 52%, transparent 53%);
  background-size: 94px 94px;
}

.chat-panel__time { width: max-content; margin: 0 auto 22px; padding: 7px 9px; border-radius: 4px; background: #858585; color: #fff; font-size: 13px; letter-spacing: .08em; }
.chat-bubble { width: max-content; max-width: 82%; margin-bottom: 10px; padding: 14px 18px; border-radius: 24px; font-size: 15px; line-height: 1.35; }
.chat-bubble--user { margin-left: auto; background: #d1d1d3; }
.chat-bubble--agent { margin-right: auto; border-bottom-left-radius: 8px; background: #b9ad9d; color: #fff; }

.chat-details { margin-top: 8px; padding: 20px 20px 18px; border-radius: 25px; background: #b9ad9d; color: #fff; }
.chat-details label { display: block; margin-bottom: 17px; color: #fff; font-size: 14px; }
.chat-details input { width: 100%; height: 40px; margin-top: 3px; padding: 6px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.65); border-radius: 0; background: transparent; color: #fff; font: inherit; outline: 0; }
.chat-details input::placeholder { color: rgba(255,255,255,.95); }
.chat-details button { width: 100%; min-height: 48px; margin-top: 3px; border-radius: 999px; background: #fff; color: #b3a592; font-size: 16px; }

.chat-composer { display: grid; grid-template-columns: 1fr 42px; align-items: center; gap: 8px; min-height: 70px; padding: 11px 18px 11px 24px; border-top: 1px solid #e4e4e4; background: #fff; }
.chat-composer input { width: 100%; border: 0; outline: 0; color: #151515; font: 400 17px/1.3 "Helvetica Neue", Helvetica, Arial, sans-serif; }
.chat-composer input::placeholder { color: #151515; opacity: 1; }
.chat-composer button { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: #8291b0; font-size: 23px; }
.chat-composer button:hover,.chat-composer button:focus-visible { background: #eee; }
.chat-panel__status { margin: 10px 2px 0; color: #5d554c; font-size: 12px; line-height: 1.35; }

@media (max-width: 600px) {
  .chat-panel { right: 7px; bottom: 70px; width: calc(100vw - 14px); height: min(690px, calc(100vh - 82px)); border-radius: 28px; }
  .chat-panel__header { grid-template-columns: 58px 1fr 32px; min-height: 88px; padding: 14px 16px; }
  .chat-panel__brand { width: 58px; height: 58px; }
  .chat-panel__heading strong { font-size: 19px; }
  .chat-panel__heading strong { white-space: normal; }
  .chat-panel__heading span { font-size: 13px; }
  .chat-panel__body { padding: 16px 18px 22px; }
}
