:root { --navy: #203548; --ink: #121c25; --muted: #f3f4f5; --red: #e51937; --pink: #cda0a3; }
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: #fff; color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }

.utility-bar { height: 52px; display: flex; align-items: center; justify-content: center; gap: 36px; background: var(--navy); color: white; }
.utility-bar a { color: inherit; cursor: pointer; font-size: 15px; }
.utility-bar strong { border-bottom: 2px solid white; padding-bottom: 2px; }
.site-header { background: #fff; }
.header-main { max-width: 1640px; height: 104px; margin: 0 auto; padding: 0 32px; display: flex; align-items: center; gap: 18px; }
.wordmark { width: 170px; color: var(--red); font-size: 42px; font-weight: 950; font-style: italic; letter-spacing: -4px; transform: skew(-7deg); }
.search-box { height: 49px; flex: 1; display: flex; align-items: center; gap: 12px; padding: 0 18px; border-radius: 30px; background: #f4f5f6; color: #0878b9; }
.search-submit { border: 0; padding: 0; background: transparent; color: inherit; font-size: 26px; line-height: 1; transform: rotate(-18deg); cursor: pointer; }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; color: #253646; font-size: 15px; }
.search-box input::placeholder { color: #8b9298; }
.joy-button { border: 0; border-radius: 28px; padding: 14px 20px; background: linear-gradient(100deg, #8b24c7, #0078c8); color: white; cursor: pointer; white-space: nowrap; }
.header-icon { width: 30px; text-align: center; font-size: 27px; font-weight: 700; }
.category-nav { max-width: 1640px; height: 45px; margin: 0 auto; padding: 0 32px; display: flex; align-items: center; gap: 19px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; font-size: 14px; }
.category-nav::-webkit-scrollbar { display: none; }
.category-nav a:hover { text-decoration: underline; }
.service-strip { min-height: 49px; padding: 8px max(32px, calc((100vw - 1600px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 24px; overflow-x: auto; scrollbar-width: none; background: #f1f1f1; color: #3e4246; white-space: nowrap; font-size: 15px; }
.service-strip::-webkit-scrollbar, .arrivals-row::-webkit-scrollbar { display: none; }
.service-strip span, .service-strip a { display: flex; align-items: center; gap: 8px; }
.service-strip b { color: #9928db; }
.arrivals-section { max-width: 1288px; margin: 0 auto; padding: 72px 24px 62px; }
.arrivals-section h1 { margin: 0 0 16px; font-size: 17px; }
.arrivals-row { position: relative; display: grid; grid-template-columns: repeat(8, minmax(120px, 1fr)); gap: 24px; scrollbar-width: none; }
.arrival-card { min-width: 0; text-align: center; font-size: 15px; line-height: 1.35; }
.arrival-image { aspect-ratio: 1; margin-bottom: 10px; border-radius: 11px; background-position: center; background-size: cover; }
.clearance-tile { display: grid; place-items: center; }
.clearance-tile span { display: flex; flex-direction: column; color: #060606; line-height: .9; }
.clearance-tile strong { font-size: 26px; letter-spacing: -1px; }
.clearance-tile small { font-size: 19px; }
.round-next { position: absolute; right: -18px; top: 50px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--navy); color: white; font-size: 23px; cursor: pointer; }
.campaign-hero { min-height: 470px; display: grid; grid-template-columns: minmax(360px, 440px) minmax(0, 756px); justify-content: center; align-items: center; gap: 44px; padding: 40px 32px; background: var(--pink); }
.campaign-copy { max-width: 360px; }
.campaign-hero > * { min-width: 0; }
.campaign-hero > img { display: block; width: 100%; max-width: 100%; height: 390px; object-fit: cover; }
.campaign-copy h2 { max-width: 330px; margin: 0 0 18px; font-size: 34px; line-height: 1.1; letter-spacing: -.8px; }
.campaign-copy p { max-width: 325px; margin: 0 0 26px; font-size: 17px; line-height: 1.45; }
.primary-button { display: inline-block; padding: 15px 26px; background: var(--navy); color: white; font-size: 15px; font-weight: 700; }
.campaign-image { min-height: 390px; align-self: stretch; background-image: url("https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=1400&q=88"); background-position: center; background-size: cover; }
.slider-dots { margin-top: 58px; display: flex; gap: 9px; align-items: center; font-size: 15px; }
.slider-dots b { margin-right: 5px; font-size: 21px; }
.home-products { max-width: 1240px; margin: 0 auto; padding: 72px 24px; text-align: center; }
.home-products > p { margin: 0 0 6px; color: #5e6a72; }
.home-products > h2 { margin: 0 0 35px; font-size: 31px; }
.home-products .product-card { text-align: left; }
.outline-button { display: inline-block; margin-top: 38px; padding: 13px 27px; border: 2px solid var(--navy); font-weight: 700; }
.catalogue-more { display: block; margin: 30px auto 4px; background: white; cursor: pointer; }
.home-editorial { max-width: 1240px; margin: 0 auto; padding: 0 24px 75px; display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.home-editorial article { background: #f0f1f1; }
.home-editorial img { width: 100%; aspect-ratio: 1.55; object-fit: cover; }
.home-editorial article > div { padding: 28px; }
.home-editorial span { color: #596770; font-size: 13px; }
.home-editorial h2 { margin: 8px 0; font-size: 25px; }
.home-editorial p { min-height: 48px; color: #4f5d67; line-height: 1.5; }
.home-editorial a { display: inline-block; margin-top: 7px; font-weight: 700; text-decoration: underline; }
.popular-searches { max-width: 1240px; margin: 0 auto; padding: 0 24px 80px; }
.popular-searches h2 { font-size: 28px; }
.popular-searches > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.popular-searches a { display: flex; justify-content: space-between; padding: 17px 19px; border: 1px solid #d3d9dc; font-weight: 700; }
.popular-searches a span { color: #1973a8; }

@media (max-width: 1050px) {
  .header-main { padding-inline: 18px; }
  .wordmark { width: 118px; font-size: 34px; }
  .joy-button { display: none; }
  .arrivals-row { overflow-x: auto; grid-template-columns: repeat(8, 140px); padding-bottom: 6px; }
  .round-next { display: none; }
  .campaign-hero { grid-template-columns: minmax(280px, .8fr) minmax(0, 1.4fr); }
}

@media (max-width: 720px) {
  .utility-bar { height: 42px; gap: 10px; font-size: 12px; }
  .utility-bar a { font-size: 12px; }
  .header-main { height: auto; min-height: 124px; flex-wrap: wrap; padding-block: 15px; }
  .wordmark { order: 1; }
  .header-icon { order: 2; margin-left: auto; }
  .header-icon + .header-icon { margin-left: 0; }
  .search-box { order: 3; flex-basis: 100%; height: 46px; }
  .category-nav { height: 42px; padding-inline: 18px; }
  .service-strip { padding-inline: 18px; justify-content: flex-start; }
  .arrivals-section { padding: 44px 18px; }
  .arrivals-row { grid-template-columns: repeat(8, 118px); gap: 14px; }
  .campaign-hero { min-height: 0; grid-template-columns: 1fr; gap: 26px; padding: 40px 20px 0; }
  .campaign-copy h2 { font-size: 30px; }
  .campaign-image { min-height: 300px; margin-inline: -20px; }
  .slider-dots { margin-top: 34px; }
  .home-editorial { grid-template-columns: 1fr; }
  .popular-searches > div { grid-template-columns: 1fr 1fr; }
}

/* Shared storefront */
.wordmark img { display: block; max-width: 150px; max-height: 70px; object-fit: contain; }
.breadcrumb { min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 10px max(24px, calc((100vw - 1440px) / 2)); background: #f5f5f5; color: #52616e; font-size: 14px; text-transform: capitalize; }
.breadcrumb a { color: #16669b; }
.breadcrumb b { color: #35434e; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.store-footer { margin-top: 80px; background: #f4f4f4; color: #22313e; }
.delivery-promise { padding: 56px max(24px, calc((100vw - 1240px) / 2)); background: white; text-align: center; }
.delivery-promise h2 { margin: 0 0 28px; font-size: 28px; }
.delivery-promise div { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid #dce0e3; }
.delivery-promise a, .delivery-promise span { min-height: 92px; display: grid; place-items: center; padding: 18px; border-right: 1px solid #dce0e3; font-weight: 700; }
.delivery-promise :last-child { border-right: 0; }
.footer-news { min-height: 145px; display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 30px max(24px, calc((100vw - 1240px) / 2)); background: var(--navy); color: white; }
.footer-news strong { font-size: 24px; }
.footer-news p { margin: 8px 0 0; }
.footer-news .footer-signup { border: 2px solid white; background: transparent; color: white; padding: 12px 28px; font-weight: 700; cursor: pointer; }
.footer-links { max-width: 1240px; margin: 0 auto; padding: 52px 24px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.footer-links section { display: flex; flex-direction: column; gap: 13px; font-size: 14px; }
.footer-links h3 { margin: 0 0 8px; font-size: 16px; }
.footer-links a:hover { text-decoration: underline; }
.footer-bottom { min-height: 70px; padding: 18px max(24px, calc((100vw - 1240px) / 2)); display: flex; align-items: center; gap: 12px; border-top: 1px solid #d5d9dc; }
.footer-bottom > span { padding: 7px 12px; border-radius: 4px; background: white; border: 1px solid #d8dde1; font-weight: 700; font-size: 12px; }
.footer-bottom small { margin-left: auto; }

/* Category and product cards */
.category-heading { max-width: 1440px; margin: 0 auto; padding: 38px 24px 22px; }
.category-heading h1 { margin: 0 0 10px; font-size: 34px; }
.category-heading p { margin: 0; color: #52616e; }
.category-chips { max-width: 1440px; margin: 0 auto; padding: 10px 24px 28px; display: flex; gap: 10px; overflow-x: auto; }
.category-chips a { padding: 11px 18px; border-radius: 25px; background: #eeeeef; white-space: nowrap; font-size: 14px; }
.category-chips a:hover { background: #dfe3e6; }
.catalogue-layout { max-width: 1440px; margin: 0 auto; padding: 0 24px 60px; display: grid; grid-template-columns: 230px 1fr; gap: 38px; }
.filters { border-top: 1px solid #d9dddf; }
.filters h2 { font-size: 18px; margin: 20px 0; }
.filters details { border-top: 1px solid #d9dddf; padding: 16px 0; }
.filters summary { cursor: pointer; font-weight: 700; margin-bottom: 14px; }
.filters a, .filters label { display: block; padding: 7px 0; color: #44525d; font-size: 14px; }
.filters input { margin-right: 8px; }
.catalogue-tools { min-height: 52px; display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px; }
.catalogue-tools select { min-width: 200px; padding: 10px 34px 10px 12px; border: 1px solid #9ba4aa; border-radius: 3px; background: white; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px 20px; }
.product-card { position: relative; min-width: 0; }
.product-image-wrap { position: relative; display: block; aspect-ratio: 1 / 1.14; overflow: hidden; border-radius: 2px; background: #f4f4f4; }
.product-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .28s ease; }
.product-image-wrap:hover img { transform: scale(1.025); }
.product-badge { position: absolute; z-index: 1; top: 10px; left: 10px; padding: 6px 9px; border-radius: 2px; background: #ffde00; color: #111; font-size: 12px; font-weight: 700; }
.heart-button { position: absolute; z-index: 1; right: 10px; top: 10px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: white; box-shadow: 0 1px 5px #0002; font-size: 24px; cursor: pointer; }
.heart-button.saved { color: #dc1736; }
.product-title-link { display: block; }
.product-card h3 { min-height: 42px; margin: 13px 0 7px; font-size: 15px; line-height: 1.35; font-weight: 500; }
.product-price { display: flex; gap: 10px; align-items: center; }
.product-price strong { font-size: 21px; }
.product-price del { color: #707b83; font-size: 13px; }
.stock-line { margin: 7px 0 0; color: #38734f; font-size: 12px; }
.empty-state { min-height: 280px; display: grid; place-content: center; text-align: center; color: #54636e; }

/* Product detail */
.product-detail { max-width: 1400px; margin: 0 auto; padding: 44px 24px 70px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(380px, .75fr); gap: 52px; align-items: start; }
.product-gallery { min-width: 0; display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 18px; align-items: start; }
.thumbnail-column { display: flex; flex-direction: column; gap: 12px; }
.thumbnail-column button { width: 90px; padding: 2px; border: 2px solid transparent; background: transparent; cursor: pointer; }
.thumbnail-column button.selected { border-color: var(--navy); }
.thumbnail-column img { display: block; width: 82px; aspect-ratio: 1; object-fit: cover; }
.main-product-image { width: 100%; min-height: 0; max-height: 720px; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; background: #f4f4f4; }
.main-product-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 68%; }
.product-info { padding-top: 6px; }
.detail-badge { display: inline-block; padding: 6px 9px; background: #ffde00; font-size: 12px; font-weight: 700; }
.product-info h1 { margin: 16px 0 8px; font-size: 30px; line-height: 1.18; }
.sku { color: #6a747b; font-size: 12px; }
.detail-price { margin: 23px 0 4px; display: flex; align-items: center; gap: 13px; }
.detail-price strong { font-size: 32px; }
.detail-price del { color: #75818a; }
.afterpay { font-size: 13px; }
.product-info hr { margin: 26px 0; border: 0; border-top: 1px solid #d8dde0; }
.product-info h3 { margin: 0 0 12px; font-size: 15px; }
.colour-swatch { width: 45px; height: 45px; border: 2px solid #203548; box-shadow: inset 0 0 0 4px white; background: #d7c5ac; }
.variant-picker { display: grid; gap: 9px; font-size: 14px; font-weight: 700; }
.variant-picker select { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid #9ca8af; background: white; color: var(--ink); font: inherit; }
.fulfilment-box { margin: 25px 0 18px; padding: 20px; border: 1px solid #cfd5d9; }
.fulfilment-box h2 { margin: 0 0 16px; font-size: 18px; }
.fulfilment-box label { display: grid; grid-template-columns: 24px 1fr; padding: 12px 0; font-weight: 700; }
.fulfilment-box input { grid-row: 1 / 3; }
.fulfilment-box small { display: block; margin-top: 4px; color: #68747d; font-weight: 400; }
.add-cart-button, .checkout-button { width: 100%; min-height: 52px; border: 0; background: var(--navy); color: white; font-weight: 700; cursor: pointer; }
.add-cart-button:hover, .checkout-button:hover { background: #142736; }
.add-cart-button:disabled { background: #87939b; cursor: not-allowed; }
.stock-detail { color: #367249; font-size: 13px; }
.product-description, .related-products { max-width: 1240px; margin: 0 auto; padding: 0 24px 65px; }
.product-description { border-top: 1px solid #dce0e3; padding-top: 38px; }
.product-description h2, .related-products h2 { font-size: 27px; }
.product-description p, .product-description li { max-width: 780px; line-height: 1.65; color: #45535e; }

/* Bag and checkout */
.cart-shell, .checkout-shell, .wishlist-shell { max-width: 1320px; margin: 0 auto; padding: 55px 24px 80px; }
.cart-shell > h1, .wishlist-shell h1 { margin: 0 0 32px; font-size: 34px; }
.cart-layout, .checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 44px; align-items: start; }
.cart-lines { border-top: 1px solid #d5dade; }
.cart-line { display: grid; grid-template-columns: 180px 1fr 145px; gap: 24px; padding: 26px 0; border-bottom: 1px solid #d5dade; }
.cart-line > a img { width: 180px; height: 210px; object-fit: cover; background: #f4f4f4; }
.cart-line h2 { margin: 8px 0 12px; font-size: 19px; }
.cart-line p { color: #6b767d; }
.cart-badge { padding: 4px 7px; background: #ffde00; font-size: 11px; font-weight: 700; }
.cart-line-end { display: flex; flex-direction: column; align-items: flex-end; gap: 22px; }
.cart-line-end > strong { font-size: 22px; }
.cart-line-end label { display: flex; align-items: center; gap: 9px; }
.cart-line-end select { padding: 8px; }
.text-button { border: 0; padding: 0; background: none; color: #12649b; text-decoration: underline; cursor: pointer; }
.delivery-choice { margin-top: 25px; padding: 25px; border: 1px solid #d4dade; }
.delivery-choice h2 { margin-top: 0; font-size: 19px; }
.delivery-choice label { display: grid; grid-template-columns: 26px 1fr auto; padding: 15px 0; border-top: 1px solid #e1e4e7; }
.order-summary { position: sticky; top: 18px; padding: 27px; background: #f4f4f4; }
.order-summary h2 { margin: 0 0 24px; font-size: 21px; }
.order-summary > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; font-size: 14px; }
.order-summary hr { border: 0; border-top: 1px solid #cbd1d5; margin: 16px 0; }
.order-summary .summary-total { font-size: 19px; align-items: baseline; }
.summary-total strong { font-size: 24px; }
.order-summary .checkout-button { display: grid; place-items: center; margin-top: 22px; }
.order-summary p, .order-summary small { display: block; margin: 14px 0 0; text-align: center; color: #66717a; font-size: 12px; }
.checkout-shell { max-width: 1180px; }
.checkout-title { margin-bottom: 35px; }
.checkout-title > a { color: #15689c; font-size: 14px; }
.checkout-title h1 { margin: 22px 0; font-size: 34px; }
.checkout-steps { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 4px solid #e1e4e6; }
.checkout-steps b { padding: 10px 0; border-bottom: 4px solid var(--navy); margin-bottom: -4px; font-size: 13px; }
.checkout-card { padding: 26px; margin-bottom: 22px; border: 1px solid #d2d7da; }
.checkout-card h2 { margin: 0 0 22px; font-size: 21px; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.field-grid .full { grid-column: 1 / -1; }
.checkout-card label, .account-card label, .track-intro label { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; font-size: 14px; font-weight: 700; }
.checkout-card input, .checkout-card select, .account-card input, .track-intro input { width: 100%; height: 47px; padding: 0 13px; border: 1px solid #8f9aa1; border-radius: 2px; background: white; }
.membership-fields { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr); gap: 17px; }
.member-date-fields { display: grid; grid-template-columns: 74px 18px 74px; align-items: center; gap: 7px; }
.member-date-fields input { text-align: center; font-variant-numeric: tabular-nums; }
.member-date-fields b { text-align: center; font-size: 20px; }
.checkout-card .check-label { flex-direction: row; align-items: flex-start; font-weight: 400; }
.checkout-card .check-label input { width: 17px; height: 17px; }
.safe-note { padding: 13px; border-left: 4px solid #2c7cab; background: #eef7fb; color: #334b5c; font-size: 13px; line-height: 1.5; }
.form-error, .otp-error { padding: 12px 14px; background: #fff0ef; border-left: 4px solid #c53b36; color: #8a2521; }
.checkout-summary article { display: grid; grid-template-columns: 65px 1fr auto; gap: 12px; align-items: start; margin-bottom: 20px; }
.checkout-summary article img { width: 65px; height: 78px; object-fit: cover; }
.checkout-summary article div { display: flex; flex-direction: column; gap: 6px; font-size: 12px; }

/* Waiting, verification and results */
.status-shell, .result-shell { min-height: 620px; display: grid; place-items: center; padding: 55px 20px; background: #f5f6f6; }
.status-card, .result-shell > * { max-width: 570px; }
.status-card { width: 100%; padding: 55px 48px; background: white; box-shadow: 0 7px 32px #142b3d14; text-align: center; }
.status-card h1, .result-shell h1 { margin: 20px 0 12px; font-size: 30px; }
.status-card p, .result-shell p { line-height: 1.6; color: #53616c; }
.status-card small { display: block; margin-top: 23px; color: #727d84; }
.loading-ring { width: 58px; height: 58px; margin: auto; border: 5px solid #e2e6e8; border-top-color: #1772a7; border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.status-pill { display: inline-block; margin: 18px 0; padding: 9px 15px; border-radius: 22px; background: #fff7dc; color: #715414; font-size: 13px; font-weight: 700; }
.verified-pill { background: #e5f5eb; color: #1f7049; }
.review-pill { background: #e7f2fb; color: #256c96; }
.phone-icon, .result-icon { width: 62px; height: 62px; margin: auto; display: grid; place-items: center; border-radius: 50%; background: #e7f3f8; color: #176b9a; font-size: 28px; }
.status-card form { max-width: 360px; margin: 25px auto 0; }
.status-card form label { display: flex; flex-direction: column; gap: 9px; font-weight: 700; text-align: left; }
.status-card form input { height: 58px; padding: 0 15px; border: 2px solid #87949c; text-align: center; letter-spacing: 12px; font-size: 25px; }
.status-card .checkout-button { margin-top: 16px; }
.otp-error { margin-top: 12px; text-align: left; font-size: 13px; }
.result-shell { display: flex; flex-direction: column; text-align: center; }
.result-shell .primary-button { margin-top: 18px; }
.success-result .result-icon { background: #e6f6ec; color: #1b844c; }
.declined-result .result-icon { background: #fff0ef; color: #b4312d; }
.order-reference { margin: 20px 0 5px; padding: 15px 24px; background: white; }

/* Account, tracking and legal */
.account-shell { max-width: 980px; margin: 0 auto; padding: 65px 24px 90px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.account-card { padding: 35px; border: 1px solid #d4dade; }
.account-card h1, .account-card h2 { margin-top: 0; font-size: 28px; }
.account-card p, .account-card li { color: #53616c; line-height: 1.55; }
.account-card form { margin-top: 28px; }
.account-card .text-button { margin-top: 17px; }
.account-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 30px; }
.account-actions .checkout-button { display: grid; place-items: center; }
.empty-cart { min-height: 420px; text-align: center; }
.empty-cart .primary-button { margin-top: 18px; }
.empty-wishlist { min-height: 300px; display: grid; place-content: center; justify-items: center; text-align: center; }
.create-account { background: #f3f4f4; }
.create-account ul { padding-left: 18px; margin: 25px 0; }
.create-account .primary-button { border: 0; cursor: pointer; }
.wishlist-shell > p { margin: -18px 0 35px; color: #5e6971; }
.track-shell { max-width: 1000px; margin: 0 auto; padding: 70px 24px 90px; display: grid; grid-template-columns: 1fr 1.15fr; gap: 55px; align-items: start; }
.track-intro h1 { margin-top: 0; font-size: 35px; }
.track-intro form { margin-top: 30px; }
.tracking-card { padding: 35px; border: 1px solid #d2d7da; box-shadow: 0 5px 20px #2035480d; }
.tracking-card > span { color: #66737c; font-size: 13px; }
.tracking-card h2 { margin: 8px 0; }
.tracking-line { position: relative; display: flex; justify-content: space-between; margin: 35px 8px; }
.tracking-line::before { content: ""; position: absolute; left: 7px; right: 7px; top: 6px; height: 3px; background: #d9dee1; }
.tracking-line i { position: relative; width: 15px; height: 15px; border-radius: 50%; background: #d9dee1; }
.tracking-line i.done { background: #238653; box-shadow: 0 0 0 4px #dcf1e5; }
.tracking-item { display: flex; justify-content: space-between; padding: 14px 0; border-top: 1px solid #e1e4e6; }
.legal-page { max-width: 900px; margin: 0 auto; padding: 55px 24px 90px; }
.legal-page h1 { margin: 0 0 10px; font-size: 38px; }
.legal-updated { color: #6a757c; font-size: 13px; }
.legal-intro { max-width: 760px; margin: 28px 0; font-size: 18px; line-height: 1.65; }
.legal-index { display: flex; flex-direction: column; gap: 9px; margin: 35px 0 55px; padding: 22px; background: #f3f4f4; }
.legal-index a { color: #17699d; }
.legal-page section { margin: 42px 0; scroll-margin-top: 20px; }
.legal-page h2 { font-size: 24px; }
.legal-page section p { color: #44535e; line-height: 1.7; }

@media (max-width: 1050px) {
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalogue-layout { grid-template-columns: 190px 1fr; gap: 24px; }
  .product-detail { grid-template-columns: 1.25fr .75fr; gap: 32px; }
  .main-product-image { min-height: 0; }
  .cart-layout, .checkout-layout { grid-template-columns: 1fr 330px; gap: 25px; }
}

@media (max-width: 760px) {
  .delivery-promise div { grid-template-columns: 1fr 1fr; }
  .delivery-promise a, .delivery-promise span { border-bottom: 1px solid #dce0e3; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .catalogue-layout { grid-template-columns: 1fr; }
  .filters { display: block; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
  .product-detail { grid-template-columns: 1fr; padding-top: 24px; }
  .product-gallery { grid-template-columns: 1fr; }
  .thumbnail-column { order: 2; flex-direction: row; }
  .main-product-image { min-height: 0; max-height: none; aspect-ratio: 1; }
  .cart-layout, .checkout-layout { grid-template-columns: 1fr; }
  .order-summary { position: static; }
  .cart-line { grid-template-columns: 105px 1fr; gap: 15px; }
  .cart-line > a img { width: 105px; height: 135px; }
  .cart-line-end { grid-column: 2; align-items: flex-start; }
  .field-grid { grid-template-columns: 1fr; }
  .field-grid .full { grid-column: auto; }
  .membership-fields { grid-template-columns: 1fr; }
  .account-shell, .track-shell { grid-template-columns: 1fr; }
  .status-card { padding: 40px 22px; }
}

@media (max-width: 460px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-card h3 { font-size: 13px; }
  .product-price strong { font-size: 17px; }
  .footer-links { grid-template-columns: 1fr; }
  .footer-bottom { flex-wrap: wrap; }
  .footer-bottom small { flex-basis: 100%; margin-left: 0; }
}

/* Administration */
.admin-login-shell { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: linear-gradient(145deg, #142a3a, #213f53); font-family: Arial, Helvetica, sans-serif; }
.admin-login-card { width: min(440px, 100%); padding: 42px; border-radius: 9px; background: white; box-shadow: 0 24px 70px #07172266; }
.admin-login-logo { display: block; color: #ed1b36; font-size: 38px; font-weight: 950; font-style: italic; letter-spacing: -3px; }
.admin-login-card > span { display: block; margin-top: 2px; color: #667680; font-size: 12px; letter-spacing: .8px; text-transform: uppercase; }
.admin-login-card h1 { margin: 30px 0 8px; font-size: 27px; }
.admin-login-card > p { margin: 0 0 24px; color: #697680; line-height: 1.5; }
.admin-login-card form { display: flex; flex-direction: column; gap: 15px; }
.admin-login-card label { display: flex; flex-direction: column; gap: 7px; color: #344550; font-size: 12px; font-weight: 800; }
.admin-login-card input { height: 47px; padding: 0 13px; border: 1px solid #aeb9c0; border-radius: 4px; font-size: 15px; }
.admin-login-card form button { height: 48px; margin-top: 3px; border: 0; border-radius: 4px; background: #1d374a; color: white; cursor: pointer; font-size: 14px; font-weight: 800; }
.admin-login-card form button:disabled { opacity: .65; cursor: wait; }
.admin-login-error { padding: 11px 13px; border-left: 4px solid #c03934; background: #fff0ef; color: #8b2925; font-size: 13px; }
.admin-login-back { display: inline-block; margin-top: 22px; color: #536d7e; font-size: 12px; }
.admin-app { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0, 1fr); background: #f3f5f7; color: #1e2c37; font-family: Arial, Helvetica, sans-serif; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 26px 16px 18px; display: flex; flex-direction: column; background: #172b3b; color: #fff; }
.admin-logo { display: flex; flex-direction: column; margin: 0 12px 36px; color: #ff3550; font-size: 29px; font-weight: 950; font-style: italic; letter-spacing: -2px; }
.admin-logo small { margin-top: 3px; color: #b7c3cb; font-size: 10px; font-style: normal; letter-spacing: 1.3px; text-transform: uppercase; }
.admin-sidebar nav { display: flex; flex-direction: column; gap: 5px; }
.admin-sidebar nav button { width: 100%; min-height: 47px; display: flex; align-items: center; gap: 13px; padding: 0 14px; border: 0; border-radius: 6px; background: transparent; color: #c8d1d7; text-align: left; cursor: pointer; }
.admin-sidebar nav button span { width: 24px; font-size: 19px; text-align: center; }
.admin-sidebar nav button:hover, .admin-sidebar nav button.active { background: #294254; color: white; }
.admin-sidebar nav button.active { box-shadow: inset 3px 0 #ff3550; }
.admin-user { margin-top: auto; padding: 16px 12px 0; border-top: 1px solid #355062; display: flex; flex-direction: column; gap: 6px; }
.admin-user b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; }
.admin-user a { color: #aabac4; font-size: 12px; }
.admin-user form { margin: 5px 0 0; }
.admin-user form button { width: 100%; padding: 7px 9px; border: 1px solid #476174; border-radius: 4px; background: transparent; color: #d9e1e6; cursor: pointer; text-align: left; font-size: 11px; }
.admin-content { min-width: 0; padding: 28px 32px 60px; }
.admin-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.admin-topbar h1 { margin: 0; font-size: 28px; }
.admin-topbar p { margin: 5px 0 0; color: #6c7881; font-size: 13px; }
.admin-topbar button, .panel-title button, .admin-list-row button, .edit-form button, .settings-panel button, .order-actions button { border: 1px solid #c9d0d5; border-radius: 4px; padding: 8px 12px; background: white; color: #2c3b46; cursor: pointer; font-weight: 700; font-size: 12px; }
.admin-topbar-actions { display: flex; align-items: center; gap: 8px; }
.admin-topbar-actions .sound-on { border-color: #1d7c52; background: #e8f6ef; color: #176442; }
.new-order-alert { width: 100%; margin: -10px 0 22px; padding: 15px 18px; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 10px; border: 1px solid #e5b62c; border-radius: 6px; background: #fff3c7; color: #594000; text-align: left; cursor: pointer; box-shadow: 0 4px 14px #5b45001c; }
.new-order-alert > span { font-size: 22px; }
.new-order-alert b { font-size: 14px; }
.new-order-alert small { justify-self: end; color: #735800; }
.admin-notice { position: fixed; z-index: 20; right: 30px; top: 24px; padding: 13px 18px; border-radius: 5px; background: #1e8558; color: white; box-shadow: 0 7px 25px #0002; }
.admin-loading { padding: 25px; background: white; color: #62717b; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 22px; }
.stat-card { padding: 22px; border-top: 4px solid; border-radius: 5px; background: white; box-shadow: 0 2px 9px #172b3b0a; }
.stat-card span { display: block; color: #6b7780; font-size: 12px; }
.stat-card strong { display: block; margin: 12px 0 7px; font-size: 29px; }
.stat-card small { color: #8b959c; font-size: 11px; }
.admin-panel { min-width: 0; border-radius: 6px; background: white; box-shadow: 0 2px 10px #172b3b0a; }
.panel-title { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-bottom: 1px solid #e3e7e9; }
.panel-title h2, .admin-panel > h2 { margin: 0; font-size: 17px; }
.panel-title span { color: #78848c; font-size: 12px; }
.panel-title-actions { display: flex; align-items: center; gap: 12px; }
.panel-title .bulk-delete { border-color: #dcb6b4; color: #a72e29; }
.panel-title .bulk-delete:disabled { opacity: .45; cursor: not-allowed; }
.table-scroll { overflow-x: auto; }
.orders-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.orders-table th { padding: 12px 14px; background: #f5f6f7; color: #697680; text-align: left; font-size: 10px; letter-spacing: .45px; }
.orders-table td { padding: 14px; border-top: 1px solid #e7eaec; vertical-align: middle; font-size: 12px; }
.orders-table td b, .orders-table td small { display: block; }
.orders-table td small { margin-top: 5px; color: #7c8890; }
.orders-table .select-column { width: 42px; padding-left: 18px; padding-right: 4px; text-align: center; }
.orders-table .select-column input { width: 16px; height: 16px; accent-color: #20384c; }
.orders-table tr.selected-order td { background: #fff8f8; }
.last4 { display: inline-block; padding: 6px 9px; border-radius: 4px; background: #eff2f4; font-family: monospace; letter-spacing: 1px; }
.submitted-code { display: inline-block; padding: 7px 10px; border-radius: 4px; background: #fff1bd; color: #5f4700; letter-spacing: 4px; font-family: monospace; font-size: 15px; font-weight: 900; }
.status-badge { display: inline-block; padding: 6px 9px; border-radius: 20px; background: #e9edf0; color: #53616b; font-size: 10px; font-weight: 700; }
.status-badge.new { background: #fff4d5; color: #815f0c; }
.status-badge.otp_sent, .status-badge.otp_error { background: #eee7fa; color: #664095; }
.status-badge.code_submitted { background: #e5f2fb; color: #236d94; }
.status-badge.verified { background: #e4f3fb; color: #236d94; }
.status-badge.approved { background: #e4f5eb; color: #1d7449; }
.status-badge.declined { background: #ffebea; color: #a93631; }
.order-actions { display: flex; gap: 5px; }
.order-actions .approve, .admin-primary { border-color: #1d7c52; background: #1d7c52; color: white; }
.order-actions .danger, .admin-list-row .danger { border-color: #dcb6b4; color: #a72e29; }
.empty-admin { padding: 40px; text-align: center; color: #76828b; }
.admin-split { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .7fr); gap: 22px; align-items: start; }
.admin-list { max-height: calc(100vh - 180px); overflow-y: auto; }
.admin-list-row { min-height: 78px; display: grid; grid-template-columns: 56px minmax(120px, 1fr) auto auto auto; align-items: center; gap: 13px; padding: 11px 16px; border-top: 1px solid #e6eaec; }
.admin-list-row:first-child { border-top: 0; }
.admin-list-row img { width: 54px; height: 54px; object-fit: cover; border-radius: 4px; background: #edf0f2; }
.admin-list-row b, .admin-list-row small { display: block; }
.admin-list-row b { font-size: 13px; }
.admin-list-row small { margin-top: 5px; color: #74818a; font-size: 11px; }
.slider-row { grid-template-columns: 80px minmax(120px, 1fr) auto auto; }
.slider-row img { width: 78px; }
.edit-form, .settings-panel { padding: 23px; }
.edit-form h2, .settings-panel h2 { margin: 0 0 20px; }
.edit-form form, .settings-panel form { display: flex; flex-direction: column; gap: 14px; }
.edit-form label, .settings-panel label { display: flex; flex-direction: column; gap: 6px; color: #53616b; font-size: 11px; font-weight: 700; }
.edit-form input, .edit-form select, .edit-form textarea, .settings-panel input { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid #aeb8be; border-radius: 3px; background: white; color: #263641; }
.edit-form textarea { resize: vertical; }
.edit-form .check-label { flex-direction: row; align-items: center; }
.edit-form .check-label input { width: 16px; min-height: 16px; }
.two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.edit-form .admin-primary, .settings-panel .admin-primary { min-height: 43px; border: 0; }
.settings-panel { max-width: 650px; }
.settings-panel > p { color: #6d7a83; line-height: 1.5; }
.logo-preview { max-width: 210px; max-height: 100px; object-fit: contain; padding: 10px; border: 1px solid #d4dade; }

@media (max-width: 1100px) {
  .admin-app { grid-template-columns: 205px minmax(0, 1fr); }
  .admin-content { padding: 24px 20px 50px; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .admin-split { grid-template-columns: 1fr; }
  .admin-list { max-height: none; }
}

@media (max-width: 720px) {
  .admin-login-card { padding: 32px 24px; }
  .admin-app { display: block; }
  .admin-sidebar { position: static; width: 100%; height: auto; padding: 14px; }
  .admin-logo { margin: 2px 8px 14px; }
  .admin-sidebar nav { flex-direction: row; overflow-x: auto; }
  .admin-sidebar nav button { min-width: 120px; }
  .admin-user { display: none; }
  .admin-content { padding: 20px 12px 45px; }
  .admin-topbar { align-items: flex-start; gap: 12px; }
  .admin-topbar-actions { flex-direction: column; align-items: stretch; }
  .new-order-alert { grid-template-columns: auto 1fr; }
  .new-order-alert small { grid-column: 2; justify-self: start; }
  .stats-grid { gap: 10px; }
  .stat-card { padding: 15px; }
  .stat-card strong { font-size: 23px; }
  .admin-list-row { grid-template-columns: 48px minmax(105px, 1fr) auto; }
  .admin-list-row > strong { display: none; }
  .admin-list-row > button { grid-column: auto; }
  .two-fields { grid-template-columns: 1fr; }
}

/* PHP storefront additions */
.product-section { max-width:1240px; margin:0 auto; padding:72px 24px 90px; text-align:center; }
.product-section>h2 { margin:8px 0 38px; font-size:32px; font-weight:500; }
.product-section .product-grid { text-align:left; }
.eyebrow { margin:0; color:#65737d; font-size:14px; }
.site-footer { margin-top:70px; padding:52px max(24px,calc((100vw - 1240px)/2)); display:grid; grid-template-columns:repeat(3,1fr); gap:45px; background:#f4f4f4; }
.site-footer>div { display:flex; flex-direction:column; gap:12px; font-size:14px; }
.site-footer a:hover { text-decoration:underline; }
.wordmark img { display:block; max-width:150px; max-height:64px; object-fit:contain; }
.bag-link { position:relative; }
.bag-link [data-cart-count] { position:absolute; right:-7px; top:-7px; min-width:18px; height:18px; padding:0 4px; display:grid; place-items:center; border-radius:10px; background:var(--red); color:#fff; font:700 11px/1 Arial; }
.arrival-image { display:block; }
.product-image-shell { position:relative; min-width:0; }
.product-image { position:relative; display:block; aspect-ratio:1/1.13; overflow:hidden; background:#f2f3f3; }
.product-image img { width:100%; height:100%; object-fit:cover; transition:transform .2s ease; }
.product-image:hover img { transform:scale(1.025); }
.product-card { min-width:0; display:flex; flex-direction:column; gap:12px; }
.product-name { min-height:38px; font-size:14px; line-height:1.35; }
.product-price { display:block; font-size:19px; }
.product-badge { position:absolute; z-index:2; left:10px; top:10px; padding:8px 10px; background:#ffdd00; color:#111; font-size:11px; font-weight:700; }
.wishlist-button { position:absolute; z-index:3; right:10px; top:10px; width:38px; height:38px; border:1px solid #ddd; border-radius:50%; background:#fff; font-size:22px; cursor:pointer; }
.wishlist-button.active { color:var(--red); }
.stock-text { display:block; color:#18753c; }
.listing-hero { padding:36px max(32px,calc((100vw - 1440px)/2)); background:#f4f5f5; }
.listing-hero p,.listing-hero h1 { margin:0 0 10px; }
.listing-hero h1 { font-size:36px; }
.catalogue-layout { max-width:1460px; margin:0 auto; padding:42px 24px 80px; display:grid; grid-template-columns:220px 1fr; gap:38px; }
.catalogue-layout aside { display:flex; flex-direction:column; gap:15px; font-size:14px; }
.catalogue-layout aside hr { width:100%; border:0; border-top:1px solid #ddd; }
.sort-row { margin-bottom:20px; display:flex; justify-content:space-between; align-items:center; }
.sort-row select,.variant-label select { padding:12px; border:1px solid #9ea5aa; background:#fff; }
.catalogue-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.breadcrumbs { max-width:1600px; margin:0 auto; padding:20px 32px; background:#f5f5f5; color:#315b79; font-size:14px; }
.product-detail { max-width:1500px; margin:0 auto; padding:48px 30px 90px; display:grid; grid-template-columns:82px minmax(480px,740px) minmax(320px,440px); gap:28px; }
.thumb-column img { width:82px; height:92px; object-fit:cover; border:2px solid var(--navy); }
.product-main-image { min-height:620px; background:#f2f2f2; }
.product-main-image img { width:100%; height:100%; max-height:800px; object-fit:contain; }
.product-info h1 { margin:18px 0 10px; font-size:31px; font-weight:500; }
.detail-price { display:block; margin:28px 0 8px; font-size:30px; }
.variant-label { display:grid; gap:8px; margin:24px 0; }
.delivery-box { margin:28px 0 18px; padding:22px; border:1px solid #ccd0d3; }
.delivery-box label { display:grid; grid-template-columns:22px 1fr; margin:20px 0; }
.delivery-box small { grid-column:2; color:#66737d; }
.product-copy { margin-top:30px; border-top:1px solid #ddd; padding-top:20px; }
.cart-shell,.checkout-shell { width:min(100%, 1280px); margin:0 auto; padding:52px 28px 96px; display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:46px; align-items:start; }
.cart-main { min-width:0; }
.cart-heading { min-height:92px; display:flex; align-items:flex-end; justify-content:space-between; gap:28px; padding-bottom:24px; border-bottom:2px solid #203548; }
.cart-heading h1 { margin:5px 0 4px; font-size:36px; line-height:1.08; letter-spacing:-.7px; }
.cart-heading p { margin:0; color:#66737c; font-size:14px; }
.cart-heading>a { margin-bottom:5px; color:#125f91; font-size:14px; font-weight:700; text-decoration:underline; white-space:nowrap; }
.cart-kicker,.summary-kicker { color:#66737c; font-size:11px; font-weight:800; letter-spacing:1.25px; text-transform:uppercase; }
.cart-delivery-banner { margin-top:18px; min-height:68px; display:flex; align-items:center; gap:14px; padding:13px 16px; border-radius:4px; background:#f1f2f2; }
.cart-delivery-banner>span { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#fff; color:#203548; font-size:21px; }
.cart-delivery-banner b,.cart-delivery-banner small { display:block; }
.cart-delivery-banner b { font-size:14px; }
.cart-delivery-banner small { margin-top:3px; color:#67737b; font-size:12px; }
.cart-items { margin-top:4px; }
.cart-row { min-height:190px; padding:26px 0; display:grid; grid-template-columns:150px minmax(0,1fr) 128px; align-items:start; gap:24px; border-bottom:1px solid #d7dcdf; }
.cart-product-image { display:block; width:150px; height:165px; overflow:hidden; background:#f4f5f5; }
.cart-row img { display:block; width:100%; height:100%; object-fit:contain; }
.cart-product-copy { min-width:0; padding-top:3px; }
.cart-product-copy strong { display:block; max-width:460px; margin:9px 0 8px; font-size:17px; line-height:1.35; }
.cart-item-badge { display:inline-block; padding:5px 8px; background:#ffde00; color:#111; font-size:10px; font-weight:800; }
.cart-row .cart-unit-price { margin:0 0 19px; color:#56636c; font-size:14px; }
.cart-row label { display:flex; align-items:center; gap:10px; color:#36454f; font-size:13px; font-weight:700; }
.cart-row select { min-width:66px; height:40px; padding:0 30px 0 11px; border:1px solid #8d989f; border-radius:2px; background:#fff; color:#1b2933; }
.cart-row-end { min-width:0; display:flex; flex-direction:column; align-items:flex-end; gap:70px; padding-top:6px; }
.cart-row-end>b { font-size:18px; }
.cart-row button { border:0; padding:0; background:none; color:#b51d26; cursor:pointer; font-size:13px; text-decoration:underline; }
.summary-card { position:sticky; top:22px; height:max-content; padding:29px; border:1px solid #cdd3d7; border-top:4px solid #203548; border-radius:2px; background:#fff; box-shadow:0 8px 28px #20354810; }
.summary-card h2 { margin:6px 0 22px; font-size:24px; letter-spacing:-.3px; }
.summary-card>div { margin:15px 0; display:flex; justify-content:space-between; gap:20px; font-size:14px; }
.summary-card>div b { text-align:right; }
.summary-card hr { margin:19px 0; border:0; border-top:1px solid #bfc7cc; }
.summary-card .summary-total { align-items:baseline; margin-bottom:20px; font-size:19px; }
.summary-card .summary-total b { font-size:24px; }
.summary-card .checkout-button { display:grid; min-height:52px; margin-top:20px; place-items:center; background:#203548; color:#fff; text-align:center; font-weight:800; }
.summary-card .checkout-button:hover { background:#142736; }
.summary-card .summary-benefits { margin:18px 0 0; padding-top:16px; display:grid; gap:9px; border-top:1px solid #e0e4e6; color:#53616b; font-size:12px; }
.cart-shell.is-empty { grid-template-columns:1fr; }
.cart-shell.is-empty .cart-main { width:min(100%,760px); margin:0 auto; }
.cart-shell.is-empty .cart-heading>a,.cart-shell.is-empty .cart-delivery-banner { display:none; }
.cart-shell .empty-state { min-height:330px; display:grid; place-content:center; justify-items:center; gap:11px; padding:48px 20px; text-align:center; }
.cart-shell .empty-state h2,.cart-shell .empty-state p { margin:0; }
.cart-shell .empty-state p { color:#65727b; }
.empty-bag-icon { width:64px; height:64px; display:grid; place-items:center; margin-bottom:5px; border-radius:50%; background:#f0f2f3; color:#203548; font-size:31px; }
.cart-shell .empty-state .primary-button { margin-top:10px; }
.checkout-button { display:grid; place-items:center; padding:0 18px; }
.summary-card > [data-checkout-items] { display:block; margin:8px 0 18px; }
.summary-card [data-checkout-items] > div { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:12px 0; border-bottom:1px solid #e1e4e6; }
.summary-card [data-checkout-items] span { line-height:1.4; }
.summary-card [data-checkout-items] b { white-space:nowrap; }
.summary-total { font-size:20px; }
.checkout-card { margin:18px 0; padding:24px; border:1px solid #d8dbdd; }
.checkout-card h2 { margin-top:0; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.form-grid label,.checkout-card>label,.membership-fields label,.account-card label { display:grid; gap:7px; font-weight:700; }
.form-grid input,.form-grid select,.checkout-card input,.membership-fields input,.account-card input { width:100%; min-height:46px; padding:11px; border:1px solid #89939b; }
.form-grid .wide { grid-column:1/-1; }
.safe-note { padding:12px; background:#eef6fb; color:#214d68; }
.membership-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.member-date-fields { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; }
.checkout-error,.form-error { min-height:20px; color:#b42318; }
.empty-state { padding:50px; text-align:center; }
.status-code-form { margin:24px auto 0; max-width:320px; }
.status-code-form input { width:100%; padding:14px; text-align:center; font-size:26px; letter-spacing:8px; }
.status-code-form button { width:100%; margin-top:12px; }
.legal-page { max-width:900px; margin:0 auto; padding:70px 25px 100px; font-size:17px; line-height:1.7; }
.legal-page h1 { font-size:44px; line-height:1.1; }

@media (max-width:1000px) {
  .catalogue-layout { grid-template-columns:1fr; }
  .catalogue-layout aside { display:none; }
  .catalogue-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .product-detail { grid-template-columns:1fr; }
  .thumb-column { display:none; }
  .product-main-image { min-height:420px; }
  .cart-shell,.checkout-shell { grid-template-columns:1fr; }
  .summary-card { position:static; width:min(100%,560px); }
}
@media (max-width:680px) {
  .catalogue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
  .form-grid,.membership-fields { grid-template-columns:1fr; }
  .campaign-hero img { height:320px; }
  .product-detail { padding:20px 16px 60px; }
  .product-main-image { min-height:0; aspect-ratio:1; }
  .product-main-image img { height:100%; }
  .product-info h1 { font-size:25px; }
  .site-footer { grid-template-columns:1fr; }
  .cart-shell,.checkout-shell { padding:30px 16px 65px; gap:28px; }
  .cart-heading { min-height:0; align-items:flex-start; padding-bottom:19px; }
  .cart-heading h1 { font-size:30px; }
  .cart-heading>a { display:none; }
  .cart-delivery-banner { margin-top:14px; }
  .cart-row { min-height:0; grid-template-columns:96px minmax(0,1fr); gap:14px; padding:19px 0; }
  .cart-product-image { width:96px; height:116px; }
  .cart-product-copy strong { margin-top:7px; font-size:14px; }
  .cart-item-badge { padding:4px 6px; font-size:9px; }
  .cart-row .cart-unit-price { margin-bottom:13px; font-size:13px; }
  .cart-row-end { grid-column:2; flex-direction:row; justify-content:space-between; align-items:center; gap:18px; padding-top:0; }
  .cart-row-end>b { font-size:16px; }
  .summary-card { width:100%; padding:23px; }
}

.support-shell { max-width:1120px; margin:0 auto; padding:58px 24px 90px; }
.support-shell > h1 { margin:0 0 10px; font-size:38px; }
.support-shell > p { color:#56646e; line-height:1.6; }
.support-grid { margin-top:34px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.support-card { min-height:190px; padding:26px; display:flex; flex-direction:column; align-items:flex-start; border:1px solid #d7dcdf; background:#fff; }
.support-card h2 { margin:0 0 10px; font-size:21px; }
.support-card p { flex:1; color:#56646e; line-height:1.55; }
.support-card a { font-weight:700; color:#176b9a; text-decoration:underline; }
.store-card { max-width:700px; margin-top:32px; padding:30px; border:1px solid #d4dade; }
.store-card dl { display:grid; grid-template-columns:120px 1fr; gap:12px 20px; }
.store-card dt { font-weight:700; }
.store-card dd { margin:0; color:#52616d; }
.wishlist-shell { max-width:1240px; margin:0 auto; padding:58px 24px 90px; }
.wishlist-shell .product-grid { margin-top:34px; }
[hidden] { display:none !important; }
@media (max-width:760px) {
  .support-grid { grid-template-columns:1fr; }
  .support-shell > h1 { font-size:31px; }
  .store-card dl { grid-template-columns:1fr; gap:5px; }
  .store-card dd { margin-bottom:12px; }
}
