@import url('./commerce.css?v=20260927-1');
@import url('./account.css?v=20260927-1');
/* Shared shop, cart, and checkout details, for desktop and mobile. */
[hidden] { display: none !important; }
.hero-title-line { display: block; }
.nav__brand { display: block; text-decoration: none; }
.hero__emblem { opacity: 1; }
.tone-green .kicker { color: var(--gold-light); }
.footer__label { color: var(--heading-color); }
.footer__policies { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 16px; font-size: 11px; color: var(--footer-text); }
.footer__policies a { display: inline-flex; align-items: center; min-height: 44px; color: var(--footer-text); text-decoration: underline; text-underline-offset: 4px; }
.footer__policies a:hover { color: var(--gold-light); }
.form-policy { font-size: 12px; line-height: 1.7; color: var(--text2); margin: 12px 0 20px; }
.form-policy a { text-decoration: underline; text-underline-offset: 3px; }
.product-visual--empty { display: grid; place-items: center; font-size: 12px; color: #574c39; background: #f1eadf; }
.stock-badge { position: absolute; bottom: 12px; left: 12px; font-size: 10px; letter-spacing: .06em; padding: 7px 10px; background: var(--bg); color: var(--muted); }
.card__add:disabled { opacity: .5; cursor: default; background: transparent; color: var(--muted); border-color: var(--hairline); }
.card__photo { background: #f1eadf; }
.rail-bar { align-items: center; justify-content: space-between; gap: 18px; }
.shop-all-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; border-bottom: 1px solid var(--green); }
.shop-page { padding-top: 80px; }
.shop-intro { padding: 38px var(--desktop-gutter, 36px) 30px; text-align: center; background: radial-gradient(ellipse at center, #b6a07a12, transparent 65%), var(--bg); }
.shop-breadcrumb { display: block; text-align: left; font-size: 11px; color: var(--muted); margin-bottom: 26px; }
.shop-intro .display { font-size: clamp(42px, 4.6vw, 64px); max-width: 740px; margin: auto; }
.shop-intro .lede { max-width: 510px; margin: 16px auto 0; }
.shop-catalog { padding-top: 24px; min-height: 55vh; }
.shop-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 26px; padding-bottom: 22px; }
.shop-search { width: 420px; max-width: 100%; }
.shop-sort { min-width: 220px; }
.shop-toolbar label > span { display: block; font-size: 11px; color: var(--muted); margin-bottom: 8px; }
.shop-toolbar :is(input,select) { display: block; width: 100%; min-height: 46px; padding: 12px 14px; border: 1px solid var(--hairline); border-radius: 0; color: var(--text); background: var(--bg); font: 14px var(--sans); }
.shop-options { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-top: 18px; font-size: 12px; color: var(--muted); }
.shop-options label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.shop-options input { width: 16px; height: 16px; accent-color: var(--accent-text, var(--green)); }
.shop-options > div { display: flex; gap: 20px; align-items: center; }
.shop-options button { color: var(--accent-text, var(--green)); text-decoration: underline; text-underline-offset: 4px; min-height: 34px; }
.shop-options .shop-more-filters { display: none; }
.shop-pagination { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 34px; font-size: 12px; }
.shop-pagination:empty { display: none; }
.shop-pagination button { min-height: 44px; padding: 10px 18px; border: 1px solid var(--hairline); color: var(--accent-text, var(--green)); }
.shop-pagination button:disabled { opacity: .3; cursor: default; }
.catalog-empty { grid-column: 1 / -1; text-align: center; padding: 32px; }
.catalog-empty p { margin-top: 0; }
.line { align-items: flex-start; gap: 14px; }
.line__swatch { width: 64px; height: 76px; flex: 0 0 64px; overflow: hidden; background: #f1eadf; }
.line__swatch .product-visual { display: block; width: 100%; height: 100%; object-fit: cover; padding: 0; }
.line__main { flex: 1; min-width: 0; }
.line__name { font-size: 22px; line-height: 1.1; }
.line__quantity { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; border: 1px solid var(--hairline); }
.line__quantity button { width: 32px; height: 32px; }
.line__quantity span { font-size: 12px; min-width: 18px; text-align: center; }
.line__side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-size: 12px; white-space: nowrap; }
.line__remove { min-width: 32px; min-height: 32px; font-size: 22px; }
.line__choose { color: var(--accent-text, var(--green)); font-size: 11px; text-decoration: underline; text-underline-offset: 4px; padding-block: 10px; }
.drawer__foot .btn:disabled { opacity: .5; cursor: default; }

/* Shared add-to-basket feedback for cards, quick view and product pages. */
:is(.card__add,#detail-add,#product-add) { position:relative; isolation:isolate; overflow:hidden; }
:is(#detail-add,#product-add):disabled { opacity:.5; cursor:not-allowed; }
.card__add:not(:disabled):focus-visible { background:var(--green); color:var(--on-accent); }
@media (prefers-reduced-motion:no-preference) {
  :is(.card__add,#detail-add,#product-add) {
    transition:translate .22s ease,scale .15s ease,box-shadow .22s ease,background-color .2s,color .2s,border-color .2s;
  }
  :is(.card__add,#detail-add,#product-add)::before {
    content:""; position:absolute; inset:-25% auto -25% -70%; width:50%; pointer-events:none;
    background:linear-gradient(100deg,transparent,rgba(254,153,0,.24),transparent);
    transform:skewX(-18deg); transition:transform .65s ease;
  }
  :is(.card__add,#detail-add,#product-add):not(:disabled,[aria-disabled="true"]):focus-visible { translate:0 -3px; box-shadow:0 7px 18px rgba(17,87,6,.18); }
  :is(.card__add,#detail-add,#product-add):not(:disabled,[aria-disabled="true"]):focus-visible::before { transform:translateX(360%) skewX(-18deg); }
  :is(.card__add,#detail-add,#product-add):not(:disabled,[aria-disabled="true"]):active { translate:0 0; scale:.98; box-shadow:none; }
  :is(.card__add,#detail-add,#product-add):is(:disabled,[aria-disabled="true"]) { translate:0 0; scale:1; box-shadow:none; transition:none; }
  :is(.card__add,#detail-add,#product-add):is(:disabled,[aria-disabled="true"])::before { opacity:0; transition:none; }
}
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
  :is(.card__add,#detail-add,#product-add):not(:disabled,[aria-disabled="true"]):hover { translate:0 -3px; box-shadow:0 7px 18px rgba(17,87,6,.18); }
  :is(.card__add,#detail-add,#product-add):not(:disabled,[aria-disabled="true"]):hover::before { transform:translateX(360%) skewX(-18deg); }
  :is(.card__add,#detail-add,#product-add):not(:disabled,[aria-disabled="true"]):active { translate:0 0; scale:.98; box-shadow:none; }
}

/* Short, one-shot motion; no timers, navigation interception or layout shifts. */
@media (prefers-reduced-motion: no-preference) {
  .drawer.is-open .drawer__panel { animation: ami-drawer-enter .42s cubic-bezier(.22,1,.36,1) both; }
  .drawer.is-open .drawer__scrim { animation: ami-drawer-scrim .3s ease-out both; }
  .drawer.is-open :is(.drawer__head,.drawer__list,.drawer__empty,.drawer__foot) { animation: ami-drawer-content .34s .08s ease-out both; }
  .drawer.is-open .drawer__foot { animation-delay:.13s; }
  .hero__cta .btn, #submit-form {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    animation:ami-cta-enter .55s cubic-bezier(.22,1,.36,1) both;
    transition:translate .22s ease,scale .15s ease,box-shadow .22s ease,background-color .2s,color .2s,border-color .2s;
  }
  .hero__cta .btn--ghost { animation-delay:.08s; }
  .hero__cta .btn::before, #submit-form::before {
    content:"";
    position:absolute;
    inset:-25% auto -25% -70%;
    width:50%;
    pointer-events:none;
    background:linear-gradient(100deg,transparent,rgba(254,153,0,.24),transparent);
    transform:skewX(-18deg);
    transition:transform .65s ease;
  }
  .hero__cta .btn--ghost::after {
    content:"";
    position:absolute;
    left:24px;
    right:24px;
    bottom:7px;
    height:1px;
    background:var(--brand-gold);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .28s ease;
    pointer-events:none;
  }
  .hero__cta .btn:focus-visible, #submit-form:not(:disabled):focus-visible { translate:0 -3px; box-shadow:0 7px 18px rgba(17,87,6,.14); }
  .hero__cta .btn:is(:focus-visible,:active)::before, #submit-form:not(:disabled):is(:focus-visible,:active)::before { transform:translateX(360%) skewX(-18deg); }
  .hero__cta .btn--ghost:is(:focus-visible,:active)::after { transform:scaleX(1); }
  .hero__cta .btn:active, #submit-form:not(:disabled):active { translate:0 0; scale:.97; box-shadow:none; }
  #submit-form:disabled { translate:0 0; scale:1; box-shadow:none; }
  #submit-form:disabled::before { opacity:0; transition:none; }
  .footer :is(a,button):not(.footer__brand) {
    position:relative;
    transition:translate .22s ease,scale .15s ease,color .2s,text-decoration-color .25s,text-underline-offset .25s;
    text-decoration-line:underline;
    text-decoration-color:transparent;
    text-decoration-thickness:1px;
    text-underline-offset:4px;
  }
  .footer :is(.footer__policies a,[data-cookie-settings]) { text-decoration-color:currentColor; }
  .footer :is(a,button):not(.footer__brand):focus-visible {
    translate:0 -2px;
    text-decoration-color:var(--brand-gold);
    text-underline-offset:7px;
  }
  .footer :is(a,button):not(.footer__brand):active { translate:0 0; scale:.98; text-decoration-color:var(--brand-gold); }
}
@media (prefers-reduced-motion: no-preference) and (hover:hover) and (pointer:fine) {
  .hero__cta .btn:hover, #submit-form:not(:disabled):hover { translate:0 -3px; box-shadow:0 7px 18px rgba(17,87,6,.14); }
  .hero__cta .btn:hover::before, #submit-form:not(:disabled):hover::before { transform:translateX(360%) skewX(-18deg); }
  .hero__cta .btn--ghost:hover::after { transform:scaleX(1); }
  .hero__cta .btn:active, #submit-form:not(:disabled):active { translate:0 0; scale:.97; box-shadow:none; }
  .footer :is(a,button):not(.footer__brand):hover { translate:0 -2px; text-decoration-color:var(--brand-gold); text-underline-offset:7px; }
  .footer :is(a,button):not(.footer__brand):active { translate:0 0; scale:.98; }
}
@keyframes ami-drawer-enter { from { transform:translateX(100%); } to { transform:translateX(0); } }
@keyframes ami-drawer-scrim { from { opacity:0; } to { opacity:1; } }
@keyframes ami-drawer-content { from { opacity:0; translate:16px 0; } to { opacity:1; translate:0 0; } }
@keyframes ami-cta-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.detail__note { color: var(--muted); }
.has-overlay { overflow: hidden; }
.checkout { position: fixed; inset: 0; z-index: 1150; display: none; align-items: center; justify-content: center; padding: 24px; }
.checkout.is-open { display: flex; }
.checkout__scrim { position: absolute; inset: 0; background: var(--scrim); backdrop-filter: blur(4px); }
.checkout__panel { position: relative; width: 640px; max-width: 100%; max-height: 100%; overflow-y: auto; padding: 30px; background: var(--bg); border: 1px solid var(--hairline); }
.checkout__head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.checkout__head h2 { font-size: 38px; }
.checkout__head .kicker { font-size: 9px; margin-bottom: 6px; }
.checkout__notice { font-size: 13px; color: var(--text2); line-height: 1.7; margin: 20px 0; }
#checkout-form, .auth-form { display: grid; gap: 14px; }
.checkout__row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
#checkout-form label, .auth-form label { display: grid; gap: 6px; min-width: 0; font-size: 11px; color: var(--text2); }
#checkout-form input, #checkout-form textarea, .auth-form input { display: block; width: 100%; min-width: 0; min-height: 44px; padding: 12px; font: 14px var(--sans); color: var(--text); background: var(--surface); border: 1px solid var(--hairline); border-radius: 0; }
/* Each item owns a full row. Totals have their own layout, never a shared flex basis. */
.checkout__summary { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; min-width: 0; padding: 26px 0 8px; border-top: 1px solid var(--hairline); font-size: 13px; color: var(--text2); overflow-wrap: normal; }
.checkout-summary__header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 20px; padding-bottom: 8px; }
.checkout-summary__header h3 { margin: 0; font: 400 26px/1.2 var(--serif); letter-spacing: -.02em; color: var(--text); }
.checkout-summary__header p { margin: 7px 0 0; font-size: 11px; color: var(--muted); }
.checkout-summary__edit { display: inline-flex; align-items: center; min-height: 40px; font-size: 11px; color: var(--accent-text, var(--green)); text-decoration: underline; text-underline-offset: 4px; }
.checkout-summary__items { display: grid; grid-template-columns: minmax(0,1fr); list-style: none; margin: 0; padding: 0; }
.checkout-line { display: grid; grid-template-columns: 60px minmax(0,1fr) auto; align-items: center; gap: 18px; min-width: 0; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--hairline); }
.checkout-line__photo { display: block; width: 60px; height: 68px; overflow: hidden; background: var(--surface); border: 1px solid var(--hairline); border-radius: 3px; }
.checkout-line__photo .product-visual { display: block; width: 100%; height: 100%; object-fit: cover; padding: 0; mix-blend-mode: normal; }
.checkout-line__photo .product-visual--empty { display: grid; padding: 4px; font-size: 9px; text-align: center; }
.checkout-line__copy { display: grid; gap: 5px; min-width: 0; }
.checkout-line__name { font: 500 14px/1.6 var(--sans); color: var(--text); overflow-wrap: anywhere; }
.checkout-line__variant, .checkout-line__quantity { font-size: 11px; line-height: 1.7; color: var(--muted); overflow-wrap: anywhere; }
.checkout-line__quantity > span { margin-inline: 3px; }
.checkout-line__price { font: 600 14px/1.5 var(--sans); color: var(--text); white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.checkout-summary__totals { display: grid; gap: 14px; margin: 24px 0 0; }
.checkout-summary__row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 12px 20px; }
.checkout-summary__row dt, .checkout-summary__row dd { margin: 0; line-height: 1.6; }
.checkout-summary__row dd { text-align: right; white-space: nowrap; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--text); }
.checkout-summary__total { margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--hairline); font-size: 18px; font-weight: 600; color: var(--accent-text, var(--green)); }
.checkout-summary__total dd { font-size: 22px; font-weight: 600; color: var(--accent-text, var(--green)); }
.checkout-summary__note { margin: 14px 0 0; font-size: 11px; line-height: 1.8; color: var(--muted); }
@media(max-width:480px) {
  .checkout-line { grid-template-columns: 48px minmax(0,1fr); gap: 5px 12px; align-items: start; padding: 16px 0; }
  .checkout-line__photo { grid-row: 1 / 3; width: 48px; height: 58px; }
  .checkout-line__price { grid-column: 2; text-align: left; }
  .checkout-summary__header h3 { font-size: 24px; }
  .checkout-summary__total dd { font-size: 20px; }
}
.checkout__error { color: #ab4133; font-size: 13px; line-height: 1.6; }
.checkout__error:empty { display: none; }
.checkout-promo { min-width:0; padding:18px 0; border-top:1px solid var(--hairline); }
.checkout-promo__controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:8px; }
#checkout-form .checkout-promo__controls input { flex:1 1 160px; width:auto; text-transform:uppercase; }
.checkout-promo__controls button { min-height:44px; }
#checkout-promo-message { margin:10px 0 0; font-size:13px; line-height:1.6; color:var(--text); }
.checkout-summary__discount dt { overflow-wrap:anywhere; }
.checkout__success { padding: 30px 0; }
.checkout__success h3 { font: 32px var(--serif); margin: 0 0 16px; }
.checkout__success p { font-size: 15px; line-height: 1.8; color: var(--text2); }
.toast { z-index: 1300; max-width: calc(100% - 32px); text-transform: none; font-size: 13px; letter-spacing: 0; color: var(--bg); }
.empty-state { color: var(--muted); }
.auth-tabs { display: flex; gap: 8px; margin-bottom: 18px; }
.auth-tab { flex: 1; min-height: 44px; padding: 10px; border: 1px solid var(--hairline); background: transparent; color: var(--muted); font: 12px var(--sans); cursor: pointer; }
.auth-tab.is-on { background: var(--green); color: #fff; border-color: var(--accent-text, var(--green)); }
.account-points { font-size: 13px; color: var(--accent-text, var(--green)); margin: 0 0 20px; }
#account-body h3 { font: 18px var(--serif); margin: 0 0 12px; }
.account-orders { display: grid; gap: 10px; margin-bottom: 22px; }
.account-order { border: 1px solid var(--hairline); padding: 12px 14px; }
.account-order__head { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.account-order__meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; font-size: 12px; color: var(--text2); }
.account-status { text-transform: uppercase; letter-spacing: .04em; font-size: 10px; color: var(--muted); }
@media (max-width:900px) {
  .shop-page { padding-top: var(--mobile-header); }
  .card__photo img.product-visual { object-fit: cover; mix-blend-mode: normal; }
  .shop-intro { padding: 18px var(--mobile-gutter) 18px; }
  .shop-breadcrumb { font-size: 10px; margin-bottom: 16px; }
  .shop-intro .kicker { font-size: 9px; margin-bottom: 8px; }
  .shop-intro .display { font-size: clamp(34px,8.6vw,48px); }
  .shop-intro .lede { font-size: 13px; max-width: 360px; margin-top: 12px; line-height: 1.6; }
  .shop-catalog { padding-top: 12px; }
  .shop-toolbar { gap: 12px; align-items: stretch; flex-direction: row; padding-bottom: 14px; }
  .shop-search, .shop-sort { min-width: 0; width: 50%; }
  .shop-toolbar label > span { font-size: 10px; }
  .shop-toolbar :is(input,select) { min-height: 46px; font-size: 16px; }
  .shop-catalog .filters { gap: 14px; padding-block: 14px; border-block: 1px solid var(--hairline); }
  .shop-catalog:not(.is-expanded) .budget, .shop-catalog:not(.is-expanded) #shop-availability { display: none; }
  .shop-options .shop-more-filters { display: inline-flex; align-items: center; min-height: 40px; padding-right: 12px; text-decoration: none; }
  .shop-options { font-size: 11px; gap: 8px; padding-bottom: 20px; }
  .shop-options > div { gap: 10px; }
  .shop-options input { width: 18px; height: 18px; }
  .shop-pagination { gap: 14px; font-size: 11px; }
  .shop-pagination button { padding: 10px 12px; }
  .rail-bar { flex-wrap: wrap; align-items: center; gap: 4px 14px; }
  .shop-all-link { font-size: 11px; }
  .line__swatch { width: 50px; height: 66px; flex-basis: 50px; }
  .line { gap: 10px; }
  .line__name { font-size: 20px; }
  .line__side { font-size: 11px; }
  .checkout { padding: 12px; }
  .checkout__panel { padding: 22px; max-height: calc(100dvh - 24px); }
  .checkout__row { grid-template-columns: 1fr; }
  #checkout-form input, #checkout-form textarea { font-size: 16px; }
  .checkout__head h2 { font-size: 32px; }
}
