:root {
  --gb-white: #fff;
  --gb-milk: #faf7f5;
  --gb-powder-50: #fcf7f7;
  --gb-powder-100: #f5e8e8;
  --gb-rose-300: #dda7ad;
  --gb-rose-500: #c47f88;
  --gb-ink: #171717;
  --gb-graphite: #343434;
  --gb-muted: #666;
  --gb-soft: #8a8a8a;
  --gb-line: #e7e2df;
  --gb-line-strong: #c9c3bf;
  --gb-sale: #b4232e;
  --gb-success: #2e6b4d;
  --gb-container: 1440px;
  --gb-ui: Manrope, Arial, sans-serif;
  --gb-editorial: "Cormorant Garamond", Georgia, serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { color: var(--gb-ink); background: var(--gb-white); scroll-behavior: smooth; }
body { margin: 0; color: var(--gb-ink); background: var(--gb-white); font: 400 16px/1.5 var(--gb-ui); }
body.gb-lock { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .18em; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 2px solid var(--gb-ink); outline-offset: 2px; }

.gb-skip-link { position: fixed; z-index: 10000; top: 8px; left: 8px; padding: 12px 16px; background: var(--gb-ink); color: var(--gb-white); transform: translateY(-150%); }
.gb-skip-link:focus { transform: none; }
.gb-container { width: min(calc(100% - 64px), 1350px); margin-right: auto; margin-left: auto; }
.gb-promo { display: none; }
.gb-header { position: relative; z-index: 100; border-bottom: 1px solid var(--gb-line); background: rgba(255,255,255,.98); }
.gb-header.is-sticky { position: sticky; top: 0; box-shadow: 0 8px 24px rgba(23,23,23,.06); }
.gb-header__main { min-height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.gb-header__brand { font: 500 clamp(28px,3vw,42px)/1 var(--gb-editorial); letter-spacing: .08em; text-decoration: none; white-space: nowrap; }
.gb-header__tools { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.gb-icon-button { width: 44px; height: 44px; display: inline-grid; place-items: center; border: 0; background: transparent; cursor: pointer; }
.gb-icon-button--large { width: 52px; height: 52px; }
.gb-icon-button--large .fa { font-size: 28px; font-weight: 400; line-height: 1; }
.gb-menu-toggle { display: none; }
.gb-nav { border-top: 1px solid var(--gb-line); }
.gb-nav #menu { min-height: 48px; margin: 0; border: 0; border-radius: 0; background: var(--gb-white); }
.gb-nav #menu .navbar-header { display: none; }
.gb-nav #menu .navbar-collapse { padding: 0; }
.gb-nav #menu .nav { float: none; display: flex; justify-content: center; gap: clamp(18px,2.5vw,42px); }
.gb-nav #menu .nav > li { float: none; }
.gb-nav #menu .nav > li > a { min-height: 48px; display: grid; place-items: center; padding: 0; color: var(--gb-ink); font-size: 13px; font-weight: 600; line-height: 1.2; text-shadow: none; text-transform: uppercase; letter-spacing: .04em; }
.gb-nav #menu .nav > li > a:hover, .gb-nav #menu .nav > li.open > a { background: transparent; color: var(--gb-ink); text-decoration: underline; }
.gb-nav__list { min-height: 48px; display: flex; justify-content: center; align-items: stretch; gap: clamp(18px,2.5vw,42px); margin: 0; padding: 0; list-style: none; }
.gb-nav__link { display: grid; place-items: center; min-height: 48px; font-size: 13px; font-weight: 600; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; }
.gb-nav__link:hover, .gb-nav__link:focus-visible { text-decoration: underline; }
.gb-nav__link--sale { color: var(--gb-sale); }
.gb-main { min-height: 50vh; }
.gb-footer { margin-top: 96px; border-top: 1px solid var(--gb-line); background: var(--gb-milk); }
.gb-footer__grid { display: grid; grid-template-columns: 1.3fr repeat(3,1fr); gap: 48px; padding-block: 56px; }
.gb-footer__title { margin: 0 0 16px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.gb-footer__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.gb-footer__bottom { display: flex; justify-content: space-between; gap: 24px; padding-block: 18px; border-top: 1px solid var(--gb-line); color: var(--gb-muted); font-size: 12px; }
.gb-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 24px; border: 1px solid var(--gb-ink); border-radius: 2px; background: var(--gb-white); color: var(--gb-ink); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.gb-button--primary { background: var(--gb-ink); color: var(--gb-white); }
.gb-button--primary:hover { background: var(--gb-graphite); }
.gb-field { width: 100%; min-height: 52px; padding: 0 16px; border: 1px solid var(--gb-line); border-radius: 2px; background: var(--gb-white); }
.gb-field:focus { border-color: var(--gb-ink); outline: none; }
.gb-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.gb-muted { color: var(--gb-muted); }
.gb-eyebrow { margin: 0 0 8px; color: var(--gb-muted); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.gb-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 20px; color: var(--gb-muted); font-size: 12px; }
.gb-breadcrumb a { text-decoration: none; }
.gb-page-head { max-width: 780px; padding: 36px 0 48px; }
.gb-page-head h1, .gb-main > h1 { margin: 0 0 16px; font: 500 clamp(38px,5vw,68px)/.98 var(--gb-editorial); }
.gb-hero { min-height: min(760px,78vh); display: grid; align-items: center; background: linear-gradient(90deg,rgba(250,247,245,.96) 0%,rgba(250,247,245,.74) 46%,rgba(245,232,232,.34) 100%); }
.gb-hero--home { width: min(calc(100% - 64px), 1350px); min-height: 410px; margin: 0 auto; background-color: #ead8c6; background-image: linear-gradient(90deg,rgba(230,207,184,.18),rgba(230,207,184,0)),url('../image/hero-desktop.jpg'); background-position: center; background-repeat: no-repeat; background-size: cover; color: #fff; text-align: center; }
.gb-hero--home .gb-hero__inner { width: min(100%, 780px); margin-left: 25%; }
.gb-hero--home .gb-eyebrow { color: #94733f; letter-spacing: .28em; }
.gb-hero--home h1 { max-width: none; margin-bottom: 20px; color: #fff; font-size: clamp(48px,4.6vw,68px); line-height: .98; text-shadow: 0 1px 8px rgba(71,43,28,.12); }
.gb-hero--home .gb-hero__inner > p:not(.gb-eyebrow) { max-width: 650px; margin: 0 auto 30px; color: #fff; font-weight: 600; }
.gb-button--hero { border-color: #fff; background: transparent; color: #fff; }
.gb-button--hero:hover { background: #fff; color: #171717; }
.gb-category-showcase { display: grid; grid-template-columns: repeat(6,1fr); padding: 0; border-bottom: 1px solid #ddd2c5; }
.gb-category-showcase a { min-height: 94px; display: grid; place-items: center; padding: 12px; border-right: 1px solid #fff; background: #eee3d5; color: #171717; font-size: 14px; font-weight: 600; text-align: center; text-decoration: none; text-transform: uppercase; }
.gb-category-showcase a:last-child { border-right: 0; }
.gb-category-showcase a:hover { background: #e5d5c3; }
.gb-benefits--home { width: min(calc(100% - 64px), 1350px); margin: 32px auto 0; padding: 34px 0; }
.gb-benefits--home .gb-benefits__grid { width: 100%; grid-template-columns: repeat(4,1fr); gap: 0; }
.gb-benefits--home .gb-benefits__grid div { min-height: 112px; place-content: center; padding: 20px 48px; border-right: 1px solid var(--gb-line); }
.gb-benefits--home .gb-benefits__grid div:last-child { border-right: 0; }
.gb-home-products { padding-top: 64px; }
.gb-hero__inner h1 { max-width: 780px; margin: 0 0 24px; font: 500 clamp(52px,7vw,112px)/.84 var(--gb-editorial); letter-spacing: -.03em; }
.gb-hero__inner p:not(.gb-eyebrow) { max-width: 520px; margin-bottom: 28px; }
.gb-section { padding-block: 80px; }
.gb-section__heading { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 32px; }
.gb-section__heading h2 { margin: 0; font: 500 clamp(34px,4vw,56px)/1 var(--gb-editorial); }
.gb-benefits { padding-block: 34px; border-block: 1px solid var(--gb-line); }
.gb-benefits__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.gb-benefits__grid div { display: grid; gap: 6px; }
.gb-benefits__grid span { color: var(--gb-muted); font-size: 13px; }
.gb-newsletter { display: flex; gap: 8px; max-width: 520px; }
.gb-catalog { display: grid; grid-template-columns: minmax(220px,280px) 1fr; gap: 48px; }
.gb-filter { min-width: 0; }
.gb-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: 16px; margin-bottom: 24px; }
.gb-toolbar label { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.gb-toolbar .gb-field { min-width: 220px; }
.gb-filter-toggle { display: none; }
.gb-product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px 20px; }
.gb-product-card h2, .gb-product-card h3 { margin: 5px 0 7px; font-size: 14px; font-weight: 500; }
.gb-product-card a { text-decoration: none; }
.gb-product-card__image { position: relative; display: block; aspect-ratio: 4/5; overflow: hidden; background: var(--gb-milk); }
.gb-product-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gb-product-card:hover .gb-product-card__image img { transform: scale(1.02); }
.gb-product-card__body { padding-top: 14px; }
.gb-product-card__brand { margin: 0; color: var(--gb-muted); font-size: 11px; text-transform: uppercase; }
.gb-price { display: flex; align-items: center; gap: 10px; margin: 0; }
.gb-price__old { color: var(--gb-muted); text-decoration: line-through; }
.gb-price--large { margin: 18px 0 26px; font-size: 22px; }
.gb-pagination { display: flex; justify-content: space-between; align-items: center; margin-top: 48px; }
.gb-empty { padding: 64px 0; text-align: center; }
.gb-product-page { display: grid; grid-template-columns: minmax(0,7fr) minmax(360px,5fr); gap: clamp(40px,6vw,96px); }
.gb-product-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-content: start; }
.gb-product-gallery a:first-child { grid-column: 1/-1; }
.gb-product-gallery img { width: 100%; background: var(--gb-milk); }
.gb-product-info { position: sticky; top: 150px; align-self: start; }
.gb-product-info h1 { margin: 0; font: 500 clamp(36px,4vw,56px)/1 var(--gb-editorial); }
.gb-option { margin: 22px 0; }
.gb-option > label { display: block; margin-bottom: 10px; font-size: 13px; font-weight: 600; }
.gb-option-values { display: flex; flex-wrap: wrap; gap: 8px; }
.gb-option-values input { position: absolute; opacity: 0; }
.gb-option-values span { min-width: 48px; min-height: 44px; display: grid; place-items: center; padding: 8px 12px; border: 1px solid var(--gb-line-strong); cursor: pointer; }
.gb-option-values input:checked + span { border-color: var(--gb-ink); box-shadow: inset 0 0 0 1px var(--gb-ink); }
.gb-qty { width: 90px; margin: 8px 8px 8px 0; }
.gb-add-cart { width: calc(100% - 102px); }
.gb-service-notes { margin: 24px 0; padding: 18px; background: var(--gb-milk); font-size: 13px; }
.gb-service-notes p { margin: 5px 0; }
details { border-top: 1px solid var(--gb-line); }
details:last-child { border-bottom: 1px solid var(--gb-line); }
summary { padding: 18px 0; font-weight: 600; cursor: pointer; }
details > div { padding-bottom: 20px; color: var(--gb-graphite); }
.gb-cart-layout, .gb-checkout-layout { display: grid; grid-template-columns: minmax(0,8fr) minmax(320px,4fr); gap: 64px; }
.gb-cart-item { display: grid; grid-template-columns: 150px 1fr auto; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--gb-line); }
.gb-cart-item img { width: 150px; aspect-ratio: 4/5; object-fit: cover; background: var(--gb-milk); }
.gb-cart-item h2 { margin: 0 0 8px; font: 500 24px/1.1 var(--gb-editorial); }
.gb-cart-item__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gb-link-button { border: 0; background: none; text-decoration: underline; cursor: pointer; }
.gb-summary { position: sticky; top: 150px; align-self: start; padding: 28px; background: var(--gb-milk); }
.gb-summary h2 { margin-top: 0; font: 500 30px/1 var(--gb-editorial); }
.gb-summary__row { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--gb-line); }
.gb-summary .gb-button { width: 100%; margin-top: 12px; }
.gb-checkout-steps .panel { margin-bottom: 12px; border: 1px solid var(--gb-line); }
.gb-checkout-steps .panel-title { margin: 0; font-size: 16px; }
.gb-checkout-steps .panel-title a { display: block; padding: 20px; text-decoration: none; }
.gb-checkout-steps .panel-body { padding: 20px; border-top: 1px solid var(--gb-line); }
.gb-account-layout { display: grid; grid-template-columns: minmax(220px,3fr) minmax(0,9fr); gap: 64px; }
.gb-account-nav h1 { margin: 0; font: 500 clamp(42px,5vw,64px)/1 var(--gb-editorial); }
.gb-account-dashboard { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gb-account-card { padding: 28px; border: 1px solid var(--gb-line); background: var(--gb-white); }
.gb-account-card h2 { margin-top: 0; font: 500 28px/1 var(--gb-editorial); }
.gb-account-card ul { display: grid; gap: 10px; margin: 0; padding-left: 18px; }
.gb-search-form { display: grid; grid-template-columns: 2fr 1fr auto; gap: 10px; max-width: 980px; }

@media (max-width: 1023px) {
  .gb-container { width: min(calc(100% - 48px), var(--gb-container)); }
  .gb-header__main { min-height: 64px; }
  .gb-header__brand { font-size: 30px; }
  .gb-menu-toggle { display: inline-grid; }
  .gb-header__left-label { display: none; }
  .gb-nav { position: fixed; inset: 0 auto 0 0; z-index: 110; width: min(100%, 420px); padding: 80px 24px 32px; overflow: auto; background: var(--gb-white); transform: translateX(-105%); transition: transform 240ms cubic-bezier(.2,.8,.2,1); }
  .gb-nav.is-open { transform: none; box-shadow: 24px 0 64px rgba(23,23,23,.18); }
  .gb-nav #menu .navbar-collapse { display: block !important; border: 0; box-shadow: none; }
  .gb-nav #menu .nav { display: grid; justify-content: stretch; gap: 0; margin: 0; }
  .gb-nav #menu .nav > li > a { justify-content: start; min-height: 52px; border-bottom: 1px solid var(--gb-line); }
  .gb-nav #menu .dropdown-menu { position: static; float: none; width: auto; border: 0; box-shadow: none; }
  .gb-nav__list { display: grid; justify-content: stretch; align-content: start; gap: 0; }
  .gb-nav__link { justify-items: start; border-bottom: 1px solid var(--gb-line); }
  .gb-footer__grid { grid-template-columns: 1fr 1fr; }
  .gb-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gb-catalog { grid-template-columns: 1fr; }
  .gb-filter { position: fixed; inset: 0; z-index: 300; padding: 72px 24px 32px; overflow: auto; background: var(--gb-white); transform: translateX(-105%); transition: transform .24s ease; }
  .gb-filter.is-open { transform: none; }
  .gb-filter-toggle { display: inline-flex; }
  .gb-toolbar { justify-content: space-between; }
  .gb-product-page { grid-template-columns: 1fr 1fr; gap: 32px; }
  .gb-cart-layout, .gb-checkout-layout { gap: 32px; }
  .gb-account-layout { grid-template-columns: 1fr; gap: 32px; }
  .gb-category-showcase { grid-template-columns: repeat(3,1fr); }
  .gb-benefits--home .gb-benefits__grid { grid-template-columns: repeat(2,1fr); }
  .gb-benefits--home .gb-benefits__grid div:nth-child(2) { border-right: 0; }
}

@media (min-width: 1024px) {
  html, body { min-height: 100%; height: auto; overflow-y: visible; }
  body.gb-lock { overflow: visible !important; }
  .gb-header,
  .gb-header.is-sticky,
  .gb-main,
  .gb-main > .gb-hero,
  .gb-main > .gb-category-showcase,
  .gb-main > .gb-benefits { position: static !important; }
}

@media (max-width: 767px) {
  .gb-container { width: calc(100% - 32px); }
  .gb-promo { min-height: 32px; font-size: 11px; }
  .gb-header__main { grid-template-columns: 44px 1fr auto; gap: 4px; }
  .gb-header__brand { justify-self: center; font-size: 25px; }
  .gb-header__tools { gap: 0; }
  .gb-header__tools .gb-hide-mobile { display: none; }
  .gb-footer { margin-top: 64px; }
  .gb-footer__grid { grid-template-columns: 1fr; gap: 0; padding-block: 32px; }
  .gb-footer__section { padding-block: 14px; border-bottom: 1px solid var(--gb-line); }
  .gb-footer__bottom { flex-direction: column; gap: 8px; }
  .gb-newsletter { flex-direction: column; }
  .gb-hero { min-height: 620px; align-items: end; padding-bottom: 56px; }
  .gb-hero--home { width: calc(100% - 32px); min-height: 620px; padding-bottom: 28px; background-image: linear-gradient(0deg,rgba(49,31,24,.46),rgba(49,31,24,0) 64%),url('../image/hero-mobile.jpg'); background-position: center top; }
  .gb-hero--home .gb-hero__inner { width: 100%; margin-left: 0; }
  .gb-hero--home h1 { font-size: clamp(42px,13vw,60px); }
  .gb-category-showcase { width: calc(100% - 32px); grid-template-columns: repeat(2,1fr); }
  .gb-category-showcase a { min-height: 70px; font-size: 12px; }
  .gb-benefits--home { width: calc(100% - 32px); margin-top: 20px; }
  .gb-benefits--home .gb-benefits__grid { grid-template-columns: 1fr; }
  .gb-benefits--home .gb-benefits__grid div { min-height: 88px; padding: 16px 20px; border-right: 0; border-bottom: 1px solid var(--gb-line); }
  .gb-hero__inner h1 { font-size: clamp(48px,14vw,68px); }
  .gb-section { padding-block: 56px; }
  .gb-benefits__grid { grid-template-columns: 1fr; }
  .gb-toolbar { align-items: stretch; }
  .gb-toolbar label { display: grid; }
  .gb-toolbar .gb-field { min-width: 0; }
  .gb-product-grid { gap: 28px 10px; }
  .gb-product-card h2, .gb-product-card h3 { font-size: 13px; }
  .gb-product-page { grid-template-columns: 1fr; }
  .gb-product-gallery { margin-inline: -16px; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .gb-product-gallery a { min-width: 88%; scroll-snap-align: start; }
  .gb-product-info { position: static; }
  .gb-add-cart { position: sticky; z-index: 50; bottom: 8px; width: calc(100% - 102px); }
  .gb-cart-layout, .gb-checkout-layout { grid-template-columns: 1fr; }
  .gb-cart-item { grid-template-columns: 96px 1fr; gap: 14px; }
  .gb-cart-item > strong { grid-column: 2; }
  .gb-cart-item img { width: 96px; }
  .gb-summary { position: static; }
  .gb-account-dashboard { grid-template-columns: 1fr; }
  .gb-search-form { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
