/* vop-r47-palette-a-type
   Locked scale only: display 60/42, h1 42/36, h2 36/24, h3 24/24,
   body and button 16/16, small 14/14, meta 12/12.
   Do not add another font size. Palette A colors live in settings and earlier CSS. */
:root {
  --vop-fs-display: 60px;
  --vop-fs-h1: 42px;
  --vop-fs-h2: 36px;
  --vop-fs-h3: 24px;
  --vop-fs-body: 16px;
  --vop-fs-small: 14px;
  --vop-fs-meta: 12px;
}

.vop-hero .f-slide__title {
  font-size: var(--vop-fs-display) !important;
  line-height: 1.05;
}

h1,
.f-main-page h1,
.main-page h1,
.vop-about-write__mail {
  font-size: var(--vop-fs-h1) !important;
}

h2,
.h2,
.f-section__heading,
.f-richtext__title,
.f-portfolio-grid__heading,
.f-hotspots-image__heading,
.f-main-page .rte h2,
.main-page .rte h2,
.template-home .vop-category-products .f-section__heading,
.vop-complete-index .f-richtext__title,
.vop-brand-note .f-richtext__title,
.vop-about-write .f-richtext__title,
.vop-about-practice .f-richtext__title,
.vop-about-scale .f-richtext__title,
.vop-about-mosaic__title,
.vop-room-banner .f-hotspots-image__heading,
.vop-contact-form .f-contact-form__heading,
.vop-hardware-detail .f-richtext__title,
.vop-table-scale .f-richtext__title,
.vop-soft-counterpoint .f-richtext__title,
.vop-soft-counterpoint.vop-layer-merged .f-richtext__title,
.vop-product-promotion .f-richtext__title {
  font-size: var(--vop-fs-h2) !important;
}

h3,
h4,
.f-product-card__name,
.f-product-card__title,
.f-portfolio-grid__caption-title,
.vop-collection-board__name,
.vop-service-grid h3,
.vop-about-point h3,
.vop-contact-form .f-info-box h3,
.vop-about-mosaic__row span,
.vop-about-film strong,
.vop-room-banner .f-hotspot .f-richtext__title,
.vop-index-list a,
.vop-soft-counterpoint.vop-layer-merged .vop-layer-links a small,
.template-home .vop-category-products .f-product-card__name,
.template-home .vop-category-products .f-product-card__title {
  font-size: var(--vop-fs-h3) !important;
}

body,
.f-button,
.vop-hero .f-button,
.vop-hero .f-slide__description,
.f-richtext__description,
.f-section__description,
.vop-category-products .f-section__description,
.template-home .vop-category-products .f-section__description,
.template-home .vop-category-products .f-section__button .f-button,
.vop-soft-counterpoint.vop-layer-merged .f-richtext__description,
.vop-product-hotspots .vop-product-card__title {
  font-size: var(--vop-fs-body) !important;
}

.f-header__desktop .f-menu__link,
.f-product-card__price,
.f-price,
.template-home .vop-category-products .f-product-card__price,
.template-home .vop-category-products .f-price,
.f-footer h3,
.f-footer h4,
.f-footer a,
.f-footer .rte,
.vop-service-grid p,
.vop-service-grid a,
.vop-about-point p,
.vop-contact-form .f-contact-form__description {
  font-size: var(--vop-fs-small) !important;
}

.f-announcement-bar,
.f-announcement-bar .f-announcement-bar__content,
.vop-hero .f-slide__subtitle,
.f-portfolio-grid__tag,
.f-portfolio-grid__caption-tag,
.vop-table-scale .f-richtext__subtitle,
.vop-hardware-detail .f-richtext__subtitle,
.vop-room-banner .f-hotspots-image__subheading,
.vop-about-mosaic__kicker,
.vop-about-write__photo span,
.vop-soft-counterpoint.vop-layer-merged .vop-layer-links a span,
.vop-about-write__social a,
.vop-index-list a span,
.vop-product-hotspots .vop-product-card__meta {
  font-size: var(--vop-fs-meta) !important;
  letter-spacing: 0.14em;
}

@media (max-width: 767px) {
  :root {
    --vop-fs-display: 42px;
    --vop-fs-h1: 36px;
    --vop-fs-h2: 24px;
  }

  .vop-hero .f-slide__title {
    font-size: 42px !important;
  }

  h1,
  .f-main-page h1,
  .main-page h1,
  .vop-about-write__mail {
    font-size: 36px !important;
  }

  h2,
  .h2,
  .f-section__heading,
  .f-richtext__title,
  .f-portfolio-grid__heading,
  .f-hotspots-image__heading,
  .f-main-page .rte h2,
  .main-page .rte h2,
  .template-home .vop-category-products .f-section__heading,
  .vop-complete-index .f-richtext__title,
  .vop-brand-note .f-richtext__title,
  .vop-about-write .f-richtext__title,
  .vop-about-practice .f-richtext__title,
  .vop-about-scale .f-richtext__title,
  .vop-about-mosaic__title,
  .vop-room-banner .f-hotspots-image__heading,
  .vop-contact-form .f-contact-form__heading,
  .vop-hardware-detail .f-richtext__title,
  .vop-table-scale .f-richtext__title,
  .vop-soft-counterpoint .f-richtext__title,
  .vop-soft-counterpoint.vop-layer-merged .f-richtext__title,
  .vop-product-promotion .f-richtext__title {
    font-size: 24px !important;
  }
}


/* vop-r51-home-quiet
   Homepage only. Palette A backgrounds and text. No new font size. */
.template-home .vop-room-entries,
.template-home .vop-room-banner,
.template-home .vop-edit-slider,
.template-home .vop-soft-counterpoint,
.template-home .vop-soft-counterpoint.vop-layer-merged,
.template-home .vop-complete-index {
  background: #F6F1E8 !important;
  color: #2C2622;
}
.template-home .vop-room-banner .f-hotspots-image__heading,
.template-home .vop-edit-slider .f-section__heading,
.template-home .vop-complete-index .f-richtext__title,
.template-home .vop-soft-counterpoint .f-richtext__title {
  color: #3C332C;
}
.template-home .vop-room-entries .f-section__header,
.template-home .vop-soft-counterpoint .f-richtext__title:empty,
.template-home .vop-soft-counterpoint .f-richtext__subtitle:empty,
.template-home .vop-room-banner .f-hotspots-image__subheading:empty,
.template-home .vop-complete-index .f-richtext__subtitle:empty {
  display: none !important;
  margin: 0 !important;
}
.template-home .vop-edit-slider .f-featured-slider__col-right,
.template-home .vop-edit-slider .f-slider-controls,
.template-home .vop-edit-slider .swiper-pagination,
.template-home .vop-edit-slider .f-featured-slider__product-content {
  display: none !important;
}
.template-home .vop-edit-slider .f-featured-slider__container,
.template-home .vop-edit-slider .f-featured-slider__col-left {
  display: block !important;
  width: 100% !important;
}
.template-home .vop-edit-slider .f-featured-slider__products {
  overflow: visible;
}
.template-home .vop-edit-slider .f-featured-slider__products .swiper-wrapper {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  transform: none !important;
  width: 100% !important;
}
.template-home .vop-edit-slider .swiper-slide {
  width: auto !important;
  margin: 0 !important;
  height: auto !important;
}
.template-home .vop-edit-slider .f-section__header {
  margin-bottom: 20px;
}
.template-home .vop-edit-slider .f-product-card__title,
.template-home .vop-edit-slider .f-product-card__name,
.template-home .vop-soft-counterpoint.vop-layer-merged .f-richtext__description,
.template-home .vop-collection-board__lead {
  font-size: 16px !important;
  line-height: 1.45;
  color: #2C2622;
}
.template-home .vop-soft-counterpoint.vop-layer-merged .vop-layer-links a span,
.template-home .vop-edit-slider .f-product-card__price,
.template-home .vop-collection-board__note {
  font-size: 12px !important;
  color: #6E5642;
}
.template-home .vop-room-entries .f-collection-card__title {
  color: #3C332C;
}
@media (max-width: 1023px) {
  .template-home .vop-edit-slider .f-featured-slider__products .swiper-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* vop-r52-category-plan
   Eight menu categories, one limestone palette.
   Locked sizes only. No featured-product-slider override. */
.template-home .vop-category-index,
.template-home .vop-category-products {
  background: #F6F1E8 !important;
  color: #2C2622;
}
.template-home .vop-category-index .f-section__heading,
.template-home .vop-category-products .f-section__heading {
  color: #3C332C;
}
.template-home .vop-category-index .f-section__header {
  display: block !important;
  margin-bottom: 20px;
}
.template-home .vop-category-index .f-collection-card__title,
.template-home .vop-category-index .f-collection-card__title a {
  font-size: 16px !important;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: 0;
  color: #3C332C;
}
.template-home .vop-category-index .f-collection-card__info {
  margin-top: 12px;
}
.template-home .vop-category-index .f-collection-card__image,
.template-home .vop-category-index responsive-image {
  aspect-ratio: 1 / 1;
}
.template-home .vop-category-index .f-collection-card__image img,
.template-home .vop-category-index responsive-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.template-home .vop-hero .f-slide__bg img {
  object-position: center center;
}
.template-home .vop-category-products .f-section__description:empty,
.template-home .vop-category-products .f-section__subheading:empty {
  display: none !important;
  margin: 0 !important;
}
.template-home .vop-category-products .f-product-card__name,
.template-home .vop-category-products .f-product-card__title {
  font-size: 16px !important;
  line-height: 1.4;
  color: #2C2622;
}
.template-home .vop-category-products .f-product-card__price,
.template-home .vop-category-products .f-price {
  font-size: 14px !important;
  color: #6E5642;
}
.template-home .vop-category-products .f-section__button .f-button {
  font-size: 16px !important;
  color: #3C332C;
}
@media (max-width: 1023px) {
  .template-home .vop-category-index .f-mixed-layout__inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .template-home .vop-category-index .f-mixed-layout__inner > .m\:column,
  .template-home .vop-category-index .m\:column {
    width: auto !important;
    max-width: none !important;
  }
}


/* vop-r53-category-tone
   Category stills set the tone beside stocked product grids and on collection headers.
   No new type size. Palette A only. */
.template-home .vop-category-index .f-collection-card__image {
  border: 1px solid #D9CBBA;
}
.template-home .vop-category-index .f-collection-card__info {
  margin-top: 8px;
}
.template-home .vop-tone-band {
  background: #E7DCCD;
}
.template-home .vop-tone-grid .f-mixed-layout__inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas:
    "still p1 p2"
    "still p3 p4";
  gap: 16px;
  align-items: stretch;
}
.template-home .vop-tone-flip .f-mixed-layout__inner {
  grid-template-areas:
    "p1 p2 still"
    "p3 p4 still";
}
.template-home .vop-tone-grid .m\:column,
.template-home .vop-tone-grid .swiper-slide {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}
.template-home .vop-tone-grid .vop-tone-still { grid-area: still; }
.template-home .vop-tone-grid .m\:column:nth-child(2) { grid-area: p1; }
.template-home .vop-tone-grid .m\:column:nth-child(3) { grid-area: p2; }
.template-home .vop-tone-grid .m\:column:nth-child(4) { grid-area: p3; }
.template-home .vop-tone-grid .m\:column:nth-child(5) { grid-area: p4; }
.template-home .vop-tone-still__link {
  display: block;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  background: #E7DCCD;
  border: 1px solid #D9CBBA;
}
.template-home .vop-tone-still__img,
.template-home .vop-tone-still img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.template-home .vop-tone-still__link:focus-visible {
  outline: 2px solid #3C332C;
  outline-offset: 3px;
}
.template-home .vop-tone-grid .f-product-card__media {
  background: #E7DCCD;
  border: 1px solid #D9CBBA;
}
.template-home .vop-tone-grid .f-product-card__name,
.template-home .vop-tone-grid .f-product-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.8em;
}
.vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__wrapper {
  align-items: stretch;
  background: #F6F1E8;
  border: 1px solid #D9CBBA;
}
.vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__background {
  flex: 0 0 46%;
  aspect-ratio: 1 / 1;
  max-height: 560px;
  position: relative;
}
.vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__background img {
  width: 100%;
  height: 100%;
  max-height: 560px;
  object-fit: cover;
  object-position: center center;
}
.vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__inner {
  padding-left: 36px;
  padding-right: 36px;
}
.policy-bottom-bar {
  background: #E4D5C4 !important;
  color: #2C2622 !important;
  border-top: 1px solid #D9CBBA;
}
.policy-bottom-bar .style-msg,
.policy-bottom-bar .style-msg a {
  color: #2C2622 !important;
  font-size: 14px !important;
}
.policy-bottom-bar .approved-button {
  background: #3C332C !important;
  color: #FFFFFF !important;
  border: 1px solid #3C332C !important;
}
.policy-bottom-bar .reject-button {
  background: transparent !important;
  color: #3C332C !important;
  border: 1px solid #3C332C !important;
}
@media (max-width: 1023px) {
  .template-home .vop-tone-grid .f-mixed-layout__inner,
  .template-home .vop-tone-flip .f-mixed-layout__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "still still"
      "p1 p2"
      "p3 p4" !important;
    gap: 12px;
  }
  .template-home .vop-tone-still__link {
    aspect-ratio: 1 / 1;
  }
  .template-home .main-content {
    padding-bottom: 88px;
  }
  .vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__wrapper {
    flex-direction: column;
  }
  .vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__background,
  .vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__background img {
    flex: none;
    width: 100%;
    max-height: none;
    aspect-ratio: 1 / 1;
  }
  .vop-collection-header.f-collection-page-header--image-left .f-collection-page-header__inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* vop-r54-layout
   Approved: mobile still full width then 2x2; desktop still matches product-grid height;
   Home Decor and Hardware flip. Mobile hero gap tightened. No new type size. */
.template-home .vop-tone-grid .f-mixed-layout__inner {
  display: grid !important;
  align-items: stretch !important;
}
.template-home .vop-tone-grid .m\:column,
.template-home .vop-tone-grid .swiper-slide {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  flex: none !important;
}
@media (min-width: 1024px) {
  .template-home .vop-tone-grid .f-mixed-layout__inner {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "still p1 p2"
      "still p3 p4" !important;
    gap: 18px 16px !important;
  }
  .template-home .vop-tone-flip .f-mixed-layout__inner {
    grid-template-areas:
      "p1 p2 still"
      "p3 p4 still" !important;
  }
  .template-home .vop-tone-grid .vop-tone-still {
    position: relative !important;
    grid-area: still !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: stretch !important;
    height: auto !important;
    min-height: 100% !important;
  }
  .template-home .vop-tone-flip .vop-tone-still {
    grid-column: 3 !important;
    grid-row: 1 / span 2 !important;
  }
  .template-home .vop-tone-grid .m\:column:nth-child(2) { grid-column: 2 !important; grid-row: 1 !important; }
  .template-home .vop-tone-grid .m\:column:nth-child(3) { grid-column: 3 !important; grid-row: 1 !important; }
  .template-home .vop-tone-grid .m\:column:nth-child(4) { grid-column: 2 !important; grid-row: 2 !important; }
  .template-home .vop-tone-grid .m\:column:nth-child(5) { grid-column: 3 !important; grid-row: 2 !important; }
  .template-home .vop-tone-flip .m\:column:nth-child(2) { grid-column: 1 !important; grid-row: 1 !important; }
  .template-home .vop-tone-flip .m\:column:nth-child(3) { grid-column: 2 !important; grid-row: 1 !important; }
  .template-home .vop-tone-flip .m\:column:nth-child(4) { grid-column: 1 !important; grid-row: 2 !important; }
  .template-home .vop-tone-flip .m\:column:nth-child(5) { grid-column: 2 !important; grid-row: 2 !important; }
  .template-home .vop-tone-grid .vop-tone-still__link {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    min-height: 100% !important;
    aspect-ratio: auto !important;
  }
}
@media (max-width: 1023px) {
  .template-home .vop-tone-grid .f-mixed-layout__inner,
  .template-home .vop-tone-flip .f-mixed-layout__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "still still"
      "p1 p2"
      "p3 p4" !important;
    gap: 20px 12px !important;
  }
  .template-home .vop-tone-grid .vop-tone-still,
  .template-home .vop-tone-flip .vop-tone-still {
    position: relative !important;
    grid-area: still !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: auto !important;
  }
  .template-home .vop-tone-grid .m\:column:nth-child(2),
  .template-home .vop-tone-flip .m\:column:nth-child(2) { grid-column: 1 !important; grid-row: 2 !important; }
  .template-home .vop-tone-grid .m\:column:nth-child(3),
  .template-home .vop-tone-flip .m\:column:nth-child(3) { grid-column: 2 !important; grid-row: 2 !important; }
  .template-home .vop-tone-grid .m\:column:nth-child(4),
  .template-home .vop-tone-flip .m\:column:nth-child(4) { grid-column: 1 !important; grid-row: 3 !important; }
  .template-home .vop-tone-grid .m\:column:nth-child(5),
  .template-home .vop-tone-flip .m\:column:nth-child(5) { grid-column: 2 !important; grid-row: 3 !important; }
  .template-home .vop-tone-grid .vop-tone-still__link,
  .template-home .vop-tone-flip .vop-tone-still__link {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }
  .template-home .vop-hero {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  .template-home .vop-hero .f-slide__wrapper {
    padding-top: 20px !important;
    padding-bottom: 0 !important;
  }
  .template-home .vop-category-index .f-collection-list__container {
    margin-top: 0 !important;
    padding-top: 20px !important;
  }
}
