:root {
  --site-header-height: 64px;
  --site-header-pad: clamp(20px, 4vw, 56px);
  --site-header-ink: #111;
  --site-header-paper: #fff;
  --site-header-accent: #b28b4d;
}

html { scroll-behavior: smooth; }
html.site-transition-pending { background: #fff; }
html.site-transition-pending body > :not(.site-page-transition) { visibility: hidden; }
@media (min-width: 1025px) {
  html { scroll-behavior: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body.site-menu-open { overflow: hidden; }
body > [data-site-header] { display: contents; }
body:has(.portfolio-header) main { padding-top: var(--site-header-height); }
body.category-blog .artist-header { margin-top: var(--site-header-height); }
body.blog-article-page .article-hero { margin-top: var(--site-header-height); height: calc(100svh - var(--site-header-height)); max-height: calc(100svh - var(--site-header-height)); }
body.blog-article-page .article-contact { scroll-margin-top: var(--site-header-height); }
body:has(.header.header-transparent) :where(#pricing, #kind-words, #about) { scroll-margin-top: calc(var(--site-header-height) + 18px); }

.site-page-transition {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: grid;
  place-items: center;
  background: #fff;
  color: #111;
  opacity: 0;
  pointer-events: none;
  transition: opacity .58s cubic-bezier(.22,.61,.36,1);
}
.site-page-transition.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.site-page-transition__logo {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .42s ease, transform .6s cubic-bezier(.22,.61,.36,1);
}
.site-page-transition.is-ready .site-page-transition__logo {
  opacity: 1;
  transform: translateY(0);
}
.site-page-transition__logo strong {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 19px;
  font-weight: 400;
  letter-spacing: .16em;
  line-height: 1;
}
.site-page-transition__logo span {
  font-size: 6px;
  letter-spacing: .34em;
  line-height: 1;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1200;
  height: var(--site-header-height);
  background: rgba(255,255,255,.97);
  color: var(--site-header-ink);
  border-bottom: 1px solid rgba(17,17,17,.08);
  transition: box-shadow .35s ease, background-color .35s ease;
}

/* The homepage header is clear over the hero, then becomes the white bar
   used throughout the rest of the site once the page starts moving. */
body.home.blog .site-header {
  background: transparent;
  border-bottom-color: transparent;
  color: #fff;
  box-shadow: none;
}
body.home.blog .site-header.is-scrolled {
  background: rgba(255, 255, 255, .97);
  border-bottom-color: rgba(17, 17, 17, .08);
  color: var(--site-header-ink);
  box-shadow: 0 1px 14px rgba(17, 17, 17, .06);
}
body.home.blog .site-header .site-header__wordmark { color: inherit; }
.site-header__inner {
  position: relative;
  z-index: 3;
  width: min(1200px, calc(100% - (var(--site-header-pad) * 2)));
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.site-header__nav { display: flex; align-items: center; gap: clamp(20px, 2.5vw, 38px); }
.site-header__nav--right { justify-content: flex-end; }
.site-header__nav a,
.site-header__wordmark,
.site-mobile-menu__wordmark,
.site-mobile-menu__links a,
.site-mobile-menu__contact a,
.site-mobile-menu__social a {
  color: inherit;
  text-decoration: none;
}

/* The wordmark is never underlined, including when the pointer is over it. */
.site-header__wordmark,
.site-header__wordmark:hover,
.site-header__wordmark:focus,
.site-header__wordmark:focus-visible,
.site-mobile-menu__wordmark,
.site-mobile-menu__wordmark:hover,
.site-mobile-menu__wordmark:focus,
.site-mobile-menu__wordmark:focus-visible,
.site-header__wordmark strong,
.site-header__wordmark span,
.site-mobile-menu__wordmark strong,
.site-mobile-menu__wordmark span {
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-bottom: 0 !important;
}

.site-header__wordmark::before,
.site-header__wordmark::after,
.site-mobile-menu__wordmark::before,
.site-mobile-menu__wordmark::after {
  display: none !important;
  content: none !important;
}
.site-header__nav a {
  position: relative;
  font-size: 11px;
  letter-spacing: .18em;
  line-height: 1;
  white-space: nowrap;
  transition: color .25s ease;
}
.site-header__phone { display: none; }
.site-header__phone:hover,
.site-header__phone:focus-visible { text-decoration: none !important; border-bottom: 0 !important; }
.site-mobile-menu__wordmark:hover,
.site-mobile-menu__wordmark:focus,
.site-mobile-menu__wordmark:focus-visible {
  text-decoration: none !important;
  border-bottom: 0 !important;
  outline: none;
}
.site-header__nav a::after {
  content: '';
  position: absolute;
  right: 0; bottom: -8px; left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(.35);
  transition: opacity .25s ease, transform .25s ease;
}
.site-header__nav a:hover::after,
.site-header__nav a:focus-visible::after,
.site-header__nav a.is-active::after { opacity: .42; transform: scaleX(1); }
.site-header__nav a:focus-visible,
.site-mobile-menu a:focus-visible,
.site-header__toggle:focus-visible,
.site-mobile-menu__close:focus-visible { outline: 1px solid var(--site-header-accent); outline-offset: 5px; }
.site-header__wordmark { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; color: #111; }
.site-header__wordmark strong { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; letter-spacing: .16em; line-height: 1; }
.site-header__wordmark span { font-size: 6px; letter-spacing: .34em; line-height: 1; }
.site-header__toggle { display: none; }
.site-header__toggle:focus,
.site-header__toggle:focus-visible { outline: none; box-shadow: none; }
.site-header__close { display: none; }
.site-mobile-menu { display: none; }
.site-mobile-menu[hidden] { display: none; }

/* Remove the old page-specific headers once the shared component is mounted. */
body > header.header.header-transparent,
body > header.portfolio-header,
body > header.blog-shell-header { display: none !important; }

@media (max-width: 1100px) {
  :root { --site-header-height: 64px; --site-header-pad: 24px; }
  .site-page-transition__logo strong { font-size: 22px; letter-spacing: .15em; }
  .site-page-transition__logo span { font-size: 7px; letter-spacing: .34em; }
  .site-header__inner { grid-template-columns: 1fr auto auto; }
  .site-header__nav { display: none; }
  .site-header__wordmark { position: absolute; left: 50%; justify-self: auto; transform: translateX(-50%); }
  .site-header__phone { position: absolute; left: 0; display: inline-flex; align-items: center; justify-content: center; color: inherit; font-family: var(--tpp-font-display, Georgia, 'Times New Roman', serif); font-size: 18px; font-weight: 400; letter-spacing: 0; line-height: 1.2; text-decoration: none !important; white-space: nowrap; }
  .site-header__toggle { position: absolute; top: 50%; right: 0; z-index: 4; display: inline-flex; width: 56px; height: 56px; padding: 0; border: 0; background: transparent; color: inherit; align-items: center; justify-content: center; cursor: pointer; transform: translateY(-50%); }
  .site-header__toggle span { position: absolute; top: 50%; left: 50%; display: block; width: 32px; height: 2px; background: currentColor !important; opacity: 1; transform: translate(-50%, -50%); transform-origin: center; transition: transform .3s ease, opacity .3s ease; }
  .site-header__toggle span:nth-child(1) { transform: translate(-50%, calc(-50% - 9px)); }
  .site-header__toggle span:nth-child(3) { transform: translate(-50%, calc(-50% + 9px)); }
  .site-header.is-menu-open .site-header__toggle { opacity: 0; pointer-events: none; }
  .site-header.is-menu-open .site-header__toggle span { opacity: 0; }
  .site-mobile-menu { position: fixed; inset: 0; z-index: 2; display: flex; flex-direction: column; overflow: hidden; padding: 64px; background: #f7f6f2; color: #111; opacity: 0; transform: translateY(-14px); pointer-events: none; transition: opacity .45s ease, transform .45s cubic-bezier(.22,.61,.36,1); }
  .site-header.is-menu-open .site-mobile-menu { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .site-header.is-menu-open { color: #111; background: transparent; }
  .site-header.is-menu-open .site-header__inner { z-index: 6; }
  .site-header.is-menu-open .site-header__toggle { color: #111; }
  .site-header__close { position: absolute; top: 50%; right: 0; z-index: 7; display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; color: #111; font: 400 42px/1 Georgia, 'Times New Roman', serif; opacity: 0; pointer-events: none; cursor: pointer; transform: translateY(-50%) scale(.8); transition: opacity .3s ease, transform .3s ease; }
  .site-header.is-menu-open .site-header__close { opacity: 1; pointer-events: auto; transform: translateY(-50%) scale(1); }
  .site-header__close:focus,
  .site-header__close:focus-visible { outline: none; box-shadow: none; }
  .site-header.is-menu-open .site-header__wordmark,
  .site-header.is-menu-open .site-header__phone { visibility: hidden; }
  .site-mobile-menu__top { position: static; display: block; }
  .site-mobile-menu__wordmark { position: absolute; top: 64px; left: 50%; display: inline-flex; flex-direction: column; gap: 4px; transform: translateX(-50%); color: #111; text-align: center; }
  .site-mobile-menu__wordmark strong { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 19px; letter-spacing: .16em; line-height: 1; }
  .site-mobile-menu__wordmark span { font-size: 6px; letter-spacing: .34em; line-height: 1; }
  .site-mobile-menu__close { display: none; }
  .site-mobile-menu__close:focus,
  .site-mobile-menu__close:focus-visible { outline: none; border: 0; box-shadow: none; }
  .site-mobile-menu__links { display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: center; align-items: center; gap: clamp(18px, 3.2vh, 30px); width: 100%; margin: auto 0; padding: 0; overflow: visible; }
  .site-mobile-menu__links a { flex: 0 0 auto; width: fit-content; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; letter-spacing: .04em; line-height: 1.1; text-align: center; opacity: 0; transform: translateY(12px); transition: opacity .35s ease, transform .35s ease, color .25s ease; }
  .site-header.is-menu-open .site-mobile-menu__links a { opacity: 1; transform: translateY(0); }
  .site-header.is-menu-open .site-mobile-menu__links a:nth-child(1) { transition-delay: .08s; }
  .site-header.is-menu-open .site-mobile-menu__links a:nth-child(2) { transition-delay: .13s; }
  .site-header.is-menu-open .site-mobile-menu__links a:nth-child(3) { transition-delay: .18s; }
  .site-header.is-menu-open .site-mobile-menu__links a:nth-child(4) { transition-delay: .23s; }
  .site-header.is-menu-open .site-mobile-menu__links a:nth-child(5) { transition-delay: .28s; }
  .site-header.is-menu-open .site-mobile-menu__links a:nth-child(6) { transition-delay: .33s; }
  .site-mobile-menu__links a.is-active { color: var(--site-header-accent); }
  .site-mobile-menu__contact { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: center; justify-content: center; width: calc(100% + 128px); margin-left: -64px; box-sizing: border-box; gap: 10px; padding: 20px 64px 0; border-top: 1px solid rgba(17,17,17,.16); font-family: Georgia, 'Times New Roman', serif; font-size: 16px !important; font-style: normal; font-weight: 400; letter-spacing: .02em; text-transform: uppercase; white-space: normal; text-align: center; }
  .site-mobile-menu__contact,
  .site-mobile-menu__contact a,
  .site-mobile-menu__social,
  .site-mobile-menu__social a { font-family: Georgia, 'Times New Roman', serif !important; font-size: 16px !important; font-style: normal; font-weight: 400; letter-spacing: .02em; }
  .site-mobile-menu__contact > a:first-child { font-size: inherit; }
  .site-mobile-menu__contact > a:nth-child(2) { opacity: .78; }
  .site-mobile-menu__social { display: flex; flex-direction: column; align-items: center; width: auto; gap: 10px; margin: 0; text-transform: uppercase; }
  .site-header:not(.is-menu-open) .site-header__toggle:hover span:nth-child(1),
  .site-header:not(.is-menu-open) .site-header__toggle:focus-visible span:nth-child(1) { transform: translate(calc(-50% + 4px), calc(-50% - 9px)); }
  .site-header:not(.is-menu-open) .site-header__toggle:hover span:nth-child(3),
  .site-header:not(.is-menu-open) .site-header__toggle:focus-visible span:nth-child(3) { transform: translate(calc(-50% - 4px), calc(-50% + 9px)); }
  body.blog-article-page .article-hero { height: auto; max-height: none; }
}
@media (max-width: 600px) {
  :root { --site-header-pad: 18px; }
  .site-header__phone {
    width: 30px;
    height: 100%;
    max-width: none;
    overflow: hidden;
    font-size: 0;
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .site-header__phone::before {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M6.62%2010.79a15.05%2015.05%200%200%200%206.59%206.59l2.2-2.2a1%201%200%200%201%201.01-.24%2011.36%2011.36%200%200%200%203.56.57%201%201%200%200%201%201%201V21a1%201%200%200%201-1%201A17%2017%200%200%201%203%205a1%201%200%200%201%201-1h3.49a1%201%200%200%201%201%201%2011.36%2011.36%200%200%200%20.57%203.56%201%201%200%200%201-.24%201.01l-2.2%202.22z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M6.62%2010.79a15.05%2015.05%200%200%200%206.59%206.59l2.2-2.2a1%201%200%200%201%201.01-.24%2011.36%2011.36%200%200%200%203.56.57%201%201%200%200%201%201%201V21a1%201%200%200%201-1%201A17%2017%200%200%201%203%205a1%201%200%200%201%201-1h3.49a1%201%200%200%201%201%201%2011.36%2011.36%200%200%200%20.57%203.56%201%201%200%200%201-.24%201.01l-2.2%202.22z'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .site-mobile-menu { padding: 64px 24px 28px; }
  .site-mobile-menu__wordmark { top: 64px; }
  .site-mobile-menu__links { justify-content: center; gap: 18px; margin: auto 0; }
  .site-mobile-menu__links a { font-size: 22px; }
  .site-mobile-menu__contact,
  .site-mobile-menu__contact a,
  .site-mobile-menu__social,
  .site-mobile-menu__social a { font-size: 12px !important; }
  .site-mobile-menu__contact { width: calc(100% + 48px); margin-left: -24px; gap: 10px; padding-right: 24px; padding-left: 24px; }
  .site-mobile-menu__contact > a:first-child { font-size: inherit; }
  .site-mobile-menu__social { gap: 10px; margin-left: 0; font-size: inherit; }
}
@media (prefers-reduced-motion: reduce) {
  .site-page-transition,
  .site-page-transition__logo,
  .site-header, .site-mobile-menu, .site-header__toggle span, .site-header__nav a::after { transition-duration: .01ms; }
}

/* One button type scale across the homepage, blog, article and portfolio. */
:where(
  .btn,
  .tpp-hero-slide__button,
  .tpp-pricing-button,
  .tpp-outline-button,
  .tpp-review-card__toggle,
  .tpp-blog-card__button,
  .article-button,
  .article-next__button,
  .portfolio-tabs a
) {
  font-size: 12px !important;
}

/* Review expand controls are intentionally smaller than the main CTAs. */
.tpp-review-card__toggle {
  font-size: 10px !important;
}

.tpp-review-card__person strong {
  font-size: 16px !important;
}

/* Editorial body copy set at 16px uses the same 120% leading everywhere. */
:where(
  body.home.blog,
  body.category-blog,
  body.blog-article-page,
  body:has(.portfolio-header),
  .tpp-services-intro,
  .tpp-pricing-heading .lead,
  .tpp-kind-words-heading .lead,
  .tpp-price-card__summary,
  .tpp-pricing-options__label,
  .tpp-pricing-options li,
  .tpp-pricing-options strong,
  .tpp-pricing-options li span,
  .tpp-blog-heading .lead,
  .tpp-blog-card__body > p,
  .tpp-footer-parallax .tpp-footer-about .textwidget > p:last-child,
  .tpp-footer-description p,
  .tpp-footer-contact-actions > a,
  .article-investment__card > p:not(.article-kicker),
  .article-contact .tpp-footer-description > p,
  .article-contact .tpp-footer-contact-links a,
  .portfolio-intro__copy
) {
  line-height: 1.2 !important;
}

/* Shared responsive gutter: every standard content container keeps the same
   six-percent breathing room on tablet and mobile layouts. */
@media (max-width: 1100px) {
  :root { --tpp-mobile-gutter: 6vw; }

  .container.col-md-9 {
    width: calc(100% - (var(--tpp-mobile-gutter) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    box-sizing: border-box;
  }

  .site-header__inner {
    width: calc(100% - (var(--tpp-mobile-gutter) * 2));
  }

}

@media (max-width: 600px) {
  #news > .container.col-md-9 {
    width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  #news .tpp-blog-grid {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 6% !important;
    padding-left: 6% !important;
  }

  #news .tpp-blog-card {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    justify-self: stretch !important;
  }
}

/* Editorial enquiry modal shared by the homepage, portfolio and journal. */
body.contact-modal-open { overflow: hidden; }
.contact-modal {
  position: fixed;
  inset: 0;
  z-index: 2400;
  display: grid;
  place-items: center;
  padding: 24px;
  color: #111;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.contact-modal[hidden] { display: none; }
.contact-modal.is-open { opacity: 1; pointer-events: auto; }
.contact-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(24,24,24,.72);
  backdrop-filter: blur(3px);
}
.contact-modal__dialog {
  position: relative;
  width: min(680px, 100%);
  max-height: min(820px, calc(100svh - 48px));
  overflow: auto;
  box-sizing: border-box;
  padding: clamp(30px, 5vw, 58px);
  background: #fff;
  border: 1px solid rgba(225,225,225,.8);
  box-shadow: 0 22px 70px rgba(0,0,0,.2);
  transform: translateY(16px);
  transition: transform .42s cubic-bezier(.22,.61,.36,1);
}
.contact-modal.is-open .contact-modal__dialog { transform: translateY(0); }
.contact-modal__close {
  position: absolute;
  top: 16px;
  right: 18px;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #111;
  font: 400 31px/1 Georgia, 'Times New Roman', serif;
  cursor: pointer;
  opacity: .65;
  transition: opacity .25s ease, color .25s ease;
}
.contact-modal__close:hover,
.contact-modal__close:focus-visible { color: var(--site-header-accent); opacity: 1; }
.contact-modal__close:focus-visible,
.contact-modal__submit:focus-visible,
.site-mobile-menu__enquire:focus-visible { outline: 1px solid var(--site-header-accent); outline-offset: 5px; }
.contact-modal__eyebrow {
  margin: 0 0 14px;
  color: var(--site-header-accent);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 11px;
  letter-spacing: .28em;
  line-height: 1.3;
}
.contact-modal__dialog h2 {
  margin: 0;
  color: #111;
  font-family: var(--tpp-font-display, Georgia, 'Times New Roman', serif);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 400;
  line-height: 1.12;
}
.contact-modal__intro {
  max-width: 500px;
  margin: 14px 0 30px;
  color: #525252;
  font-family: var(--tpp-font-reading, Georgia, serif);
  font-size: 17px;
  line-height: 1.55;
}
.contact-modal__form,
.contact-modal__form label { display: flex; flex-direction: column; }
.contact-modal__form { gap: 18px; }
.contact-modal__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-modal__form label { gap: 7px; }
.contact-modal__form label > span {
  color: #3a3a3a;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 11px;
  letter-spacing: .16em;
  line-height: 1.3;
  text-transform: uppercase;
}
.contact-modal__form input,
.contact-modal__form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 0 10px;
  border: 0;
  border-bottom: 1px solid rgba(17,17,17,.28);
  border-radius: 0;
  background: transparent;
  color: #111;
  font: 400 17px/1.45 var(--tpp-font-reading, Georgia, serif);
  resize: vertical;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.contact-modal__form textarea { min-height: 94px; }
.contact-modal__form input:focus,
.contact-modal__form textarea:focus {
  outline: 0;
  border-bottom-color: var(--site-header-accent);
  box-shadow: 0 1px 0 var(--site-header-accent);
}
.contact-modal__form input::placeholder,
.contact-modal__form textarea::placeholder { color: #999; opacity: .85; }
.contact-modal__submit,
.site-mobile-menu__enquire {
  align-self: flex-start;
  padding: 15px 24px;
  border: 1px solid #111;
  border-radius: 0;
  background: #111;
  color: #fff;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .23em;
  line-height: 1.3;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.contact-modal__submit:hover,
.contact-modal__submit:focus,
.contact-modal__submit:focus-visible,
.site-mobile-menu__enquire:hover,
.site-mobile-menu__enquire:focus,
.site-mobile-menu__enquire:focus-visible {
  border-color: var(--site-header-accent);
  background: var(--site-header-accent);
  color: #fff;
  outline-color: var(--site-header-accent);
  outline-style: solid;
  outline-width: 1px;
  box-shadow: none;
}
.contact-modal__status {
  min-height: 1.3em;
  margin: -6px 0 0;
  color: var(--site-header-accent);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 13px;
  line-height: 1.4;
}
.site-mobile-menu__enquire {
  align-self: center;
  margin-top: 8px;
  padding: 12px 18px;
  border-color: var(--site-header-accent);
  background: transparent;
  color: #111;
  font-size: 10px !important;
  letter-spacing: .18em;
}
.tpp-footer-enquire {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 208px;
  min-height: 50px;
  margin: 28px auto 0;
  padding: 15px 27px;
  border: 1px solid rgba(225,190,100,.9);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-family: var(--tpp-font-ui, Georgia, 'Times New Roman', serif);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .22em;
  line-height: 1.3;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.tpp-footer-contact-links {
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.tpp-footer-parallax .tpp-footer-about > .tpp-footer-social { margin-top: 52px !important; }
.tpp-footer-enquire:hover,
.tpp-footer-enquire:focus-visible {
  border-color: var(--site-header-accent);
  background: var(--site-header-accent);
  color: #fff;
}
.tpp-footer-enquire:focus-visible { outline: 1px solid var(--site-header-accent); outline-offset: 5px; }

@media (max-width: 600px) {
  .contact-modal { padding: 12px; }
  .contact-modal__dialog { max-height: calc(100svh - 24px); padding: 30px 22px 26px; }
  .contact-modal__row { grid-template-columns: 1fr; gap: 18px; }
  .contact-modal__intro { margin-bottom: 24px; font-size: 16px; }
  .contact-modal__submit { width: 100%; }
  .tpp-footer-enquire { min-width: 0; width: min(100%, 230px); margin-top: 26px; padding-right: 20px; padding-left: 20px; }
  .tpp-footer-parallax .tpp-footer-about > .tpp-footer-social { margin-top: 44px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-modal,
  .contact-modal__dialog { transition-duration: .01ms; }
}

/* Mobile Kind Words: remove outer side gutters around the active review card */
@media (max-width: 600px) {
  #kind-words > .container.col-md-9 {
    width: 100% !important;
    max-width: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  #kind-words .tpp-review-slider,
  #kind-words .tpp-review-slider__viewport,
  #kind-words .tpp-review-slider__track,
  #kind-words .tpp-review-grid {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  #kind-words .tpp-review-slider__slide {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  #kind-words .tpp-review-card {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Portrait collection choice in the shared enquiry form. */
.contact-collections { margin: 0; padding: 0; border: 0; min-width: 0; }
.contact-collections legend { margin-bottom: 10px; color: #3a3a3a; font: 400 11px/1.3 Georgia, serif; letter-spacing: .16em; text-transform: uppercase; }
.contact-modal__form .contact-collection { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; padding: 12px; margin-bottom: 8px; border: 1px solid #e1e1e1; cursor: pointer; }
.contact-modal__form .contact-collection input { width: 16px; height: 16px; margin: 3px 0 0; padding: 0; accent-color: #111; box-shadow: none; }
.contact-modal__form .contact-collection:has(input:checked) { border-color: #e1be64; background: #faf7ef; }
.contact-modal__form .contact-collection input:focus-visible { outline: 2px solid #e1be64; outline-offset: 3px; }
.contact-modal__form .contact-collection > .contact-collection__content { font-family: var(--tpp-font-display, Georgia, serif); font-size: 16px; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.contact-collection__content strong { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-weight: 400; color: #111; }
.contact-collection__content small { display: block; margin-top: 4px; font-size: 14px; color: #525252; line-height: 1.4; }

.contact-modal__form[hidden] { display: none; }

.contact-collections__legend { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.contact-modal__submit:disabled { opacity: .6; cursor: wait; }

/* Modal owns scrolling; background stays at its current position. */
html.contact-modal-open, body.contact-modal-open { overflow: hidden; overscroll-behavior: none; }
.contact-modal__success[hidden], .contact-modal__intro[hidden] { display: none; }
.contact-modal__dialog.is-success { padding-block: 60px; text-align: center; }
.contact-modal__dialog.is-success h2 { padding-right: 0; }
.contact-modal__dialog.is-success .contact-modal__close { display: none; }
.contact-modal__success .contact-modal__intro { margin: 10px auto 40px; }
.contact-modal__success .contact-modal__submit { min-width: 160px; }
@media (max-width: 620px) {
  .contact-modal__dialog.is-success { padding-block: 40px; }
  .contact-modal__success .contact-modal__intro { margin-bottom: 28px; }
}
.contact-modal__dialog { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.contact-modal { padding: 16px; }
.contact-modal__dialog { max-height: calc(100dvh - 32px); padding: 28px 32px; }
.contact-modal__eyebrow { margin-bottom: 10px; }
.contact-modal__dialog h2 { font-size: clamp(28px, 3vw, 34px); padding-right: 20px; }
.contact-modal__intro { margin: 10px 0 18px; font-size: 16px; line-height: 1.4; }
.package-enquiry-form { gap: 12px; }
.contact-modal__form .contact-collection { padding: 10px; margin-bottom: 5px; }
.contact-collection__content small { margin-top: 2px; }
.package-enquiry-form input { padding: 8px 0; }
.package-enquiry-form textarea { min-height: 64px; padding: 8px 0; }
.package-enquiry-form .contact-modal__status:empty { display: none; }
@media (max-width: 600px) {
  .contact-modal { padding: 12px; }
  .contact-modal__dialog { max-height: calc(100dvh - 24px); padding: 26px 20px 20px; }
}

/* Centre the visible contact social links as one group on every page. */
html body #contact .tpp-footer-social { width: 100%; text-align: center; }
html body #contact .tpp-footer-social .social-links {
  display: flex; justify-content: center; align-items: center;
  width: 100%; gap: 20px; margin: 0 auto; padding: 0; list-style: none;
}
html body #contact .tpp-footer-social .social-links li { float: none; margin: 0; padding: 0; }
html body #contact .tpp-footer-social .social-links li:has(a[href*="facebook.com"]) { display: none; }
html body #contact .tpp-footer-social .social-links a { display: inline-flex; align-items: center; justify-content: center; }

/* Social icons never inherit text-link underlines or decorative borders. */
html body #contact .tpp-footer-social .social-links a,
html body #contact .tpp-footer-social .social-links a:is(:hover, :focus, :active, :visited),
html body .tpp-hero-social a,
html body .tpp-hero-social a:is(:hover, :focus, :active, :visited) {
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none;
}
html body #contact .tpp-footer-social .social-links a::after { display: none; }
