:root { --store-line: rgba(20, 32, 51, .15); }

.store-hero { padding: 76px 0 56px; }
.store-hero .container { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: end; }
.store-hero h1 { max-width: 760px; }
.store-cart-link { display: inline-grid; grid-template-columns: auto 34px; gap: 12px; align-items: center; color: var(--white); font-size: .62rem; font-weight: 900; letter-spacing: .15em; text-decoration: none; text-transform: uppercase; }
.store-cart-link span { display: grid; place-items: center; width: 34px; height: 34px; color: var(--navy-deep); background: var(--gold); border-radius: 50%; }

.catalog-intro { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 50px; align-items: end; margin-bottom: 30px; }
.catalog-intro > div { max-width: 720px; }
.catalog-note { margin: 0; color: var(--slate); font-size: .76rem; line-height: 1.6; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.catalog-card { display: grid; grid-template-rows: 275px 1fr; min-width: 0; overflow: hidden; background: var(--white); border: 1px solid var(--store-line); box-shadow: var(--shadow); transition: transform var(--transition), border-color var(--transition); }
.catalog-card:hover { transform: translateY(-3px); border-color: rgba(198, 165, 95, .8); }
.catalog-card-media { display: grid; place-items: center; min-width: 0; padding: 20px; overflow: hidden; background: #e9e7e1; }
.catalog-card-media img { width: 100%; height: 235px; object-fit: contain; filter: saturate(.7) contrast(1.07); transition: transform 450ms ease; }
.catalog-card-media.product-image-clean { padding: 10px 18px; background: #fff; }
.catalog-card-media.product-image-clean img { height: 250px; filter: none; }
.catalog-card:hover .catalog-card-media img { transform: scale(1.025); }
.catalog-card-body { display: flex; flex-direction: column; min-width: 0; padding: 27px 29px 30px; }
.catalog-kicker { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 17px; color: #8a713d; font-size: .58rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.catalog-card h2 { margin-bottom: 11px; font-size: clamp(2rem, 3vw, 3rem); line-height: .98; }
.catalog-card p { margin: 0; color: var(--slate); font-size: .84rem; line-height: 1.58; }
.catalog-price { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: end; margin-top: auto; padding-top: 22px; border-top: 1px solid var(--store-line); }
.catalog-price > div { display: grid; gap: 2px; }
.catalog-price strong { color: var(--navy); font-family: var(--display); font-size: 1.55rem; font-weight: 400; line-height: 1.1; }
.catalog-price span { color: var(--slate); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
.store-link { display: inline-flex; align-items: center; gap: 10px; color: var(--navy); font-size: .62rem; font-weight: 900; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.store-link::after { content: "↗"; display: grid; place-items: center; width: 34px; height: 34px; color: #8a713d; border: 1px solid rgba(138,113,61,.45); border-radius: 50%; transition: color var(--transition), background var(--transition), transform var(--transition); }
.store-link:hover::after { color: var(--navy-deep); background: var(--gold); transform: translate(1px, -1px); }

.product-shell { padding: 42px 0 74px; }
.product-breadcrumb { display: flex; gap: 9px; margin-bottom: 18px; color: var(--slate); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.product-breadcrumb a { text-decoration: none; }
.product-detail { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(400px, .94fr); gap: 1px; background: var(--store-line); border: 1px solid var(--store-line); box-shadow: var(--shadow); }
.product-gallery { display: grid; place-items: center; min-height: 510px; padding: 38px; background: #e9e7e1; }
.product-gallery img { width: 100%; max-height: 430px; object-fit: contain; }
.product-gallery.product-image-clean { min-height: 500px; padding: 24px; background: #fff; }
.product-gallery.product-image-clean img { max-height: 458px; }
.product-info { min-width: 0; padding: 42px 44px 40px; background: var(--white); }
.product-info h1 { max-width: 600px; margin: 0 0 12px; color: var(--navy); font-family: var(--display); font-size: clamp(3rem, 4.2vw, 4.25rem); font-weight: 400; letter-spacing: -.045em; line-height: .96; }
.product-part { margin-bottom: 18px; color: #8a713d; font-size: .6rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.product-description { margin: 0; color: var(--slate); font-size: .88rem; line-height: 1.66; }
.product-commercial { display: grid; grid-template-columns: repeat(2, 1fr); margin: 22px 0; border-block: 1px solid var(--store-line); }
.product-commercial div { padding: 16px 14px 16px 0; }
.product-commercial div + div { padding-left: 20px; border-left: 1px solid var(--store-line); }
.product-commercial span { display: block; margin-bottom: 4px; color: var(--slate); font-size: .56rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.product-commercial strong { color: var(--navy); font-family: var(--display); font-size: 1.5rem; font-weight: 400; }
.product-order-form { display: grid; gap: 14px; }
.product-order-form label, .order-form label { display: grid; gap: 7px; color: var(--navy); font-size: .58rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.product-order-controls { display: grid; grid-template-columns: minmax(0, 1fr) 105px; gap: 11px; }
.product-order-form .button { width: 100%; }
.form-assurance { margin: 0; color: var(--slate); font-size: .68rem; line-height: 1.5; }
.datasheet-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 15px; padding: 14px 0; color: var(--navy); border-block: 1px solid var(--store-line); font-size: .6rem; font-weight: 900; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.datasheet-link::after { content: "PDF ↓"; color: #8a713d; }
.order-status { display: none; margin: 0; padding: 12px 14px; color: var(--navy); background: #f0ece3; border-left: 2px solid var(--gold); font-size: .74rem; }
.order-status.is-visible { display: block; }

.product-specs { display: grid; grid-template-columns: .78fr 1.22fr; gap: 70px; padding-top: 58px; }
.product-specs > div > p:last-child { font-size: .86rem; }
.spec-ledger { margin: 0; border-top: 1px solid var(--navy); }
.spec-ledger div { display: grid; grid-template-columns: 155px 1fr; gap: 24px; padding: 13px 0; border-bottom: 1px solid var(--store-line); }
.spec-ledger dt { color: var(--slate); font-size: .57rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.spec-ledger dd { margin: 0; color: var(--ink); font-size: .82rem; }

.cart-shell { padding: 50px 0 76px; }
.cart-heading { display: flex; justify-content: space-between; gap: 36px; align-items: end; margin-bottom: 26px; }
.cart-heading h1 { margin: 0; color: var(--navy); font-family: var(--display); font-size: clamp(3.2rem, 5.5vw, 5rem); font-weight: 400; letter-spacing: -.05em; line-height: .95; }
.cart-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(350px, .88fr); gap: 18px; align-items: start; }
.cart-panel, .order-form { background: var(--white); border: 1px solid var(--store-line); box-shadow: var(--shadow); }
.cart-panel { padding: 28px; }
.cart-empty { padding: 38px 18px; color: var(--slate); text-align: center; }
.cart-line { display: grid; grid-template-columns: minmax(0, 1fr) 86px 104px 32px; gap: 13px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--store-line); }
.cart-line:first-child { padding-top: 0; }
.cart-line h2 { margin: 0 0 4px; font-family: var(--sans); font-size: .74rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.cart-line p { margin: 0; color: var(--slate); font-size: .7rem; }
.cart-line > div:first-child > span { display: block; margin-top: 4px; color: #8a713d; font-size: .62rem; }
.cart-line input { min-height: 40px; }
.cart-line-price { color: var(--navy); font-size: .82rem; font-weight: 800; text-align: right; }
.cart-remove { width: 30px; height: 30px; padding: 0; color: var(--slate); background: transparent; border: 1px solid var(--store-line); cursor: pointer; }
.cart-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 20px; }
.cart-total span { font-size: .58rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.cart-total strong { color: var(--navy); font-family: var(--display); font-size: 1.8rem; font-weight: 400; }
.order-form { position: sticky; top: 92px; padding: 29px; }
.order-form h2 { font-size: 2.5rem; }
.order-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.order-form .full { grid-column: 1 / -1; }
.order-form textarea { min-height: 92px; }
.checkout-actions { display: grid; gap: 10px; margin-top: 18px; }
.checkout-actions [hidden], .confirmation-actions [hidden] { display: none !important; }
.order-form .checkout-actions .button { width: 100%; margin: 0; }
.payment-availability { margin: 13px 0 0; color: var(--navy); font-size: .68rem; line-height: 1.5; }
.order-status.is-error { color: #7a1f1f; background: #f8eaea; border-left-color: #a33636; }
.commercial-note { margin: 18px 0 0; color: var(--slate); font-size: .68rem; line-height: 1.5; }

.confirmation-shell { min-height: 64vh; padding: 76px 0; }
.confirmation-panel { max-width: 850px; margin: 0 auto; padding: clamp(32px, 6vw, 68px); background: var(--white); border: 1px solid var(--store-line); box-shadow: var(--shadow); }
.confirmation-panel h1 { margin-bottom: 22px; color: var(--navy); font-family: var(--display); font-size: clamp(3.2rem, 6vw, 5.5rem); font-weight: 400; letter-spacing: -.05em; line-height: .94; }
.confirmation-status { margin: 0; padding: 18px 20px; color: var(--navy); background: #f0ece3; border-left: 2px solid var(--gold); font-size: .88rem; line-height: 1.6; }
.confirmation-status.is-error { color: #7a1f1f; background: #f8eaea; border-left-color: #a33636; }
.confirmation-details { display: grid; grid-template-columns: 1.4fr .7fr 1fr; margin-top: 22px; border-block: 1px solid var(--store-line); }
.confirmation-details div { min-width: 0; padding: 17px 18px 17px 0; }
.confirmation-details div + div { padding-left: 18px; border-left: 1px solid var(--store-line); }
.confirmation-details span { display: block; margin-bottom: 5px; color: var(--slate); font-size: .55rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.confirmation-details strong { display: block; overflow-wrap: anywhere; color: var(--navy); font-size: .78rem; }
.confirmation-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }

@media (max-width: 900px) {
  .store-hero .container, .catalog-intro, .product-detail, .product-specs, .cart-layout { grid-template-columns: 1fr; }
  .store-cart-link { justify-self: start; }
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-card { grid-template-columns: .8fr 1.2fr; grid-template-rows: auto; }
  .catalog-card-media { min-height: 100%; }
  .product-gallery { min-height: 420px; }
  .product-specs { gap: 30px; }
  .order-form { position: static; }
}

@media (max-width: 620px) {
  .store-hero { padding: 58px 0 44px; }
  .catalog-card { display: block; }
  .catalog-card-media { min-height: 250px; }
  .catalog-card-media img { height: 215px; }
  .catalog-card-media.product-image-clean img { height: 225px; }
  .catalog-card-body, .product-info, .cart-panel, .order-form { padding: 24px 21px; }
  .catalog-price { grid-template-columns: 1fr; align-items: start; }
  .store-link { width: fit-content; }
  .product-shell, .cart-shell { padding: 34px 0 56px; }
  .product-gallery, .product-gallery.product-image-clean { min-height: 310px; padding: 18px; }
  .product-info h1 { font-size: 3rem; }
  .product-order-controls, .order-form-grid, .product-commercial { grid-template-columns: 1fr; }
  .product-commercial div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--store-line); }
  .product-specs { padding-top: 44px; }
  .spec-ledger div { grid-template-columns: 1fr; gap: 5px; }
  .cart-heading { display: block; }
  .cart-heading .store-link { margin-top: 16px; }
  .cart-line { grid-template-columns: 1fr 76px 30px; }
  .cart-line-price { grid-column: 1; text-align: left; }
  .cart-line input { grid-column: 2; grid-row: 1 / span 2; }
  .cart-remove { grid-column: 3; grid-row: 1 / span 2; }
  .order-form .full { grid-column: auto; }
  .confirmation-shell { padding: 40px 0 56px; }
  .confirmation-details { grid-template-columns: 1fr; }
  .confirmation-details div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--store-line); }
}
