/* Desingoff typography. SF Pro web usage authorized by the site owner.
   One scale for the main site and static blog. Original serif wordmarks.
   Variable fonts preserve real weights and automatic optical sizing. */
@font-face {
  font-family: "SF Pro";
  src: url("/fonts/sf-pro/sf-pro-normal-300-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}
@font-face {
  font-family: "SF Pro";
  src: url("/fonts/sf-pro/sf-pro-italic-300-700.woff2") format("woff2");
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
}
:root {
  --font: "SF Pro", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-sans: var(--font);
  --font-serif: var(--font);
  --font-logo: DesingoffSerif, "Cormorant Garamond", Georgia, serif;
  --fs-h1: clamp(28px, 3.5vw, 44px);
  --fs-display: var(--fs-h1);
  --fs-h2: clamp(26px, 2.9vw, 36px);
  --fs-h3: clamp(22px, 2.05vw, 26px);
  --fs-h4: 19px;
  --fs-lead: clamp(19px, 1.6vw, 21px);
  --fs-body: 17px;
  --fs-sm: 14px;
  --fs-xs: 12px;
  --fs-nav: 18.2px;
  --fs-nav-mobile: 18.2px;
  --fw-nav-mobile: 480;
}
html { -webkit-text-size-adjust: 100%; }
html body, html body * {
  font-family: var(--font) !important;
  font-optical-sizing: auto;
}
html body {
  font-size: var(--fs-body);
  line-height: 1.47;
  letter-spacing: -.01em;
  -webkit-font-smoothing: antialiased;
}
html body :is(h1, .sr-hero__title, .mc-page__title, .product-detail__title, .coll-hero__title) {
  font-size: var(--fs-h1) !important;
  font-weight: 300 !important;
  line-height: 1.1 !important;
  letter-spacing: -.015em !important;
  overflow-wrap: break-word;
}
html body :is(h2, .sr-title, .section__title, .product-about__title),
html body .g10-recommend__head h2,
html body .static-content h2 {
  font-size: var(--fs-h2) !important;
  font-weight: 300 !important;
  line-height: 1.15 !important;
  letter-spacing: -.012em !important;
  overflow-wrap: break-word;
}
html body :is(h3, .side-panel__title), html body .qw-form h3 {
  font-size: var(--fs-h3) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  letter-spacing: -.01em !important;
}
html body h4, html body .g1-local-footer__group h4 {
  font-size: var(--fs-h4) !important;
  font-weight: 300 !important;
  line-height: 1.25 !important;
  letter-spacing: -.01em !important;
}
/* Card headings share a component role, regardless of their HTML tag. */
html body :is(.product-card__title, .mc-card__name, .coll-card__name,
  .sr-card__title, .sr-cat__title, .sr-mat__title, .sr-project__title,
  .panel-item__name),
html body .g10-product__body strong,
html body .card-body h3 {
  font-size: var(--fs-h4) !important;
  font-weight: 300 !important;
  line-height: 1.25 !important;
  letter-spacing: -.01em !important;
  overflow-wrap: break-word;
}
html body .product-card__link { font-size: inherit !important; font-weight: inherit !important; }
html body :is(.sr-hero__text, .section__subtitle, .mc-page__subtitle,
  .coll-hero__sub, .hero-subtitle, .dek, .lead) {
  font-size: var(--fs-lead) !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: -.01em !important;
}
html body :is(.static-content p, .static-content li, .sr-materials__lead,
  .product-about__text p, .product-attr dd, .advantages__item p,
  .body-copy, .section-heading > p, .feature p, .card-body p,
  .subscribe p, .project-card p, .designer-note p, .help-card p,
  .hero-copy > p:not(.hero-subtitle), .faq details p,
  .side-panel__empty, .qw-form > p) {
  font-size: var(--fs-body) !important;
  line-height: 1.47 !important;
}
html body :is(.btn, .sr-btn, .sr-textlink, .black-button, .load-more,
  .hero-copy > a, .feature button, .header-actions button, .consult-link,
  .cat-filter__apply, .cat-filter__reset) {
  font-size: var(--fs-body) !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
}
html body :is(input:not([type=checkbox]):not([type=radio]), textarea, select) {
  font-size: var(--fs-body) !important;
  line-height: 1.4;
}
html body :is(.nav__link, .nav__dropdown-link, .sr-nav-link,
  .sr-site-nav > a, .sr-nav-dropdown a, .site-header nav a) {
  font-size: var(--fs-nav) !important;
  font-weight: 400 !important;
  letter-spacing: -.01em !important;
}
html body :is(.header__phone, .sr-header-phone span) {
  font-size: var(--fs-sm) !important;
  font-weight: 400 !important;
  letter-spacing: -.01em !important;
}
html body :is(.sr-mm-acc__head, .sr-mm-acc__head span,
  .sr-mm-acc__panel a, .sr-mm-link, .mm-acc__head,
  .mm-acc__head span, .mm-acc__link, .mm-link) {
  font-size: var(--fs-nav-mobile) !important;
  font-weight: var(--fw-nav-mobile) !important;
  line-height: 1.47 !important;
  letter-spacing: -.02em !important;
}
html body :is(.sr-mm-footer a, .mm-footer a) { font-size: var(--fs-body) !important; }
/* Keep the larger navigation clear of the header actions. */
.site-header {
  grid-template-columns: 190px minmax(0, 1fr) auto;
  gap: clamp(14px, 2vw, 28px);
}
.site-header nav { gap: clamp(14px, 1.8vw, 24px); }
html body :is(.product-detail__price, .side-panel__total strong) {
  font-size: var(--fs-h3) !important;
  font-weight: 600 !important;
  line-height: 1.2;
}
html body .product-card__price {
  font-size: var(--fs-body) !important;
  font-weight: 500 !important;
}
html body :is(.sr-card__sub, .sr-card__price, .sr-project__sub,
  .product-card__type, .mc-card__type, .coll-card__desc,
  .panel-item__type, .panel-item__price, .product-detail__brand,
  .product-detail__category, .product-gallery__caption, .coll-card__cta,
  .footer__col a, .footer__about, .g1-local-footer__group a,
  .g1-local-footer__group span, .g1-local-brand p, .form__consent,
  .form__consent span, .contents a, .related-item, .article-bottom,
  .cat-filter__option-text, .cat-filter__head-text, .cat-filter__toggle,
  .cat-filter__toggle span, .mc-filter, .categories button,
  .g10-recommend__head nav button, .g10-recommend__head > a) {
  font-size: var(--fs-sm) !important;
  line-height: 1.45;
}
html body .g10-product__body :is(span, small) { font-size: var(--fs-sm) !important; }
html body :is(.breadcrumbs, .byline, .source-note, .source-note p,
  .card-body small, .feature-content small, .photo-credit,
  .section-photo figcaption, .eyebrow, .sr-hero__note, .sr-hero__dot,
  .footer__bottom, .g1-local-footer__copyright, .product-attr dt,
  .form__field > span, .qw-field > span, .cat-filter__num,
  .cat-filter__hint, .cat-filter__head-count, .mc-card__new,
  .mcd-swatch-name, .tags a, .related-item small) {
  font-size: var(--fs-xs) !important;
  line-height: 1.5;
}
/* Restore original logo rules from style.css / showroom.css / blog CSS.
   Only exempt the wordmarks from the site-wide SF Pro font override. */
html body :is(.sr-logo > span, .logo__name, .g1-local-logo strong,
  .sr-mobile-menu__logo strong) { font-family: Cormorant, Georgia, serif !important; }
html body :is(.brand, .footer-brand, .article-footer > a:first-child) {
  font-family: var(--font-logo) !important;
}
html body .footer-script { font-size: var(--fs-h3); line-height: 1.2; }
html body .footer-script span { font-size: var(--fs-body); }
/* Blog containers grow with larger, consistent text. */
.hero:has(> .hero-copy) { min-height: 430px; height: auto; }
.hero-copy { position: relative; inset: auto; margin-left: 3.7vw; padding: 88px 0 32px; max-width: 620px; }
.hero-copy p { max-width: 52ch; }
.feature { height: auto; min-height: 310px; padding-bottom: 56px; }
.subscribe { height: auto; }
.subscribe div { min-height: 42px; height: auto; }
footer:has(.footer-brand) { height: auto; min-height: 152px; padding-block: 28px; gap: 24px; }
.section-heading { align-items: start; }
@media (max-width: 900px) {
  .hero:has(> .hero-copy) { min-height: 590px; }
  .hero-copy { margin-inline: 5%; padding-top: 88px; max-width: 90%; }
  .hero:has(> .hero-copy) .hero-photo { top: 260px; }
}
@media (max-width: 1360px) {
  .site-header { display: flex; justify-content: space-between; gap: 18px; }
  .site-header .brand { flex: none; }
  .site-header .header-actions { margin-left: auto; }
  .site-header .menu { display: block; flex: none; border: 0; background: none; cursor: pointer; }
  .site-header nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 76px;
    z-index: 40;
    padding: 18px 5%;
    background: #eeeae5;
    flex-wrap: wrap;
    gap: 16px 28px;
  }
  body > .site-header nav { top: 87px; }
  .site-header nav.open { display: flex; }
  html body .site-header nav a {
    font-size: var(--fs-nav-mobile) !important;
    font-weight: var(--fw-nav-mobile) !important;
    line-height: 1.47 !important;
    letter-spacing: -.02em !important;
  }
}
@media (max-width: 800px) {
  body > .site-header nav { top: 72px; }
}


/* Menu revision: larger navigation, aligned icons, lighter mobile lettering. */
html body, html body * {
  -webkit-text-stroke: .65px #000 !important;
  paint-order: stroke fill;
}
html body :is(.logo, .sr-logo, .sr-mobile-menu__logo, .brand, .footer-brand,
  .g1-local-logo, .article-footer > a:first-child),
html body :is(.logo, .sr-logo, .sr-mobile-menu__logo, .brand, .footer-brand,
  .g1-local-logo, .article-footer > a:first-child) * {
  -webkit-text-stroke: 0 !important;
}
html body :is(.header__phone, .header__phone span, .sr-header-phone span) {
  font-size: var(--fs-nav) !important;
}
html body :is(.header__action-btn, .sr-header-action,
  .mobile-menu__phone, .mobile-menu__close,
  .sr-mobile-menu__phone, .sr-mobile-menu__close) {
  width: 40px; height: 40px; flex: 0 0 40px;
  align-items: center; justify-content: center; padding: 0;
}
html body :is(.header__action-btn, .header__phone, .sr-header-action,
  .sr-header-phone, .mobile-menu__phone, .sr-mobile-menu__phone,
  .mm-acc__head, .sr-mm-acc__head) svg {
  display: block; width: 18.2px !important; height: 18.2px !important;
  flex: 0 0 18.2px; vertical-align: middle;
}
html body :is(.mobile-menu__close, .sr-mobile-menu__close) {
  display: grid; place-items: center; font-size: 0 !important;
}
html body :is(.mobile-menu__close, .sr-mobile-menu__close)::before {
  content: ''; display: block; width: 18.2px; height: 18.2px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 3 18 18M21 3 3 21' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
html body :is(.sr-menu-button, .site-header .menu) {
  width: 40px; height: 40px; padding: 7px; flex: 0 0 40px;
  font-size: 0 !important;
}
.sr-menu-button span { display: none !important; }
html body :is(.sr-menu-button, .site-header .menu)::before {
  content: ''; display: block; width: 18.2px; height: 18.2px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18M3 12h18M3 19h18' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sr-menu-button { color: #fff; }
.site-header .header-actions > span {
  width: 40px; height: 40px; display: inline-flex;
  align-items: center; justify-content: center; line-height: 1;
  font-size: 18.2px !important; flex: 0 0 40px;
}
.site-header .header-actions > span > svg {
  display: block; width: 18.2px; height: 18.2px;
  fill: none; stroke: currentColor; stroke-width: 1.5;
}
html body :is(.mm-acc__head, .sr-mm-acc__head, .mm-link, .sr-mm-link) {
  gap: 16px; line-height: 1.3 !important;
}
html body :is(.mm-acc__head, .sr-mm-acc__head) span {
  line-height: 1.3 !important;
}
.sr-mm-acc.is-open .sr-mm-acc__panel { max-height: 900px; }
/* Contact row follows the reference: pill phone button and round messengers. */
html body :is(.mm-footer-links, .sr-mm-footer, .dsg-menu-contact) {
  display: flex; flex-direction: row; flex-wrap: wrap;
  align-items: center; gap: 10px;
}
html body :is(.mm-footer-links, .sr-mm-footer, .dsg-menu-contact) > a[href^="tel:"] {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto; min-height: 36.58px; width: auto;
  padding: 8px 16px; border: 0; border-radius: 980px;
  background: #1d1d1f; color: #fff !important;
  -webkit-text-fill-color: #fff;
  font-size: 14px !important; font-weight: 500 !important;
  line-height: 1.47 !important; letter-spacing: -.01em !important;
  white-space: nowrap; text-decoration: none;
}
html body :is(.mm-footer-links, .sr-mm-footer, .dsg-menu-contact) > .dsg-menu-social {
  display: grid; place-items: center; flex: 0 0 30px;
  width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%;
  background: #f5f5f7; color: #171512; text-decoration: none;
}
.dsg-menu-social svg { display: block; width: 20px; height: 20px; }
.site-header nav > .dsg-menu-contact { display: none; }
@media (max-width: 1360px) {
  .site-header nav > .dsg-menu-contact {
    display: flex; flex-basis: 100%; margin-top: 12px;
  }
}
@media (max-width: 600px) {
  html body .header__inner { padding-inline: 12px; gap: 8px; }
  html body .header__contacts { gap: 4px; }
  html body .header__actions { gap: 0; }
  html body .header__action-btn { width: 32px; height: 40px; flex-basis: 32px; }
}
@media (max-width: 360px) {
  html body .header__inner { padding-inline: 10px; gap: 4px; }
  html body .header__contacts { gap: 0; }
  html body .header__action-btn { width: 30px; flex-basis: 30px; }
}

/* One menu scale and one centre line for labels and controls. */
html body :is(.nav__link, .sr-nav-link, .sr-site-nav > a,
  .header__phone, .sr-header-phone) {
  display: inline-flex; align-items: center; line-height: 1 !important;
}
html body :is(.header__phone span, .sr-header-phone span) {
  line-height: 1 !important;
}
.header__inner, .header__contacts, .header__actions,
.sr-site-header__inner, .sr-site-actions, .sr-header-actions-icons {
  align-items: center;
}
html body :is(.header__phone, .sr-header-phone) { min-height: 40px; }
html body :is(.mobile-menu__top-actions, .sr-mobile-menu__actions) {
  display: flex; align-items: center; gap: 8px;
}
html body :is(.mm-acc__head, .sr-mm-acc__head, .mm-link, .sr-mm-link) {
  min-height: 50.4px; align-items: center; padding-block: 12.6px;
}
html body :is(.mm-acc__head, .sr-mm-acc__head) svg {
  align-self: center; margin: 0;
}
html body :is(.mobile-menu__close, .sr-mobile-menu__close)::before {
  width: 18.2px; height: 18.2px;
}
.site-header nav > a { display: inline-flex; align-items: center; }
@media (max-width: 1360px) {
  .site-header nav > a { min-height: 40px; }
}

/* Keep the complete desktop header inside the viewport at its breakpoint. */
@media (min-width: 1181px) {
  html body .sr-site-header__inner { width: min(1320px, calc(100% - 80px)); }
  html body .sr-site-nav { margin-left: 24px; gap: 24px; }
  html body .sr-site-actions { margin-left: auto; }
}

html body :is(#mobile-menu, #sr-mobile-menu) :is(.mm-acc__head,
  .mm-acc__head span, .sr-mm-acc__head, .sr-mm-acc__head span, .mm-link, .sr-mm-link) {
  line-height: 1.3 !important;
}

html body :is(.sr-menu-button, .site-header .menu)::before { margin-inline: auto; }
