@font-face { font-family: RAStorefront; src: url('fonts/cormorant-500.ttf') format('truetype'); font-weight: 500; font-display: swap; }
@font-face { font-family: RAStorefront; src: url('fonts/cormorant-600.ttf') format('truetype'); font-weight: 600; font-display: swap; }

/* Shared CMS block styles. Page-specific variables and header/footer rules do not apply here. */
.sf-scope { --sf-paper: #f7f3ec; --sf-wine: #48171d; --sf-dark: #1e1013; --sf-gold: #d2b886; --sf-muted: #70665f; --sf-line: rgba(33,27,24,.18); color: #211b18; font: 400 14px/1.7 Manrope, Arial, sans-serif; text-align: left; }
/* Include each scope root: dialog padding must fit inside its viewport width. */
.sf-scope, .sf-scope::before, .sf-scope::after, .sf-scope *, .sf-scope *::before, .sf-scope *::after { box-sizing: border-box; }
.sf-scope a { color: inherit; text-decoration: none; }
.sf-scope button, .sf-scope input { font: inherit; }
.sf-scope button { cursor: pointer; }
.sf-scope p, .sf-scope h2, .sf-scope h3 { margin: 0; }
.sf-scope :focus-visible { outline: 2px solid #9f7d4c; outline-offset: 5px; }
.sf-scope [hidden] { display: none !important; }
.sf-container { width: min(1360px, calc(100% - 80px)); margin-inline: auto; }
.sf-skip { position: fixed; z-index: 300; top: 12px; left: 16px; padding: 12px 20px; color: #48171d; background: #f7f3ec; transform: translateY(-160%); }
.sf-skip:focus { transform: none; }
.sf-announcement { background: var(--sf-dark); color: #d8cdc1; font-size: 12px; }
.sf-announcement__inner { display: flex; min-height: 36px; align-items: center; justify-content: space-between; gap: 24px; }
.sf-announcement__note { display: flex; align-items: center; gap: 10px; }
.sf-announcement__note::before { width: 5px; height: 5px; border-radius: 50%; background: var(--sf-gold); content: ''; }
.sf-announcement__links { display: flex; gap: 28px; }
.sf-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid var(--sf-line); background: rgba(247,243,236,.96); backdrop-filter: blur(18px); }
.sf-header__inner { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 24px; }
.sf-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 13px; }
.sf-brand__seal { display: grid; width: 38px; height: 38px; border: 1px solid currentColor; border-radius: 50%; place-items: center; color: var(--sf-wine); font: 500 16px/1 RAStorefront, Georgia, serif; }
.sf-brand__name { color: var(--sf-dark); font: 600 23px/.95 RAStorefront, Georgia, serif; letter-spacing: .015em; text-transform: uppercase; }
.sf-brand__name small { display: block; margin-top: 8px; color: var(--sf-muted); font: 500 8px/1 Manrope, Arial, sans-serif; letter-spacing: .24em; }
.sf-nav { display: flex; align-items: center; gap: clamp(16px, 1.6vw, 24px); }
.sf-nav a { position: relative; display: block; padding: 31px 0; white-space: nowrap; font: 400 13px/1.7 Manrope, Arial, sans-serif; }
.sf-nav a::after { position: absolute; right: 0; bottom: 24px; left: 0; height: 1px; background: var(--sf-wine); content: ''; transform: scaleX(0); transition: transform .2s; }
.sf-nav a:hover::after, .sf-nav [aria-current]::after { transform: scaleX(1); }
.sf-nav [aria-current] { color: var(--sf-wine); }
.sf-actions { display: flex; flex: 0 0 auto; gap: 4px; }
.sf-icon { position: relative; display: grid; width: 40px; height: auto; min-height: 0; aspect-ratio: 1; flex: 0 0 auto; align-self: center; padding: 0; place-items: center; border: 0; border-radius: 50%; color: inherit; background: transparent; line-height: 1; }
.sf-icon:hover { background: rgba(72,23,29,.07); }
.sf-icon svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.3; }
.sf-count { position: absolute; top: 2px; right: -2px; display: grid; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 50%; place-items: center; background: var(--sf-wine); color: var(--sf-paper); font: 400 10px/1 Manrope, Arial, sans-serif; }
.sf-count[data-count="0"] { display: none; }
.sf-menu-toggle { display: none; }
/* Product favorite circles keep their diameter when the purchase row is taller. */
[data-storefront-shell] .save-product {
  box-sizing: border-box; height: auto; min-height: 0; aspect-ratio: 1;
  align-self: center; padding: 0;
}
/* A shared vector gives every favorite control the same wide, rounded heart. */
@supports ((mask-image: url("")) or (-webkit-mask-image: url(""))) {
  [data-storefront-shell] {
    --sf-heart-outline: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 23'%3E%3Cpath d='M14 21 4.3 12.4C1.3 9.8 1.3 5.6 4 3.3C6.8 .9 11 1.9 14 5.2C17 1.9 21.2 .9 24 3.3C26.7 5.6 26.7 9.8 23.7 12.4Z' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --sf-heart-filled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 23'%3E%3Cpath d='M14 21 4.3 12.4C1.3 9.8 1.3 5.6 4 3.3C6.8 .9 11 1.9 14 5.2C17 1.9 21.2 .9 24 3.3C26.7 5.6 26.7 9.8 23.7 12.4Z' fill='black' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
  [data-storefront-shell] .favorite-button,
  [data-storefront-shell] .favorites-heart { font-size: 0 !important; }
  [data-storefront-shell] .favorite-button {
    display: flex; align-items: center; justify-content: center; gap: 0;
    padding: 0; line-height: 0;
  }
  [data-storefront-shell] .sf-favorite-toggle > svg { display: none; }
  [data-storefront-shell] .favorite-button::before,
  [data-storefront-shell] .sf-favorite-toggle::before,
  [data-storefront-shell] .favorites-heart::before {
    content: ''; display: block; flex: none; width: var(--sf-heart-width, 26px); height: var(--sf-heart-height, 24px);
    background-color: currentColor;
    -webkit-mask: var(--sf-heart-outline) center / contain no-repeat;
    mask: var(--sf-heart-outline) center / contain no-repeat;
    pointer-events: none;
  }
  [data-storefront-shell] .favorite-button[aria-pressed="true"]::before {
    -webkit-mask-image: var(--sf-heart-filled); mask-image: var(--sf-heart-filled);
  }
  [data-storefront-shell] .save-product { --sf-heart-width: 28px; --sf-heart-height: 24px; }
  [data-storefront-shell] .favorites-heart { --sf-heart-width: 60px; --sf-heart-height: 52px; }
}
.sf-progress { position: fixed; top: 0; right: 0; left: 0; z-index: 60; height: 2px; pointer-events: none; }
.sf-progress span { display: block; height: 100%; background: #9f7d4c; transform: scaleX(0); transform-origin: left; }
body.sf-dialog-open { overflow: hidden; }
dialog.sf-dialog { position: fixed; inset: 0; width: min(620px, calc(100% - 40px)); height: fit-content; max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 32px; overflow: auto; border: 1px solid var(--sf-line); border-radius: 0; color: #211b18; background: var(--sf-paper); box-shadow: 0 20px 80px #1e10132b; }
dialog.sf-dialog::backdrop { background: rgba(30,16,19,.52); backdrop-filter: blur(5px); }
.sf-dialog__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.sf-dialog__top h2 { font: 500 40px/1.1 RAStorefront, Georgia, serif; }
.sf-scope .sf-dialog__close { font-size: 30px; }
.sf-search label { display: block; margin-bottom: 12px; color: var(--sf-muted); font-size: 13px; }
.sf-search__row { display: flex; gap: 10px; }
.sf-search input { width: 100%; min-width: 0; min-height: 52px; padding: 12px 15px; border: 1px solid var(--sf-line); border-radius: 0; color: #211b18; background: transparent; }
.sf-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 18px; padding: 12px 24px; border: 1px solid var(--sf-wine); border-radius: 100px; background: var(--sf-wine); color: var(--sf-paper); white-space: nowrap; }
.sf-button:hover { background: #71303a; }
dialog.sf-menu { inset: 0; width: min(420px, 100%); height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; padding: 28px; }
.sf-menu .sf-nav { display: grid; gap: 0; }
.sf-menu .sf-nav a { padding: 12px 0; border-bottom: 1px solid var(--sf-line); font: 500 clamp(26px, 7vw, 32px)/1.2 RAStorefront, Georgia, serif; white-space: normal; }
.sf-menu .sf-nav a::after { content: none; }
.sf-menu__contacts { display: grid; margin-top: 25px; gap: 12px; }
.sf-menu__favorite { display: flex; align-items: center; gap: 12px; margin-top: 22px; padding: 8px 0; border: 0; background: transparent; color: var(--sf-wine); }
.sf-favorites { display: grid; gap: 12px; }
.sf-favorite-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--sf-line); }
.sf-favorite-item a { overflow-wrap: anywhere; }
.sf-favorite-empty { color: var(--sf-muted); }
.sf-notice { position: fixed; right: 20px; bottom: 20px; left: 20px; z-index: 80; width: fit-content; max-width: calc(100% - 40px); margin: auto; padding: 12px 20px; background: var(--sf-dark); color: var(--sf-paper); opacity: 0; transform: translateY(15px); pointer-events: none; transition: opacity .2s, transform .2s; }
.sf-notice.is-visible { opacity: 1; transform: none; }
.sf-footer { padding: 68px 0 23px; background: var(--sf-dark); color: #b6a69e; }
.sf-footer__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 48px; padding-bottom: 50px; }
.sf-footer .sf-brand__seal { color: var(--sf-gold); }
.sf-footer .sf-brand__name { color: var(--sf-paper); }
.sf-footer .sf-brand__name small { color: #b6a69e; }
.sf-footer__statement { margin-top: 30px !important; color: #d9cbbd; font: 500 29px/1.2 RAStorefront, Georgia, serif; }
.sf-footer h3 { margin: 0 0 25px; color: var(--sf-gold); font: 500 11px/1.5 Manrope, Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.sf-footer ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.sf-footer a:hover { color: var(--sf-paper); }
.sf-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; border-top: 1px solid #ffffff1f; font-size: 11px; }
@media (max-width: 1240px) { .sf-header .sf-brand__seal { display: none; } .sf-header__inner { gap: 20px; } .sf-nav { gap: 17px; } }
@media (max-width: 1100px) {
  .sf-header__inner { min-height: 80px; flex-wrap: wrap; gap: 0 20px; }
  .sf-header .sf-brand__seal { display: grid; }
  .sf-nav-slot { width: 100%; order: 3; }
  .sf-header .sf-nav { justify-content: center; flex-wrap: wrap; gap: 0 22px; }
  .sf-header .sf-nav a { padding: 10px 0; }
  .sf-header .sf-nav a::after { bottom: 4px; }
  /* Set the mobile header before deferred JavaScript moves the navigation. */
  .sf-nav-slot { display: none; }
  .sf-menu-toggle { display: grid; }
  .sf-footer__top { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 640px) {
  .sf-container { width: calc(100% - 40px); }
  .sf-announcement__inner { min-height: 30px; justify-content: center; }
  .sf-announcement__note { gap: 8px; font-size: 9px; }
  .sf-announcement__links { display: none; }
  .sf-header__inner { min-height: 74px; gap: 0 10px; }
  .sf-header .sf-brand__seal { display: none; }
  .sf-header .sf-brand__name { font-size: 19px; }
  .sf-header .sf-brand__name small { margin-top: 6px; font-size: 6px; letter-spacing: .19em; }
  .sf-actions { gap: 0; }
  .sf-actions .sf-icon { width: 34px; }
  .sf-actions .sf-favorite-toggle { display: none; }
  dialog.sf-dialog { padding: 24px; }
  .sf-dialog__top h2 { font-size: 34px; }
  .sf-search__row { flex-direction: column; }
  .sf-footer { padding: 45px 0 24px; }
  .sf-footer__top { gap: 34px 22px; padding-bottom: 36px; }
  .sf-footer__brand, .sf-footer__contacts { grid-column: 1 / -1; }
  .sf-footer__statement { margin-top: 20px !important; }
  .sf-footer h3 { margin-bottom: 16px; }
  .sf-footer__bottom { flex-direction: column; gap: 7px; }
}
@media (max-width: 360px) { .sf-container { width: calc(100% - 32px); } .sf-header .sf-brand__name { font-size: 17px; } .sf-actions .sf-icon { width: 32px; } }
@media (prefers-reduced-motion: reduce) { .sf-scope *, .sf-scope *::before, .sf-scope *::after { transition: none !important; } }
