/* shop1/shop2: the shop on omlcloud.com (the home page's slideshow, /shop, a product, the cart, checkout, an order)
   and the cart in the site's header. Built on site.css's tokens: --paper --ink --muted --line --teal --lime --orange
   --white --radius. */

/* The cart in the site's header: always in sight, also on phones where the menu folds away */
.head-cart{position:relative;order:3;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.head-cart:hover{border-color:#9aaea7}
.head-cart svg{flex:none}
.shop-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--teal);color:#fff;font-size:12px;line-height:1}
@media(min-width:1241px) and (max-width:1399px){
  /* laptops: the menu is full, so the pill is the icon and the count; the word stays for screen readers */
  .head-cart{padding:8px 12px}
  .head-cart-word{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
}
@media(max-width:1240px){
  .head-cart{order:1;margin-left:auto}
  .site-header .nav-toggle:not([hidden]){order:2;margin-left:10px}
  .site-header nav{order:3}
}

/* The home page's slideshow: one product at a time on the brand's teal */
.shop-show{padding-top:4px;padding-bottom:40px}
.show-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-bottom:14px}
.show-head h2{font-size:26px;letter-spacing:-.8px;margin:0}
.show-all{font-size:14px;font-weight:700}
.show{position:relative;border-radius:20px;background:var(--teal);color:#fffefa;overflow:hidden}
.show-track{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(255,254,250,.45) transparent}
.show.is-ready .show-track{scrollbar-width:none}
.show.is-ready .show-track::-webkit-scrollbar{display:none}
.show-slide{scroll-snap-align:start;scroll-snap-stop:always;min-width:0}
.show-link{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:340px;height:100%;color:inherit;text-decoration:none;border-radius:20px}
.show-link:focus-visible{outline:3px solid var(--orange);outline-offset:-5px}
.show-photo{display:grid;place-items:center;margin:18px 0 18px 18px;border-radius:14px;background:#fffefa;overflow:hidden;min-height:300px}
.show-photo img{display:block;width:100%;height:100%;max-height:380px;object-fit:contain;padding:12px}
.show-nophoto{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px;color:var(--muted);font-size:15px;font-weight:600;text-align:center}
.show-nophoto svg{color:#9aaea7}
.show-text{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;min-width:0;padding:36px 48px 76px 36px}
.show-cat{font-size:13px;font-weight:700;color:var(--lime)}
.show-name{font-size:clamp(26px,3.3vw,42px);line-height:1.12;letter-spacing:-1px;font-weight:600;color:#fffefa;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.show-price{font-size:clamp(22px,2.4vw,30px);font-weight:700;color:var(--lime)}
.show-price.is-ask{font-size:18px;font-weight:600;color:#c9d8cf}
.show-stock{font-size:14px;color:#f4c9a6}
.show-cta{display:inline-flex;align-items:center;min-height:46px;margin-top:8px;padding:11px 22px;border-radius:8px;background:#fffefa;color:var(--teal);font-size:15px;font-weight:700;transition:background .15s}
.show-link:hover .show-cta{background:var(--lime)}
.show-controls:not([hidden]){position:absolute;right:18px;bottom:16px;z-index:2;display:flex;gap:8px}
.show-button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,254,250,.4);border-radius:50%;background:rgba(255,254,250,.08);color:#fffefa;cursor:pointer;transition:background .15s}
.show-button:hover{background:rgba(255,254,250,.2)}
.show-button:focus-visible,.show-dots button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.show-pause .show-play,.show.is-paused .show-pause .show-hold{display:none}
.show.is-paused .show-pause .show-play{display:block}
.show-dots:not([hidden]){position:absolute;left:calc(45% + 26px);bottom:20px;z-index:2;display:flex;flex-wrap:wrap;gap:2px;max-width:calc(55% - 200px)}
.show-dots button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;background:none;cursor:pointer}
.show-dots span{position:relative;display:block;width:8px;height:8px;border-radius:999px;background:rgba(255,254,250,.42);overflow:hidden;transition:width .2s}
.show-dots span:after{content:"";position:absolute;inset:0 auto 0 0;width:0;background:#fffefa}
.show-dots [aria-current=true]{width:40px}
.show-dots [aria-current=true] span{width:30px}
.show-dots [aria-current=true] span:after{width:100%}
.show.is-playing .show-dots [aria-current=true] span:after{animation:show-fill var(--show-every,6s) linear both}
@keyframes show-fill{from{width:0}to{width:100%}}
@media(max-width:760px){
  /* phones: the slide, then its own row with the dots on the left and the buttons on the right (nothing overlays) */
  .shop-show{padding-bottom:28px}
  .show-head h2{font-size:22px}
  .show-link{grid-template-columns:1fr;min-height:0}
  .show-photo{margin:14px 14px 0;min-height:0;aspect-ratio:4/3}
  .show-photo img{max-height:none}
  .show-text{padding:18px 20px 22px;gap:8px}
  .show.is-ready{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"track track" "dots controls";align-items:center}
  .show.is-ready .show-track{grid-area:track}
  .show.is-ready .show-dots:not([hidden]){grid-area:dots;position:static;max-width:none;padding:4px 8px 12px 12px}
  .show-dots button{width:26px}
  .show-dots [aria-current=true]{width:34px}
  .show-dots [aria-current=true] span{width:26px}
  .show.is-ready .show-controls:not([hidden]){grid-area:controls;position:static;padding:4px 14px 12px 0}
}

/* The bar on the shop's pages: where you are, and the search */
.shop-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:6px}
.shop-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;padding:0;font-size:13px;color:var(--muted)}
.shop-crumbs li{display:flex;align-items:center;gap:8px;min-width:0}
.shop-crumbs li+li:before{content:"/";color:#9aaea7}
.shop-crumbs a{color:var(--muted)}
.shop-crumbs a:hover{color:var(--ink)}
.shop-crumbs [aria-current]{display:inline-block;max-width:38ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:600}
.shop-find{display:flex;align-items:stretch;width:min(100%,340px);border:1px solid #aebcb5;border-radius:999px;background:#fff;overflow:hidden}
.shop-find:focus-within{outline:3px solid #d47e40;outline-offset:2px}
.shop-find input{flex:1;min-width:0;min-height:44px;padding:9px 16px;border:0;background:transparent;color:var(--ink);font-size:16px}
.shop-find input:focus{outline:none}
.shop-find button{display:grid;place-items:center;width:50px;border:0;background:var(--teal);color:#fff;cursor:pointer}
.shop-find button:hover{background:#225358}

/* The shop's front: categories, sort, the grid of products */
.shop-hero{padding-top:24px;padding-bottom:6px}
.shop-hero h1{margin-bottom:12px}
.shop-hero .lead{max-width:640px}
.shop-trust{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 0;padding:0}
.shop-trust li{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--white);font-size:13px;line-height:1.45;color:var(--muted)}
.shop-trust svg{flex:none;margin-top:1px;color:var(--teal)}
.shop-trust strong{display:block;margin-bottom:2px;font-size:14px;color:var(--ink)}
.shop-cart .shop-trust{margin-top:32px}
.shop-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:22px}
.shop-cats{display:flex;flex-wrap:wrap;gap:8px}
.shop-cats a{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:13px;font-weight:600;text-decoration:none}
.shop-cats a:hover{border-color:#9aaea7}
.shop-cats a[aria-current=page]{background:var(--teal);border-color:var(--teal);color:#fff}
.shop-sort{display:flex;align-items:center;gap:10px;margin:0 0 0 auto;font-size:14px;font-weight:600}
.shop-sort select{min-height:42px;padding:8px 12px;border:1px solid #aebcb5;border-radius:8px;background:#fff;color:var(--ink);font-size:15px}
.shop-sort .button{min-height:42px;padding:8px 14px}
.shop-count-line{margin-top:14px;margin-bottom:14px;font-size:14px;color:var(--muted)}
.shop-grid{list-style:none;margin:0 auto 64px;padding-top:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.shop-card{display:flex;flex-direction:column;gap:6px;height:100%;padding:12px 12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.shop-card:hover{border-color:#9aaea7;box-shadow:0 10px 24px rgba(23,44,50,.10)}
.shop-photo{display:grid;place-items:center;aspect-ratio:1/1;border-radius:10px;background:#fff;overflow:hidden;margin-bottom:8px}
.shop-photo img{width:100%;height:100%;object-fit:contain}
.shop-nophoto{display:grid;place-items:center;width:100%;height:100%;padding:12px;background:#eef0e8;color:var(--muted);font-size:13px;font-weight:600;text-align:center;border-radius:10px}
.shop-card-cat{font-size:12px;font-weight:600;color:var(--muted)}
.shop-name{font-size:15px;line-height:1.35}
.shop-price{font-size:17px;font-weight:700;color:var(--teal)}
.shop-price.is-ask{font-size:14px;color:var(--muted)}
.shop-stock{font-size:12px;color:#15675e}
.shop-stock.is-low{color:#86502b}
.shop-stock.is-out{color:var(--muted)}
.shop-empty{padding:24px 28px 72px;max-width:760px}
.shop-empty h2{font-size:24px}

/* One product */
.shop-item{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px 48px;padding-top:24px;padding-bottom:48px;align-items:start}
.shop-main{display:grid;place-items:center;aspect-ratio:1/1;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}
.shop-main img{width:100%;height:100%;object-fit:contain}
.shop-main.shop-nophoto{font-size:17px}
.shop-item-price.is-ask{font-size:22px;color:var(--muted)}
.shop-ask{color:var(--muted);margin:10px 0 14px}
.shop-thumbs{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.shop-thumbs a{display:block;width:72px;height:72px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.shop-thumbs a[aria-current=true]{outline:3px solid var(--teal);outline-offset:1px}
.shop-thumbs img{width:100%;height:100%;object-fit:contain}
.shop-category{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:6px}
.shop-buy h1{font-size:clamp(28px,3.2vw,40px);letter-spacing:-1.2px;margin-bottom:8px}
.shop-code{font-size:13px;color:var(--muted);margin-bottom:12px}
.shop-item-price{font-size:30px;font-weight:700;color:var(--teal);margin-bottom:6px}
.shop-item-price small{font-size:14px;font-weight:400;color:var(--muted)}
.shop-add{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0 8px}
.shop-add label{margin:0;font-size:14px;font-weight:600}
.shop-add select{width:auto;min-width:96px}
.shop-promise{list-style:none;padding:16px 0 0;margin:20px 0 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.shop-promise li{position:relative;padding-left:24px;margin-bottom:8px}
.shop-promise li:before{content:"✓";position:absolute;left:0;top:0;color:#15675e;font-weight:700}
.shop-details,.shop-docs{grid-column:1/-1;max-width:760px}
.shop-details h2,.shop-docs h2{font-size:24px}
.shop-details p,.shop-details li{font-size:16px;line-height:1.7}
.shop-docs ul{list-style:none;padding:0}
.shop-docs li{padding:12px 0;border-bottom:1px solid var(--line)}
.shop-docs a{font-weight:600}
.shop-docs small{color:var(--muted);margin-left:6px}
.shop-related{padding-bottom:72px}
.shop-related h2{font-size:24px;margin-bottom:16px}
.shop-related .shop-grid{margin:0;padding:0}

/* The cart */
.shop-cart,.shop-checkout,.shop-order{padding-top:24px;padding-bottom:72px}
.shop-cart .table-wrap{position:relative}   /* keeps the table's screen-reader-only labels inside it on phones */
.shop-lines td{vertical-align:middle}
.shop-line-name{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:600}
.shop-line-name img,.shop-line-nophoto{flex:none;width:56px;height:56px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff}
.shop-line-nophoto{background:#eef0e8}
.shop-qty{width:84px;padding:9px 10px;border:1px solid #aebcb5;border-radius:6px;font-size:16px;background:#fff}
.shop-problem{display:block;margin-top:6px;color:#82341f;font-weight:600}
.shop-remove{text-decoration:underline;text-underline-offset:3px;font-size:13px}
.shop-lines tfoot th,.shop-lines tfoot td{background:#eceee6;font-size:15px}

/* Checkout */
.shop-checkout-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:32px;align-items:start}
.shop-checkout label textarea,.shop-checkout label input{width:100%;display:block;margin-top:8px;padding:12px 13px;border:1px solid #aebcb5;border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
.shop-checkout label input[type=radio]{width:auto;display:inline;margin:4px 0 0}
.shop-checkout textarea{resize:vertical;min-height:72px}
.shop-summary{position:sticky;top:24px;padding:24px;border-radius:var(--radius);background:#eceee5;border:1px solid #d4dbd0}
.shop-summary h2{font-size:22px}
.shop-summary ul{list-style:none;padding:0;margin:0 0 12px}
.shop-summary li,.shop-summary-total{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #d4dbd0;font-size:14px}
.shop-summary-total{border-bottom:0;font-size:17px}

/* An order */
.shop-order{max-width:760px}
.shop-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 18px}
.shop-facts>div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.shop-facts dt{font-size:12px;color:var(--muted)}
.shop-facts dd{margin:4px 0 0;font-size:16px}
.shop-order-lines{list-style:none;padding:0;margin:0 0 22px;font-size:14px}
.shop-order-lines li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line)}
.shop-pay{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);margin-bottom:18px}
.shop-pay h2{font-size:22px}
.pay-steps{padding-left:22px;line-height:1.7}
.pay-steps li{margin-bottom:8px}
.pay-timer{font-size:18px;font-weight:700;color:var(--teal)}
.qr-box{display:grid;place-items:center;padding:16px;margin:8px 0 12px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.qr-box img{width:264px;height:264px;image-rendering:pixelated}
.pay-status{font-weight:600}
.shop-help{margin-top:24px}

@media(max-width:900px){
  .shop-item,.shop-checkout-grid{grid-template-columns:1fr}
  .shop-summary{position:static}
  .shop-trust{grid-template-columns:1fr}
}
@media(max-width:560px){
  .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .shop-card{padding:10px 10px 14px}
  .shop-name{font-size:14px}
  .shop-find{width:100%}
  .shop-sort{margin-left:0}
  .shop-crumbs [aria-current]{max-width:22ch}
  .shop-lines th:nth-child(2),.shop-lines td:nth-child(2){display:none}
  .qr-box img{width:232px;height:232px}
}
@media(prefers-reduced-motion:reduce){
  .shop-card,.show-cta,.show-button,.show-dots span{transition:none}
  .show-track{scroll-behavior:auto}
  .show.is-playing .show-dots [aria-current=true] span:after{animation:none}
}
