/* Amicis finishing pass. Load after the existing styles and icon family. */
:root {
  --amicis-ease-out: cubic-bezier(.23, 1, .32, 1);
  --amicis-press: 140ms;
  --amicis-state: 200ms;
  --amicis-focus: #715931;
  --amicis-secondary-ink: #655f54;
  scrollbar-color: #b5a384 #eee9df;
}

::selection { background: #e2d5b9; color: #282721; }
input, textarea { caret-color: var(--amicis-focus); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--gold, #806c46); }

:is(h1, h2, h3) { text-wrap: balance; }
:is(.hero-copy h1, .product-intro h1, .account-heading h1, .login-view h1) {
  letter-spacing: -.03em;
}
.hero-copy h1 { letter-spacing: -.04em; text-wrap: wrap; }
.seo-page #contenido h1 { letter-spacing: -.028em; }
.seo-page #contenido h2 { letter-spacing: -.018em; }
.product-info h3 { line-height: 1.18; overflow-wrap: anywhere; }
.product-meta { font-size: 10px; line-height: 1.5; letter-spacing: .035em; }
.product-price .money, .cfg-price strong, .stat strong {
  font-variant-numeric: lining-nums tabular-nums;
}
.catalog-note {
  max-width: 78ch;
  font-size: 12px;
  line-height: 1.75;
  color: var(--amicis-secondary-ink);
}
.hero-description, .finish-copy > p:not(.eyebrow), .configurator-teaser p:not(.eyebrow),
.contact-intro > p:last-child, .login-view > p {
  color: var(--amicis-secondary-ink);
}
.status-note { border-left-width: 1px; color: #625b4e; }
.gallery-note, .gallery-zoom-hint { color: var(--amicis-secondary-ink); line-height: 1.65; }
footer { flex-wrap: wrap; }

/* Focus is immediate and remains visible inside clipped product pictures. */
:is(a, button, input, select, textarea, summary):focus-visible,
.cfg :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--amicis-focus);
  outline-offset: 4px;
}
.product-image > a:not(.quick-add):focus-visible { outline-offset: -5px; }
.seo-card > a:focus-visible { outline-offset: 7px; }
.search:focus-within { border-bottom-color: var(--amicis-focus); }
.field :is(input, select, textarea):focus-visible { border-color: var(--amicis-focus); }
.field [aria-invalid="true"] { border-color: #9c3c2a; }
.field :is(input, select, textarea):disabled { background: #eeebe4; color: #655f54; }
.cfg-models input:focus-visible + span,
.cfg-finishes input:focus-visible + span,
.cfg-colors input:focus-visible + .cfg-swatch {
  outline: 2px solid var(--amicis-focus);
  outline-offset: 4px;
}

/* State feedback shares a short, interruptible timing scale. */
:is(.button, .icon-button, .quick-add, .seo-button, .cfg-add,
    .cfg-toolbar button, .cfg-nav button, .gallery-heading button,
    .gallery-zoom button, .gallery-controls button, .cart-line .quantity button) {
  transition: transform var(--amicis-press) var(--amicis-ease-out),
              background-color var(--amicis-state) ease,
              border-color var(--amicis-state) ease,
              color var(--amicis-state) ease;
}
:is(.filters button, .account-nav button, .account-tabs button, .payment-actions button,
    .gallery-thumbnails button, .reference-images button, .cfg-models label > span,
    .cfg-finishes span, .cfg-swatch) {
  transition: background-color var(--amicis-state) ease,
              border-color var(--amicis-state) ease,
              color var(--amicis-state) ease;
}
:is(.text-link, .header nav a, .product-info h3 a, .seo-header nav a,
    .seo-categories a, .seo-card a, .contact-phones strong, .logout, .remove) {
  text-underline-offset: .25em;
  text-decoration-thickness: 1px;
  transition: color var(--amicis-state) ease, border-color var(--amicis-state) ease;
}
.button.primary { background: var(--gold, #806c46); }
.button.secondary { background: #fff; }
.product-image .quick-add {
  width: 44px;
  height: 44px;
  box-shadow: none; /* taste-skill-ignore: explicitly removes the inherited resting shadow. */
  color: var(--ink, #282721);
}
.filters button, .account-tabs button { min-height: 44px; }
.filters button.active, .account-tabs button.active { font-weight: 600; }
.account-nav button { min-height: 44px; }
.account-sidebar .logout { min-height: 44px; }
.cart-line .quantity { height: 42px; }
.cart-line .quantity button { width: 40px; height: 40px; }
.remove { min-height: 36px; font-size: 11px; }
.data-table .invoice-link { display: inline-flex; align-items: center; min-height: 36px; }
.checkout-options label { min-height: 48px; }
.checkout-options label:has(input:checked) {
  border-color: var(--gold, #806c46);
  background: #eee8dc;
}
.button[aria-busy="true"], .cfg-add[aria-busy="true"] { cursor: progress; }

@media (prefers-reduced-motion: no-preference) {
  html[data-input="pointer"] :is(.button, .icon-button, .quick-add, .seo-button, .cfg-add,
      .cfg-toolbar button, .cfg-nav button, .gallery-heading button,
      .gallery-zoom button, .gallery-controls button, .cart-line .quantity button):not(:disabled):not([aria-disabled="true"]):active {
    transform: scale(.97);
  }
}
:is(.button, .icon-button, .quick-add, .seo-button, .cfg-add,
    .cfg-toolbar button, .cfg-nav button, .gallery-heading button,
    .gallery-zoom button, .gallery-controls button, .cart-line .quantity button):disabled {
  transform: none;
}

/* Quiet catalog feedback never moves the card or changes its reading geometry. */
.product-image img, .seo-card img {
  transition: transform var(--amicis-state) var(--amicis-ease-out);
}
.seo-card {
  transition: border-color var(--amicis-state) ease;
}
.seo-card h2 { line-height: 1.22; }
.seo-card p { margin: 8px 0 16px; color: var(--amicis-secondary-ink); font-size: 14px; line-height: 1.6; }
.seo-card span { text-underline-offset: .25em; }
.seo-header nav a, .seo-categories a { display: inline-flex; align-items: center; min-height: 44px; }
.seo-gallery figcaption { color: var(--amicis-secondary-ink); line-height: 1.6; }
.seo-faq summary, .seo-home-content summary { min-height: 44px; line-height: 1.5; }
.seo-faq details p, .seo-home-content details p { max-width: 75ch; line-height: 1.75; }
.seo-faq summary .ui-icon, .seo-home-content summary .ui-icon {
  transition: transform var(--amicis-press) var(--amicis-ease-out);
}

dialog { overscroll-behavior: contain; }
#toast {
  transform: translate(-50%, 6px);
  transition: opacity 140ms var(--amicis-ease-out), transform 160ms var(--amicis-ease-out);
  line-height: 1.55;
}
#toast.visible { transform: translate(-50%, 0); }

@media (hover: hover) and (pointer: fine) {
  .button.primary:hover { background: #695736; }
  .button.secondary:hover { background: #f3f0e9; border-color: #b9a78a; }
  :is(.icon-button, .gallery-heading button, .gallery-zoom button,
      .gallery-controls button, .cart-line .quantity button):not(:disabled):hover {
    color: var(--gold, #806c46);
    background: #eae3d6;
  }
  .product-image .quick-add:hover { background: #806c46; color: #fff; }
  .product-image:hover img { transform: scale(1.025); }
  .product-card:hover .product-info h3 a { color: #705b34; }
  .seo-card:hover { border-color: #b6a27c; }
  .seo-card a:hover img { transform: scale(1.02); }
  .filters button:not(.active):hover,
  .account-tabs button:not(.active):hover,
  .account-nav button:not(.active):hover { background: #eeebe4; border-color: #b9a78a; }
  .gallery-thumbnails button:not([aria-pressed="true"]):hover,
  .reference-images button:hover { border-color: #a38c62; }
  .cfg-models label:hover > span,
  .cfg-finishes label:hover > span { border-color: var(--cfg-gold, #8a6c3b); }
  .cfg-nav button:hover { background: #eee8dc; border-color: #a38c62; }
  .seo-page .seo-button:hover { background: #695736; }
  .seo-page .seo-button.secondary:hover { background: #eee8dc; }
  :is(.text-link, .seo-categories a, .logout, .remove):hover { color: #705b34; }
}

@media (hover: none), (pointer: coarse) {
  .product-image:hover img { transform: none; }
}

/* The input mode is managed by motion.mjs; keyboard operations stay immediate. */
html[data-input="keyboard"] :is(.button, .icon-button, .quick-add, .seo-button, .cfg-add,
    .cfg-toolbar button, .cfg-nav button, .gallery-heading button, .gallery-zoom button,
    .gallery-controls button, .cart-line .quantity button, .filters button,
    .account-nav button, .account-tabs button, .payment-actions button,
    .gallery-thumbnails button, .reference-images button, .cfg-models label > span,
    .cfg-finishes span, .cfg-swatch, .text-link, .header nav a, .product-info h3 a,
    .seo-header nav a, .seo-categories a, .seo-card, .seo-card a, .contact-phones strong,
    .logout, .remove, .product-image img, .seo-card img, .seo-faq summary .ui-icon,
    .seo-home-content summary .ui-icon, #toast) {
  transition: none;
}
html[data-input="keyboard"] .product-image:hover img,
html[data-input="keyboard"] .seo-card a:hover img { transform: none; }

@media (min-width: 761px) and (max-width: 1100px) {
  .hero-copy h1 { font-size: clamp(50px, 6.4vw, 70px); }
}

@media (max-width: 760px) {
  .hero-copy h1 br:nth-of-type(2) { display: initial; }
  .hero-copy .button { min-height: 44px; }
  .product-meta { font-size: 9px; }
  .product-image .quick-add { right: 10px; bottom: 10px; }
  .gallery-note, .gallery-zoom-hint { font-size: 12px; }
  .cart-line .quantity { height: 44px; }
  .cart-line .quantity button { width: 42px; height: 42px; }
  .remove { min-height: 44px; }
  .field :is(input, select, textarea), .cfg-catalog select { font-size: 16px; }
  .seo-card p { font-size: 13px; margin: 8px 0 12px; }
  .seo-header nav a { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.button, .icon-button, .quick-add, .seo-button, .cfg-add,
      .cfg-toolbar button, .cfg-nav button, .gallery-heading button,
      .gallery-zoom button, .gallery-controls button, .cart-line .quantity button),
  .product-image img, .seo-card img, .product-image:hover img, .seo-card a:hover img {
    transform: none;
    transition: none;
  }
  .seo-faq summary .ui-icon, .seo-home-content summary .ui-icon { transition: none; }
  #toast, #toast.visible { transform: translate(-50%, 0); transition: none; }
}

@media (forced-colors: active) {
  :is(a, button, input, select, textarea, summary):focus-visible { outline-color: Highlight; }
  :is(button, .button):disabled { opacity: 1; color: GrayText; }
  .product-image .quick-add { border: 1px solid ButtonText; } /* taste-skill-ignore: control boundary in Windows forced colors. */
}
